libretro / RetroArch

Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
http://www.libretro.com
GNU General Public License v3.0
10.3k stars 1.84k forks source link

RetroArch Compiled in iOS 7 - icade #304

Closed thededman closed 11 years ago

thededman commented 11 years ago

edit - this is was resolved many version ago.

I have downloaded the latest build this evening, and compiled in Xcode with iOS 7. I updated my ipad to iOS 7 GM and downloaded the newest Xcode and iTunes 11.1 beta. So this version will compile in Xcode 4.6 and works on iOS 7 - no icade support in non-jailbroken. Tried again in Xcode 5 with new SDK, and no icade support in non-jailbroken ipad or iphone. @meancoot is this something with in the new iOS?

miwagner1 commented 11 years ago

The status bar on top is there cause of the new way iOS 7 handle it. And its been compiling fine throughout all of the betas

thededman commented 11 years ago

So this version will compile in Xcode 4.6 and works on iOS 7 - no icade support in non-jailbroken. Tried again in Xcode 5 with new SDK, and no icade support in non-jailbroken ipad or iphone. @meancoot is this something with in the new iOS?

miwagner1 commented 11 years ago

yes there is ios 7 broke bluetooth in a lot of apps. If i remember properly bluetooth broke in beta 5 and has been broken since then.

meancoot commented 11 years ago

It's possible the keyboard hack I was using broke. It blindly inspects a block of memory returned by a private API call.

Worst case would be losing keyboard support and reverting to the textfield method for iCade support. But I can't test anything until the latest Xcode and an iOS7 simulator are released publicly.

thededman commented 11 years ago

I have the lastest Xcode now? But maybe because I registered as a dev? Ok, that will be great to get that back and working. I tried but got lost. Thx.

miwagner1 commented 11 years ago

Ahh that explains it.

mpelos commented 11 years ago

I have the same problem here.

I updated to ios 7 yesterday and my ipega pg-9017 don't work anymore in keyboard mode.

meancoot commented 11 years ago

Looks like a worst case scenario. Keyboard events aren't passed to UIApplication's sendEvent method anymore. iOS 7 is going to lose plain keyboard support, but I'll get iCade up and running again in the next couple of days.

thededman commented 11 years ago

@meancoot Thanks for the quick fix. Recompiled in Xcode5 and working with my iCade 8-bitty again! :+1:

@DarkBanHammer We're back in action!

Davu67 commented 10 years ago

@thededman how you managed to compile and run the games? I have developer account and I can not for nothing, I am not developer but only paid to have the retro arch. please help me. you're the only one I found that could.

thededman commented 10 years ago

I was in the same boat six month ago. in Mac OS X download the ZIP of the LIBRETRO-SUPER to the desktop or a folder. now open TERMINAL, change to the directory where libertro-super is located. type ./libretro-fetch.sh then enter. 'this take a few, have a beer or coffee.' Now you have the master RETROARCH and the cores for building. If doing iOS, then type ./libretro-build-ios.sh 'THIS WILL take at least 20mins? May be quicker, for I'm running my Mac in VMWare Workstation. When completed, in the libretro-super folder look for DIST, in there iOS copy all the cores. In the same folder locate RETROARCH, expand apple, locate modules. Paste those CORES there. Now, locate the Xcode project in that same folder. Build and ready to go! I have try there instructions on the RETROARCH for iOS and the command line code doesn't work for me. Possible I'm not reading something. Hope this helps. I too bought a dev account JUST for RetroArch project on iOS 6 months ao. :-)

Lodovik commented 10 years ago

@thededman

I too, just bought a dev account for building RetroArch but so far it's not working. I've followed your instructions (thanks for that!). I built the cores, transferred them, and used Xcode to build RA to my iPad Air. Everything seems OK: I can select a core and then a ROM but when I try to play it, I either get "Failed to load content" or RA closes.

I have the latest Xcode (5.0.2) and just upgraded my Mac to Maverick. I'm new to this (1 day) and I think I'm close to succeed but after hours of research, I can't put the finger on the trouble.

Also, I've read your recent message about the latest build on Github having errors and followed your suggestion to use the fd85xxx build. I don't have any error message when building except from some warnings.

