iOS 11 Support (updated with zipfile containing cores)

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?

It’s important to note that the 8Bitdo line of controllers do not use the right stick at all over iOS and the left stick is mapped as an 8-axis d-pad (I think it’s 8-axis at least) also the Click in on the sticks map to select and start respectively. So these controllers should be assumed to only have 4 face buttons 2 shoulder buttons and one d-pad with start and select. This is unchangable as the firmware for the gamepad didctates this, not the Bluetooth protocol. The only reason I still hold any significace for the 8BitDO line is because it’s being sold on store shelves at Walmart and Micro-Center as an “iOS Gamepad” even though only firmware 1.71 and below support iOS. They need to fix the packaging as the gamepads ship with 2.01 firmware for the Nintendo Switch which replaces the iOS functionality.

Thanks for the prebuilt ipa of RetroArch + Cores for iOS 11! The trust certificate of the app disappeared on me today, and the app no longer launches. anyone know of a quick way to get it up and running again?

You need to use Cydia Impactor again to get a new 7-day trust certificate

  1. Use iFunBox to retrieve your roms and saves from your device 1.a Backup your config files, but remember you’d need to edit them after the new installation
  2. Delete the App from your device
  3. Use Cydia Impactor to install it again with a new 7-day certificate
  4. Use iFunBox to copy your roms and saves back to your device. 4.a Launch RetroArch to get new a config file with the new directory, then use iFunBox to get that config file and edit your previous config files to match the new directory, then copy them again to RetrArch 4.b If you didn’t follow (a) instructions, config RetroArch again to your liking

You need to reinstall it again every 7 days. And before you do that just delete the config file using ifunbox, then reinstall Retroarch using same Apple ID. All your Roms and save data will be there you don’t have to back them up. One thing you have to do it again is configuration.

Highly specific question: how (if possible at this time) can I get a gamevice controller to work with this version of Retroarch? I’ve seen earlier versions of retroarch work flawlessly with gamevice, and none of the configurations I’ve tried on this 64-bit version seems to work (changing input driver type, changing controller type).

I have a gamevice and I’ve gotten the controller to work. There’s something off with the mfi controller detection in iOS 11 or Retroarch, but you’ll notice that the controller gets detected as a player 2 controller initially (the 2nd LED lights up on the gamevice controller).

I’ve had to use port #1 (instead of #0) for player 1 and configure it that way. It’s a workaround until this gets fixed.

1 Like

I know this isn’t really the forum I should be asking this in, but do any of you guys know if there’s an emulator on iOS 11 that actually supports the 8bitdo zero controller, it didn’t work with RetroArch, it wasn’t mapped right and didn’t work that well in Happy Chick and it isn’t mapped correctly in Provenance, It’s also harder because I don’t have any way to get Xcode, my laptop is too weak to run a virtual Mac. I would love it if someone had a prebuilt IPA or link to one that I can use with cydia impactor. Also, I did some testing in RetroArch on my IPhone 6 and the bsnes (mercury) cores didn’t work and the gpsp core didn’t work.

I have submitted a pull request to fix the issue with the mfi controllers showing up as a second controller.

if you want to test it, it is at https://github.com/hevey/RetroArch/

Great thanks, I did see the PR on github. So it looks like it did have to do with switching to 64-bit. I’ll try to test it out when i get a chance.

Thanks again!

no worries. I have only just started looking at Retroarch for iOS but I’d be more than keen to help with development (where I can). Is there anything pressing that needs looking at? didn’t seem like many of the issues on github related to it

1 Like

Nice to see new iPhone developers and thank you! A few issues I’m aware of (some of these are pretty daunting, however) -still a number of cores that don’t build for iOS 64bit (I haven’t checked in a while but meowPC, np2k, px68k, tyrquake, and I think picodrive at least? Try building all cores for iOS 64 and see which ones don’t compile.

-fixing the iOS ports of desmume and Mupen/parallel64 to make sure they can now build for iOS (these have been dead a while). Also, I don’t think there’s ever been a port of beetle hw to iOS.

-px68k does not seem to be able to find the bios in iOS preventing it from running games.

-TyrQuake does not seem to be able to find the music folder (and possibly expansion folders though base game works ok)

-I haven’t tried a new build in roughly 2 months but the Retroarch iOS interface circa 1.6.7 is too reactive to tapping/doesn’t have a cool down when moving from game-> menu. What I mean is that if you have an overlay active in-game with a “Retroarch menu” button, and you click that button, Retroarch will open the menu and then also immediately assume you’ve clicked whatever menu option is underneath your finger when it goes back to the iOS interface. This had led me to many mistaken savestates and screenshots.

I compiled desmume, picodrive and vbam for 64bit.

  • For PX68K you need to have bios files in system/keropi/cgrom.dat

                                               iplrom.dat
    

-Mupen64plus and pcsx_rearmed and icade issue have I believe they common issue which is “Neon”. Because Neon not optimized for 64bit.

If you to try to compile Mupen64plus here the link working for (ios8, and ios9-10)

pcsx_rearmed

try notaz’s suggestion in this issue

That’s great! How are you compiling desmume, picodrive, and VBAM? I can’t get them to build for ios64 using the super-repo.

Also, I still can’t get px68k to work on iOS. The core seems to see the bios files when I check through the Core Info screen, but it won’t actually boot the bios when I load a disk (I just get a black screen).

By the way, is anyone else getting weird behavior on iOS with any of the latest (11/6 or later) RetroArch iOS builds? I can’t seem to load core info files anymore and I’m having trouble saving autoconfigs.

Yes there are few interface issues with the current nightlies effecting all platforms (Windows/Linux/Mac)

1 Like