ares

Version
143
Mise à jour
Formule Homebrew
brew install --cask ares

Parti de Bsnes et Higan développé par feu Near (se dénommant précédement Byuu), Ares est un émulateur multi-machines repris par Luke Usher et d'autres permettant d'émuler un certains nombres de machines comme la NES, Super Nintendo, N64, Game Boy, Game Boy Advance, GameGear, Master Sytem, Mega Drive (32X et CD), PC-Engine, Playstation, NeoGeo (Pocket, AES et MVS), MSX 1 et 2, Colecovision et Wonderswan. Des builds automatiques sont disponibles sur le GitHub.

Menu dans Ares

Changelog

Changelog

143

While this is an unusually quick release cycle, there was an issue that unfortunately made it into the last release that we feel needed a priority fix: This version fixes a regression that caused Super Game Boy, and other add-on carts for the Super Famicom/SNES to not load properly.

Important notes:

  • Distributors: The legacy build system is now gone, this release can only be compiled using CMake
  • MacOS: The minimum macOS system requirements have increased to 10.15 (Catalina)
  • Game Boy: The save data path for "Game Boy Color" has changed: existing users using a custom save game path will have to manually move their saves from "Game Boy Color" to "Game Boy". Users using the default "Save alongside rom files" will not have to take any action.

Since v142, 8 contributors have created 42 commits to the ares codebase.

As always, if you wish to see the full changelog in a per-commit format along with their authors, you can do so on GitHub here.

Nintendo - Game Boy / Game Boy Color

  • Use "Game Boy" save path for both GB and GBC, fixing using the same rom file on both GB and GBC hardware without losing save-data between them, and fixing Pokemon Stadium when loading a .gbc rom (the Transfer Pak only used the GB path)

Nintendo - Game Boy Advance

  • Improve timings when running multiple DMA channels at once.
  • Fix a timing bug when accessing the cartridge backup region.

Nintendo - Nintendo 64 / 64DD

  • Fix Joybus RTC read/write status byte
  • Don't report interrupt exceptions to GDB, improving performance while debugging.

Sega - Mega Drive / CD / 32X

  • 32X: Fix a timing issue that could cause some operations to update the ares internal timers twice.
  • 32X: Fix an issue where audio would fail to work correctly after restoring a saved state.
  • 32X: Fix layer blending when the MD VDP is in H32 mode.
  • 32X: Proper 32X region header processing for licensed games.
  • 32X: Fix SH2 framebuffer mirroring.
  • 32X: Improve emulation of FEN/PEN flags.
  • 32X: Improve emulation of 'FM' bit and relate stalls.
  • 32X: VDP register latches have been implemented, but may still be imperfect.
  • 32X: Implement VDP auto fill timing.

Other

Build

  • Add librashader headers to the source tree under thirdparty/librashader/include/, so that remotely fetched resources are no longer required to build ares on Linux.

User Interface

  • Fix an issue where saved games would be placed in incorrect paths if a custom Saves path was set on macOS.

142

Since v141, 18 contributors have created 107 commits to the ares codebase.

Along with various improvements to emulator cores and the ares application itself, v142 adds support for a new system: The SETA Aleck64 Arcade board.

v142 also introduces a new CMake-based build system that improves compatibility with modern toolchains and IDEs, and simplifies the ares build process for new developers.

As always, if you wish to see the full changelog in a per-commit format along with their authors, you can do so on GitHub here.

ARM7TDMI (Game Boy Advance CPU, ST018 Super Famicom coprocessor)

  • IRQ timing improvements
  • Lock bus during SWP instruction
  • Implemented an undocumented encoding for bx instructions
  • Write back upper 32 bits of product after lower 32 bits during multiply long instructions
  • Add instruction test harness

Hitachi SH7604 (32X CPU)

  • Improve performance by refactoring timer implementations to be loopless
  • Fix an issue where instruction tracing would not work when using the recompiler

Motorola 68000 (Mega Drive CPU, Neo Geo)

  • Add instruction test harness
  • Fix program counter in privilege violation exception stack frame
  • Fix CHK instruction timing and flags

Yamaha YM2612 (Mega Drive FM Synthesis)

  • Improve cycle update order, fixing issues with feedback
  • Fixed an issue where envelope update would erroneously happen twice in some situations
  • Fixed LFO behavior to apply proper attenuation when disabled
  • Improved accuracy of rate scaling calculations

These updates have fixed all currently known audio issues with Mega Drive games.

Arcade

  • Introduced support for the SETA Aleck64 arcade board, supporting all Aleck64 titles from the mame0273 romset, except for Magical Tetris Challenge, as this game uses an undocumented additional video chip for the playfield layer.
  • Update rom database to match MAME 0.273 (also impacts Neo Geo AES)

NEC - PC Engine / TurboGrafx / SuperGrafx / CD

  • Improvements to performance with no impact on accuracy/compatibility.

Nintendo - NES / Famicom / Famicom Disk System

  • Implement PPU rendering glitches caused by open bus behaviour (PPU scroll glitch)
  • Fix an issue where writes to FDS disks would not always be persisted.

Nintendo - Game Boy Advance

  • Halt prefetcher when full
  • Improved open bus emulation
  • Improved timings for pixel blending and background rendering
  • Stall CPU when accessing memory regions that are being concurrently accessed by PPU

Nintendo - Nintendo 64 / 64DD

  • Fix a typo in ISViewer debug emulation that prevented roms sized between 0x3f0’0000 and 0x3ff’0000 from working properly.
  • Fix an issue where attaching GDB to debug a Nintendo 64 ROM could trigger a MIPS CPU exception.
  • Improve VI timing to properly handle non-standard display modes, including PAL60.
  • Fix VI interrupts in interlaced mode to happen on the exact same scanline as real hardware, including with known hardware bugs.
  • Advance RSP DMA during RSP execution, preventing DMA races in long-running code blocks. (Fixes Tarzan)
  • Correctly implement invalid SPECIAL opcodes in the RSP so that they match hardware behaviour.
  • Fix signed integer multiplication and division when the input operands are not sign-extended 32-bit values.

Sega - Mega Drive / CD / 32X

  • 32X: Make PWM timer interrupt interval read-only from the MD side
  • 32X: Improve support for PWM at non-standard sample rates
  • 32X: Add a DC filter to PW to reduce clicks/pops
  • 32X: Improve accesses to 32X IO from the MD side (Fixes missing music in Brutal + stuttering in Night Trap)
  • 32X: Force PAL region when (PAL) or (Europe) is in a rom filename, a fallback to fix games with invalid headers.
  • 32X: Fix a typo preventing the right PWM audio channel from playing.
  • Implement CRAM bus contention (CRAM dots).
  • Improve FIFO emulation allowing VDPFIFOTesting rom to pass.
  • Fix remaining (minor) issues running both Titan Overdrive demos.
  • Fix an issue where an edge case in window behavior in H32 mode was handled incorrectly (fixes flickering line in International Superstar Soccer Deluxe).
  • Fix an issue causing a flickering line in Sonic 2’s VS Mode.
  • Various fixes to DMA timing, fixing test cases in the dma_speed_test rom.
  • Add support for the unusual rom mapping used by QuackShot Starring Donald Duck (World) (Rev A)

Other

Build System

  • Add support for building with CMake. The legacy makefile build system will be removed before v143. Distributors should update their workflow accordingly.

User Interface

  • Add support for searching the game list for Arcade cores.
  • Fix an issue that would cause improper framebuffer scaling in rendering for the Super Famicom and Mega Drive cores.
  • Adjust the “overscan” option to crop strictly to the “active frame” area that the emulated system renders game content onto, rather than the area one might see using typical contemporary hardware (Famicom, Super Famicom, SG-1000, Master System, ColecoVision, My Vision, MSX).
  • Fix an issue that could cause stuttering with default SDL audio settings.
  • Improve error messages when loading games and systems.
  • Make “Type” column visible by default in firmware window
  • Fix an issue with repeated key inputs in the memory editor on Windows.
  • Add an interface for DIP switches for cores that support them.
  • (macOS) Update minimum system requirement to 10.13.
  • (macOS) Use Metal as the default video driver.
  • (macOS) Fix an issue causing ares to not remember the user’s “Force sRGB” setting.
  • (macOS) Add support for the memory editor
  • Various changes to more reliably locate database files and shaders on Linux.

Dependencies

  • Update SDL to version 2.30.8
  • Update librashader to version 0.5.1
  • Update MoltenVK to version 1.2.11
  • Update paraLLEl-RDP to revision 1cecd04
  • Update slang-shaders 7e2975e to revision 7e2975e

141

Since v140, 13 contributors have created 52 commits to the ares codebase.

As always, if you wish to see the full changelog in a per-commit format along with their authors, you can do so on GitHub here.

Systems

Nintendo - SNES / Super Famicom

  • Fix detection of the Sufami Turbo base cartridge (Avoiding serial conflict with Sailor Moon SuperS - Fuwafuwa Panic).
  • Fix PowerFest '94 and Campus Challenge '92.
  • Add support for games with 256KB of SRAM (Notably used in rom hacks, but these hacks also work on real hardware).
  • Add support for the NTT Data Keypad
  • Fix SA-1 DMA to BWRAM banks 0x41 and above.

Nintendo - Game Boy Advance

  • Improve stop mode emulation, ensuring it only exits once the requested input is registered.
  • Improve interrupt timings (latch IE and IF for 1 cycle).
  • Add latches to DISPCNT background enable, object enable and force blank; these now correctly take effect after 3 scanlines.
  • Improve SIO register handling.
  • Fix an off-by-one error with BG mosaic handling.
  • Fix an oversight in OBJ mosaic at x=0. Improve OBJ timing: OBJs are now correctly rendered one scanline in advance, and OBJ PRAM access timings are closer to hardware.
  • Add a 2-cycle synchronizer and improve halted CPU timings
  • Selectively synchronize CPU and APU, allowing for the removal of the compile time 'PERFORMANCE' profile. (Greater accuracy in Release builds with no performance downsides).
  • Small improvements to PPU timing.
  • Added support for the Pixel Accuracy toggle; significant performance increase when pixel accuracy is disabled.

Nintendo - Nintendo 64

  • Remove the 'devertualizeFast' performance optimisation from code block lookups: this was proven to compromise correctness/accuracy.
  • Refactor devirtualize to return additional context for memory access, reducing code duplication in-memory operations.
  • Use JIT only when running code from i-cache.
  • Add support for 40 Winks (Aftermarket).
  • Add support for Xeno Crisis (World) (Aftermarket)
  • Allow for Pak swapping on Controller Port 1 (You can now change between Controller Pak/Transfer Pak/Rumble Pack at runtime).
  • Fix instruction trace debugging when using the recompiler.
  • Add support for multi-byte writes to the GDB debugger.
  • Use different GDB signals for the various exception types.
  • Allow arbitrary and possibly unaligned writes to RDRAM through GDB.
  • Add unusual warning when software uses CACHE on uncached addresses
  • Refactor JIT to remove an extra function call (instructionEpilogue) per instruction.

Sega - Mega Drive / Genesis / 32X / CD

  • Synchronize components more regularly when emulating 32X; this fixes a regression that caused 'Knuckles Chaotix' to be broken in ares v140.
  • Add an option to enable the TMSS "Produced by or under license from..." screen.

Other

  • Stage resources into the output directory on Linux; allowing running self-compiled builds without running 'make install' first.
  • Address some possible uses of uninitialized variables.
  • Enable the use of loading higan-style rom folders when using the command line
  • Update librashader integration for librashader ABI 2

MacOS fixes

  • Display errors from the shader loader in metal, easing debugging of librashader.
  • Add bounds checking for table view context menus; fixes a crash when right-clicking beyond the bounds of defined rows in a table.
  • Fix an issue where librashader did not function on macOS versions lower than 12 (Monterey) when compiled by CI
ares v140 released
2024-08-27 17:45:00

ares v140 has now been released.

Since v139, a total of 15 contributors have created 53 commits to the ares codebase.

As always, if you wish to see the full changelog in a per-commit format along with their authors, you can do so on GitHub here.

Systems

Bandai - WonderSwan / WonderSwan Color

  • Implement cartridge SRAM open bus

Nec - PC Engine / TurboGrafx / SuperGrafx / CD

  • Automatic bios detection now prefers the Arcade Card bios for NTSC-J Region, rather than System Card 3.0

Nintendo - NES / Famicom / Disk System

  • Fix an issue where cartridge ram was not included in save states for some HVC-NROM and Sunsoft 1-3 mappers.
  • Add support for Camerica/Codemasters mappers
  • Add support for Tengen Rambo-1 mapper
  • Add support for Sachen-0037/Tengen-800008 mapper
  • Add support for the NES Zapper

Nintendo - Game Boy Advance

  • Prevent the debugger from advancing the CPU clock
  • Reset prefetch buffer on ROM accesses from DMA
  • Improve DMA timings
  • Implement that the prefetcher should halt only once DMA is accessing ROM
  • Prevent DMA from interrupting ROM accesses
  • Fix controls when using a rotated screen
  • Reload timer value after tick
  • Use separate latches per DMA channel
  • Implement graphics viewer in the debugger

Nintendo - Nintendo 64

  • Clear R0 register only when written to (Performance optimisation)
  • Fix an issue where loading save states would not set the correct audio frequency
  • Add missing fields to save states
  • Refactor to remove the branch state machine from the instruction epilogue (paving the way for future recompiler improvements)

Sega - SG-1000

  • Fix an issue where cartridge ram was not included for Taiwan-A and Taiwan-B mappers.

SNK - Neo Geo

  • Fix an issue where cartridge ram was not included in save states for the Jockey GP mapper.

Sony - PlayStation

  • Fix a crash when the display surface wraps around the framebuffer.
  • Fix an issue where CD-ROM seeking would not interrupt a read operation

Shared Components

ARM7TDMI

  • Fix reading SPSR register in user and system modes
  • Improve LDM/STM edge case handling

NEC V30MZ

  • Fix DAS overflow flag emulation
  • Fix instruction prefix handling
  • Fix IP on interrupt fired when prefixes are being used with non-prefixed instructions

Other

  • Fix an issue where settings may not save correctly on non-english locale
  • Improve the OpenGL integration with librashader; matching the implementation for the Metal driver
  • Improve the OpenGL driver on macOS: Fix flickering on resize, add fullscreen behavior toggle and fullscreen monitor selection
  • Fix building using Make 3.81 (macOS users no longer need to install a newer Make manually to build ares)
  • Properly detect the target arch when compiling with CL
  • Improve compatibility with FreeBSD
  • Fix an issue where the settings window would be too small to show all options on some configurations
  • Add the ability to switch between the interpreter and recompiler at runtime; previously this was a compile time switch unavailable to end users. You can use the "Force Interpreter" setting to force the 32X, N64 and PS1 cores to use the interpreter.
ares v139 released
2024-06-19 17:00:00

ares v139 has now been released.

Since v138, a total of 13 contributors have created 67 commits to the ares codebase.

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.

Bandai - WonderSwan / WonderSwan Color

  • Improve EEPROM emulation accuracy

Nintendo - NES / Famicom

  • Fix DMA interrupt
  • Various PPU improvements: most (all?) current PPU accuracy test roms now pass!
  • Improve emulation of MMC3: fixes test roms and crashes in Mickey's Safari & Incredible Crash Dummies
  • Fix missing scanlines in Burai Fighter (USA) (last known rendering bug!)
  • Fix MC-ACC IRQ timing
  • Add support for mapper 150 (UNL-SACHEN-74LS374N)
  • Add support for mapper 229 (UNL-BMC-31-IN-1)
  • Add support for mapper 225/255 (UNL-BMC-128)
  • Add support for mapper 172 (TXC-22211B)
  • Add support for mapper 132/173 (TXC-22211A/C)
  • Add support un-headered roms with the .unh extension (note: uses internal database; unknown roms will not work, headered roms are still preferred)

Nintendo 64 / Nintendo 64 DD

  • Disable run-ahead for 64DD; fixes an issue that caused 64DD games to fail to boot.

Nintendo - Game Boy Advance

  • Improve VRAM mirroring in bitmap background modes
  • Implement 1-cycle timer latch behavior
  • Improve BIOS open bus edge case emulation
  • Increase synchronisaton between comonents: slight performance loss for measurable accuracy gain in irq dma tests
  • Improve video capture DMA such that it only runs if enabled on scanline 162 of previous frame

Sega - Mega Drive / Genesis / CD / 32X

  • Implement correct SH2 clocks for PAL/NTSC 32X
  • Improve 32X PWM volume/mixing by taking configured cycle rate into account

User Interface

  • Improve driver settings and full-screen behavior on macOS
  • Fix an issue where IPS patches that extend the rom would fail to apply
  • Fix an issue where changing the video driver may not correctly apply settings
  • Support "Default" as a device with the WASAPI driver on Windows (Win10 only)
  • FIx an issue where some settings would not persist on non-english locales
ares v138 released
2024-05-02 15:00:00

ares v138 has now been released.

Since v137, a total of 10 contributors have created 58 commits to the ares codebase.

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.

Atari 2600

  • Improved 6502 CPU emulation; all unofficial opcodes are now implemented
  • Improve handling of the HMOVE register
  • Refactor of TIA; fixes many emulation issues but still imperfect
  • Implement correct 6502 reset timing

Bandai - WonderSwan / WonderSwan Color

  • Minor fixes to v30mz CPU emulation
  • Emulate 32KB SRAM for '8KB' type cartridges
  • Implement Sound Test register bits 1,2 and 3

Nintendo - NES / Famicom

  • Improved 6502 CPU emulation; all unofficial opcodes are now supported
  • Fix APU frame counter emulation
  • Various improvements to APU emulation
  • Implement correct 6502 reset timing

Nintendo - Nintendo 64

  • Fix an issue where saved data from the current game could be duplicated into the next
  • Fix an issue where the Real Time Clock may not function correctly depending on the user's local time zone

Nintendo - Game Boy Advance

  • Implement that the last cycle of the prefetcher cannot be interrupted
  • Implement correct ROM mirroring for Famicom Mini / Classic NES series
  • Improve handling of SRAM/Flash bus
  • Fix the timing of initial DMA wait cycles

Sega Mega Drive / CD / 32X

  • Lower sync interval between MD and 32X: improves emulation accuracy but does reduce performance

Sony - PlayStation

  • Update the blitter to operate on a copy of the framebuffer; fixes potential threading issues

ruby (Audio/Video/Input abstraction layer)

  • Added a native Metal backend for macOS with VRR support
  • Implemented latency selection in SDL audio driver
  • Removed the built-in Blur shader, using the bilinear slang shader is preferred
  • Removed non-hardware accelerated video drivers (any platform capable of running ares should at least have OpenGL, D3D or Metal available)
  • Reduce CPU usage on the video thread by using a condition variable rather than a spinlock
  • Add support for connecting a Mouse on macOS (for emulating SNES mouse, etc)
  • Remove tight loops in SDL and OpenAL drivers, reducing CPU usage when using these drivers.

User Interface

  • Fix an issue where nested slang shaders were not available in the UI

Auteur(s)

Auteur
feu "Near" (ex-Byuu)
Luke Usher

Autres émulateurs de la catégorie

  • WolfMAME

    Dernière mise à jour:
    Version 0.274
  • iFBAs

    Dernière mise à jour:
    Version 1.0.8
  • MAME

    Dernière mise à jour:
    Version 0.274
  • RetroArch

    Dernière mise à jour:
    Version 1.20
  • Hypseus

    Dernière mise à jour:
    Version 2.11.4
  • FinalBurn Neo

    Dernière mise à jour:
    Version 1.0.0.2
  • MacMAME

    Dernière mise à jour:
    Version 0.224
  • OpenEmu

    Dernière mise à jour:
    Version 2.4.1
  • AdvanceMAME

    Dernière mise à jour:
    Version 4.0