the ares multi-system console emulation suite

Overview

ares logo

License: ISC

ares is a multi-system emulator that began development on October 14th, 2004. It is a descendent of higan and bsnes, and focuses on accuracy and preservation.

Official Releases

Official releases are available from the ares website.

Nightly Builds

Automated, untested builds of ares are available for Windows and macOS as a pre-release. Only the latest nightly build is kept.

Issues
  • Gamepad updates: creating more inputs and updating to a more consistent layout

    Gamepad updates: creating more inputs and updating to a more consistent layout

    This is part 1 of the updates I want to do and we're discussing them recently. We'll certainly discuss more this topic and I'm glad to help to improve the input system. But I'm very cautious in my first code commit here. In this first part, I'm just adding the missing input that is/will be needed for the controllers in systems already supported in Ares right now (but I'm also creating as a commented code right now the skeleton for the Sega Saturn control pad and Dual Shock controller for Playstation). I'm disassociating the default layout from the one of XBox 360 + C/Z/L1/R2/whatever, as we don't know what controller the user is using (or even if he's only using the keyboard) with buttons such XYAB or even Z and C (that aren't even in the XBox 360 controller) and even if the user is using a controller we don't are sure if the letter position is the same across all controller models. But XBox 360 users don't be afraid: I'm thinking of implementing a button to auto-associate the XInput compatible controller with a default layout, to be even easier for the emulator can be to just "get and play" as following the goal to be the most user-friendly as possible. EDIT: Now this layout is used internally only. As requested, the input system for the user sees doesn't contain a "global configurator that messes with everything" anymore.

    ~Also, is noteworthy to see that even the layout being thought as "universal as possible" there is a detailed description of each button name meaning, as a tooltip. It reads:~

    EDIT: removed.

    ~It is also worth mentioning that I tested it extensively and because of that I also decided to do a more conservative commit for now. And that's why Shoulder Buttons are still called "Shoulder-L1" instead of "Shoulder Left (Top)" as I would prefer, to say in truth (but would require a few more changes to how these strings are handled in this part of the code to not break anything).~

    EDIT: This part doesn't exist anymore. Was changed for an, even more, user-friendly approach. The "virtual gamepad" can now be fully transparent for the user. The tooltip now reads:

    The buttons you set for a system will be translated for another.
    eg.setting BAYX Super Famicom buttons will be translated respectively as Cross, Circle, Square and Triangle for Dual Shock controller.
    

    Thanks everyone for the feedback.

    opened by Shideravan 16
  • [NGPC] Unable to get correct colours.

    [NGPC] Unable to get correct colours.

    The BIOS intro looks correct, but the actual game does not. I have tried multiple variants on the BIOS (No Intro, MAME...), to no success. Fast Boot makes no difference. Any ideas on where I've messed up?

    BIOS: Bust-A-Move Pocket (USA) 2021-12-01 05-44-15

    Bust A Move Pocket Bust-A-Move Pocket (USA) 2021-12-01 05-44-20

    Neo Turf Masters Neo Turf Masters (World) (En,Ja) 2021-12-01 05-40-13

    opened by TheKins 11
  • gamepads conflicts

    gamepads conflicts

    Hello good afternoon.

    I would like to report: When configuring gamepads from different consoles, the settings conflicts, not being separate one setting for each console.

    Thank you.

    opened by SoloBackup 10
  • gamepads conflicts

    gamepads conflicts

    Hi! I would like to report: When configuring gamepads from different consoles, the settings conflicts, not being separate one setting for each console. Because of this, every time I start a game on a different system, I need to change the controls.

    In others, RetroArch allows you to set controls for each core and each game.

    Thanks.

    opened by nanitaro 8
  • [PCE] Second controller incorrectly duplicating first port configuration

    [PCE] Second controller incorrectly duplicating first port configuration

    Ares doesn't have second controller support for PCE games yet. Or that's what we expected. In fact, the second controller is incorrectly being mapped with the same buttons from Controller 1 port. That causes games such as Bomberman '93 to enter directly to 2 player match rather than the main menu, as when you press "run" it's in fact pressing the run button in both player 1 and 2 controllers. https://youtu.be/GAJoTl910hY

    I'm posting this issue here, so I don't forget it, but I can take a look at this issue later, after this PR which also make changes in controller mode files is merged (to avoid inconsistencies in my local files). There's is even a skeleton for multiplayer support for PC Engine (using multi-tap).

    opened by Shideravan 8
  • [Request] BSNES enhancement features in SNES driver

    [Request] BSNES enhancement features in SNES driver

    Would be certainly nice to integrate all the specific SNES improvements which has in bsnes, such:

    • HD Mode 7
    • Personalize how many frames beyond in run-ahead mode
    • Overclocking of each system/cartridge CPU
    • Audio improvements
    • Game enhancement
    • Cheat support
    • Widescreen support for modified games
    • Compatibility options
    • Game hotfixes

    I'm thinking even in port myself some these things directly from bsnes code. There is any kind of restriction for this?

    enhancement wontfix 
    opened by Shideravan 8
  • Option to individual controller setting (per system)

    Option to individual controller setting (per system)

    It's annoying every time when I choose a system to play (p.g colecovision that has some different button layout wich I like to put the numbers in the keyboard's num pad) and change the system (p.g. Nintendo 64) and all the buttons has changed. Would be nice to have both general controls but the system itself doesn't change the key from each system individually,

    enhancement 
    opened by Shideravan 8
  • Include ParaLLEl-RDP as a git subtree

    Include ParaLLEl-RDP as a git subtree

    ares' N64 core depends on https://github.com/Themaister/parallel-rdp-standalone for RDP emulation. Currently, ares includes a script to download the latest version of that code in the right place in ares' source tree, but now that ares itself is stored in git, we can do better.

    • git submodule is the official tool for putting git repos inside other git repos. The upside is that there is a standard "update all submodules" command people are already likely to know; the downside is that submodules aren't checked out by default and the failure modes of not-quite-right submodules can be confusing.
    • git subtree is an alternative tool. The upside is that the included repository's files are stored directly in the ares repo so that they can't get lost or misplaced; the downside is that there's no way to automatically update all subtrees.

    For example, higan uses git subtree for both the external libco repository, and for hunterk's shader repository. I put an update-subtrees.sh script in the root of the repository to make it easy to update subtrees in future, but since that's a project-specific convention it would need to be documented somewhere.

    Of course, we could also just keep the status quo, and require people to run the script to obtain ParaLLEl-RDP before building the N64 core.

    opened by Screwtapello 8
  • md: fix vblank bit toggling horizontal timing

    md: fix vblank bit toggling horizontal timing

    Currently, the vblank bit is turned on/off at the same time vcounter is incremented, which is a reasonable assumption, missing any real data on this.

    But it turns out this is responsible for the breakage of Overdrive 1. I did some tests and it looks like anything in the range >= 0xF0 (same line), or <= 0x80 (on next line) fixes those bugs. I decided to bind it to vedge(), which means that vblank bit now is triggered the same instant that VINT is raised, which also makes sense when you think of it.

    Updates #212

    opened by rasky 7
  • [MEGADRIVE] Characters in background with Clue (USA)...

    [MEGADRIVE] Characters in background with Clue (USA)...

    Emulator : Ares 1.26 Nightly build 2022-02-17 19:24:29 UTC Options : Default Game : Clue (USA) System : Megadrive / Genesis

    Characters in background.

    image

    core-md 
    opened by BenjaminSiskoo 7
  • [Feature Request] CHD (or full Zip) support

    [Feature Request] CHD (or full Zip) support

    Some of the consoles can boot from zipped files. The CD-based ones can't (and I wish there was some clarification somewhere on what can boot from Zip and what can't). Would like to see CHD support as that's the best way to store these massive sets or even zip support is something.

    opened by ghost-wolves 7
  • [MD] Striker: Incorrect whistle sound effect

    [MD] Striker: Incorrect whistle sound effect

    The whistle at the beginning of the match sounds incorrect.

    Real hardware https://youtu.be/D-HfGgy5D9o

    Kega doesn't have this bug.

    Striker (Europe) SHA1 9917c35a263cc9bd922d55bf59d01bc2733b4e24

    Tested on ares nightly 2022-06-19

    PS: If you are interested, MiSTer MD core also has some issue with the whistle. This report is inspired by that bug report.

    core-md 
    opened by BiZkViT96 0
  • Where is the configuration file stored?

    Where is the configuration file stored?

    I'm trying to move my old higan configuration to ares, but I can't find the configuration file on .config/ares. I found something in .local, but that is not where configuration files should reside according to the userSettings definition. I saw that nowhere is that function used and the userData function is used to create a new directory in the locate function. Is this the supposed directory? Can I replace .local/share/ares/settings.bml with .config/higan/settings.bml ?

    opened by braiam 1
  • N64: fix SWL/SWR behavior with respect bus accesses

    N64: fix SWL/SWR behavior with respect bus accesses

    SWL/SWR do a single bus access because SysAD supports 24-bit memory writes: https://n64brew.dev/wiki/SysAD_Interface

    Ares emulates them doing multiple 8/16/32 bit accesses. This does not matter most of the times, but it does matter for full accuracy when using SWL/SWR to write RCP address (such as hardware registers or PI bus), given that RCP ignores the access size in those cases causing funny bugs. We do emulate this behavior correctly for LW/SW (see Memory::IO), but this in turns requires the CPU to do the correct bus access, which does not happen for SWL/SWR yet.

    opened by rasky 0
  • [N64] GT 64- Championship Edition does not boot

    [N64] GT 64- Championship Edition does not boot

    As first noted by remutro, all three regions of GT 64- Championship Edition (City-Tour GP - Zennihon GT Senshuken in Japan) fail to boot. Bisected to commit 0084865 (decreased SI DMA delay).

    opened by kev4cards 0
