Skip to content

Releases: ares-emulator/ares

ares v134

22 Nov 11:25
Compare
Choose a tag to compare

This is ares v134, released on 2023-11-22.

ares v133

21 Jul 08:52
Compare
Choose a tag to compare

This is ares v133, released on 2023-07-21.

ares v132

08 Mar 11:08
Compare
Choose a tag to compare

This is ares v132, released on 2023-03-08.

ares v131

27 Dec 20:46
Compare
Choose a tag to compare

This is ares v131, released on 2022-12-27.

ares v130.1

03 Oct 18:53
Compare
Choose a tag to compare

This is ares v130.1, released on 2022-10-03.

ares v130

30 Sep 16:24
Compare
Choose a tag to compare

This is ares v130, released on 2022-09-30.

ares v129

13 Jul 17:23
Compare
Choose a tag to compare

This is ares v129, released on 2022-07-13.

ares v128

17 May 19:02
Compare
Choose a tag to compare

This is ares v128, released on 2022-05-17.

Ares v128 has now been released, notable changes include:

Improved Nintendo 64 Emulation

Rasky has been working hard on improving the n64 emulation; making sure we pass as many test cases in the new n64-systemtest rom as possible; after much hard work, we now pass almost every test; more than any other currently existing Nintendo 64 emulator.

Test Results for n64-systemtest as of 08/05/2022

Finished in 0.76s. Tests: 563. Failed: 3. Success rate: 99%. Skipped 5 tests.

Although compatibility isn't as high as some other emulators, most games do work and I believe it's safe to say that ares is the most accurate Nintendo 64 emulator at the time of publication; based on these test results as well as gameplay.

Improved MSX Emulation

With support for the MSX keyboard (finally!), and many more rom mappers, we have a dramatic increase in compatibility with MSX1 software. Support for Text Mode was also implemented, meaning text-based games (and MSX-Basic) are now able to be enjoyed. Note that we now require an MSX1 bios to be provided; previously we utilised C-BIOS, but due to technical limitations, this was unable to run much of the game library, so we feel like it is best to require a proper bios.

Note that MSX2 support is still barebones; and will still use C-BIOS for the time being; the current MSX2 emulation is so preliminary that the 'real' bios images do not even boot.

Portable Mode

A much requested feature: on Windows, ares is now 'portable' by default; storing it's settings and metadata in the application directory, rather than AppData. An existing installation can be converted to a portable one by copying the settings.bml and support folders from AppData\ares.

CHD Support

Another much requested feature: The few CD-ROM based systems that ares supports are now able to load CHD compressed disc images. There is currently a limitation where CHDs created from .bin/cue work, but CHDs created from .iso files do not; this will be addressed in future but is considered low-priority as ares was never able to load .iso files.

Other

There have been many other changes/improvements, to the desktop-ui and also to the GameBoy, MegaDrive, SNES and PC-Engine cores. See the changelog for further details.

Changelog:

desktop-ui

  • add hotkey to toggle fast forward [LukeUsher]
  • add support for using Supergrafx and CD together [LukeUsher]
  • default filter/shader to "None" rather than "Blur" [LukeUsher]
  • ensure ares is 'portable' on Windows [LukeUsher]
  • fix an issue where System directories were created incorrectly [LukeUsher]
  • remap all inputs based on physical controller layouts [LukeUsher]
  • implement keyboard capture for msx [LukeUsher]

gb

  • tweak display timing; fixes dmg-acid2 and cgb-acid2 [LukeUsher]

gba

  • slightly reduce red tint, to bring the display closer to my GBA SP [LukeUsher]

md

  • add missing initialization during power-on [invertego]
  • readjust cpu sync after recent changes (Kolibri fix) [TascoDLX]
  • reimplement refresh timings [TascoDLX]
  • vdp dma transfer is delayed after bus is acquired [TascoDLX]
  • vdp timing tweaks for accuracy [TascoDLX]
  • vdp vscroll bug implemented [TascoDLX]

