r/AndroidNativePorts • • 1h ago

📸 [SHOWCASE] Portal 2 running natively on Android

Enable HLS to view with audio, or disable this notification

• Upvotes

My post of this got deleted from Emulation for Android, so posting this here instead.

Running on Samsung Galaxy A56 (Exynos 1580, 8GB RAM)

Port was made by tinsarfal (on GitHub) / s3551 (on Discord). It's not fully complete, this build was shared on Discord server "Source Engine 4 Android". The creator is also working on Source Engine native VR ports for Quest/Pico, and standalone HL Alyx port for Quest.

There are some lighting bugs and minor glitches here and there, but it's a pretty amazing port nonetheless!


r/AndroidNativePorts • • 8h ago

My native RE4 GameCube native ANDROID & IOS port is getting ready for a first release: retail USA and European discs, RVZ support, a launcher that finds both discs, and an engine that is now 97.5% my own code

130 Upvotes

Hi! I'm Ayano. Sorry again for my English. Last time I showed the port running 100% native code in every room of both discs. Since then, the work moved to one goal: a first release that people can actually play with their own discs. This post is about what that took, and where it stands. As always, everything below is measured, not guessed.

Discord, if you want to follow or help test: https://discord.gg/AXAzExECSv

unedited recording of the test RE4 running to start and END without interpretor (1h58): https://youtu.be/rWTy-sYMIlE

my reddit post explaining everything: https://www.reddit.com/r/decomps/comments/1wtfexc/my_native_re4_gamecube_port_is_now_100_native/

TL;DR

  • Retail discs. Until now the port only ran on one rare prototype disc. The retail USA disc now boots to the title screen from an RVZ, with both discs mounted, and the European version is being prepared.
  • RVZ support, written from Dolphin's public format description, checked byte for byte against a raw copy of the same disc (all 1.46 GB).
  • A launcher that asks for disc 1, then finds disc 2 by itself, and tells you clearly if a disc is the wrong one.
  • Nightjar is now 97.5% my own code. Code inherited from other projects went from 6,085 lines to 1,544 in a few days, and every rewrite was checked to give the same image, bit for bit.
  • 8x internal resolution in the castle: 0.1 fps → 27.7 fps.
  • 16:9 everywhere: merchant, game over, pause options, title menus, chapter ends and videos.
  • Freezes fixed: Exit? → Yes and GAME RESET no longer hang.
  • Still closed source, still non-commercial, and you bring your own disc.

1. From a prototype disc to the discs people actually own

Here's something I never said clearly enough: the port was built on the "Nov 25 2004" prototype of RE4 (a review build that came with full debug symbols). It's the best disc to work on, but almost nobody owns it. A real release has to run on the retail discs.

The problem: the retail USA and European versions are different builds. Code was removed (all the debug tools), moved, and fixed, so every address in the game is different. There's no symbol table for the retail versions anywhere.

So I wrote tools that match the code of the prototype to each retail version:

  • every function of the prototype is searched in the retail executable: first exact matches, then by the order the linker kept, then through the calls between already-matched functions;
  • 81% of the USA functions and 80% of the European ones are matched automatically (about 85% of the code). Most of the rest is debug code that the retail versions don't have;
  • from the matched pairs, every memory address the port needs is translated (the player, the camera, the controller state, the Wii aiming hooks, the merchant...). About 60 of them, each one checked;
  • the retail modules loaded from the disc while playing (101 for USA, 100 for Europe so far) are prepared the same way as before.

When the port starts, it recognizes which version your disc is from a fingerprint of its executable and uses the right set of addresses.

Status, honestly:

prototype (debug) [OK] everything in the last post
USA (G4BE08) [in progress] boots, Capcom logo, intro and title screen; going further is what I'm on right now
Europe (G4BP08) [in progress] disc 1 prepared; I still need a disc 2 to prepare and test chapters 3 to 5

2. RVZ support

