User:Bonus Lizard/MiSTer

From SuperCombo Wiki
Revision as of 14:59, 8 February 2024 by Bonus Lizard (talk | contribs)

MiSTer FPGA guide for Tournament Organizers:

MiSTer1.png

Introduction

For many people, the MiSTer FPGA system is the best option for playing old games in the 21st century. It's significantly cheaper, less fragile, and more portable than original hardware, while also being more accurate than software emulation. Further, the MiSTer can output both SD and HD video signals simultaneously allowing you to play games in 240P on a CRT while passing a 1080P signal to a capture card without need for an external scaler.


That said, they aren't quite turnkey devices and require some existing knowledge to make the most out of. This is particularly true for Tournament Organizers (TO's) who might struggle a bit when using them in a tournament for the first time. Seeing everything work fine at home only for players' controllers to not register when trying to start a bracket sucks.


Max'DOut and myself have been running tournaments on MiSTer's for years at this point, and have compiled this guide to help streamline and unify the process of using MiSTer's across the FGC. If you're new to the platform, the following advice should help you avoid any major pitfalls. Even if you have MiSTer experience, you should still read this as it could help you run tournaments more smoothly. We aren't the sole arbiters of how to use this hardware though and welcome any feedback/suggestions.


MiSTer Hardware:

In addition to the DE-10 Nano and 128MB RAM module, you’ll need a few other things to ensure that a MiSTer can handle the stress of being used in a tournament setting. These are divided into Required and Strongly Recommended sections.


Required:

Do not run MiSTer’s in a tournament setting without the following:


Though the external USB HUB and stock AC Adapter are good enough in most cases, they can struggle with some power-hungry devices. These upgrades should give you enough headroom to deal with whatever controllers participants can and will inevitably bring.


Strongly Recommended:

While technically optional, the following will make running a tournament much easier:

● One Mini Wireless Keyboard per MiSTer setup.

○ TO’s can easily access the MiSTer UI from a distance.
○ Can lock out menu shortcuts from controllers so they can’t be hit mid-match.
★ Sharing keyboards between setups will create a huge bottleneck, and is highly discouraged.
★ Label each keyboard and corresponding USB dongle to keep them from getting mixed up.


MiSTer Mini Keyboard.png


● One ‘Tournament’ micro SD card per MiSTer setup.

○ Ensures all MiSTer’s are using the same firmware and ROM’s.
○ Config files can be preset for tournament use (monitors, player ports, etc).
○ Normalizes the file structure, so navigating each setup is the same. 
○ Lets you set tournament specific wallpapers and music if you care.
○ Prevents players from messing up your home config.
★ Packs of low capacity SanDisk micro SD cards are relatively cheap online.
★ 32GB should be more than enough unless you need access to every CD-based versus game.
★ Copy data between cards to keep them in sync.
★ Cards should be stored together, and the primary/master micro SD card should be labeled.  


MiSTer UI:

The following is an overview of the MiSTer interface that TO’s should be familiar with.


Running Scripts:

While many things can be set from menus, some require scripts to access from the MiSter itself. To find the Scripts menu:

● Open the MiSTer menu.
● Press right to go to the System menu.
● Select Scripts.

These are stored within the Scripts folder, and any additional scripts like update_all should be placed here as well.


Update All:

The update_all script automatically downloads the latest version of each Core. It’s not included with the MiSTer distro, so you’ll need to download it separately.

This script can also download system BIOS’s and Arcade ROM’s as well as unofficial Cores and Scripts, though these need to be enabled from the Settings menu. To do this…

● Run the update_all script.
● When prompted, press Up.
● Select each option you want to enable (4, 5, 6, 7, and 8).
● Save and run the script. 


Update All 2.0.png


This should be run at least 1-week out from the tournament for each SD card being used to ensure each Core is current.


MiSTer Config File:

The ini_settings script included with the MiSTer distro allows you to make changes to the MiSTer.ini file, though you can also edit it by using a PC. While this ini file contains many different settings, TO’s will mainly be concerned with configuring video output and disabling autofire.


Ini editor.png


Video Output:

This is probably the biggest pain point TO’s will run into outside of controllers, especially if they don’t know what type of monitors they’ll be using ahead of time.

The MiSTer supports a wide variety of resolutions for both digital and analogue video output, and settings for these are handled separately within the MiSTer.ini file.

