This info is out of date! All you need is the script “update_all“
MiSTer FPGA is an amazing open-source platform where they use an FPGA development board from Terasic as the base to be able to do cycle-accurate emulation of computers, arcade games, and gaming consoles. But to get everything set up isn’t very easy. My main interest is the arcade cores for being able to play my favorite old games precisely as it would be, playing on the original hardware. I’ll try to give you a rundown on how to get it to work here.
MiSTer FPGA Arcade Cores
There’s currently much work going on in the development of the different hardware emulations of old arcade games. When you install the SD-card for MiSTer FPGA, you get everything you need, except the ROM files (software) to run the supported games. But the ROM files (usually in a .zip file) needs to be converted to a usable format for the FPGA implementation.
What you need is a non-merged version of the MAME ROM Disclaimer: it’s illegal to download ROMs you don’t own. You used to have to run either a Windows BAT script, a Linux shell script, or copy your ROM files to a folder on your FPGA board and run a script locally. But changes are going on in the way the ROM files are handled. These changes are there to make everything easier to have an emulated board run different ROMs on it. It also makes it possible not to have to convert the zipped ROM file before using it. The new file type, called .mra, is the future. But how do you use it instead of the old way?
There’s already support for the new way of using .mra files in the update script on in the MiSTer FPGA installation. But to get the update script to use the new way of handling MAME ROMs, you need to do some extra steps.
To get it to work with .mra files, you need to make some changes.
The easiest option is to enable FTP to connect to your FPGA board. There’s a script to enable FTP included with the MiSTer FPGA standard installation so that you can enable it directly on your board via the Script menu.
The MiSTer FPGA password for SSH and FTP is 1
Create a new folder in /media/fat/_Arcade called mame
- Copy all the .zip MAME ROM files to /media/fat/_Arcade/mame
- Add a configuration file called update.ini into /media/fat/#Scripts
- Add the following text to the update.ini file:
- Run the script update.sh either from the menu system inside MiSTer FPGA or via SSH.
The update.sh script will now download all the cores needed into a folder called /media/fat/_Arcade/cores automatically. The needed .mra files will also be downloaded to the /media/fat/_Arcade folder automatically.
So the final file structure should now look like this:
- /media/fat/_Arcade has all the needed .mra files
- /media/fat/_Arcade/mame should contain your uploaded .zip MAME ROM files
- /media/fat/_Arcade/cores should contain all the .rbf FPGA emulation code files.
Sooner or later, all this will be unnecessary because the use of .mra files is going to be the standard way of doing things. But until then, you can make there changes and get a fully running system. There might be some small problems during the transition, but they will be ironed out with time.
Is this still uptodate? Or has anything changed?
I am new to MISTer FPGA and I have successfully set it up, even installed WIFI and FTP access. Everything is working great. And everything looks fantastic on my old PC CRT monitor (which now has a new purpose in life after it sat quietly in a corner for more than a decade). There were already some arcade games on my MISTer after the initial setup. But I think there are more arcade games available somewhere. Also, there were no games for the consoles. Somehow I expected that the update_all script would automatically download every core and every game there is. But this does not seem to be the case, right? So… how do I proceed from here? I am struggling to get my head around how this all works. How do I install all the games? I do not quite understand which files/formats are needed, where to get them and where to put them. Can you point me to a video or a document which explains all of this, please? I am not lazy, just not sure where to look.
Jack Zimmermann says
This info is out of date. All you need now is a script called “update_all”.
Your answer may be true regarding arcade cores. But if you want to also get games for the various consoles, than I am afraid update_all is not the right answer. But I think I have found the right place now. So all is good.