Signed Retroarch cores for iOS 10 don't load

Hey guys. I managed to get retro arch on my iPhone, and signed some cores. I know they are definitely signed because I double signed them in terminal with the response that it was overriding the original signature. When I place them In the cores folder via ifunbox, they still don’t load. Thanks to anybody to responds to me.

Hi GreatMallard, same issue here. I was following this steps:

https://forums.libretro.com/t/retroarch-on-ios-10-2/8755/52

and also tried this:

https://forums.libretro.com/t/wip-running-retroarch-1-5-0-with-all-cores-non-jailbroken-ios-10/9414

but no luck so far. I’m also on iOS 10 with latest retroarch 1.5.0

Okey, there´s only one way if you correctly signed the cores. When you load the cores, you can see the name of it at the bottom? And did you used this code line (codesign -f -s “iPhone Developer: apple id (certificate numbers)” core name.dylib) to sign them or which one? This is my method, it never fails…

Hi Incognit, when I pick a core, it doesn’t show the name at the bottom, could it be that I’m using a Universal Distribution certificate to sign? I’m using the codesign command, also the xattr command suggested in another post to clear the attributes.

Thanks!

It is not your fault. When I tried this made me give up, my cores where signed but would not load. This is another retarded restriction by apple that wont let data be executed even if signed and build into the app, you know “for security reasons” also known by everyone else as apple being a control freak again. This started with IOS 10.

Personally I would drop support for Windows >7(It has become adware), Non JB IOS(They purposely break things to “innovate” then change there mind and break the new way to go back), original 3ds(too slow), psp(too slow) and vita(severely locked down).

Theres no point in supporting platforms that are at war with you.

Not pretty sure, if it could be. Did you tried filling the signing code line i wrote on my last comment? If that doesnt work, try cydia impactor, is easier and faster. Had a longer method but suddenly stopped working, now i use cydia impactor.

Another way to know if you correctly signed the cores, is trying to open them. If they work it will open terminal and execute. If not working, they’ll show an error window.

Well, here’s my method.

1: Download the latest nightbuild for iOS 9 2: Open the app to look inside and drop the cores you want to use in modules folder. 3: Open iTunes drop it, convert it to ipa, take it out. 4 Open cydia impactor. Drop the ipa file and log in with your apple id. 5: It will last 7 days, but impactor will sing you cores for you.

I was wrong, the cores are being loaded but dont do anything after that, the proof is that the quick settings menu in dosbox has all its options that are only set after the cores init function is called.

This applys to ios 9 and 10.

It seems more like retro_run is not being called after the core loads.

Sorry to necro (ish?) but I’m having the same issue. With jailed iOS 10.3.1 I’ve been unable to get cores to load when compiling 1.6.0 on my own. After loading the cores, I get a black screen forever with each core I’ve tested.

Tested cores: Snes9x Nestopia Beetle PSX

This occurs both with cores taken from the buildbot and signed as well as cores compiled myself. Oddly, extracting and resigning the cores from the 1.6.0 IPA in this thread did seem to load Snes9x and a few other cores I tried though Beetle PSX and Nestopia did not work

For the record, I’ve had a fully functioning 1.3.6 with working Beetle PSX and Nestopia cores (and everything else) for a while which I was able to rebuild, sign, and install, so as far as I can tell that process seems to be ok.

Jailbroken iOS 10.2 iPhone 6s+ & Ipad Air 2

I have tried literally everything in this thread to get retroarch working agan on my phone and iPad. I was using version 1.3.6 on both until one day they just stopped working and would crash whenever I tried loading something. Tried reinstalling from Cydia, making sure bios files were correct, updating cores, side loading your ipa with the cores included on them, changed the config file to what you said, restated my devices in regular non-jailbroken mode and absolutely nothing has worked for me. I really want to play my old games but this is getting so freaking frustrating that I’m about ready to give up. I really don’t understand why they’ve changed everything amd made it so hard to do little stuff that was so simple before.

We just updated the Cydia repo at buildbot.libretro.com/repo/cydia, so you can try using those packages. There’s currently an issue with some cores giving a black screen but we’re on it and it should be fixed soon.

Tried installing both versions and they crash as soon as I open them

The crashing issue because mobileprovision is missing and required on iOS 9 and 10. And the cores must be signed to work properly. Just try delete all retroarch old files and apps. From cydia delete the app then backup your saves, states and all necessary contents. Delete retroarch folder from var/mobile/document/retroarch Get retroarch IPA and install it using cydia impactor. 1.3.6 cores included

1.6.0 cores included