Could it be a code signing issue? I downloaded the provisioning profile and put it in the script folder and modified the build.config accordingly before compiling the cores and got the same results. I'm under the impression that the problem is with the cores, though because the interface works fine.

Also, I used iTunes to transfer the test roms just to be sure that I don't have a permission problem. My iPad is or course not jailbroken so I doubt I would be able to repair a permission problem. I also use iFunbox to check that everything is there and used it also to try some roms.

Edit: It worked once in debug mode and a ROM named 7th appeared. This was after I downloaded the cores you compiled. My impulse controller isn't working in iCade mode but works fine with other apps when I tested in debug mode. So now, I have two problems...

I saw an error in the debug output that said: BTstack: Attempting to loadBTstack: /usr/lib/libBTstack.dylib not loadableBTstack: Not loaded

must be the cause of the controller problem.

thededman commented 10 years ago

@Lodovik - I have been working up a detailed how to for us non-jailbroken iPads/iPhones. The instructions posted are simple from they retroarch project, but I too had issues in the beginning. I have it down to a science now, and trying to get it in to a simple how to with screenshots for anyone. It's my way of giving back to this awesome project! I will post a link here soon for the how to instructions. I'm reverting to a new clean install of my virtual Mac OS X now, and will be sure my instructions are working.

Lodovik commented 10 years ago

Thank you, thededman! This will be of great help for us noobs. In the meantime, I'll still try to find what's wrong with my setup. At least, I'm progressing a little...

thededman commented 10 years ago

I had a hell of a time too the first time, so I'm paying it forward. *And trying to relive my C programming classes in 96' This is a work in progress, but hope it helps. PLEASE email me feed back to anything I may have missing or miss typed. Thanks. https://www.dropbox.com/s/gunescp6axreyxx/Getting%20RetroArch%20working%20on%20iOS.docx

I found a mistake in the new build script I uploaded to dropbox fixing now. I have booted a new Mac OS X, downloaded Xcode 5 and installed CLI for Xcode. followed my instructions, and works perfect on my ipad air.

thededman commented 10 years ago

I found a mistake in the new build script I uploaded to dropbox fixing now. I have booted a new Mac OS X, downloaded Xcode 5 and installed CLI for Xcode. followed my instructions, and works perfect on my ipad air.

Lodovik commented 10 years ago

Wow! Good job. I'm eager to try it! I'll start from scratch and report my results. Thanks again!

thededman commented 10 years ago

I rushed the last script, there was a type-o but fixed. Used the new-script.zip from the DropBox link in the how to documentation.

Lodovik commented 10 years ago

I used your instructions and the corrected scripts to successfully build my retroarch ipa. Once again, good work! This is something I was planning for a long time.

I noticed some little inaccuracies:

At step 3 it is told to save the custom scripts to LIBRETRO-SUPER, shouldn’t it be to LIBRETRO-SUPER-MASTER instead? In step 8 there is also a reference to LIBRETRO-SUPER.

When the script built the cores, an error occurred with PSXrearmed, causing the script to exit. If I remember correctly, this core use dynamic recompiling and is not compatible with non-jailbroken device. Should it be commented out? Or maybe it should compile anyways but produce an error at runtime. At all my attempts since I tried to build the cores, PSXrearmed always produced this problem. I don’t know if it’s on my side or if it’s on the repo.

The only thing I couldn't resolve is the support for my 8-bitty (iCade mode) or impulse (iCade mode also). This is not a problem caused by your instructions but on your end, do the iCade support works? I've tried to enable / disable iCade and controller auto-detect and never could redefine or use the buttons. I know my controllers work because they are OK in other applications (Gridlee, the hidden Mame emulator works perfectly). Is the iCade support broken in the latest builds? If not, I must have made a mistake somewhere and will try again.

Also, BSNES is not working but the other SNES emulator is OK, also a possible problem with the latest build; can you confirm this?

thededman commented 10 years ago

I have updated the the how to documentation. Thank you @Lodovik. PSXrearmed will not work. this requires root access to the to CPU and works on JB device only. I too had issue with BNES is not working for me either. I will post a problem on that core soon, I just have been busy.I have been trying to make a new frontend for iOS users in a new fork.

inactive123 commented 10 years ago

I haven't ever tried 'bnes' on iOS. Really, that core has not been touched in about half a year. NEStopia and FCEUmm are likely better in every way for now - we may or may not update the bNES core - maister might want to chime in on whether it's worth it.

thededman commented 10 years ago

@Lodovik YES, the iCade Broke in the last commit. I will find the proper one for you an post back,

thededman commented 10 years ago

I have post a new comment with the new how to documentation.

Lodovik commented 10 years ago

I view this as all good news: It means that your tutorial works great because we've got the same results. I was more worried about compiling correctly than about those little things that broke in the last commit.

thededman commented 10 years ago

I will work up a tutorial on replacing old commit it the retroarch folder so you can enjoy RetroArch as i have with 8-Bitty! First I have to go sledding in the back yard with my kids!

Lodovik commented 10 years ago

That's really appreciated. The iPad Air, 8-Bitty and emulators are a killing combination of retro goodness!

thededman commented 10 years ago

@Lodovik and @Davu67 Use this version- https://github.com/libretro/RetroArch/tree/292418492e87b12cb5c6d880ee23e329fc47b01e

Seems that the icade broke after this version. I thought I was using the the newer release for testing, but was not.

if using my directions, browse to libretro-super-master/retroarch/apple folder. Copy the MODULES folder to say- desktop.

Download that zip RetroArch-292418492e87b12cb5c6d880ee23e329fc47b01e. Then open that up, SELECT ALL and COPY.

Browse to the libretroarch-super-master/retroarch - paste the downloaded information from the downloaded verison.

Open the Xcode project again, compile, install to device and enjoy icade with RetroArch. I post thing to @meancoot on the the keyboard function seem to broke it. *I'm trying like hell to try and resolve this issue on my own. I still have a ways to go in C/C++/Xcode refresher courses

thededman commented 10 years ago

FYI: my icade stayed working because my new builds are a direct replacme t and kept my mapping from prior versions. So the last posted version is the old working one with icade as of today.

Lodovik commented 10 years ago

Thank you @thededman! Just a couple of questions: What is the use of the Modules folder that's been copied to the desktop? Is it because we use the newest modules with an older Retroarch release? If I understand correctly, there's no need to use the libretro-build-ios script because we are only rebuilding Retroarch interface around the newest modules (I hope that make sense!).

Sorry for asking so basic questions but your help is greatly appreciated.

Edit: OK got it! I didn't knew that OSX would replace the module folder with an empty one when copying. So I copied the modules back into their folder after this. Too many years in Windows I guess...

Edit2: It Works! Everything seems to be fine, the emulator retains its settings, the 8-Bitty works great. Now I know what to do with all this empty space on my 128GB iPad...

Thanks again! Now let's play some games!

thededman commented 10 years ago

Awesome glad to hear this is working. Sound like someone enjoys the classics as as me. It was the only reason I spent the $99 on the development account so I could use retroarch on my ipad and kids devices.

URBANsUNITED commented 10 years ago

Hi!

Maybe I am doing something wrong... Most of my previously working MAME/FBA games don't work anymore :( Everytime I choose a rom, Retroarch says "failed to load the content" My roms worked on my old iPad2 - jailbroken - on my iPad mini Retina - not jailbroken -, they don't. Specially all NeoGeo roms don't work, but other systems ex. CPS1 + 2 work. I am using the modules supplied by thededman and compiled the retroarch version 292418492e87b12cb5c6d880ee23e329fc47b01e because of the iCade support. Has it something to do with permissions? Maybe it's only NeoGeo Bios related? I am using the neogeo bios from the mame 078 merge. Maybe someone can point me to a proper version??? All my GBA, GB, NES & SNES games work without any issues. And an other thing... I can't set the "Y" and "UP" key on my iCade core. All others a setable. I know that the keys are working on other systems.

Many thanks to thededman btw. for your great support and findings!!!!

Thanks

URBANsUNITED

Lodovik commented 10 years ago

@URBANsUNITED, I had problems with setting some buttons too until I realized that those buttons were already assigned to other functions. I got through the entire list in global settings and unassigned every joy to nul. Then, I reassigned those I use and this worked fine. If you press the buttons and they are not detected then it's another matter. Watch also for assignments in per core basis. Or maybe you could try to delete .cfg files in .Retroarch.

