iOS 11 Support (updated with zipfile containing cores)

It’s that time of year again - as you may have heard, 32-bit apps will no longer work on iOS 11.

This is a problem because while RetroArch can be compiled in 64-bit, the cores will also need to be compiled in 64-bit - and last I checked a lot of the cores don’t compile in 64-bit for iOS.

I’m going to start looking at this again, as I do want to continue supporting RetroArch in iOS, but if anyone knows the status of the cores, or knows the status of supporting 64-bit iOS, then please let me know here :slight_smile:

I chatted briefly with TwinAphex about this on irc awhile back and i think he’s aware of it and work has been underway.

I know iOS programming but the cores are a whole other beast which I have no knowledge of, and I can just poke around until I get them to compile.

Anyways, I’ll update the status of progress here.

1 Like

#iOS 11 Support means native 64-bit support.

Updated: 10/3/17

Cores compiled using iOS 11 SDK / arm64 architecture

The libretro-super github repo has a script, libretro-build-ios-arm64.sh, to build arm64 cores for iOS.

Zip containing compiled cores for arm64: https://mega.nz/#!fEB11KwD!c_00wTqNW4TNN6r9PyteW4MvM46isdMwzXJTxDL7-kw

Most systems are supported, but currently the major core not supported right now is Nintendo 64 - mupen64plus was working before but until it can be compiled in 64-bit.

If you are familiar with Xcode, build instructions are here: https://buildbot.libretro.com/docs/compilation/ios/

3 Likes

An update on iOS 11 support (7/16/17)

I spent some time on the retroarch discord today, and @anon24419061, @anon90536803 and @hunterk gave a lot of great guidance in nailing down what was causing some issues.

The only hope of getting PS1 emulation on iOS 11/64-bit right now is the mednafen_psx/beetle psx core. It would show a black screen while the emulation would run with sounds being heard and controls being responsive. After some recompiling and testing different cores, we found that the issue was in RetroArch, and not the cores. @anon24419061 directed me to take a screenshots while the emulator was running, and I was able to see the images, they just weren’t being rendered by RetroArch. This was also happening on the nestopia core, and maybe some others.

The issue came down to displaying a specific pixel format called XRGB8888 used by some of the cores - I barely have an idea of what that is - something to do with the color depth or some such.

Not sure if this is an iOS specific issue, but I’m hoping @TwinAphex would come along and fix it :slightly_smiling_face:

In the process of this, I was able to verify some more cores as working (pc engine, GB/GBC).

Sadly, N64 emulation (and anything involving optimized ARM-processor builds) is probably not going to be supported in iOS 11 for the time being.

Just want to say thanks to Harakari2 and everyone helping him out. iOS is my favorite way to run RetroArch on mobile so I’m glad we have someone making sure the platform will remain viable for the time being

I would like anyone to try RA version 1.3.6 on iOS 11. Check these cores mednafen_psx, pcsx_rearmed and N64. On my iphone 7 plus ios 10, mednafen_psx core on RA version 1.3.6 runs fine with fullspeed. But same core on 1.6.0 or any version above 1.3.6 runs black screen.

Your welcome atsumori-neo! iOS is also my favorite way to run RetroArch and its great it can support many different systems as well as have cool features like shaders, undo save states, etc. I got a 256 GB iPhone 7 Plus so I can fit complete ROM collections for some systems.

I’m going to continue to support RetroArch as long as I keep using an iPhone as my daily driver, and keep developing for iOS.

Hi MrSeven_X, unfortunately RA 1.3.6 will not run on iOS 11, easily at least. There were some changes made to support a 64-bit build and this happened around 1.5.0. I tried to make 1.3.6 run in 64-bit, but there are some changes to make that don’t make it seem worth it to try.

The black screen issue with mednafen_psx is what I was looking at earlier, and it does look like it can be addressed - @anon24419061 acknowledged the issue as being on RetroArch side, and it has something to do with rendering the screen with OpenGL in iOS (my guess). The black screen issue affects other cores that use a specific pixel format so I’m hoping it’s something @TwinAphex can fix.

The black screen issue has now been fixed.

BTW, we could still require some help getting RetroArch iOS working properly for iOS 9 on Cydia. We only have devices on iOS 8.4 so we would appreciate the help.

