ares v132 released
ares v132 has now been released.
For this, and future release notes, I am going to make an attempt to write a more human-readable changelog; similar in style to a progress report.
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.
Since v131, a total of 9 contributors have created 179 commits to the ares codebase.
General User Interface Tweaks
Various changes have been made to the ares GUI in an attempt to improve user experience.
The "Recent Games" list has been updated to show the System name alongside the game names in the "Recent Games" list, avoiding confusion when the same title is available on multiple systems.
The "Color Bleed" setting is now disabled by default; this option only applies to the SNES core and was causing confusion due to the default settings of ares not being pixel-perfect.
For those using alternative front-ends, it is now possible to select a shader when launching ares from the command line with the --shader parameter.
Ares will now attempt to show an error if running on an unsupported processor, rather than silently crashing.
The changes here are significant enough to warrant their own section.
The multiplier scale settings are now radio buttons, allowing the user to see which option is selected, additionally, a 1x scale option is now provided for those who want the window to be 'actual size' of the emulated framebuffer.
Available scale sizes are no longer bound by the current monitor size, avoiding the situation where a selected option may disappear if the user changes monitor or resolution, and the resizing code has been updated to prevent the window growing larger than the active display; so you never lose access to the main menu.
The window resizing logic now avoids un-maximizing the window, if the user has manually done so, even when adaptive sizing is enabled; making it less frustrating to use ares in a maximised window.
The scaling options have been renamed to better describe their function and two new scaling modes have been added:
"Center" has been renamed to "Scale (Integer)"
"Scale" has been renamed to "Scale (Best Fit)"
A new setting: "Pixel Perfect" has been added, which always displays a 1x scale image in the center of the display, regardless of the window size
A new setting: "Scale (Fixed)" which will always display an image matching the users selected scale factor (1x, 2x, etc) regardless of screen size.
Improved CHD Support
Ares has supported CHD for CD-ROM based system for some time now, but it made the assumption that the CHD files were created from a raw bin/cue rip, which is usually the case for correctly dumped software.
This, however, is not the case for Homebrew, which will often ship as ISO files, rather than BIN/CUE. In previous ares versions these would stop working in after being converted to CHD, but this has now been resolved by implementing proper support for MODE1/2048 CHD images.
While it is expected that emulation updates may cause save states to become invalid when updating ares, the save state version used to be tracked at a global level. This meant that an emulation tweak in one core would break save states in ALL cores, even if the should have remained compatible.
Save State versioning has been updated to store a per-core version instead, to ensure that save states are only invalidated when actually required.
We have updated the internal scaling ratio for Atari 2600 so that 1x screen scale works as expected.
WonderSwan / WonderSwan Color
The WonderSwan core has once again received a significant amount of improvements, making it even more accurate than ever before; while most of these changes do not impact commercial games, ares is rapidly becoming more viable emulator for WonderSwan homebrew development.
Among those changes are:
Significant improvements to emulation of the processor, including flags, undefined opcodes, and timing.
Better handling of some differences between WonderSwan and WonderSwan Color
Improvements to timing of WonderSwan components (PPU, etc)
Fixed an issue where save states would not work correctly
For a detailed breakdown, refer to the complete changelog on GitHub.
Nintendo NES / Famicom
There have been a few minor tweaks to NES/Famicom emulation:
Fixed an issue where the PPUDATA access scanline check was incorrect for PAL systems.
Added support for the ave nina-001 board, allowing Impossible Mission II to work
Added support for Unheadered ROMs; while it is still recommended to use proper iNES roms, ares will now lookup unheadered roms in our game database in order to allow known dumps to function.
Nintendo Game Boy/Game Boy Color
It is now possible to configure "color emulation" settings for Game Boy, allowing to simulate the original DMG screen, the GB Pocket screen, or output in pure unprocessed RGB.
Nintendo Game Boy Advance
Fixed support for 512 byte eeprom saves.
Nintendo SNES / Super Famicom
Fixed an issue where ares would crash when using the debugger memory view for cx4, sa1, and superfx.
Fixed a minor accuracy issue, allowing Peter Lemon's CPU reset test to pass; this should not impact any commercial games.
Once again there have been significant improvements to Nintendo 64 emulation in ares, some of the highlights:
The Real Time Clock is now emulated, meaning Animal Forest is now properly supported.
Better emulation of timing for the PI/RCP/SI.
Fixed saving in International Track & Field 2000
Improved accuracy of Controller Pak and Rumble Pak emulation
Ares now has a very accurate implementation of the behavior of PIF and CIC, including the full boot sequence and the communication between the two chips. This causes more accuracy for homebrew productions creating custom joybus packets and/or tweaking the boot sequence
For a detailed breakdown, refer to the complete changelog on GitHub.
Sega Mega Drive / Genesis / CD / 32X
Fixes to the MD/CD/32X emulation has further improved compatibility, this can especially be seen with a larger number of working Mega CD games.
Most notable here, is that the Mega CD core no longer requires a specific bios version, users should be free to use any bios version (excluding CDX/WonderMega/LaserActive)
Thanks to the impressive work of TascoDLX and invertego, we are pleased to announce that every single Sega Mega CD game at least boots; with an estimated 86% of the library playable to completion.
Sinclair ZX Spectrum 48k / 128k
Preliminary emulation of the ZX Spectrum has been added to ares.
Currently this emulates both the 48K and 128K models, and can load games designed for cassette tape, optional accessories such as Disk Drives are not yet supported.
Ares emulates the base system with a Kempston joystick interface attached, so most games should be playable with this setup.
Being a new core, accuracy is imperfect, but decent; most games we have tried work as expected.
Games must be converted to .wav before loading; ares does not yet support the many ZX-Spectrum specific archival formats.
Due to the sheer size of this library, the compatibility database is currently empty; this doesn't mean the system is not supported, just that we haven't yet built the game database yet.
SNK Neo Geo
Neo Geo emulation has undergone the most dramatic improvement out of any core in this release; with a significant portion of the library jumping from "Nothing" state to "Completable".
This has been acheived by adding support for many of the Neo Geo copy protection systems, and game specific memory layouts.
The Neo Geo romset ares expects you to use matches the current version of MAME at time of writing, we will make a reasonable effort to keep this in sync going forward.
It is now also possible to specify a custom .bin bios rather than a mame zip file; meaning that users wishing to use Unibios can do so.
Audio emulation has improved significantly: while there are still issues with missing sound effects in some games, overall things are closer to being correct
The issue where the user would see black lines during sprite scaling has also been fixed.
Fixed an issue where memory cards did not persist between games
Fixed an issue where ares would crash when loading roms from the command line while using the WASAPI driver.
Fixed an issue where it was not possible to configure bios files on newer versions of macOS.