ares v140 released
2024-08-27 17:45:00

ares v140 has now been released.

Since v139, a total of 15 contributors have created 53 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

Bandai - WonderSwan / WonderSwan Color

  • Implement cartridge SRAM open bus

Nec - PC Engine / TurboGrafx / SuperGrafx / CD

  • Automatic bios detection now prefers the Arcade Card bios for NTSC-J Region, rather than System Card 3.0

Nintendo - NES / Famicom / Disk System

  • Fix an issue where cartridge ram was not included in save states for some HVC-NROM and Sunsoft 1-3 mappers.
  • Add support for Camerica/Codemasters mappers
  • Add support for Tengen Rambo-1 mapper
  • Add support for Sachen-0037/Tengen-800008 mapper
  • Add support for the NES Zapper

Nintendo - Game Boy Advance

  • Prevent the debugger from advancing the CPU clock
  • Reset prefetch buffer on ROM accesses from DMA
  • Improve DMA timings
  • Implement that the prefetcher should halt only once DMA is accessing ROM
  • Prevent DMA from interrupting ROM accesses
  • Fix controls when using a rotated screen
  • Reload timer value after tick
  • Use separate latches per DMA channel
  • Implement graphics viewer in the debugger

Nintendo - Nintendo 64

  • Clear R0 register only when written to (Performance optimisation)
  • Fix an issue where loading save states would not set the correct audio frequency
  • Add missing fields to save states
  • Refactor to remove the branch state machine from the instruction epilogue (paving the way for future recompiler improvements)

Sega - SG-1000

  • Fix an issue where cartridge ram was not included for Taiwan-A and Taiwan-B mappers.

SNK - Neo Geo

  • Fix an issue where cartridge ram was not included in save states for the Jockey GP mapper.

Sony - PlayStation

  • Fix a crash when the display surface wraps around the framebuffer.
  • Fix an issue where CD-ROM seeking would not interrupt a read operation

Shared Components

ARM7TDMI

  • Fix reading SPSR register in user and system modes
  • Improve LDM/STM edge case handling

NEC V30MZ

  • Fix DAS overflow flag emulation
  • Fix instruction prefix handling
  • Fix IP on interrupt fired when prefixes are being used with non-prefixed instructions

Other

  • Fix an issue where settings may not save correctly on non-english locale
  • Improve the OpenGL integration with librashader; matching the implementation for the Metal driver
  • Improve the OpenGL driver on macOS: Fix flickering on resize, add fullscreen behavior toggle and fullscreen monitor selection
  • Fix building using Make 3.81 (macOS users no longer need to install a newer Make manually to build ares)
  • Properly detect the target arch when compiling with CL
  • Improve compatibility with FreeBSD
  • Fix an issue where the settings window would be too small to show all options on some configurations
  • Add the ability to switch between the interpreter and recompiler at runtime; previously this was a compile time switch unavailable to end users. You can use the "Force Interpreter" setting to force the 32X, N64 and PS1 cores to use the interpreter.