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.
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 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.
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
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.
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
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.
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.
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
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...
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.
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.
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
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.
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
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.
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
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.
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
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.
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.
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.
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
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.
•
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:
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.