ares v141 released
2024-11-04 11:30:00
ares v141 has now been released.
Since v140, 13 contributors have created 52 commits to the ares codebase.
As always, if you wish to see the full changelog in a per-commit format along with their authors, you can do so on GitHub here.
Systems
Nintendo - SNES / Super Famicom
- Fix detection of the Sufami Turbo base cartridge (Avoiding serial conflict with Sailor Moon SuperS - Fuwafuwa Panic).
- Fix PowerFest '94 and Campus Challenge '92.
- Add support for games with 256KB of SRAM (Notably used in rom hacks, but these hacks also work on real hardware).
- Add support for the NTT Data Keypad
- Fix SA-1 DMA to BWRAM banks 0x41 and above.
Nintendo - Game Boy Advance
- Improve stop mode emulation, ensuring it only exits once the requested input is registered.
- Improve interrupt timings (latch IE and IF for 1 cycle).
- Add latches to DISPCNT background enable, object enable and force blank; these now correctly take effect after 3 scanlines.
- Improve SIO register handling.
- Fix an off-by-one error with BG mosaic handling.
- Fix an oversight in OBJ mosaic at x=0. Improve OBJ timing: OBJs are now correctly rendered one scanline in advance, and OBJ PRAM access timings are closer to hardware.
- Add a 2-cycle synchronizer and improve halted CPU timings
- Selectively synchronize CPU and APU, allowing for the removal of the compile time 'PERFORMANCE' profile. (Greater accuracy in Release builds with no performance downsides).
- Small improvements to PPU timing.
- Added support for the Pixel Accuracy toggle; significant performance increase when pixel accuracy is disabled.
Nintendo - Nintendo 64
- Remove the 'devertualizeFast' performance optimisation from code block lookups: this was proven to compromise correctness/accuracy.
- Refactor devirtualize to return additional context for memory access, reducing code duplication in-memory operations.
- Use JIT only when running code from i-cache.
- Add support for 40 Winks (Aftermarket).
- Add support for Xeno Crisis (World) (Aftermarket)
- Allow for Pak swapping on Controller Port 1 (You can now change between Controller Pak/Transfer Pak/Rumble Pack at runtime).
- Fix instruction trace debugging when using the recompiler.
- Add support for multi-byte writes to the GDB debugger.
- Use different GDB signals for the various exception types.
- Allow arbitrary and possibly unaligned writes to RDRAM through GDB.
- Add unusual warning when software uses CACHE on uncached addresses
- Refactor JIT to remove an extra function call (instructionEpilogue) per instruction.
Sega - Mega Drive / Genesis / 32X / CD
- Synchronize components more regularly when emulating 32X; this fixes a regression that caused 'Knuckles Chaotix' to be broken in ares v140.
- Add an option to enable the TMSS "Produced by or under license from..." screen.
Other
- Stage resources into the output directory on Linux; allowing running self-compiled builds without running 'make install' first.
- Address some possible uses of uninitialized variables.
- Enable the use of loading higan-style rom folders when using the command line
- Update librashader integration for librashader ABI 2
MacOS fixes
- Display errors from the shader loader in metal, easing debugging of librashader.
- Add bounds checking for table view context menus; fixes a crash when right-clicking beyond the bounds of defined rows in a table.
- Fix an issue where librashader did not function on macOS versions lower than 12 (Monterey) when compiled by CI