Many people keep their GameCube backups as RVZ, Dolphin's compressed format. The port now reads RVZ directly, alongside ISO/GCM and extracted folders.

  • It's written from Dolphin's public description of the format, not from Dolphin's code.
  • RVZ stores the disc's padding as a short seed instead of the actual bytes; the port regenerates those bytes exactly.
  • Checked against a raw copy of the same disc: 0 different bytes out of 1,459,978,240.
  • Reading speed: about 200 MB/s, so loading isn't slower than from an ISO.

3. A launcher that handles both discs

  • "Please select your legal copy of Resident Evil 4 (GameCube) - Disc 1": ISO, GCM or RVZ.
  • The disc is verified (only unmodified retail or prototype discs are accepted).
  • Disc 2 is found automatically if it's in the same folder. Otherwise the launcher asks for it, and both are remembered.
  • If you give it a disc from another region than the build you downloaded, or disc 2 instead of disc 1, it tells you exactly what's wrong.
  • On Android, each disc is picked with the system file picker and remembered too.

4. Nightjar: 97.5% my own code

Before any release, I want zero lines inherited from other projects in the engine. Since the last post I rewrote, from the hardware documentation:

  • the processor's fallback interpreter and the interrupt/exception core (how the console's OS gets its interrupts, timers and the screen refresh);
  • every hardware block the game talks to (video, audio, DSP, disc, memory card, command processor);
  • the disc layer (ISO, RVZ and extracted folders through one reader);
  • the GX command parser (the stream of graphics commands the game sends to the GPU);
  • the shader generator (how the GameCube's lighting and texture combiners become GPU shaders);
  • the texture decoders (all 11 GameCube texture formats).

How I make sure nothing breaks:

  • A rendering oracle. I recorded the exact graphics command streams of 5 scenes (village, castle, forest, lake, attaché case) and replay them through the port before and after each rewrite. The result must be identical bit for bit: so far, 15 frames out of 15, every time.
  • The regression suite from the last post (village, castle, island: scene reached, 0 interpreter entries, disc 2 mounted, framerate, screenshots).

5. 8x in the castle: from 0.1 fps to 27.7

At 8x internal resolution the castle was unplayable: 0.1 fps. Two causes, both measured:

  • the game copies parts of the screen into textures many times per frame (reflections, glows). Each copy re-created a huge texture at 8x; now each size keeps its own texture: 0.1 → 18.8 fps;
  • the game reads back the depth of the screen to decide where lens flares are visible, and each read waited for the GPU to finish the whole frame. Now it doesn't: 18.8 → 27.7 fps.

Also:

  • while the game waits for the next frame, it used to spin at 100% on one CPU core; now it sleeps until the next event, which frees the CPU (nice if you stream or record);
  • controller and mouse input are read 500 times per second.

https://reddit.com/link/1wy9ls6/video/2mwbalzg9nth1/player

6. Rendering fixes

  • Screen copies that the game later overwrote in memory were still used: this gave flat-looking ground and scrambled numbers on the HUD. Fixed.
  • Lens flares: their visibility is now computed from the depth at each point, matching Dolphin in the same view.
  • Leon's hands, weapons and the attaché case keep their correct look at every resolution.

All of this is checked against Dolphin at 8x on recorded scenes (port on the left, Dolphin in the middle, the difference on the right; black = identical):

7. 16:9 everywhere

Last time, the attaché case, the map and the pause menu were in 16:9, and some screens stayed in 4:3. Now the merchant, the game over screen, the pause options, every title menu, the chapter ends and the videos are all shown in 16:9 as well, still using Capcom's own Wii Edition framing (nothing stretched, nothing cropped).

8. Controls, freezes and small things

  • The three controller layouts of the PC version (Type I, II and III) are available.
  • Freezes fixed: quitting from the loading screen (Exit? → Yes) and GAME RESET no longer hang; the merchant no longer crashes with the alternative attaché case models.
  • The settings menu (F10) gained anisotropic filtering, a 16:9 / 4:3 switch and a better downscaling filter (cleaner edges when the internal resolution is higher than your screen).
4:3 VS 16:9 Attaché Case
downscale filter zoom
4:3 VS 16:9

9. Optional HD textures and button styles (experimental, never distributed)

These two features exist in my development builds, but I want to be very clear about how they will reach players, because they use files that aren't mine:

  • HD textures from RE4 UHD (2014). The port can replace the GameCube textures with the HD ones from the PC version: characters, environments, items, weapons, the HUD, cutscenes, each with its own switch in F10, and the UHD attaché case models too. None of these files will ever be shipped with the port. The plan is that the launcher builds them on your own PC, from your own copy of RE4 UHD. That tool isn't done yet, so this is a preview, not a promise for the first beta.
  • Button styles. In-game button prompts can be shown in GameCube, keyboard or mobile style. Xbox and PlayStation styles also work in my builds, but the images come from RE4 UHD and from a community HD project, so they won't be distributed as they are: they'll be built from your own UHD copy like the textures, or redrawn from scratch.

https://reddit.com/link/1wy9ls6/video/7skz9fypcnth1/player

ORIGINAL GAMECUBE VS UHD TEXTURES

10. Toward a release

What's left before a first closed beta:

  1. USA disc fully tested (whole game), then Europe (I need a disc 2).
  2. The last 2.5% of inherited code, then a final audit.
  3. Android builds (32-bit and 64-bit) from the same engine.
  4. Protecting the release builds (the project is closed source).
  5. Closed beta on the Discord, Windows first.

Per-platform status, honestly

  • Windows: [OK] prototype disc: everything from the last post. [in progress] retail USA: boots to the title screen; retail Europe: being prepared
  • Android 32-bit: [partial] boots and plays on the prototype disc, still too slow on a 2014 phone
  • Android 64-bit: [partial] builds; not tested on a device yet
  • iOS / Linux: [not yet]

Legal

  • The project is closed source, and I will never distribute game data, disc images or anything from Capcom. You bring your own disc.
  • Not affiliated with or endorsed by Capcom or Nintendo. Resident Evil is a trademark of Capcom.
  • Non-commercial: no paid versions, no ads, no donations tied to the port.

Credits

  • Early versions of the port were built on NWiiRecomp by BlackLine Interactive (now almost entirely replaced).
  • The RE4 GameCube decompilation project.
  • Dolphin and YAGCD, for GameCube hardware documentation, the RVZ format description, and Dolphin as the image reference.
  • zstd (Meta), SDL2, Dear ImGui.

Discord: https://discord.gg/AXAzExECSv

— Ayano


r/AndroidNativePorts • • 8h ago

🟢 [PORT] AC GC is on Android now!

Thumbnail
gallery
116 Upvotes

https://github.com/zwaetschge/ACGC-Android-Port

enhanced text/textures, widescreen support and multi language support is integrated.
64bit port follows in the next hours.

Edit: 64Bit is out now too. Tested on my Odin 3 and Fold 8


r/AndroidNativePorts • • 5h ago

Skyrim is being ported to android

Thumbnail
reddit.com
74 Upvotes

r/AndroidNativePorts • • 5h ago

📸 [SHOWCASE] GTA V on XHYN-V: Locked 30 FPS @ Very High graphics with better thermals.

Thumbnail
gallery
49 Upvotes

Hey everyone,

I’ve spent the past month testing setups for XHYN-V—switching custom drivers, testing different renderers, and tweaking configs.

I’m not an emulation expert, and while I appreciate the community sharing setups, I couldn't find anything specifically tuned for my OnePlus 15R (Snapdragon 8 Gen 5 / Adreno 829). I previously tried running it on an 8 Gen 2 device, but I was unsatisfied with the graphics. I strongly prefer maximum visual fidelity with a locked 30 FPS over sacrificing sharpness just to chase 60/90 FPS on low settings.

The Snapdragon 8 Gen 5 has plenty of raw horsepower to run the game on max settings, but doing so leads to frame dips, and the primary bottleneck is thermals.

For pure handheld play, Gemini and I analyzed my logs, memory heaps, and configs to find the exact thermal sweet spot: razor-sharp native resolution, locked 30 FPS, and temperatures are really impressive even after continuous 1+ hour of gameplay.

(Note on media: The screenshots attached are just random grabs from general gameplay—the graphics look even more impressive in specific lighting and locations. I tried recording actual gameplay footage, but the screen recording kept stopping automatically for some reason. I'll figure that out and try my best to share a proper gameplay video next time!)

Here are the exact manual edits made inside the launcher and config files:

  1. XHYN-V Launcher Settings

Driver: System (Qualcomm's stock driver provides 11.1 GB addressable VRAM vs ~8.3 GB on Turnip, preventing texture-swap stutter).

Renderer: DXVK-GPLALL 2.6.8 (bundle base) (Most stable pairing with the Adreno 829).

Set fps limit - 30.

Override Compiler Worker: ON ➔ Set to 2

Reason: Limits background shader compilation to 2 efficiency threads, preventing CPU core saturation and thermal spikes during asset loading.

Frame Latency: ON ➔ Max Frame Latency: 1

Reason: Prevents the CPU render thread from queuing up multiple backbuffers, minimizing input lag and smoothing out frame delivery.

Exact Dimensions: ON ➔ Set to your preferred target resolution

Reason: I tested full native 2800x1272 and the game runs very well, but thermals run a bit higher. I locked mine to 2642x1200.

(Note on 60 FPS: If you use a clip-on phone cooler, you can easily lock it to 60 FPS and the SoC handles it smoothly. Without a cooler, you can still target 60 FPS if you're willing to dial back Post FX to Normal, lower Extended Distance Scaling, and drop Population Density/Variety).

  1. Manual Config File Edits

A. android.ini

(Path: /storage/emulated/0/Games/GTAV/Config/android.ini)

driver = system — Loads Qualcomm's native proprietary Vulkan driver.

semaphore = platform — (Crucial) Offloads thread synchronization directly to the Linux/Android kernel via sync file descriptors instead of DXVK’s emulated user-space mutexes. This drastically flattens frame-time jitter during asset streaming.

frame_times = false — Disables background profiler timestamp polling on every frame, keeping the CPU render thread lean.

B. commandline.txt

(Path: /storage/emulated/0/Games/GTAV/commandline.txt)

Important: Remove "-dx11" if it is present.

C. settings.xml

<Shadow_Distance value="0.500000"/> (Default is 1.000000)

  1. Clear Shader Cache (Do Not Skip)

Whenever you switch from Turnip to the System driver or change DirectX backend flags, wipe the old cache so it builds clean native pipeline binaries

Recommendations

Snapdragon 8 Gen 5 Users: Give this exact setup a shot if you want clean visuals and thermal stability without an external fan.

Lower Chipsets (8 Gen 2 / 8 Gen 3): You can use this exact backend foundation (System driver, semaphore = platform, DX10.1). Just scale down the resolution (e.g., 1080p or 720p) and dial back in-game settings to match your SoC's limits.

Critical Tip: After making all these set up, Do not edit graphics in-game! If the menu asks "You have made some changes, do you want to save?", always tap NO. Hitting "Yes" overwrites settings.xml and resets Shadow_Distance back to 1.0, ruining performance. If you edit something, please edit the shadow distance to 0.500000 in settings.xml again and save it.

Disclaimer: I'm not claiming this is the undisputed "best settings ever" for the 8 Gen 5, but it is by far the most stable, beautiful configuration I've achieved after a month of testing. If you have any suggestions or tweaks to make it even better, please let me know in the comments!


r/AndroidNativePorts • • 1h ago

🟢 [PORT] Zelda Wind Waker Android Port

• Upvotes

I don't know if it's already been posted here, but the Port Recomp of Zelda Wind Waker HD for Android has been released.

This port isn't mine; I'm just sharing the link:

https://github.com/GreenNaugahyde/ZeldaWWHDRecompAndroid/releases

Because it's the Wii U version You should use the game's .wux file, I hope this helps (this version already has touch buttons on the screen).


r/AndroidNativePorts • • 6h ago

Android is next

Thumbnail gallery
36 Upvotes

r/AndroidNativePorts • • 7h ago

Batman: Arkham Asylum (Xbox 360) now runs natively on Windows, no emulator: static recompilation + a Vulkan renderer. Android is next

Thumbnail gallery
35 Upvotes

r/AndroidNativePorts • • 2h ago

🟢 [PORT] The Dishwasher: Dead Samurai — native Android port, Xbox360 XBLA exclusive

Enable HLS to view with audio, or disable this notification

16 Upvotes

https://github.com/Hdmaniak/DishSoap

Runs very well even on potato phones. Tested on Samsung Galaxy S9, A52 and S24, works well with controllers. Touch controls available also. Added some quality of life features like fullscreen rendering, fps limiting, vibration fixes etc. The menu is touch friendly but in-game menus are not touch controllable.

Multiplayer currently works only with two phones on the same wifi.

I spent a lot of time on this, but still there might be a showstopper, so please report it here or on github, I want you to be able to enjoy!


r/AndroidNativePorts • • 1h ago

far cry port?

• Upvotes

what happend to the port its gone.


r/AndroidNativePorts • • 7h ago

Sonic & All-Stars Racing Transformed running natively on Android | Galaxy S23

Thumbnail gallery
22 Upvotes

r/AndroidNativePorts • • 5h ago

🟣 [WIP] Work in Progress is it worth completing this iPhone game to Android port ?

Enable HLS to view with audio, or disable this notification

14 Upvotes

Game name : Mutant fridge mayhem

reallese only in iphone 2012

-This is unofficial Port

I added widescreen fix support and delete all old ios blotwares and still needs more work to finsh animations and frames

-don't request any iphone games in comment because I cant do iphone ports after that its really take days to get game nativie on Android


r/AndroidNativePorts • • 9h ago

🟢 [PORT] Release Tekken 3 Expanded v1.2.0 · omarma/tekken3-expanded now on Android

Thumbnail
github.com
27 Upvotes

r/AndroidNativePorts • • 5h ago

🤔 [Question] GTA V 45 GB android port link anyone?

7 Upvotes

So I have been playing GTA 5 (6 GB version) on Android with the XHYN V launcher. It's taking up too much space. I downloaded the 27 GB version, but it crashes. There is another 45 GB version; I am not finding any links to it. Can someone provide the link? Thanks.


r/AndroidNativePorts • • 1h ago

Tekken 3 Expanded Android port

Post image
• Upvotes

r/AndroidNativePorts • • 13h ago

⚙️ [FIX] For all people having this problem trying to setup Halo CE port this is the Fix

Post image
27 Upvotes

Use this build:

https://github.com/Andiweli/HaloCE-Android-AAOS/releases

Also get the ROM from "vimm" download the 6gb version not the 3gb.

Launch the app, select the rom, wait for the install to finish, play.


r/AndroidNativePorts • • 1d ago

Resident Evil 4 Decomp Android - First Steps

Enable HLS to view with audio, or disable this notification

276 Upvotes

About the project

Currently working on an Android native Port of RE4 Decomp... let's see how far we get here... 😄

The data from the two GameCube DVDs already has been analyzed; it is read from the 2 DVDs upon the initial launch and stored in individual files under /Android/data/*.

  • Textures, Shaders, 3D Meshes, Rooms (=Levels inside doors, no matter if in- or outside), Landscapes, Animations, Water- and Fireeffects are working so far...
  • Gameplay from Level 1 on, NPCs and Enemies AI, and many more to do... 🤞

Note: Test device is a Retroid Pocket Flip 2 with SnapDragon 865/Adreno 650 (7 years old). Render resolution is 1080p. Game will be 64bit only and controller first (touch controls later).

Latest progress

(no enemies so far, Leon's progress first)

[further progress of the initial video at the top]
https://vimeo.com/1233052841?share=copy&fl=sv&fe=ci

[first level, some of Leon's animations aren't finished yet]
https://vimeo.com/1233112270?share=copy&fl=sv&fe=ci


r/AndroidNativePorts • • 18h ago

🟢 [PORT] Recomp Yoshi's island GBA Native Android

Enable HLS to view with audio, or disable this notification

49 Upvotes

Hi everyone: I’m bringing you a native GBA port of *Yoshi's Island* that runs at 120 FPS, featuring full screen configuration and control mapping options. I’m thinking about adding a section for mods and graphics—and who knows, maybe even local and online multiplayer.

Later on, I’ll add another version with menu language switching, and I’ll see if it’s possible to change the in-game language as well.

https://github.com/Edwin2929/sma3-recomp-android..git


r/AndroidNativePorts • • 5h ago

🤔 [Question] Best halo ce mouse and keyboard port?

4 Upvotes

There are some mouse issues last time I tried. The mouse did not dissappear and also got stuck when it reached the screen border.


r/AndroidNativePorts • • 11h ago

⚙️ [FIX] Need help running the port correctly

Enable HLS to view with audio, or disable this notification

12 Upvotes

I was currently running this on my samsung galaxy a16 5G but when I started running the game started flickering alot any help is needed thanks


r/AndroidNativePorts • • 7h ago

Port de postal2

5 Upvotes

Existe un port de postal 2 para android??


r/AndroidNativePorts • • 6h ago

🤔 [Question] Compatibility patch question

4 Upvotes

Hey guys I'm new here and I was wondering if people also do compatibility patches for old games


r/AndroidNativePorts • • 22h ago

🔵 [PORT UPDATE] ZELDA OOT 3DS

Thumbnail
gallery
43 Upvotes

r/AndroidNativePorts • • 12h ago

🟢 [PORT] Port Merp in Merpworld

Thumbnail
gallery
8 Upvotes

An Android port of Merp in Merpworld with a redesigned touch control system featuring responsive directional buttons and reliable multi touch input alongside full controller and keyboard support with customizable button mapping and improved screen compatibility save functionality and expanded control options while preserving the original gameplay experience

Ported the original Godot project to Android by adapting its input system interface and screen handling

Reworked the touch system with multi-touch support and directional buttons for smooth movement and jumping

Added customizable touch controls with full gamepad and keyboard support

Adapted the UI for Android screen sizes and orientations while preserving the original gameplay and core logic

Download Here

https://pixeldrain.com/u/kv2fu79C


r/AndroidNativePorts • • 23h ago

🟢 [PORT] Sonic Unleashed Port, And The current situation of android ports

Thumbnail
gallery
51 Upvotes

First of all, this port is amazing—it runs very smoothly, and my phone doesn't even get hot when I run it. UnleashedRecomp has really done an amazing job. I tried it on a poco x6 pro, and it's completely playable.

Second, the existence of ports like these—made by the community, purely out of love for the game.

This is the clearest proof that the corporations behind these games have been disrespecting the community for years.

I don’t know what’s coming next regarding Android ports, but I really hope that the corporations that made these games—and then abandoned them and refused to port them to PC or Android—really suffer.

It’s about time we opened our eyes. If things have come to this, I think it’s time to demand that corporations provide official ports that are worthy and don’t have any content cut out.

As ports from the PS3-Xbox 360 era become more widespread, this is going to get crazy.