RetroArch 1.5.0 compiled for non-jailbroken ios loads and inits cores but never run them

Created on 3 Apr 2017  路  18Comments  路  Source: libretro/RetroArch

This happens on ios 9 and 10.

The cores are signed and load fine but wont render any output.

It seems like it just doesn't call retro_run every frame like it should.

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


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

major ios

Most helpful comment

We all love retroarch, congrats to all you guys. Great great work. Let's make iOS in the top platform list :)

All 18 comments

you are getting further than me. I have used x-code to put the app on my phone running the 10.3.2 beta, but it doesn't seem to be saving any of the cores when I select to download them to my phone.

Any suggestions? Have you found a good guide for getting you as far as you?

I read this on reddit: that after 1.3.6, the filesystem was changed, where it changes where the files are located and where it reads them. This might make sense on why every build after 1.3.6 has not been working properly. Some cores I can get to load, but a lot of them just play sound with no graphics, and no amount of changing settings changes anything.

I was hoping things might be fixed by 1.5.1 but if it's been broken this long I don't know. Meanwhile, still running even the most recent cores on 1.3.6 and it works fine. But I try every nightly build to see if it ever gets fixed, but it never does.

RetroArch on iOS is becoming more and more useless honestly in dynamic library mode. Maybe it's most practical to just go with statically linked RetroArch versions with cores, but that would require we change the entire way we distribute the program on Cydia.

In short, right now this is of a low priority since the entire platform is so undesirable and Apple makes sure to let everybody know that programs even remotely related to emulators are not welcome. Maybe when we have some more time available or somebody from the Apple scene would finally send some PRs. So far all they have ever done to us is create illegitimate RetroArch versions, litter them with ads, and make money off it while contributing nothing back. It's hard to remain motivated.

I hate to say it, but maybe you should just get yourself an Android phone and just use that for emulators. iOS might not even be worth it since with every new iOS version they break stuff all the time, and everybody just instantly updates to it anytime, thus continuing the cat and mouse cycle every time.

I am not against any PRs though, so if anybody wants to help out, by all means.

I did a test by using your build instructions. I'm using iOS 10.3.2, retroarch 1.4.0 from github, all build with Xcode 8.3.2.
I ended up with cores not able to be loaded either. I made some logs, got:
dylib_error dlopen(/var/containers/Bundle/Application/80A04341-9253-4358-8A8C-C5D83A978CB9/RetroArch.app/modules/genesis_plus_gx_libretro_ios.dylib, 1): no suitable image found. Did find: /var/containers/Bundle/Application/80A04341-9253-4358-8A8C-C5D83A978CB9/RetroArch.app/modules/genesis_plus_gx_libretro_ios.dylib: can't map segments into 16KB pages

Seems that the libretro-super scripts to build iOS are not up to date (arm64 vs armv7 issues on paging). I'm investigating.

The best process would be to transform all dylib into dynamic frameworks in iOS. But it's a huge amount of work... :(

just add the line
CFLAGS="-Wl,-segalign,4000"

in libretro-config.sh for ios. Under tests. Will work only for iOS9 and higher.

didn't work. I added
export LDFLAGS=-Wl,-segalign,4000
... libretro guys should check if the make files can take a link input for that !

all my core works now. But I'm missing the sound ... don't know why yet.

It looks like we might be looking at similar issues pretty soon on Android.

Google is now starting to warn devs against allowing them to download dynamic libraries and installing them inside an app on the Play Store.

So we might have to go the statically linked route there as well.

These mobile walled garden platforms really do massively suck. Restrictions on how you are able to make your software should never have been allowed to pass.

http://www.twitlonger.com/show/n_1spso0o

"play by the rules" ... no choices.

@twinaphex Please don't stop to support iOS version, I love to play on my IPad Pro 9.7 with its Stereo Speakers and my Ipega 9023 Controller, also why iOS and not Android, because I tested many many android devices and all have this f*cking audio latency or an other problem like wrong refresh rate screen etc. iOS is perfect for this with also a good power, its only for Retroarch I never updated my iOS 9.3.3 to avoid iOS 10 compatibility issues.

Love iOS RA :-)

We all love retroarch, congrats to all you guys. Great great work. Let's make iOS in the top platform list :)

Thanks for your motivation. We all counting on you an the creator as well to bring support to iOS back

@RomainQuidet I tested for Nestopia, one of some problematic cores, only sound, no video. So I added "export LDFLAGS=-Wl,-segalign,4000" to "libretro-config.sh" compiled with "./libretro-build-ios9.sh nestopia" like all my other cores but still only sound no video for this core.

Can you give me the line where to add it ? Maybe I make something wrong.

Thanks.

@Alex793 the compile flags are only here to make cores loadable by retroarch on iOS9+ as 32bit page has been changed to 4k. It does not solve any issue with running cores.

@RomainQuidet Ah ok, I asked you that because you referenced the issue I opened so I thought it was a fix for the video issue we have with few cores.

For me and some other all cores are loadable and launch roms, but few of them since 1.4.1 load sound, inputs but no video, the list of the concerned cores is in my issue thread. Don't know what's changed since 1.4.1...

Atm I'm running and bundled two RA, one on 1.5.0 and one on 1.3.6 for the other cores lol

PS : I'm on a jailbroken device.

Was this page helpful?
0 / 5 - 0 ratings