Releases(v128)
  • v128(May 17, 2022)

    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]
    Source code(tar.gz)
    Source code(zip)
    ares-macos.zip(4.54 MB)
    ares-windows.zip(6.12 MB)
  • v127(Mar 3, 2022)

    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]
    Source code(tar.gz)
    Source code(zip)
    ares-macos.zip(4.26 MB)
    ares-windows.zip(6.01 MB)
  • v126(Nov 28, 2021)

    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]
    Source code(tar.gz)
    Source code(zip)
    ares-macos.zip(3.96 MB)
    ares-windows.zip(5.94 MB)
  • v125.1(Nov 10, 2021)

    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]
    Source code(tar.gz)
    Source code(zip)
    ares-macos.zip(3.97 MB)
    ares-windows.zip(5.90 MB)
  • v125(Nov 9, 2021)

    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]
    Source code(tar.gz)
    Source code(zip)
    ares-macos.zip(3.97 MB)
    ares-windows.zip(5.90 MB)
  • v124(Oct 15, 2021)

    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]
    Source code(tar.gz)
    Source code(zip)
    ares-macos.zip(3.95 MB)
    ares-windows.zip(4.79 MB)
  • v123(Aug 22, 2021)

    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]
    Source code(tar.gz)
    Source code(zip)
    ares-macos.zip(4.03 MB)
    ares-windows.zip(4.41 MB)
  • v122(Aug 2, 2021)

    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]

    Source code(tar.gz)
    Source code(zip)
    ares-macos.zip(4.01 MB)
    ares-windows.zip(4.40 MB)
  • v121a(Jul 6, 2021)

  • nightly(Jun 22, 2022)

