Hi all,
I worked on a personal project for the last months.
The objective was to use a Raspberry Pi 4B and make it as a dedicated MAME Appliance. The system is minimal (following the JeOS principle) and boot straight into the very latest version of MAME. No clutter, no waste of resources and most of all, no useless GUI/window manager (X11).
The performances are really good, as most of the '80s and '90s arcade games run at full speed. Many 2000s games run at full speed as well.
Features and functionalities:
- Based on Raspbian Lite (minimal Linux edition based on Debian);
- At startup, display of a custom splash screen (for example, the MAME logo);
- The MAME emulator starts automatically and displays the ROM selection screen;
- Choice of 2 Front-ends available: Attract Mode or AdvanceMENU. If selected, automatic start at boot (instead of the MAME GUI);
- NEW (2021-10-24): Addition of Hypseus Singe, LaserDisc emulator (v2.8.0-RPi);
- When you exit MAME, the system initiates a shutdown;
- During the shutdown, display of a personalized splash screen (for example, the MAME logo);
- When the stop operations are completed, the system powers off;
- To preserve the life of the SD card, the root filesystem is kept in read-only mode;
- ROMs Hiscores are persistent;
- Sound volume is persistent;
- Automatic single-ROM launch at boot (called AutoROM mode) for dedicated cabinet/game;
- A maintenance mode is proposed (it's called the Service Mode) to allow system updates and the management of ROMs and Snapshots (via a Samba file share).
- While in Service Mode:
- As soon as you add new ROM files, the snapshots/titles (and others, if available) images will be scraped/downloaded automatically.
- As soon as you remove/delete ROM files, the associated graphic files will be deleted.
Youtube demonstration video:
I made a How-To Guide and hosted it on GitHub, but as I am French-speaking, it is written in French. Feel free to translate it to English with Google Translate.
Here is the link to the Step-by-Step How-to Guide:
https://gist.github.com/sonicprod/f5a7bb10fb9ed1cc5124766831e120c4Google Translate to English :
https://translate.google.ca/translate?hl=fr&tab=wT&sl=fr&tl=en&u=https%3A%2F%2Fgist.github.com%2Fsonicprod%2Ff5a7bb10fb9ed1cc5124766831e120c4Feel free to comment.
Thanks and happy classic/arcade gaming!
-------------------
EDIT 2022/12/19: Here is a new 13 GB SD card image of the system with MAME 0.250 (arcade systems *and* classic computer systems), without ROMs (just put them into /data/roms using the Samba share while in Service mode). The download file size is reduced to 1.3 GB, once compressed (gzip).
https://drive.google.com/file/d/1yd4YG0qNVGhcwFcXYwp_4-3Lor-RUzDo/view?usp=sharingImportant information: - The password of the user pi is left to default (raspberry)
- The Wi-Fi has not been disabled
- No overclocking has been configured in /boot/config.txt
- No controller has been configured in mame.ini
- You will have to expand the /data partition by executing a script (see below)
The system will initially boot in Service mode. Just log in and type:
./expand-data-partition.sh
This script will expand /data from 200 MB to all the available free space of the SD Card.
Please refer to the README.txt file once logged in the system.
Please note:
- This edition include 2 front-ends that you can use in place of the MAME GUI (default): Attract Mode and AdvanceMENU
- Attract Mode is pre-configured with an emulator called "MAME", so you will need to complete the setup using the [Tab] key to (generate the Romlist, etc.).
- The front-ends are provided as-is and I will not provide support for them.
- If you choose to use them, you should know how to configure them by your own.
- There is a known issue with configuring the Wi-Fi with raspi-config. Please use the offline method with creating wpa_supplicant.conf in the boot partition (https://linuxhint.com/rasperberry_pi_wifi_wpa_supplicant/).
- 2021-10-31: From MAME 0.237, you will need to move your Hi-Scores files from /data/mame/hi to /data/mame/lua/highscore folder.
----
Let me know how you appreciate the system! :-)