43 Commits

Author SHA1 Message Date
CraftyBoss
18cdf141cb Implement CARD API based on kabufuda (#53)
Original repository: https://github.com/AxioDL/kabufuda
Cleaned up & converted to `aurora::card`, with SDL3 file I/O.

---------

Co-authored-by: Phillip Stephens <antidote.crk@gmail.com>
Co-authored-by: Jack Andersen <jackoalan@gmail.com>
Co-authored-by: Lioncash <mathew1800@gmail.com>
Co-authored-by: Luke Street <luke@street.dev>
2026-03-10 19:49:34 -06:00
Pieter-Jan Briers
eb960f8148 Add debug group/marker GX/GD API (#48)
* Add debug group/marker GX/GD API

* This keeps happening

* Don't crash if debug group stack underflows

* Missed a debug check

* Stubs

* Last stub?

* We hate C++

* Oh right release exists
2026-03-10 18:38:35 -06:00
Luke Street
23cf6af43a Add DVD implementation based on nod 2026-03-09 01:10:46 -06:00
qwertyquerty
9dd8ae8e61 os time functions and fix os base clock (#45)
* os time functions and fix os base clock

* how do you still exist
2026-03-08 22:36:35 -06:00
Jasper St. Pierre
397801aea4 gx: GXInitTexObjTlut decl 2026-03-08 09:28:19 -07:00
qwertyquerty
4b741d6e86 Log level config feature (#39)
* log level

* do what encounter said

* oops

* remove underlying type

* rename aurora_set_log_level
2026-03-06 18:18:14 -07:00
Pieter-Jan Briers
2c631e7ea2 Make vertex arrays set via FIFO properly (#35)
* Make vertex arrays set via FIFO properly

Adds a new GX_LOAD_AURORA FIFO command with a GX_LOAD_AURORA_ARRAYBASE subcommand. This enables us to pass 64-bit pointers & sizes in command lists and such.

Added GDSetArraySized and made GDSetArray/GDSetArrayRaw panic.

* Dropped this assert.

* Remove duplicated code

I accidentally re-introduced this while I was splitting the diffs for the other PR.
2026-03-05 22:27:16 -07:00
Luke Street
856e40efb4 Reimplement draw call merging & refactor aurora::gx (#37) 2026-03-05 20:31:51 -07:00
Luke Street
8430a1adfd Rework workflow & fix C++ import in C header 2026-03-05 08:36:28 -07:00
Pieter-Jan Briers
f8b9fd0984 Implement GD API (#29)
* Implement GD API

Code taken from TP decomp. Works as-is, mostly.

* cmath
2026-03-04 22:48:37 -07:00
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
Pieter-Jan Briers
12009bbd7b Remaining headers needed for TP to build (#26)
* Remaining headers needed for TP to build

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

* Remove TP-specific OSReport functions
2026-03-02 08:28:13 -07:00
Pieter-Jan Briers
c6d67d2e40 Add extra stuff to GX & VI headers (#23)
* Add extra stuff to GX & VI headers

Everything needed for TP to compile against Aurora here.

* Missed one

* GXVert impls

* GXProject
2026-03-01 23:19:39 -07:00
Roman Sandu
e2390a3ccf SDK headers/cpp additions (#14) 2026-02-23 12:40:06 -07:00
Pieter-Jan Briers
505f922a91 Mtx functions improvement (#12)
* Alias PS* math functions to C_* when not on GEKKO

TP has some call sites that directly reference the PS functions, so we need to redirect these to the C implementations

* Implement remaining mtx math functions

Taken from TP decomp

* Replace mtx assert function stubs with the C assert macro

We presumably do not care about preserving the original line numbers from decomp.

* Fix mtxstack asserts truncating pointers

* Make Vec have "struct Vec" name too

Fixes compile in TP
2026-02-23 08:16:51 -07:00
Luke Street
bd20b65d59 Fix GXInit & differing COLOR/ALPHA channel states 2026-02-21 16:40:40 -07:00
Luke Street
8650b97b03 Update to latest Dawn & SDL3 2026-02-18 20:09:48 -07:00
Luke Street
60eba7dff9 Fog & TCS FIFO-ification 2026-02-18 13:41:42 -07:00
Luke Street
592fe0c892 WIP initial FIFO refactor 2026-02-17 17:35:13 -07:00
Dávid Balatoni
23522538e1 Support making simple display lists on the fly and more data formats (#5)
* Support making simple display lists on the fly and more data formats

* Add a macro for GXCallDisplayListLE

* Resolve conversations
2025-04-23 08:27:16 -06:00
Luke Street
c4d91f18a1 Split out display_list/shader_info 2025-04-18 21:52:38 -06:00
Luke Street
a600b0b84c Rewrite attribute buffer, matrix & stream handling
Now array attributes (GXSetArray) will be properly
fetched based on the vertex format. Buffers are
still assumed to be byte-swapped to little-endian.

Stream handling completely redone and many issues
resolved.

Eliminates matrix transposes. AURORA_NATIVE_MATRIX
is no longer necessary and removed.
2025-04-14 17:17:59 -06:00
Luke Street
3316ad9a7f Add aurora::mtx lib 2025-04-14 17:17:59 -06:00
Phillip Stephens
20755720df Merge pull request #2 from dbalatoni13/downgrade
Add a macro and missing GX functions to headers
2025-04-04 18:49:05 -07:00
dbalatoni13
cce3782fe8 Add a macro and missing GX functions to headers 2025-04-05 03:33:22 +02:00