Threat Emulation and Red Teaming Framework, The Hacking Software for normal people.

The Remote Hacker Probe is a Threat Emulation and Red Teaming Framework built to be easy to use. The Remote Hacker Probe is Feature Rich! Including, K

QuantumCored 153 Jun 23, 2022
Sloth 🦥 is a coverage guided fuzzing framework for fuzzing Android Native libraries that makes use of libFuzzer and QEMU user-mode emulation

Sloth ?? Sloth is a fuzzing setup that makes use of libFuzzer and QEMU’s user-mode emulation (qemu/linux-user) on x86_64/aarch64 host to emulate aarch

Chaithu 72 Jun 20, 2022
Emulation of classic VA synths of the late 90s/2000s that featured the Motorola 56300 family DSP

Gearmulator Emulation of classic VA synths of the late 90s/2000s that used the Motorola 56300 family DSP This project aims at emulating various musica

null 126 Jun 24, 2022
Bobby Cooke 266 Jun 20, 2022
A simple CHIP-8 emulator made for the purpose of studying computer organization, mainly how emulation does work.

CHIP8EMU A simple CHIP-8 emulator made for the purpose of studying computer organization, mainly how emulation does work. It was written in just a few

Patrick Cardoso 1 Nov 9, 2021
The Cycle: Frontier server emulation

