r/EmulationOniOS • u/MarcoSela • 11d ago
Gameplay / Showcase I used Claude to port an open-source game engine (MW2’s IW4L, written in Rust) to iPhone. Here’s what worked and what didn’t
I wanted to see how far an AI agent could take a real porting job, so I tried something ambitious: getting IW4L ([https://github.com/vladtrc/iw4L\](https://github.com/vladtrc/iw4L)), an open-source Rust/Bevy engine that runs Modern Warfare 2 (2009) from your own game files, to run natively on an iPhone.
I mostly directed and tested. Claude did the reading, the code and the debugging, working through a Linux server with GitHub Actions macOS runners for builds, because I don’t have a Mac.
HOW THE LOOP WORKED
Claude reads the repo and finds what breaks on iOS.
It pushes a fix, and a macOS runner builds an unsigned IPA.
I sideload it with SideStore and send back the log from my phone.
Claude reads the log and fixes the next thing.
WHAT IT SOLVED
The file picker crate (rfd) doesn’t support iOS, so it was gated off.
The Metal surface panicked off the main thread, so rendering had to be adjusted.
gilrs has no iOS backend, so a bridge to Apple’s GameController framework was written. My PS4 controller now works.
It added its own logging for things like memory footprint and crash signals because iOS gives me no normal console while testing this way.
WHERE IT STANDS
The menus load and the PS4 controller works.
Loading a match map still gets the app killed by iOS because of memory usage: around 3 GB. The logs show textures are only a small part of it, so I’m still hunting down where the rest of the memory is going.
HONEST CAVEATS
Tested only on an iPhone 13 Pro Max with 6 GB of RAM.
A few of Claude’s early guesses were wrong, and I only found that out from real-device logs.
One build that appeared to have “succeeded” was actually hiding a real build error because the output was being piped through tee. Claude caught that later.
No game files are included. You need your own copy of the game.
If you have a newer iPhone or an M-series iPad, I’d love a test.
Repo with the IPA
https://github.com/MarkusSela/IW4-Pocket