144 Commits

Author SHA1 Message Date
Luke Street 5143394381 Add GX_AUTO Aurora extension for GXBegin 2026-06-09 23:38:22 -06:00
Luke Street 71d8462557 Introduce render worker & revamp RmlUi backend 2026-06-04 23:43:13 -06:00
Pieter-Jan Briers d7a57eba6b Remove more uses of path.string() (#220) 2026-06-03 20:30:24 -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
Ahmad Abdallah f4eb2ee151 Add device accelerometer (#214) 2026-05-29 23:09:49 -06:00
Luke Street 498979df24 Add device haptics & gyro; virtual PADStatus API 2026-05-27 22:56:00 -06:00
Ahmad Abdallah 5bb3ee66b0 Fix missing break in Xbox 360 default pad mapping (#209) 2026-05-24 12:06:42 -06:00
Ahmad Abdallah 126e414e07 Fix GXGetLightPos writing Y component to Z (#204) 2026-05-23 15:52:46 -06:00
Ash 2b07d554d7 feat(input): add API for retrieving if a LED is present (#205) 2026-05-23 10:03:32 -06:00
Olivia!! 5fd7eea49b If a digital shoulder button is pressed, forcibly set analog value to max. (#193) 2026-05-17 09:06:33 -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
Phillip Stephens 4a801aa35b Disable digital trigger emulation if digital triggers are set 2026-05-11 22:52:57 -07:00
Luke Street 0e6f08301a PAD: Map Z to R1/RB, don't map TL/TR 2026-05-11 23:47:22 -06:00
Phillip Stephens d172f88dc3 Fix XBox 360 and One controller mappings (I hope) 2026-05-11 21:38:00 -07:00
qwertyquerty e9847e8e01 fix kb (#171) 2026-05-10 17:21:41 -06:00
Pieter-Jan Briers d61a1824ac Fix handling of Unicode paths on Windows (#166)
* Fix handling of Unicode paths on Windows

I love C++

* Reduce the amount of reinterpret_casts

* Okay? Don't commit the file CLion? Why not?

* Fix texture replacements too
2026-05-10 10:54:59 -06:00
Phillip Stephens 9a79c8a0da Fix GameCube mappings for digital L/R and Z 2026-05-09 16:34:09 -07: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
TakaRikka 69fcfbffc2 add a couple PS versions of vec functions (#161) 2026-05-06 21:18:44 -06:00
Phillip Stephens 1ff4041a4b Refactor keyboard and controller bindings to use SDL streams instead of FILE primitives (#160) 2026-05-06 10:59:18 -07:00