State of the Android port (1.5-2.1)
Moderator: ScummVM Team
It does run on android, but only on 1.5 and 1.6flitzjoy wrote:I´m really disappointed that scumm isnt ready yet to run on Android. Being a huge Lucas Arts Adventures fan and a previously owner of Symbian and WinMo phones, I´m used to have nice games in my pocket.
Please devs take Android as a more relevant priority, its the mobile platform that grows more quickly now.
Just so everyone knows where I'm up to:
- I have rewritten all the audio and asset-reading code to avoid private Android APIs and instead call into supported Java routines.
- I have rewritten the graphics to avoid private Android 2D stuff and instead use (supported) OpenGLES.
- the port still uses my custom arm-android-eabi toolchain (not off-the-shelf NDK) since when I tried the NDK I hit some toolchain bugs. I'll tackle this one later.
So in theory, this should work properly on all Android versions 1.5 and newer (on arm CPUs). It will unfortunately use more memory+cpu than previous versions, but I haven't noticed any problems on my slower devices (Archos5 (software GL) and G1).
Fwiw I flip-flopped back and forth between GLES and other 2D approaches several times since neither was as efficient as the direct Surface access that I use currently. I think GL is the right choice long-term, since it should only get faster, while the 2D stuff will likely fall farther behind.
Remaining showstopper bugs:
- There are a few cases where portions of the screen don't get updated correctly - I need to double check my dirty rectangle tracking code.
- It works on all my other devices/emulators, but on my G1 I only get a black screen :( Probably something "special" about its GL implementation.
- There is some change in Android 2.0+ dynamic linker that completely breaks symbol resolution when loading plugins.
The last one looks the same as what hit some cyanogenmod versions too. I'm building an Android2.0 system image with extra linker debugging enabled so I can single-step through the linker and see what's going on. Fun.
- I have rewritten all the audio and asset-reading code to avoid private Android APIs and instead call into supported Java routines.
- I have rewritten the graphics to avoid private Android 2D stuff and instead use (supported) OpenGLES.
- the port still uses my custom arm-android-eabi toolchain (not off-the-shelf NDK) since when I tried the NDK I hit some toolchain bugs. I'll tackle this one later.
So in theory, this should work properly on all Android versions 1.5 and newer (on arm CPUs). It will unfortunately use more memory+cpu than previous versions, but I haven't noticed any problems on my slower devices (Archos5 (software GL) and G1).
Fwiw I flip-flopped back and forth between GLES and other 2D approaches several times since neither was as efficient as the direct Surface access that I use currently. I think GL is the right choice long-term, since it should only get faster, while the 2D stuff will likely fall farther behind.
Remaining showstopper bugs:
- There are a few cases where portions of the screen don't get updated correctly - I need to double check my dirty rectangle tracking code.
- It works on all my other devices/emulators, but on my G1 I only get a black screen :( Probably something "special" about its GL implementation.
- There is some change in Android 2.0+ dynamic linker that completely breaks symbol resolution when loading plugins.
The last one looks the same as what hit some cyanogenmod versions too. I'm building an Android2.0 system image with extra linker debugging enabled so I can single-step through the linker and see what's going on. Fun.
-
- Posts: 12
- Joined: Thu Aug 27, 2009 7:27 pm
-
- Posts: 2
- Joined: Fri May 28, 2010 7:48 pm
-
- Posts: 12
- Joined: Thu Aug 27, 2009 7:27 pm
-
- Posts: 2
- Joined: Fri May 28, 2010 7:48 pm
Well, I have a moto droid (2.1), but my coding skills are probably not up to par with you guys. I'm willing to do some testing if you guys need help in that regard though!fingolfin wrote:Ah, if there just were more of you who don't just want to try it on the Nexus, but who also had the ability to help out with making this possible...
my first attempt to compile and run scummvm for Android (all version)
compiled original sources without any changes
temporary only with one engine scumm
tested on my Samsung i5700 Spica (Android 2.1)
http://anddev.at.ua/news/scummvm_port_i ... 10-06-02-1[/url]
compiled original sources without any changes
temporary only with one engine scumm
tested on my Samsung i5700 Spica (Android 2.1)
http://anddev.at.ua/news/scummvm_port_i ... 10-06-02-1[/url]