Créé par Near (ex byuu) et continué par Luke Usher (PolyBlast / CxBx-Reloaded) et d’autres, Ares est un émulateur multi-systèmes dont le développement a commencé le 14 octobre 2004. C’est un descendant de higan et bsnes. Il se concentre sur la précision et la préservation.
Ares émule les 31 machines suivantes:
– Arari 2600
– Famicom + Famicom Disk System
– Super Famicom + Super Game Boy
– Nintendo 64
– Game Boy + Game Boy Color
– Game Boy Advance + Game Boy Player
– SG-1000 + SC-3000
– Master System + Game Gear
– Mega Drive + Mega 32X + Mega CD
– Playstation
– PC Engine + PC Engine CD + SuperGrafx
– MSX + MSX2
– ColecoVision
– Neo Geo Pocket + Neo Geo Pocket Color
– Neo Geo AES
– WonderSwan + WonderSwan Color + SwanCrystal + Pocket Challenge V2
A noter qu’un pack de shaders est disponible ici.
Des packs MSU-1 sont disponibles ici.
Voici les informations depuis la dernière version d’ares:
User Interface
– Debugger: set per-processor trace history depth [invertego]
– Debugger: store 64-bit addresses in trace history [invertego]
– Debugger: use a hashset to track visisted addresses [invertego]
– Move Audio Driver settings onto a new line, to prevent large device names overflowing the container [LukeUsher]
– Implement ‘Reload Current Game’ hotkey/menu option [LukeUsher]
– Controllers: bind analog inputs only on motion away from center [invertego]
Build System
– Avoid code-signing when building from PRs [rasky]
– Use widnres from build environment if defined [invertego]
– Add support for Windows AArch64 [invertego]
– Guard SSE usage with a pre-processor [invertego]
– Add mame RGB utils for all architectures [invertego]
– Enable debugging of self-signed builds on macOS [invertego]
– Remove libgtksourceview2.0-dev from dependencies [LukeUsher]
– Make LTO the default option again, the performance boost is worth the extra build time [LukeUsher]
– Support building with MSVC/microsoft clang (still requires GNU make for now) [invertego]
– Define _WIN32_WINNT in makefile rather than headers [invertego]
– Prefer clang on all platforms [invertego]
Nall (Standard Library / Runtime)
– Detect and support PowerPC64 [invertego]
– Fix LTO with PowerPC64 [invertego]
– Recompiler: simplify carry flag usage [invertego]
– Prevent AppKit from handling file opens [invertego]
– Recompiler: implement bit rotates [invertego]
– Recompiler: implement masked shifts [invertego]
– Use snprintf to avoid build warnings [invertego]
– Split implementations into .cpp files [invertego]
Hiro (GUI Framework)
– Store Windows settings in application directory, making ares truly portable [LukeUsher]
Atari 2600
– Correct pixel aspect ratio to 12:7 [LukeUsher]
Bandai WonderSwan
– Fix incorrect handling of color mode bit [asiekierka]
– Fix PPU addressing of 1024 tiles in 2bpp color mode [asiekierka]
– Update PPU Planer, packed, depth and grayscale methods to be correct to real hardware [asiekierka]
– Tweaked APU code to properly treat it as a 24000 Hz digital chip, as opposed to a 3072000 Hz analog chip [asiekierka]
– Fixed APU channel 2 « half-volume » bits being ignored. [asiekierka]
– Tentatively tweaked low-pass filter value based on GuyPerfect’s research. [asiekierka]
– Implemented a less stubby serial I/O stub. This properly emits TX/RX interrupts. [asiekierka]
– Added support for Bandai 2003’s 16-bit banking ports [asiekierka]
– Added stubby support for NMI register 0xB7, as found and documented by FluBBa in the NitroSwan emulator. [asiekierka]
– Appropriately gate WSC-mode I/O ports from Mono mode. [asiekierka]
– Fixed behavior of the HBlank/VBlank PPU timers when the reload value is 1, but the timer is not enabled. [asiekierka]
– Fixed APU internal speaker output logic. [asiekierka]
– Added support for the Pixel Accuracy toggle; significant performance increase when pixel accuracy is disabled. [asiekierka]
– Fixed keypad interrupt emulation to match hardware quirks. [asiekierka]
– Fixed handling the interrupt base port on WSC. [asiekierka]
– Added PPU SCREEN1, SCREEN2 and tiles to the Graphics debug view. [asiekierka]
– Added PPU, APU, cartridge, serial and SoC I/O ports to the Properties debug view. [asiekierka]
– Exposed the ability to use internal speaker output in the UI. [asiekierka]
ColecoVision
– Correct pixel aspect ratio to 8:7 [PikaSamus]
MSX / MSX2
– Correct pixel aspect ratio to 8:7 [PikaSamus]
Nintendo NES / Famicom
– Improve MMC5 frame detection [encoded-byte]
– Improve MMC5 RAM management [encoded-byte]
– Fix ram banking on MMC5 [encoded-byte]
– Fix MMC5 expansion audio [encoded-byte]
– Fix incorrect resetting of MMC5 scanline register on NMI [encoded-byte]
– Correct MMC5 scanline detection [encoded-byte]
– Increment scanlines before comparing on MMC5 [encoded-byte]
– Implement namco163 expansion audio [encoded-byte]
– Boost audio output to be inline with other cores [LukeUsher, encoded-byte]
– Merge APU, Cartridge and CPU emulation to a single co-thread; improving performance with no accuracy impact [LukeUsher]
Nintendo SNES / Super Famicom
– Add Star Fox EX to the game database [DerekTurtleRoe]
Nintendo Game Boy
– Fix RTC emulation [invertego]
– Fix MBC1 mapper implementation for 8/16Mbit cartridges [asiekierka]
Nintendo Game Boy Color
– Fix secondary obj pallettes when running in DMG mode [LukeUsher]
Nintendo 64
– Fix 1-bit precision errors in mame RDP [rasky]
– Emulate VI guardband [rasky]
– Improve generation of FPU flags and exceptions [rasky]
– Trigger FPU exceptions also via CTC1 [rasky]
– Implement FPU flags and exceptions for FCVT_x [rasky]
– Fix roundings and flags for conversion functions [rasky]
– Fix FPU round-to-even using intrinsics [rasky]
– Add DCTC1 and DCTFC1 [rasky]
– Reset FPU cause bits for every FPU operation [rasky]
– Correct denormal bandling in FCTV_S_D [rasky]
– Implement correct denormal flush for each rounding mode [rasky]
– Prevent compiler from incorrectly re-ordering code using noinline [invertego]
– Replace cmath functions with intrinsics [invertego]
– Improve unimplemented exceptions on underflow [invertego]
– Remove spurious round mode change in FPU impelmentation on aarch64 [invertego]
– Fix conversion bounds off-by-one issues in FPU [rasky]
– Do no clear flags on FMOV [rasky]
– Raise unimplemented exceptions instead of invalid exceptions for FPU conversions [invertego]
– Replace lround with round, lrint with rint [invertego]
– Do not clear FPU flags on LWC1/LDC1/SWC1/SDC1 [rasky]
– Fix analog stick inputs on Aarch64 [invertego]
– Add PC address to FPU exception logs [rasky]
– Implement correct PI open bus behavior [rasky]
– Improve behavior in case of RDP crash [rasky]
– Implement hardware limit of LOAD_BLOCK RDP command [rasky]
– Fix 32bit / 64bit address space confusion [rasky]
Sega Game Gear
– Correct pixel aspect ratio to 6:5 [PikaSamus]
– Sega Master System / Mark III
– Serialize cartridge ram [invertego]
Sega Mega Drive / Genesis
– Fix cartridge rom banking for roms upto 32MB [TascoDLX]
– Fix a build issue where bus functions were not inlined as intended [LukeUsher]
– Reduce sync between components, boosting performance without any observable loss in accuracy [LukeUsher]
– Refactor VDP to use templating to reduce comparisons in tight inner loops [LukeUsher]
Sega 32X
– Fix PWM fifo [TascoDLX]
– Implement DREQ1and fix PWM IRQ [TascoDLX]
– Fix RLE rendering [TascoDLX]
Sony PlayStation
– Reduce pause command duration, fixing a race condition in early game bootup [LukeUsher]
– Component Improvements
– Changes to these components are not specific to cores/systems, but rather they impact all systems that use the updated component.
CPU: MOS 6502
– fix adc/sbc flags in decimal mode [invertego]
– CPU: NEC HuC6280
– fix adc/sbc flags in decimal mode [invertego]
CPU: NEC V30MZ
– Do not ignore immediate operand in AAD/AAM calls [asiekierka]
– Fixed low-hanging CPU timing fruit, based on WSTimingTest. There’s still some tests not passing, most notably jumps. [asiekierka]
– Fixed IN/OUT opcode decoding in the CPU tracer. [asiekierka]
– Fixed emulation of undocumented opcode 0xD6 as well as 0xF7 subop 1 [asiekierka]
Télécharger Ares (32 bits) v114 (3.3 Mo)