Sega 3-D Glasses: How did they work?
Most people have two eyes, allowing for a stereoscopic view of reality.[citation needed]. Nevertheless, video games are generally designed to run on monitors with a single screen, viewed from a distance, so three-dimensional effects have to be done with perspective and other techniques. But of course, many ways have been made to give a true stereoscopic view; from the 3DTV fad of the early 2010s, to the Nintendo 3DS’ glasses-free parallax barrier. But how did systems in the primitive days of 8-bit consoles do it? Let’s ask Sega!
Glasses
These are my Sega 3-D glasses. They’re in rough shape; a previous owner has cracked them, and replaced the hinged arms with a headband. But hey, they work!
And it’s not a big deal. After all, if the damage bothers me, I can just use these glasses; the Asus VR-100, from around 2000. They’re actually the exact same technology, using the same 3.5mm port. And they’ve got bigger panels to boot.
Even more modern active shutter glasses aren’t that different technologically, but they often used different connectors, or even wireless. But they all do the same thing. A signal sent to the glasses tells one LCD panel, or the other, to “blank”, preventing the eye from seeing out of it. This is pretty much the same thing as an LCD game, but even simpler, since there’s only two.
Unfortunately, I, uh, can’t find my Sega 3-D glasses adaptor. I’ve been through a few moves since buying it. But it doesn’t matter, because I have a Japanese Sega Master System! Once you get an adapter to play western Master System games on, this thing really is the ideal console (for those who don’t want to play Earthworm Jim (sprite scaling) or Dizzy (224-line mode), anyway) for the Master System, as it features the 3-D glasses built in. Well, the adapter anyway. It also has FM sound.
The 3-D signal
The glasses are, in a sense, passive devices. Even though they’re called “active shutter” glasses. That is to say, they are entirely controlled by the signals sent by the console. Liquid crystal needs an AC signal to activate or deactivate, and I’ve captured one of the channels on my oscilloscope. Unfortunately, the signal doesn’t work when the scope is connected to my computer (grounding issues), so here’s a terrible photo.
How does this get generated? Well, unfortunately, this is one case where having the Japanese Master System is a downside. Tracing the 3-D glasses signal on the circuitboard, we see it comes from a μPC324, an NEC chip which is made up of four op-amps. This amplifies and controls the signals coming from the 315-5297 IO chip.
The 315-5297 is, as far as I know, unique to the Japanese Master System. It generates the AC reference signal and some controls to send the correct signal down the op-amp’s lines; SMS Power has documented that. Forum users there have also mapped out the discrete circuit used in the separate adapter, which is in the end a simple oscillator.
The glasses adapter plugs into the card slot solely to look at the system bus. When it sees a write to $fff8
, it looks at the low bit of the bus and uses that to distinguish which eye’s glass should be enabled. It’s a very simple system; so simple, the console actually has no way to detect that glasses are present. It just throws its writes into the void and hopes for the best. (Well, actually, they end up also being written to RAM at $dff8
, but that happens regardless)
And from a hardware perspective, that’s all that exists to support the 3-D glasses. Everything else is up to the game code to figure out.
Space Harrier 3-D
Space Harrier 3-D is not my favorite way to play Space Harrier, even on the Master System. But let’s put that aside.
So, up-front, we know the limitations of the Master System hardware; like anything that runs in a progressive mode on a standard television of the era, it can only run at 60Hz. (yes, 240p is fake and a lie, but close enough for us) As noted above, the glasses work by choosing one eye at a time. So any game is going to have to run at 30Hz. (25Hz for PAL types)
Now, 30Hz isn’t the worst; after all, it’s the frame rate of the interlaced video that a standard television is designed to display. But don’t watch it without the glasses on to get 60Hz! That’s much worse. If we look at a video capture of Space Harrier 3-D, we see that it shows each image for each eye, one after the other. Things that move more from left to right between the frames, end up being seen as farther in the background.
One thing about the Master System port of Space Harrier is that they use software sprites. That is to say, many of the moving objects on the screen– pretty much everything other than Harrier– are not actually sprites, but are part of the tilemap.
This causes them to move a bit choppily and not have transparency with the background, but the tradeoff is that Space Harrier can have very large objects without flicker. In these games, it’s worth it. Space Harrier 3-D works pretty much the same way.
Now, the problem with software sprites on systems like the Master System and the NES is that you can only write a certain number of bytes to VRAM at a time, so changing a lot of tiles on every frame can be a problem. This isn’t a huge deal, though, because usually you can just lower the framerate; since their position is limited by the size of an 8x8 tile anyway. But remember, to be 3-D, you have to switch everything every frame.
So how do you do this? That’s a lot of data to write to VRAM.
Well, remember when I said the following?
The tilemap of the Master System mode is surprisingly smaller than that of the NES; it’s 32x28 8x8 tiles instead, or 256x224 pixels. Since the vertical height of the display area is limited to 192 pixels, this is still fine for vertical scrolling. (There are 224 and 240-line modes on some later SMS models; they also expand the tilemap, and were only used by some European publishers late in the system’s life) Note that the tilemap eats into that 16kiB of VRAM.
This is, on the face of it, true. At any given time, the Sega Master System can display one tilemap layer. It is 256x224 pixels large and made of 8x8 tiles, and takes up 0x700
bytes in the Master System’s 16kiB of VRAM.
And this is all true. Using the emulator Emulicious, we can visualize the VRAM. Here it is for Space Harrier, the original, non-3D version.
Notice that it’s almost entirely made up of tiles that are used by the tilemap and sprites. But there’s an area at the bottom of the screen, at $3800
, where the tilemap is. (And then, at $3f00
, the sprite data)
But if we look at Space Harrier 3-D, it looks a little different.
Things are arranged pretty differently. But most notably, the area of tiles and sprites is twice as big. How can this be true, if the Master System has only one tilemap?
The Master System only has one tilemap at a time. You see, while almost every Master System game has its tilemap (“name table”) at $3800
and its sprite table at $3f00
, that’s not required. There are two VDP registers that let you move it to other points in RAM.
This is a feature dating back to the TMS9918A VDP. While computers and game consoles generally paired the VDP with 16kiB of RAM, the datasheet mentions that it can support RAM as low as 4kiB. In this case, it’s very convenient to move things around, and not have fixed addresses. This sort of thing is the difference between a more general-purpose chip like the TMS9918A, and single-purpose chips like the NES PPU. (The Master System VDP is a single-purpose chip, but it has heritage, damnit)
So Space Harrier 3-D gives up some tile space to instead maintain two copies of the name and sprite tables, and shifts between them each frame. You still need to upload twice as much data to VRAM as with one screen, but you don’t need to redraw the whole screen every frame, just the changes. From my testing, every 3-D Master System game uses this screen-flopping method to a degree, though some only flip the tilemap and not sprites; and Poseidon Wars 3-D only uses the tilemap flipping for the HUD in gameplay.
And remember, this is the base Master System hardware. Any game that’s willing to give up the tile space– a big sacrifice– can make this tradeoff. Here’s the title screen of Double Target, the Japanese version of the game we got in the west as Quartet. I have the Japanese version because it has much better box art.
That cool smooth-scrolling could probably be done with an elaborate set of sprites and careful timing, but because they could spare the tiles, they instead just stored two title screen nametables in VRAM, and use the Master System’s line interrupt to switch between them as-needed while the screen is being drawn.
Here’s the nametable at 0x3000
for Double Target:
And here it is at 0x3800
. Interestingly, it actually has most of the character art present still, but uses a different palette (the one usually used for sprites) to cover them up.
It’s a pretty neat trick, if you can spare the VRAM. The Master System may not be able to do video bankswitching like the NES, but this sort of thing allows some similar effects, with a lot of flexibility, since it’s all in RAM.
Playing on LCD
So you might have noticed that I mentioned that 3DTVs used the same active shutter technique. It might make you wonder, why don’t the 3D glasses work on LCD TVs, then? Even with a low-lag upscaler?
The answer is that there’s always some lag on an LCD. The 3D circuitry in a 3DTV is part of the LCD, and therefore can know exactly when the LCD will display a frame. Unfortunately, the Sega Master System is just as limited. In theory, though, I suppose if you had the programming skill and an upscaler and display with a constant, known lag, you could change the game to time properly. Good luck…
Another option is to play on a very bad upscaler. 3-D games alterate 240p frames on every field. Therefore, upscalers designed for exclusively 480i video content will just interpret them as interlaced, and combine the two frames together.
Notice that items that are further away end up duplicated. This makes oncoming objects appear as two elements that merge together as they get close; your bullets do the opposite, splitting into two as they move into the distance. While it’s surprisingly playable like this, if this is the only way you can play it, do yourself a favor and stick to the first Master System Space Harrier. You don’t need the 3D version’s FM soundtrack that badly.
Of course, you’ll also get the downsides of low-quality upscalers. Still, rapidly switching to create a fake interlacing effect is how my nightmare cartridge produced those high-resolution skulls, in case you wondered.
In the end, if you want to play Space Harrier in 3-D with the objects really coming at you, it’s this or the Japanese-only Nintendo 3DS port. And even at 30fps, that’s still a pretty cool effect. Just make sure you actually have the glasses.