« Dreamcast Architecture (index)

Dreamcast Architecture

Chapter 6: Operating System


Table of Contents

  1. Boot process
  2. Interactive shell
  3. Windows CE

The motherboard contains 2 MB of 'System ROM', which stores a 'Basic Input/Output System' (BIOS). This is the first location from which the CPU reads when starting up. The ROM contains code that instructs the CPU to either bootstrap the game or load the interactive shell.

Furthermore, the BIOS also contains routines that games may use to simplify I/O operations , such as reading from the GD-ROM drive.

Boot process

Image
The popular red-tinted Dreamcast logo.

Image
Europeans got a blue swirl instead.

The splash screen, varying across regions.

Image
The licence screen. Some games also appended their logos alongside Sega's.

When the SH-4 CPU gets power, it looks for a program at address 0xA0000000 . On the Dreamcast, this points to the 2 MB of System ROM , meaning the system will follow these steps :

  1. BIOS stage.
    1. Execute the BIOS bootloader, initialising the hardware in the process.
    2. Display the iconic Dreamcast splash animation.
  2. IP.BIN stage.
    1. Check for a valid disc (GD-ROM or MIL-CD) in the drive. If one is present, read the metadata sectors (called IP.BIN); otherwise, skip to the 'No-disc' stage.
      • At some point, the drive authenticates the security ring on GD-ROMs, presumably after identifying the disc as a GD-ROM and before reading IP.BIN, although it's not publicly known exactly when this occurs.
    2. Using the contents of IP.BIN, verify that the disc matches the console's region.
    3. Validate and display the 'SEGA' licence screen stored in IP.BIN.
    4. Execute the initialisation code stored in IP.BIN .
  3. 1ST_READ.BIN stage.
    1. With the hardware ready, load the game's entry point (called 1ST_READ.BIN) from the disc into memory and execute it. Behind the scenes, the exact loading process varies depending on the type of disc. I explain this in more detail in the 'Games' section.
    2. The game is now in control.
  4. No-disc stage.
    1. When the disc is not inserted or invalid, the BIOS loads the interactive shell.
    2. The user is now in control.

Interactive shell

Much like the Sega Saturn, when there is no valid game disc inserted, the console launches a visual shell.

Image
Home screen.

Image
VMU manager.

Image
Saves manager.

Image
Audio player.

Image
Settings screen.

The Dreamcast's interactive shell, which boots when no (valid) disc is inserted.

The shell provides a simple graphical user interface that enables the user to perform basic but essential tasks, including:

Windows CE

Ever since the Dreamcast's announcement, Sega and Microsoft revealed that the console could run Windows CE . In fact, you only have to look at the console's front to notice a Microsoft stamp... So, what's going on here?

Image
The Windows CE seal on the front of the console. Coincidentally, you may find similar labels on other handheld equipment from the same era.

First things first, what exactly is 'Windows CE'? Well, it was one of the many projects Microsoft embarked on during the mid-90s to conquer territories beyond the conventional PC market. In the wake of more efficient CPU architectures than x86 and the emergence of handheld computing, a new team at Microsoft was tasked with bringing the Windows ecosystem to those new devices .

This led to the creation of Windows CE: a complete operating system, developed from the ground up, that provided a subset of the existing Windows APIs, development tools, and services.

Image
Windows CE 3.0 (2000), bundled with a desktop interface and a couple of business apps.

Unlike Windows 95 or NT, the new operating system presented the following advantages:

Image
An HP Palmtop PC 360LX (1997) running Windows CE 2.0. I found it lying on a table at The Centre for Computing History (Cambridge, UK) during my visit in August 2024. Coincidentally, this palmtop houses an SH-3 CPU!

Moreover, Windows CE was sold as a set of building blocks for manufacturers, allowing them to cherry-pick which components to bundle. Manufacturers could then integrate it into a variety of hardware (such as handhelds, point-of-sale terminals, and even automotive systems). Nevertheless, Windows CE gained significant notice as the OS powering palmtops (the precursors to PDAs), effectively competing with the Apple Newton and Palm.

As the cellphone industry surged throughout the late 90s, Microsoft leveraged Windows CE's modularity to develop PocketPC, another operating system (later renamed Windows Mobile) focused entirely on PDAs and mobile phones.

Image
Windows CE 2.11 'Palm-size PC Edition' 1.2 (1999).

Image
PocketPC (2000), based on Windows CE 3.

Microsoft's attempts to push Windows CE into the PDA market.

Now, what does all of this have to do with the Dreamcast? At some point, Microsoft and Sega ventured the idea of producing a Windows CE package for the Dreamcast . After all, Windows CE was already running on top of Hitachi's CPUs. In the end, this didn't materialise into a full desktop interface or integration with Microsoft's online services. Instead, it served as an optional layer of abstraction to simplify hardware operations.

Similar to what Nintendo provided with the Nintendo 64, Microsoft shipped an SDK (commonly referred to as Dragon SDK), based on Windows CE, for developing applications on the Sega Dreamcast. The libraries comprised a subset of CE with the minimal components needed to assist with graphics, audio, and debugging. As part of 'joining the Microsoft club', developers could now make use of Microsoft's star IDE (Visual Studio 6.0) and Visual C++ 6.0.

Some developers found this option very attractive. Since the audio/graphics framework included with CE was none other than DirectX 6, plenty of PC games could, in theory, be easily ported to the Dreamcast. However, the architectural differences between the Dreamcast and conventional PCs were too great to ignore. So, in the end, programmers had to go through a great deal of optimisation to reach optimal performance . Furthermore, since the Dreamcast's BIOS didn't include any of Microsoft's frameworks, the SDK had to be statically linked with the game. Thus, compared with Sega's closer-to-metal libraries, Dragon SDK increased the game's loading times (after all, a separate 'OS' had to be loaded from the game disc) and, throughout execution, the Windows CE layer happened to eat a substantial amount of resources.

Image
The licence screen of 'Q-Bert', denoting the use of the Windows CE SDK (pretty much the only visible feature of Windows that users would notice).

In conclusion, 'Windows CE for Dreamcast' was merely a secondary SDK of choice for developers. Nonetheless, a considerable number of Dreamcast games ended up making use of it.

If you're curious about the fate of Windows CE and Windows Mobile, things didn't go particularly well for Microsoft in the handheld market. Windows CE was abandoned in 2013. The year before, the CE-based core of Windows Mobile was replaced with Windows NT (aligning it with the desktop-based Windows 8). Nevertheless, Windows Mobile eventually lost ground to newer platforms (Android and iOS) and was discontinued in 2019.


Previous: 5. Audio

Next: 7. I/O


Rodrigo Copetti © 2026 RSS Feed

Switch to modern edition

Home · Writings · Support · About author · About website