<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.mamedev.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Micko</id>
	<title>MAMEDEV Wiki - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.mamedev.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Micko"/>
	<link rel="alternate" type="text/html" href="https://wiki.mamedev.org/index.php?title=Special:Contributions/Micko"/>
	<updated>2026-04-28T00:14:58Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.mamedev.org/index.php?title=Android&amp;diff=8451</id>
		<title>Android</title>
		<link rel="alternate" type="text/html" href="https://wiki.mamedev.org/index.php?title=Android&amp;diff=8451"/>
		<updated>2023-02-26T19:05:56Z</updated>

		<summary type="html">&lt;p&gt;Micko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Android build ==&lt;br /&gt;
&lt;br /&gt;
First, download and install Android NDK r25c or later by unpacking release &lt;br /&gt;
taken from the Android developer site [https://developer.android.com/ndk/downloads].&lt;br /&gt;
&lt;br /&gt;
To be used, only enviroment variables need to be properly set, as in example:&lt;br /&gt;
&lt;br /&gt;
  export PATH=&amp;quot;$PATH:/opt/android-ndk&amp;quot;&lt;br /&gt;
  export ANDROID_NDK=/opt/android-ndk&lt;br /&gt;
  export ANDROID_NDK_HOME=/opt/android-ndk&lt;br /&gt;
&lt;br /&gt;
Since there is no precompiled SDL2 for Android we need to prepare that as well.&lt;br /&gt;
First is to download latest from SDL github [https://github.com/libsdl-org/SDL/releases/latest].&lt;br /&gt;
In time of writing version was SDL2-2.26.3, but later version should work fine as well.&lt;br /&gt;
&lt;br /&gt;
Next step is to build SDL2 with Android NDK:&lt;br /&gt;
&lt;br /&gt;
  tar xvfz SDL2-2.26.3.tar.gz&lt;br /&gt;
  cd SDL2-2.26.3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To compile for ARM64 (arm64-v8a):&lt;br /&gt;
&lt;br /&gt;
  cmake -S . -B build_arm64 \&lt;br /&gt;
      -DANDROID_PLATFORM=android-24 \&lt;br /&gt;
      -DANDROID_ABI=arm64-v8a \&lt;br /&gt;
      -DCMAKE_INSTALL_PREFIX=~/SDL_Android_arm64 \&lt;br /&gt;
      -DCMAKE_TOOLCHAIN_FILE=&amp;quot;$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake&amp;quot; \&lt;br /&gt;
      -DSDL_SHARED=ON -DSDL_STATIC=ON -DSDL_STATIC_PIC=ON -DSDL_TEST=ON \&lt;br /&gt;
      -DSDL2_DISABLE_SDL2MAIN=OFF -DSDL2_DISABLE_INSTALL=OFF \&lt;br /&gt;
      -DCMAKE_INSTALL_INCLUDEDIR=include -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
&lt;br /&gt;
  make -C build_arm64 install&lt;br /&gt;
&lt;br /&gt;
To compile for Intel x86:&lt;br /&gt;
&lt;br /&gt;
  cmake -S . -B build_x86 \&lt;br /&gt;
      -DANDROID_PLATFORM=android-24 \&lt;br /&gt;
      -DANDROID_ABI=x86 \&lt;br /&gt;
      -DCMAKE_INSTALL_PREFIX=~/SDL_Android_x86 \&lt;br /&gt;
      -DCMAKE_TOOLCHAIN_FILE=&amp;quot;$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake&amp;quot; \&lt;br /&gt;
      -DSDL_SHARED=ON -DSDL_STATIC=ON -DSDL_STATIC_PIC=ON -DSDL_TEST=ON \&lt;br /&gt;
      -DSDL2_DISABLE_SDL2MAIN=OFF -DSDL2_DISABLE_INSTALL=OFF \&lt;br /&gt;
      -DCMAKE_INSTALL_INCLUDEDIR=include -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
&lt;br /&gt;
  make -C build_x86 install&lt;br /&gt;
&lt;br /&gt;
To compile for Intel x86_64:&lt;br /&gt;
&lt;br /&gt;
  cmake -S . -B build_x86_64 \&lt;br /&gt;
      -DANDROID_PLATFORM=android-24 \&lt;br /&gt;
      -DANDROID_ABI=armeabi-v7a \&lt;br /&gt;
      -DCMAKE_INSTALL_PREFIX=~/SDL_Android_x86_64 \&lt;br /&gt;
      -DCMAKE_TOOLCHAIN_FILE=&amp;quot;$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake&amp;quot; \&lt;br /&gt;
      -DSDL_SHARED=ON -DSDL_STATIC=ON -DSDL_STATIC_PIC=ON -DSDL_TEST=ON \&lt;br /&gt;
      -DSDL2_DISABLE_SDL2MAIN=OFF -DSDL2_DISABLE_INSTALL=OFF \&lt;br /&gt;
      -DCMAKE_INSTALL_INCLUDEDIR=include -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
&lt;br /&gt;
  make -C build_x86_64 install&lt;br /&gt;
&lt;br /&gt;
To compile for ARM (armeabi-v7a):&lt;br /&gt;
&lt;br /&gt;
  cmake -S . -B build_arm \&lt;br /&gt;
      -DANDROID_PLATFORM=android-24 \&lt;br /&gt;
      -DANDROID_ABI=armeabi-v7a \&lt;br /&gt;
      -DCMAKE_INSTALL_PREFIX=~/SDL_Android_arm \&lt;br /&gt;
      -DCMAKE_TOOLCHAIN_FILE=&amp;quot;$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake&amp;quot; \&lt;br /&gt;
      -DSDL_SHARED=ON -DSDL_STATIC=ON -DSDL_STATIC_PIC=ON -DSDL_TEST=ON \&lt;br /&gt;
      -DSDL2_DISABLE_SDL2MAIN=OFF -DSDL2_DISABLE_INSTALL=OFF \&lt;br /&gt;
      -DCMAKE_INSTALL_INCLUDEDIR=include -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
&lt;br /&gt;
  make -C build_arm install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After this all is ready for MAME to be built. Note that it can be built for android-arm, &lt;br /&gt;
android-arm64, android-x86 and android-x64. If you are testing with emulator you only need&lt;br /&gt;
android-x86 build, but for real device nowdays android-arm64  will only be needed, and there&lt;br /&gt;
are less and less android-arm.&lt;br /&gt;
&lt;br /&gt;
  make SUBTARGET=tiny SDL_INSTALL_ROOT=~/SDL_Android_x86 android-x86 -j9&lt;br /&gt;
&lt;br /&gt;
This prepared binaries, but still we need to deploy application to device.&lt;br /&gt;
Easiest way is to use Android Studio [https://developer.android.com/studio].&lt;br /&gt;
&lt;br /&gt;
All build features are also available using gradle, next set of commands will&lt;br /&gt;
create debug build and deploy it on connected Android device.&lt;br /&gt;
&lt;br /&gt;
  gradlew assembleDebug&lt;br /&gt;
  gradlew installDebug&lt;/div&gt;</summary>
		<author><name>Micko</name></author>
	</entry>
	<entry>
		<id>https://wiki.mamedev.org/index.php?title=Android&amp;diff=8450</id>
		<title>Android</title>
		<link rel="alternate" type="text/html" href="https://wiki.mamedev.org/index.php?title=Android&amp;diff=8450"/>
		<updated>2023-02-26T19:01:30Z</updated>

		<summary type="html">&lt;p&gt;Micko: Created page with &amp;quot; == Android build ==  First, download and install Android NDK r25c or later by unpacking release  taken from the Android developer site [https://developer.android.com/ndk/down...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Android build ==&lt;br /&gt;
&lt;br /&gt;
First, download and install Android NDK r25c or later by unpacking release &lt;br /&gt;
taken from the Android developer site [https://developer.android.com/ndk/downloads].&lt;br /&gt;
&lt;br /&gt;
To be used, only enviroment variables need to be properly set, as in example:&lt;br /&gt;
&lt;br /&gt;
  export PATH=&amp;quot;$PATH:/opt/android-ndk&amp;quot;&lt;br /&gt;
  export ANDROID_NDK=/opt/android-ndk&lt;br /&gt;
  export ANDROID_NDK_HOME=/opt/android-ndk&lt;br /&gt;
&lt;br /&gt;
Since there is no precompiled SDL2 for Android we need to prepare that as well.&lt;br /&gt;
First is to download latest from SDL github [https://github.com/libsdl-org/SDL/releases/latest].&lt;br /&gt;
In time of writing version was SDL2-2.26.3, but later version should work fine as well.&lt;br /&gt;
&lt;br /&gt;
Next step is to build SDL2 with Android NDK and prepare include files in required form.&lt;br /&gt;
&lt;br /&gt;
  tar xvfz SDL2-2.26.3.tar.gz&lt;br /&gt;
  cd SDL2-2.26.3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To compile for ARM64 (arm64-v8a):&lt;br /&gt;
&lt;br /&gt;
  cmake -S . -B build_arm64 \&lt;br /&gt;
      -DANDROID_PLATFORM=android-24 \&lt;br /&gt;
      -DANDROID_ABI=arm64-v8a \&lt;br /&gt;
      -DCMAKE_INSTALL_PREFIX=~/SDL_Android_arm64 \&lt;br /&gt;
      -DCMAKE_TOOLCHAIN_FILE=&amp;quot;$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake&amp;quot; \&lt;br /&gt;
      -DSDL_SHARED=ON -DSDL_STATIC=ON -DSDL_STATIC_PIC=ON -DSDL_TEST=ON \&lt;br /&gt;
      -DSDL2_DISABLE_SDL2MAIN=OFF -DSDL2_DISABLE_INSTALL=OFF \&lt;br /&gt;
      -DCMAKE_INSTALL_INCLUDEDIR=include -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
&lt;br /&gt;
  make -C build_arm64 install&lt;br /&gt;
&lt;br /&gt;
To compile for Intel x86:&lt;br /&gt;
&lt;br /&gt;
  cmake -S . -B build_x86 \&lt;br /&gt;
      -DANDROID_PLATFORM=android-24 \&lt;br /&gt;
      -DANDROID_ABI=x86 \&lt;br /&gt;
      -DCMAKE_INSTALL_PREFIX=~/SDL_Android_x86 \&lt;br /&gt;
      -DCMAKE_TOOLCHAIN_FILE=&amp;quot;$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake&amp;quot; \&lt;br /&gt;
      -DSDL_SHARED=ON -DSDL_STATIC=ON -DSDL_STATIC_PIC=ON -DSDL_TEST=ON \&lt;br /&gt;
      -DSDL2_DISABLE_SDL2MAIN=OFF -DSDL2_DISABLE_INSTALL=OFF \&lt;br /&gt;
      -DCMAKE_INSTALL_INCLUDEDIR=include -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
&lt;br /&gt;
  make -C build_x86 install&lt;br /&gt;
&lt;br /&gt;
To compile for Intel x86_64:&lt;br /&gt;
&lt;br /&gt;
  cmake -S . -B build_x86_64 \&lt;br /&gt;
      -DANDROID_PLATFORM=android-24 \&lt;br /&gt;
      -DANDROID_ABI=armeabi-v7a \&lt;br /&gt;
      -DCMAKE_INSTALL_PREFIX=~/SDL_Android_x86_64 \&lt;br /&gt;
      -DCMAKE_TOOLCHAIN_FILE=&amp;quot;$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake&amp;quot; \&lt;br /&gt;
      -DSDL_SHARED=ON -DSDL_STATIC=ON -DSDL_STATIC_PIC=ON -DSDL_TEST=ON \&lt;br /&gt;
      -DSDL2_DISABLE_SDL2MAIN=OFF -DSDL2_DISABLE_INSTALL=OFF \&lt;br /&gt;
      -DCMAKE_INSTALL_INCLUDEDIR=include -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
&lt;br /&gt;
  make -C build_x86_64 install&lt;br /&gt;
&lt;br /&gt;
To compile for ARM (armeabi-v7a):&lt;br /&gt;
&lt;br /&gt;
  cmake -S . -B build_arm \&lt;br /&gt;
      -DANDROID_PLATFORM=android-24 \&lt;br /&gt;
      -DANDROID_ABI=armeabi-v7a \&lt;br /&gt;
      -DCMAKE_INSTALL_PREFIX=~/SDL_Android_arm \&lt;br /&gt;
      -DCMAKE_TOOLCHAIN_FILE=&amp;quot;$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake&amp;quot; \&lt;br /&gt;
      -DSDL_SHARED=ON -DSDL_STATIC=ON -DSDL_STATIC_PIC=ON -DSDL_TEST=ON \&lt;br /&gt;
      -DSDL2_DISABLE_SDL2MAIN=OFF -DSDL2_DISABLE_INSTALL=OFF \&lt;br /&gt;
      -DCMAKE_INSTALL_INCLUDEDIR=include -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
&lt;br /&gt;
  make -C build_arm install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After this all is ready for MAME to be built. Note that it can be built for android-arm, &lt;br /&gt;
android-arm64, android-x86 and android-x64. If you are testing with emulator you only need&lt;br /&gt;
android-x86 build, but for real device nowdays android-arm64  will only be needed, and there&lt;br /&gt;
are less and less android-arm.&lt;br /&gt;
&lt;br /&gt;
  make SUBTARGET=tiny SDL_INSTALL_ROOT=~/SDL_Android_x86 android-x86 -j9&lt;br /&gt;
&lt;br /&gt;
This prepared binaries, but still we need to deploy application to device.&lt;br /&gt;
Easiest way is to use Android Studio [https://developer.android.com/studio].&lt;br /&gt;
&lt;br /&gt;
All build features are also available using gradle, next set of commands will&lt;br /&gt;
create debug build and deploy it on connected Android device.&lt;br /&gt;
&lt;br /&gt;
  gradlew assembleDebug&lt;br /&gt;
  gradlew installDebug&lt;/div&gt;</summary>
		<author><name>Micko</name></author>
	</entry>
	<entry>
		<id>https://wiki.mamedev.org/index.php?title=Building_MAME_using_Microsoft_Visual_Studio_compilers&amp;diff=4663</id>
		<title>Building MAME using Microsoft Visual Studio compilers</title>
		<link rel="alternate" type="text/html" href="https://wiki.mamedev.org/index.php?title=Building_MAME_using_Microsoft_Visual_Studio_compilers&amp;diff=4663"/>
		<updated>2016-03-29T16:08:14Z</updated>

		<summary type="html">&lt;p&gt;Micko: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;By default, MAME is configured via the makefile to build using the MinGW gcc compiler. Although this is a nice cross-platform solution, debugging binaries built this way leaves a lot to be desired.&lt;br /&gt;
&lt;br /&gt;
If you own a copy of Visual Studio, you can configure MAME to build using those tools instead. Once you have done that, you can debug problems in MAME using the Visual Studio debugger, which is a huge step up from gdb.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s how to make it work:&lt;br /&gt;
&lt;br /&gt;
# You must already have an environment that can build MAME using the MinGW tools. Although you won&#039;t be using gcc to compile, you will be using several of the other tools included in the standard MAME [http://mamedev.org/tools/ MinGW Development Environment]&lt;br /&gt;
# Switch to the directory where the root MAME makefile lives.&lt;br /&gt;
# Once you&#039;ve done that, simply run: &amp;lt;code&amp;gt;make vs2015 PYTHON_EXECUTABLE=c:/buildtools/usr/bin/python.exe&amp;lt;/code&amp;gt; and wait for it to create projects&lt;br /&gt;
# In order not to specify PYTHON_EXECUTABLE all the time, just placed it in system variables&lt;br /&gt;
# For Visual Studio 2013 use:  &amp;lt;code&amp;gt;make vs2013 &amp;lt;/code&amp;gt;&lt;br /&gt;
# If you are building with XP compatibility enabled run  &amp;lt;code&amp;gt;make vs2015_xp&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;make vs2013_xp&amp;lt;/code&amp;gt;&lt;br /&gt;
# Browse to folder containing solution file and open it with Visual Studio&lt;br /&gt;
# Inside Visual Studio you can change to Debug/Release x86 or x64 builds&lt;br /&gt;
# While doing development please note that you need to update LUA files in scripts folders in order to add new sources and regenerate projects&lt;br /&gt;
# Note that all parameters for partial compilation works so you can do &amp;lt;code&amp;gt;make SUBTARGET=tiny vs2015&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;make vs2015 SUBTARGET=drivername SOURCES=src\mame\drivers\drivername.cpp&amp;lt;/code&amp;gt;&lt;br /&gt;
Back to [[How MAME Works]]&lt;/div&gt;</summary>
		<author><name>Micko</name></author>
	</entry>
</feed>