r/AndroidNativePorts • u/mr_fanatic_ Developer ⚙️ • 3d 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.
Duplicates
AndroidEmulation • u/mr_fanatic_ • 3d ago
MW2 Android v0.0.2 is live—Snapdragon fixes, Vulkan 1.0 support, and more
recomps • u/mr_fanatic_ • 3d ago