Prospect Also known as "The Cycle: Frontier". This repository is just something I work on when bored, do not expect much at this stage. Features Conne

AeonLucid 13 Jun 9, 2022
Remote hacker probe - Threat Emulation and Red Teaming Framework, The Hacking Software for normal people.

The Remote Hacker Probe is a Threat Emulation and Red Teaming Framework built to be easy to use. The Remote Hacker Probe is Feature Rich! Including, K

Fahad 153 Jun 23, 2022
Macos-arm64-emulation - A guide for emulating macOS arm64e on an x86-based host.

macos-arm64-emulation Use the following guide to download and configure all of the necessary tools and files for emulating the macOS arm64e kernel. Th

Cylance 216 Jun 23, 2022
Multi-dimensional dynamically distorted staggered multi-bandpass LV2 plugin

B.Angr A multi-dimensional dynamicly distorted staggered multi-bandpass LV2 plugin, for extreme soundmangling. Based on Airwindows XRegion. Key featur

null 18 Apr 17, 2022
Unicorn is a lightweight, multi-platform, multi-architecture CPU emulator framework, based on QEMU.

Unicorn Engine Unicorn is a lightweight, multi-platform, multi-architecture CPU emulator framework, based on QEMU. Unicorn offers some unparalleled fe

lazymio 1 Nov 7, 2021
Test suite for evaluating C code on 42 Basecamp

Joãonette Test suite based on Moulinette, made by "Iniciativa João" ⛺️ Setup Clone this repo ( I suggest cloning to the root and calling it joaonette

Lucas Kuhn 12 Apr 19, 2022
Violent Fungus is a command and control (C2) software suite, providing red teams post-exploitation persistence and other juicy stuff.

Violent Fungus is a command and control (C2) software suite, providing red teams post-exploitation persistence and other juicy stuff.

Chris Humphries 31 May 31, 2022
A combined suite of utilities for exporting images to retro formats.

ImageTools A combined suite of utilities for exporting images to retro formats. It was developed for use on Windows but might compile on other systems

David Walters 4 Dec 6, 2021
AWS Ambit Scenario Designer for Unreal Engine 4 (Ambit) is a suite of tools to streamline content creation at scale for autonomous vehicle and robotics simulation applications.

AWS Ambit Scenario Designer for Unreal Engine 4 Welcome to AWS Ambit Scenario Designer for Unreal Engine 4 (Ambit), a suite of tools to streamline 3D

AWS Samples 43 Jun 20, 2022
Suite of C++ libraries for radio astronomy data processing

Casacore A suite of C++ libraries for radio astronomy data processing. Installation Debian / Ubuntu Casacore is now part of Debian and Ubuntu, use apt

null 93 Jun 16, 2022
Blender is the free and open source 3D creation suite

Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.

Blender 5.9k Jun 27, 2022
The official SuiteSparse library: a suite of sparse matrix algorithms authored or co-authored by Tim Davis, Texas A&M University

SuiteSparse: A Suite of Sparse matrix packages at http://suitesparse.com May 17, 2021. SuiteSparse VERSION 5.10.1 Now includes GraphBLAS, SLIP_LU, and

Tim Davis 602 Jun 21, 2022
The FLIP Fluids addon is a tool that helps you set up, run, and render high quality liquid fluid effects all within Blender, the free and open source 3D creation suite.

FLIP Fluids The FLIP Fluids addon is a tool that helps you set up, run, and render liquid simulation effects. Our custom built fluid engine is based a

Ryan Guy 1.3k Jun 21, 2022
un programma in console scritto in c++ che fa parodia a ordissimo OS // a program written in c++ that is a parody of ordissimo OS

un programma in console scritto in c++ che fa parodia a ordissimo OS // a program written in c++ that is a parody of ordissimo OS -what is this? -its

alex 5 Oct 31, 2021