msx

  • connect/fix up keyboard emulation [LukeUsher]
  • fix a number of memory layout issues [LukeUsher]
  • fix linear cartridge rom mapping [LukeUsher]
  • improve rom type detection and add more board types [LukeUsher]
  • require a proper bios rom for msx1 [LukeUsher]

n64

  • activate address errors by default [rasky]
  • add address error for invalid 64bit address in 32bit mode [rasky]
  • add missing file for mame RDP SSE2 implementation [rasky]
  • add separate CIC 7102 detection [bigbass1997]
  • add support for homebrew-specific special header flag [rasky]
  • fix (again) TLB logic in case of invalid TLBs [rasky]
  • fix 64-bit pc calculation in J opcode [rasky]
  • fix a few memory access opcodes that were using a 32-bit address [rasky]
  • fix behavior of conflicting bits in writes to SP_STATUS [rasky]
  • fix BGEZAL/BGEZALL opcodes when testing RA [rasky]
  • fix cache to use physical addresses [rasky]
  • fix controller input after PIF refactoring [rasky]
  • fix COP0 config initial status [rasky]
  • fix cop0 LL write mask [rasky]
  • fix CPU core to correctly handle 64-bit PC [rasky]
  • fix Dual accesses on MMIO regs [rasky]
  • fix exception kind in case of TLB invalid page and with nonmatching asid [rasky]
  • fix handling of invalid pagemasks [rasky]
  • fix JALR when jumping to RA [rasky]
  • fix LL / SC / LLD / SCD opcodes [rasky]
  • fix masking of COP0 context / xcontext [rasky]
  • fix RSP BGEZAL/BLTZAL when RA is being tested [rasky]
  • fix RSP DMA wraparound [rasky]
  • fix RSP DMEM/IMEM accesses with all access sizes [rasky]
  • fix RSP LTV opcode in its corner cases [rasky]
  • Fix RSP MTC2 and LFV opcodes [rasky]
  • fix RSP PC to stay within 12 bits in all cases [rasky]
  • fix SIGILL at startup when SSE4.2 is not supported [rasky]
  • fix TLB logic for non-global entries [rasky]
  • fix TLB random register when wired > 31 [rasky]
  • implement buggy byte/half reads from cartridge space [rasky]
  • implement exceptions in non-taken delay slots [rasky]
  • implement LWU opcode in RSP [rasky]
  • implement proper PI bus writes with IO busy bit [rasky]
  • implement undocumented broken RSP opcodes [rasky]
  • improve address exceptions with correct COP0 status [rasky]
  • improve emulation of vector load opcodes in side cases [rasky]
  • improve TLB register masking [rasky]
  • increase a little the PI DMA timing. [rasky]
  • internal mask of physicalAddress register in TLB entries [rasky]
  • make sure TLB entries are correctly initialized at power [rasky]
  • map domain 1 address 3 zone into main memory map [rasky]
  • refactor PIF chip into its own class [rasky]
  • implement correct behaviours of jumps within delay slots [rasky]
  • small accuracy tweak to the RSP semaphore register [rasky]
  • Change inner dead-zone size and geometry [kev4cards]

pce

  • initialise bram for cd-rom system [LukeUsher]

sfc

  • Add database entry for the "Super FX voxel demo" to specify a RAM size of 64k instead of 32k [jbo-85]
  • Support ROM/RAM addressing for Super FX ROMs that are not a power of 2 [jbo-85]
  • fix a hang when loading Satallaview content [LukeUsher]
  • pad bsx flash to minimum size of a memory cart [LukeUsher]

m68000

  • adjust interrupt/exception timing [TascoDLX]
  • fixed group 2 exception prefetch (CHK, DIV by zero) [TascoDLX]
  • omit illegal addressing modes for CMPA & TST [TascoDLX]

tms9918

  • implement text mode [LukeUsher]

hiro

  • fix menubar visibility with gtk3 [AmatCoder]

nall

  • determine desktop path based on environment [LukeUsher]
  • handle CHD paths with non-ASCII chars on Windows [invertego]
  • optimize priority_queue remove function [rasky]
  • prevent chd memory leaks + don't allow unsupported track types [LukeUsher]
  • remove hardcoding of lto=true [LukeUsher]

