Now before I get flamed or locked... I am well aware of the following threads:
http://www.adventuregamestudio.co.uk/yabb/index.php?topic=33302.0
http://www.adventuregamestudio.co.uk/yabb/index.php?topic=18492.0
http://www.adventuregamestudio.co.uk/yabb/index.php?topic=17818.0
http://www.adventuregamestudio.co.uk/yabb/index.php?topic=18486.20
http://www.adventuregamestudio.co.uk/yabb/index.php?topic=32935.0
http://www.adventuregamestudio.co.uk/yabb/index.php?topic=32940.0
http://www.adventuregamestudio.co.uk/yabb/index.php?topic=14344.0
But I want to talk about a few things here. First off, having a cleaner code for AGS interpreter, maximizing portability and Windows Mobile pdas/phones. Actually, this is really going to be directly for Windows Mobile PDA's I just didn't want to continue this in another thread and make it look disorganized. So I threw a few topics together, looked up the prior forum posts and linked them in here for references. So, I apologize for bringing up this topic once again...
I have read all the forum posts as best I could on this, but I am pretty sure Palm and Iphone ports are out of the question, and I dont really care about those anyway because I do not usually use those handhelds. Windows Mobile is my preffered choice of handhelds.
To be honest with you, I live and breath off of my ipaq hw6515. It had built in GPS, Bluetooth, infrared... Its a touch screen and just has so many more features than a palm. I even have a 2 sd slots, one for my wifi card, the other for my 2 gigs memory card. It has highspeed internet access and is a Quadband unlocked GSM world phone. I take it every where with me. And since it has a built in camera, I use at work as well.
These things are the wave of the future. More and more phones and PDA's are being built with Windows Mobile. I mean I use it to play my video's (you can get an hour and a half of video on this thing in just 128mb's!!!) I use it for my music, I listen to internet radio and watch online TV. I use my office suite on there. And with emulators and such, I play my games on there. I have over 10,000 nintendo games I can play! (Check out http://freewarepocketpc.net and http://www.freewareppc.com for all the free stuff for these things).
The reason I bring this up is because of how popular these things are. I feel a port of AGS to windows mobile would be better than a port to linux... And in not too long from now, it may be something in demand for AGS, more so than it has already. Besides that, since the iphone is a macOS, it should run AGSMAC and there are Linux phones that support the linux verion of AGS as well. The major port that is required is the WindowsMobile port.
There are a few things to take into consideration regarding porting AGS into PocketPC/Windows Mobile world. For one thing, the OS to port to should be as early as Windows Mobile 2002 or WM2003 at the very latest. Porting to one of those OS versions would increase the number of users AGSMobile would be available to.
If you use those operating systems, you would have to compile AGS to be ARM compliant. As of wm2002, ARM is required to run it. So this would not bring up the question of whether or not AGS should be compiled for ARM, Xscale, SH3 or MIPS. It should just be ARM.
Something else to bring up on this subject is the resolution and graphics. There are no Pocket PC's that can run 32bit graphics. The best setting would be 16bit, which I do not think will be a problem if AGS automatically converted AGS mobile games graphics to 16bit from 24/32 bit. The resolution is normally 320x240, 320x320, 240x240 and some other VGA/QVGA resolutions.
Now as far as libraries and things you use for AGS, Allegro is something that definetly will not work for windows mobile. I searched the net high and low for a port of Allegro to WM200? There exists nothing.
I really do like Allegro, but honestly, I am starting to feel that its outdated nowadays. Also, it seems to also slow down and limit the ports of AGS to Mac and Linux. I think thats a big problem. I mean, to download it for linux we have to download Allegro and install it and stuff... Thats a hassle.
I feel that more can be done with SDL than Allegro. Plus SDL is portable to many platforms. More so than Allegro. And it does have all the features that Allegro has and possibly more.
I also think the WXwidgets are also portable to Windows Mobile. As far as DirectX goes... There is something called GAPI which was first introduced by Microsoft and improved by another group of developers. So porting DirectX code to Windows Mobile would not be all that difficult I would think.
I think really, a way to go about this is to compile AGSMobile to ARM. Change the graphics library to SDL. By doing this, for every new version of AGS compiled, it would allow the MAC and Linux versions to be ported just as easily because there wouldn't be much to change in the source. Plus, this opens the door for many other ports easily if ever needed.
Then the only things that would change when coding would be going back and forth from DirectX to GAPI.
Now to compile this application on Windows Mobile, you will need a few software packages. For one thing, Visual C++ .net would compile to mobile device. Visual c++ embedded (Which is free) would also do that. I want to include some links just to help us (specifically Chris) out on this:
Pocket PC Wiki: http://en.wikipedia.org/wiki/Pocketpc
GAPI: http://www.wincesoft.de/html/gapi_for_hpc_s.html
Visual c++ Embedded: http://www.microsoft.com/downloads/details.aspx?familyid=1DACDB3D-50D1-41B2-A107-FA75AE960856&displaylang=en
SCUMMVM which uses SDL and has a port to Mobile phones: http://www.scummvm.org
A very small article on SDL: http://mobilephonedevelopment.com/archives/503
Windows CE/Mobile ports of SDL: http://arisme.free.fr/ports/SDL.php
Main SDL Website: http://www.libsdl.org/
A PocketPC Emulator from Microsoft so you can test developed applications: http://www.freewarepocketpc.net/ppc-download-standalone-device-emulator-v1-0.html
Graphics library links: http://www.thefreecountry.com/sourcecode/graphics.shtml
Pocket Allegro discussion: http://www.allegro.cc/forums/thread/552755
I know that this may not be feasible for you Chris at this time. But in case you were ever going to consider it and just wanted to know if it were possible, here is all the items I can gather. I hope this provides some insight.
What else do you all think is necessary to clean up the AGS code, make it easier to port to MAC and various versions of Linux and to port it to Windows Mobile?
Such a radical refactoring of the code onto a different library and OS and CPU independance could make AGS run on all sorts of platforms. The advantages are clear, and it'd be a nice thing to see some day.
However, I think all these posts about how to port AGS are a bit patronising for CJ. Any decent coder knows what parts of their code are platform specific, and how they'd go about moving it to another platform. Remember CJ moved from DOS to Windows already. If he decides to do something like that he won't need technical advice from people on the forums. The reason it doesn't happen is it's a lot of work and people request all sorts of different platforms CJ would be unable to support. If someone with the abilities and time to maintain a port steps forward, then there's something to talk about.
Actually I remember in one of those other threads, Chris actually said that he wasn't sure which processor to port the software too (Arm, MIPS, Xscale, SH3). Plus, as a programmer, your only familiar with porting software to the platforms you work with.
But your right, it could be mis-interpreted and mocking in a way. But that was not my intent for it all. I hope Chris does not take offense for it.
Yeah I don't mean he'll know all the details, or it's highly insulting, just that it's fairly clear a lot of work would be involved getting rid of all the Windows and Allegro specific things. It's quite a big thing to ask for him to do alone.
Yeah it is. I feel bad for asking it. But other than at work, I dont even have a pc anymore. I live off of my handheld. And I finished all the ScummVM and sierra games already, all except for Indy jones and the last crusade and fate of atlantis. And I would love to play the hundreds of AGS games on my PPC. And this has been something that a lot of people would have wanted.
Perhaps someone who knowledge in C++ can offer to help Chris like Steve and ETG did who could do a port. I would love to take a shot at it, but I Am not that good at c++. I can get it done, but you wont even see a beta for atleast a year and a half to maybe two years with me working on it.
But your right again. Chris, this is of course just a suggestion of how using those libraries might improve portability. But I am in no way trying to force a port. Just thought I would bring some more insight on this and see what more insight others can offer (even though we have done this before). Sorry if I offended you.
If I did, I beg forgiveness (http://tbn0.google.com/images?q=tbn:Xl6ylsnKzuTq5M:http://us.ent4.yimg.com/movies.yahoo.com/images/hv/photo/movie_pix/dreamworks_skg/shrek_2/pussbigeyes.jpg)
Ah, if only it were truly cross-platform. However, for now I'm settling for WINE and Mono.
One interesting note is that libraries such as GTK and QT (linux interface libraries) have been ported to Windows, as well as mobile devices. If one could make AGS use those libraries, porting to different platforms would be (assumably) easier. However, a code re-write is no simple task, and I'm guessing that getting full backward compatibility is a task in itself.
Ah well, maybe someday soon!