github Odrannnn/MetroidPrimePort v0.16.0

latest releases: v0.18.0, v0.17.0
2 days ago

A fix for black worlds on Adreno 730 phones (#7), an OpenGL ES option,
Remastered sun shadows, more room for the touch controls, and much better
logs for reporting GPU problems.

You need your own disc image. Metroid Prime (USA) v1.00, GM8E01 disc 0
revision 0. Nothing here contains any part of the game — no disc, no assets.

What changed

Graphics drivers

  • Adreno 730 (Galaxy Z Fold4, Snapdragon 8+ Gen 1 phones): the world no
    longer draws black
    (#7). The driver mishandled a bounds check in the
    shaders; on that GPU the port now uses a form it handles. Other GPUs are
    unchanged.
  • F1 > Video > Quality > Use OpenGL ES renders through OpenGL ES instead
    of Vulkan, for drivers that draw wrongly under Vulkan. It takes effect after
    a restart, and if OpenGL ES crashes while starting, the next start goes back
    to Vulkan by itself.

Diagnostics

The log (metroid_prime_port.log; on Android in
Android/data/org.metroidprime.port/files/) now carries what's needed to
debug a GPU or driver problem, so please attach it to a report:

  • Device and GPU: phone model, chipset and Android version, the GPU's
    driver, features and limits, the screen formats it offers, and the
    settings the game started with.
  • Hang watchdog: if the game stops producing frames, the log says what the
    game and render threads were doing and for how long, with the game thread's
    call stack (on Android, the system log around the hang too), and when frames
    resume. On Android a lost GPU device also saves the system log.
  • Frame times at a few points after start, and a note when a shader takes
    long to compile.
  • F1 > Video > Quality > GPU self-test draws ten known patterns through
    the game's own rendering path, reads them back and writes PASS or FAIL for
    each to the log.

Android touch controls

  • Side margin moves every control in from the screen edges (for curved
    screens and cases), Stick inset gives the left stick extra room, and
    Button inset does the same for the face buttons and C-stick only. They
    go up to 300 dp; Reset margins puts them back. F1 > Controls > Touch &
    gyro.
  • With drag aiming, the R button only shows where it does something:
    in Morph Ball, in the pause menu and on the map.

Remastered import (very experimental, unsupported)

the Remastered import and everything built on it are very
experimental and currently unsupported.
Remove mods/remastered-models
to get the retail game back. Nothing changes unless you run the import
yourself, and nothing of Remastered ships with the port. Everything below
except the sky fix needs a re-import.

  • Sun shadows: rooms with a Remastered sun (the Frigate's docking hangar
    most of all) cast real-time shadows from it, and lit surfaces take its
    colour.
  • The docking hangar's force-field barrier and its shootable red
    lights
    use their Remastered models.
  • Glass with see-through panes (the Elite Quarters Access windows) is
    transparent again instead of an opaque haze.
  • Elite Quarters Access: the sliding stone panel at the Plasma door is no
    longer a grey block.
  • Skies whose glow the import dropped (the planet seen from the Frigate
    hangar) are no longer nearly black. This one needs no re-import.

Downloads

Platform File Notes
Linux MetroidPrime-x86_64.AppImage chmod +x, then run.
Linux MetroidPrimePort.flatpak flatpak install --user ./MetroidPrimePort.flatpak
Linux metroid-prime-port-0.16.0-linux-x86_64.tar.gz Bare binary and licences
Windows metroid-prime-port-0.16.0-windows-x86_64.zip Unzip anywhere; needs a Visual C++ redistributable
Android metroid-prime-port-0.16.0-android-arm64.apk Sideload; arm64-v8a, Android 9+

Licence

MIT covers this project's own work, but not the game code under
src/ and include/, which remains Nintendo's. See LICENSE and NOTICE.
Metroid Prime is a trademark of Nintendo. This project is unaffiliated with
Nintendo and Retro Studios.

Don't miss a new MetroidPrimePort release

NewReleases is sending notifications on new releases.