Files
wiicompiled/aurora-main
therenow9 196b48528e Fix display lists dropping draws when the staging batch fills (#288)
* test: cover display lists that overflow the staging batch

GXCallDisplayList and GXCallDisplayListLE decode a list with a single
fifo::process() call. When a draw does not fit the staging batch,
process() stops at that draw, and the rest of the list is never drawn.

The test stubs can now admit N draws, refuse the next one as a full
batch would, and count the split that follows. The new test refuses
the middle or the last of three draws, in big- and little-endian
lists, and expects one split and the last draw's vertices.

Also stub aurora::window::set_force_aspect_16_9, called since #256,
so gx_fifo_tests links again.

Fails without the next commit.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix: submit staging and continue when a display list overflows it

drain() already loops process() -> split_staging_batch() -> retry.
Move that loop into fifo::process_all() and use it for drain() and
both GXCallDisplayList variants, so a display list that fills the
staging batch submits it and draws the rest instead of dropping it.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-09 22:48:24 +02:00
..
2026-08-23 17:10:50 +02:00
2026-10-03 11:07:15 +02:00
2026-08-23 17:10:50 +02:00
2026-08-23 17:10:50 +02:00
2026-10-03 11:07:15 +02:00
2026-10-03 11:07:15 +02:00
2026-08-23 17:10:50 +02:00
2026-08-23 17:10:50 +02:00
2026-10-03 11:07:15 +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.