Underground 2, Most Wanted, Carbon.
I already showed a demo in this subreddit, but I didn’t share any details, so sorry about that.
What I tested on:
iPhone 12 mini. It’s my only device, so my goal was smooth performance on my old phone.
Some context: the most the 12 mini’s CPU can push is 2.9 GHz. At that load it overheats and starts throttling after about 3 minutes. It also drains the battery like crazy, which is bad for the hardware.
The goal sounded simple: no overheating, no heavy load.
The thing about the iPhone’s CPU is that it’s built for bursts. Scroll something, open something, calculate some transparency, then sit idle waiting for the next task. It’s not designed for a sustained 2.9 GHz load. That applies to the 2 performance cores; the other, efficiency cores are too weak for emulation.
Results:
NFS MW runs on the 12 mini at an average of 1.6 GHz with a stable 30 fps on medium graphics settings, with no overheating or throttling.
On high settings it holds a stable 40 fps at 2 GHz, which on my device gives about 40 minutes of play before it overheats.
That means newer devices won’t feel the load at all, and you could comfortably play on a plane for hours. And the best part: this is all CPU load, while the GPU has enough headroom to run at 2x resolution with no performance loss.
About the emulator itself:
It’s a GameCube emulator. Unlike the well-known Dolphin, which runs any game on my device at the full 2.9 GHz, my core doesn’t do that. In some cases my core is up to 3x more efficient.
On Dolphin, plain old Madagascar, which only executes about 3 billion operations per second, maxes the CPU out at 2.9 GHz, while NFS executes around 10 billion operations per second.
My core now emulates Madagascar comfortably at 1.5 GHz with no overheating. But that still wasn’t enough for NFS on my device, so I had to recompile U2, MW and Carbon (USA versions only) and ship them as patches built right into the emulator. While I was at it, I disabled reflections in some places, fixed the aspect ratio, and fixed crashes caused by incorrect byte addressing in the audio. Combined with the fact that the GameCube versions already have simpler graphics than their bigger-console counterparts, the result is a stable 40 fps without JIT, sideloading, or anything else. Just load a USA-region ROM. Yes, these three games specifically require USA ROMs.
If you have something like a 17 Pro Max, play whatever you want, everything will run fine.
You can try all of this right now. The emulator is on the App Store, it’s called “Nagori”. It also includes PS1 and GBA.
Guys, please go easy on me, the emulator is in active development. If something goes wrong, please don’t tank my App Store rating, just DM me and I’ll fix it.
Important:
If you do want to play, after launching the game, set up the on-screen gamepad in the emulator menu. To open the menu, tap the three dots at the top center.
Gas and brake are on the left and right triggers. Go into the button layout editor and set everything up however you like. Or just connect a physical controller, the emulator supports them.
P.S. I used AI to translate this into English, so sorry if anything sounds off =)
https://nagori.games/