I managed to make retroarch 1.6.0 nightly works as deb file for iOS 9 and iOS 10. Great job Twinaphex . Now, Psx beetle (mednafen_psx) works fine. Good news for Final Fantasy IX users now they can play it on their iOS devices. To install deb file.

1- Download the deb file from the link below, then use iFunbox to drop the deb file into you advice.

2- Use iFile to install the install deb file. After that go to cydia and install (reinstall) Activator.

3- Start Retroarch and wait until it finishes extracting assets.

4- Download signed cores from the link below then unzip it.

5- Using iFunbox to drag and drop cores folder into Retroarch directory(var/mobile/Documets/Retroarch).

Retroarch 1.6.0 nightly July-24(iOS 9 and 10)

Signed cores July 24th

by the way, ios 9 users can download cores from online updater without the need to sign them.

I tried Psx beetle (mednafen_psx) core on non-jailbroken iPhone 7 plus and It seems slower than jailbroken iPhone 5s!!

Update: I don’t know what happened (mednafen_psx) core on non-jailbroken iPhone 7 now runs full speed. I didn’t change anything on settings. Yesterday was very slow, and only the (mednafen_psx) core was slow.

For non-jailbroken iOS devices. Retroarch 1.6.0 nightly July-24

Update 2: i ran into bugs on this nightly version. In some areas in settings Can’t select to change some settings. For Netplay, client won’t connect to server.

Hi @MrSeven_X,

We could add this version to our buildbot, would you be interested in helping us out with what needs to be done for that?

Well what I basically do, I sign the app then I convert it to Deb file. My method is a bit long but this how I do it.

1- I use iOS 8 device JB to help me to do the process, DebMaker only works on iOS 8.

2- I change MinimumOSVersion from 9 to 8 on plist.info in order to install it into iOS 8. The app won’t work iOS 8 but still it will work on iOS 9 and iOS 10 it become deb file.

3- using iFile or Filza app to copy Retroarch.app to /Appications folder. If the cores are there just delete them.

4- Now for the last part, I use Debmaker and I choose /applications/Retroarch.app To be honest I don’t know any other method to make Deb file.

Are there any 64-bit precompiled .dylibs available to download? I tried editing the makefiles, changing “armv7” to “arm64” where applicable and for some reason it still compiles the .dylib to armv7. And as far as I can tell, all the buildbot cores are still 32-bit.

It looks like there’s an iOS arm64 makefile up on the super repo. I haven’t tried the cores yet but I was able to build roughly 3/5 of the cores though there are a some big failures like nestopia, mgba, mame2003, picodrive, snes9x etc etc.

By the way, does anyone know what the ios-theos makefile is for?

1 Like

Thanks, I’ve gotten most of the cores to compile using the script, having issues with the same cores you mentioned. Did you happen to find any success compiling FCEUMM? Neither that nor nestopia were able to compile for me using the script, but @harakari2 claims to have had some success with them.

I’m still in the process of making pull requests to update the cores with the iOS arm64 build target. I’ve gotten most of them to compile as of a month ago, and I’ve been making pull requests for each core alphabetically and I think I stopped at mednafen-ngp before I got caught up with other stuff.

I’ll update the other remaining cores like nestopia, snes9x, etc.

I did get to FCEUMM, and it compiles to iOS arm64 ok. If you pull the latest master of libretro-super, and run:

./libretro-build-ios-arm64.sh fceumm

Worked for me now after I got the latest version from the repo, I must have been working with an older version. Thanks a bunch for the help on this!

hi to all! News about support for ios 11? best regards. Jeosh

TLDR: almost there!

I’m almost done making pull requests for the remaining cores - I’ve just been caught up in other stuff lately. They’re real easy to do but its just this repetitive process because there are so many cores.

I think the RetroArch app itself is 64-bit ready - i’ll need to make sure that the build settings for the app is setup for that as well.

I managed to compile most of the cores to ios arm64 except: (craft, desmume, dinothawr, ffmpeg, imageviewer, mgba, mupen64plus, nekop2, pcsx_rearmed_interpreter, pcsx_rearmed, picodrive, snes9x, stella, tyrquake, uzem, bam, vice_x64, yabause). Let me know if you had any success on these cores.

why vice_x64 not? I hope you compile also fuse!