What's New:
Border/Overscan overhaul
- When ares was initially designed, it was geared primarily towards SNES emulation, and as such the "Overscan" option in video settings behaved like the overscan feature of the SNES: showing or hiding the lower 16 lines of display. This behavior is not how most end users expect overscan to function.
- For ares v136, we have overhauled how borders and overscan is handled across all cores in ares.
- The overscan option has been reworked to show or hide all non-desirable edges of the screen (in most cases this is blank borders, but it can include areas that commonly just contain garbage pixels).
- Additionally, we have updated most of the emulator cores in ares to have hardware accurate border and aspect ratio when overscan is visible: this also includes PAL, so PAL games are finally rendered at the correct aspect ratio to real hardware when 'aspect ratio correction' is enabled.
NOTE: The border regions for All TMS9918 VDP based consoles are thought to be be correct, as are Master System, Mega Drive, and NES, while SNES and PC-Engine are (educated) estimates. Hiding the overscan area is not yet implemented for Atari 2600, PC-Engine, Nintendo 64 or PlayStation as more hardware verification is required.
Cheat Support
- A popular request: ares finally has support for cheat codes, as well as a cheat editor. You can access the cheat editor by going to Tools -> Cheats while a game is loaded.
- Cheats are currently implemented for all cores, except for Nintendo 64 and PlayStation: support for these requires larger changes to ares that did not make the cut for this release.
- The cheat code format is a simple patch code format XXXXXXXX:YY where X is an address, and Y is the data to write; most emulators support this format so it shouldn't be difficult to port cheats between them.
- It is possible to chain multiple codes into a single cheat entry by separating the codes with a + symbol; this is useful if a single cheat requires multiple code to work.
- Cheats are saved in a cheat database file alongside the rom: for example, Game.sfc will create a cheat file titled Game.cheats.bml.
Nintendo - Game Boy Advance
- Implement prefetch buffer reset on ROM accesses from the CPU.
- Implement that timer 0 count-up bit cannot be set.
Nintendo - Super Famicom / SNES
- Fix an issue where the Super Gameboy 2 was running at the incorrect clock frequency.
Nintendo - Nintendo 64
- Implement newly discovered PI DMA behavior when crossing RDRAM row boundaries.
- Fix a corner face in FPU exception handling
Sega - Mega Drive/Genesis, Mega CD, 32x
- Add the Mega CD's PC RAM to the debugger memory viewer.
- Implement subchannel processing for Mega CD (Allows the playback of CD+G/karaoke discs provided a valid .sub file is provided)
Sony - PlayStation
- Improvements to the handling of the GPUSTAT register.
Other
- Switched back to wglSwapInterval for VSync on OpenGL for Windows; the DwmFlush approach caused worse tearing for most users.
- Fixed an issue where the SDL input driver considered all controllers to be the same device.
- Fixed an issue where rumble events could be missed causing rumble issues in many games.
- Improved VSync stability with the DirectX video driver.