Files
mitch030504--Wiicompiled_VR…/aurora-main
iChris4 3463813a65 Seat first person in the cockpit and animate the vehicle's own wheel
first_person_seat = "cockpit" (the new default) places the head at the
driver's own eyes, measured once from the character's head bone while the
kart drives straight and undamaged, kept behind the steering wheel, at a
life-size scale (cockpit_units_per_meter, grown with the character's
height and the player's size). "yaw" takes the kart's driving direction
from a level seat frame that follows the simulation's position and
direction, so damage spins and tricks do not turn the seat.
first_person_seat = "custom" keeps the previous offset placement.

At the race draw boundary the vehicle's steering wheel disc (karts) or
handle part (bikes, re-seated level while the bike banks) is decoded from
its MDL0, turned on a copy, and posted to the GX thread for Aurora to
substitute into the player's own draws; the copies are dropped after the
frame's draws. The anchor carries the wheel or handlebar geometry in the
seated frame and the frame's exact scale, which reaches the policy and
aurora_set_stereo_scene_anchor_scaled. If no draw takes the copies for 30
frames the vehicle falls back to the VR wheel, and the log says so.

The wheel copy is matched against RaceCamera::GetViewMtx with no dolly
offset, since the scene camera is only set once the draws run; the log
reports its distance from the scene camera once a second.

Nothing turns the wheel yet: the angle comes from the XR side's driving
snapshot, which the next change publishes.

Guest offsets ported from heurazy's mario-kart-wii-VR-port, each
re-checked against the generated leaf getters and the decompilation.
2026-09-22 03:56:04 +02:00
..
2026-08-23 17:10:50 +02:00
2026-09-21 00:31:46 +02:00
2026-08-23 17:10:50 +02:00
2026-08-23 17:10:50 +02:00
2026-08-23 17:10:50 +02:00
2026-08-23 17:10:50 +02:00
2026-08-23 17:10:50 +02:00
WUP
2026-08-30 11:21:10 +02:00
2026-08-23 17:10:50 +02:00
2026-08-23 17:10:50 +02:00

Logo

Aurora is a source-level GameCube & Wii compatibility layer intended for use with game decompilation projects.

Originally developed for use in Metaforce, a Metroid Prime reverse engineering project. It now powers several completed source ports, including Dusklight.

Features

  • Application layer using SDL3
    • Runs on Windows, Linux, macOS, iOS, tvOS, Android
  • GX compatibility layer
    • Graphics API support: D3D12, Vulkan, Metal
    • Highly accurate and performant GX implementation
    • Robust pipeline cache system with "transferable" cache support for releases
    • Dolphin-compatible texture pack support
    • Widescreen & resolution scaling support
    • Custom APIs for offscreen rendering
  • PAD compatibility layer
    • Utilizes SDL_Gamepad for wide controller support, including GameCube controller adapters
    • Automatically saves and loads controller bindings and port mappings
    • Gyro & mouse support
  • DVD compatibility layer
    • Utilizes nod to support all GameCube/Wii disc image types, including RVZ
  • CARD compatibility layer
    • Full compatibility with Dolphin .gci and .raw for game saves
  • Dear ImGui built-in for simple debug UIs

Graphics

The GX compatibility layer is built on top of WebGPU, a cross-platform graphics API abstraction layer. WebGPU allows targeting all major platforms simultaneously with minimal overhead. The WebGPU implementation used is Chromium's Dawn.

Screenshot

Building

See docs/building.md for build instructions, CMake integration, and configuration options.

License

Aurora is licensed under the MIT License.