Donate Share

ScummVM

Tracker: Patches

5 Android port - ID: 2603856
Last Update: Comment added ( fingolfin )

Preliminary Android port.

- Lacks a mouse cursor and trackball support.
- ports.mk additions are a bit of a mess (and configure doesn't Just Work).


Angus Lees ( anguslees ) - 2009-02-15 23:52

5

Open

None

Nobody/Anonymous

New port

None

Public


Comments ( 14 )

Date: 2009-11-25 14:13
Sender: fingolfinSourceForge.net Subscriber and DonorProject AdminAccepting Donations

Good to see some progress. The patch looks a lot better now! Some questions
& remarks:

* Any particular reason your patch removes -Wshadow (in the primary
Makefile) ?

* It seems that in the Java files, you mix space and tab indentions (and
are using 8-space tabs). While we don't explicitly cover Java in our code
formatting guidelines, it would still be good to see all files adhere to
the same style (i.e. exclusively use 4-space tabs for indention)

* In base/commandLine.cpp, why change the printf(USAGE_STRING, ..) to an
error() ?

* The hack in common/util.cpp (to make it use LOGW instead of fprintf
hopefully can soon be removed on trunk; I am working on abstracting away
any console output code.

* I know it's extra work, but we need a patch against trunk -- we
certainly don't want to merge this code into the 1.0.0 branch (which is bug
fixes only at this point).

* Can't comment on the ThemeEngine changes right now, need to look at it
closer to see what the problem is and what you are doing to overcome it.

* I don't understand why you mess with ports.mk at all -- all of this
could and should be in your own backends/platform/android/android.mk file.
That's how other backends do it. In trunk it's even simpler to do that, you
just have to set _port_mk in configure to point to your port specific .mk
file.




Date: 2009-11-25 13:34
Sender: anguslees

Here is the latest diff.

Note in particular that I have changed from adding an android filesystem
/ASSET hack to a much cleaner android asset archive (and
addSysArchivesToSearchSet) - so kyra.dat, etc could be found inside the
android package. Unfortunately themes were found via direct FSDirectory
filesystem lookups and couldn't cope with a zip inside a zip (as the
theme-inside-android-package effectively is). In this patch, I've done a
reasonable first attempt at converting ThemeEngine to use archives, but it
could be cleaned up further and will unfortunately break unarchved themes.

I've moved a lot of the ports.mk mess into configure where it should be.
Let me see how much of ports.mk I can remove now and we might actually be
in good shape to talk about merging.


Date: 2009-10-22 19:51
Sender: fingolfinSourceForge.net Subscriber and DonorProject AdminAccepting Donations

What is the status of this item?


Date: 2009-08-30 08:43
Sender: sevSourceForge.net SubscriberProject Admin

What is the status of this item?


Date: 2009-08-03 15:07
Sender: directhexAccepting Donations

AFAIK it should be no different to the Magic, but on the Hero, I've
observed a few issues which ought to be resolved:
* No way to enter text - prevents skipping through MI2 copy protection
screen
* No way to click when using trackball - trackball clicks are seemingly
ignored, only touchscreen behaves
* - As part of this, consider making the search button behaviour
context-sensitive - i.e. holding it is right-click when using the
touchscreen, tapping it simply right clicks at the current cursor position
(otherwise it makes it awkward to right-click when using the trackball)


Date: 2009-06-23 20:56
Sender: fingolfinSourceForge.net Subscriber and DonorProject AdminAccepting Donations

What is the status of this item?


Date: 2009-06-07 11:10
Sender: sevSourceForge.net SubscriberProject Admin

What is the status of this item?


Date: 2009-04-21 13:40
Sender: fingolfinSourceForge.net Subscriber and DonorProject AdminAccepting Donations

Thanks for the update in the meantime. Looking forward to see further
progress :-).


Date: 2009-04-20 12:39
Sender: anguslees

Ah, it seems this patch doesn't have some of the stuff fingolfin asked for
(like the trivially simple revert of the "generic backend" bit from
configure). Just so you don't think I'm an ass, I am working on them
they're just not in this patch ;)

Oh, and until the toolchain stuff is worked out and configure/ports.mk
cleaned up, I'm not making a serious request for addition to the scummvm
tree. Consider this a statement of my good intent, and a poor man's svn
branch.


Date: 2009-04-20 12:22
Sender: anguslees

This is the patch from the second market release that I uploaded some time
ago (sorry for the delay).

Visible changes: mouse cursor and trackball support

I tried to fix the issues fingolfin raised with this patch, but there's
more to be done. There's still some build mess left in ports.mk and issues
with configure both related to the poor Android toolchain. I'm
experimenting with alternate toolchain choices so hopefully this ugliness
can go away once I find a better stage2 compiler. Ditto with my warning
flags hack.


Date: 2009-04-10 15:05
Sender: fingolfinSourceForge.net Subscriber and DonorProject AdminAccepting Donations

What is the status of this item?


Date: 2009-02-27 03:53
Sender: fingolfinSourceForge.net Subscriber and DonorProject AdminAccepting Donations

gus, any replies / comments? :)


Date: 2009-02-22 11:39
Sender: sevSourceForge.net SubscriberProject Admin

Yeah, the port is pretty well structured. And thank you for following our
code formatting conventions.

And yeah, ports.mk should go to platform-specific directory. Our makefile
system will pick that up.



Date: 2009-02-18 19:32
Sender: fingolfinSourceForge.net Subscriber and DonorProject AdminAccepting Donations

Thanks. However, the patch doesn't apply, it fails to create
backends/platform/android/android.cpp. I think you may have done an "svn
cp" of the null backend driver. So, I manually copied backends/null/ to
backends/android and renamed null.cpp in the copy to android.cpp, and then
the patch applied.

Overall, it looks very well. A few comments
* The ports.mk changes are indeed messy (you already mentioned that ;).
How about resolving this by moving your changes in there to your module.mk,
i.e. backends/platforms/android/module.mk?

* I wonder about the second change to configure, where you modify the *)
case to add
DEFINES="$DEFINES -DUSE_$(echo $_backend | tr a-z A-Z)_DRIVER"
MODULES="$MODULES backends/platform/$_backend"
The idea seems to be to add "generic" support for backends which are not
explicitly listed -- i.e. android. So, the user could type
./configure --backend-foobar
and configure would run through. I am not sure this is a good idea. AT the
very least, it should check whether backends/platform/foobar *exists* in
the first place. But overall, I think I'd prefer an explicit list of
supported backends in case statement.

* The Makefile changes (to the warnings) of course can't stay that way. If
-pedantic and -Wshadow cause errors for you, it would be nice to know
which, to see if we can fix them. Failing that, we could think about only
enabling those compiler switches if a certain configure option is used
(e.g. --enable-extra-warnings).

All in all, good work! :)


Attached Files ( 3 )

Filename Description Download
scummvm-android.patch.gz Initial android port - as uploaded to android marketplace Download
scummvm.patch.gz Source patch for second Android marketplace release Download
scummvm-android.patch.gz Diff for latest market upload ("release 6") - against branch-1-0-0 r45736 Download

Changes ( 4 )

Field Old Value Date By
File Added 352465: scummvm-android.patch.gz 2009-11-25 13:36 anguslees
File Added 323630: scummvm.patch.gz 2009-04-20 12:24 anguslees
category_id None 2009-03-16 05:05 fingolfin
File Added 313705: scummvm-android.patch.gz 2009-02-15 23:52 anguslees