Releases: ares-emulator/ares
ares v125.1
ares v125.1 is an emergency point release to fix a major performance issue that has exclusively impacted Windows users. If you're a Windows users, you probably want to update.
Additionally, it fixes some minor crash issues, implements the GTROM mapper (used by some NES homebrew) and fixes an issue where some roms could not be loaded from a .zip file, these changes would usually have waited until v126, but since they have already been completed, it didn't make sense to hold them back.
Changelog:
- fc: implement GTROM mapper [LukeUsher]
- hiro: track window focus via messages, not polling [invertego]
- mia: prefer known rom extensions in zip archives [invertego]
- ms/sfc: fix some light-gun related crashes [invertego]
ares v125
ares v125 brings significant improvments to Famicom, Mega Drive and Mega CD/32X emulation
and minor improvements to Master System and GearGear emulation.
An issue that caused most recompiler based cores to crash on macOS has been solved.
The desktop ui also gained support for a 'screenshot' hot-key, a crash issue was fixed in the Nintendo 64 emulation core.
The website has also been updated to house a compatibility list, but a large number of titles have not yet been tested.
Feel free to submit PRs to add missing entries (edit instructions can be found on the compatibility pages)
Changelog:
- ci: use MSYS2 on Windows, add support for clang. Fixes performance issues on Windows [invertego]
- desktop-ui: add screenshot hotkey [kawa-oneechan]
- desktop-ui: fix file/folder browser dialog alignment [invertego]
- desktop-ui: fix linking on older macOS toolchains [rasky]
- fc: add chip type to manifest [encoded-byte]
- fc: always check for ram presence [encoded-byte]
- fc: check for ram and simplify banking [encoded-byte]
- fc: fix jaleco jf14 banking [encoded-byte]
- fc: pinout support for konami vrc7 [encoded-byte]
- fc: support expanded bnrom & uxrom [LukeUsher]
- fc: support for irem g101 mapper [encoded-byte]
- fc: support for irem h3001 mapper [encoded-byte]
- fc: support for item if12 mapper [encoded-byte]
- fc: support for item lrog017 mapper [encoded-byte]
- fc: support for taito x1-005 mapper [encoded-byte]
- fc: support for taito x1-017 mapper [encoded-byte]
- fc: support jaleco fc05 mapper [encoded-byte]
- fc: support jaleco jf13 mapper [encoded-byte]
- fc: support jaleco jf17/19 mappers [encoded-byte]
- fc: support konami vrc2 varient [encoded-byte]
- fc: support taito tc0190 mapper [encoded-byte]
- fc: support taito tc0690 mapper [encoded-byte]
- gg: add 'Micky Mouse no Castle Illusion (Japan)' to game database [LukeUsher]
- libco: fix vector register handling on aarch64 [Sintendo]
- libco: optimise co_swap_function on aarch64 [Sintendo]
- m68000: avoid changing interrupt mask on exceptions [TascoDLX]
- m68000: fix disassembly of pc-relative addresses [TascoDLX]
- m68000: restore TAS instruction for cpus other than MD main [TascoDLX]
- mcd: allow continuous CD playbacl [TascoDLX]
- mcd: auto-detect disc region based on boot code, fixes some false detections [TascoDLX]
- mcd: report error on unhandled cdd command [TascoDLX]
- mcd: reset timer on write [TascoDLX]
- mcd: support 3-button pad as default [TascoDLX]
- md: fix interrupt ack special case [TascoDLX]
- md: fix irq issues, timing, delays, ack [TascoDLX]
- md: fix z80 bus access & timing issues [TascoDLX]
- md: improved cpu open bus line accuracy [TascoDLX]
- md: improved timing/signaling for Z80 busreq [TascoDLX]
- md: prevent SRAM from masking out high rom [TascoDLX]
- md: sram support for Super Hydlide (J) [TascoDLX]
- mia: add konami vvrc2/4/6 to database [encoded-byte]
- mia: use database for fc [encoded-byte]
- ms: fix "set VDPBuffer" tests in VDPTEST.sms [LukeUsher]
- n64: increase screen canvas to 576 lines, fixes a crash in certain display modes [invertego]
- nall: Tweak & fix generation of CD subchannel data [TascoDLX]
- nall: Various fixes to CD session handling [TascoDLX]
- nall: improved CD cuesheet loading to handle PREGAP and POSTGAP [TascoDLX]
- recompiler: on macOS allow data segment to be executable [invertego]
- sh2: fix several instructions, default to recompiler [invertego]
- snes: Fix D-Port BOS test in SPC7110 Check Program [jbo-85]
ares v124
ares v124 brings the compatibility rating for the Famicom and Nintendo 64 cores
up to three stars. This means that at least 80% of the game library is working.
There have been notable improvements to Game Boy, Mega Drive, Sega Mega CD,
Sega 32X and Nintendo 64 emulation, and the PC-Engine multi-tap is now supported.
Finally, the dynamic recompiler now generates slightly more efficient code. You
may notice a slight performance boost in Nintendo 64, Sega 32X and Sony
PlayStation.
Changelog:
- Famicom: Add support for Jaleco JF11/JF14 mapper [Shideravan]
- Game Boy: Bring fast-boot closer to normal boot; Fixes Dr. Fraken [invertego]
- Game Boy: Use stable sort for sprites; fixes speech bubbles in Crayon Shin-chan 3 [invertego]
- Game Boy: Remove limit on window width; fixes pause screen in Heiankyo Alien [invertego]
- Game Boy: Emulate serial transfers with no link; fixes input in Alleyway [invertego]
- Game Boy: Improve handling of LCD/BG enable for DMG; fixes Hyper Lode Runner [invertego]
- Game Boy: Resume from halt whenever (IE & IF) != 0; fies Amazing Penguin [invertego]
- Mega Drive: Fix DMA transfer rate and H-Int signalling; fixes Another World, 3 Ninja's Kick Back, Virtua Racing, Burning Force [TascoDLX]
- Mega Drive: Fix sprite masking and overflow; Fixes Mickey Mania [TascoDLX]
- Mega Drive: Fix DMA fill; Fixes Demons of Asteborg [TascoDLX]
- Mega Drive: Fix VRAM byte addressing; Fixes Contra Hard Corps, Musha [TascoDLX]
- Mega Drive: Fix VDP control port writes [TascoDLX]
- Mega Drive: Implement HV Counter Patching [TascoDLX]
- Mega Drive: Implement STOP instruction; fixes Thunder Force IV [TascoDLX]
- Mega Drive: Default to 3-button gamepad; fixes games that don't support 6-button pads [Shideravan]
- Mega Drive/Mega CD: Fix detection of device rom header; allows Mode-1 to work [Luke Usher]
- Mega CD: Fix word-ram 1M access pattern; Fixes Lethal Enforcers II [TascoDLX]
- Mega CD: Fix H-Int vectoring; Fixes Microcosm, Silpheed, Wing Commander, and others [TascoDLX]
- Mega CD: Implement full graphics/1M wordram translations; fixes Rebel Assault [TascoDLX]
- Mega 32X: Tighten M68k sync; Fixes Kolibri and Fifa 96 [TascoDLX]
- Neo Geo Pocket: Fix off-by-one error in LDAR instruction; fixes a crash in SNK Gals' Fighters [invertego]
- Nintendo 64: Support controller ports 3 & 4 [LukeUsher]
- Nintendo 64: Better Flash Ram support; Fixes Majora's Mask, Paper Mario, Derby Stallion 64 [jeltaqq]
- Nintendo 64: Add mempack/rumble status to database; eliminates controller pak/rumble pak warnings [remutro]
- Nintendo 64: Consume cycles to compensate for skipped RDRAM initialization; fixes Wave Race 64 Shindou Pak [invertego]
- Nintendo 64: Fix PIF RAM init on cold boot, preserve RDRAM on warm reset; fixes Perfect Dark boot [invertego]
- Nintendo 64: Default to 3 controllers for Jeopardy!, this game doesn't work with 4 controllers, even on hardware [invertego]
- Nintendo 64: Fix FPU compare and divide exceptions; Turok is now able to play the entire Acclaim logo animation [invertego]
- Nintendo 64: Decrease SI DMA delay; improves Turok, Donkey Kong 64, Forsaken 64, Hercules, Triple Play 2000 [invertego]
- Nintendo 64: Implement perfect PI DMA write [rasky]
- PC Engine: Support Multi-Tap [LukeUsher]
- TMS9918: Widen vcounter to 9-bits; improves ColecoVision, SG-1000, MSX [invertego]
- desktop-ui: Support up-to 5 virtual controllers (For PC-Engine) [LukeUsher]
- desktop-ui: Fix window background with GTK3 [ghisvail]
- desktop-ui: Install icons in freedesktop compliant locations [ghisvail]
- desktop-ui/hiro: Improved macOS user experience [LIJI32]
- ruby: Fix conflated keys on Windows; fixes some keyboard input issues [invertego]
- nall: Use XDG base directories on *nix systems [ghisvail]
- shaders: Include a selection of public-domain shaders [LukeUsher]
- ares: Fix address masking in instruction tracer [invertego]
- ares: Fix warnings reported by clang [invertego]
- ares: Fix static init in node subclasses [invertego]
- ares: Use 64-bit integers instead of 128-bit integers in the scheduler [invertego]
- ares: Use IP relative direct branches in the recompiler, where possible [invertego]
- ares: Emit only one epilog per block in the recompiler [invertego]
- ares: add label API to recompiler to simplify branches [invertego]
- ares: Use fixed BSS allocation for code cache; improves recompiler performance [invertego]
- ares: Fix instructionEpilogue test [invertego]
- ares: Directly emit code for target ABI; generates more efficient code in the recompiler [invertego]
- ares: Avoid encoding absolute data addresses in the recompiler [invertego]
- nall: allow mingw headers to define MSVCRT_VERSION [invertego]
- nall: generate PDB when building with clang on windows [invertego]
- nall: allow generation of debug symbols with symbols=true [invertego]
- nall: link with lld wen building with clang on Windows [invertego]
- nall: Make thread movable but not copyable; fixes random UI hangs on Windows [invertego]
- mia: Fix MSU-1 rom loading [Luke Usher]
ares v123
ares v123 includes significant improvements to the emulation of the ColecoVision,
SG-1000 and the Game Boy/Game Boy Color.
This release brings the compatibility rating for ColecoVision and SG-1000 to
four stars.
This means that we have 100% compatiiblity with both of those libraries, with
the only exception being the few games that require additional peripherals
(driving controllers; touchpads, etc).
The Game Boy improvements are significant, but not quite enough to increase
the compatibility rating at the present time, even so, Many more games are
playable than before.
Finally, a few tweaks to MegaDrive emulation have improved compatibility,
reduced the occurance of video corruption, and improved performance of
the Sega 32X emulation.
Changelog:
- ColecoVision: Initialize ram to 0; fixes a crash in The Heist [Luke Usher]
- ColecoVision: Disable cartridge rom mirroring; fixes Sammy Lightfoot [invertego]
- ColecoVision/MSX/SG-1000: Initialize VRAM to 0; fixes various games [invertego]
- Game Boy: Check window x-coord instead of only y-coord; improves the Acid2 test rom [Luke Usher]
- Game Boy: Only raise STAT interrupt when display is enabled; fixes Cool Hand [invertego]
- Game Boy: Implement HALT hardware bug [Meepster99]
- Game Boy: Fix relationship between LY and STAT interrupt; fixes Elite Soccer, Mouse Trap Hotel, Shantae [invertego]
- Game Boy: Only trigger STAT interrupts at the start of OAM search; fixes Mortal Kombat 3 [invertego]
- Game Boy Color: Fix HDMA5 bit.7 reads; improves a significant number of GBC games [invertego]
- Game Boy Advance: Simulate standard GBA instead of Game Boy Player; fixes GBA Video titles [Luke Usher]
- Mega Drive: Implement support for Sonic & Knuckles merged roms; fixes Sonic 2K, Sonic 3K [Luke Usher]
- Mega Drive: Implement support for SRAM/EEPROM when using the SEGA Mapper; fixes Demons of Asteborg [Luke Usher]
- Mega Drive: Default to 'accuracy' VDP; improves compatibility at the expense of performance [Luke Usher]
- Mega Drive: Optimize how often the emulator synchronises between components; offsets the cost of the previous change [Luke Usher]
- Nintendo 64: Maintain Parallel-RDP as a subtree; simplifies compilation [Luke Usher]
- SG-1000: Implement support for roms greater than 32KB [Luke Usher]
- SG-1000: Implement support for Taiwan Type-A/Type-B mappers; fixes unlicensed Taiwan releases [Luke Usher]
- SM83: Fix DAA instruction [Meepster99]
- TMS9918: Implement multicolor mode; fixes various SG-1000/ColecoVision games [invertego]
- TMS9918/Master System/MSX: Allow sprites to bleed off top/left screen edges [invertego]
- ares: Rename lucia to desktop-ui to better represent it's function [Luke Usher]
- mia: Improve N64 save-type database [jeltaqq]
- mia: Add support for UNF extension, alongside UNIF and NES [Shideravan]
- nall: Add macOS deployment target flags; fixes ares on macOS 10.14 [MerryMage]
- ruby: Give PulseAudio higher priority than ALSA on Linux Systems; ALSA was causing frame-rate issues [Luke Usher]
ares v122
ares v122 released
This release primarily provides improved Neo Geo Pocket/Neo Geo Pocket Color and Sega 32X emulation.
The entire Neo Geo Pocket/Color library is now thought to be playable, with minor graphical issues in four titles.
A small number of SEGA 32X games are now playable, although most still experience graphical and/or audio issues.
Changelog:
ColecoVision: Clear top bit of controller port reads; fixes Defender [invertego]
Neo Geo Pocket: Allow BIOS to handle the boot process [invertego]
Neo Geo Pocket: Copy SNK logo from BIOS during fast boot; fixes Metal Slug: 2nd Mission [invertego]
Neo Geo Pocket: Fix address used to test ram initialization [invertego]
Neo Geo Pocket: Initialize Neo Geo Pocket port 1 to zero; fixes Dynamite Slugger [invertego]
Neo Geo Pocket: Many improvements to 'fast boot' [invertego]
Neo Geo Pocket: Re-enable savint ram to disk on unload [invertego]
Sega 32X: Implement FM/Framebuffer access bit; fixes Spiderman [Luke Usher]
Sega 32X: Implement RV bit [Luke Usher]
Sega 32X: Optimise SH7604 recompiler min-cycles for 32X; fixes Knuckles Choatix & Virtua Fighter [remutro]
Sega 32X: PWM DREQ and timer are different things; fixes PWM audio in many games [Luke Usher]
Sega 32X: Used cached interpreter instead of recompiler [Luke Usher]
TMS9918: Fix sprite size emulation; fixes many graphical issues in ColecoVision/MSX/SG-1000 [invertego]
TMS9918: fix interrupt behavior [invertego]
hiro: Fix browser dialog filters on macOS [Luke Usher]
hiro: Force GTK3 to use X11 backend; fixes a crash under Wayland [thrimbor]
lucia: Disable fast boot by default [Luke Usher]
lucia: Support digital presses from analog inputs [invertego]
mia: Add workaround for underdumped Delta Warp rom [Luke Usher]
mia: Improve Nintendo 64 save chip database; fixes saving in some titles [sp1187]
nall: Enable LTO by default on non-debug builds [Luke Usher]
nall: Speed up recompiler codegen [Luke Usher]
sh2: Allow cores to determine an ideal minimum recompiler block size [Luke Usher]
sh2: Optimised code-gen for the interpreter [Luke Usher]
sh2: Recompiler should invalidate single blocks, not entire pools [Luke Usher]
tlc2900h: Fix immediate mask in BIT #,r; fixes Pocket Tennis [invertego]
z80: Correct the effect of IE on the next instruction; fixes audio drop-out in Neo Geo Pocket games [invertego]
ares v121a
ares v121a is a minor point release for v121.
This is identical to Near's final release of v121, with some additional patches to fix compilation on gcc (windows/linux) and macOS.
Update to ares v118 release.
I'm excited to launch ares v118 today, the first release featuring playable, full-speed Nintendo 64 emulation! The new Nintendo 64 emulation is made possible thanks to [Themaister] very graciously porting his Vulkan-based ParaLLEl-RDP graphics renderer to ares. With its default settings, it is nearly pixel-perfect to real hardware, and it optionally supports upscaling to 2x or 4x the original Nintendo 64 resolution, plus optional supersampling back down to the original resolution (for enhanced anti-aliasing) if desired. The Vulkan support requires an appropriate graphics card, and either Windows or Linux. At this time, Vulkan is not available for macOS nor the BSDs. Also new for the Nintendo 64 core in this release is Rumble Pak, Cartridge Pak, SRAM, EEPROM, and Flash save support. Note that for right now, the Rumble Pak will only be enabled for games which use internal saves (SRAM, EEPROM, and Flash.) That does not cover all Rumble Pak-capable games. The option to choose between Rumble Paks and Cartridge Paks will be added to a future release. For the PlayStation core, [Luke Usher] provided two rendering fixes that allow Final Fantasy VII and Tony Hawk's Pro Skater to be fully playable! Right now, approximately 33% of the Nintendo 64 library is fully playable, and about 67% of the PlayStation library is fully playable. Each core has only been under active development for about one month each, so they both have a long way to go. Please treat these early releases as tech samples, rather than finished emulation cores. Further, note that the Nintendo 64 and PlayStation cores employ cached interpreters. This is a middle-ground between the accuracy of interpreters and the performance of dynamic recompilers. As such, ares' system requirements will be a bit higher than traditional emulators for these systems. Presuming no background task interference or CPU throttling, generally speaking, a Ryzen 5 2600 or better CPU should get you to around ~120fps in the average case, and ~60fps in the worst case. The source code has also been released under the terms of the Creative Commons BY-NC-ND 4.0 license. [Themaister]: http://github.com/Themaister/ [Luke Usher]: https://twitter.com/LukeUsher1
Update to ares v117 release.
[No official changelog available for this version. -Ed.]
Update to ares v115 release.
[No official changelog available for this version. -Ed.]