OatmealDome / dolphin-ios

Dolphin for iOS, reborn
Other
288 stars 31 forks source link

Is JIT still necessary? #93

Open TraySSan opened 1 year ago

TraySSan commented 1 year ago

With these ridiculously powerful CPU's like the M1 and M2 in iPads, do we really still need JIT? Could we make a JIT-less build?

OatmealDome commented 1 year ago

You can give this a try right now if you want.

Go to Settings -> Config -> Advanced -> CPU Emulation Engine and change the engine to Cached Interpreter.

Note: Because of how DolphiniOS works, you will still need to "enable JIT" with AltStore/SideStore/whatever before emulation can start. However, if you have an interpreter set as your CPU emulation engine, JIT won't actually be used.

GGIEnrike commented 8 months ago

Is it possible to make a build/official version with JIT disabled permanently, since how hard it is to get it working on iOS 17 atm? Can I build such version right now, or is it more involved to disable the JIT permissions in the app config?

OatmealDome commented 8 months ago

There is no way to create such a build at this time. I'm not really interested in creating one either, since I don't want to mislead people into thinking that JIT is no longer required. Even an M1 Mac Mini can only run Wind Waker at 40% speed with Cached Interpreter.

image

If you want to produce such a build yourself, some modification is necessary. The Dolphin core assumes that JIT is always available (for example, with the vertex loader). You also need to strip out the JIT checks within the UI.

GGIEnrike commented 8 months ago

sorry, got ya. this was quite uninformed of me...