View Page Source

Back to Page
Revision (current)
Last Updated by CoolHandMike on 4/28/2024 5:26 PM

!! Covered platforms

The MAME core in BizHawk is currently Arcade-only, however we may add other MAME systems in the future.

!! Loading ROMs

MAME ROMs don't come as singular game image files, but as {{.zip}} packages, and you __do not need to unpack them__. Just run them directly in BizHawk. However, there are some nuances.

! Missing files

If the ROM set you're trying to run doesn't contain all the necessary files, MAME will throw an exception telling which files are missing, but before that BizHawk will try to load it as a regular archive. Currently there's no way to distinguish MAME ROM archives from user archives if their names clash, so if you want to see which files are missing, you will need to close the ''Choose File From Archive'' digalog (or to ''Cancel'' it).

! ROM set types

MAME ROM sets are usually organized in 2 different ways: merged and split. Merged sets contain base (parent) game files in the main {{.zip}}, and version (clone) game files inside that {{.zip}} in additional folders. Split sets have every game packaged individually, parent or clone, in separate {{.zip}} files.

! Naming

MAME determines which game you want to run by the game's short name you provide as an argument. Even inside its graphical user interface it will only recognize ROMs that come in individual {{.zip}} (or {{.7z}}) files or folders inside it's {{roms}} directory, and those packages and folders must also be named after their respective games.

As a result, __we have to inform BizHawk's MAME core which game to run by the name of the {{.zip}} package we're launching__.

So if you want to run a parent machine, you just launch it as a normal ROM in BizHawk. But for anything more complicated, there are 2 main ways.

! Multi-package games

Some games require more than one {{.zip}} package. For clone machines or games requiring extra files (Neo-Geo BIOS, or games using {{.chd}} disks or layout files), you will need to combine them in some way. There are two main options, pick whichever feels easier for you:
# Rename the package after the clone game you need to run and put all the needed files inside (base game files, BIOS files).
#* You can't put other {{.zip}} files inside, you have to unpack them into folders with the same names, or directly into the main {{.zip}}.
# Go to ''Tools -> Multi-disk Bundler'', create a {{.xml}} named after your clone game, and add all the required {{.zip}} packages to the list ({{.chd}} files too, if needed), and launch that {{.xml}} file in BizHawk.
If you've managed to run a game, you can check which files are mandatory by clicking the icon in the bottom right corner of the BizHawk window (dump status report).

! ROM info

ROM info is available in the ''Dump Status Report'' dialog that can be accessed by pressing the icon in the bottom left corner of the BizHawk window.

The icon itself (along with its tooltip) also indicates whether there is something to worry about with your ROM.
* Red exclamation mark is displayed when there are severe problems (original MAME indicates them via the red background in game selection menus):
** If the machine is considered "NOT WORKING" according to MAME
** If there are any unimplemented features
** If some of the ROMs in the set is known to be a bad dump (unless a newer set has a good dump, there's nothing a user can do to fix this)
* Orange question mark is displayed  
** When there are imperfectly emulated features (original MAME indicates them via the orange background in game selection menus)
** If a multidisk bundle was loaded and no issues were found with the ROMs
** If some of the ROMs doesn't have a known good dump
* Green checkmark is shown if there are no issues.

! Machine settings

BIOS can be selected in the ''Arcade -> Settings'' menu, but if BIOS files come as a separate ROM set, you need to use the above method to load them alongside the main game.

DIP switches and other settings are in the same menu.

!! Troubleshooting

! System Bus memory region is unsafe

Using the System Bus memory region for any memory activity (reading or writing, memory searching or watching) can be unsafe and may even cause memory values to change unpredictably while emulation is paused! You have several options to work around this issue:
* Use other regions if they exist ({{ram}} regions are usually safe)
* Only use addresses you know are safe
* Don't experiment with System Bus while recording a movie, because it may desync

! Unmapped inputs

If you find a game with buttons not mapped ({{!}} in input display), [Forum/Topics/21778|tell us the game].

! Issue tracker

For crashes and other bugs, please [|report them on our GitHub].

! MAME Video Tutorial

Here is an article for a video tutorial for running various MAME games with text subtitles alongside additional information : [Bizhawk/MAME/VideoTutorial|MAME Video Tutorial].