For my build, I used the latest libretro-super-master and compiled the cores, using the @thededman tutorial. I kept the modules folder and used the 2924184 retroarch version to make the build with Xcode, following the instructions of thededman (see above). I then uninstalled Retroarch from my iPad and deleted it from iTunes before reinstalling the new ipa file. Then, everything worked. If you don't get the same results it may be a problem with your roms. But, I haven't tested FBA because I already have a fully working MAME 0.139 version with the Gridlee app that I was lucky enough to get from the store before Apple banned it.

I think that the iCade problem has been resolved in the most latest builds, though. Since my version is working perfectly as it is now, I didn't rebuild it because of the hassle of retransfering all the roms. Here's the link: https://github.com/libretro/RetroArch/commit/12c1725ea64061e1840e9ff9b7d3c66ff4de88ab

inactive123 commented 10 years ago

We have MAME 2010 (0.139) and MAME 2013 (0.151) in libretro form too. I dunno if they can run on iOS right now - but that can be done.

Lodovik commented 10 years ago

When we thought we couldn't ask for more, you guys are still adding more modules! I would prefer to have MAME under Retroarch because I fear that someday, something could happen with a newer version of iOS that would render Gridlee incompatible or only partially working. I was surprised that iOS7 didn't break it.

URBANsUNITED commented 10 years ago

@Lodovik my problems are nearly solved! I started from the scratch and compiled the latest Retroarch version. I can confirm that the iCade support is back and works flawless! Perfect!!! Thanks! My problems with the roms came from maybe from rom versions. My Mame 0.78 roms don't work with FBA and only some work with the MAME core. I used the lasted FBA roms with the FBA core and swoops NeoGeo etc. works 1a! So the only problem left is the MAME core. I can build all modules except the PCSX rearm and MAME 0.78!!! Is there a trick? I thededman's scripts don't do these twos!!! I know that unjailbroken ios device can't use PCSX rearm and DESUME. What about Mupen64?

Btw. I have Gridlee too from the app store :) But how do I acces the MAME menu? I forgot. And which rom version do I need?

Lodovik commented 10 years ago

@URBANsUNITED

I coudn't build the PCSXrearmed module either, with or without Thedeadman's script. I didn't try MAME or Mupen64 but I will switch to a newer build since the iCade is now working.

With Gridlee, you get the games list menu when you add new roms. After you start a game, you can press Coin+Start simultaneously to go to the options for this game, where you can map buttons, activate cheats and so on. You need tu use the 0.139 romset.

cangdu commented 10 years ago

Lodovik, upload your IPA and send it to me if you will. damuzikmajerz@gmail.com. Ill resign it.

Lee1500 commented 10 years ago

Could u be able to send me the IPA I can resign it

Sent from my iPhone

On 21 Dec 2013, at 08:39, "cangdu" notifications@github.com wrote:

Lodovik, upload your IPA and send it to me if you will. damuzikmajerz@gmail.com. Ill resign it.

— Reply to this email directly or view it on GitHub.

cangdu commented 10 years ago

I haven't received an IPA from anyone yet. But when and if I do I'll definitely send it your way

On Saturday, December 21, 2013, Lee1500 wrote:

Could u be able to send me the IPA I can resign it

Sent from my iPhone

On 21 Dec 2013, at 08:39, "cangdu" <notifications@github.com<javascript:_e({}, 'cvml', 'notifications@github.com');>> wrote:

Lodovik, upload your IPA and send it to me if you will. damuzikmajerz@gmail.com <javascript:_e({}, 'cvml', 'damuzikmajerz@gmail.com');>. Ill resign it.

— Reply to this email directly or view it on GitHub.

— Reply to this email directly or view it on GitHubhttps://github.com/libretro/RetroArch/issues/304#issuecomment-31059512 .

Lodovik commented 10 years ago

@Lee1500

I need your email address.

cangdu commented 10 years ago

Boifoolish@gmail.com or damuzikmajerz@gmail.com

On Saturday, December 21, 2013, Lodovik wrote:

@Lee1500 https://github.com/Lee1500

I need your email address.

— Reply to this email directly or view it on GitHubhttps://github.com/libretro/RetroArch/issues/304#issuecomment-31067770 .

