MAME Core for iOS 9

Hi, has anyone been able to compile a recent MAME core (2010 or beyond) for iOS 9 for use in RetroArch?

I’ve tried to compile them but ran into issues that presumably have to do with the compiler. I unfortunately don’t know anything about how to resolve them:

Output:

Archiving obj//libsqlite3.a… ar -cr obj//libsqlite3.a obj//lib/sqlite3/sqlite3.o Archiving obj//libweb.a… ar -cr obj//libweb.a obj//lib/mongoose/mongoose.o obj//lib/jsoncpp/json_reader.o obj//lib/jsoncpp/json_value.o obj//lib/jsoncpp/json_writer.o cp -R prec-build/makedep obj//build cp: prec-build/makedep: No such file or directory make: *** [obj//build/makedep] Error 1 make: *** Waiting for unfinished jobs… cp “mame2014_libretro_ios.dylib” “/Users/yoshi/Code/libretro-super/dist/ios/mame2014_libretro_ios.dylib” cp: mame2014_libretro_ios.dylib: No such file or directory 1 core(s) failed: mame2014

I looked in the Makefile for libretro-mame2014 and not sure what i can do about this prec-build directory. If anyone can help, that’d be great!

I’m using the iOS 8.4 sdk to compile.

hmmm what arguments did you pass? or what command are you issuing? it’s a though one to crack

Are you using the scripts from libretro-super to build? They sometimes include some peculiarities that are not immediately obvious. For at least one of the MAMEs, IIRC, it will fail after the first ‘make’ because it’s building some dependencies that are needed to compile. If you tell it to ‘make’ again, it will pick up those new files.

Yes, I’m using the scripts from libretro-super to build. I’m doing this command:

./libretro-build-ios9.sh mame2014

But I made these diffs for libretro-build-ios9.sh:

-platform=ios9 ${BASE_DIR}/libretro-build.sh $@ +platform=ios ${BASE_DIR}/libretro-build.sh $@

(ios9 is not a recognized platform by the MAME Makefile)

For libretro-config.sh, i changed ios’s sdk to point to ios min 8.0:

  •           CC="cc -arch armv7 -marm -miphoneos-version-min=5.0 -isysroot $IOSSDK"
    
  •           CXX="c++ -arch armv7 -marm -miphoneos-version-min=5.0 -isysroot $IOSSDK"
    
  •           CXX11="clang++ -std=c++11 -stdlib=libc++ -arch armv7 -marm -miphoneos-version-min=5.0 -isysroot $IOSSDK"
    
  •           CC="cc -arch armv7 -marm -miphoneos-version-min=8.0 -isysroot $IOSSDK"
    
  •           CXX="c++ -arch armv7 -marm -miphoneos-version-min=8.0 -isysroot $IOSSDK"
    
  •           CXX11="clang++ -std=c++11 -stdlib=libc++ -arch armv7 -marm -miphoneos-version-min=8.0 -isysroot $IOSSDK"

for now use mame4ios reloaded (0.139) is the 2010 port by seleuco.

I also miss an mame 2015 port

Yes I have mame4ios reloaded but there’s no MFi controller support for it. I wanted to add MFi support myself but getting that project to compile looks to be a challenge. There’s some binaries that need to be compiled before the Xcode project but i can’t seem to figure out how, and there’s very little documentation on how to actually do that. I’ve reached out to the developer and others but as of right now, it’s just an open source project no one can build :confused:

My progress on this is that it looks like some tools (?) need to get built before. I tried messing with the Makefile to do this but end up with binaries not compiled for the armv7 architecture needed for iOS.

create an issue here https://github.com/libretro/mame/issues

Created the issue!

Hope someone can build it :slight_smile: