ares

ares-emulator活跃维护

跨平台开源多机种模拟器,主打高精度与游戏保存,适合追求原机还原度的玩家和研究者。

ares is a cross-platform, open source, multi-system emulator, focusing on accuracy and preservation.

v148发布于 2026-05-30 13:17 UTC1,858star +3 / 7 天242fork同步于 2026-11-10 23:47 UTC

怎么上手

由 README 提炼,执行前请确认
ares --system MSX examples.rom --fullscreen
硬件要求按 README 说明

README 未说明具体硬件要求,仅提到支持 Windows、macOS 及多种 Linux/BSD 发行版;--shader 选项需要 OpenGL 或 Metal。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

跨平台开源多系统模拟器,主打准确性与游戏保存,源自 higan 和 bsnes

跨平台开源多机种模拟器,主打高精度与游戏保存,适合追求原机还原度的玩家和研究者。

核心能力

  • 支持多系统与多卡带同时加载
  • 以牺牲速度换取代码清晰,避免状态机和位掩码
  • 内置 mia ROM 数据库与镜像加载器
  • 命令行可指定系统名、着色器和存档槽
  • 提供 Windows 和 macOS 的每日构建

容易踩的坑

官方未提供 Linux 预编译包,需按 wiki 自行编译;每日构建仅保留最新版且未经测试;--fullscreen 只有同时传入游戏参数才生效。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v148
  1. v148ares v148最新正式版2026-05-30 · 2026-05-30 13:17 UTC

    ares v148 has now been released.

    This release includes big improvements to a number of ares cores. Highlights include rewrites to the N64 CPU & RSP JITs resulting in significant performance gains across the N64 library, additional implementation & accuracy improvements to the PlayStation core, fixes to the GBA core, and support for the Famicom data recorder & Dendy.

    Additionally, there have been many updates to the core ares application across all platforms. Per-core input configuration has been added, updated video, audio, & input drivers are available, bug fixes, additional options have been added, and core dependencies have been updated.

    Since v147, 20 contributors have created 300 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.

    NOTE: The signing certificate used to sign ares on Windows has expired. ares will be unsigned until a compatible signing solution is found. Windows users should be sure to only download ares from official sources, including the ares website and GitHub.

    Sony - PlayStation

    • Refactored core to use libco threading
    • CPU: implemented memory timing/control registers
    • CD-ROM: incorrect 150 LBA offset in command 0x14
    • CD-ROM: fix behavior when a command is issued before the previous has completed
    • CD-ROM: implement behavior where a new command cannot be executed until pending
    • CD-ROM: implement 'command/parameter busy' register
    • DMA: improve chopping/allowing the cpu to run between blocks of a long transfer
    • DMA: fixed incorrect bit position for DMA channel chopping enable
    • DMA: fixed block DMA using incorrect timing
    • DMA: fixed SPU canReadDMA/canWriteDMA flags
    • MDEC: implement basic decode timing
    • MDEC: implement correct input fifo behavior
    • MDEC: fix behavior when an incomplete block is transferred via the input fifo
    • MDEC: fix DMA request registers, input/output full/empty registers, busy register
    • GPU: use correct clock frequency for PAL and NTSC
    • GPU: fix hblank timing
    • GPU: Fixed some clocking issues
    • Timer: improve behavior around timer overflow/target reached IRQ

    Nintendo - Game Boy Advance

    • Only trigger keypad IRQ when input changes
    • Fixed handling of repeat bit during immediate DMA transfers
    • Prefetcher should fail reading across 128KiB boundaries
    • OBJ mosaic fixes to correct some graphical bugs
    • Prevent instruction tracing from modifying open bus
    • Refactored bus reads fixing some open bus edge cases
    • Implemented internal horizontal/vertical window flags when window boundaries reached
    • Improved affine parameter timings
    • Fixed wave RAM bank selection
    • Added OAM to memory viewer
    • Implemented OAM stage timings for sprite rendering

    Nintendo - Super Famicom / SNES

    • Added support for loading GBC games in the Super Game Boy
    • Super Game Boy accuracy fixes (multiplayer, packet acknowledgement, register mirroring)
    • Improved auto-joypad polling accuracy

    Nintendo - Nintendo 64

    • CPU & RSP JIT improvements resulting in improved performance
    • Cubivore (Doubutsu Banchou w/English patch applied) support added
    • Implemented support for region free ROMs (homebrew extension)
    • If homebrew header present, don’t default to a controller pak in port 1
    • Keep serrate bit enabled when VI processing is disabled
    • Fixed audio pops when AI DMA ends
    • Fixed GDB read result for RCP/PI bus path
    • Implemented eeprom write timing and status flags
    • Added initial support for Emux extensions
    • Implemented VR4300 reverse-endian mode

    Nintendo - Famicom / NES

    • Added support for the Famicom data recorder
    • Added support for JY Company and SC-127 boards
    • Added support for the Dendy
  2. v147ares v1472025-12-23 · 2025-12-23 08:57 UTC
    查看更新说明

    This is ares v147, released on 2025-12-23.

  3. v146ares v1462025-08-26 · 2025-08-26 19:30 UTC
    查看更新说明

    This is ares v146, released on 2025-08-26.

  4. v145ares v1452025-07-09 · 2025-07-09 17:16 UTC
    查看更新说明

    ares v145 has now been released.

    This release contains hefty improvements to a number of ares components. Highlights include Real Time Clock support for the Game Boy Advance, improvements to the experimental PlayStation core, Sega SC-3000 support, important fixes to the Game Boy Color, as well as core improvements to the ares application itself that should improve performance and responsiveness.

    Since v144, 8 contributors have created 90 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.

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

    • Implemented many undocumented instruction encodings
    • Implemented invalid CPSR modes
    • Added support for MRC, MCR, and CDP coprocessor instructions
    • Allowed misalignment of the program counter in ARM mode

    Nintendo - Game Boy Color

    • Improved HDMA and GDMA timings (fixes some major graphical bugs)

    Nintendo - Game Boy Advance

    • Added support for the Real Time Clock
    • Re-introduced optional Game Boy Player support
    • Fixed a bug where EEPROM saves were initialized to all zeroes, rather than all ones
    • Improved handling of FIFO audio channels
    • Writes to APU registers and wave RAM while audio is disabled are now handled correctly
    • Prevented IRQs from advancing during DMA
    • Improvements to prefetcher timings
    • CPU is now stepped in single-cycle increments when halted

    Nintendo - Famicom / NES

    • Fixed database to allow running PAL/NTSC games in both supported modes

    Nintendo 64

    • Game Boy Color titles are now selectable for use with Transfer Pak
    • Renamed upscaling options from “SD/HD/UHD Quality” to “1x/2x/4x Native” to better describe the resolution increase

    Sega - SG-1000 / SG-3000

    • Added support for the SC-3000
    • Improve IO port emulation (Port B bits 3-6 are active low, bit 7 is active high)
    • Fix an issue where games could incorrectly detect the SG-1000 as an SC-3000

    Sega - Master System / Game Gear

    • Improved header validation; fixes many NTSC-J titles being detected as international

    Sega - Mega Drive / Genesis / CD / 32X

    • Added CPU wait cycle for APU bus access

    Sony - PlayStation

    • Fix incorrect handling of the CE bits in COP0.CAUSE
    • Fix boot of discs with non-standard license strings (Various unlicensed games)
    • Fix VRAM-to-CPU transfers
    • Fix issues with DMA interrupt flag calculation
    • Fix issues with virtual->physical address translation
    • Fix reads of DICR bit 15.
    • Fix an issue where the mute bit would not apply to reverb voices
    • Fix an issue where save states may not be re-usable between emulator launches
    • Fix an issue where SPU noise was not being correctly represented as a signed 16-bit quantity
    • (Temporarily) Remove the recompiler: one will be re-added once accuracy is more up to scratch

    Application / Misc.

    • Core threading improvements have been made to ares, which should lead to increased UI responsiveness and potentially improved performance on some platforms.
    • Added a selector for region fallback preference when loading a title, to better account for cases where the ROM does not support the user’s primary region preference.
    • The status bar will now show the loaded system configuration and region.
    • Fixed an issue where nall::set::insert could fail silently
    • Resolved an invalid version issue when building ares from a source archive
    • Releases now contain platform-appropriate application version metadata
    • [Windows] Modified terminal output to be treated as UTF-8, and to allow the use of VT100 escape sequences when supported
    • [macOS] Enabled the system Edit menu, allowing copy/paste functionality inside the Tools window
    • [macOS] Fixed a possible startup crash on x86_64 systems
    • [macOS] Fixed issues when building ares on macOS 10.15

    **Dependencies

  5. nightlyares nightly 2026-09-23pre-release2024-12-30 · 2024-12-30 00:38 UTC
    查看更新说明

    sfc: add Super Multitap support

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    License: ISC

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

    It's worth noting that ares takes some uncommon design approaches that essentially trade speed for code clarity. We avoid state machines and bitmasks (when possible). Most cores end up being half the amount of code, but slower. The code is clearer and less spaghettified, especially for systems with lots of processors. C bitfields being non-portable incurs a speedhit. Windows also has a speedhit over Linux due to its ABI needing more instructions to switch contexts.

    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.

    Building ares

    ares supports building on Windows, macOS, and various Linux/BSD distributions. See build instructions for:

    Command-line options

    When started from the command-line, ares accepts a few options.

    Usage: ./ares [options] game(s)
    
      --help                 Displays available options and exit
      --version              Displays the version string of the application
      --terminal             Create new terminal window (Windows only)
      --fullscreen           Start in full screen mode
      --pseudofullscreen     Start in pseudo full screen mode
      --kiosk                Start in minimal UI mode (implies --no-file-prompt)
      --system system        Specify the system name
      --shader shader        Specify a slang shader to load (requires OpenGL or Metal)
      --setting name=value   Specify a value for a setting
      --dump-all-settings    Show a list of all existing settings and exit
      --no-file-prompt       Do not prompt to load (optional) additional roms (eg: 64DD)
      --settings-file path   Specify a settings file override (settings.bml)
      --save-state slot      Specify a save state slot to load (1-9)
    

    The --system option is useful when the system type cannot be auto-detected. --fullscreen will only have an effect if a game is also passed in argument.

    Example: ares --system MSX examples.rom --fullscreen

    Specifying multiple games allows for multi-cart support. For example, to load the Super GameBoy BIOS and a game in one command (to avoid a file prompt), you can do:

    ares "Super GameBoy.sfc" "Super Mario Land.gb"

    The --no-file-prompt option is useful if you wish to launch a game from CLI without being prompted to load additional roms. For example, some Nintendo 64 games optionally support 64DD expansion disks, so this option can be used to suppress the "64DD Disk" file dialog, and assume any secondary content is disconnected.

    High-level Components

    • ares: emulator cores and component implementations
    • desktop-ui: main GUI implementation for this project
    • hiro: cross-platform GUI toolkit that utilizes native APIs on supported platforms
    • nall: Near's alternative to the C++ standard library
    • ruby: interface between a hiro application and platform-specific APIs for emulator video, audio, and input
    • mia: internal ROM database and ROM/image loader
    • libco: cooperative multithreading library

    Contributing

    Please join our discord to chat with other ares developers: https://discord.com/invite/gz2quhk2kv