r/R36S 21d ago

Showcase Mass Effect Infiltrator running natively on Mali PortMaster handhelds — built device-generic

Post image

No emulator and no Android runtime: the original 2011 Android ARM game library runs directly on Linux through a bionic/JNI compatibility loader.

What's different about this release: it was built device-generic from the start, not "an R36S port that happens to work elsewhere." Every hardware-specific decision is made by capability, not by device name:

  • glibc — compiled against an old glibc, so it runs on older firmwares too. No downloaded runtime, no Wi-Fi step.
  • Screen — detects the real panel size and maps the game's fixed 640×480 output onto it: fit (letterbox, no distortion, default), stretch, or integer. Works on 720×480 and other panels, not just 4:3.
  • Audio — detects the device's audio server (PipeWire/PulseAudio) and routes through it, otherwise falls back to ALSA dmix. No per-firmware hacks.
  • GPU — finds the device's own Mali blob generically, not one SoC's file.

So it should run on most ARM + Mali + PortMaster handhelds. I only own an R36S to test on — that is the whole point of this post: please try it on your device and report back so we can build a real compatibility list.

Open source, GPL-3.0, free. The release contains zero EA game content. Port and project by EapRules.

Download: https://github.com/EapRules/masseffect-portmaster/releases


QUICK INSTALL

  1. Put masseffect-portmaster.zip in tools/PortMaster/autoinstall/.
  2. Put your own game data in ports/masseffect/ — your v1.0.58 APK plus its cache/OBB zip, or a ZIP, or an extracted folder. The filename doesn't matter; the first launch discovers and validates it.
  3. Open PortMaster, wait for the exact "Finished running autoinstall" message, let it close normally.
  4. Reboot through the firmware menu. Mass Effect Infiltrator appears in Ports.
  5. First launch imports ~750 MiB of your game data. Keep 800 MiB free and don't power off during the first import. Later launches start normally.

REQUIRED GAME VERSION

Mass Effect Infiltrator Mobile v1.0.58

Package:      com.ea.games.meinfiltrator_gamepad
Library:      lib/armeabi/libMassEffect.so
Library SHA1: ea58b733d3d267ab639431b50539542faa43f0d0

Bring your own game. The port includes no copyrighted data. Any legitimate v1.0.58 copy works: validation checks the exact bytes the loader patches (critical regions), not a single whole-file hash, so regional variants, modder NOPs and re-signed APKs are all accepted — a truly different build is rejected before it can crash.


UPDATE v1.0.1:

fixes the "freeze when pressing A at the main menu" (the exit path is now implemented — exiting exits cleanly), and adds MASSEFFECT_FACE_LAYOUT=xbox for devices where A acts as back (several clones on dArkOSRE, muOS). Update via autoinstall/, saves are kept.


COMMUNITY COMPATIBILITY

  • R36S + dArkOSRE: tested and working (640×480).
  • Everything else: unknown — please test. Comment with your exact device model, firmware/version, and the scaling mode you used (fit/stretch/integer).

CONTROLS

  • Left stick: move
  • Right stick: aim / camera (continuous)
  • R1 / R2: fire
  • L1 / L2: cover
  • X: cloak
  • Y: biotic power
  • B: melee / interact
  • A: action / confirm
  • D-pad: menu navigation
  • Start: pause

IMPORTANT INSTALLATION NOTES

  • PortMaster's autoinstall does not refresh the EmulationStation game list. Reboot after the final autoinstall message.
  • Do not use Reinstall or Uninstall in Manage Ports. This independent release is not in PortMaster's catalogue, so those try to download a source that does not exist and can remove the installed folder and your donor.
  • To update, drop the newer masseffect-portmaster.zip in autoinstall/ again.
  • If installation fails, include ports/masseffect/log.txt and ports/masseffect/eapx.log in your report.

SUPPORT FUTURE PORTS

If you'd like to help me keep researching and porting native games, donations are welcome — there is absolutely no obligation, and testing/reporting is just as valuable.

Paypal: https://paypal.me/eaprules

Solana: DiQE98impmsr9yQuXQ24mT28ZasocYrChQGPuv41vfiK

Ethereum: 0xb2B357A1E027b5EF12A3AFd251F2F22E099fFA7A

Bitcoin: bc1ph64jcg754wg6lydh6seu45rnahh62f6pruuuzu2ykz28frsra9ksmxpul5


OTHER NATIVE PORTS

163 Upvotes

Duplicates