User:Bonus Lizard/MiSTer: Difference between revisions

From SuperCombo Wiki
mNo edit summary
mNo edit summary
Line 161: Line 161:
   ■ Various Saturn games might require different a BIOS to run, and these will need to be added manually. For example, Asuka 120% requires Saturn 1.01a (U) [!].
   ■ Various Saturn games might require different a BIOS to run, and these will need to be added manually. For example, Asuka 120% requires Saturn 1.01a (U) [!].
  ○ Arcade ROMs Database: Automatically downloads ROM's for any supported arcade games. This should be enabled.
  ○ Arcade ROMs Database: Automatically downloads ROM's for any supported arcade games. This should be enabled.
 
  ■ The MiSTer staff classifies the Neo Geo as a console, so these ROM's will need to be added manually.
[[File:Extra Content.png|frame|center]]
[[File:Extra Content.png|frame|center]]



Revision as of 14:51, 20 February 2024

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 is 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 are 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 are not 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 will 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.  


Dual RAM

There's a lot of confusion about the need for dual RAM MiSTer builds.


The DE-10 Nano has two 2x20 GPIO headers for expansion boards. RAM modules will use one of these, but due to hardware limitations neither can exceed 128MB nor surpass a very limited bandwidth cap. The only way to increase these stats is to add a second RAM module. To further complicate things, the current analogue IO board also uses a GPIO header, so users have to choose between either dual RAM or simultaneous digital and analogue video out.


Currently, dual RAM does the following:

● Let's you play the arcade versions of Smash T.V. and Total Carnage.
● Gives you imperceptibly better audio for the PSX core.
● Let's you play a handful of Saturn games.


For any of the platforms not listed above, dual RAM does nothing. No arcade fighters have been announced that require dual RAM. There was an effort to bring over other Midway games such as Mortal Kombat, though this has been shelved. For tournament purposes, the only platform that might currently require dual RAM is the Saturn.


The Sega Saturn:

The Saturn core is more difficult since it is still in active development and is not mature yet. In the last publicly released build (23.10.18), many Saturn games like Asuka 120% Limit Over would only work with dual RAM. Game compatibility has improved drastically with the latest unstable build (24.02.10) though, and the majority of Saturn games now run fine even on single RAM builds. You can find the status for each game on the current unstable builds here.


Potential Saturn got'chas:

● some games currently require dual RAM.
● some games may struggle with RAM revisions earlier than 2.9, though this is steadily improving.
● different games may require a different BIOS. For example, the Asuka 120% Limit Over community recommends Saturn 1.01a (U) [!]. 


Until the core is mature, it's up to each individual community to decide if a game is tournament ready. When in doubt, reach out to those communities to see what they require.


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.

To access the Update All menu:

● Run the update_all script.
● When prompted, press Up.


Update All 2.1.png


There's a lot of options here, so I will focus on what TO's need to be concerned with:


1) Main Distribution: Automatically downloads Cores developed by the MiSTer team.

○ Distribution Enabled: Automatically downloads the official MiSTer Cores. This should be enabled.
○ Cores versions: Changes the type of Cores downloaded. Leave this set to Official Cores from MiSTer-devel.
Main Distro.png


2) JTCORES for MiSTer: Automatically downloads Cores developed by the Jotego Team.

○ JTCORES Enabled: Downloads the publicly released Jotego Cores. This should be enabled.
○ Install Premium Cores: Downloads the beta Jotego Cores. These are only available to Patreon backers.
JTCores.png


3) Coin-Op Collection: Automatically downloads Cores by the Coin-Op Collection Org. There's no sub-menu for this option, and this should be enabled.

Coin-Op Collection Screenshot.png


4) Other Cores: Automatically downloads a variety of Cores.

○ Arcade Offset folder (atrac17): Gives you different versions (US, JPN, World) of Arcade games. This should be enabled.
○ LLAPI Forks Folder: Alternate Cores developed for the BlisSTer, the predecessor to the SNAC adapter. This should be disabled unless you have a BlisSter.
○ theypsilon Unofficial Distribution: Unofficial Cores developed by theypsilon. This should be enabled.
○ Y/C Builds from MikeS11: MiSTer Cores that support S-Video and composite video out. Only enable this if you plan on using these video signals for tournaments.
○ agg23's MiSTer Cores: Gives you Cores developed by agg23. This should be enabled. 
Other Cores.png


5) Tools & Scripts:

○ MiSTer Extensions (wizzo): This should be enabled. 
Tools & Scripts.png


6) Extra Content

○ BIOS Database: Automatically downloads BIOS files for the platforms that require them like the Neo Geo, PSX, and Saturn. 
  ■ Various Saturn games might require different a BIOS to run, and these will need to be added manually. For example, Asuka 120% requires Saturn 1.01a (U) [!].
○ Arcade ROMs Database: Automatically downloads ROM's for any supported arcade games. This should be enabled.
  ■ The MiSTer staff classifies the Neo Geo as a console, so these ROM's will need to be added manually. 
Extra Content.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 this can make the formatting harder to read. As such, it's better to edit the ini files on a PC if possible. 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 the following: 
  ■ video_mode to “8” (1920x1080@60) 
○ For Laser Bear iPad 3 monitors, set the following:
  ■ video_mode to “13” (2048x1536@60) 
  ■ vscale_mode to "4".

●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:

● Update, sync, and test all micro SD cards a week prior to use.
● One keyboard per MiSTer setup.
● USB extension cables labeled P1 and P2.
● Cover other USB ports (especially the serial port that looks like a USB Port).
● Lock out menu access for controllers.
● Have participants check controllers on each setup before matches start.
● 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.