github ares-emulator/ares v148
ares v148

4 hours ago

ares v148 has now been released.

This release includes big improvements to a number of ares cores. Highlights include rewrites to the N64 CPU & RSP JITs resulting in significant performance gains across the N64 library, additional implementation & accuracy improvements to the PlayStation core, fixes to the GBA core, and support for the Famicom data recorder & Dendy.

Additionally, there have been many updates to the core ares application across all platforms. Per-core input configuration has been added, updated video, audio, & input drivers are available, bug fixes, additional options have been added, and core dependencies have been updated.

Since v147, 20 contributors have created 300 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.

NOTE: The signing certificate used to sign ares on Windows has expired. ares will be unsigned until a compatible signing solution is found. Windows users should be sure to only download ares from official sources, including the ares website and GitHub.

Sony - PlayStation

  • Refactored core to use libco threading
  • CPU: implemented memory timing/control registers
  • CD-ROM: incorrect 150 LBA offset in command 0x14
  • CD-ROM: fix behavior when a command is issued before the previous has completed
  • CD-ROM: implement behavior where a new command cannot be executed until pending
  • CD-ROM: implement 'command/parameter busy' register
  • DMA: improve chopping/allowing the cpu to run between blocks of a long transfer
  • DMA: fixed incorrect bit position for DMA channel chopping enable
  • DMA: fixed block DMA using incorrect timing
  • DMA: fixed SPU canReadDMA/canWriteDMA flags
  • MDEC: implement basic decode timing
  • MDEC: implement correct input fifo behavior
  • MDEC: fix behavior when an incomplete block is transferred via the input fifo
  • MDEC: fix DMA request registers, input/output full/empty registers, busy register
  • GPU: use correct clock frequency for PAL and NTSC
  • GPU: fix hblank timing
  • GPU: Fixed some clocking issues
  • Timer: improve behavior around timer overflow/target reached IRQ

Nintendo - Game Boy Advance

  • Only trigger keypad IRQ when input changes
  • Fixed handling of repeat bit during immediate DMA transfers
  • Prefetcher should fail reading across 128KiB boundaries
  • OBJ mosaic fixes to correct some graphical bugs
  • Prevent instruction tracing from modifying open bus
  • Refactored bus reads fixing some open bus edge cases
  • Implemented internal horizontal/vertical window flags when window boundaries reached
  • Improved affine parameter timings
  • Fixed wave RAM bank selection
  • Added OAM to memory viewer
  • Implemented OAM stage timings for sprite rendering

Nintendo - Super Famicom / SNES

  • Added support for loading GBC games in the Super Game Boy
  • Super Game Boy accuracy fixes (multiplayer, packet acknowledgement, register mirroring)
  • Improved auto-joypad polling accuracy

Nintendo - Nintendo 64

  • CPU & RSP JIT improvements resulting in improved performance
  • Cubivore (Doubutsu Banchou w/English patch applied) support added
  • Implemented support for region free ROMs (homebrew extension)
  • If homebrew header present, don’t default to a controller pak in port 1
  • Keep serrate bit enabled when VI processing is disabled
  • Fixed audio pops when AI DMA ends
  • Fixed GDB read result for RCP/PI bus path
  • Implemented eeprom write timing and status flags
  • Added initial support for Emux extensions
  • Implemented VR4300 reverse-endian mode

Nintendo - Famicom / NES

  • Added support for the Famicom data recorder
  • Added support for JY Company and SC-127 boards
  • Added support for the Dendy

Atari - 2600

  • Improved RIOT (MOS 6532) emulation

Pioneer - LaserActive

  • Added support for changing discs for PC-Engine LDROM² (NEC PAC) titles
  • Fixed core detection of MMI file extensions

Sega - 32X

  • Adjust H32 pixel offset between the Gen/MD VDP and the 32X VDP

Sega - Mega Drive

  • Fixed screen in interlace mode 1

Sega - SC-3000

  • Added tape support (.wav, .bit)

NEC - PC-Engine

  • Don’t render background and sprites in burst mode

Microsoft - MSX

  • Added tape support (.tsx/tzx, .wav, /cas)

Application / Misc.

  • Libco: align co_active_buffer on amd64 & aarch64 architectures
  • Libco: limit scope of section modification to gcc based builds
  • Ruby: allow drivers to set controller names and use deterministic device id in SDL driver
  • Default to the Metal driver on macOS
  • Removed the macOS OpenGL video driver
  • Don’t enable Arcade menu option if no arcade cores are compiled in
  • Added –settings-file command line parameter to select alternate config file (settings.bml)
  • Fixed opening a game from a symbolic link to a file
  • Fixed loading shaders from a command line argument
  • Added –pseudofullscreen command line option
  • Added settings option in GUI to suppress secondary media file load requests
  • Fixed Dip Switches menu on Linux not working correctly
  • Added hotkey to toggle shader display
  • Added –save-state command line argument to specify a save state slot to load
  • Upgraded XAudio2 driver from version 2.1 to version 2.9
  • Fixed resetting a game would drop you out of pseudo-fullscreen
  • Fixed application crash when opening the about window while a game was running
  • Added –version command line argument to print the version string
  • Fixed an issue where fast forward couldn’t be disabled without a restart
  • Added an OpenGL 4.6 driver needed for some shaders [Windows]
  • Added ability to import and export settings configurations
  • Fixed shader install path on Linux
  • Fixed abort on exit caused by invalid mutex unlock
  • Added –kiosk command line argument to start with no UI
  • Prevent hotkeys from firing when setting them while allow input is active
  • Cores that share the same file extension will prompt for a core to load (UI)
  • Implemented core specific input mappings
  • Replaced multiplier sizing with viewport sizing and re-added manual integer scaling ratios
  • Added a tape position slider to the UI

Build

  • Fixed missing qon linking [PC-Engine]
  • GCC - fix attribute warnings
  • Update FreeBSD runner to 15.0
  • Add missing sources to cmake for improved IDE integration

Dependencies

  • Updated SDL to version 3.4.4
  • Updated slang-shaders to ref d0cbcd0
  • Updated MoltenVK to version 1.4.1
  • Updated librashader to version 0.10.1
  • Updated libchdr to version 0.3.0

Don't miss a new ares release

NewReleases is sending notifications on new releases.