mia

  • support for loading CHD compressed CD-ROM images [LukeUsher]
  • update out of date resources [invertego]
  • update sfc board database & heuristics [LukeUsher]

ruby

  • pulseaudio shouldn't block for events [AmatCoder]

other

  • Add top-level Makefile [rasky]
  • fix building from Windows command prompt [invertego]
  • fix clean targets on Windows [invertego]
  • fix zlib include path [invertego]
  • codesign binary after build on macOS [rasky]

ares v127

03 Mar 11:37
Compare
Choose a tag to compare

ares v127 brings significant improvements to Mega Drive and Nintendo 64
emulation, as well as improvements to NES / Famicom and SNES / Super Famicom.

Other than the usual emulation improvements, there have been the following notable
changes:

Apple Silicon Support

ares v127 fixes the recompiler for aarch64 architecture, meaning that it is now
possible to create Apple Silicon/M1 native builds, without relying on Rosetta
and without losing support for the high performance JIT recompilers.

In order to be Apple Silicon Native, it is currently required to compile ares
from source code as automated builds have not yet been configured, but users
who wish to do so will no longer lose functionality or suffer poor performance
as a result.

MAME RDP

ares's Nintendo 64 core uses paraLLEl-RDP by default; this brings fast and
accurate RDP emulation as long as Vulkan is present on the users machine; this
meant that Nintendo 64 emulation was completely broken for all configurations
without Vulkan support, including macOS.

ares v127 adds support for MAME's RDP implementation as a fallback, allowing
Nintendo 64 emulation to be used when Vulkan is not present. This is handled
automatically, however, a new option has been added to video settings to allow
Vulkan support to be toggled, giving all users the ability to test the MAME
RDP, if they wish to do so.

Although MAME RDP is now an option, paraLLEl-RDP is still the recommended
choice, for both performance and accuracy.

Pixel Accuracy Mode

ares has contains two implementations of some of our emulated hardware; one
optimised for performance, and another optimised for accuracy.
Historically, the choice of which path to use has never been exposed to the
user; higan always used the 'accurate' profiles, with ares always opting for
the 'performance' profiles; any user wishing to change this would be required
to compile ares themselves from source.

As of ares v127, we now provide a new option in the emulator settings: "Pixel
Accuracy"; when this is enabled, any emulator core that supports a pixel
accurate mode will use it.

For 99% of games, the default fast profiles will be sufficient, but enabling
"Pixel Accuracy" allows games that require mid-scanline effects, such as the
infamous "Air Strike Patrol" to function properly.

The following systems are currently support the Pixel Accuracy setting:

  • NEC - PC-Engine / TurboGrafx
  • Nintendo - Super Famicom / SNES

