ares v138 released
2024-05-02 15:00:00

ares v138 has now been released.

Since v137, a total of 10 contributors have created 58 commits to the ares codebase.

If you wish to see the full changelog in a per-commit format along with their authors, similarly to how previous release notes were written, you can do so on GitHub here.

Atari 2600

  • Improved 6502 CPU emulation; all unofficial opcodes are now implemented
  • Improve handling of the HMOVE register
  • Refactor of TIA; fixes many emulation issues but still imperfect
  • Implement correct 6502 reset timing

Bandai - WonderSwan / WonderSwan Color

  • Minor fixes to v30mz CPU emulation
  • Emulate 32KB SRAM for '8KB' type cartridges
  • Implement Sound Test register bits 1,2 and 3

Nintendo - NES / Famicom

  • Improved 6502 CPU emulation; all unofficial opcodes are now supported
  • Fix APU frame counter emulation
  • Various improvements to APU emulation
  • Implement correct 6502 reset timing

Nintendo - Nintendo 64

  • Fix an issue where saved data from the current game could be duplicated into the next
  • Fix an issue where the Real Time Clock may not function correctly depending on the user's local time zone

Nintendo - Game Boy Advance

  • Implement that the last cycle of the prefetcher cannot be interrupted
  • Implement correct ROM mirroring for Famicom Mini / Classic NES series
  • Improve handling of SRAM/Flash bus
  • Fix the timing of initial DMA wait cycles

Sega Mega Drive / CD / 32X

  • Lower sync interval between MD and 32X: improves emulation accuracy but does reduce performance

Sony - PlayStation

  • Update the blitter to operate on a copy of the framebuffer; fixes potential threading issues

ruby (Audio/Video/Input abstraction layer)

  • Added a native Metal backend for macOS with VRR support
  • Implemented latency selection in SDL audio driver
  • Removed the built-in Blur shader, using the bilinear slang shader is preferred
  • Removed non-hardware accelerated video drivers (any platform capable of running ares should at least have OpenGL, D3D or Metal available)
  • Reduce CPU usage on the video thread by using a condition variable rather than a spinlock
  • Add support for connecting a Mouse on macOS (for emulating SNES mouse, etc)
  • Remove tight loops in SDL and OpenAL drivers, reducing CPU usage when using these drivers.

User Interface

  • Fix an issue where nested slang shaders were not available in the UI