Script to Compile the latest github for retroarch+cores for iOS

libretro-super % ./libretro-build-ios-arm64.sh bsnes_hd

uname: illegal option – o

usage: uname [-amnprsv]

CC = cc -arch arm64 -marm -miphoneos-version-min=8.0 -isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk …

cp “out/bsnes_hd_libretro_ios.dylib” “/Users/alexhide/libretro-super/dist/ios-arm64/bsnes_hd_libretro_ios.dylib”

1 core(s) successfully processed:

bsnes_hd

Compiled as usual…

As for the current version, log analysis shows the absence of many targets in the current source data: target-libretro, filter, lzma et cetera. Maybe it will clarify the situation a little:

1 Like

I did it! flycast and mupen64plus_next are now on tvOS! Check it out please: https://yadi.sk/d/CSntdbQ-FBJ7hw Many thanks to jet082.

Good job! However, you may need to change things slightly @xdccrlz.

As I have just gotten the most current version of Mupen64plus_next to compile (and work) on iOS-arm64. The PR is in the op. Please update your stuff @Weedy_Weed_Smoker since this one is newer and better.

1 Like

@jet082 Yeah, I’m just back from a trip to Amsterdam, and I just finished working on the up-to-date french translation… (https://github.com/libretro/RetroArch/pull/9642)

That’s great news! I will compile it right away… :wink:


EDIT : The new mednafen is already on the buildbot, I will compile a RetroArch version including the updated french translation, and all the cores up-to-date !

New version of mupen64plus_next non-correctly work with textures: hires textures seems very bad and add artifacts (see at tree top):

Compare with previous version:

This is beyond my knowledge, but I have asked the main dev.

Another problem is aspect ratio scaling. All widescreen modes roughen the picture. It is noticeable from start screen without the use of hires textures.

ppsspp community no sleeping: https://github.com/hrydgard/ppsspp/pull/12424. Non-jb devices are again working with jit.

@jet082 Hello. Are you still dealing with problem cores or doing something else? I’m interested in progress in flycast (textures and jit) and OpenLara (no output to screen).

So, one issue is that I’m coming up against a bit of a skill wall. There are some errors in the flycast core logic and I have discussed them with the person who basically manages it. However, fixing them or working around them is very difficult for me. I have also recently learned that, apparently, the “generic JIT” might work? I do not know if this is true or not, however, but I certainly spent an awful lot of time on trying to get it to work.

As far as OpenLara goes - the issue there appears to be in shaders not existing or something. I’m a bit unsure as to anything OpenGL beyond “debugging the problem.” In Craft, the issue is that some texture isn’t compiling properly or something when rendering the sky. However, there is a native OpenLara iOS version, so for now it might be best to just use that if you are interested in playing it.

And as for the non-JB JIT… I have been keeping a close eye on that. However, actually implementing it in other cores is far above my skill level, I think. Ideally, the people who know the various cores the best (flyinghead for flycast, for example) should implement that since they would know how best to do so. I mean, even more ideally, if it is at all possible, it would be nice to get a RetroArch-wide implementation so that various cores would not have to worry about implementing it in any particularized way. However, I do not know if this is possible.

Either way, if we want JIT in flycast, it will need some asm changes. I have gotten some of the asm stuff to work in arm64, but… Even then, I’m not ENTIRELY sure it is 1:1 since, well, the JIT just causes flycast to crash as it is anyway.

So that’s where things stand. The next core I think I want to work on getting interpreter mode working on is Dolphin. That seems feasible. Alternatively, I may try to look into getting JIT working retroarch-wide or something, but the issue is that I simply don’t have a way of testing to see if works. I do not know how to begin going about that.

Clearly. Standalone OpenLara have many issues in the iOS version and in general so as for does flycast. But no one has been in a hurry to solve them for months. And you have crazy potential and most importantly - courage. You will succeed.

Can take as a basis a couple of working cores and experiment with retroarch-wide JIT. I therefore suggested to try the solution from ppsspp because that works.

Well, the problem is - I do not have a core that I know works with JIT. I have cores that have JIT, but when they crash I do not know whether it is “because I implemented the PPSSPP hack incorrectly” or “because the random asm hacks aren’t working.” And I am not sure how to differentiate. If I can find a way to consistently test just the hack (for example, with a core that has JIT that works on a JB device), then I can begin working on that.

@jet082 Actually, I think we may have a problem with how JIT can be enabled on iOS, which is a little bit restricted compared to non security-oriented devices…

Even the greatly skilled @ qwertyoruiopz tried (since iOS 9/10 days, when 64-bit JIT was first tackled with…) when he was a little less skilled than now (and maybe a little to high to finish it… :joy: )


Since then, hrydgard implemented (and fixed with subsequent updates…) JIT in 64-bit ppsspp for iOS successfully, with the help of the amazingly skilled angelXwind

It’s the only emulator I know of that makes use of JIT on iOS 64-bit devices!

This was an issue opened by her in 2015:


It hasn’t been fixed yet within RetroArch…

We know it’s gonna be hard to fix it, so to say, don’t be too troubled about it! And you may have success reaching people who actually can and are interested to help…

(We believe in you though!)

:grinning:

(BTW: Thanks for allowing me to finally play the full Soul Calibur, with a joypad, and on a 64-bit iOS device… :wink: )

 Read this passionate thread about implementing JIT: 

I so understand that in pscx_rearmed there is a modification of jit from mupen64plus. And ppsspp’s jit is an adaptation of Dolphin’s jit. But after all broke a have someone?

If anyone has a JB’d device and can tell me a core that works with JIT, it would help me IMMENSELY.

Ok. I find iPad Pro iOS 11.4.1 and jb it. What’s else? What RA version need install? Cores?

@jet082 I have an iPad Pro 2 jailbroken on iOS 12.4 if you want me to test anything…

PCSX ReARMed seems like a good candidate, as the whole thing is rewritten and optimized with ARM in mind (although 32-bit only), and was pretty fast on an iPhone 4s, with upscaling… So it’s use of JIT is pretty much confirmed!

pcsx_rearmed is very good candidate, but mupen64plus_next have new jit for arm64, and ppsspp have working wit too.