The first and only console I have ever preordered and picked up on launch day, 9/9/99 was one of the best days ever. I turned it into a four day weekend and came home and played Sonic Adventure all night. I actually didn't pick up a VMU and had to beat Sonic Adventure in one sitting. People who weren't there just cannot understand how insane of a leap the Dreamcast was. Hands down one of the best pieces of hardware ever.
Developer's Dream
The Sega Dreamcast was basically a response to all the faults of the Sega Saturn. Every flaw the Saturn had, the Dreamcast crushed. The Dreamcast shipped with TWO SDKs. First, there was the official Sega Dreamcast Katana SDK from Sega:
This kit was made by Sonic Team themselves. An infamous part of Sega Saturn history is how Sonic Team hoarded their best-in-class tools, even from the American division of Sega. This meant every team who worked on the Saturn had to make their entire tool kit from scratch most of the time. This caused poor game quality on the Saturn. When the Saturn died, Sonic Team was knee deep into development of what would eventually become Sonic Adventure:
So they turned their attention to the dreamcast to begin making their tools. Sega demanded they release their tools to other developers, and their toolset became the official Dreamcast SDK. So right out of the gate with the dreamcast, you already had a best-in-class toolset to work with from one of the top development teams in the world at the time.
Secondly, Sega partnered with Microsoft to ship these babies:
This is the source of confusion regarding "Compatible with Windows CE." No, the Dreamcast does not have Windows CE inside. Rather, one could embed windows CE into their program using this tool kit to allow developers to easily port C and C++ applications to the Dreamcast. Every "compatible with windows CE" game has it directly on the disk.
Amazingly Transparent
People who don't do graphics programming probably aren't aware, but transparencies, even to this day, are an incredibly difficult problem to solve. Graphics programming tends to be done in "layers" and composited onto a final output, like photoshop, and thus the order you send your graphics affects the transparencies. Because things happen in layers, even on modern hardware, transparencies usually work in a top-down-approach. You need to order the polygons you send, so you send the transparent polygons last, so they can accurately blend with what's below them. This creates big problems when polygons are half behind one object and half behind another. The Sega Saturn infamously had numerous caveats about how it handled transparencies:
Even to this day, no console before or after, or indeed even PC hardware, handles transparencies as easily as the Dreamcast. To this very day, the Dreamcast has unique "special sauce" inside regarding how it handles transparencies (which I'll get into later). To simplify for right now, the dreamcast doesn't need to order polygons. No matter what order you send your polygons, they will appear transparent correctly. Send your top most transparent polygon first, behind every other opaque polygon, and it'll still behave just fine. Polygon ordering on the dreamcast really doesn't matter. On top of that, the dreamcast has PER PIXEL out of order transparency. Even if just one single pixel of your polygon is above another, that pixel will be handled correctly. It's an amazing feature. Hands down the best system ever at transparencies.
Punching Above its Weight
The secret to the Dreamcast's amazing graphics, ease of use, and general performance is the PowerVR2 core that resides in the Holly controller on the Dreamcast. The PowerVR is pretty much unlike any other graphics concept on the market before or since. It uses what is called deferred tiled-based rendering. Note the tile-based part, which is different from normal deferred rendering.
Interestingly, like the Sega Saturn and Sony Playstation, and unlike the N64 and virtually every console since, the Sega Dreamcast did not have a Z-Buffer, nor did it need to do frustum culling? Nor did it do rasterization. Its graphics core behaves pretty much unlike any other console since or ever.
To understand the difference, you need to understand what rasterization works, and to understand that you need to know a bit about how 3D graphics primitives work. At their base level, 3D primitives are just groups of 3 to 4 points in space called vertices, which reside in memory. How these points are turned into graphics on screen depends on the implementation. Typically, this is through a process called rasterization, where each 3 or 4 points in memory is turned into a series of pixels to be held in memory. So each "polygon" has every single pixel that makes up said polygon calculated and residing in memory, even if 99% of those pixels are offscreen or behind other objects and thus will never be seen. This actually is an enormous waste of resources.
The way the Dreamcast's PowerVR2 core works is entirely different. When verticies are sent to VRAM from main ram, they undergo a process called binning where the PVR2's tile accelerator chops the screen up into square spaces. If a vertex resides in the area of one of those spaces, it is placed into a bin of similar vertexes. These screen-space tiles are always drawn in the same position on the screen regardless of vertices present. This is accomplished by a form of raycasting from the position of the camera to the spaces the tiles reside at using a fixed calculation that is translated around the screen. By raycasting out from the position of the camera, it ensures the only pixels ever created on the screen are for polygons that are in front, and visible on the screen. No extra pixels are ever drawn. This gives the dreamcast, essentially, infinite fill rate, and makes it punch way, way above its weight in terms of graphics.
To explain a bit better with pixtures, imagine the following screen space, with the following 3 vertices present:
For the purpose of this example, we divide the screen space up into 4 square bins. Rather than rendering the entire triangle at once through rasterization, it would instead be drawn in tiled steps like so:
To make this make a bit more sense, imagine we moved those vertices around so that only 1 square tile had visible pixels. In the end, this is all that would be rendered:
Vastly Ahead of its Time
Did you know that the Sega Dreamcast had it's own Virtual Console service in Japan?
It was called Dream Library, and was a part of your japanese Sega.net account. DreamLibrary allowed users to purchase and manage Sega Genesis and PC Engine games online. Once a game was purchased, it was tied to your account and could be infinitely redownloaded. Additionally, games could also be rented for a few days at a reduced cost. Because of the lack of permanent storage on the Dreamcast (a zip drive was announced but never released), games had to be redownloaded every time they were played, as only one could reside in RAM at a time.
Funnily enough, the emulator used for the Genesis titles in this was not the same as the emulator used in the US Sega Smash Pack release.
The Service started in May 2001 and ended February 1st 2003. Around 80 titles hit the service, about half being Genesis games and half being PC Engine games.
Did you know that the Dreamcast version of Quake 3 not only supported keyboard and mouse controls, but also supported online cross-play with both Windows and Linux?
Did you know that Sega had a VMU + MP3 player in the works?
This was announced before the Ipod.
Did you know that the Dreamcast had a motion controller in the works?
It was intended to be used for NiGHTS 2. It was a pointer-based motion controller. Gunvalkyrie on the Xbox was originally a Dreamcast game, which would have used this motion controller in one hand with a normal dreamcast pad in the other hand, and would have controlled like Metroid Prime 3 on the Wii.
Did you know that the dreameye - the webcam only available in japan, has extra hardware inside that is never used? It was intended to allow developers to do basic motion tracking ala the Playstation Eyetoy or Microsoft Kinect (albeit without depth sensing, just basic outline detection). The console obviously died before that happened, and as such, the camera only ever released in Japan.
Did you know that the dreamcast has built-in hardware for compression? It has a dedicated vector quantization unit to decompress textures on the fly in memory. With VQ, you can get as much as 32x compression which, when coupled with the Dreamcast's 8 mb of VRAM, would give you the equivalent of 256 mb of VRAM for textures, with only slight artifacts.
Also, did you know that you can expand a stock dreamcast's VRAM to 16 mb? 32 mb on naomi units. 64 on Naomi 2s.
Don't forget to pay your respects to Uncle Sonic
One of the most interesting releases for the Dreamcast is the official Sega Smash pack, a collection of Sega Genesis games:
The author of the emulator used in the Smash Pack officially leaked info to Echelon, the piracy group that cracked dreamcast games, so they could rip the emulator and release it online. Since Dreamcast games can't be read in normal CDRom Drives, it's not too obvious, but if you network a dreamcast to a PC and browse the disc, you'll find a file called Echelon.txt in the root. Inside is the following:
To whomever releases this pack..
Let me give you a few bits of info:
- I emulate a U.S. Genesis, including territory lock-out.
- ".sga" files are standard Genesis/Megadrive ".bin" files renamed.
- The emulator is looking for some parameters to be passed via Ginsu.
If you don't know what that is, you'll figure it out:
MDE_US.BIN ALTBEAST.SGA MODE2 SKIP0 SOUND0
MODE0 = standard, fastest video mode settings
MODE1 = slower, supports some extra features
MODE2 = slowest, includes window layers (used by some games)
MODE4 = same as MODE0 with background skewing
SKIP0 = no sprite skipping until maximum reached
SKIP1 = moderate sprite skipping, used to prevent major slowdown
SKIP2 = maximum sprites skipped
SOUND0 = standard sound emulation
SOUND1 = sound tempo increased
And don't forget to pay your respects to Uncle Sonic.
Sony just doesn't get it.
- Gary
The final line which says "Respect uncle sonic" is why the Echelon release notes for the Genesis emulator says this:
Miscellaneous Notes:
- Yes, this pack is based off an emulator that Sega coded.
- The emulator requires a lot of tweaking to get games that are not
included on this pack to run correctly.
- If we have time for it, we will probably do this tweaking over
the next few days and release a menu system to launch your own
ROM's and burn them to a CD.
- For all of those wondering, the DC console that comes with this
pack (when you buy it!) DOES play MIL CD's / copies.
- You will all probably be wondering how to exit out of a game once
you start it, simply press A+B+X+Y simultaneously, then hit Start
to return back to the menu system.
- Regards to Uncle Sonic for his help, you know for what!
It's STILL Thinking...
The state of Sega Dreamcast homebrew programming is vibrant and alive and strong. Even as frequently as just a couple of weeks ago, KOS, the standard SDK for homebrew Dreamcast development, saw a pretty major update. Today, homebrew hardware is in full production:
You can STILL play Dreamcast games Online, there are currently at this very second, 5 players on Phantasy Star Online right now. Today, it's easier than ever to get your Dreamcast back online:
https://segaretro.org/DreamPi
There are full media players for the Dreamcast:
Even a full, working, useful OS:
There are also Optical Drive Emulators for the Dreamcast to replace faulty lasers:
Open Your Heart
This is just the first planned event for a month of Sega Dreamcast greatness. Dig your dreamcast out and dive right in, it's such a bad siiiiign.
Last edited: