Skip to content

WIP Manual: Loading roms

James Groom edited this page Sep 15, 2023 · 4 revisions

IMPORTANT: These wiki pages are a draft of the end-user manual for EmuHawk. The manual will not live here forever; once it's finished, each new release will include a copy in the download.

This page was written for release 2.9.1 and will not reflect more recent changes. The information also may not be accurate to older versions. Unless specified, all functions are available on every supported OS.

EmuHawk supports many formats of cart and disc images ('roms'). For most of these, simply dragging and dropping the file onto the main EmuHawk window will load it. Alternatively, you can launch a file picker with File ⟩ Open ROM...:

screencap with menu item highlighted

Alternatively, in most desktop environments (including Windows and KDE Plasma), roms can be 'associated' with the EmuHawk application by using your file manager's "Open With..." option. Doing this allows roms to be opened in EmuHawk by double-clicking them. If single-instance mode is enabled and EmuHawk is already open, opening a rom file that's associated with EmuHawk will cause the rom to open in the existing instance.

A few of the supported formats use multiple files.

  • For .bin+.cue, load the .cue. The .bin file must be in the location listed in the .cue, which is typically a relative path to a sibling file i.e. .\<filename>.bin.
  • TODO others
  • TODO MAME
  • For .xml+<any> 'bundles' produced by the Multi-disk Bundler, load the .xml. The bundled roms must be in the locations listed in the bundle (TODO are the paths typically relative?).

If a rom is currently loaded, it will be closed automatically upon trying to open another rom. You'll need to use the Multi-disk Bundler for linked consoles and multi-disc games.

Customisation

When you load a rom, its type and header file extension (bug tracked as #3435) is mapped to a system/console. You can change these mappings with Config ⟩ File Extensions...:

screencap with menu item highlighted

After the rom's system is determined, if there are multiple cores which emulate it, your preferred core for that system is tried first (other cores will be tried if it fails). Set your core preferences under Config ⟩ Preferred Cores:

screencap with menu item highlighted

Note: Playing back movies temporarily overrides your core preference. This guide on resyncing explains how to use a different core for a movie.

Automation

On the command-line, if the last argument isn't part of a flag pair, it's interpreted as a rom filepath.

Note: If on Linux and using the provided launch script, paths must be relative to the install dir or absolute. You can use $PWD or $(pwd) to get an absolute path for the current dir.

If single-instance mode is enabled and EmuHawk is already open, launching EmuHawk with a rom filepath specified will cause the rom to open in the existing instance.

Roms can be loaded via ApiHawk with the IEmuClientApi.OpenRom method. It takes 1 argument: the filepath as a string. It returns a bool, false iff all cores failed to load.

  • This is exposed as the Lua function client.openrom.