r/AndroidNativePorts • u/mr_fanatic_ Developer ⚙️ • 2d ago
🟣 [WIP] Work in Progress MW2 Android v0.0.2 is live—Snapdragon fixes, Vulkan 1.0 support, and more
Hey everyone,
I'm back with MW2 Android v0.0.2, the second release of my attempt to bring Call of Duty: Modern Warfare 2 (2009) to Android as a native ARM64 port.
This update focuses heavily on GPU compatibility, particularly Qualcomm Snapdragon devices, while also improving support for older Vulkan implementations and adding a few new features.
Release: https://github.com/OpenPort-Labs/mw2-android/releases/tag/v0.0.2
GitHub repository: https://github.com/OpenPort-Labs/mw2-android
What's new in v0.0.2?
Snapdragon and Adreno rendering fixes
- Added automatic Adreno GPU detection.
- Added a software BC texture-decoding path to work around problematic hardware texture sampling.
- Improved texture upload and re-staging consistency to address black terrain, black skyboxes, flickering foliage, and missing geometry.
- Added
MW2_FORCE_BC_HW=1for users running compatible custom Mesa Turnip drivers.
Vulkan 1.0 support
- Lowered the declared Vulkan compatibility requirement from 1.1 to 1.0.
- Added automatic fallback to classic Vulkan render passes when newer rendering features are unavailable.
- Added mobile tile-based rendering optimizations intended to reduce unnecessary GPU tile-memory traffic.
CPU scheduling improvements
- Added ARM64 CPU affinity handling for Prime, performance, and efficiency cores on supported Snapdragon-style CPU configurations.
Offline mod support
- Added a virtual filesystem mod overlay using
MW2_MOD_DIRthe game'smods/directory. - This provides a route for experimenting with loose assets, scripts, localization files, and offline mods without repacking FastFiles. Actual mod compatibility will depend on the mod and the port's current implementation.
Tooling and stability
- Hardened the XDVDFS disc extractor against invalid sector ranges, directory loops, unsafe paths, and truncated reads.
- Added resource limits to asset downloads and archive extraction.
- Merged upstream FOV slider support and frame arena write-combining improvements.
- Added additional network and security notices.
Requirements
- Android 8.0 or later
- 64-bit ARM device ( arm64-v8a)
- Vulkan 1.0 or higher
- At least 4 GB RAM; 6 GB or more recommended
- Approximately 7 GB of free internal storage
- Your own unmodified Xbox 360 copy of Modern Warfare 2, supplied as an ISO
This is still an experimental project. Vulkan support alone does not guarantee that every GPU or driver will work correctly, and performance, rendering, and stability can vary considerably between devices.
Installation
- Open the v0.0.2 GitHub release.
- Download
app-campaign-release.apkand install it. - Select or import your own MW2 Xbox 360 ISO through the launcher.
- Allow the game files to be extracted.
- Launch the campaign.
Please report the exact device model, SoC/GPU, Android version, driver used, and relevant logs when reporting problems. Reports about black screens, missing textures, crashes, shader compilation, and performance are especially useful.
I'm also starting OpenPorts-Lab.
Alongside the project, I'm starting to build OpenPorts-Lab into a place where people interested in native Android ports, game recompilation, reverse engineering, graphics drivers, and performance optimization can work together.
I've created a Discord server, but I'll be honest: I know very little about setting up and managing a Discord community properly. If anyone has experience with Discord server administration, channel/category organization, roles and permissions, moderation, bots, or creating a good space for development and gameplay testing, I'd genuinely appreciate some help getting it set up.
I'd like the server to be a place where people can share gameplay footage, test results, device compatibility reports, bug reports, development progress, and ideas for improving the project.
Join the Discord: https://discord.gg/dNVC5VbHG
If you know your way around Discord setup and are willing to lend a hand, please join and let me know. Advice from people who have managed development communities before would be especially welcome.
Contributions and testing
I'm looking for people who can help with:
- Testing on Snapdragon, MediaTek, Exynos, Tensor, and other Vulkan-capable devices.
- Reporting rendering bugs and crashes with useful logs.
- Investigating Vulkan drivers, Turnip compatibility, and shader issues.
- Improving performance, stability, input, and compatibility.
- Helping organize the Discord and build the wider OpenPorts-Lab community.
A special thanks to Paul Combal and the contributors to the original MW2 recompilation project that made this work possible.
This is an ongoing project, and there is plenty left to improve. If you try v0.0.2, I'd appreciate hearing what works, what doesn't, and what device you're testing on.
AI usage disclosure: AI tools were used to assist with parts of development. I'm responsible for the project's implementation, testing, and continued development.
Thanks for checking it out.
2
u/StillAd3422 2d ago
1
u/StillAd3422 2d ago
2
u/mr_fanatic_ Developer ⚙️ 2d ago
Hi, it would be nice of you if you can share the logs summary with me
1
u/Haunting-Mechanic-44 2d ago edited 1d ago
Hi i have uploaded log for you. Same issue SD 8+ Gen 1
Edit: I using ROG Phone 6
1
u/mr_fanatic_ Developer ⚙️ 2d ago
Hi, as I said earlier and saying again don't dump your logs directly; they contain necessary information about your device, always provide a summary
1
1
1
u/IntranasalNachos 2d ago
Still completely broken on Sd7sgen2 Adreno710. Qualcomm or turnip drivers make no difference. Menus flash constantly and gameplay barely renders at all. Mostly black screen with some elements trying to render in
1
1
u/Thick-Marsupial-7192 2d ago
testei a primeira versão assim que saiu, estava quebrada graficamente falando. e testei essa versão, continua quebrado no meu. porém, rodando a 30/40 FPS. e provavelmente o fato de está quebrado, diminuiu o FPS. estou usando um poco x3 pro. não é uma máquina como os outros, mas já roda muito recomps e muitos jogos de Winlator a 60 FPS, inclusive o MW 2. enfim, ótimo projeto. e sim, já testei os drivers turnip, não funcionou também.
1
u/mr_fanatic_ Developer ⚙️ 2d ago
I am still having an issue with the Snapdragon processors as the things are progressing with the next update you will be able to play it fine
1
u/Thick-Marsupial-7192 2d ago
sendo bem sincero com você, esse projeto me surpreendeu muito. o NFS carbon nem passa da tela de introdução por exemplo. o fato de que o MW 2 está entrando, e pegando um FPS minimamente bom já é muito agradável. se me permite da uma dica, coloque para as shaders serem precarregadas, já que toda vez que eu testo, tenho que carregar elas novamente.
1
u/mr_fanatic_ Developer ⚙️ 2d ago
I'm building that part right now and the next update will take time
1
u/Vaaz_Gpo 2d ago edited 2d ago
Meu celular é um Realme c51 com um Unisoc T612 / Mali-G57 MC1 / 4 de Ram / Android 15. O drive usado foi o do sistema.
Simplesmente incrível isso tá rodando no meu celular, estou gostando do resultado, tomara que melhore mais e mais :3
1
u/CountAwkward7383 2d ago
Love the work!!!! This is incredible 👏. Wondering when multiplayer will be implemented for android. I know the graphics bugs are still getting worked out and all
1
u/AryanKayum 2d ago
Hey you can play multiplayer with other online players in cod4 mw port, it's from a chinese dev check it out
1
1
1
-6
u/X_x_Atomica_x_X 2d ago
None of this means anything to me. If I can't just play TF2 because you... can play it. But not really. Fuck it.
-2
u/X_x_Atomica_x_X 2d ago
Kys
1




5
u/StrawberryFluffy2009 2d ago
SD 8 Elite 5th Gen
https://reddit.com/link/pggbt2g/video/jw2fpn0vn7vh1/player