ares README

The project's README from github.com/ares-emulator/ares. As one markdown file: README.md.

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

Contributing

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

ares (ares-emulator/ares)

Searching Database…

1.8K ·GitHub
What is this?ares is a cross-platform, open-source multi-system emulator that focuses on accuracy and preservation of classic game consoles and computers.
Is this a single-system emulator or does it cover many consoles?It's a multi-system emulator with separate internal cores for each supported system, plus a shared GUI (desktop-ui) and toolkit (hiro) that work across platforms.
How do I get it running?Download an official release from the ares website, or grab an automated nightly build for Windows/macOS, or build it yourself from source.
Do I need to compile anything myself, or build tools, to use it?No, prebuilt official releases and nightly builds exist; building from source is only needed if you want to compile it yourself on Windows, macOS, Linux, or BSD.
Does the accuracy-first design come with a performance cost?Yes, ares deliberately trades speed for code clarity by avoiding state machines and bitmasks, so cores run slower than they could; Windows is also slower than Linux due to ABI context-switch overhead.
Which platforms does ares actually run on?ares runs on Windows, macOS, and various Linux/BSD distributions.
How do I load a game from the command line?Run ares with the ROM path, e.g. 'ares --system MSX examples.rom --fullscreen'; you can also pass multiple ROM files at once (like a Super GameBoy BIOS plus a cartridge) for multi-cart setups.
What is the --no-file-prompt option for?It suppresses secondary file dialogs, such as the N64 64DD disk prompt, letting you launch a game via CLI without being asked to load additional ROMs.
What is Near's connection to this project?ares is a descendant of Near's earlier emulators higan and bsnes, and the project still uses Near's custom C++ library replacement called nall.
What are hiro, ruby, mia, and libco?They are internal components: hiro is the cross-platform native GUI toolkit, ruby interfaces hiro apps with platform video/audio/input APIs, mia handles the ROM database and image loading, and libco provides cooperative multithreading.
Size
180 MB
Stars
1.8K
Age
5y
Commits · 90 Days