117 Commits

Author SHA1 Message Date
Luke Street e3fd6b1900 Implement aurora_get_fps 2026-06-14 11:23:24 -06:00
Luke Street 55b993e08e Add aurora::gx::dl reader & optimizer 2026-06-13 10:15:47 -06:00
Luke Street 5143394381 Add GX_AUTO Aurora extension for GXBegin 2026-06-09 23:38:22 -06:00
Pieter-Jan Briers 04cd3b3ac7 Allow AURORA_GFX_DEBUG_GROUPS to be set from CMake individually (#221)
So that I can do target_compile_definitions(aurora_gx PRIVATE AURORA_GFX_DEBUG_GROUPS) instead of needing to enable DEBUG
2026-06-03 20:57:54 -06:00
Thomas Ryan fb156d78ca Fix GX indirect tile window rendering (#218)
Co-authored-by: Thomas Ryan <contact@thomasryan.ca>
2026-06-02 10:04:31 -06:00
Pieter-Jan Briers 7dd107e1a4 DVD file overlay support (#216)
* DVD file overlay support

Fixes #163

Basically allows games to "overlay" a set of file paths over the DVD. These are provided as a flat list of absolute paths, and when an overlayed file is read, the game gets the ability to provide its own read/seek callbacks.

The current implementation rebuilds the FST. This means EntryNums will not be consistent with the original disc, but it does avoid rewriting a significant chunk of the existing DVD code that relies on the FST.

* Comments and a guard

* EntryNum handling rewrite

Game now assigns entrynums for added files, and original disc entrynums are preserved.

* Split FST logic into another file in dvd lib

* Fix overlay userdata 0

Dusklight was using integer indexes for the userdata of overlay files. This meant file 0 was a null void*, and that meant the DVD code didn't treat it as an overlaid file.

Add an extra bool to avoid getting confused like this.

* Make entryNum only validated if not replacing file

* Make FST rebuilds thread safe with concurrent readers

Since I kinda would like to eventually allow mods to be loaded without game restart (where practical)

* Doc updates

* Remove debug logs

* Aurora-allocated entry nums & dir support

* Add warning for resetting cwd

---------

Co-authored-by: Luke Street <luke@street.dev>
2026-05-30 13:16:42 -06:00
SuperDude88 7ba0d010cc Implement GX2SetPolygonOffset
Co-authored-by: Lurs <2795933+Lurs@users.noreply.github.com>

Co-authored-by: Luke Street <luke@street.dev>
2026-05-30 10:25:07 -06:00
Luke Street 558ba0a987 Add RG8 and BC1 PC texture formats 2026-05-30 10:03:34 -06:00
Luke Street c214a67adf Runtime texture replacement API 2026-05-30 10:01:40 -06:00
Luke Street 9975a16f12 RmlUi: Add RuntimeTextureProvider 2026-05-27 22:56:27 -06:00
Luke Street d8720454bb RmlUi: Implement custom touch* events 2026-05-27 22:56:19 -06:00
Luke Street 498979df24 Add device haptics & gyro; virtual PADStatus API 2026-05-27 22:56:00 -06:00
Reilly Brogan e9db7ea7b2 Add resourcesPath to auroraConfig (#211)
Signed-off-by: Reilly Brogan <reilly@reillybrogan.com>
2026-05-27 18:27:57 -06:00
Luke Street 8f1ea3e126 Disable CPU graphics adapters by default 2026-05-24 12:55:38 -06:00
Ash 2b07d554d7 feat(input): add API for retrieving if a LED is present (#205) 2026-05-23 10:03:32 -06:00
Irastris 312514bd77 Implement Area sampling for scaling the internal resolution (#197)
* Implement Area sampler for scaling the internal resolution

* Move resampling to before RmlUi instead of inside it
Allows non-Bilinear resampling to work regardless of RmlUi being init
2026-05-17 20:57:23 -04:00
SrBananaMan 932c89a2f8 Add method to enable/disable textures and reload once changed. (#195) 2026-05-17 09:05:35 -04:00
Luke Street 3643a369ad Split up configPath -> userPath/cachePath 2026-05-13 00:45:19 -06:00
Ahmad Abdallah fb3cd81c23 Add per-field GXInitTexObj setters and user-data accessors (#177) 2026-05-12 14:09:07 -06:00
Phillip Stephens dad74e48d2 Cleanup clang-tidy warnings, attempt to fix 4GB file bug (#175)
* Cleanup clang-tidy warnings, attempt to fix 4GB file bug

* Add ranges header
2026-05-12 14:02:26 -06:00
Mart 62e55287ea feat(rmlui): add user-configurable ui scale multiplier (#169)
* feat(rmlui): add user-configurable ui scale multiplier

Expose `aurora::rmlui::set_ui_scale` / `get_ui_scale` so consumers can
multiply the RmlUi context's density-independent pixel ratio without
having to fight `sync_context_metrics` resetting the value every render.

Default scale is 1.0 (no behavior change); the multiplier is clamped to
[0.25, 4.0] and applied inside `sync_context_metrics`, so existing
display-scale syncing continues to work for HiDPI / display-change
events.

* refactor: specific scale vs multiplier
2026-05-11 19:50:05 -06:00
Luke Street 22c2e5e55a Add shims for macOS 14 support 2026-05-10 00:27:54 -06:00
Phillip Stephens 022a271f71 Add new mapping for NSO Gamecube and special case it (#165)
* Add new mapping for NSO Gamecube and special case it

* No need to swap a/y for NSO Gamecube
2026-05-09 13:36:40 -07:00
Phillip Stephens bd46867176 Add support for setting default mappings per-type (#164)
* Add support for setting default mappings per-type

Adds a new enum and getter, as well as updates PADSetDefaultMapping to take the new enum.

I haven't set the mappings for each controller type just yet as we'll need to experiment with that.
That being said we can at least fix the gamecube mapping

* Correct GameCube controller default mapping (swap b/x)

* Fix struct forward decl

* Remove unnecessary todo
2026-05-09 12:53:40 -07:00
Luke Street 1eeff98783 Android/iOS backgrounding fixes; pause on focus lost 2026-05-08 16:55:12 -06:00