MAME File Manager User Guide

User Manual:

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

DownloadMAME File Manager User Guide
Open PDF In BrowserView PDF
MAME File Manager
User Guide
Author
Reviewer

phweda
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 .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 .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
/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 /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 NonMerged. 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 NonMerged 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 /Lists directory. File name is
.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:
U

Add 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 (Resources → Scan 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 /Settings/Resources_cache.ser
Copying
When you select Resources → Copy 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 MAME → All or Parse MAME → Runnable

-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 /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 /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 /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 /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 /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 /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
executable

Parses the currently set MAME

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 List → Save 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 .zip
MFM.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 List → Import 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.
Progetto-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 
Linux
/usr/lib/jvm/java-8-oracle/jre/bin/java -XX:+UseG1GC -Xms2g -Xmx2g -jar ./MFM.jar 
32-bit Java: you can try to increase this up to about maximum of 1536 MB
java -XX:+UseG1GC -Xms1280m -Xmx1280m -jar ./MFM.jar 
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 
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 .zip or
.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 . 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 \ 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: MAMESCORE → top 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 Progetto 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 /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
SL CHDs
samplepath
artpath
ctrlrpath
cheatpath
snapshot_directory

roms;C:\MAME ROMs;C:\MAME CHDs;C:\MAME SL ROMs;C:\MAME
samples;C:\MAME EXTRAs\samples
artwork;C:\MAME EXTRAs\artwork
ctrlr;C:\MAME EXTRAs\ctrlr
cheat;C:\MAME EXTRAs\cheat
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
extrainipath
cabinets_directory
cpanels_directory
pcbs_directory
flyers_directory
titles_directory
ends_directory
marquees_directory
artwork_preview_directory
bosses_directory
logos_directory
scores_directory
versus_directory
gameover_directory
howto_directory
select_directory
icons_directory
covers_directory

MFM 0.9.5

history;dats;.;C:\MAME EXTRAs\dats
folders;C:\MAME EXTRAs\folders
cabinets;cabdevs;C:\MAME EXTRAs
cpanel;C:\MAME EXTRAs
pcb;C:\MAME EXTRAs
flyers;C:\MAME EXTRAs
titles;C:\MAME EXTRAs
ends;C:\MAME EXTRAs
marquees;C:\MAME EXTRAs
"artwork preview;artpreview";C:\MAME EXTRAs
bosses;C:\MAME EXTRAs
logo;C:\MAME EXTRAs
scores;C:\MAME EXTRAs
versus;C:\MAME EXTRAs
gameover;C:\MAME EXTRAs
howto;C:\MAME EXTRAs
select;C:\MAME EXTRAs
icons;C:\MAME EXTRAs
covers;C:\MAME EXTRAs

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
 MFM_MAME.xml

Category and built-in Lists data
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
/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



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.4
Linearized                      : No
Page Count                      : 46
Language                        : en-US
Author                          : Philip Davis
Creator                         : Writer
Producer                        : OpenOffice 4.1.1
Create Date                     : 2018:07:01 09:46:46-04:00
EXIF Metadata provided by EXIF.tools

Navigation menu