Android and IOS ports

General chat related to ScummVM, adventure gaming, and so on.

Moderator: ScummVM Team

Post Reply
trev186
Posts: 32
Joined: Mon Oct 11, 2010 4:41 pm

Post by trev186 »

Scale wrote:
trev186 wrote:
somaen wrote:Well, seeing as we have no official Android port, that isn't currently our problem.

Sorry for the vague wording. I meant it was the problem of those working on the Android port in this thread.

The residualvm team have done a great job.

Just hoping we get the porter to implement overlays into the currently near perfect Android version previously linked.

I am sure he could setup a donation app and make a mint on the market...
Er i rather hope the money gets spend back into Residual, and more engines get made :)
That would be preferable. Something to think about some emulator devs have made close to $million for doing something as simple as a port of a SNES emulator to Android....
anto135
Posts: 4
Joined: Mon Mar 15, 2010 12:20 am

Post by anto135 »

Just wanted to say thanks for the port, id pay for this if it was on the play store.
anto135
Posts: 4
Joined: Mon Mar 15, 2010 12:20 am

Post by anto135 »

Just wanted to say thanks for the port, id pay for this if it was on the play store.
Edit:delete my other post and has anyone tried mi4 on there android yet.
User avatar
somaen
ScummVM Developer
Posts: 376
Joined: Thu Apr 21, 2011 7:31 pm
Location: Trondheim, NO

Post by somaen »

MI4 isn't TOO much to write home about in ResidualVM yet, you can complete the first island in the regular builds, but the software rendering is quite a lot heavier than in Grim (the models are way more complicated).

On another note, is there anything done in this port that is worthwile to push to our codebase (code-changes), or is it mostly a case of building the code as-is on android at this point?
anto135
Posts: 4
Joined: Mon Mar 15, 2010 12:20 am

Post by anto135 »

Just wanted to add I downloaded mi4 and the pc version of residual recognises even tho the initial animation/cutscene was a bit messed up. it diddnt even recognise the game in the android residual, dont know if its the version of mi I downloaded but info for whoever needs it none the less.
Gona wait untill it works on android first though coz id rather play throuh on my phone, even if its only the first island at the mo.
User avatar
somaen
ScummVM Developer
Posts: 376
Joined: Thu Apr 21, 2011 7:31 pm
Location: Trondheim, NO

Post by somaen »

anto135: Please reread the rules, especially #0

http://forums.residualvm.org/viewtopic.php?t=2
trev186
Posts: 32
Joined: Mon Oct 11, 2010 4:41 pm

Post by trev186 »

It would be great if the dev who made the near perfect Android (sans the on screen controls) would post his source for the his ap.

An Android app could bring some more publicity the Residualvm project
hennymcc
Posts: 16
Joined: Sun Apr 01, 2012 10:23 pm

Post by hennymcc »

trev186: which dev do you mean? Seems meanwhile there are some builds around at the moment.

It gets very confusing at the moment to find out, what has to be added to the residualvm sources to get an improved android app. So this is a try to gather the information of this forum a bit.

= residualvm (built-in, but not officially supported) ====

On "Mon Oct 08, 2012 2:07 am" (seems as if the posts are not numbered) trev186 wrote, that somebody started an android version. The link points to residualvm with the code that I provided to residualvm about 8 months ago. Everything (except visible controls) works in there. Touch navigation is possible by pressing the edges and center area of the screen (although this might not be as comfortable as an overlay gamepad). Although it only supports software rendering you will get about 30 fps on recent smartphones if the sources when it was compiled specially for the ARMv7-a architecture (use "android-v7a" in configure step).