Changelog:

  • desktop-ui: hook up pc-engine 6-button pads to virtual pads [Luke Usher]
  • desktop-ui: implement frame advance [Luke Usher]
  • fc: add bus conflicts to cnrom [encoded-byte]
  • fc: check for ram on mmc1 [encoded-byte]
  • fc: check if ram exists on mmc3 [encoded-byte]
  • fc: clear oam address on each scanline [encoded-byte]
  • fc: improve mmc3 irq behavior [encoded-byte]
  • fc: improve ppu skipped clock timing [encoded-byte]
  • fc: use hkrom for mmc6 [encoded-byte]
  • m68000: allow recovery from zero divide [TascoDLX]
  • m68000: reimplement DBcc instruction with correct timing[TascoDLX]
  • md: A few fixes to SRAM save game [rasky]
  • md: correct overscan / output when display is off [TascoDLX]
  • md: correct reads of CRAM and VSRAM [rasky]
  • md: detect region 'K' as NTSC-J [invertego]
  • md: fix APU port in [rasky]
  • md: fix debug register sprite masking [rasky]
  • md: fix high bits in control port read [rasky]
  • md: fix misaligned reads from VRAM [rasky]
  • md: fix register masked write in mode5 [rasky]
  • md: fix vblank bit toggling horizontal timing [rasky]
  • md: fix VSRAM out of bound accesses [rasky]
  • md: ignore erroneous device string used by Codemasters [invertego]
  • md: implement undocumented VDP VRAM 8-bit reading mode [rasky]
  • md: persist VDP state on reset [invertego]
  • md: restore vdp free slot lost to refresh [TascoDLX]
  • mia: Correct save type for Premier Manager 64 (N64) [sp1187]
  • mia: Correct save type for Transformers: Beast Wars Transmetals (N64) [sp1187]
  • mia: correct type for pak attribute [encoded-byte]
  • mia: fix 32x sram [Luke Usher]
  • mia: properly pass MD eeprom details to ares [Luke Usher]
  • mia: updated famicom database [encoded-byte]
  • mos6502: add illegal nops [encoded-byte]
  • ms: correct overscan inc. dynamic screen resizing [TascoDLX]
  • n64: add MAME RDP as a fallback for parallel-RDP [invertego]
  • n64: allow vulkan to be disabled [Luke Usher]
  • n64: change PI DMA to use 16 bit fetches [CasualPokePlayer]
  • n64: fix mult/div opcode timings [rasky]
  • n64: fix RSP halt condition to be more accurate [rasky]
  • n64: fix several RDP regressions [invertego]
  • n64: fix small bug in VMACQ [rasky]
  • n64: fix SRA/SRAV opcodes [rasky]
  • n64: fix vulkan detection [Luke Usher]
  • n64: improve rsp recompiler pool allocation [invertego]
  • n64: swap RSP/RDP order [CasualPokePlayer]
  • n64: templatize rsp vpu [invertego]
  • n64: vulkan tweaks [Luke Usher]
  • nall: fix many compilation warnings on macOS [Luke Usher]
  • nall: fix page protection on Apple silicon [invertego]
  • nall: rewrite recompiler for machine-independence using sljit [invertego]
  • pce: runtime pixel accurate VDP setting [invertego]
  • sfc: fix horizontal off-screen test for sprites [jbo-85]
  • sfc: fix missing sprite tile on Super Conflict title screen [jbo-85]
  • sfc: fix missing sprites in Jurassic Park that are partly offscreen [jbo-85]
  • sfc: runtime pixel accurate PPU setting [invertego]
  • sh2: move registers into POD struct [invertego]

ares v126

28 Nov 08:16
Compare
Choose a tag to compare

ares v126 brings even more improvements to the NES/Famicom emulation by adding support for many more rom mappers.
Compatibility for MSX1/MSX2 has also improved as a result of adding heuristics for better mapper detection.

An issue that prevented Windows users from mapping inputs in v125.1 has also been fixed.

Changelog:

  • fc: support for namco 175/340 boards [encoded-byte]
  • fc: support for namco 118 board [encoded-byte]
  • fc: support for Color Dreams board [sp1187]
  • fc: support for bandai 74161 boards [encoded-byte]
  • fc: split bandai fcg / lz93d50 boards [encoded-byte]
  • fc: Support for Action 52 board [sp1187]
  • fc: support for bandai lz93d50 variant [encoded-byte]
  • fc: support for unrom variants [encoded-byte]
  • fc: support for sxrom boards with mmc1a [encoded-byte]
  • fc: support for cnrom with security [encoded-byte]
  • fc: support txrom variants [encoded-byte]
  • fc: support for namco 163 board (no sound) [encoded-byte]
  • fc: attach sunsoft 4 + ext rom [encoded-byte]
  • fc: support for cprom board [encoded-byte]
  • fc: support for bandai karaoke board [encoded-byte]
  • fc: fix saving on bandai lz93d50 + m24c02 [encoded-byte]
  • fc: support for bandai oeka board [encoded-byte]
  • fc: partial support for bandai datach [encoded-byte]
  • msx: add heuristics for rom type detection [LukeUsher]
  • msx: msx: use the slot layout and memory expected by cbios [LukeUsher]
  • component: fix eeprom m24c mode selection [encoded-byte]
  • hiro: monitor activate messages for window focus [invertego]
  • mia: updated fc database [encoded-byte]