Put the bios (dcboot.bin & dcflash.bin) inside the data folder. Windows sometimes hides the file extention, so the filename might look like 'dcboot' on the windows explorer. Create a folder anywhere you want, and put the Dreamcast games in there. A.BIN file is a compiled program for your Sega Dreamcast, it’s those that you can get most of time in packages labelled “plain files”.Scrambled state files are used when the binary is meant to be booted from a CD-ROM, i.e. When the homebrew program is started from the bootstrap, often called IP.BIN. InternalSD: reicast data dcboot.bin internalSD: reicast data dcflash.bin I copy my games to. InternalSD: reicast dc crazytaxi.cdi Install your reicast-android-debug-.apk and run. Now in Reicast under Settings, under System Path point it to. InternalSD: reicast which when accepted will look like storage sdcard0 reicast.
The Sega Dreamcast is a 6th generation home video game console released by Sega in 1998. It is notably the last console that Sega produced.
Emulator | Rom Folder | Extension | BIOS | Controller Config |
---|---|---|---|---|
Reicast | dreamcast | .cdi .chd .gdi | dc_boot.bin, dc_flash.bin | /opt/retropie/configs/dreamcast/mappings |
lr-flycast | dreamcast | .cdi .chd .gdi .zip | dc_boot.bin, dc_flash.bin | /opt/retropie/configs/dreamcast/retroarch.cfg |
Emulators: Reicast, lr-flycast
Reicast can be very laggy and buggy, but some games work great (see compatibility list below). Pi 2 or later 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 greatly suffers if HD resolutions are used.
lr-flycast is can be found in the Manage Optional Packages menu in the RetroPie Setup Script.
ROMS
Accepted File Extensions: .cdi .chd .gdi for Dreamcast ROMs, .zip for Naomi/Atomiswave games.
Place your ROM files in
DREAMCAST COMPATIBILITY LIST feel free to contribute to the list.
CHD files
Both Reicast and Flycast have support for the CHD (V5) archive format. This format will save space and allow you to keep your Dreamcast ROM folder tidy. See Creating CHDs from CD-ROMS.
BIOS
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. lr-flycast has support for the Sega Naomi and Atomiswave arcade systems but you will also need the corresponding BIOS from the MAME romset.
Place your BIOS files in
BIOS files
File | Region | md5sum | CRC32 | Comment |
---|---|---|---|---|
dc_boot.bin | World | e10c53c2f8b90bab96ead2d368858623 | 89f2b1a1 | |
dc_flash.bin | USA | 0a93f7940c455905bea6e392dfde92a4 | c611b498 | |
dc_flash.bin | Europe | 23df18aa53c8b30784cd9a84e061d008 | b7e5aeeb | |
dc_flash.bin | Japan | 69c036adfca4ebea0b0c6fa4acfc8538 | 5f92bf76 | |
dc_boot.bin | Free | d407fcf70b56acb84b8c77c93b0e5327 | 61d5613f | Hack |
dc_flash.bin | Free | 93a9766f14159b403178ac77417c6b68 | e0d202a2 | Hack |
dc_boot.bin | Free | d552d8b577faa079e580659cd3517f86 | 558f456e | atreyu187 Hack |
dc_flash.bin | Free | 74e3f69c2bb92bc1fc5d9a53dcf6ffe2 | bda0e9aa | atreyu187 Hack |
naomi.zip | World | eb4099aeb42ef089cfe94f8fe95e51f6 | c295a8c2 | NAOMI BIOS |
awbios.zip | World | 0ec5ae5b5a5c4959fa8b43fcf8687f7c | ab628024 | Atomiswave BIOS |
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 2f818338f47701c606ade664a3e16a8a
.
Note: As of February 2019, the date/time prompt should appear only the 1st time Reicast is started.
Video Setup Guide
RetroPie 4.0 uses an output resolution independent render resolution of 640x480. Open /home/pi/.reicast/emu.cfg
to modify render resolution.
Tweaks
Option | Description | Value |
---|---|---|
reicast_input | enable input auto configuration | (0/1) |
VMUs
Reicast
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.
lr-flycast
VMUs are stored as .BIN files under /home/pi/RetroPie/BIOS/dc/
, and will be automatically created the first time you run lr-flycast.
There is an option for the core to enable per-game
VMU's. This option is recommended if you have several games or a game that takes a large amount of space.
Management
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 if using Reicast. Pressing 'Play' will cause Reicast to crash.
Controls
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 /home/pi/.reicast/emu.cfg
file. 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:
If you want to be able to use 2 controllers at the same time, then you would add this section to the emu.cfg
file:
In more recent builds of reicast, the +Start Reicast script launches a landing page with a game menu with containing a 'settings' button. Controllers can be mapped directly from the settings menu - this creates config files looking like:
In stock configuration, access to this menu is controlled from the D-Pad of a controller with an analog stick. In the case where your controller does not have an analog stick, it may be necessary to connect one in order to access this part of the menu and create mappings for your other controllers.
Some example mappings are provided below for various controllers which can be directly edited from the
Folder listed above.
An example mapping for a PS3 controller is below for reference:
PlayStation 3 Controller
If mapping is not working correctly try changing controller name for:
For Wireless PS3 Controller use:
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:
Xbox 360 Wireless Controller using xpad driver:
PS4 Controller:
Akishop Ps 360+ Joystick
8Bitdo NES30 Pro
Open the configuration file using a text editor, e.g.:
The content of the file should look like this:
iBuffalo Classic USB GamePad [EXPERIMENTAL]
Analog movement not supported
Mobile Gamepad [EXPERIMENTAL]
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 /home/pi/.reicast/mappings
.
It outputs something like this (numbers are in decimals not hexadecimal such as in other contollers' config file):
Create a file in /home/pi/.reicast/mappings
called controller_Your Gamepad.cfg
and paste the text in this file, then modify the /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.
- 3File Format
About
A MR image is an image format solely used inside an IP.BIN file to show off a logo during the boot screen process of the Sega Dreamcast.
This image format was used in commercialized Dreamcast games utilizing Windows CE SDK where we see a 'Powered by Microsoft Windows CE' logo. It is now commonly used in homebrew to distinguish the creator(s) of the application or to disassociate the application being produced by or under license from Sega. The MR image must be inserted into a IP.BIN file at offset 0x3820 in order to be viewed during boot sequence. Since IP.BIN is restricted to a 32k file size, there are a couple of guidelines the MR image must meet to in order to fit inside the IP.BIN.
MR Image must be:
- 320x90 or less
- Max 128 colors
- Less than 8192 bytes to fit in a IP.BIN
- The transparent color is #c0c0c0, or 192, 192, 192 in RGB
Tools
Selfboot-Inducer
SiZious's Windows Tool to create homebrew compilations. Using this application you can view and create MR images from other various other image formats.
MR GIMP Plugin
GIMP is a cross-platform image editor available for GNU/Linux, OS X, Windows.
Dreamcast Bios Dc Boot Bin
Using this GIMP plugin('file-mr.py'), you can create view, edit, and create a MR image from any other image format that GIMP supports.
File Format
The file format is composed of three sections: Header, Palette, and the Image Data. All of the data written in the file is in little-endian format.
A MR file starts off with a 30 byte header.
File Header
Size (bytes) | Contents |
---|---|
2 | 'MR' |
4 | Total file size |
4 | Crap (fill with 0's) |
4 | Image data offset in bytes (Header size + Palette size) |
4 | Image width |
4 | Image height |
4 | Crap (fill with 0's) |
4 | Amount of colors in palette |
Palette
The header is followed by the image's palette. The palette is composed of palette entries where each palette entry is 4 bytes long and is stored as BGRA. The alpha byte goes unused. The maximum number of palette entries is 128.
Dreamcast Boot File
Palette Entry | |||
---|---|---|---|
B | G | R | A |
In total, the byte size of your palette should be number of colors * 4.
Image Data
Lastly, the image data. The image data is basically an array of indices, each a byte long, that refers to a palette entry in the palette. The image data is compressed using a form of Run-Length Encoding (RLE). The python algorithms to encode/decode the image data are shown below.