Latest MAME Core (0.209) Now Supported on iOS/tvOS

I was able to build the latest MAME core on iOS for RetroArch. I was looking into updating the mame core for my MAME4iOS repo (it’s on 0.139) , and the libretro one seemed the easiest path to getting it to build. It took awhile to wrap my head around the build system, as it’s incredibly complicated. You have to build the thing that makes the build, so certain things need to be built on the host OS before building for the target OS. I was able to modify the macOS target to build for iOS, and the pull request I made was approved.

Since building the mame core takes a lot of time, here’s a link to the compiled core (arm64, 64-bit only): https://mega.nz/#!KUIgSCDK!2rpf24qf4uoKVlrA7Lf1cuE-_1QtVvPTZEdQQZPEkf0

Unzip the file and place it into the pkg/apple/iOS/modules folder (where the cores are supposed to go), run Xcode and build and run.

See the libretro doc for more info on building and running for iOS: https://docs.libretro.com/guides/install-ios/

Someone (@Weedy_Weed_Smoker ?) can also make the IPA with the new mame core available too.

Some games refuse to run (like Daytona USA) but this might be due to MAME itself, and some like the Naomi-based games are really slow (i’m on an iPhone XS Max). I’m working with someone to tweak things to squeeze performance out of the ARM cpu to improve speed, but no promises there.

If anyone can run any new noteworthy games, feel free to put them down :slight_smile: The ones I’ve discovered are Denjin Makai (wanted to run this for awhile), Beatmania and the Crossed Swords 2 bootleg.

2 Likes

That’s GREAT news !

Do you remember what are the

Thank you so much, I really look forward to trying that…

Be sure that I’ll include it in the .ipa, and in the Cydia repo !

The build program used was called “genie” and it had to be built on the host OS (macOS), and then genie creates make files used to compile the drivers.

It’s all handled if you do ./libretro-build-ios-arm64.sh mame in the libretro-super github repo.

@harakari2 I tried to re-compile the arm64 build and it failed, but I think I may need Xcode 10 for that (I’m on High Sierra so Xcode 9 or a virtual machine is my only option, as my NVidia GPU isn’t supported on Mojave…)

I wanted to compile the iOS 9 version too, but for now I will use your arm64 compiled version only !

Thank you for doing this, it is very appreciated (and it took 20 minutes to compile before erroring out on my supercharged Hackintosh…) !

No problem! Yeah I’m on macOS mojave (10.14.3), using the latest Xcode (10.2.1) and iOS SDK (12.2). Can’t promise anything on hackintoshes :slight_smile:

I don’t think a 32-bit build would be supported, since I only targeted a 64-bit build. I don’t think I’m going to spend the effort to support 32-bit builds.

@harakari2 I already made the modifications in the code, so I guess if it compiles for iOS arm64, it will probably compile for iOS 9 too !

The Hackintosh is virtually the same thing as an official Mac, only more modular and way cheaper…

If I make a vm to compile it, I will try my modifications… I’ll tell you if it compiles for older iOS too !

Hi, Thanks for your work Can it works with iOS 7 ?

@hostile1975 I’ll keep you informed after I try to compile on macOS 10.14 !

Please keep in mind that this is the full-blown thing though, there is a reason why older MAME versions are kept, and that is speed and efficiency on older less powerful devices…

hey if you have the time and will could you check the mame2003-plus @Weedy_Weed_Smoker said that its not working or he can’t build it something like that

also thank you for the latest mame core :blush:

It is really slow somehow, rtype for example skips also with no shaders. Can someone explain from the programmers view what is the cause? The a10x chip should do it since ppl use raspi for emulation and that chip is like 8times weaker for single and multicore. Is it arm as the architecture which cant run such tasks like an x86 while they have same geekbench results for example ( that you cant compare across architectures talk)? Is it about the underlying emulators for the emulated hardware being ported just to work on arm without knowledge/interest to optimize it?