The Family Computer Disk System a.k.a. Famicom Disk System was released in Japan in 1986. It is an addon to the Famicom and used floppy disks.
Emulators: lr-nestopia, lr-fceumm
RetroFlag Pi-Case Safe Shutdown
Turn switch "SAFE SHUTDOWN" to ON.
-------------------Multi Switch Shutdown----------------- Updated: 2019.2.14
Multi Switch Shutdown with advanced shutdown features for more natural behaviour:
If you press restart if emulator is currently running, then you will be kicked back to ES main menu.
If you press restart in ES main screen, ES will be restarted (no reboot!), good for quick saving metadata or internal saves.
If you press power-off then Raspberry will shutdown
All metadata is always saved
-------------------Multi Switch Shutdown-----------------
wget -O - "https://raw.githubusercontent.com/RetroFlag/retroflag-picase/master/install.sh" | sudo bash
The ZX Spectrum was an 8 bit series of home computers released by Sinclair Research in 1982.
Accepted File Extensions: sna .szx .z80 .tap .tzx .gz .udi .mgt .img .trd .scl .dsk
Place your ZX Spectrum ROMs in
lr-fuse utilises Retroarch configurations
Add custom retroarch controls to the retroarch.cfg file in
For more information on custom RetroArch controls see: RetroArch Configuration
If you are using more than one joystick, then it is worth reading the official documentation at lr-fuse Github page.
The default joystick emulated by lr-fuse is the Cursor joystick. If
you wish to set Kempston as your default, then add the following line to
Running a 48K Machine
Some ZX Spectrum games require a 16K machine (e.g. Deathchase) or will run only on a 48K machine, for example, titles from Ultimate Play The Game such as Atic Atac and Jetpac.
By default, lr-fuse runs the 128K machine but it is possible to load the 48K machine on launch in the RetroArch Core options.
Joypad to Keyboard Mapping
Thanks to forum member @pjft's contribution to lr-fuse, it is possible to play ZX Spectrum games without a need for a keyboard. This is useful for games that don't support joysticks such as Chuckie Egg and for games that require keyboard input in addition to a joystick (e.g. Head Over Heels).
The Commodore 64 is an 8 Bit personal computer introduced in 1982 by Commodore International. This model holds the world record for the highest-selling single computer model of all time.
Start Game: Spacebar Menu: F12 Select: Enter Cancel: Backspace Exit GUI: Escape Changing Controls: -Press F12 to enter menu -Navigate to machine settings and press enter -Navigate to Joystick settings and press enter -Navigate to Joystick device in port 2 and press enter -to use a numpad to play your game navigate to Numpad and press enter -Up: 8 -Up/Right: 9 -Up/Left: 7 -Left: 4 -Right: 8 -Down: 2 -Down/Left: 1 -Down/Right: 3 -Fire: 0 -to use a Joystick (gamepad) instead, navigate to Joystick and press enter SAVING CONFIGURATIONS: Go into - settings management - save settings on exit - save current settings - save hotkeys - save joystick map CUSTOM MAPPING - Go back to Joystick settings by pressing backspace and navigate to Joystick 1 Mapping and press enter - Press enter on each key followed by pressing the key on your gamepad you wish to be mapped. - Press escape to exit the menu and return to your game
Once you've started and exited the VICE emulator at least once it will create
a configuration file called
which is a symbolic link to
open the file "sdl-vicerc" and to double the screen size change
VICIIDoubleSize=0 to VICIIDoubleSize=1
Note that the VICE emulator also emulates systems other than the Commodore 64
which can be accessed through the Runcommand Launch Menu
|Emulator||Rom Folder||Extension||BIOS||Controller Config|
What is Cannonball?
Cannonball is not an emulator; it is a complete rewrite of the original game into portable C++.
Connect joypads, steering wheels and pedals before starting Cannonball.
The default keys are as follows. You can redefine the keys in the menu.
Analog controls are simulated with digital controls. For example, when you press the left key it takes a second or so until the steering wheel is actually at the hard-left position. You can adjust this speed in the settings to make the controls more responsive (or twitchy if you like!)
Cannonball can also work with analog controllers including racing wheels and pedals.
You can enable analog controls in the Settings -> Controls menu. You should also redefine the gamepad buttons accordingly for start/coin in etc.
There are a few advanced options you might need to edit in the config.xml file. These include which axis the steering and pedals are mapped to. You should be able to check this using the driver software provided with your wheel. It is recommended that each control is mapped to a separate axis in your driver software. However, there is limited split axis support. To enable this, simply configure both the brake and accelerator to be on the same axis.
There is a further zone setting to denote how much of the turning circle of your wheel should be used. Increasing this value from 0 means less of the turning circle of your wheel will be used. This results in tighter steering.
Cannonball provides support for force feedback devices on Windows only.
Firstly, some background; the original OutRun arcade machines provide feedback in three ways:
On all machines, the wheel is centred by a pair of strong springs.
Cannonball ports the deluxe sitdown motor code. Instead of connecting it to a giant moving seat, the forces are channelled directly to the wheel. This results in both appropriate cornering forces and vibrations on impact. The codebase was not intended to be used in this way, so the results may not be perfect. And the benefits of force feedback will vary depending on your hardware and configuration options.
Force Feedback is one of the more complex areas of Cannonball to configure correctly. Here is what you need to do:
Unfortunately, due to the range of hardware on the market it's impossible to say how the experience will differ. Start by using the default settings and make adjustments as necessary.
If the wheel rocks left and right whilst driving normally, lower the zone and/or lower the min_force setting.
Replicate the original 4:3 arcade experience as closely as possible.
Enable enhanced features including widescreen, 60 fps gameplay and high resolution sprite scaling.
Time Trial Mode
This is a new game mode that allows you to compete for a best time on any of the 15 tracks. You select a particular track and choose the number of laps you would like to attempt.
More details can be found here.
This is a new game mode. Play all 15 stages sequentially with no road split. This mode features its own high-score table.
Additional Course Options
The original Japanese release of OutRun had different track layouts to the final Western release. Overall, the game is tougher with sharper unforgiving hills, and more aggressive turns.
This selection of tracks is less polished; Coconut Beach is nowhere near as rich in terms of design and the overall difficulty curve doesn't feel as good.
However, it's great to see the evolution of the track design between versions. And Gateway has some cool twists and turns that were removed due to it becoming an easier stage in the Western version.
Japanese tracks can be selected using the internal menu. Note that each set of tracks has its own high score table.
Prototype Coconut Beach
OutRun contains an early, unused version of Coconut Beach (aka Stage 1). It is significantly different from both the Japanese and World versions of this level. It's tougher, with sharper bends although the final chicane is missing. You'll notice there are a few scenery changes, as well as small amounts of ground debris. There are also scenery errors with directional signs pointing the wrong way.
This track can be enabled in the game engine settings using the menu system.
Bored of the existing OutRun tracks? You can make your own using LayOut and play them in CannonBall.
There are a choice of three views: original, in-car and overhead. You can use the shift key to toggle between them, although this can be redefined. You can toggle the view at any point during gameplay.
Basic configuration is available through the built in interface. Advanced configuration is done by editing config.xml manually.
There are two versions of CannonBall. One supports OpenGL Hardware acceleration; the other uses pure software rendering. The software version is compatible with a wider range of graphics cards but is slower as a result.
CannonBall can be run in the following modes:
CannonBall should v-sync in full-screen mode. For the OpenGL version, you may need to force a vertical sync at 60Hz in your driver settings.
Hi Res Mode
The original game ran at 320x224. This mode doubles that resolution to 640x448. However, rather than simply doubling up the display, the sprites and road are rendered at a higher resolution where possible.
More details can be found here.
Simulate CRT scanlines. You can select the intensity of the scanlines.
In windowed mode, scanlines require a scale factor of 2 or more.
Frames Per Second
The frame rate of the original arcade hardware is somewhat confusing. The game logic, road scrolling and therefore sprite zooming updates at 30fps. However, the horizon scrolls at 60fps.
Cannonball provides three options:
Extends the play area to widescreen. The internal resolution is set to 398x224, which is approximately a 16:9 aspect ratio. This means the screen is 25% wider and you get to see more of the game world.
The tilemap x-scroll position is different, to compensate for tilemap wrapping. So the backdrop position will be slightly different to the normal mode.
OutRun Engine Settings
The time setting matches the dip switch setting of the original machine, with the exception of infinite time. The time setting does more than adjust the start time. More details can be found here.
The traffic setting matches the dip switch setting of the original machine, with the exception of no traffic. The setting controls the number of traffic objects that can be spawned. This varies on a per-stage basis. More details can be found here.
Change the gear shift behaviour. Useful to configure based on your target hardware.
Extra Level Objects
For performance reasons, the original game has a limited number of object slots. On particularly busy levels, like Gateway, all the slots are used. This randomly causes elements from the level to be missing. The broken arches are an example of this. Setting this option fixes this issue. Disable it for the original experience.
This screenshot illustrates the problem on MAME:
More information can be found here.
New Attract Mode
Ever been frustrated by just how bad the attract mode AI is? Selecting this option enables a new attract mode that replaces the AI and cycles the camera views for added coolness.
Play sounds in attract mode.
Preview the music tracks at the point of selection in-game. The original game did not have this option and you would not hear the audio track until the game started.
Fix Corrupted Audio
OutRun shipped with a corrupted ROM which contained some of the percussion samples used by the music tracks. Every music track bar Last Wave, is affected by this. Even the original sound track CDs, recorded from the production boards, contain the glitch!
The offending rom, opr-10188.71, appears to have a single bit stuck high (xx1xxxxx). The sample data is distorted as a result.
The samples in this file include the wood blocks and big cymbal crashes. The most noticeable difference is for Splash Wave, which uses many of these samples in it's introduction.
You can visually see the problem in the screenshot below. The bottom waveform is the glitched version. The top waveform is a corrected version.
The corrupt audio ROM can be patched using the bspatch tool.
The file to patch against the audio rom can be found in the following file. You will need the file entitled patch-opr-10188.71. Patch this against the original audio rom to produce the fixed file.
The fixed file should be placed in the roms subdirectory. It should be named opr-10188.71f. It can be toggled using the in-built configuration menu.
Custom Audio Tracks
Cannonball can play WAVs instead of using the inbuilt game music. Configure the name of the replacement tracks for full ingame integration!
You must edit the config.xml file to configure the music.
Please note, I do not intend to support additional file formats like MP3. This is a decision to avoid bloating the codebase with third party libraries. Convert your files with a free audio editor like Audacity.
|Emulator||Rom Folder||Extension||BIOS||Controller Config|
|lr-pcsx-rearmed||psx||.cue .cbn .img .iso .m3u .mdf .pbp .toc .z .znx||scph101.bin scph7001.bin scph5501.bin scph1001.bin||/opt/retropie/configs/psx/retroarch.cfg|
|pcsx-rearmed||psx||.cue .cbn .img .iso .m3u .mdf .pbp .toc .z .znx||SCPH1001.BIN||/opt/retropie/configs/psx/pcsx.cfg|
|lr-beetle-psx||psx||.cue .cbn .chd .img .iso .m3u .mdf .pbp .toc .z .znx||scph5500.bin scph5501.bin scph5502.bin||/opt/retropie/configs/psx/retroarch.cfg|
|Emulators & BIOS files are Preinstalled with PI Wizard Image|
binddev = sdl:Xbox 360 Wireless Receiver (XBOX) bind backspace = Fast Forward bind \xA0 = player1 CROSS bind \xA1 = player1 SQUARE bind \xA2 = player1 CIRCLE bind \xA3 = player1 TRIANGLE bind \xA4 = player1 L1 bind \xA5 = player1 R1 bind \xA6 = player1 L2 bind \xA7 = player1 R2 bind \xA8 = player1 SELECT bind \xA9 = player1 START bind \xAA = Enter Menu bind \xAB = player1 L3 bind \xAC = player1 R3 bind \xAD = player1 LEFT bind \xAE = player1 RIGHT bind \xAF = player1 UP bind \xB0 = player1 DOWN bind up = player1 UP bind down = player1 DOWN bind right = player1 RIGHT bind left = player1 LEFT bind f1 = Save State bind f2 = Load State bind f3 = Prev Save Slot bind f4 = Next Save Slot bind f5 = Toggle Frameskip bind f7 = Show/Hide FPS bind f8 = Switch Renderer bind f11 = Toggle fullscreen bind f12 = Take Screenshot
pcsx_rearmed_neon_enhancement_enable = "enabled" # Double resolution pcsx_rearmed_neon_enhancement_no_main = "enabled" # Speed hack
video_smooth = "true"
game_specific_options = "true"
pcsx_rearmed_pad1type = "analog" pcsx_rearmed_pad2type = "standard"
The Amiga was a family of personal computers released by Commodore in the 1980's and 1990's.
Amiberry is a fork of UAE4ARM with support for WHDLoad, which offers a better console-like experience.
How to Install PI Wizard
|Step 1:||Download the PI Wizard Image from the website - thepiwizard.com|
|Step 2:||Download https://www.balena.io/etcher/ & Install|
|Step 3:||Run BalenaEtcher as Administrator - A popup window may appear, click Yes to run the program|
|Step 4:||Once Etcher opens, press the blue button and navigate to the PI Wizard Image|
|Step 5:||Insert your SD Card into your computer via a SD Card Reader|
|Step 6:||You may need to select your SD card in the middle option of Etcher|
This will Erase ALL content on your SD Card
Once complete insert the SD card into your Pi and Boot
Current software ported to PI Wizard:
ALL downloaded versions prior to V5.2.1 will need to have the emulator
Follow the Installation instructions
Boot the PI Press F4 Type cd ~ Type git clone https://github.com/zerojay/RetroPie-Extra.git Type cd RetroPie-Extra/ Type ./install-extras.sh
Type cd ~ Type cd RetroPie-Setup/ Type sudo ./retropie_setup.sh Manage Packages > Scroll through the list and install the following: lr-mrboom lr-nxengine lr-prboom lr-tyrquake cannonball sdlpop lr-dinothawr cdogs-sdl openblok hcl zeldansq solarus solarus Zelda Mystery solarus Zelda Return of Hylian
|Emulator||Rom Folder||Extension||BIOS||Controller Config|
|Reicast||dreamcast||.cdi .chd .gdi||dc_boot.bin, dc_flash.bin||/opt/retropie/configs/dreamcast/mappings|
It can be very laggy and buggy, but some games work great (see compatibility list below). Pi 2 is required.
Audio is choppy and not great, and degrades the longer the emulator is in use. Restarting the emulator (and ultimately the Pi) may become a good idea after a couple hours of gameplay. There is a memory leak somewhere in the Reicast code. Low screen resolution are recommended to get best performance. Performance suffers if HD resolutions are used.
Accepted File Extensions: .cdi .chd .gdi
Place your Dreamcast ROMs in
DREAMCAST COMPATIBILITY LIST feel free to contribute to the list.
Reicast has support for the CHD archive format, but its support is currently only for CHD V4. The problem with CHD V4 is that its compression for ".gdi" is not lossless, which is what CHD V5 addressed.
The reasons you would want to use CHD isn't just for saving space, but also because you can put the CHD compressed ROMs in the "dreamcast" folder instead of putting the GDI and its accompanying files in individual folders within the "dreamcast" folder due to Reicast's strict track naming requirements.
If you don't mind the ROMs being altered permanently or will keep backups of the original ROMs, then all you need to do is have your Dreamcast GDI ROMs (uncompress them if they are in the ".rar", ".7z", or ".zip" archive formats) in individual folders within a folder, download THIS archive containing "Dreamcast GDI to CHD", run Dreamcast GDI to CHD.exe to select a ROM's folder as a source and set the destination to wherever you want, then repeat the process for every other ROM you want in the CHD format.
The BIOS files needed are: dc_boot.bin, dc_flash.bin. The boot file is often found named something else, such as dc_bios.bin. It must be renamed to dc_boot.bin when placed in the BIOS folder.
Place your BIOS files in
Note: If you are having trouble with having to set the
date/time every time you load Reicast,
see this forum
post for a guide on how to replace dc_flash.bin. The MD5 of the dc_flash.bin
generated from that guide should be
RetroPie 4.0 uses an output resolution independent render resolution of
/home/pi/.reicast/emu.cfg to modify render
|reicast_input||enable input auto configuration||(0/1)|
VMUs are stored as .BIN files under
/home/pi/.reicast/, and will
be automatically created the first time you run Reicast without VMU files.
On occasion, these VMUs do not get formatted quite right during creation, and
the Dreamcast can't save or load data from them. They just need to be
reformatted -- run the
SYSTEMMANAGER entry in the EmulationStation
Dreamcast menu and / or see
this post for details.
A Dreamcast soft-reset (A+B+X+Y+Start buttons at the same time) at the ROM's title screen will also take you into the Dreamcast BIOS to manage the VMU's. After formatting VMU's, exit the emulator and restart. Pressing 'Play' will cause Reicast to crash.
Starting with RetroPie 3.3 controls for the Dreamcast Emulator are automatically configured when you configure your controls through emulationstation. Please notice that you may be interested in disabled the input auto config ( described above ) in case of any autoconfig issue.
Controls can be mapped via the
Make sure that evdev_device_id_1 & evdev_device_id_2 are set to the
corresponding controller's /dev/input/event* number you want to use. A -1 means
no controller which we will use for player 3 and 4. Then have evdev_mapping_1 &
evdev_mapping_2 point to the matching controller mapping configuration files and
both can either point to the same file or different files if you want to use 2
different controllers types.
Here is an example of this:
[input] evdev_device_id_1 = 2 evdev_device_id_2 = 3 evdev_device_id_3 = -1 evdev_device_id_4 = -1 evdev_mapping_1 = /opt/retropie/configs/dreamcast/mappings/controller_Xbox360WirelessReceiver(XBOX).cfg evdev_mapping_2 = /opt/retropie/configs/dreamcast/mappings/controller_8BitdoSNES30GamePad.cfg joystick_device_id = -1
If you want to be able to use 2 controllers at the same time, then you would
add this section to the
[players] nb = 2
An example mapping for a PS3 controller is below for reference:
PlayStation 3 Controller
[PLAYSTATION(R)3 Controller] button.0=Btn_Z button.1=Btn_C button.2=Btn_D button.3=Btn_Start button.4=DPad_Up button.5=DPad_Right button.6=DPad_Down button.7=DPad_Left button.8=Axis_LT button.9=Axis_RT button.10=DPad2_Left button.11=DPad2_Right button.12=Btn_Y button.13=Btn_B button.14=Btn_A button.15=Btn_X button.16=Quit axis.0=Axis_X axis.1=Axis_Y
If mapping is not working correctly try changing controller name for:
[Sony PLAYSTATION(R)3 Controller]
For Wireless PS3 Controller use:
[PLAYSTATION(R)3 Controller (xx:xx:xx:xx:xx:xx)]
Replace xx:xx:xx:xx:xx:xx with your own controller mac address
Press ctrl+c to exit- Or map a Quit button (PS) as shown above :D
Xbox 360 Controller:
[emulator] mapping_name = Xbox Gamepad (userspace driver) btn_escape = 0x13a [dreamcast] btn_a = 0x130h btn_b = 0x131h btn_c = btn_d = 0x139h btn_x = 0x133h btn_y = 0x134h btn_z = 0x138h btn_start = 0x13Bh axis_x = 0x00 axis_y = 0x01 axis_trigger_left = 0x0a axis_trigger_right = 0x09 [compat] axis_dpad1_x = 0x10 axis_dpad1_y = 0x11
Xbox 360 Wireless Controller using xpad driver:
[emulator] mapping_name = Xbox 360 Wireless Receiver (XBOX) btn_escape = 316 [dreamcast] btn_a = 304 btn_b = 305 btn_c = btn_d = btn_x = 307 btn_y = 308 btn_z = btn_start = 315 btn_dpad1_left = btn_dpad1_right = btn_dpad1_up = 704 btn_dpad1_down = 707 btn_dpad2_left = btn_dpad2_right = btn_dpad2_up = btn_dpad2_down = axis_x = 0 axis_y = 1 axis_trigger_left = 10 axis_trigger_right = 9 [compat] btn_trigger_left = 312 btn_trigger_right = 313 axis_dpad1_x = 16 axis_dpad1_y = 17 axis_dpad2_x = axis_dpad2_y = axis_x_inverted = no axis_y_inverted = no axis_trigger_left_inverted = axis_trigger_right_inverted = axis_dpad1_y_inverted = no axis_dpad1_x_inverted = no
[emulator] mapping_name = Sony Computer Entertainment Wireless Controller btn_escape = 316 [dreamcast] btn_a = 305 btn_b = 306 btn_x = 304 btn_y = 307 btn_start = 313 axis_x = 0 axis_y = 1 axis_trigger_left = 3 axis_trigger_right = 4 [compat] axis_dpad1_x = 16 axis_dpad1_y = 17 axis_x_inverted = no axis_y_inverted = no axis_trigger_left_inverted = no axis_trigger_right_inverted = no axis_dpad1_y_inverted = no axis_dpad1_x_inverted = no
Akishop Ps 360+ Joystick
[emulator] mapping_name = Akishop Customs PS360+ v1.66 btn_escape = 316 [dreamcast] btn_a = 306 btn_b = 305 btn_x = 307 btn_y = 304 btn_start = 312 [compat] axis_dpad1_x = 16 axis_dpad1_x_inverted = no axis_dpad1_y = 17 axis_dpad1_y_inverted = no btn_trigger_left = 309 btn_trigger_right = 311
8Bitdo NES30 Pro
Open the configuration file using a text editor, e.g.:
sudo nano /opt/retropie/configs/dreamcast/mappings/controller_8BitdoNES30Pro.cfg
The content of the file should look like this:
[emulator] mapping_name = 8Bitdo NES30 Pro btn_escape = 314 [dreamcast] btn_a = 304 btn_b = 305 btn_c = btn_d = btn_x = 307 btn_y = 308 btn_z = btn_start = 315 btn_dpad1_left = btn_dpad1_right = btn_dpad1_up = btn_dpad1_down = btn_dpad2_left = btn_dpad2_right = btn_dpad2_up = btn_dpad2_down = axis_x = 0 axis_y = 1 axis_trigger_left = 24 axis_trigger_right = [compat] btn_trigger_left = 310 btn_trigger_right = 311 axis_dpad1_x = 16 axis_dpad1_y = 17 axis_dpad2_x = axis_dpad2_y = axis_x_inverted = no axis_y_inverted = no axis_trigger_left_inverted = axis_trigger_right_inverted = axis_dpad1_y_inverted = no axis_dpad1_x_inverted = no
iBuffalo Classic USB GamePad [EXPERIMENTAL]
Analog movement not supported
[emulator] mapping_name = USB,2-axis 8-button gamepad btn_escape = 294 [dreamcast] btn_a = 288 btn_b = 289 btn_x = 290 btn_y = 291 btn_start = 295 axis_x = 0 axis_y = 1 [compat] btn_trigger_left = 292 btn_trigger_right = 293 axis_x_inverted = no axis_y_inverted = no
Mobile Gamepad [EXPERIMENTAL]
[emulator] mapping_name = MobileGamePad btn_escape = 0x13a [dreamcast] btn_a = 0x130 btn_b = 0x131 btn_c = 0x136 btn_d = 0x137 btn_x = 0x133 btn_y = 0x134 btn_z = btn_start = 0x13b btn_dpad1_left = btn_dpad1_right = btn_dpad1_up = btn_dpad1_down = btn_dpad2_left = btn_dpad2_right = btn_dpad2_up = btn_dpad2_down = axis_x = 0x00 axis_y = 0x01 axis_trigger_left = axis_trigger_right = [compat] btn_trigger_left = 0x138 btn_trigger_right = 0x139 axis_dpad1_x = axis_dpad1_y = axis_dpad2_x = axis_dpad2_y = axis_x_inverted = no axis_y_inverted = no axis_trigger_left_inverted = axis_trigger_right_inverted =
Mapping a Nonstandard Controller via @Folly
run in terminal :
Here is a script called 'reicast-joyconfig' run it :
Choose your joystick. Now you can map your buttons. When all is done it
outputs the text for making a file in
It outputs something like this (numbers are in decimals not hexadecimal such as in other contollers' config file):
[emulator] mapping_name = Your Gamepad btn_escape = 316 [dreamcast] .......etc
Create a file in
controller_Your Gamepad.cfg and paste the text in this file, then modify
/home/pi/.reicast/emu.cfg and reference this file in the
evdev_mapping_1 (change the number according to
the player you want to configure) configuration option.