RetroArch iOS release (v1.0.0.1)

Perhaps meancoot can chime in here - don’t really know what this could be about.

This most often catches people by surprise thinking it’s a bug but it’s actually how it works on nearly every emu where SRAM is part of the internal save state. This means that if you ‘load’ a state, it will also load into memory the exact contents of the SRAM from that state - hence overwriting your pre-existing SRAM file when you exit the ROM.

There could be a couple of ‘solutions’ for this -

  1. the ‘thread’ thing you mention where it would auto save state based on some interval. The problem with this is that it requires another thread to run concurrently - adding some overhead - and file I/O is slow so it can create a gameplay ‘hiccup’ when savestating.

Currently the ‘auto state’ feature is only enabled on PC, but it could be introduced on certain mobile platforms after it has been found to be decent from a performance standpoint.

  1. Have an ‘SRAM write block’ toggle which could be set ON/OFF ingame - this way, it would not ‘overwrite’ the SRAM file - so you could load states to your heart’s content and not be worried that it overwrites the main SRAM file.

Last, is not really an issue, more of an enhancement request. But it would be nice to have alphabetical sections in the UITableView while selecting a ROM. I have some very large folders that take a while to scroll through. If you are looking for help, this would probably be an easy thing to implement.

Could be looked at after the 0.9.9 release - I really want to finish this thing up and release it already since we keep adding more and more stuff and like every other major release - it’s hard to get at that stage where you just go ‘OK, just press the ‘release button’ and let’s ship this thing already’. Everytime I think releasing the next version will be a cakewalk and then we always want to add something more and more.

I know that it’s slim pickings in terms of gamepad support on non-jailbroken iOS so I understand and see the need for more controller support since BTStack is JB territory and not available on non-JB. I’m open to having as much support for gamepads as possible in RetroArch iOS but one thing I’m very wary of is dependencies.

I have this ‘unwritten rule’ where a platform port of RetroArch should have as close to zero dependencies as possible for it to be able to be built by a user who just ‘git clones’ the repository. If those gamepad SDKs require an app to statically link certain libraries or whatever then I’m definitely not in favor of that - however, if they are dynamic libraries or if it creates no additional dependencies for building the app then I’m all for it.

Which leaves the ‘supply’ issue - we don’t have all these pads and this is a hobbyist project with no monetary aims at all - so either contributors who have such peripherals to add those things will be needed or ‘hardware gifts’ (ie. some guy or manufacturer sends us the pad, we add support for it). It makes a lot of logic for these peripheral guys to do that at this point since RetroArch will definitely not stay confined to merely emulators and there are some big developments up ahead that will change how people look at RetroArch altogether.[/quote:2e8rf6bf]

Interesting about the SRAM issue. I really like the SRAM block toggle idea and sounds much easier than any alternative. Don’t worry about any enhancements that aren’t necessary - go ahead and release when you are ready. I’m just giving you ideas and perhaps you’ll want to look into it for a future release.

I completely agree about dependencies - I can try to gather more information about it. I’ll see if they’d be willing to donate a controller to the cause, but otherwise I’m not against donating a controller to get support for it.

Anyway, thanks for the detailed reply. Best wishes.

I pushed a fix for the issue with using the keyboard to quit the game not letting another start.

The issue where the Cocoa menu would work but not do anything means the emulator thread had stopped responding to events. I’ll try to reproduce it and find out what’s going wrong.

Found another issue: when I hit the “Settings” button in the ROM selection menu, it takes me to the settings menu, but the button stays there, and can be tapped again to create another settings menu.

Also, it appears that the issue I had with snes9x-next also occurs on my desktop, but it can be corrected by going into RGUI, setting the aspect ratio to “8:7 (1:1 PAR)” and Integer Scale to off. I couldn’t get this to work on iOS, however. No matter what configuration I tried I couldn’t get the scale perfect. However, I can get perfect scaling if I turn integer scaling off, set the aspect ratio to core provided, set the bottom-right corner custom ratio to 1536x1344, then turning it back on (to center the image).

Okay,

So I had to register and get on the forums. CRAZY interested in being able to play my old PS1 games on iOS.

Couple questions:

Any ETA on when the iOS update is going to be coming out? And, is there any way to donate to the devs? If the PSX emulator works, I’ll be more than happy to donate. I was thinking about picking up an Android device JUST so I could emulate on a mobile device. This would be, by far, the cheaper option.

