Pieter-Jan Briers e4afaeeeb7 OS functions start (#16)
* OS memory start

OSInit()
MEM1 size configurable via AuroraConfiguration
Fancy guard pages (who knows if it'll be useful)

* OSGetTime() and OSGetTick()

* Fix OSPhysicalToCached etc for 64-bit pointers

* Specify memory size in OS boot info

Used by TP at least

* Fix MEM1Start/MEM1End definition

oops

* Implement some OS arena functions

* DEBUG -> NDEBUG

* Implement memory translation functions

I decided to remove the macros from the header given they're very unlikely to matter perf wise and it reduces code duplication.

There's no distinction between cached and uncached. Physical is relative to MEM1.

* Fix symbol mismatches from forgetting to include the header

* Implement OSReport and similar logging functions

* Fix OSBaseAddress

Ugh

* Implement OSGetPhysicalMemSize

* Fix usage of static for global variables

* Remove ../ prefixes from OS CMake file

CLion did this

* Remaining headers needed for TP to build

* Rider's "Unversioned Files" will keep trolling me

* Remove TP-specific OSReport functions

* Hardcode OS_BUS_CLOCK in os.h

TP has it referenced in an initializer, so relying on MEM1 being initialized is impossible.

* Import TP ARAM emulation code

* Guard against double OSInit() calls.

---------

Co-authored-by: Luke Street <luke@street.dev>
2026-03-02 08:33:42 -07:00
2026-03-02 08:33:42 -07:00
2026-03-02 08:33:42 -07:00
2026-03-02 08:33:42 -07:00
2026-03-02 08:33:42 -07:00
2022-07-27 11:25:25 -04:00
2026-03-02 08:33:42 -07:00
2022-07-27 11:25:25 -04:00
2022-07-27 11:25:25 -04:00
2022-07-27 11:25:25 -04:00

Aurora

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

Originally developed for use in Metaforce, a Metroid Prime reverse engineering project.

Features

  • GX compatibility layer
    • Graphics API support: D3D12, Vulkan, Metal, OpenGL 4.4+ and OpenGL ES 3.1+
    • Planned: deko3d backend for Switch
  • Application layer using SDL
    • Runs on Windows, Linux, macOS, iOS, tvOS (Android coming soon)
    • Audio support with SDL_audio
  • PAD compatibility layer
    • Utilizes SDL_GameController for wide controller support, including GameCube controllers.
    • Planned: Wii remote support
  • Dear ImGui built-in for UI

GX

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.

Currently, the WebGPU implementation used is Chromium's Dawn.

See GX API support for more information.

PAD

The PAD compatibility layer utilizes SDL_GameController to automatically support & provide mappings for hundreds of controllers across all platforms.

S
Description
No description provided
Readme MIT 1.7 MiB
Languages
C++ 76.5%
C 20.7%
CMake 2.8%