Android port (OpenXcom)

From UFOpaedia
Revision as of 16:30, 14 June 2014 by Sfalexrog (talk | contribs)
Jump to navigation Jump to search

v1.0

There is a work-in-progress port to Android of OpenXcom here: github link

Installation instructions

  • Install OpenXcom on your PC/Mac and make sure it's working. You'll need original data for this step.
  • Get the OpenXcom apk from the official site or android port forum thread and install it on your device. Note that the builds in the forum thread are signed with a debug certificate, so you'll need to uninstall first if you're coming from an earlier build.
  • Copy the contents of your data folder from PC/Mac to /sdcard/OpenXcom/data on your device.
  • That's it! You're good to go.

Differences from PC version

Geoscape

  • Base naming dialogue box is moved higher than in the PC version; this is required to prevent on-screen keyboard from obscuring the input field.
  • You can cancel the placement of your first base if you accidentally put it in the wrong place (but see Known Issues).
  • Globe drag-scrolling is enabled by default.
  • You can pinch-zoom the globe.

Battlescape

  • Path preview and shoot preview are enabled by default.
  • Drag scrolling is enabled by default.
  • Turning is done by swiping from your soldier in the direction you want him to turn.

Known issues

  • There is currently no way to force firing.
  • If you cancel building your first base, the base will still be on the globe. It's just a graphical glitch, the base will disappear as soon as you select a new place for it.
  • Advanced options menu gets filled with duplicate items if you quit the game by using the "Quit game" button and then re-open it. You have to "swipe" it from recents to prevent this from happening.
  • The game won't recognize your device's locale. You'll still be able to select your language in the options menu.
  • Display filters are not yet properly supported. The only two options that actually work is "Disabled" and "Linear".

v0.9

There is a work-in-progress port to Android of OpenXcom here: github link

I just want to play

Ok, so if you're too lazy to build it ;) and just want to give it a try, here are the steps you should follow:

  • Get the beta3 apk from here and install (you'll have to trust me on this, but it only asks for filesystem access)
  • Get the OpenXcom data. Unzip all of this in your phone under /storage/sdcard0/openxcom (you should have a /sdcard simlink, so /sdcard/openxcom should work too). If you have an external sd card, you can also place it there (/storage/extSdCard/openxcom).
  • You also need a copy of the original data (you can get that in many places if you don't have it, like steam). Copy the following folders in the same place (/sdcard/openxcom/data): GEODATA GEOGRAPH MAPS ROUTES SOUND TERRAIN UFOGRAPH UFOINTRO UNITS
  • Another, easier way to get the proper data would be to install the desktop version of OpenXcom, then copy the contents of its data folder to /sdcard/openxcom/data. Note that you STILL need the original data during the desktop OpenXcom installation.

Building from sources (linux)

So you're in for the hard route. It's been a while since I set up my build env so I might miss some detail, but I'll try to give an overview of how to build and point out the main caveats you may encounter:

  • Install android sdk & ndk
  • Check out the android branch from my github clone mentioned above
  • Put all the dependencies sources in the jni folder. Simlinks come in really handy, mine ended up looking like this:
[page@leaf:~/dev/OpenXcom/android]$ ls -l jni/
total 10
-rw-r--r--  1 page users   37 13 mai 21:43 Android.mk
-rw-r--r--  1 page users  216 18 mai 02:19 Application.mk
lrwxrwxrwx  1 page users   64 11 nov  2013 boost -> /nix/store/jqahwzcg7lags4k21vhr2d8zq931c359-boost-headers-1.54.0
lrwxrwxrwx  1 page users   37 16 nov  2013 libmikmod -> SDL2_mixer/external/libmikmod-3.1.12/
lrwxrwxrwx  1 page users   34 16 nov  2013 libwebp -> SDL2_image/external/libwebp-0.3.0/
lrwxrwxrwx  1 page users   28 11 nov  2013 SDL -> /home/page/dev/3rdparty/SDL/
lrwxrwxrwx  1 page users   21 11 nov  2013 SDL2_image -> /tmp/SDL2_image-2.0.0
lrwxrwxrwx  1 page users   21 16 nov  2013 SDL2_mixer -> /tmp/SDL2_mixer-2.0.0
drwxr-xr-x 10 page users 1736  1 mai 17:20 SDL_gfx
lrwxrwxrwx  1 page users   33 16 nov  2013 smpeg -> SDL2_mixer/external/smpeg2-2.0.0/
drwxr-xr-x  2 page users  120 18 mai 02:19 src
lrwxrwxrwx  1 page users   20 11 nov  2013 yamlcpp -> /tmp/yaml-cpp-0.5.1/
  • SDL version used is written in the changelog below
  • Notice that it's SDL_gfx, not SDL2_gfx. Also, you need to apply this patch (only present in svn, not latest tarball) for it to compile against SDL2.
  • Go to android folder and run 'ndk-build' and 'ant debug' (for release you need to setup a key)
  • If you have your android device plugged in, 'ant debug install'

Differences with PC version (battlescape)

  • Path preview is enabled by default
  • Shoot works in the same way as path preview, first press to aim, second to shoot
  • Phone back button acts as right button (quits shooting mode, for instance)
  • Swipe map to scroll
  • Swipe from selected soldier to make him turn and open doors

Known issues

  • Don't leave the game while in text enter mode. When going back, it won't reappear and you'll be stuck editing the text.
  • On a few devices, the colors appear wrong (shades of pink). It can be worked around by disabling the 'hardware overlay' in 'developer settings'

Changelog

  • beta3 (13/05/14)
    • Update to upstream 9d292a2a82
    • Update SDL2 to 8767
    • OGG music is no longer needed (thanks to upstream)
    • Music no longer plays when entering background
    • Fixed turning on change soldier bug
    • Swiping map to scroll doesn't update destination position
  • beta2(r1) (21/02/14)
    • Update to upstream 0d04dcc
    • Update SDL2 to 8225
    • Exiting the app now works (thanks to SDL update)
    • Fixes #460 (exit units stats page with back button)
  • beta1

Contact

You can post on the forum thread or try to reach me on irc channel openxcom@freenode (nick 'page').