- +1 that would be great, the Retroarch yabause core is broken right now and bettle Saturn is too demanding and doesn’t have higher resolutions. Hunterk 31 August 2018 12:32 #4.
- Some games like Die Hard Trilogy and Panzer Dragoon Saga run fine from the Sega Saturn Playlist (built when I import content/scan directory) Some others like Diehard Arcade and Wipeout 2097 'load' but then lead to a 'drive empty' screen with no way to get the game to start.
Valid as of 1.27.0-UNSTABLE
This is Retroarch Sega Saturn overlay i made for resolution 1680x1050. Settings in retroarch: integer scale=off, aspect ratio=custom, custom viewport x=180, custom viewport y=30, custom viewport width=1320, custom viewport height=990. RetroArch database(s) that are associated with the Beetle Saturn core: Sega - Saturn; BIOS¶ Required or optional firmware files go in the frontend's system directory. Using Retroarch for Sega Saturn I tried Yabause, but it is not cutting it for me. At any rate, even though I have a directory of about 75 games in my Saturn directory, Retroarch is only recognizing 2 games.Table of Contents:
- Default Input Mappings
- Digital Gamepad on Virtual Port 1
- Mouse on Virtual Ports 1-12
- Light Gun on Virtual Ports 1-12
- Internal Databases
- Cache Mode
- Horrible Hacks
- Settings Reference
NOTE: The Sega Saturn emulation is currently experimental and under active development. By default(and for the official releases for Windows), Saturn emulation is only compiled in for builds for some 64-bit architectures(x86_64, AArch64, PPC64). The separate SSF playback module does not have this limitation.
Mednafen's Sega Saturn emulation is extremely CPU intensive. The minimum recommended CPU is a quad-core Intel Haswell-microarchitecture CPU witha base frequency of >= 3.3GHz and a turbo frequency of >= 3.7GHz(e.g. Xeon E3-1226 v3), but note that this recommendation does not apply to any unofficial ports or forks,which may have higher CPU requirements.
Save states are supported, but the data is not fully sanitized properly on save state load, so definitely avoid loading save states acquired from sources you don't trust(this includes via netplay).
Enabling CD image preloading into memory via the cd.image_memcache setting is recommended, toavoid short emulator pauses and audio pops due to waiting for disk accesses to complete when the emulated CD is accessed.
A list of known emulation bugs(with workarounds in some cases) in Saturn games with Mednafen is available at https://forum.fobby.net/index.php?t=msg&th=1357
Mednafen's Sega Saturn emulation should not be used in lieu of a Sega Saturn for authoritative game performance/FPS review purposes. The emulation will generallyrun Saturn games with less slowdown than on a real Saturn, even when more accurate emulation modes are enabled via internal databases.
Place the correct BIOS image files in the correct location.
The filenames listed below are per default ss.bios_* settings.
|Key:||NOTE: The default mapping for the emulated mouse 'START' button conflicts with the default mapping for the 'Enter' key on the emulated keyboards on all virtual ports, and the default mapping for 'START' on the emulated digital gamepad on virtual port 1. If you want to use an emulated mouse with an emulated keyboard, you should probably remap the 'START' button to a non-keyboard host device. |
Light Gun on Virtual Ports 1-12
CartThis database is used to automatically select the type of cart to emulate when the 'ss.cart' setting is set to 'auto', the default. If a game is not found in the database when auto selection is enabled, then the cart used is specified by the 'ss.cart.auto_default' setting, default 'backup'(a backup memory cart).
Cache ModeThis database is used to automatically select cache emulation mode, to fix various logic and timing issues in games. The default cache mode is is a hack of sorts, to work around cache coherency bugs in games. These bugs are typically masked on a real Saturn due to the effects of instruction fetches on the cache, but become a problem when only data caching is emulated.
Full cache emulation is not enabled globally primarily due to the large increase in host CPU usage.
Horrible HacksThis database is used to automatically enable various horrible hacks to fix issues in certain games.
Note that slowing down VDP1 command execution due to SH-2 reads/writes isn't a horrible hack per-se, but it's activated on a per-game basis to avoid the likelihood of breaking some games due to overall Saturn emulation timing inaccuracies.
Caution: Any settings that change emulation behavior as seen from the emulated game are shown with the setting name bolded in the table. One should be conscious of these settings if one has changed them from the default values when using network play or movies, as they can cause desychronizations if not set the same among hosts(or between the recording emulator and the playing emulator).
RetroArch is the official front end for the libretro API. RetroArch and libretro provide a way to take an existing emulator and load that emulator as a library or 'core'. RetroArch then handles the input (controls) and output (graphics and audio) while the emulator core handles the emulation of the original system. With a few simple changes to the emulator source code, almost any existing emulator could become a libretro core.
In RetroPie, the libretro emulator cores are identified with a
RetroArch and libretro provide ability to configure controllers once for many emulators instead of having to configure each emulator individually. However, RetroArch also provides the freedom to configure specific emulators individually and even individual games differently if the user wants. This allows a specific setting or button mapping for a certain console or even just for a certain game.
For emulators which are not libretro cores, there are emulator-specific configurations under the respective system's wiki page.
The RetroPad concept
When you configure your controller in EmulationStation, the RetroPie setup script automatically configures RetroArch with the same controls.
RetroArch controls map real-world controller buttons to a virtual controller called a 'RetroPad'. A RetroPad does not exist in real life, it's a concept only within RetroArch. A RetroPad has an ABXY layout like a SNES controller plus four shoulder buttons and dual analog sticks like a Sony DualShock.
You don't have to map all of the RetroPad buttons to a real world button. If your real controller has less buttons than a DualShock, then the virtual RetroPad also has less buttons, that's perfectly fine.
As RetroArch starts an emulator core, it maps the RetroPad configuration to the emulated system's original controls. The mapping for many consoles is represented by the pictures below and on each system's wiki page. If you wish, you can reconfigure this control mapping, either for all RetroArch, for a specific system, or even for a specific ROM.
There are 3 main ways to configure input for RetroArch:
RetroArch controls have been integrated into EmulationStation and will be the first thing you see when you boot from the RetroPie SD image the first time. You can also access it from the start menu within EmulationStation under the Configure Input option. Your joypad is automagically configured for libretro (RetroArch) emulators when you configure your controller in EmulationStation. You'll know if your controller has been automagically configured if you see a flash of yellow text on the bottom of the screen with your gamepad ID when you start a game.
The following diagrams are for the 3 most common controllers: Super Nintendo, Xbox 360, and PlayStation 3. They can be used as a reference when configuring your controllers. Each emulator page on the wiki has a diagram of the original controller for its respective console that will correspond to the same inputs listed below.
After you've configured your controller the autoconfig will be created here:
This is an example config for a USB SNES controller
As seen above in the config for the USB SNES controller, each input on the controller has an associated value. When setting up the controller in EmulationStation, these values are then assigned a respective action on RetroArch.
For example, suppose the 'A' button on a USB SNES controller has a value of '1.' When setting up the controller, EmulationStation would prompt you to press the 'A' button on your controller. Pressing the 'A' button would then record into the config file as
Hotkeys are combinations of buttons you can press in order to access options such as saving, loading, and exiting games. The following defaults are set automatically the first time you set up your controller from EmulationStation (the numbers will vary depending the controller you use).
Default joypad hotkeys:
Determining Button Values
If you want to edit the entries in the .cfg file for your controller, you will need to know the values corresponding to the buttons on your controller. Usually the relationship between the two can be deduced by looking at the file and noting the entries' names along with the values next to them, assuming that the values have not been jumbled from previous edits or been mixed up due to unknown issues. For example, the USB gamepad above has an entry for
On the other hand, maybe you are not sure if the values in the .cfg file is correct or the file is missing entries for buttons that are available on your own controller, such as a 'Home' button. You can run jstest (joystick test) in the terminal by selecting Quit EmulationStation (a keyboard will be required for the following steps).
In the terminal, type and enter
Replace js0 with js1, js2, js3, etc. as needed if not detected.
A multitude of rows and columns should appear. Pressing buttons or moving analog sticks/joystick will cause various entries in the columns to swap between on and off and fluctuate through a range of numbers. The value next to an on/off entry corresponds to the button that you have pressed. The fluctuation of numbers from -32767 to 32767 correspond to the input on your controller that has a range of motion, such as analog sticks/triggers.
If you are interested in figuring out which is your 'Select' button, pressing and holding 'Select' on your controller will cause one column to switch from off to on. The value next to it corresponds to the 'Select' button. If you have a controller with a 'Home' button, pressing the 'Home' button will also cause one column to switch from off to on. To exit jstest, press
Using these values, you can edit the .cfg file for that controller as needed. For example, if you were interested in switching the your Hotkey button to a 'Home' button available on your controller, you would edit
These configurations are manual edits you can make that are locked to a specific libretro core and controller. Hardcoded controls can be configured either globally, specific to the emulator core, or specific to an individual game.
All RetroArch based emulators can be configured in the following way:
Global settings - that are settings which should apply to all systems - are done in the file:
System-specific settings are done in the files:
Here, SYSTEMNAME is
ROM-specific settings can be created in the runcommand menu and show up as configuration files by ROM title:
Custom RetroArch Override Examples
Example Default Per-System retroarch.cfg
Example Per-System Control Override retroarch.cfg
Note the values below are for one person's controller, your values may differ. Make sure that these values are placed above the
Example Per-ROM Override retroarch.cfg
Core Input Remapping
Core Input Remapping differs from the other two methods as it remaps how the core receives input rather than how the gamepad is coded, for example you can tell the snes core to switch button A and B on the controller for gameplay, but you can still use 'A' to select in the RGUI and 'B' to go back where as hard-coding would make B select and A back. Core Remapping is much more practical than hard-coded mapping but is limited to the cores that support it.
Remaps are saved as
Retroarch Controls Cheat-Sheet
Default Core Controls for All Emulators
Megadrive/Genesis (3 Button)
Megadrive/Genesis (6 Button)
Sega Saturn Bios
Neo Geo Pocket
Sega Saturn Emulator Retroarch
Sega Saturn Bios For Yabause