Contents

System Requirements

Operating system Windows 7+ 64-bit, macOS 64-bit or Linux 64-bit
Processor x86_64 compatible with AVX2 or SSE2 support
Memory 512 MB RAM
Graphics OpenGL 3.1 support, OpenGL 4.5 support for per-pixel polygon sorting

Installing

There is no installation process for redream - download it, extract it to a folder and run. If you've upgraded and have a license, download and place it in the same directory before running.

Redream is built to be portable, all of the files used by it are stored alongside it in the same directory. The most important of these files are:

License (optional) redream.key
Boot ROM / BIOS (optional) boot.bin
Flash ROM flash.bin
Config redream.cfg
Saves vmu0.bin, vmu1.bin, vmu2.bin, vmu3.bin

Using a BIOS

The Dreamcast shipped with a BIOS which provided additional code to help games interact with the Dreamcast hardware.

By default, redream will attempt to emulate the functionality provided by the original BIOS. However, this process is not yet perfect. There are a few issues in the issue queue tracking games that have issues with our BIOS replacement. If you would like to use an original BIOS instead of our replacement, name it boot.bin and place it in the same directory as redream.

Finally, if you've added real BIOS, you can boot into it to manage VMU saves, etc. by going to System -> Boot to BIOS:

BIOS

Loading a Game

Games can be loaded and ran either through the UI, or directly from the command line.

Through the UI

Go to Library -> Add Directory to add a directory containing valid game(s) to the library. After doing so, each game should be available from the main menu:

Add directory
Library

Through the command line

For quick testing, it's often desirable to run a game directly from the command line by passing it as the first argument to redream:

redream.exe C:\path\to\game

Exiting a Game

By default, the library can be returned to in-game by pressing the Escape key on the keyboard, or the Guide button on the controller.

The key this is bound to can be customized in the Input menu.

Using the Keyboard

By default, the keyboard is bound to the first port and the default binds are:

Keyboard

The keyboard can be bound to all 4 ports, with unique binds for each, enabling multi-player arcade sticks which register themselves as keyboard to easily be used.

Using a Controller

Uing a controller is as simple as connecting it for most devices. On connect, SDL's controller database attempts to automatically configure it. If it's not configured automatically, you can manually configure it the Input menu.

To get started, first select the port you want to connect the controller to, and then select the controller to use on the port:

Input
Devices

After selecting an input device, select Customize binds. In this menu, click the button you'd like to bind and then press the key or button you'd like it mapped to:

Customize
Bind

Save Games

Each connected controller has an associated VMU which can be saved to ingame, just as they would be on the real Dreamcast.

The VMUs can be managed by booting into the BIOS to add and remove saves.

Save states are not currently supported.

Video Options

Video options can be managed in the Video menu:

Video options

Fullscreen

Enable to make the window fill up the entire screen.

Aspect ratio

The Dreamcast output video with a 4:3 aspect ratio, causing black bars to be rendered on the sides when using a modern widescreen display. If you'd like to remove the black bars, change this to stretch in order to make the video stretch to fit the window.

Internal Resolution

The Dreamcast originally rendered at either 320x240 or 640x480. Use this option to crank up the detail and render at much higher resolutions.

This feature is only available to Premium users.

Polygon Sort Accuracy

The Dreamcast's GPU supported sorting transparent polygons at the per-pixel level. Unfortunately, emulating this is demanding, especially when rendering at higher resolutions. Because of the significant performance hit, three accuracy modes are offered:

Per-Mesh
A mesh is a group of triangles. Often a mesh is an entire charcter model or object in a game. In this mode, each individual mesh is sorted, which often produces graphical glitches among the triangles that make up the mesh. This is the fastest and least accurate mode, recommended for extremely low-spec machines.
Per-mesh
Per-Triangle
In this mode, each mesh is subdivided into triangles and each individual triangle is sorted. This is much more accurate than per-mesh sorting, but still results in some glaring graphical glitches. This is the default, and recommended for mid-tier machines or machines without OpenGL 4.5 support.
Per-triangle
Per-Pixel
In this mode, the Dreamcast's per-pixel sort is emulated exactly - each individual pixel is sorted. There are multiple options here - 16, 32 and 64 layers. The layers represent the maximum number of overlapping polygons that can be sorted, the more layers the more accurate and demanding it is. Most games will look correct at 16 layers, but some games need upwards of 64 layers to render correctly. This feature requires OpenGL 4.5 and is the slowest but most accurate option. Performance can vary drastically between different internal resolutions and layer counts, please try lowering each if you're having performance problems.
Per-pixel