Live memory inspection and 3D world viewer for Metroid Prime 1 GCN, working from memory dumps or connected live to Dolphin. Works on Windows; Linux and MacOS require a custom build of Dolphin.
- It should automatically detect and attach to a running Dolphin. If you are running multiple instances, you will need to manually select which Dolphin to attach to.
- Load a memory dump (
mem1.rawMEM1 image) to inspect a game state offline.
- The room's collision geometry rebuilt from memory, with backface/frontface culling options
- Actors drawn in place — enemies/AI, projectiles, pickups, physics actors, and generic actors, each toggleable.
- Triggers visualized as boxes, filterable by what they detect
- Area status overlay: which rooms are loaded, their load chain/phase, occlusion state, and the current resource-streaming queue.
- Adjustable scene lighting and player ground shadow.
- Follow Player — orbit the player with the mouse.
- Game Cam — see through the actual in-game camera.
- Detached — free-fly camera with WASDQE + mouse look (hold
shiftto move faster).
Drag on the view to look/orbit, scroll to zoom (or dolly in Detached mode), middle-drag to pan in Detached mode.
Record up to five position "ghosts" of the player and leave them in the world for
comparison. shift+1..5 records a ghost, ctrl+1..5 clears it.
- globals window: some of the global objects used by the game, browsable for live values
- Objects browser: the full live entity list with a type breakdown and an include/exclude text filter. Hover a row to highlight that object in 3D, or pin a watch window to a specific editor ID and follow it across rooms.
- Raw view: a hex dump of emulated memory.
- Collision triangle picker — hover the world to read the triangle index, material flags, and vertex positions under the cursor.
- Instant unmorph detection — indicate when the player's position would force an instant unmorph.
- Collision reposition failsafe — predicts whether the player is about to get pushed by the game's anti-clip failsafe, shows the push vector, and can tell you what would happen if you morphed on the spot (clean, nudged, or warped out of bounds through a wall seam).
Drop .rhai scripts in the scripts/ folder. They run every frame against live memory and
can build their own inspector windows — useful for custom HUDs and readouts. Scripts
hot-reload, get glam vector/quaternion/matrix helpers, and can pin their windows to any
screen edge or corner. See scripts/ for examples.
Struct definitions live in prime_defs/ as editable .bs files and can be hot-reloaded
without restarting.
Unzip the release and run the primewatch3 binary. Keep the prime_defs/ and scripts/
folders next to it — they're loaded at startup.
Start Dolphin, load Metroid Prime, and Prime Watch will attach on its own.
- Fix for scripting to support array indexing
- Script (disabled by default) to get morph ball lift force and speed averages
- Objects that share the same collision mesh will now be rendered properly
- Doors will properly hide when they are no longer collidable
- Fix enums (they were broken)
- Add surfaceRestraint to CPlayer
- Perf improvements to platform rendering
- Fix missing Ripper platform (i.e. MQA platform)
- Add physics actor/platform rendering (including doors!)
- Fix bitfield issues
- Improved instant unmorph detection
- Add reposition failsafe detection
- Add instant unmorph detection and collision triangle picker
- Add scripting engine
- Initial release of the Rust rewrite
