ares v144 released
2025-04-28 10:30:00

ares v144 has now been released.

This release's highlights include steady improvements to the Game Boy Advance, WonderSwan, and Nintendo 64 cores, as well as a selection of application bug fixes, behaviour improvements and updates to third-party libraries.

Since v143, 14 contributors have created 81 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)

  • Fixed disassembler mnemonic for CMP
  • Fixed R15 read offsets on many instructions = Fixed miscalculated carry flags in Thumb mode
  • Disallowed writing 0 to the uppermost bit of PSR mode
  • Added an idle cycle to instructions that perform shifts by register values

NEC V30MZ (WonderSwan CPU)

  • Improved interrupt timing accuracy
  • Improved timing of I/O port accesses

Bandai - WonderSwan

  • Added color emulation support to the original “mono” WonderSwan.
  • Note that WS games on WS are displayed using linear gamma, as opposed to WS games on WSC.
  • Fixed bugs involving cartridge-side RTC protocol emulation
  • Improved APU emulation accuracy
  • Improved interrupt timing accuracy
  • Added support for emulating cartridges using an 8-bit ROM bus width
  • Fixed color zero not being writable on translucent PPU palettes
  • Fixed UART IRQs not being cleared by disabling the UART

Nintendo - Game Boy / Game Boy Color

  • Tick timer on the falling edge of DIV bits
  • Implemented PCM12 and PCM34 registers for APU

Nintendo - Game Boy Advance

  • Latch lower address lines when accessing ROM during burst transfer
  • Improved background VRAM access timings
  • Updated cartridge database
  • Fixed handling of mid-scanline writes to linear background scroll registers
  • Fixed some bugs that occurred when pixel accuracy was disabled

Nintendo - Famicom Disk System

  • Added delay to disk state when swapping disks, resolving issues with multiple games where a disk swap was happening too quickly

Nintendo 64 / Aleck 64

  • Fixed an issue that could cause an application hang under certain titles that deactivate the VI
  • Add support for the unreleased port “O.D.T. - Escape… Or Die Trying” to the internal DB
  • Fixed ID in internal DB for Rampage 2, so controller pak and rumble pak should now work correctly
  • Added compile-time accuracy flag to bypass IPL2 checksum validation for development purposes
  • Improved error messaging if the Aleck 64 Pif ROM is missing when trying to load an Aleck 64 game.
  • Added support for configurable Controller Pak storage sizes
  • Applied a fix to allow booting ROMs with non-standard PI DOM1 parameters in headers
  • Disabled super-sampled RDP readbacks: fixes some accuracy issues/passes more test cases in the official RDP test suite.

Nintendo - SNES / Super Famicom

  • Fixed loading of some games that require additional firmware for chips included in the cartridge

Sega - Master System

  • Updated PAL only entries in the local DB so that they play at the correct 50Hz

Sega - Mega Drive / Genesis / CD / 32X

  • Fixed incorrect hash for Wonder Boy in Monster World (USA, Europe) that allows for correct EEPROM detection, making the game playable
  • Fixed YM2612 LFO ‘AM’ bit emulation (Fixing broken audio in Kid Chameleon and others)
  • 32X: In H32 mode, the display is offset by approximately 3.25 pixels to the right
  • 32X: Fix registers and machine state on reset
  • CD: Fixed an issue where resetting the system while a game was running would result in the BIOS locking up on reboot.
  • 32X: Improve synchronisation between MD/32X: fixes H/V tests in testpico when running in 32X mode.
  • Improved VDP IRQ delay emulation
  • Improve YM2612 timer emulation

Sony - PlayStation

  • Fixed an assertion in Lunar disc 1 when walking into Alex’s house or the barn to the right of it, preventing a crash.

UI / Program

  • Fixed a runtime crash on arm64 Linux with builds compiled with GCC
  • Improved compatibility inside sandboxed environments
  • Fixed passing relative paths for ROMs when launching ares on the command line
  • Fixed an issue with the displayed release version name on Windows
  • Fixed an issue causing malformed save directory names when a custom save path was specified
  • Fixed an issue causing the “missing firmware” error to appear twice
  • Fixed an issue that could cause runaway memory use on startup under the SDL input driver
  • Fixed an issue affecting compatibility with macOS versions before 12.0

Dependencies

  • Updated SDL to version 3.2.10 (SDL3)
  • Updated librashader to version 0.6.3
  • Updated slang-shaders to ref 25311dc