Page 1 of 1

android

Posted: Sat Feb 29, 2020 1:14 am
by JessicaJones
Where can I find instructions for compiling mame source to android?
Especially making an apk file for android.

Re: android

Posted: Sun Mar 01, 2020 11:13 am
by Trick
Here's a guide for the tiny build posted by Micko on https://forums.bannister.org. As far as I can gather neither the full or arcade builds are currently possible, unless somebody wants to correct me.

1. Update repositories
pacman -Sy

2. Install/update needed packages
pacman -S mame-essentials android-ndk android-sdk java

3. Restart console so new env.bat is actually called and set.

4. go to mame folder and run build :
make SUBTARGET=tiny android-arm -j9

5. If you wish to build for other platforms do that as well:
make SUBTARGET=tiny android-mips -j9
make SUBTARGET=tiny android-x86 -j9

6. go to android-project folder and run :
gradlew assemble


7. in android-project\app\build\outputs\apk\ there are generated APK files that you can install on any device running 4.3 and up (API 18)

On Linux and OSX you need to install Android NDK, Android SDK and Java.

Scripts assume that you have:
ANDROID_NDK_ROOT pointing to root of NDK
ANDROID_NDK_ARM pointing to android-ndk\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64

and so on for MIPS and X86
JAVA_HOME pointing to root of Java SDK
and
ANDROID_HOME pointing to root of Android SDK

points from 3-7 are same on Linux and OSX

-

If you do attempt another build (e.g. make -j9 android-arm SUBTARGET=arcade or make -j9 android-arm) you will probably get this error:

Compressing src/mame/layout/chsuper.lay...
Compressing src/mame/layout/vd.lay...
Compressing src/mame/layout/einvader.lay...
Compressing src/mame/layout/h2hbaskb.lay...
Compressing src/mame/layout/escmars.lay...
Creating ../../../../android/bin/arm/Release
Precompiling src/emu/emu.h...
In file included from ../../../../../src/emu/emu.h:21:
In file included from D:\msys64\vendor\android-ndk/sources/cxx-stl/llvm-libc++/libcxx/include\list:174:
In file included from D:\msys64\vendor\android-ndk/sources/cxx-stl/llvm-libc++/libcxx/include\memory:604:
In file included from D:\msys64\vendor\android-ndk/sources/cxx-stl/llvm-libc++/libcxx/include\iterator:335:
In file included from D:\msys64\vendor\android-ndk/sources/cxx-stl/llvm-libc++/libcxx/include\iosfwd:90:
In file included from D:\msys64\vendor\android-ndk/sources/android/support/include\wchar.h:75:
D:\msys64\vendor\android-ndk/sources/android/support/include\stdio.h:41:15: fatal error: 'stdio.h' file not found
#include_next <stdio.h>
^
1 error generated.
precompile.make:316: recipe for target '../../../../android/obj/arm/Release/emu.h.gch' failed
make[2]: *** [../../../../android/obj/arm/Release/emu.h.gch] Error 1
makefile:85: recipe for target 'precompile' failed
make[1]: *** [precompile] Error 2
makefile:1274: recipe for target 'android-arm' failed
make: *** [android-arm] Error 2

[MINGW64] D:\msys64\src>