iOS 11 Support (updated with zipfile containing cores)

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!

Has anyone successfully used retroarch on iOS 11? What files do i need to work with.

I’ve been out of the loop for a whole or, last I heard was that cydia impactor no longer worked.

Yes, I have RetroArch working on iOS 11.

Right now, I’m building it and installing through Xcode 9.

I’m going to figure out the Cydia repo to get it working on jailbroken devices.

I see mrsevenx’s files. He has a guide for installing a deb file with ifunbox and there’s an ipa at the bottom.

Any suggestion which path is better?

Now you can download the RetroArch 1.6.7 for ios 11. There are 65 cores except these cores (craft, desmume, dinothawr, ffmpeg, imageviewer, mupen64plus, nekop2, pcsx_rearmed_interpreter, picodrive, stella, tyrquake, uzem, bam, vice_x64, yabause). Use cydia impactor to install it. Make sure to update cydia impactor. For mednafen_psx and melonds require bios files.

2 Likes

If you receive this error like I did, plug your phone into your computer, open iTunes and tell your device you want to trust the computer.

To get rid of this annoying message. first keep it in dock. if the problem still there close it and open again, you may need to do it multiple time until you see your device name not Question mark (?). Sometime you may not be able to type your account after you drag the ipa into it. Just close Apple ID window and try it again.

Hi everyone,

I‘ve just downloaded and tested RetroArch 1.6.7 on my ipad pro loaded with iOS 11 using cydia impactor: Everything seems to be working fine except for key binding for bluetooth keyboards : a popup appers when trying to register a key and RetroArch can‘t somehow read any keypress. I just stumbled upon an article listing RetroArch as an emulator with bt keyboard support and decided to give it a try so i‘m kind of new to libretro and retroarch. Is there something i‘m doing wrong or are bt keyboards not supported anymore ? PS: my device is not Jailbroken.

Cheers

Keyboard support in RetroArch iOS is broken and needs to be revisited. I think some undocumented methods were used to support keyboards (and iCade/8bitdo) on iOS and those as far as I know, no longer work.

It’ll need to be updated to use the proper sdk methods to read the keyboard.

Hi again,

Thanks for the quick answer ! Would it possible to contact a developer in retroarch and talk to him about the problem ? Supporting bt keyboards on iOS is a dealbreaker for a growing number of iOS retro gamers including myself. It‘s such a waste if RetroArch stays as it is now. If you have names or email addresses i‘d be thankful :smiley:

Cheers

1 Like

Yes I know of a developer in RetroArch focused on iOS - me! :slight_smile: I’ve contributed a little to the RetroArch source so far.

I have an idea on how to implement better keyboard support, but I’ve been focused on getting as many of the cores supported for iOS 11 til now.

4 Likes

Perfect :smile: ! Will you be so kind and fix it ? You‘ll be the RetroHero :weight_lifting_man:

Cheers

1 Like

How goes your progress on all that BTW? When it gets to a good point I want to try to get Builds.io to put it on there signed apps section. What consoles have you gotten working so far? Provenence has got the 8Bitdo working fine with the 1.68-1.71 firmware on the controller. It runs under a sniffer for iCade controllers under blutooth for the player select and then you pick which type of iCade controller from a list for button mapping’s. I can give button read outs if you want btw for the Nes30 Pro Controller.

The only core for PSX that doesn’t have lag/sound-stuttering when I use it was the pcsx rearmed interperter. Is there a trick to getting the others, like Beetle which is working, to not run poorly? Even on iphone 8 it doesn’t seem to want to keep up. I know medafen psx had same issue.

Also I’d help work on cores to make them 64 bit but I don’t even know where to begin… point me in the right way, and I got some free time!

1 Like

Any pointers on code to look at for the keyboard hooks… Tbh I can’t quite get the menus of the base emulator working properly myself in my locally compiled version. At least the 64bit cores are seemingly working which weren’t when i last tried back in August so that’s awesome.

I keep getting stuck in the menus a little bit though and can’t figure out how to get controllers working at all. A lot of my icons are black squares even after slowly downloading assets.zip. I had that problem before.

Now i hear on here that even if i could get to the UI to remap controlls they probably wouldn’t register due to keyboard polling not working well or at all on current builds. So i guess if i’m to get my iCade cabinet working again it’ll require the keyboard processing to work… happy to take a bit of a look if i could find out where the code was that was seemingly failing and how to get to that screen in the settings to get the reading keyboard code failing. Happy to help if you can get me to that stage :slight_smile:

Great work though on getting things working this well so far!

1 Like

Getting PSX-rearmed to work in iOS 11 requires some of that core to be rewritten to support arm64 (iOS 11 is 64-bit only). PSX-Rearmed takes advantage of arm specific CPU features.

Beetle-PSX runs at ok speeds for me (iPad Air), albeit with choppy sound in some 3D games, suggest turning on threaded video, vsync off, and remove any shaders or filtering.

Any pointers on code to look at for the keyboard hooks… Tbh I can’t quite get the menus of the base emulator working properly myself in my locally compiled version. At least the 64bit cores are seemingly working which weren’t when i last tried back in August so that’s awesome.

Hi! To properly implement keyboard input using the proper API calls, take a look at UIKeyCommand: https://developer.apple.com/documentation/uikit/uikeycommand

You’re going to need to hook that in the main view controller of RetroArch, namely the “GameView” or “CocoaView”. It’s in ui/drivers/cocoa/cocoa_common.m There, you can define UIKeyCommand with hooks to call into RetroArch’s inputs.

i would look into it but I don’t have the time right now :frowning:

I keep getting stuck in the menus a little bit though and can’t figure out how to get controllers working at all. A lot of my icons are black squares even after slowly downloading assets.zip. I had that problem before.

This happens when you reinstall RetroArch via Xcode or install a new version. The configuration paths in RetroArch are saved as absolute paths (`/Application/[identifier]/Documents/…), and the identifier will change whenever you build and run in Xcode. I have an idea on how to fix this, but again, I’ll have to get to it later. I get around this by manually editing my config files with the new application identifier, and its kind of annoying.

Good luck, it’d be great to get more help from other iOS developers on this project :slight_smile:

1 Like

If you are talking about proper keyboard calls, will you need new readout on controllers that use old fashioned iCade instead of MFI? Or will we be dropping iCade support with this integration? Most notably the entire 8Bitdo line of controllers don’t support MFI and instead use an old dual key output for configuring button presses. (NES30 PRO: A= uf, B= hr, Y= yt, X= jn, L1= kp, L2= kp, R1=im, R2=im, Select=lv, Start=og, Up=we, Down=xz, Left=aq, Right=dc ) The way it works is the controller will only send the first letter until the button is released then send the second letter. Would this be easily translated to iOS11? Maybe a control config script that can actually apply controls to the emulator configs and not just the retroarch menu?