MAME File Manager User Guide

User Manual:

Open the PDF directly: View PDF PDF.
Page Count: 46

MAME File Manager
User Guide
Author phweda
Reviewer coccola
0.9.5 Release
Table of Contents
Introduction ................................................................................................................................................ 1
Prerequisites ............................................................................................................................................... 2
Installation .................................................................................................................................................. 3
First Run ..................................................................................................................................................... 4
User Interface ............................................................................................................................................. 6
List Builder ................................................................................................................................................ 9
List Editor ................................................................................................................................................ 10
Software Lists .......................................................................................................................................... 12
Resources ................................................................................................................................................. 14
Command Line Options ........................................................................................................................... 15
Mouse Actions .......................................................................................................................................... 16
Hot Keys .................................................................................................................................................. 17
Menus ....................................................................................................................................................... 19
Popup Menu ............................................................................................................................................. 22
Software List Popup Menu ...................................................................................................................... 23
DATs ......................................................................................................................................................... 24
Troubleshooting ....................................................................................................................................... 25
Help .......................................................................................................................................................... 27
Caution ..................................................................................................................................................... 28
Advanced Usage ...................................................................................................................................... 29
What's New .............................................................................................................................................. 30
MAME XML ........................................................................................................................................... 32
Appendix A – MFM <version>.zip .......................................................................................................... 33
Appendix B – Machine Information ........................................................................................................ 34
Appendix C – Editing startup scripts ....................................................................................................... 35
Appendix D – Resources & Logic ........................................................................................................... 36
Appendix E – Fatal Errors ....................................................................................................................... 38
Appendix F – Add-on Look and Feels ..................................................................................................... 39
Appendix G – MAME Installation ........................................................................................................... 40
Appendix H – MAME Data Sets ............................................................................................................. 41
Why Two Sets?...............................................................................................................................41
Location..........................................................................................................................................41
Appendix I – Glossary ............................................................................................................................. 42
Appendix J – Data Set Torrent ................................................................................................................. 43
Appendix K – Source Code ..................................................................................................................... 44
Introduction
MAME File Manager (MFM) is a desktop application for creating lists of Games and Systems,
and extracting sets of MAME ROMs, CHDs, and Extras to another location from complete or larger
sets. As of June 2018 the total of MAME resources is 3.0 TB+! MFM helps you create smaller sets.
Its primary goals are:
Display all available information for each Machine1
Filter machines to create lists
Create Playsets2 from lists
The primary focus of MFM is machines that are runnable3. However we share both full and runnable
only Data Sets.
MFM does not audit or manage ROMs/CHDs/Extras in any way except for the intended copying a
subset of runnable machines to a different location. It does not validate those files. Use a ROM
Manager (such as Clrmamepro , RomVault or JRomManager) to validate/fix your sets.
MFM will run MAME for you if you have your MAME properly setup and configured. This is a
limited feature providing basics such as running a machine or running and recording a machine. MFM
does not seek to be a full MAME frontend.
1 Machine is the current MAME term for a Game or System
2 Playset is a subset of MAME resources; ROMs, CHDs and Extras, for a list of machines
3 Runnable here is defined by Machine being marked Good or Imperfect by the MAME developers
MFM 0.9.5 1 06/30/2018
Prerequisites
Java 8 or higher installed. Java 10 recommended. In September 2018, Java 11.
At least one set of: MAME ROMs, CHDs, Software List ROMs or Software List CHDs.
MAME – some features of MFM require the MAME executable or additionally MAME
preconfigured to run Machines. (see MAME Installation)
Theoretically MFM will run on any OS with Java 8 (or higher) JVM
Tested Operating Systems:
Windows 7 & 10
Linux Ubuntu 16.10
Mac OS X El Capitan
RAM Memory
Minimum System RAM for the JVM (Java Virtual Machine) will vary based on many factors.
For simple 'out of the box' usage you need at least 1 GB although 2 GB is recommended. Parsing
MAME (see Advanced Usage) requires 4+ GB. With Data Sets the most recent MAME versions,
0.190+, the recommended minimum RAM to run the ALL data sets is 2 GB.
For 32-bit Java your maximum RAM for the JVM is approximately 1280 to 1536 MB.
Screen Size
1280 x 1024 is the smallest screen size that MFM supports. However note that if you use the
large or very large fonts some things will not show completely at that resolution.
1600 x 1024 or larger is recommended.
MFM 0.9.5 2 06/30/2018
Installation
File MFM <version>.zip
Unzip all contents into a folder. Recommended is to give MFM its own folder.
Get Data Sets
Download one or more Data Sets from the site where you obtained MFM. These are placed into
<MFM Root>/Data folder. MFM automatically searches that folder.
If Java system variables are set in your OS (standard Java x64 installation) MFM is ready to run.
Exception is if you are on 32-bit Java, you must edit the startup script.
Use the MFM.bat or MFM.sh4 file provided. These will run without editing. If you do not have Java
system variables set you will need to edit your .bat or .sh to point to the Java executable. See editing
startup scripts.
From Previous MFM
If you have a previous MFM you can copy over your playlists.
Copy file MFM_Playlists.xml from your old MFM to your new <MFM Root>/Settings folder.
4 Unix users need to execute "chmod +x MFM.sh" first
MFM 0.9.5 3 06/30/2018
First Run
A settings windows will open. Image contains example entries as if filled out by you. Left-click
twice on the edit box to launch the File Chooser. Any path you can traverse in the File Chooser can be
used.
Playset directory is where MFM will copy resources to. Simplest setup is to use your MAME
directory.
MAME Executable is where the installed binary of MAME is (mame64.exe), NOT the
installation binary (e.g. mame0180b_64bit.exe).
MAME ROMs NON-MERGED checkbox to differentiate Split and Merged sets from Non-
Merged. Check if you have Non-Merged ROM set. If you have a Split or Merged set and check
this your set will be missing some or all required ROMs. If unchecked and you have a Non-
Merged set unneeded resources are copied.
MFM 0.9.5 4 06/30/2018
If you have more than one Data Set you will then be prompted to select a Data Set.
MFM 0.9.5 5 06/30/2018
User Interface
There are two basic modes: Full and List Only.
Below is a screenshot of Full mode with MAME XML in the left hand panel.
The List Only mode can be activated via switch -list (see Command Line Options).
MFM 0.9.5 6 06/30/2018
Below is a screenshot of Full mode with an ALL data set loaded.
When you load an All data set or parse MAME for all machines, those marked as preliminary (not
runnable), will be highlighted in red. Preliminary machines only appear in the: All, Arcade, BIOS,
Devices, Systems(MESS), and Languages lists.
MFM 0.9.5 7 06/30/2018
List only mode
Below is a screenshot of List only mode with no XML. This setup uses the least memory. It is possible,
but not recommended, to run the latest All sets in this configuration with 1,280 MB RAM.
MFM 0.9.5 8 06/30/2018
List Builder
Set Base List – Select one of your lists to filter. Default is the built-in Runnable (All) list.
Categories – if no categories are selected, MFM does not filter categories
Controls – if no controls are selected, MFM does not filter controls
Any Machine has at least one of the selected Controls
All Machine has all the selected controls
Exact → Machine has exactly the selected controls
Make your selections, enter a List Name, and press the Create List button. If the list generated has one
or more entries, it will be created and displayed in the main view.
Save List to File – Saves selected list to a text file in the <MFM Root>/Lists directory. File name is
<List Name><Data Version>.txt
Import List – Imports list from a text file
Diff Lists – Removed feature; see List Editor
MFM 0.9.5 9 06/30/2018
List Editor
List Editor provides manual editing and List combination capabilities.
Toggle view to side by side or top to bottom
MFM 0.9.5 10 06/30/2018
Left hand or Top List contains all machines. These are the MAME Machine names. If you hover over
an entry the tooltip will show the description. Example: 1941j → 1941: Counter Attack (Japan)
Multi-select ( Ctrl then click entries with left mouse button) to add or remove machines from the
Working List.
Drop down selects a list to:
UAdd this list to the current Working List
Intersection (machines in both) of this list with current Working List entries
Subtract this list from the current Working List
MFM 0.9.5 11 06/30/2018
Software Lists
With 0.9.5 MFM now supports MAME Software Lists. As the name implies, these are lists of
software for MAME: Computers, Game Consoles, and Handhelds. Note MFM 0.9.5 does not support
the copying of individual software from lists. That capability will be added in the next release.
MFM 0.9.5 12 06/30/2018
MFM 0.9.5 13 06/30/2018
Resources
Scanning
When MFM scans (ResourcesScan Resources), it catalogs all of the files in the roots of
your ROMs, CHDs, and Extras sets. Every time you update or change your sets you must rescan. This
data is stored in <MFM Root>/Settings/Resources_cache.ser
Copying
When you select ResourcesCopy Resources, MFM looks up resources in the
Resources_cache.ser for each machine in the selected list. It copies them to the corresponding folder
in your playset directory.
It is important to keep your sets 'clean'. MFM utilizes naming conventions to identify and copy
resources. ROMs and CHDs by filename, and Extras by zip or folder name plus filename. If there are
naming collisions in your sets, duplicate names, MFM resource copying behavior is not guaranteed.
MFM 0.9.5 14 06/30/2018
Command Line Options
-all Include non runnable machines in lists (only applies when you parse MAME)
Moved to UI see Parse MAMEAll or Parse MAMERunnable
-list list only view
-d debug logging
-m memory usage logging
-s system out development logging – writes to command shell – some of these also go to the
standard debug log
Examples see below
MFM 0.9.5 15 06/30/2018
Mouse Actions
Double Click
In the List: will run that Machine (if your MAME is configured)
Over an Extras image: will open that image file from your OS
Hover
Over the Game(System) Name column: will open a tool tip with the top of the history entry for
that machine see above
Left Click – ini Folder view only
If machine highlighted in the Folder tree exists in the open list that list will scroll to it
Right Click
Over MAME tree: will copy the value displayed at that location
Over the list: will open a popup menu for that machine
MFM 0.9.5 16 06/30/2018
Hot Keys
Key Function – for selected Machine
ENTER Run the selected Machine
F1 Show History
F2 Show Manual
F3 Show Info
F4 Record Game to INP
F5 Playback to AVI
F6 Playback Game
F7 Play Game to AVI
F8 Play Video
F9 Edit AVI
F10 unassigned
F11 Crop AVI
F12 Convert Videos to MP4
CTRL c Copy – copies selected Machine information
CTRL o Opens file chooser in the MFM List directory to open selected file
CTRL x Show XML for selected Machine
CTRL z Zip MFM logs
List Functions
CTRL Go to next list
CTRL Go to previous list
ALT Go to next My List
ALT Go to previous My List
a Switch to the ALL list
b Switch to the BIOS list
c Switch to the CLONE list
d Switch to the DEVICE list
h Switch to the HORIZONTAL list
n Switch to the NOCLONE list
r Switch to the RUNNABLE list
s Switch to the SYSTEMS(MESS) list
MFM 0.9.5 17 06/30/2018
v Switch to the VERTICAL list
ALT c Switch to the CHD list
ALT Shift c Switch to the COCKTAIL list
CTRL a Switch to the ARCADE list
CTRL n Switch to the NOIMPERFECT list
CTRL r Switch to the RASTER list
CTRL s Switch to the SIMULTANEOUS list
CTRL v Switch to the VECTOR list
Special Advanced Functions
CTRL Shift d Saves DATs for all built-in lists to a zip file in the /Data directory
CTRL Shift j Saves selected list data to JSON format in the /Lists directory
CTRL Shift k Saves every Machine's data to JSON format in the /Lists directory
CTRL Shift s Saves MAME statistics for the current: Appendix H – MAME Data Sets
CTRL Shift z Programmer only: generates new Category Lists Map to hard coded
location
CTRL ALT z Generates new Category Lists Map from entered CSV file to <MFM
Root>/Category folder – name entered by user
MFM 0.9.5 18 06/30/2018
Menus
MFM
Open File – Opens a file chooser window in the MFM Lists folder. File chosen will be
opened from the OS (if a file association exists).
Settings – Opens the MFM settings window
Load Data Set – User selects MAME Data Set by version (if more than one is present)
Show MAME XML – select this to load tree view of MAME XML. MFM stores your
selection.
Parse MAME – User-initiated data set creation. Parses the MAME executable in your
settings
All – all machines
Runnable – runnable machines
Exit – Closes MFM
Logs
Log – Opens the MFM log in your OS's default Text editor
MAME_OUTPUT – Opens log of MAME command shell output. (only if you ran MAME
from MFM)
Error Log - Opens the MFM error log in your OS's default Text editor
If you run with -d or -s debug flags you will also get these three menus
Zip Logs – zips up your MFM logs
Paste errors to Pastie – pastes last 100 lines of the error log to pastie.org
DUMP WAYS Controls – Saves this information to file to support coding filters
Clean Logs – Deletes any MFM logs older than 48 hours
Video
Vdub – legacy function to support video project; requires VirtualDub
Ffmpeg – legacy function to support video project; requires ffmpeg
Extract GIF Images – little developer add-on for scrolling through GIF frames and saving
those images. (saved to <MFM ROOT>/Images)
Extract AVI Images – same as above but disabled by default due to extreme memory usage
MFM 0.9.5 19 06/30/2018
DAT
Create DAT from List – creates DAT file for selected list
Create List from DAT – creates a List from DAT entries (not validated so MFM may not
have information for all these Machines)
Validate DAT – select a DAT file and MFM will validate it. This confirms the file conforms
to the DAT DTD.
Filter DAT by List – Loads a DAT file and removes any entires NOT in selected MFM list
Filter DAT by External List – Loads a DAT file and removes any entires NOT in selected
file (file must contain flat list of machine names, one per line)
Resources
Scan Resources – Scans the resource roots in your MFM settings and stores the file
information to support copying resources
Copy Resources – Copies all available resources for the Machines in the selected list to the
Playset directory
Save Resources to File – Creates a text file with a list of the resources found by MFM for
this list
List
List Builder
Previous – Opens the state of List Builder when last used
New – Opens fresh corresponds to the All list
(MFM built in lists) – Opens List Builder with setting to produce this MFM built in list
My Lists
(Lists you have created or imported)
MFM Lists
Software Lists
Scrollable list of all MAME software lists
Language Lists → All language lists from ProgettoSnaps
(All built in MFM lists)
Import List – creates list from a file
Remove List – deletes this list from MFM
Save List to File – creates text file with this list's machines
Save List Data – creates a CSV file with a subset of Machine data
MFM 0.9.5 20 06/30/2018
UI
Font Size – changes the display font size
Very Large
Large
Normal
Look & Feel – synonymous with skins; changes the look of the MFM GUI
Various depending on your OS and Java installation.
Help
MFM User Guide – this guide
About
MFM Copyright
GNU Copyright
MFM 0.9.5 21 06/30/2018
Popup Menu
Add to List : Adds this machine to list you select. If you select -NEW- you can enter a new list
name which will be created with this machine as its entry.
Remove from List : Remove this machine from list you select
If you have MAME configured properly; otherwise these will fail.
Record : Runs machine in MAME and records to .inp file
Play Video : If a video file exists for this machine opens it from your OS
VideoOps
Play & Record to AVI : Runs machine in MAME and records to AVI file (configured snaps
directory)
Playback to AVI : If .inp exists for this machine plays it back in MAME while recording to
AVI file
Edit Video : If .avi file exists for this machine and you have VirtualDub installed opens that
file in VirtualDub
Crop AVI : If .avi file exists for this machine and you have ffmpeg installed will crop the
avi to even numbers (some systems output unusual AVI frame sizes)
Show History : Shows the full History for this machine
Show Manual : If manual exists for this machine opens it from your OS
Show Info : Shows all the info available for this machine
Show Machine Tree : Opens MAME XML for this machine
Show Controls & Devices : Shows controls and devices for this machine
GOTO cloneof : If parent machine is in this list, scrolls to that parent machine
Open Image : Opens currently displayed image from your OS
Exit : Exits MFM
MFM 0.9.5 22 06/30/2018
Software List Popup Menu
Same as above but with fewer options. You get this menu for Software (Software List entries).
MFM 0.9.5 23 06/30/2018
DATs
MFM produces DAT files for lists. The DAT produced is complete per Machine. Each entry
contains all the required resources: BIOS, CHD, Devices, and ROMs. In the parlance of MAME it
would be a Full Non-merged set. See Non-Merged.
MFM 0.9.5 24 06/30/2018
Troubleshooting
1) MFM does not run when I execute the .bat or .sh file.
(a) Do you have Java 8 or higher installed? Goto a command shell and enter >java -version
You should get output like:
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode)
Solutions
If you do have Java installed try editing your .bat or .sh file to point
directly (complete path) to the java.exe file
Otherwise install Java
(b) Check for MFM logs in the <MFM Root>/Logs directory. You should find two logs for
each attempt.
i. Contact us with logs available
ii. If logs do not exist try to run the .bat or .sh from the command shell. In that file add the
-d and -s flags
iii. Save the command line output and contact us
2) First run after inputting Settings you get the following dialog. Did you download Data Sets and
place them in <MFM Root>/Data folder?
MFM 0.9.5 25 06/30/2018
3) MFM regularly hangs, stops responding, for 1 to 5+ seconds. JVM is pausing to free up
memory
(a) Turn off Show MAME XML
(b) Run in List Only mode MFM flag -list : extracting/showing images uses a lot of memory
(c) Increase the memory to run MFM
4) You get the following error. Did you delete a Data Set? Did you hand edit your settings file?
MFM 0.9.5 26 06/30/2018
Help
If you are familiar with the site we are members of you can get on the forum thread for MFM.
Or you can join us on IRC. ForeverChat #MFM channel.
MFM 0.9.5 27 06/30/2018
Caution
Always close MFM in the application via MFM → Exit or the close X of the window.
MFM utilizes temporary files to display or open zipped resources. It will delete these on
proper exit.
Do not run MFM by double clicking the .jar file. If you do MFM may draw too much memory
(RAM) and slow your system.
MFM does not monitor your ROMs/CHDs/Extras sets. If you update or change them you must
rescan resources before copying.
When copying resources to your Playset directory MFM will, without warning, overwrite any
files already there.
NEVER try to edit settings files except the two noted in the next section Advanced Usage.
MFM 0.9.5 28 06/30/2018
Advanced Usage
The following require some manual steps. In the future some of these will be automated.
1. Controllers name mapping You can change the display names for controllers displayed in the
List Builder. Goto <MFM Root>/Settings and open file MAME_Controllers.ini. You will see
entries such as:
dial = Dial
doublejoy = 2 Joysticks
gambling = Gambling Buttons
DO NOT change values on the left. Values on the right after the = can be changed. Save your
changes and restart MFM. Open List Builder → New you should see your controller names
changed.
2. Adding/changing Extras folders
MAME_folders.ini contains the list of folder/zip names MFM uses to search for and copy
machine extras. You can add or change this list by editing that file. For example I do NOT want
Artwork copied so I remove that line. Maybe you have an older Extras set and want folder
cabdevs copied. Add a line cabdevs to the file.
Open <MFM Root>/Settings/MAME_folders.ini
3. Parsing MAME
a) You must have MAME Extras if you want all data.
b) If you want updated category, version, language, and players information you need to get
most recent versions of these files:
i. catver.ini → Found at Progetto Snaps
ii. Extras files
c) MFM → Parse MAME Runnable or Parse MAME All Parses the currently set MAME
executable
d) If setup correctly you should see the following progress bar at the bottom of MFM.
NOTE: Parsing is NOT bulletproof.
Known bug. All/Runnable lists do not reset properly on a re-parse. Restart MFM between
parsings.
Contact the author for Help.
MFM 0.9.5 29 06/30/2018
What's New
0.9.5 Release
Software Lists import and display
You can view all software lists
You can select into your lists; but not available for copying by individual
softwarelist item in this version.
Added default option to not show XML
No XML option – allows for much smaller memory footprint for users with limited
RAM
Generation of JSON to file by list
Updated Categories mapping for new categories
Updated for major MAME XML changes
Add all new Elements and Attributes
Added code to better handle unknown XML going forward
Added DAT file checker
Removed -all flag see Command Line Options
Selection of available Data Set determines All or Runnable only displayed
Parsing now by Menu selection All or Runnable
Automation of updating of the Categories Lists (CategoryListsMap.xml) imported from
catver.ini
Logic 95%+ complete
Overlapping root categories still requires manual tweak
Added ability to automatically import these from .csv file
Bug fixes
Ensured List Builder is refreshed after Data Set is changed
Trap and added message dialog on failure to Parse XML
Added MFM Icon to dialogs
Changed progressbar background to white for readability (in the bottom status bar)
Classes all consolidated into MFM.jar
swingx classes – eliminates need to include separate jar file in the distribution
FasterXML Jackson classes – used to provide JSON output
MFM 0.9.5 30 06/30/2018
0.9 Release
Major addition is the List Editor
Added features to the List Builder: Year Filter, No Machine, select Base List to filter,
advanced Controls filter logic
List Builder UI updated
Added DAT menu and new DAT functionality: Create List from DAT,
Filter DAT by List, Filter DAT by External List
Fix for ListSave List Data bug which truncated output for some older MAME
version Data Sets and Lists
0.85 Release
Major addition is support for switching between data for multiple MAME versions
Parsing and display of -listxml for all MAME versions beginning with 0.70 (first with
-listxml) to present5
Parsing your MAME version triggered from the UI
Added Devices as a built-in list
Fix parsing bug for updated messinfo.dat (183 extras)
5 In older MAME versions not all -listXML Elements/Attributes exist in MFM. We have ported a subset of the XML
changes see next section.
MFM 0.9.5 31 06/30/2018
MAME XML
It is important to understand the context of the MAME -listxml output within the overall project.
MAME's purpose is to preserve decades of software history. Outputting machine related data via XML
is an add-on data dissemination feature provided to benefit MAME related tools, primarily Front Ends
and ROM Managers. And of course MFM.
MAME XML Document structure is defined by a DTD. However that definition is not static. It
changes over time as the MAME project evolves. Maintaining backward compatibility is NOT a
requirement for the MAMEDev team. So any tool utilizing this output must adjust to these changes
over time.
With the 0.85 release MFM supports the MAME XML for all versions beginning with 0.70
onward. However this does not mean “all the XML”. Where needed to support core MFM
functionality, such as lists and DATs, MFM code is provided to port older information to the newer
XML Document type.
MFM's code base for MAME objects is based on the MAME 0.180 DTD and extended to 0.197
with 0.95 release. This means that for the most recent MAME versions (0.175-0.197) the XML
displayed and used by MFM is an almost exact (99.99%+) representation. The further back the MAME
version the greater the gaps in the XML displayed by MFM.
As of MAME 0.197 there have been 30 different DTDs for MAME XML.
0.70, 0.71, 0.85, 0.96, 0.102, 0.107, 0.115, 0.118, 0.124, 0.127, 0.132, 0.135, 0.136, 0.137, 0.139,
0.140, 0.142, 0.143, 0.144, 0.145, 0.146, 0.150, 0.153, 0.162, 0.173, 0.175, 0.184, 0.186, 0.189, 0.191
& 0.197.6
Where a simple Element rename occurred e.g. Game to Machine the translation by code is simple. But
in MFM you will always see “Machine” in the displayed XML even for versions 161 or older where
the actual XML has “Game”.
6 A few of these DTD changes are minor such as the 184 & 186 changes which have no effect on MFM
MFM 0.9.5 32 06/30/2018
Appendix A – MFM <version>.zip
MFM<version>.zip contains:
MFM.jar – the application
MFM.bat – command file for Windows
MFM.sh – shell file for Unix systems
Folders
Category
ArcadeCategoryRoots.xml removed as of 0.9.5
CategoryListsMap.xml
CategoryRoots.xml removed as of 0.9.5
folders
catver.ini
languages.ini
nplayers.ini
Jars
swingx-all-1.6.4.jar removed as of 0.9.5 all required classes consolidated into the
MFM.jar
Lists
Favs.txt Phweda's favorites – use ListImport List to add to MFM
Settings
MAME_Controllers.ini Controllers naming mapping
MAME_folders.ini MAME extras folders list
MAME File Manager User Guide.pdf
MFM 0.9.5 33 06/30/2018
Appendix B – Machine Information
MFM utilizes multiple sources for information.
The MAME executable is the primary source of information. It is obtained by parsing the
-listxml output. As of 0.85 MFM can provide XML output for MAME 0.70 or newer.
P rogetto-SNAPS by AntoPISA provides the catver.ini and languages.ini files bundled and used
by MFM. All Category, Version and Languages data in MFM are from these two files. Additionally a
huge number of the MAME Extras resources come from this site.
MAME Extras contain information files which MFM parses. They are: history.dat,
mameinfo.dat, mess.dat, sysinfo.dat, languages.ini, nplayers.ini
MFM 0.9.5 34 06/30/2018
Appendix C – Editing startup scripts
Editing your .bat or .sh startup script
To reference Java put in the full path to the executable:
Windows
"C:\Program Files (x86)\Java\jre1.8.0_45\bin\java.exe" -XX:+UseG1GC -Xms2g -Xmx2g -jar
./MFM.jar <MFM flags>
Linux
/usr/lib/jvm/java-8-oracle/jre/bin/java -XX:+UseG1GC -Xms2g -Xmx2g -jar ./MFM.jar <MFM flags>
32-bit Java: you can try to increase this up to about maximum of 1536 MB
java -XX:+UseG1GC -Xms1280m -Xmx1280m -jar ./MFM.jar <MFM flags>
Java RAM flags:
-Xms2g sets initial memory for the JVM where '2g' means 2 GB
-Xms1280m sets initial memory for the JVM where '1280m' means 1280 MB
-Xmx4g sets maximum memory for the JVM where '4g' means 4 GB
-Xmx1280m sets maximum memory for the JVM where '1280m' means 1280 MB
If you parse MAME with MFM: (NOTE: 4+ GB required)
java -XX:+UseG1GC -Xms4g -Xmx6g -jar ./MFM.jar <MFM flags>
To run List Only:
java -XX:+UseG1GC -Xms1g -Xmx1g -jar ./MFM.jar -list
To run ALL sets of most recent (180+) MAME versions:
java -XX:+UseG1GC -Xms4g -Xmx4g -jar ./MFM.jar -list
Debugging:
java -XX:+UseG1GC -Xms2g -Xmx2g -jar ./MFM.jar -d -s -m
MFM 0.9.5 35 06/30/2018
Appendix D – Resources & Logic
i. MFM expects resource sets; ROMs, CHDs, and Extras, to conform to the naming conventions
in MAME.
ii. Resource Logic
1. ROMs are discovered by searching your entered ROM roots for <Machine name>.zip or
<Machine name>.7z
2. CHDs are discovered by searching your CHD roots for the CHD(s) by full file name from
MAME. Such as area51.chd or golf_fore_2003_v3.00.09.chd
3. Extras are discovered by searching your Extras root for <Machine name>. And searching
any zips in your Extras folder that match folder names defined in MAME_folders.ini .
When it discovers a match it will copy to the corresponding playset extras folder. For
example:
C:\MAME EXTRAs\flyers\005.png will copy to C:\MAME Selected\flyers\005.png
C:\MAME EXTRAs\flyers.zip(005.png) will copy to C:\MAME Selected\flyers\005.png
iii. Extras folders in the Playset
1. MFM utilizes the entries from MAME_folders.ini to search your Playset directory for
those folders. If it finds them then it uses those locations to copy resources to.
2. If a MAME_folders.ini entry is found, folder or zip, in your Extras full set, but not in your
Playset, MFM will create that folder as needed when copying resources. When MFM
creates a Playset folder such as cabdevs it is <Playset root>\ cabdevs
MAME Extras
Some folders/archives are used by the MAME emulator:
artwork: Progetto-SNAPS → contains: bezels, control panels, marquees, instruction cards,
backdrops, overlays, lamps and LEDs
ctrlr: Pierre Kutec's → controller configurations
samples: Progetto-SNAPS → ZIPped WAV files for systems that don't have audio
emulated yet
cheat.7z: Pugsy's Cheats → compilation of cheats
The dats folder has text files displayed by MAME. Its contents are:
command.dat: Progetto-SNAPS → commands list (e.g. how to do a Hadouken in Street Fighter)
gameinit.dat: Progetto-SNAPS → initialization procedures for games not playable on first run
hiscore.dat: MAMEdev contained in releases → unofficial highest scores achieved
history.dat: Arcade History → history information text file
mameinfo.dat: MASH's MAMEINFO → information text file of arcade games
messinfo.dat: Progetto-SNAPS → information for non-arcade machines
story.dat: MAMESCOREtop scores
sysinfo.dat: Progetto EMMA → systems information; contains details of the machines and basic
usage instructions
MFM 0.9.5 36 06/30/2018
The folders folder has INI files. Each INI file appears in MAME (or frontends) as one or more
folders with systems inside according to specific criteria. Its contents are:
arcade.ini: Progetto-SNAPS → arcade games
arcade_NOBIOS.ini: Progetto-SNAPS → arcade games that don't require a BIOS to run
category.ini: Progetto-SNAPS → systems in about 235 categories
catlist.ini: Progetto-SNAPS → systems in about 224 categories (with slightly different criteria)
genre.ini: Progetto-SNAPS → systems in about 28 categories
languages.ini: Progetto-SNAPS → systems in about 16 languages
mamescore.ini: MAMESCORE → games with MAMESCORE entries
mess.ini: Progetto-SNAPS → non-arcade systems
monochrome.ini: Progetto-SNAPS → games with two colors in three categories: "Black and
White Games", "Monochromatic Games" and "Vectorial Black and White"
nplayers.ini: Nplayers → how many players the game supports and if it's simultaneous play
screenless.ini: Progetto-SNAPS → systems without video output
series.ini: Progetto-SNAPS → lists series of games
version.ini: Progetto-SNAPS → lists of games that were added on every MAME version
The other archives are used by the MAME emulator or frontends – All from P rogetto Snaps:
artpreview → artwork preview screenshots
bosses → boss (final and hardest enemy of a level) screenshots
cabinets → cabinets screenshots
covers_SL → covers of the Software Lists
cpanel → images of control panels
devices → images of the electronic gadgets
ends → screenshot of the end of each game (when the game is completed)
flyers → scanned paper advertisement intended for wide distribution to promote the systems
gameover → screenshot of the game over message of every game
howto → screenshot of the general instructions that the games display
icons → icons of arcade games and the other systems
logo → screenshot of the logo of the company that created every game
manuals → manuals in PDF (usage and operational)
manuals_SL → manuals in PDF (usage and operational) of Software Lists
marquees → photos of the brand of the cab that is on the top of the cabinet, usually back-lit neon
sign
pcb → Printed Circuit Board snapshots; photos of the motherboards of the systems
scores → screenshot of the default high score of every game
select → screenshot of one selection menu of every game (character, country, level, gun, tool,
language etc)
snap → in-game screenshots
snap_SL → in-game Software Lists screenshots
titles → title screenshots, usually taken when the name of the game is shown during attract mode
titles_SL → title screenshots of Software Lists, usually taken when the name of the game is
shown during attract mode
versus → screenshot of the presentation of the characters that will play against each other
MFM 0.9.5 37 06/30/2018
Appendix E – Fatal Errors
Message Explanation
Process finished with exit code 2 User chose to not parse MAME and has no Data Sets
(MFMController.java)
Process finished with exit code 3 Total failure to load MAME info after Parsing attempt. Check
MAME runs. (MAMEInfo.java)
Process finished with exit code 4 User canceled MFM Settings – cannot run without them
(MFM_SettingsPanel.java)
Process finished with exit code 5 Data integrity issue. MFM_cache.ser missing or corrupt.
(MFMListBuilder.java)
Process finished with exit code 6 Data integrity issue. Data Set MFM is set to load is not found.
Did you delete or alter a Data Set file?(MFM_Data.java)
Process finished with exit code 7 MFM failed to detect its running directory (MFM.java)
Process finished with exit code 8 MFM failed to find/create its required directories (MFM.java)
Process finished with exit code 9 MFM failed to load data set or parse MAME (MFMInfo.java)
Process finished with exit code 10 MFM failed to find the previous data set
Process finished with exit code 11 MFM settings file corrupted? MFM_Data.java
MFM 0.9.5 38 06/30/2018
Appendix F – Add-on Look and Feels
MFM supports several optional Java Look and Feels. If you want to add them download the
JAR files from the sites below and put them into <MFM Root>/Jars folder. MFM will pick them up
when it runs next.
NOTE: you will find certain L&Fs with 'bugs' in the layout and function of the UI. Coding and testing
for every L&F is beyond the scope of this project.
1. http://www.jgoodies.com - jgoodies-looks-2.6.0.jar & jgoodies-common-1.7.0.jar
2. http://www.jtattoo.net - JTattoo-1.6.10.jar
3. http://www.easynth.com/freewares/EaSynthLookAndFeel.html – EaSynthLookAndFeel.jar
4. https://sourceforge.net/projects/liquidlnf/ - LiquidLnF.jar : Download liquidlnf-0.2.9-alpha5.zip
which contains the jar file.
MFM 0.9.5 39 06/30/2018
Appendix G – MAME Installation
Create the ini file with the appropriate command:
mame64 -createconfig
Edit the mame.ini file created on the same folder of the emulator executable and add the
corresponding paths. Example:
rompath roms;C:\MAME ROMs;C:\MAME CHDs;C:\MAME SL ROMs;C:\MAME
SL CHDs
samplepath samples;C:\MAME EXTRAs\samples
artpath artwork;C:\MAME EXTRAs\artwork
ctrlrpath ctrlr;C:\MAME EXTRAs\ctrlr
cheatpath cheat;C:\MAME EXTRAs\cheat
snapshot_directory snap;C:\MAME EXTRAs
Edit the ui.ini file created on the same folder of the emulator executable and add the
corresponding paths. Example:
historypath history;dats;.;C:\MAME EXTRAs\dats
extrainipath folders;C:\MAME EXTRAs\folders
cabinets_directory cabinets;cabdevs;C:\MAME EXTRAs
cpanels_directory cpanel;C:\MAME EXTRAs
pcbs_directory pcb;C:\MAME EXTRAs
flyers_directory flyers;C:\MAME EXTRAs
titles_directory titles;C:\MAME EXTRAs
ends_directory ends;C:\MAME EXTRAs
marquees_directory marquees;C:\MAME EXTRAs
artwork_preview_directory "artwork preview;artpreview";C:\MAME EXTRAs
bosses_directory bosses;C:\MAME EXTRAs
logos_directory logo;C:\MAME EXTRAs
scores_directory scores;C:\MAME EXTRAs
versus_directory versus;C:\MAME EXTRAs
gameover_directory gameover;C:\MAME EXTRAs
howto_directory howto;C:\MAME EXTRAs
select_directory select;C:\MAME EXTRAs
icons_directory icons;C:\MAME EXTRAs
covers_directory covers;C:\MAME EXTRAs
MFM 0.9.5 40 06/30/2018
Appendix H – MAME Data Sets
MFM provides support for switching between MAME version data sets. We share pre-compiled
sets.
Each set is contained in a single zip file. MFM reads directly from these archives.
For example the 0.198 sets are:
MFM_MAME_ALL_0.198.zip contains all machines ~63MB
MFM_MAME_0.198.zip only contains runnable machines ~37MB
The files contained in each archive are:
MFM_cache.ser Category and built-in Lists data
MFM_MAME.xml MAME XML data
Why Two Sets?
MAME versions from 0.143 onward will have the two sets as above. 0.70 → 0.142 will just be
the complete ALL set. Between 0.142 and 0.147 the total number of MAME machines grew
approximately 2.5 times. In older sets the majority of machines were runnable whereas with current
MAME versions only ~35% run. So two main reasons:
By Design. Primary purpose of MFM is to create subsets of runnable machines. So MFM users
who use it for this reason have no need for the full set.
Resource usage. Absolute minimum RAM required to run 0.198 ALL set in Full mode is 2+
GB. The 0.198 runnable set will run with 1 GB RAM. MFM strives to remain usable for people
with older or limited resource systems.
Location
<MFM Root>/Data folder. MFM automatically searches under that folder (can be in sub
folders).
MFM 0.9.5 41 06/30/2018
Appendix I – Glossary
Term/Acronym Represents
CHD Compressed Hunks of Data MAME specific format to support large data
sets: hard disks, laser disks etc.
DTD Document Type Definition
JVM Java Virtual Machine
GUI Graphical User Interface
MAME Multiple Arcade Machine Emulator
MFM MAME File Manager
RAM Random-Access Memory
ROM Read-Only Memory
MFM 0.9.5 42 06/30/2018
Appendix J – Data Set Torrent
BOLD are folders.
DATA
_Readme_.txt
MFM_Readme.txt
MFM_Data_Versions.xml
All Machines
MFM_MAME_ALL_185.zip
MFM_MAME_ALL_184.zip
(various versions)
MFM_MAME_all_70.zip
JSON
Everything_ALL_0.189_data.json
Everything_ALL_0.190_data.json
List DATs (playable only for 143 or higher)
180_DATs.zip ( contains DATs for all MFM built-in lists)
179_DATs.zip
(various versions)
70_DATs.zip
Playable Machines
MFM_MAME_185.zip
MFM_MAME_184.zip
(various versions)
MFM_MAME_143.zip
MFM 0.9.5 43 06/30/2018
Appendix K – Source Code
Hosted on GitHub at https://github.com/phweda/MFM
MFM 0.9.5 44 06/30/2018

Navigation menu