● Digital (LCD, OLED):

○ For standard LCD/OLED monitors, set video_mode to “8” (1920x1080@60). 
○ For Laser Bear iPad 3 monitors, set video_mode to “13” (2048x1536@60).

●Analogue (CRT):

○ For RGB monitors (PVM's and BVM's), set the following:
  ■ ypbpr=0
  ■ composite_sync=1
  ■ vga_scaler=0
○ For Component (YpBpR) consumer TV's, set the following:
  ■ ypbpr=1
  ■ composite_sync=1
  ■ vga_scaler=0
○ For PC CRT monitors, set the following:
  ■ ypbpr=0
  ■ composite_sync=0
  ■ vga_scaler=1
  ■ video_mode=6

Only one digital and one analogue config can be set at a time. This is generally fine for digital signals since the vast majority of people are only going to use 1080P, but you are much more likely to need to change analogue configs when switching between RGB, Component, and VGA monitors.

While you can edit the MiSTer.ini file each time you need to change monitors, it is possible to create alternate ini files and switch between them from the MiSTer UI. To do this, make a copy of the MiSTer.ini file and add “_AtlernateName” to the end. Note, the UI will truncate names to 4-characters, so “MiSTer_Component.ini” will just be displayed as “Comp”.


MiSTer INI files.png


These configs can be selected from the Information page on the main MiSTer menu.


Alternate Config 50%.png


Autofire:

Make sure the following is set:

● disable_autofire=1  

If this line isn’t present, add it by editing the ini file using a PC.

True to the name, this disables turbo for controllers. Do not run matches without it, unless you think E. Honda should be able to do instant hands.


Games:

While you can load games using the default file structure, it’s better to have every tournament game available from a designated folder that’s universal on every micro SD card.

The process for this is a bit different depending on the type of game you want to load:

● For Arcade games, you’ll need a copy of the MiSTeR Arcade (MRA) file.
● For Console games, you’ll need to create a MiSTer Game Loader (MGL) file.

In both cases, these files are just instructions telling the MiSTer how to load a Core and a specific game making them only a few kilobytes in size. While they are useful as shortcuts, you can also manually edit them to remove the Core Credits (universal pause) button and change the button names.


Tournament.png


Keyboard Shortcuts:

By default, the keyboard uses MAME shortcuts. Here are some that may be helpful.

● 5: inserts credits 
● F1: opens the MiSTer OSD menu
● F3: resets arcade games


Controller Troubleshooting:

When defining player controls on a given controller, a common issue is that some buttons will not register at all (Start, Select, and Home are the most problematic). If this happens, there’s two things you can try.

1) If the controller has switches for other modes (XInput, PS4, etc…):

● Cancel out of the Define [Game] Buttons prompt.
● Select a different mode on the controller. 
● Try setting the inputs again.

2) If none of the other modes work:

● Return to the main MiSTer menu.
● Press the Cancel button to go to the System Settings menu.
● Select Define Joystick Buttons.
● Set the basic inputs for the problematic controller. 
● Set the Confirm and Cancel buttons, but skip the MiSTer menu shortcut and any unused inputs.
● Reload the Core and try setting the inputs again. 


Define Joystick Buttons 50%.png


Once this is done, reload the Core and you should be able to set all of the buttons for the given controller. Be sure to save afterwards, or these changes will be lost if the system is rebooted.


Problematic Controller PCB's:

Qanba Sticks tend to be the most consistent at having issues.


Player Sides are Incorrect:

If the left and right players are swapped or only player 2 is getting inputs, the Core probably has the TO’s keyboard set as player 1. To fix this:

● Ask both players to stop hitting buttons/directions.
● Open the MiSTer menu.
● Press right to go to the System menu.
● Select Reset Player Assignment.
● Have player 1 press a button.
● Have player 2 press a button.

General Best Practices:

1) Update, sync, and test all micro SD cards a week prior to use.

2) One keyboard per MiSTer setup.

3) USB extension cables labeled P1 and P2.

4) Cover other USB ports (especially the serial port that looks like a USB Port).

5) Lock out menu access for controllers.

6) Have participants check controllers on each setup before matches start.

7) Have at least one person who knows how to set up button configs, reset player assignments, and generally be able to navigate the UI per every two MiSTer setups.