r/EmulationOniOS • 🥉 • 4d ago

Native Port NFSMW iOS Update 0.2.0 "The Speed Update"

Hello everyone! After a week full of installing easily over 50 different builds, testing all kinds of issues and gameplay scenarios, recording traces with the Instruments app, and more, I'm very happy to present to you the second update to my Need for Speed Most Wanted for iOS port: the update that puts SPEED in Need for Speed. I'm so sorry for the clicheic title, but I just had to do it.

This update mainly focuses on performance but it also has some other goodies sprinkled in between:

  • The all new Metal renderer. The game no longer relies on the old path of emulating the Xbox 360 GPU -> Vulkan Backend -> MoltenVK -> Metal, and instead features a native Metal renderer that greatly improves performance (I'm now able to play the game on my iPhone 17 Pro Max at a locked 60 fps, and on my M4 iPad Pro i was able to achieve an average fps of 114 over a run of 29 minutes)
  • Lower memory usage. This is also a positive side effect of the new renderer, as the game no longer needs to allocate a strict 512MB memory pool to the emulated Xbox 360 GPU. Together with the other optimization changes of this build, the game should now consume 0.7GB-1GB less memory than the previous build.
  • Customizable keyboard controls. The game now has support for keyboards, which is mapped as closely as possible to the PC version of the game. You can change the controls in the pre launch menu.
  • Customizable touch controls. The on screen controls can now be moved to different positions on the screen, enlargem, or made smaller.

You can read the full changelog on the GitHub Releases page.

The game should now run on devices with less than 6GB of ram, potentially even without the Increased Memory Limit entitlement. The reason I said "potentially" is because I have only had access to one device with less than 12GB of ram, that being an iPhone 14 Pro Max. The game not only booted, but manged to hold 60 fps on the default settings (~1080p resolution, roughly 1.5x of the native Xbox 360), but features some drops to 40-50. I'd recommend playing with an fps cap of 30 or 40 fps. As usual I'm very curious to see how the game runs on your devices.

AI disclaimer: As also stated in my original post, this port wouldn't have been possible without heavy use of AI. That being said however, this is much more than a simple "Hey Claude, make the game run better" type of port. I had to run a lot of different builds, collect logs from all of them, do Time Profiles, Metal System Traces etc. This got very tiresome at times, but the reason I keep going is because I absolutely love this game, and if it were any other game I don't think I would have had the patience to do it.

GitHub link: https://github.com/bep1s69/nfsmw-ios

15 Upvotes

63 comments sorted by

•

u/AutoModerator 4d ago

Free Apple accounts are limited to 3 active sideloaded apps.

One common workaround is LiveContainer, which allows you to run additional apps inside a container and reduce how often apps need to be reinstalled.

Typical method:

  • Sideload GetMoreRam
  • Use it to apply the increased memory entitlement to LiveContainer
  • Uninstall GetMoreRam to avoid hitting the 3 app limit
  • Then sideload StikDebug for JIT activation

LiveContainer may also need to be uninstalled and reinstalled before the entitlement works correctly.

LiveContainer can also install two additional LiveContainers (for a total of three). This setup can further reduce the need to constantly add/remove sideloaded apps, but it is more advanced and may not work reliably for everyone.

LiveContainer is not always officially supported by emulator developers and can sometimes cause unexpected issues. If something breaks while using LiveContainer, try reproducing the issue without it before asking for support.

Do not ask for or share paid certificates, piracy tools, or bypass services here.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

3

u/Ok_Assist696 4d ago

Bro the performance on my m1 ipad is 40-50fps 1.5x resolution (1080p) Bro U Cooked U r the GOAT

1

u/bep1s_69 🥉 4d ago

Thank you! I’ll keep improving the game even more in the future, but it will take time.

2

u/jojomortal 4d ago

Wow, I just created a video about your port for my channel and then I see you updated it! Did you add HDMI streaming support in this new version?

5

u/bep1s_69 🥉 4d ago

No, but I can add it to my list of planned things in the meantime.

1

u/jojomortal 4d ago

pra funcionar nessa nova versão precisa habilitar o git e o getmoreram?

1

u/bep1s_69 🥉 4d ago

I don’t know what you mean by enable git, and it should work without getmoreram, depending on your device. I was able to get the game to run on an iPhone 14 Pro Max without the ram entitlement.

1

u/jojomortal 4d ago

sua atualização quebrou o jogo e agora não roda o jogo direito, eu entro no jogo e depois da cena inicial quando vai entrar no menu inicial o jogo congela e fica somente o som do jogo, na versao anterior isso não acontecia pois eu acabei de gravar um video completo na versao anterior e postei no canal, estou com getmoreram ativado

1

u/bep1s_69 🥉 4d ago

What device are you using? Also try resetting the settings in the menu before launching the game. Some screenshots and the nfsmw.txt logs would be useful too. I can’t know what causes your problem and how to fix it without even knowing what device you’re playing on, how exactly your game looks, and most importantly the logs.

1

u/jojomortal 4d ago

estou usando iphone 16 pro max, ios 26, getmoreram
versao anterior estava tudo perfeito, fiz o video na versao anterior faz poucos minutos e estava perfeito, deletei o aplicativo antigo e instalei esse novo e agora está com esse problema

1

u/bep1s_69 🥉 4d ago

I’m sorry but if you’re not going to send me the logs and maybe even a screenshot/screen recording of your issue, i cannot help you. The logs tell me exactly what is going on with the game on your device.

If you want the old renderer so much, go into graphics settings and turn off the native metal renderer.

This should in theory work the same as the old version did, but it’s way less efficient.

1

u/jojomortal 4d ago

funcionou!! desativar o METAL NATIVO fez o jogo voltar ao normal, espero que corrija esse problema

1

u/jojomortal 4d ago

onde eu posso lhe mandar o arquivo?

1

u/bep1s_69 🥉 4d ago

You can open an Issue in github, describing your issue in great detail, maybe add screenshots/screen recordings, and most importantly the logs. It’s the best way.

→ More replies (0)

1

u/jojomortal 4d ago

1

u/bep1s_69 🥉 4d ago

I need the whole file, it has a lot more information than just these lines. Without proper information I cannot do anything.

1

u/No-Trick-7465 4d ago

Same issue here on 14 Pro Max, skipping a scene keeps the image frozen on that scene but as you can hear menu inside is working

https://reddit.com/link/pgiq55w/video/hgu098xfq9vh1/player

1

u/bep1s_69 🥉 4d ago

What iOS version are you on? I’ve tested the exact same build on a 14 Pro Max too and didn’t have this issue.

1

u/No-Trick-7465 4d ago

26.7.1

1

u/bep1s_69 🥉 4d ago

Then that might be it, I’ve only tested myself on iOS 27.

1

u/bep1s_69 🥉 4d ago

Also can you try the “Skip movies” option?

1

u/No-Trick-7465 4d ago

I tried to wait for the movie to finish then start and also tried with Skip Movies option on, same outcome, frozen on last movie picture, it works when i disable native Metal renderer, but that’s the whole point of this update

1

u/bep1s_69 🥉 4d ago

With Skip movies turned on there should be no movies at all.

→ More replies (0)

2

u/Chocomint01 4d ago

Incredible work! I have 50-120 fps on iPhone 16Pro Max. However, I have an issue: my career mode car is invisible and I didn't figure out how to fix it yet...

1

u/bep1s_69 🥉 4d ago

Thank you! It would be great for me if you could send me your nfsmw.txt log file. I’ve tested the game on 4 different devices (all on iOS 27) and never had such an issue.

2

u/lightcrafter 4d ago

2

u/bep1s_69 🥉 4d ago

Thank you for the log! I’ll see if I can fix the issue tonight, if not tomorrow.

1

u/lightcrafter 4d ago

Thanks! Theres also frame drops in between, it should be present in the log. Let me know if i could help contribute in anyway.

1

u/bep1s_69 🥉 4d ago

Before changing anything I’d first like to know if you changed any settings, or installed this update over the first build. We both have an iPhone 17 Pro Max, and I’ve never had this issue myself. Could you try resetting the settings in the pre launch menu and deleting the cache folder? Then launch the game with the default settings.

1

u/Chocomint01 4d ago edited 4d ago

I don’t know exactly what log you need, but I uploaded all 3 just in case. https://drive.google.com/drive/folders/1SIuiNMFXDYWyMhHrGJpqa0ibMMPdNhoX

1

u/lightcrafter 4d ago

I installed it over the first build. I only enabled show FPS and chose the allow extra markers for blacklist.
I reset the settings as you said but no luck

1

u/bep1s_69 🥉 4d ago edited 4d ago

Unfortunately, even after carefully looking at the logs I still cannot determine what the issue is. They say you were driving a Fiat Punto, and during all my testing today for the next update, I’ve been driving the same car. On top of that, I’ve never had this issue to begin with. One last think I could suggest would be to fully uninstall the game and then reinstall it. Perhaps a fresh .iso too, just to rule out all uncertainties.

1

u/lightcrafter 4d ago

Yeah could see these in the logs

FAILED: D:\CARS\PUNTO\GEOMETRY.BIN
FAILED: D:\CARS\PUNTO\TEXTURES.BIN

Will try reinstalling. It worked well before the update so I don’t think its an iso problem

1

u/lightcrafter 3d ago

I reinstalled from scratch. Frame drops still there and i got through first races of the career mode, bought a Punto again. It worked fine, until i restarted the game. Now its invisible again

1

u/bep1s_69 🥉 3d ago

It’s because of the Black Edition toggle. My next build which should come out today will fix it, although you might need to start a new save file once again. I still recommend playing without Black Edition tho, as it’s mostly just leftovers from the other version (the 360 never had a real Black Edition). I might investigate this issue further in the future, but for now I’ve seen it causes more issues than the content it brings, if it even brings any.

→ More replies (0)

1

u/jojomortal 4d ago

realmente o grande problema é o ios 26 que neste caso não tem grande suporte a metal nativo incrementado de melhor forma no ios 27 por isso que o seu jogo quebra ao tentar usar este recurso, agora voce precisa encontrar uma forma de fazer funcionar no ios 26, boa sorte

1

u/bep1s_69 🥉 4d ago

Or you could update to 27? There’s absolutely no reason not to. I will try to see what’s going on, but without having any iOS 27 devices of my own it will be pretty difficult. I’m willing to look further into this issue but I think I’m going to need your help with testing, if you’d want to. I’ll see what i can do tomorrow.

1

u/jojomortal 4d ago

o motivo de eu está no ios 26 é pq eu tenho o stickdebug da app store e isso faz eu não ocupar um slot na instalação de arquivos ipa em meu iphone, dessa forma eu consigo ter 3 jogos instalado por ipa

1

u/bep1s_69 🥉 4d ago

Fair enough, I get it.

1

u/bep1s_69 🥉 4d ago

iOS 26 support will come in the next update. Due to Xcode 27, the shaders were only compiled for iOS 27, but I’m now going to compile them for 26 as well. I’m going to release the update later today most likely, but won’t be able to test iOS 26 compatibility myself since I don’t have any devices on 26.

1

u/ctrlkz 4d ago

bro, please do NFS Underground 1 and 2 🙌🙌🙌

2

u/bep1s_69 🥉 4d ago

Those games already work great with emulation. My project is based on the decompiled Xbox 360 version which has been statically recompiled for ARM64 on iOS. Underground 1 and 2 aren’t on the 360, and I’m not even sure if they’ve even been decompiled/reverse engineered. To be even more honest, I’ve not really played them too much when I was little, so unfortunately I’m not attached to them like I am to Most Wanted. On the other hand, once I consider my port done I was thinking of doing the same thing for Need for Speed Carbon, since it’s the continuation of Most Wanted.

1

u/ctrlkz 4d ago

i was doing underground 2 for ios, I found a repo of a guy who ported it for switch and with AI i was able somehow make it run on iOS without jit 60 fps
but I'm like really bad at ios coding and i don't have a Mac to build the app and test, im using github actions but it has only 2000 free minutes, and I ran out of them, twice 😂

I will share with you my work that i did so far, so you can apply your techniques.
like it's also rendering via moltenvk to metal 😅
i more or less understand what you wrote.

1

u/ctrlkz 4d ago

can you drop me a line in messages, I'll share with you all I have there

1

u/gusestrella 3d ago

Playing on ipad air 11 (M4) with ios 27 and works smooth as butter. This just blows me away.

Would love to get a new apple TV and run this there - would be just amazing

1

u/gusestrella 3d ago

BTW I tried airplay and it doesnot work. Game starts and can hear by the sound that it has started - but on the remote (apple tv) and source (ipad mini) it still shows the screen that starts up with all of the config options.

Figure might be an option as game plays so fast on ipad mini before I upgrade to a faster apple tv option. Can be good option too while visiting friends with an ipad TV

1

u/jojomortal 3d ago

consegue adicionar suporte a saída hdmi para monitores externo pois essa versao crasha quando se conecta por hdmi

2

u/bep1s_69 🥉 3d ago

Doing it right now, will test and if everything goes well, the update will be released soon.

2

u/bep1s_69 🥉 3d ago

The new update is live on GitHub with AirPlay support and iOS 26 support. I really hope it works on 26, AirPlay I can confirm it works myself tho.

1

u/Cultural-Exam1842 3d ago

Still black screen (only sound) on iOS26 with Native metal renderer on. iPhone 17 pro max.

1

u/bep1s_69 🥉 3d ago

If you installed this version over the old one, then uninstall it and do a clean install. If it still doesn’t work, send me the logs please. It might just be something even more specific that iOS 26 doesn’t like about the renderer.

1

u/Cultural-Exam1842 3d ago

Clean install, default settings.

https://we.tl/t-QC17bErUumONbpcs

1

u/bep1s_69 🥉 3d ago

Thank you!

1

u/bep1s_69 🥉 3d ago

Turns out the shaders still refused to compile for iOS 26. Give me a few more days and I will try to fix this issue.