* Added aspect ratio selector
* Dirty 4:3 fix
* Fixed dynamic aspect in 4:3
* Cleaned up aspect ratio
* Fixed force aspect ratio
* More clean up
* use widescreen key, keep force_16_9 compat
* migrate legacy force_16_9 once at startup
---------
Co-authored-by: patchzyy <64382339+patchzyy@users.noreply.github.com>
* macOS: pass explicit CMAKE_OSX_SYSROOT to the native configure
Fixes#353
## Problem
On recent macOS versions, the CMake bundled in Setup.app fails to detect the SDK, leaving `CMAKE_OSX_SYSROOT` empty. Regular compile steps still work (clang falls back to the default SDK), but libpng's `genout.cmake` step only passes `-isysroot` when `CMAKE_OSX_SYSROOT` is set, so `pnglibconf.out` generation fails with:
```
fatal error: 'sys/types.h' file not found
```
## Fix
Resolve the SDK path explicitly and pass it to the native configure step, so the build no longer depends on the bundled CMake's SDK detection. Also fails early with a clear message if the SDK cannot be resolved.
## Testing
Confirmed on MacBook Pro M1 (macOS 27.0.1): the workaround (setting `CMAKE_OSX_SYSROOT` manually) completes the build successfully; this PR bakes the same fix into the build script.
* fix sysroot line and check sdk dir
---------
Co-authored-by: patchzyy <64382339+patchzyy@users.noreply.github.com>
* fix prebuilt package rejected on user machines
* Time out a hung translator step
The translator can hang after a crash instead of exiting, and the
installer's clean retry runs only on a failed exit. Each translator
step now gets 1800 s; past that its process tree is killed and the
step fails, so the retry runs.
* time out mod awareness check too
---------
Co-authored-by: therenow9 <60898774+therenow9@users.noreply.github.com>
* fix ntsc-u map for vtable-only functions
* add --race and --race-cpu boot options
* add MKW_PERF_STATS frame busy timing and --race-cpu
* fix race seeds for --race-cpu benchmarks
* bind interrupt natives at compile time without register guards
* inline fast path for unguarded indirect calls
* batch gx worker head publishes
* split cold paths out of translated functions
* cache observed gx worker tail on the producer
* print game id in fatal log
* fix ntsc-u map verdict counts
* move aurora to the aurora-wiicompiled submodule (#315)
* Update settings_overlay.cpp (#257)
* Simplify controller settings menu (#317)
* simplify controller settings menu
* platform pairing hint
* build for x86-64-v2 on older linux cpus (#319)
* Real Wii Remote support over Bluetooth (#323)
* pass real wii remotes through emulated bluetooth
* build bluetooth tests on macos ci
* address review comments
* cancel replaced bluetooth reads
* Run GX on its own thread (#325)
* NTSC-U and NTSC-J support (#326)
* add ntsc-u and ntsc-j support
Co-authored-by: DarthMDev <mgracer48@yahoo.com>
Co-authored-by: rooklz <rookieb@muzo-works.com>
* hash inc files and require project for shards
* port remaining stale rr us hooks
* drop map report generation
* drop one-off region porters
---------
Co-authored-by: DarthMDev <mgracer48@yahoo.com>
Co-authored-by: rooklz <rookieb@muzo-works.com>
* Keyboard input for friend code entry (#327)
* keyboard input for friend code entry
* add new guest imports to synthetic test
* replace per-address region table with range map (#328)
* paste friend codes from clipboard (#329)
* Verify dependency archive hashes (#330)
* verify dependency archive hashes
* verify cached cppwinrt tool
* check dependency path types
* Check CPU support before building (#331)
* check cpu support before building
* build for x86-64-v2 on windows and intel macs
* bump aurora for fog fsel fix
* add vsync option (#333)
* Add exe icons (#334)
* add exe icons
* rebuild icon resource on ico change
* drop icon rebuild tracking
* Fix bugs found in forks (#336)
* port fixes found in forks
* fill whole disk id
* dump kamek overlay on crash (#335)
* bump aurora and version to 0.9.0
---------
Co-authored-by: DarthMDev <mgracer48@yahoo.com>
Co-authored-by: rooklz <rookieb@muzo-works.com>
The compile slice advanced a fixed step per line of build output, so how
far it moved depended on how many lines the build printed. When aurora and
its dependencies are compiled locally (as on macOS) the bar reached its cap
long before the game itself was compiled. Read ninja's edge counter instead.
* test: cover display lists that overflow the staging batch
GXCallDisplayList and GXCallDisplayListLE decode a list with a single
fifo::process() call. When a draw does not fit the staging batch,
process() stops at that draw, and the rest of the list is never drawn.
The test stubs can now admit N draws, refuse the next one as a full
batch would, and count the split that follows. The new test refuses
the middle or the last of three draws, in big- and little-endian
lists, and expects one split and the last draw's vertices.
Also stub aurora::window::set_force_aspect_16_9, called since #256,
so gx_fifo_tests links again.
Fails without the next commit.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix: submit staging and continue when a display list overflows it
drain() already loops process() -> split_staging_batch() -> retry.
Move that loop into fifo::process_all() and use it for drain() and
both GXCallDisplayList variants, so a display list that fills the
staging batch submits it and draws the rest instead of dropping it.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Replace /tmp unlinked temporary files and file-backed mmap with anonymous host pages and Mach mach_vm_remap shared aliases, eliminating disk I/O, APFS churn, and SSD write amplification on macOS.
Adapted from KartPad (chrissotraidis/kartpad).