* Add offsets for Wii USA R0/R2, JPN, and PAL
Also fix an oopsie where l_pos and l_normal's offsets were swapped
* Allow loading Wii discs
* Change GameVersion::GcnJpn checks to isRegionJpn()
* Change GameVersion::GcnPal checks to isRegionPal()
* Add platformSelect and regionSelect templates, simplify a ton of code
* Add *_get() macros to simplify REL loads
* Actually accept Wii USA Rev. 2 discs
* Show the Wii USA revision in prelaunch's disc status
* l_normal isn't in Wii RELs, so I'll just hardcode it
* Account for various BLO differences
Fix crash when opening the map on Wii USA Rev 0 and Wii PAL
* Use the streamed version of the file select music
* Update language selection
* Fix the d-pad/cross button text for Wii PAL
Resizing panes that are already 120.0f wide is harmless, so I didn't bother with a GameVersion check
* Fix brightness check discrepancy, use IF_DUSK_BLOCK macros when ideal
* Update docs and the issue template
* Don't Use OSCalendarTime for Speedrun Timing
- Shouldn't rely on OSTicksToCalendarTime since it will be changed to handle time zone conversion, and that doesn't make sense on elapsed time
* Use OSGetSystemTime Extension
- Fixes desyncing issues with save file time and a couple other odd instances, particularly on mobile platforms that suspend apps
* Time revamp
* Update aurora
* Split IGT/RTA calculations
* Shift-Turbo to slow down
---------
Co-authored-by: SuperDude88 <82904174+SuperDude88@users.noreply.github.com>
The hope of auto-importing data via lld MinGW
+ pseudo_reloc is now dead thanks to ARM64,
so I just wrote a script to go annotate every
exported data symbol in the game instead.
* Array size UB fixes
* Fix ShieldD
* Remove (almost) all unsafe strcpy calls
Bunch of macros. C arrays are easy enough and just need a different call. For various cases where a char* is passed around bare, I've made a TEXT_SPAN macro that can store a length too for bounds checking.
* Move crash handling in safe string operations to separate TU
* strcat safe version
* sprintf made safe too
* Fix compile
* Add interpolation frame rate cap
* wip: reworked framelimiter
Based on my testing this is a bit more stable in frametimes.
* wip: efficiency improvement + windows build fix
Significantly improve efficiency by using a hybrid approach.
* wip: UI changes
* wip: end frame AFTER limiting
* wip: remove unused include
* wip: minor ui code change
Makes it easier to remove/add presets
* Simplify Limiter UI
- Change enableFrameInterpolation to an enum with off/capped/unlimited values
- Simplify the UI to use 2 settings (unlock framerate + a max value entry)
* wip: slight limiter simplification
* wip: implement review suggestions
* wip: fix syntax error
* wip: revert enum order + replace old checks
* Fix compile error
---------
Co-authored-by: SailorSnoW <sailorsnow@pm.me>
Co-authored-by: Loïs <49660929+SailorSnoW@users.noreply.github.com>
Co-authored-by: SuperDude88 <82904174+SuperDude88@users.noreply.github.com>
Co-authored-by: Luke Street <luke@street.dev>
* custom action framework and first person custom action
* add bind for midna call
* custom binding for opening dusklight menu
* turbo speed button action
* text descriptions
* fix not stopping default GC controller menu combo
* more explanation text
* block bind actions when in the dusklight menu