after you install it you will be ready to use it. But if you want to be like deb(cydia) apps, then you need to follow these steps: 1- use filza app from cydia to copy Retroarch.app from this directory(/var/containers/bundle/Application/RetroArch) to (/Application/) 2- install or reinstall activator from cydia to help retroarch to be installed. 3- Before you run Retroarch check the this directory (var/mobile/documents/RetroArch) and delete “config” folder or file then run Retroarch to extract assets. 4- go to (/Application/Retroarch.app) and delete assets.zip 5- move the folder modules from (/Application/Retorach.app) to (var/mobile/documents/RetroArch) steps 4 and 5 will free up storage on that place. 6- now you need to tell retorarch where the cores are located. Run retroarch settings>directory>core dir = (var/mobile/documents/RetroArch/modules). 7- optional for the roms(games) retroarch settings>directory> File browser Dir = (var/mobile/documents/RetroArch/Roms(games folder). 8- double tap on home button while retroarch running will save the new settings.

1 Like

Thank you for all of that. I got the app to start up, but when ibtruvto play a game, it keeps saying “Failed to load libretro core” I’m using the ipa with the cores provided already. Even copied them like you said for the jailbreak version.

I don’t know what you have done, I assumed you have done all the steps and you still getting fail to load core. This error caused by premission, not signed cores or using iOS 8 cores. Premission error due you used ifunbox to copy folders or the documents folder already set to not premit to excute, read or write. First check the documents folder (var/Mobile/) using ifile tap on little “i” and set the ownship to mobile for both Owner and group. And set user, group and world to read, write and excute. And do the same to Retroarch folder (var/mobile/documents/). Then the core folder as well (var/mobile/documents/Retroarch) If it doesn’t work then you should try just to install RetroArch as IPA app and test the cores from there. Before you do that just delete Retroarch.app from Application folder (/Application/) then reinstall activator. After that, check if retroarch exit as IPA app and delete from the home screen. Now, start over by and installing retroarch using cydia impactor and just test the cores from there.

It may just be my newb ass that messed this up, but for other people having core loading issues on iOS 10, one possible cause may be a mismatch between a 64bit RetroArch and 32bit cores. If you use the cores from the buildbot or build the cores as described in the link from the Libretro home page, as far as I can tell you end up building 32bit cores and a 64bit app. In my case I wasn’t able to load any of the cores until I deleted the Armv64 target in Xcode and explicitly built 32bit.

1 Like

I had the same issue with RetroArch 1.6. On my iPad Pro 10.3.2 My signed cores wouldn’t load. The solution is to put your signed cores in the modules directory BEFORE you build retroarch into Xcode. When you do that it will be part of the application create on your iOS device and even if you don’t see a cores directory they will be there and working when you’ll load a rom.

Hope it’s help.

I’m having a similar problem where i can’t get any cores to load… I followed the instructions here

https://buildbot.libretro.com/docs/compilation/ios/

I’ve confirmed with this command

codesign -dvv mednafen_psx_libretro_ios.dylib

that the core modules under

libretro-super/retroarch/pkg/apple/iOS/modules/

have been signed.

They appear in the list of cores I can choose from when running retroarch on my iPad Pro but when I select any of them “Load Core” I’m left with (No Core ) displaying in the top menu bar. If i go ahead and try to run a rom then select a core that i’ve loaded i just get the popup at the bottom of the “failed to open libretro” popup at the bottom of the screen.

dayton94, your suggestion of manually signing cores into the modules directory BEFORE building retroarch is something I could look into i guess… Should I clean my build to try your fix out? I’ve built successively and deployed to the pad as the documentation mentions that sometimes they’re signed after they’re copied to the pad so don’t work the first time you build but if you just build and deploy then the 2nd time round the signed versions get written to.

I’m also curious about the 32bit/64bit mixup potential that atsumori-neo has suggested… Not sure how to discover the build type for the cores and retroarch but I’m guessing we all need to be using 64bit soon with the imminent iOS11 requiring it.

Sort of our of ideas at the moment… there’s no debugging obvious in the output from the program when attached to Xcode whenever the cores fail to load :frowning:

Any help is really appreciated! Cheers!

I don’t know how you would check the cores, but I do know that when I set the app to only build in armv7 it started to work correctly. To do that open up Xcode, select the project then, in the middle window chose Build Settings from the top section. Under “Valid Architectures” remove arm64 and you should be ok.

1 Like

This is my way to sign cores:

1- download any retroarch IPA version for code signing purpose.

2- drop cores inside modules folder inside the Retroarch.ipa.

3- download iOS app signer and use it to resign retroarch.ipa. When click start, you will see cores being code signed.

4- extract the IPA and you will see all cores modified date have been changed to today. Take the cores and use them up with Xcode.

iOS app signer http://dantheman827.github.io/ios-app-signer/

Ios 9 Cores http://buildbot.libretro.com/nightly/apple/ios9/latest/

N64 core for ios9

Thanks for the replies. I’m not able to test against my device until I get some free time, but I will have a go at disabling 64bit. Though I kind of want to jump the iOS 11 gun a little and try and get 64bit working so it could stay working when iOS 11 drops. There is another thread on iOS 11 hacking which I’ll ask on as I believe they’ve managed to get some cores compiling in 64bit. Mame2003 is one of the ones that matters most for me running in an incase and getting that full nostalgia!

Thanks for the signing tips too. Unfortunately my device isn’t jailbroken so I presume I can’t use the .ipa method you described?

Wish I had more time to tinker with this but at the moment sadly I don’t.