I have already played a bit with OpenGL but GLES 1.0 was not very promising for Grim Fandango (although Myst might work fine). On my Samsung Galaxy S plus rendering of only the 3D objects was slower than with software rendering (about 10 fps). Maybe because the drivers did GLES 1.0 rendering by software too. GLES 1.0 also misses some features that are needed to draw the backgrounds correctly. You cannot really combine GLES 1.0 mesh drawing (as this was even slower for me than software rendering I don't even see a benefit there) and native rendering for the backgrounds.
Although it might only be an issue with my gfx-driver version that 3D rendering is slow, in my opionion the way to go would be GLES 2.0, simply because you cannot render the backgrounds correctly with GLES 1.0. If there is a way to do it with GLES 1.0 without any model specific extensions, this would be cool.

Although as most nowadays smartphones are android-v7a I think that software rendering is OK for now and the missing OpenGL support is not a show stopper.

For the controls: As already mentioned preliminary controls are in. It should also be possible to use a bluetooth keyboard or the app that Gillou68310 mentioned (although this might conflict with the already in-built controls).

The above mentioned code and features are already part of the residualvm main branch. I think the reason why it is not officially supported yet is that the controls are not as good as they should be to provide it to the public as many users might complain about it.

Back then I stopped with 99% as I thought that simple touch support without visual buttons might work for the beginning as overlay gamepads would take some more time.
But as Gillou68310 removed them and replaced them with a visual one and seems it is not. As nobody else here in the forum seems to use the non-visual controls (could also be possible because of the lack of an apk) it seems that the built-in controls will not be suitable for a wider range of people. In addition it was just a hack to get these simple controls into residualvm and they should be replaced by something cleaner.

= Gillou68310 (support for visual keyboard app) ===========

Gillou68310 wrote on "Mon Oct 08, 2012 2:20 pm" that he compiled residualvm for android and provided the apk for people to test. He also modified the sources so that it works with the "GameKeyboard" app. I guess he removed the built-in touch support and modified the keyboard mappings but as there are no sources for these modification I do not know exactly. Would be nice if Gillou68310 could provide his changes so that they could be merged into residualvm if they are not that "GameKeyboard" specific.

With "For now there is no built-in virtual gamepad to control the game, ..." I think he meant that there a no built-in _visual_ controls as a built-in touch gamepad is already available in residualvm but it does no have visual buttons.

Although its great to have visual controls by this you still need an external app, so this will not solve the problem with missing overlays in residualvm (or scummvm).

-------------------------------------

If I got it right the last build from Gillou68310 only uses android-v7a compile flag and hence has a higher frame rate but is otherwise identical to the first build

= Pandora Port =================================

On "Tue Oct 09, 2012 9:55 am" mammoth5000 talks about a pandora port. I guess he did not port the pandora implementation to android but used the pandora port on a pandora. Porting the pandora port to android would also make no sense as the port does not implement visual controls.

I guess that the pandora port is the one already merged into residualvm it probably does not support GLES (and probably does not need it as it might work with the already existing OpenGL implementation).

= sdl-lib (Lubomyr / Pelya) =========================

On "Wed Oct 10, 2012 12:05 am" trev186 that Lubomyr did a release of sdl-lib that supports residualvm.
sdl-lib is some kind of a wrapper which already provides a built-in overlay gamepad. You have to modify the build scripts a bit and then you can compile the residualvm branch almost without modification and have visual controls.

This is the approach that I started first before using the native approach without sdl-lib 8 months ago in "https://github.com/tobigun/commandergen ... residualvm".
Unfortunatelay the git repo above already is a git fork of Pelya's work so he did the same work again. Maybe I should have informed him after commiting the changes to my git repository 10 months ago.

As the sdl-lib approach implements game controls in sdl-lib directly and not in residualvm, there is nothing to add to residualvms code base. At least the changes in my sdl-lib port only added joystick support for residualvm. Nothing else had to be done (only changing the build scripts a bit).
Joystick support was not merged into residualvm yet, as the controls were hard-coded for grim-fandango and will most probably not work with other games. So this dirty fix has to be cleaned up a bit until they are ready to be added to residualvm.

According to the diff file "Source-cfg-diff" on Lubomyr's page ("http://anddev.at.ua/load/residualvm_0_2 ... y/1-1-0-19") only the build scripts were modified slightly. As these are sdl-lib specific they do not need to be added to residualvm.

= Gillou68310 GLES port =========================

On "Fri Oct 19, 2012 9:31 am" Gillou68310 posted a GLES 1.0 based port of residualvm (Myst works but not Grim Fandango). Maybe Gillou68310 could compare it with my GLES 1.0 git (also full support for Myst and partly GF) branch and merge it.
But as it seems only Myst will work with GLES 1.0. I do not know how much work it will be to have Myst with GLES 1.0 and GF with GLES 2.0 as they need different graphical configurations already when residualvm starts up. Switching later might be possible but a lot of work.

---------------------------------------

Although the Myst code might still change a lot and so the GLES 1.0 code has to be adjusted too. So this will probably have to wait until Myst is a bit more complete.

====================================================

As it seems everything is already merged into residualvm. What is missing are gamepad overlays (would be great to have one common solution for scummvm and residualvm) and GLES 2.0 support.
If somebody wants to work on this, please contact somaen or another one of the residualvm team members.

So many thanks to Gillou68310, Lubomyr and all the others for their interest in the android port and the work on their ports and patches.

I hope the summary is correct and I did not talk the work of anybody down.
hennymcc
Posts: 16
Joined: Sun Apr 01, 2012 10:23 pm

Post by hennymcc »

I just checked Gillou68310's build. He at least enabled joystick support.

Gillou68310: could you please post the changes here?
Could you also compare it to the changes to the file backends/events/sdl/sdl-events.cpp ("https://github.com/tobigun/residualvm/c ... b30294f6ec") that I did to get the joystick working for SDL.
With this patch android gamepad apps should work too with the code in the residualvm repo.

The solution above was just a dirty hack so it did not get into residualvm. Maybe Gillou68310 has a better solution.

Edit:
Sorry, the above does not apply to android as it does not use SDL (only Pelya's sdl-lib build). But maybe it can be used as a base to get joysticks to work on PC.
Last edited by Guest on Sat Jan 12, 2013 5:14 pm, edited 1 time in total.
hennymcc
Posts: 16
Joined: Sun Apr 01, 2012 10:23 pm

Post by hennymcc »

Gillou68310 posted the code of the OpenGL port. So I just compared this one with the residualvm code.

Apart from the OpenGL code this is what I found:
http://pastebin.com/3rQfTfBH

It is related to joystick support. Maybe these changes can be added to residualvm, at least for JE_DPAD which is a no-op at the moment. The other changes (/*!_show_mouse*/0) just disable the built-in virtual gamepad.
trev186
Posts: 32
Joined: Mon Oct 11, 2010 4:41 pm

Post by trev186 »

trev186 wrote:
Gillou68310 wrote:
Do u have a link to the .apk that gets 40 FPS ?
http://dl.dropbox.com/u/27654797/Residualvm_apk.zip
Do I just put my games in the ResidualVm folder ?
sorry for being too vague previously...I was talking about the version of Residual VM for Android linked above. Grim Fandango can be beaten on Android with this app...all that is missing is overlays to be a really great app.

If the residual VM devs were able to include overlays and publish this on Google Play they could make a free and donation version and bring a lot of funding to the project.
hennymcc
Posts: 16
Joined: Sun Apr 01, 2012 10:23 pm

Post by hennymcc »

Here is a version of the current residualvm repository. Additionally I applied the following patch (https://github.com/residualvm/residualvm/pull/708) for joystick support:
https://www.dropbox.com/s/yx5sgkgtt3xea ... dualvm.apk

Maybe those who tried Gillou68310's apk can check this and report if anything from his build is missing.

This build has the built-in (non-visual) game controls from the residualvm repo. So you can control this game without an additional app. Just use the edges for moving and the center area for actions (in a previous post in this forum I described the controls in more detail).

Due to the patch it also supports software gamepad apps like "GameKeyboard" or the free "GamePad" (after grim fandango was started, press the menu-button for a few seconds until the gamepad shows up. You first have to setup the app correctly, otherwise the default keyboard will show up), and also real game controls like the xperia play or bluetooth controllers and hence should have the same functionality than that of Gillou68310.

Please note:
although this is compiled from the official residualvm repository, support for android is not official. So if something does not work correctly, report problems here and not in the official bugtracker but do not expect any support for it. Almost all problems I encountered so far were not android specific, so please check if the same problem occurs with the desktop version.

There is one issue with the built-in gamepad. As it only supports the "examine" (double tap) and "use" (single tap) actions and not the pick-up action you will not be able to use the bone pulverizer in the theatre.
At least until this position the android port was playable.

It seems that in some cases the options in residualvm do not work correctly with later revisions of residualvm, so fullscreen mode might be disabled for some reason (this is probably not a bug in the android port but in the option-subsystem).
So if the built-in controls do not work but you see a black square moving around the screen, then for some reason fullscreen mode is deactivated. To fix this, go into the game options for grim fandango in the residualvm game starter before you start grim fandango. Goto the graphics tab, select "override" and "fullscreen" and then leave the options-dialog and start GF.
trev186
Posts: 32
Joined: Mon Oct 11, 2010 4:41 pm

Post by trev186 »

hennymcc wrote:Here is a version of the current residualvm repository. Additionally I applied the following patch (https://github.com/residualvm/residualvm/pull/708) for joystick support:
https://www.dropbox.com/s/yx5sgkgtt3xea ... dualvm.apk

Maybe those who tried Gillou68310's apk can check this and report if anything from his build is missing.

This build has the built-in (non-visual) game controls from the residualvm repo. So you can control this game without an additional app. Just use the edges for moving and the center area for actions (in a previous post in this forum I described the controls in more detail).

Due to the patch it also supports software gamepad apps like "GameKeyboard" or the free "GamePad" (after grim fandango was started, press the menu-button for a few seconds until the gamepad shows up. You first have to setup the app correctly, otherwise the default keyboard will show up), and also real game controls like the xperia play or bluetooth controllers and hence should have the same functionality than that of Gillou68310.

Please note:
although this is compiled from the official residualvm repository, support for android is not official. So if something does not work correctly, report problems here and not in the official bugtracker but do not expect any support for it. Almost all problems I encountered so far were not android specific, so please check if the same problem occurs with the desktop version.

There is one issue with the built-in gamepad. As it only supports the "examine" (double tap) and "use" (single tap) actions and not the pick-up action you will not be able to use the bone pulverizer in the theatre.
At least until this position the android port was playable.

It seems that in some cases the options in residualvm do not work correctly with later revisions of residualvm, so fullscreen mode might be disabled for some reason (this is probably not a bug in the android port but in the option-subsystem).
So if the built-in controls do not work but you see a black square moving around the screen, then for some reason fullscreen mode is deactivated. To fix this, go into the game options for grim fandango in the residualvm game starter before you start grim fandango. Goto the graphics tab, select "override" and "fullscreen" and then leave the options-dialog and start GF.
thank you for posting that hennymcc

not sure if this helps but another dev took one of the earlier (slower) sources from this thread and made a port with touch overlays:

http://anddev.at.ua/load/residualvm_0_2 ... y/1-1-0-19

Any chance we can use the same overlays he setup? I have seen that same overlay in several apps on Android.
hennymcc
Posts: 16
Joined: Sun Apr 01, 2012 10:23 pm

Post by hennymcc »

That is the port I described in the section "sdl-lib (Lubomyr / Pelya)".

It is kind of a wrapper around an almost unmodified residualvm. Game controls are implemented in the wrapper itself. Probably there is not much that can be used in residualvm as the controls are probably drawn with SDL which is not used by the native android port.

In addition the configuration of the controls is done by a configuration dialog that is started before residualvm is started, so nothing that can be used from this too.
trev186
Posts: 32
Joined: Mon Oct 11, 2010 4:41 pm

Post by trev186 »

hennymcc wrote:That is the port I described in the section "sdl-lib (Lubomyr / Pelya)".

It is kind of a wrapper around an almost unmodified residualvm. Game controls are implemented in the wrapper itself. Probably there is not much that can be used in residualvm as the controls are probably drawn with SDL which is not used by the native android port.

In addition the configuration of the controls is done by a configuration dialog that is started before residualvm is started, so nothing that can be used from this too.
Would it be possible to apply the wrapper to the current playable/fast build ? If so then we would have at least a temporary solution for real touch controls
Post Reply