Lee1500 commented 10 years ago

Cheers mate

Sent from my iPhone

On 21 Dec 2013, at 13:03, "cangdu" notifications@github.com wrote:

I haven't received an IPA from anyone yet. But when and if I do I'll definitely send it your way

On Saturday, December 21, 2013, Lee1500 wrote:

Could u be able to send me the IPA I can resign it

Sent from my iPhone

On 21 Dec 2013, at 08:39, "cangdu" <notifications@github.com<javascript:_e({}, 'cvml', 'notifications@github.com');>> wrote:

Lodovik, upload your IPA and send it to me if you will. damuzikmajerz@gmail.com <javascript:_e({}, 'cvml', 'damuzikmajerz@gmail.com');>. Ill resign it.

— Reply to this email directly or view it on GitHub.

— Reply to this email directly or view it on GitHubhttps://github.com/libretro/RetroArch/issues/304#issuecomment-31059512 .

— Reply to this email directly or view it on GitHub.

Lee1500 commented 10 years ago

Lee_hornby@hotmail.co.uk

Sent from my iPhone

On 21 Dec 2013, at 17:30, "Lodovik" notifications@github.com wrote:

@Lee1500

I need your email address.

— Reply to this email directly or view it on GitHub.

cangdu commented 10 years ago

Does it work for you? I haven't got it working for me :( ... When I try to load a rom it states failed to load etc..

On Sunday, December 22, 2013, Lee1500 wrote:

Lee_hornby@hotmail.co.uk <javascript:_e({}, 'cvml', 'Lee_hornby@hotmail.co.uk');>

Sent from my iPhone

On 21 Dec 2013, at 17:30, "Lodovik" <notifications@github.com<javascript:_e({}, 'cvml', 'notifications@github.com');>> wrote:

@Lee1500

I need your email address.

— Reply to this email directly or view it on GitHub.

— Reply to this email directly or view it on GitHubhttps://github.com/libretro/RetroArch/issues/304#issuecomment-31079313 .

Lee1500 commented 10 years ago

No I can't get it to sign through terminal

Sent from my iPhone

On 22 Dec 2013, at 05:28, "cangdu" notifications@github.com wrote:

Does it work for you? I haven't got it working for me :( ... When I try to load a rom it states failed to load etc..

On Sunday, December 22, 2013, Lee1500 wrote:

Lee_hornby@hotmail.co.uk <javascript:_e({}, 'cvml', 'Lee_hornby@hotmail.co.uk');>

Sent from my iPhone

On 21 Dec 2013, at 17:30, "Lodovik" <notifications@github.com<javascript:_e({}, 'cvml', 'notifications@github.com');>> wrote:

@Lee1500

I need your email address.

— Reply to this email directly or view it on GitHub.

— Reply to this email directly or view it on GitHubhttps://github.com/libretro/RetroArch/issues/304#issuecomment-31079313 .

— Reply to this email directly or view it on GitHub.

thededman commented 10 years ago

http://evasi0n.com/ - use the one from Cydia, is an older version but works!

cangdu commented 10 years ago

Which version bro

On Sunday, December 22, 2013, thededman wrote:

http://evasi0n.com/ - use the one from Cydia, is an older version but works!

— Reply to this email directly or view it on GitHubhttps://github.com/libretro/RetroArch/issues/304#issuecomment-31088816 .

cangdu commented 10 years ago

Actually... I took the deb from libretro repo site and turned it into an IPA using instasign and still no go... Unless I'm missing something

On Sunday, December 22, 2013, Costes Kimes wrote:

Which version bro

On Sunday, December 22, 2013, thededman wrote:

http://evasi0n.com/ - use the one from Cydia, is an older version but works!

— Reply to this email directly or view it on GitHubhttps://github.com/libretro/RetroArch/issues/304#issuecomment-31088816 .

meancoot commented 10 years ago

You need to extract the IPA and sign the dylib files in RetroArch.app/modules too.

cangdu commented 10 years ago

Okay will do

On Sunday, December 22, 2013, meancoot wrote:

You need to extract the IPA and sign the dylib files in RetroArch.app/modules too.

— Reply to this email directly or view it on GitHubhttps://github.com/libretro/RetroArch/issues/304#issuecomment-31096940 .