ares v145 released
2025-07-09 11:00:00
ares v145 has now been released.
This release contains hefty improvements to a number of ares components. Highlights include Real Time Clock support for the Game Boy Advance, improvements to the experimental PlayStation core, Sega SC-3000 support, important fixes to the Game Boy Color, as well as core improvements to the ares application itself that should improve performance and responsiveness.
Since v144, 8 contributors have created 90 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.
ARM7TDMI (Game Boy Advance CPU, ST018 Super Famicom coprocessor)
- Implemented many undocumented instruction encodings
- Implemented invalid CPSR modes
- Added support for MRC, MCR, and CDP coprocessor instructions
- Allowed misalignment of the program counter in ARM mode
Nintendo - Game Boy Color
- Improved HDMA and GDMA timings (fixes some major graphical bugs)
Nintendo - Game Boy Advance
- Added support for the Real Time Clock
- Re-introduced optional Game Boy Player support
- Fixed a bug where EEPROM saves were initialized to all zeroes, rather than all ones
- Improved handling of FIFO audio channels
- Writes to APU registers and wave RAM while audio is disabled are now handled correctly
- Prevented IRQs from advancing during DMA
- Improvements to prefetcher timings
- CPU is now stepped in single-cycle increments when halted
Nintendo - Famicom / NES
- Fixed database to allow running PAL/NTSC games in both supported modes
Nintendo 64
- Game Boy Color titles are now selectable for use with Transfer Pak
- Renamed upscaling options from “SD/HD/UHD Quality” to “1x/2x/4x Native” to better describe the resolution increase
Sega - SG-1000 / SG-3000
- Added support for the SC-3000
- Improve IO port emulation (Port B bits 3-6 are active low, bit 7 is active high)
- Fix an issue where games could incorrectly detect the SG-1000 as an SC-3000
Sega - Master System / Game Gear
- Improved header validation; fixes many NTSC-J titles being detected as international
Sega - Mega Drive / Genesis / CD / 32X
- Added CPU wait cycle for APU bus access
Sony - PlayStation
- Fix incorrect handling of the CE bits in COP0.CAUSE
- Fix boot of discs with non-standard license strings (Various unlicensed games)
- Fix VRAM-to-CPU transfers
- Fix issues with DMA interrupt flag calculation
- Fix issues with virtual->physical address translation
- Fix reads of DICR bit 15.
- Fix an issue where the mute bit would not apply to reverb voices
- Fix an issue where save states may not be re-usable between emulator launches
- Fix an issue where SPU noise was not being correctly represented as a signed 16-bit quantity
- (Temporarily) Remove the recompiler: one will be re-added once accuracy is more up to scratch
Application / Misc.
- Core threading improvements have been made to ares, which should lead to increased UI responsiveness and potentially improved performance on some platforms.
- Added a selector for region fallback preference when loading a title, to better account for cases where the ROM does not support the user’s primary region preference.
- The status bar will now show the loaded system configuration and region.
- Fixed an issue where
nall::set::insert
could fail silently - Resolved an invalid version issue when building ares from a source archive
- Releases now contain platform-appropriate application version metadata
- [Windows] Modified terminal output to be treated as UTF-8, and to allow the use of VT100 escape sequences when supported
- [macOS] Enabled the system Edit menu, allowing copy/paste functionality inside the Tools window
- [macOS] Fixed a possible startup crash on x86_64 systems
- [macOS] Fixed issues when building ares on macOS 10.15
Dependencies
- Updated SDL to version 3.2.14, containing miscellaneous bugfixes
- Updated librashader to version 0.8.1, addressing a rare crash when loading shaders on Windows
- Updated slang-shaders to ref
8c630d0d3
- Updated Molten-VK to version 1.3.0