Thanks

@diadem there’s no firm release date but it’s very soon. A matter of weeks, rather than months.

As for donations:

Oh, and will saves be transferable between, say, iOS and PC?

srm saves will be, for sure. Savestates may or may not, depending on the individual core, endianness, weather forecast, etc. Some people have reported good luck with savestates from Android vs PC.

Cool!

And thanks for the quick replies

All ARM libretro cores (and RetroArch itself) are compiled with LSB_FIRST implicitly defined - so little-endian.

PC (or, well, x86 arch) is little-endian as well.

So swapping savestates and save files should be no problem between iOS and PC. Same is true for Blackberry / Android and PC.

Excited to hear about the iOS port about to be released soon, what is shader performance like? Will it support hdmi out? Also if I were to suggest a bluetooth controller, the icade 8-bitty is a good all-around practical controller for old school gaming.

The initial release has iCade support and BTStack support (native PS3 pad/Wiimote Classic support) - the iCade support was originally put in by meancoot for people on non-jailbroken devices since they can’t run BTStack there and without at least iCade support there would be no real physical gamepad support.

Regarding HDMI Out - right now you get the usual bordered graphics - however, I bought a Lightning AV adaptor for my iPad Mini and also a similar adapter for my iPad 2 so you can be rest assured that for the next point release (0.9.9.1) there will be something more complete in there - something along the lines of XBMC where you can set it to the full resolution of your HD display.

At least it seems to be free of lag and ghosting which is what I suffered under Android through HDMI Out.

Regarding shader performance - I wouldn’t expect miracles even though I haven’t tried it yet at all. All GPUs in tablets/phones are still embarrassingly weak compared to even a netbook GPU, and the shaders we use in RetroArch are the most demanding task that no game really would try to get away with - so poor performance is to be expected without at least a PS3/360-class GPU.

Starting with Tegra 5 you might be able to expect PS3/360-rivalling GPU power with obviously far better ‘performance per watt’ figures.

could anyone give me a .ipa or something so i can try this out? i have sadly no clue when it comes to compiling.

Hmm - that might be a good idea to get this release out without having to depend on a Cydia repo.

Does anybody have a HOWTO on how to make an IPA that will work on all jailbreak devices?

.IPA’s work on non-jailbroken devices too i think? since you can just drag them into itunes and install it that way. or maybe they need some type of “signature”

also found this: Apple have changed the way they assign downloaded apps … unfortunately as of now, this technique will ONLY work for apps assigned to the original downloader.

but dont know how that will affect something thats not on the official appstore

oh, i read that wrong. you said on jailbroken devices? thats no problem then! as long as you can make an .IPA file, you can install it via itunes\appcake\ifunbox

Tried shaders just now on RetroArch iOS and right now they don’t work at all which comes as unexpected since the same code worked just fine on Android and Blackberry.

You’ll have to wait until 0.9.9.1 until we get this sorted out I believe. Not that it matters much since most GPUs in iPads won’t be powerful enough for at least 95% of the shaders bundled anways.

OK, here is the first version.

How to install

  1. Go to Cydia, go to ‘Sources’.
  2. Click on ‘Edit’.
  3. Click on ‘Add’.
  4. Add as a source ‘http://themaister.net/cydia’.
  5. After it is done with fetching the package listings, click on ‘Search’.
  6. Type in ‘RetroArch’.
  7. Install.
  8. You will now find an icon of ‘RetroArch’ on your start screen.

Notes

  • Shaders don’t work yet so don’t bother trying to get them to work right now. This will be looked at.
  • Remember that your system directory is a hidden folder -

/var/mobile/Documents/.RetroArch

This folder is where you should store BIOS files for emulators, such as the PSX BIOS Files for PCSX ReARMed and the Sega CD BIOS files for Genesis Plus GX.

  • If you want to use PS3 pads and/or Wiimote Classic pads on a jailbroken iOS device, you will first need to install BTStack. Note - you cannot use BTStack on non-jailbroken iOS - it’s only iCade support for you there.

superb work! playstaion ran alot better than i expected! and working bang on with the icade 8-bitty. epic retroarch is epic!

going to have to get BTstack also so i can try it with a ps3 controller.

Crash on rom startup of pcsx rearmed Device : IOS 6.1.3 semi tethered jailbreak Iphone 4

Couldn’t find a workaround it’s the same thing since wip1 0.99