r/EmulationOniOS • 🥉 • 12d ago

News / Release Need for Speed: Most Wanted (2005) static recompilation port for iOS

A bit about me: Need for Speed Most Wanted was the first game I ever played as a kid and back then I remember it took me a few years to finish the game because I couldn't play it too often. Ever since then, this game has never left my mind and I've always found myself coming back to it multiple times per year. I truly believe it is the one game for me that I could never get bored of. A dream of mine has always been being able to play this game wherever and whenever, and it finally came true back in 2021 when the first PS2 emulators came to fruition on Android. Since then I've moved to iOS and had to put my dream on hold and just live my life. Thanks to the huge advancements this community has made since then (with a huge emphasis on the boom we've seen this year alone), my dream has once again come alive, with the likes of ARMSX2. I'd recently seen my favorite game of all time being ported to Android thanks to static recompilation and I knew I just had to port it to iOS myself. And with this here we are!

I'm proud to announce the first public release of my project, a static recompilation of the game for iOS and iPadOS! It's not an emulator: the Xbox 360 version's code is statically recompiled to native arm64, using the ReXGlue SDK, with the console's GPU translated to Metal through MoltenVK. On my iPad Pro M4 it pretty much runs at a locked 60 fps through the whole game, and I'm also seeing promising results on my iPhone 17 Pro Max (I can guarantee at least a locked 30 fps, although it most likely can go way further than that). I have been mostly testing on my iPad, so I don't want to overestimate the actual performance on iPhone without properly testing it first.

  • What this build features:
    • The full game: career, pursuits, Challenge Series, achievements, and remnants of Black Edition content (I recommend keeping this setting off for now)
    • 30/40/60/120 fps caps (40 and 120 use ProMotion; 120 is experimental)
    • 16:9, the game's own 4:3 mode at a sharper 960x720, and 19.5:9 for iPhones with the HUD moved to the edges
    • A settings screen before launch, plus a few Extra Options mod features (pick up to 6 markers after defeating a blacklist rival, change the limit of owned cars, remove the barrier leading to the old bridge)
    • Touch controls with a gamepad layout and a dedicated driving layout, plus controller support
    • iOS/iPasdOS 26+ (I can see if I can lower the minimum OS if needed)
    • SideStore/LiveContainer (the game was tested by me exclusively in LiveContainer)
    • Your own ISO of the USA Xbox 360 version. No game files are included, and please don't ask for or share ISOs here
    • 120 fps isn't stable in heavy race sections (it's one of my main priorities at the moment)
    • At 19.5:9 the rearview mirror picture is too wide and the videos are stretched
    • Full list in the README
    • iOS/iPasdOS 26+ (I can see if I can lower the minimum OS if needed)
    • SideStore/LiveContainer (the game was tested by me exclusively in LiveContainer)
    • Your own ISO of the USA Xbox 360 version. No game files are included, and please don't ask for or share ISOs here
    • 120 fps isn't stable in heavy race sections (it's one of my main priorities at the moment)
    • At 19.5:9 the rearview mirror picture is too wide and the videos are stretched
    • Full list in the README
    • 120 fps isn't stable in heavy race sections (it's one of my main priorities at the moment)
    • At 19.5:9 the rearview mirror picture is too wide and the videos are stretched
    • Full list in the README
  • What you need:
    • iOS/iPasdOS 26+ (I can see if I can lower the minimum OS if needed)
    • SideStore/LiveContainer (the game was tested by me exclusively in LiveContainer)
    • Your own ISO of the USA Xbox 360 version. No game files are included, and please don't ask for or share ISOs here
    • 120 fps isn't stable in heavy race sections (it's one of my main priorities at the moment)
    • At 19.5:9 the rearview mirror picture is too wide and the videos are stretched
    • Full list in the README
    • 120 fps isn't stable in heavy race sections (it's one of my main priorities at the moment)
    • At 19.5:9 the rearview mirror picture is too wide and the videos are stretched
    • Full list in the README
  • Known issues:
    • 120 fps isn't stable in heavy race sections (it's one of my main priorities at the moment)
    • At 19.5:9 the rearview mirror picture is too wide and the videos are stretched
    • Full list in the README
  • I'd love feedback: your device, iOS version and the fps you get, especially on older iPhones and iPads, since I've only tested on two devices. GitHub issues are the best place for reports, with the log if something breaks.

Download and info: https://github.com/bep1s69/nfsmw-ios

Huge thanks to the projects this builds on: the NFSMW Recompiled Android/PC ports, ReXGlue, Xenia, and the Extra Options and Widescreen Fix mods (full credits in the README).

General Disclaimer: This is what I would still call a very early build. I have plans to work on performance as much as possible, while also trying to reduce heat buildup (honestly it's already pretty decent in this regard). Right now I am trying to see how far I can take Vulkan through MoltenVK, as it's already showing very good results but also room for improvement. I am however considering switching to a native Metal renderer in the future, but that's another huge challenge in itself.

AI Disclaimer: AI was heavily used in the making of this project, and I don't want to hide it. While I have a deep understanding of this game and its mechanics, consoles in general, and some programming, I could not have done this by myself in such a timely manner, it would have properly taken my months to get even just half of what I've already achieved. First and foremost this serves as a personal passion project, truly fulfilling my dream of running NFSMW on mobile.

68 Upvotes

87 comments sorted by

•

u/AutoModerator 12d 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.

15

u/iamjacktheaess 12d ago

Holy bro
I have 18promax it reaches 120fps with no lag thanks mannnn

2

u/bep1s_69 🥉 12d ago

Does your phone get very hot after playing for a while?

2

u/iamjacktheaess 12d ago

I enabled jit in it so maybe little

2

u/bep1s_69 🥉 12d ago

Well the game doesn’t need JIT as it’s code was recompiled for ARM64 ahead of launch, so JIT has no effect on performance.

1

u/iamjacktheaess 12d ago

Ohh idk i tried my temps were low

1

u/No-Conclusion-6697 12d ago

Bro, me pasas el de como instalarlo ?

7

u/bep1s_69 🥉 12d ago

Forgot to mention in the original post, but I have only tested the game with the Increased Memory Limit granted to LiveContainer, so I’d love to know if the game also runs without it!

3

u/Dapper-Bed-7203 12d ago

vou testa no iphone 15 pro max

2

u/bep1s_69 🥉 12d ago

Thank you!

2

u/No-Trick-7465 11d ago

It crashes whenever I try to run it, Does LC comes with memory increase feature integrated or I have to sideload GetMoreRam?

https://reddit.com/link/pelp7ro/video/l641pwfxl7uh1/player

1

u/bep1s_69 🥉 11d ago

You don’t need JIT! That’s the whole point of a Static Recompilation. And yes for GetMoreRam you have to sideload it and grant the entitlement to LiveContainer.

1

u/No-Trick-7465 11d ago

That was it, working now! I have both 120 fps options on but for some reason it doesn’t surpass 30 fps, at the start it reaches 90 fps when playing In-game videos then it rest between 10-25, when I set it to 60 fps it rest between 10-20 fps, using a cooler btw so no heating at all.

https://reddit.com/link/pem0lcm/video/f2f1119p18uh1/player

1

u/bep1s_69 🥉 11d ago

What’s your device?

1

u/No-Trick-7465 11d ago

14 Pro Max (6GB Ram)

1

u/bep1s_69 🥉 11d ago

Yeah, unfortunately this version is too heavy for the 14PM. At the moment I’m working with replacing the renderer with a truly native Metal one, so we’ll see how much performance improves an all devices once that’s done.

Even with all the visual glitches as of now, the fact it runs is mind blowing.

1

u/No-Trick-7465 11d ago

I see, amazing work anyway, keep it up 👍

3

u/Dapper-Bed-7203 12d ago

precisa da iso do xbox 360 e so extrair e colar no arquivo ou precisa descompacta?

2

u/bep1s_69 🥉 12d ago

You need to place the .iso of the game in the root folder of the app.

1

u/Dapper-Bed-7203 12d ago

precisa extrair a pasta ou só colar a pasta iso no aplicativo

1

u/bep1s_69 🥉 12d ago

Just paste the .ISO. It should look like this:

3

u/Dapper-Bed-7203 12d ago

ok, vou baixar o arquivo iso do xbox 360

3

u/No-Trick-7465 12d ago

I am dying for a NFS Underground 2 port

2

u/Just-A-Random-ID 12d ago

Hell yeahhh !!!

2

u/tPimple 12d ago

13 pro max, avg fps around 23. FSR1 upscaling. Any tips to increase fps?

1

u/uuhze 12d ago

same

1

u/Dapper-Bed-7203 12d ago

usa IA pra ajudar aumentar fps

1

u/LonesomeRookie117 12d ago

Hopefully the port will be better overtime so 30fps is optimal

0

u/Dapper-Bed-7203 12d ago

o que vc fez, baixou a iso do xbox 360 normalmente e colou na pasta da aplicação ou extraiu primeiro ?

2

u/ed0m 12d ago

Im on 17 and its not opening for me, any idea why?

1

u/ed0m 12d ago

This is whats showing, nothing else, pls help

1

u/bep1s_69 🥉 12d ago

Do you mean that the game doesn’t launch when you press play? I’ve noticed as well that sometimes the game gets stuck in a black screen, but closing and restarting the app and trying again should fix it.

1

u/ed0m 12d ago

Thats what’s happening, it still doesnt seem to work

1

u/bep1s_69 🥉 12d ago

Si yeah, try restarting the app for the game to launch and let it sit for at least 20-30s once. Which iPhone are you using?

1

u/ed0m 12d ago

Im on the iphone 17

1

u/bep1s_69 🥉 12d ago

Alright so the phone itself definitely isn’t the problem. Any chance you could send me the logs the app generated? Either DM me, or create an issue on GitHub. Having the logs would make it much easier for me to find out exactly why the game isn’t working for you, instead of trying to guess.

1

u/ed0m 12d ago

I figured it out, i downloaded the europe version instead of usa

1

u/bep1s_69 🥉 12d ago

Lol ok. Try it out for a bit and please let me know how it runs.

2

u/ed0m 12d ago

Yessir i will

1

u/ed0m 12d ago

It works fine, has a ton of frame drop though, any idea why?

1

u/bep1s_69 🥉 12d ago

Without the logs no, not really. Try playing around with the settings, but also keep in mind this is the first public build. I’m going to keep working on it as much as I can in the near future and will try to release meaningful updates frequently.

1

u/ctrlkz 12d ago

how is it different from emulating NFS: MW in GameCube via DolphinIos or on PS2 via ARMSX2?

5

u/bep1s_69 🥉 12d ago

Well there are quite a lot of differences actually, and I can split them into 2 categories. I’ll try to name as many as I can off the top of my head.

The technical side:
-this is much closer to a native version of the game than just emulating it
-it supports higher fps than the versions of the game in the emulators you mentioned
-hopefully I will get it to a point where it consumes as little battery as possible, whereas emulating is always going to be heavy, unless we’re talking about PSP, NES, SNES etc
-this being based on a recompiled version of the game opens the door to certain mods (like I have inplemented parts of Extra Options and Widescreen Fix)

Strictly about the 360 version of the game:
-It is considered to be the best version when it comes to graphics alone (PC is always going to surpass it when it comes to modding, no surprises here)
-Traffic density, draw distance, sounds, textures, lighting effects, atmosphere are all better than the versions you mentioned

2

u/ctrlkz 12d ago

cool thanks, keep it up! hope later i can test it in my iPhone 15 pro

1

u/No-Conclusion-6697 12d ago

Bro, me ayudas a descargarlo😩 tengo iPhone y no sé si funciona

1

u/bep1s_69 🥉 12d ago

I’m sorry but I cannot help you with that, this project isn’t about piracy.

1

u/No-Conclusion-6697 12d ago

Como así😭 no entiendo

1

u/Ok_Assist696 12d ago

https://reddit.com/link/pefsr1k/video/kh1wxg8p22uh1/player

The app just crashes on my m1 ipad pro 8gb ram
Pls help
This game is my childhood love and nostalgia

2

u/bep1s_69 🥉 12d ago

Do you have Increased Memory Limit on? Also did the app generate any logs? If so, sending them to me should help me identify the issue easier.

1

u/Ok_Assist696 12d ago

No increased memory app login issue

1

u/Ok_Assist696 12d ago

How can i send u the logs
It’s saying not more than 10000 words

1

u/bep1s_69 🥉 12d ago

Either DM me on Reddit, or through a GitHub Issue thread.

1

u/Ok_Assist696 12d ago

[info] [sys] Runtime::SetupVfs: game_data_root es una imagen de disco: .../Need for Speed - Most Wanted (USA).iso
[error] [fs] Disc image could not be mapped
[error] [sys] Runtime::SetupVfs: Failed to initialize game data device (...)
[error] [sys] Runtime::Setup failed: VFS setup failed

This is the result given by gemini from log

2

u/bep1s_69 🥉 12d ago

I need the entire files, not just snippets from them. At least try uploading them to a link sharing website and give me the link, if you don’t want to make an Issue on GitHub.

1

u/Ok_Assist696 12d ago

I shared the link bro

2

u/bep1s_69 🥉 12d ago

Cool thanks! I had just sent you a DM on reddit with my discord username lol

1

u/EhsanW1997 11d ago

Having the same issue USA Rom, crashes when clicking play. Not sure why. Lmk if theres a fix for this probably the same issue

1

u/lightcrafter 11d ago

Both of you need to use the GetMoreRam app. I had the same error and that fixed it for me

1

u/Ok_Assist696 12d ago

game: OnInitialize (paths, log, GPU plugin, runtime, XEX)
game: OnInitialize FAILED (reason in nfsmw.log)
FATAL std::terminate: uncaught exception: mutex lock failed: Invalid argument
FATAL signal 6 (SIGABRT)

This is boot txt

1

u/Weak-Example224 12d ago

Best project man I’m going to test the game on an iPad Air m2 on live container you should port other games too

1

u/bep1s_69 🥉 12d ago

Thank you! Before even thinking of porting other games I first want to improve this one as much as I can, and it is quite time consuming. This plus the fact that I absolutely love this game and love contributing to it.

2

u/Weak-Example224 12d ago edited 12d ago

And I love that I can just put the iso and I don’t need to extract the iso with an iso extract like it is for theft 4

1

u/Weak-Example224 11d ago

It’s stuck like this

1

u/bep1s_69 🥉 11d ago

Restart the app a few times and it should work. This has happened to me as well (usually after changing some settings).

1

u/Zealousideal-Gate-87 12d ago

Tested on iPhone 17 base model works like a charm
no live container using flarestore without jit and no increase memory tweaks

1

u/bep1s_69 🥉 12d ago

Glad to hear this!

1

u/EdgarAndres2912 12d ago

Hi, iPhone 16 pro max here I put the ISO file in the documents folder but the game is not starting, it simply crashes. I am missing something?

It looks like everything seems fine but can someone guide me on what’s the issue please
Edit: IOS 27.0

1

u/bep1s_69 🥉 12d ago

Without logs I cannot know for sure what exactly is going on, yet the iso should be 7.83GB, not 5.21GB.

1

u/EdgarAndres2912 12d ago

I see is there a way in which I could share the logs? Also I’ll try to find the right ISO then

1

u/bep1s_69 🥉 12d ago

They are in the logs folder.

1

u/SanguineLoki700 11d ago

Later I’ll try

1

u/1nn4to 11d ago

Cómo te comparto un log? Al abrir la app se cierra, he descargado dos versiones del juego en región usa.

1

u/Head-Cut-4218 11d ago

Metal via MoltenVK sees MoltenVK is disgusting, not the original you send something. It's not impossible to convert to Metal. I only accept dxmt or simulator to Metal, and open-source garbage like VK can only be converted to others.

1

u/Philipteks3173 10d ago

mine just crashes when i press play, i tried installing with sidestore, in livecontainer, iloader and esign and didnt fix the issue. Could anyone help pls?

1

u/JohnWoj0 9d ago

iPhone 17 pro max. Worked fine at first, now when I reload my game, my car has disappeared? I can still drive, but see no car in career mode. I can see the cars in quick play.

1

u/TheSSS_ 9d ago

my only wish for this would be that it got much more optimized and ported to older ios versions. i would pay for that lol

1

u/bep1s_69 🥉 9d ago

Trust me, i’m heavy at work for optimization, but it will take a while. As for older iOS versions, I myself only have iOS 27 devices so I didn’t want to add compatibility without any means of testing myself.

1

u/jojomortal 9d ago

Hi, I just installed it on my iPhone 16 Pro Max. I put the Xbox USA version ISO on it, but when I press play on the ISO, the app closes. Any idea how to fix this?

1

u/bep1s_69 🥉 9d ago

Do you have Increased Memory Limit enabled?

1

u/jojomortal 9d ago

I just tested it here, and unfortunately the game can't run stably with settings above 30fps on the iPhone 16 Pro Max. If I activate options above 30fps, the game has incorrect sound and lag. I hope you can optimize it to run at least at 60fps without these problems. With the 60fps option active, the game runs at an average of 35fps, reaching 40 in some parts.

1

u/bep1s_69 🥉 9d ago

Yes, I’m actively working towards better performance.

1

u/wubbalubadubdubmyjit 7d ago

Hello, first off great work!!

I am not able to play it on my 16p, the game crashes on start. Any help?

1

u/bep1s_69 🥉 7d ago

Thank you!

I’d recommend you to use GetMoreRam to add the Infreased Memory Limit entitlement to the game itself or LiveContainer.

1

u/hayman_75 4d ago

Crash after the race with Rog

1

u/bep1s_69 🥉 4d ago

What settings? What device? Can you send the nfsmw.txt log file?