Back to Page
Revision 15 (current)
Edited by CoolHandMike on 6/9/2024 6:14 AM
[module:youtube|v=jHSa0JS9pf4]
[UserFiles/Info/638460479306444404|SRT file for the video]
Organized for readability but basically the script from the tutorial video. Added more information over time to this page for more information or issues encountered.
%%TOC%%
!!What is MAME
MAME is a multi arcade machine emulator that emulates arcade machines, computer systems, and more. The user must supply the roms, software, and any other files needed like bios or extra data files such as chd.
You can view the main MAME site at [https://mamedev.org/] or for more documentation and resources from [https://docs.mamedev.org/]. However the main site I recommend for this tutorial is from [http://adb.arcadeitalia.net/]. Arcade Italia has a search for the games and will list the status and the files needed to run them along with other useful information.
[https://files.tasvideos.org/common/Forum/21792/bizhawk_mame_tutorial/arcadeitalia.jpg]
!!What a MAME Arcade Game Zip Contains
MAME arcade zips will contain all the necessary files that completes the romset. Separate files in the form of chd files or bios files may be needed as well.
!Difference between merged and unmerged game zips.
Romsets for arcade games come in two main flavors, merged and unmerged.
Merged romsets will combine the files together such that files are not duplicated. Non merged zips have all the files duplicated and this is what BizHawk needs.
adb.arcadeitalia.net lists out the necessary files needed to create an unmerged zip if you are unable to find a nonmerged zip for your game.
Keep in mind that MAME is updated frequently and many romsets change over time. It is important to get a romset from the same version to test. Otherwise the game might not work.
!!Game Status
In Arcade Italia, Searching the title and looking at the game status is usually enough to determine if a game will run well.
*Green means Good and should always work.
*Yellow means Imperfect. There can be minor issues.
*Red means Preliminary. This means that the rom may not work at all. You will have play through it to the end to check for play ability. These may not boot or may crash at certain points, or have minor graphical issues.
Make sure to always avoid games that have a "bad dumb" status.
*If the save state shows not supported or imperfect BizHawk should still be able to use save states with the game perfectly. The way MAME is implemented in BizHawk would make the save states work regardless.
*In BizHawk after loading the game there a clickable icon on the bottom left that will open up a popup with dump info. If the dump is good the icon will be a green checkmark if the game works perfectly or a red exclamation point. A question mark icon will be shown if the status of the loaded file is unknown. The question mark may appear when loading through xml. The info popup window will have information like the full name, the short name, resolution, aspect ratio, framerate, status of the dump, and the individual roms.
[https://files.tasvideos.org/common/Forum/21792/bizhawk_mame_tutorial/ggxx-dump-info.jpg]
!!Examples Running Some Games
!Karnov
http://adb.arcadeitalia.net/dettaglio_mame.php?game_name=karnov&arcade_only=0&autosearch=1
Karnov has all Good status as well as being a good dump.
Under the required files for MAME It only requires the main romset karnov.zip.
Single romset games like this can be run by dragging and dropping the single romset zip into the BizHawk window.
Another way to run is to use: File -> Open Advanced -> In Arcade section click Launch Game.
[https://files.tasvideos.org/common/Forum/21792/bizhawk_mame_tutorial/karnov-required-files.jpg]
[https://files.tasvideos.org/common/Forum/21792/bizhawk_mame_tutorial/Bizhawk-Open-Advanced.jpg]
[https://files.tasvideos.org/common/Forum/21792/bizhawk_mame_tutorial/Open-Advanced-Mame-Arcade.jpg]
[https://files.tasvideos.org/common/Forum/21792/bizhawk_mame_tutorial/Karnov-cover.jpg|w=480|h=360]
!Area 51
http://adb.arcadeitalia.net/dettaglio_mame.php?game_name=area51&arcade_only=0&autosearch=1
Area 51 has all Good status as well as being a good dump.
By looking in the required files on the page we can see that Area 51 also requires a CHD file in addition to the romset zip area51.zip.
To run Area 51,
#From the menu select Tools -> Multi-disk Bundler. The Multidisk Bundler creates an xml file that alllows Bizhawk to load multiple files at once.
#Under the Name section select Browse. Browse the location you want the xml file to be created, name the file something like the same name as the game, and save.
#Then Under the System dropdown select "Arcade".
#Below that there is the areas to select the files that will be loaded. The Order is Romset, CHD, Bios files.
#For the first file load area51.zip, and in the second load area51.chd.
#Click Save, or Save and Run.
Once the xml file is created it does not need to be recreated to run the game. The xml file can be dragged and dropped into the Bizhawk window to load the game.
%%SRC_EMBED xml
<BizHawk-XMLGame System="Arcade" Name="area51">
<LoadAssets>
<Asset FileName=".\area51.zip" />
<Asset FileName=".\area51.chd" />
</LoadAssets>
</BizHawk-XMLGame>
%%END_EMBED
[https://files.tasvideos.org/common/Forum/21792/bizhawk_mame_tutorial/area-51-required-files.jpg]
[https://files.tasvideos.org/common/Forum/21792/bizhawk_mame_tutorial/multidiskbundler-for-area51.jpg]
[https://files.tasvideos.org/common/Forum/21792/bizhawk_mame_tutorial/area-51-cover.jpg|w=480|h=360]
!Guilty Gear XX
http://adb.arcadeitalia.net/dettaglio_mame.php?game_name=ggxx&arcade_only=0&autosearch=1
Guilty Gear XX has a preliminary status but it is a good dump. There are screen shots so it should run, but this game might have serious issues.
By looking in the required files on the page we can see that Guilty Gear XX requires the romset, a chd file, and various Bios files.
To run Guilty Gear XX
#From the menu select Tools -> Multi-disk Bundler. The Multidisk Bundler creates an xml file that alllows Bizhawk to load multiple files at once.
#Under the Name section select Browse. Browse the location you want the xml file to be created, name the file something like the same name as the game, and save.
#Then Under the System dropdown select "Arcade".
#Below that there is the areas to select the files that will be loaded. The Order is Romset, CHD, Bios files.
#For the first file load ggxx.zip
#In the second load gdl-0011.chd.
#Use the "Add" button on the bottom to add additional spots to add more files.
#Go through and add the additional Bios files.
#Click Save, or Save and Run.
Once the xml file is created it does not need to be recreated to run the game. The xml file can be dragged and dropped into the Bizhawk window to load the game.
XML where all the files are in the same directory:
%%SRC_EMBED xml
<BizHawk-XMLGame System="Arcade" Name="ggxx">
<LoadAssets>
<Asset FileName=".\ggxx.zip" />
<Asset FileName=".\gdl-0011.chd" />
<Asset FileName=".\jvs13551.zip" />
<Asset FileName=".\mie.zip" />
<Asset FileName=".\naomigd.zip" />
<Asset FileName=".\segadimm.zip" />
</LoadAssets>
</BizHawk-XMLGame>
%%END_EMBED
XML file example if the files are in different directories using relative paths. Relative paths may be phased out.
The order is: Game -> CHD -> Bios
This example from Spikestuff.
Guilty Gear XX as a full example of that:
%%SRC_EMBED xml
<BizHawk-XMLGame System="Arcade" Name="GGXX">
<LoadAssets>
<Asset FileName="..\Arcade\ggxx.zip" />
<Asset FileName="..\Arcade\ggxx\gdl-0011.chd" />
<Asset FileName="..\Arcade\Naomi Bios\naomigd.zip" />
<Asset FileName="..\Arcade\Naomi Bios\jvs13551.zip" />
<Asset FileName="..\Arcade\Naomi Bios\segadimm.zip" />
<Asset FileName="..\Arcade\Naomi Bios\mie.zip" />
</LoadAssets>
</BizHawk-XMLGame>
%%END_EMBED
[https://files.tasvideos.org/common/Forum/21792/bizhawk_mame_tutorial/ggxx-required-files.jpg]
[https://files.tasvideos.org/common/Forum/21792/bizhawk_mame_tutorial/Multi-Disk-Bundler-GGXX.jpg]
[https://files.tasvideos.org/common/Forum/21792/bizhawk_mame_tutorial/ggxx-cover.jpg|w=480|h=360]
!Where to Access Dipswitches in Bizhawk
Game options for most arcade games are changed through Dipswitches which are manual electric switches. Some games have an in game menu that can change settings however.
To change dipswitch settings for a game in Bizhawk,
#Load the game
#Look at the top Bizhawk Menu Select Arcade -> Settings.
#After making changes you should Reboot the core. Reboot the core by selecting Emulation -> Reboot Core.
[https://files.tasvideos.org/common/Forum/21792/bizhawk_mame_tutorial/Arcade-Settings-aka-Dipswitches.jpg]
[https://files.tasvideos.org/common/Forum/21792/bizhawk_mame_tutorial/Karnov-dipswitch-settings.jpg]
[https://files.tasvideos.org/common/Forum/21792/bizhawk_mame_tutorial/reboot-core.jpg]
!!Arcade Inputs
In BizHawk go to Config-> Controllers.
For Arcade games most require Coin inputs, then after inputting the number of coins the game needs to run an additional start button is needed. Coin and Start can be found on the Console tab.
To map the other buttons select the relevant player.
The number and type of controls can vary depending on the game. Buttons, analog controls, lightguns, and some games have up to 5 players.
[https://files.tasvideos.org/common/Forum/21792/bizhawk_mame_tutorial/bizhawk-controller-in-menu.jpg]
[https://files.tasvideos.org/common/Forum/21792/bizhawk_mame_tutorial/Mame-normal-controls.jpg]
[https://files.tasvideos.org/common/Forum/21792/bizhawk_mame_tutorial/Mame-player-1-controls.jpg]
!!Ram Search and Ram Watch
Ram Search (Tools->Ram Search) and Ram Watch (Tools -> Ram Watch) work as well. For the Memory Domains use the RAM domains. The SystemBus can cause de-syncs just by searching and reading the values so avoid this.
Available Memory Domains will depend on the game.
[https://www.youtube.com/watch?v=9pM1kG5uorA|Tutorial for Ram Search]
[https://files.tasvideos.org/common/Forum/21792/bizhawk_mame_tutorial/Ram-Search-karnov-example.jpg]
!!TAStudio
In the input roll "C" is for coin and the "s" is usually the service button which might lead to other options depending on the game. Emulated machines with a lot of different inputs may have "!" for inputs. To find what those are it is necessary to test them. Robotron 2084 is an arcade game example where lots of "!" inputs would need to be tested for functionality.
[https://files.tasvideos.org/common/Forum/21792/bizhawk_mame_tutorial/Robotron-2084-undetermined-button-inputs.jpg]
To hide specific players like Player 2 inputs, in the TAStudio window select "Show Columns" then deselect the "Show Player 2" for example.
[https://files.tasvideos.org/common/Forum/21792/bizhawk_mame_tutorial/tastudio-toggle-showplayer2.jpg]
Arcade games will not show lag frames with the red coloring in TAStudio. To change the frame's color a LUA script will be needed.
Open up LuaConsole by Tools-> LuaConsole.
A script will need to be added to list and made active. You can tell if the script is active if the green play icon is displayed next to the script name.
The script needs an address that changes based on whether or not the game is accepting input. This is something game dependent.
A ManualSetLag Script can be downloaded from the link below. Just change the address on line 15 in the memory byte read. This script currently only works with Karnov so make sure to input an address that works for your game.
https://tasvideos.org/UserFiles/Info/638459887754146781
*Original script is from feos AKA vadosnaprimer
[https://files.tasvideos.org/common/Forum/21792/bizhawk_mame_tutorial/bizhawk-lua-console-menu.jpg]
[https://files.tasvideos.org/common/Forum/21792/bizhawk_mame_tutorial/Running-Manual-Set-Lag.jpg]
*[https://www.youtube.com/watch?v=AzDjBO7_fWk|Introduction to TAStudio]
*[https://www.youtube.com/watch?v=KUj4j0le6x8|Introduction tutorial for Lua]
*[https://www.youtube.com/watch?v=N0D-OogDJOI|Tutorial for the Lua Console]
*[https://www.youtube.com/watch?v=g1yEtXz7UqY|A Tutorial for Common Lua Functions]
!!Arcade Load Error Troubleshooting
If you load a game that is incomplete it is most like a merged file. When you attempt to load the game it fails to load the arcade game.
#File-> Open Advanced -> "Launch Game" from the Mame Arcade area.
#A "Choose File from Archive" window will pop up with the list of roms in the romset. This means the file has some sort of problem like being incomplete.
#Click Cancel
#An "Arcade Load Error" popup will appear that will list exactly the issue.
#This will usually tell you the roms that are missing. If this is the case find a non merged romset zip for the game. Or you could find the missing files and add them to the romset zip. Make sure you also are getting the zips from the same MAME romset release version. MAME is frequently updated so trying to mix and match roms from different release sets may not work.
#Screenshots below show an example of a failed load using a merged romset zip of Karnov. It is missing several roms. Get a nonmerged romset or find the missing roms and add them to the merged romset zip to run in BizHawk.
[https://files.tasvideos.org/common/Forum/21792/bizhawk_mame_tutorial/karnov-failed-load.jpg]
[https://files.tasvideos.org/common/Forum/21792/bizhawk_mame_tutorial/Arcade-Load-Error.jpg]
!!Missing Dipswitch Options Troubleshooting
If some Dipswitch options are missing from the Arcade -> Settings menu, then make sure that you are using the latest version of Bizhawk.
One game that does not give BIOS selections is Fatal Fury 3 for Arcade for some older Bizhawk versions when it should. Upgrading to the latest Bizhawk version fixed that issue and displays the BIOS options in Fatal Fury 3 for example.
!!"Fatal error InvalidOperationException" OR "A single state must not be larger than buffer" Troubleshooting
Using Bizhawk 2.9.1, this only happens with Naomi titles as far as is known due to their large save states. Eventually as the savestates get larger there comes a point when the default savestate settings are not enough and a fatal exception is thrown. If this happens:
#In TAStudio go to Metadata -> Savestate History Settings
#Increase the "Gaps Buffer - Size". Double it to test.
#Click Ok
#When prompted to Keep Old States click Yes. A "System.IO.IOException: A single state must not be larger than the buffer" error will occur if the increased amount was not enough.
#Increase Gaps Buffer - Size more if you received the above error.
More information here: [https://github.com/TASEmulators/BizHawk/issues/3898]
!!"Unknown load error occurred" Troubleshooting
Using Bizhawk 2.9.1, this was seen when attempting to run a Hyper Neo Geo 64 game "Fatal Fury: Wild Ambition". As of now Hyper Neo Geo 64 does not work.
*The seven Hyper Neo Geo 64 games list: [https://en.wikipedia.org/wiki/Hyper_Neo_Geo_64]
*Github case issue: [https://github.com/TASEmulators/BizHawk/issues/3921]
!!Installed Games Have Black Screen on Reboot
Street Fighter 3rd Strike and Red Earth are two examples of games that have an install before loading the game. These games work fine after the install screen however if the user attempts to reset the game then it will load up in to a black screen. The installation process does not alter the chd files, but instead uses SRAM.
To fix this when encountering a black screen after reboot delete the SRAM files which should be in your Bizhawk \Arcade\SaveRAM folder. Then the game can be reinstalled. Once the game loads up make a save state. Then to play again just load the save state.
!!Change Language Selection
Some games have different methods to select an alternative language setting. However, first check to see if there is not a release already existing in a region for the language you want. For instance, if you are looking for a Japanese version look for the Japanese region release. English language tends to be found in International, USA, or European releases often. For alternative methods to access another language try the following.
#In the Bizhawk menu go to Arcade -> Settings. This will open up the dipswitch settings. In here see if you can change the Bios selection. Sometimes different selections from here can change the language. Fatal Fury 3 for example can have the language change using this method.
#Samurai Spirits for example has a menu that needs the game to be loaded then the Service button pressed to access and the menu is used alongside a Test button. This particular game's menu does not work fully with Bizhawk as far as I know.