JessicaJones
Posts: 12
Joined: Sat Nov 30, 2019 11:51 pm

android

Where can I find instructions for compiling mame source to android?
Especially making an apk file for android.

Trick
Posts: 10
Joined: Fri Jul 01, 2016 6:49 am

Re: android

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>

Return to “MAME Discussion”