Sega Master System#
Open 8bitworkshop IDE
Click here to program the Sega Master System in the 8bitworkshop IDE now!
Sega Master System Specifications#
- Lifespan
1985-1996
- Media
ROM cartridge, Sega Card
- CPU
Zilog Z80A
- Memory
8K video RAM, 8K main RAM
- Controllers
two digital controllers, Light Phaser light gun
- Best-selling game
Alex Kidd in Miracle World (built-in)
History#
The Sega Master System was released in Japan as the “Sega Mark III” in 1985, and later redesigned and released in North America and Europe as the Master System in 1986. It was Sega’s entry into the 8-bit home console market, designed to compete with Nintendo’s dominant Famicom/NES.
Sega built the Master System using enhanced versions of components from their earlier SG-1000 console. The system featured superior graphics and sound capabilities compared to the NES, with more colors on screen and better audio quality. However, Nintendo’s restrictive licensing agreements with third-party developers limited the Master System’s game library in North America.
Despite struggling against Nintendo in Japan and North America, the Master System found considerable success in Europe, South America, and other regions. In Brazil, the system remained popular well into the 1990s, with Tectoy continuing to manufacture and support the console for many years.
The Master System’s library includes many memorable games such as Phantasy Star, Wonder Boy, Shinobi, and R-Type. Many titles were enhanced ports of Sega’s popular arcade games, taking advantage of the system’s capabilities to deliver faithful home conversions.
While ultimately overshadowed by the NES, the Master System established Sega as a major console manufacturer and laid the groundwork for the successful Genesis/Mega Drive system that followed.
Hardware#
The Sega Master System uses a combination of custom and standard components optimized for 8-bit gaming:
CPU : Zilog Z80A at 3.58 MHz
Video : Sega Video Display Processor (VDP) - enhanced TMS9918A
Sound : Sega Programmable Sound Generator (PSG) - based on SN76489
Video RAM : 16 KB
Main RAM : 8 KB
BIOS ROM : 2 KB (some models)
Cartridge ROM : 32 KB to 4 MB
The Master System cartridge slot accepted both standard cartridges and smaller “Sega Cards” that provided a more compact and affordable media format. Some models included built-in games like Alex Kidd in Miracle World or Hang On/Safari Hunt.
The system outputs composite video and RF signals, with some models providing RGB output for enhanced display quality. Two controller ports support standard digital controllers or the Light Phaser light gun accessory.
Video#
The Master System’s Video Display Processor is an enhanced version of the TMS9918A found in other systems. Sega’s improvements included increased color palette, additional video modes, and enhanced sprite capabilities.
The VDP generates a 256×192 display at 60 FPS (50 FPS for PAL systems) and supports several video modes:
Mode 0 : Text mode with 40×24 characters, limited color capabilities
Mode 1 : Graphics mode with 32×24 tiles, 2 colors per tile
Mode 2 : High-resolution graphics mode with full bitmap control
Mode 4 : Master System’s primary mode - 32×24 tiles with full color control
Mode 4 is the most commonly used, providing 32×24 background tiles with each tile being 8×8 pixels. The system can display 32 colors simultaneously from a palette of 64 total colors.
The sprite system supports up to 64 sprites in memory with 8 sprites maximum per scanline. Sprites can be 8×8 or 8×16 pixels and can use any colors from the palette. Sprite collision detection is handled automatically by the VDP hardware.
Sound#
The Master System uses Sega’s Programmable Sound Generator, based on the Texas Instruments SN76489. Sound capabilities include:
3 square wave tone generators with 10-bit frequency control
1 noise channel with multiple noise types
4-bit volume control per channel
Wide frequency range
Some Master System games also included FM sound synthesis through an optional YM2413 chip in certain cartridges. This provided even richer musical capabilities with more realistic instrument sounds.
Controllers#
The standard Master System controller features:
8-way directional pad
2 action buttons
Start/Pause button (on later models)
The Light Phaser light gun accessory allowed for shooting games that detected light from the TV screen. Some regions also received specialized controllers like the Sports Pad trackball controller.
Memory Map#
Start |
End |
Description |
Read/Write? |
---|---|---|---|
$0000 |
$3FFF |
Cartridge ROM (Bank 0) |
read |
$4000 |
$7FFF |
Cartridge ROM (Bank 1) |
read |
$8000 |
$BFFF |
Cartridge ROM (Bank 2) |
read |
$C000 |
$DFFF |
System RAM |
read/write |
$E000 |
$FFFF |
System RAM (mirror) |
read/write |
$FFFC |
$FFFF |
Memory mapper |
write |
The memory mapper allows cartridges larger than 48 KB to bank-switch different ROM sections into the CPU’s address space. This enables games to exceed the Z80’s 64 KB addressing limitation.
I/O ports control hardware functions:
Start |
End |
Description |
Read/Write? |
---|---|---|---|
$7E |
$7F |
Vertical counter |
read |
$BE |
$BF |
Video (VDP) data |
read/write |
$BD |
$BF |
Video (VDP) control |
write |
$DC |
$DD |
Controllers |
read |
$DE |
$DF |
Memory control |
write |
$F0 |
$F2 |
Sound (PSG) |
write |
The VDP’s 16 KB of video RAM contains:
Background tile patterns and color information
Sprite attribute tables defining position, pattern, and color
Background tilemap defining screen layout
Programming#
Master System development traditionally used Z80 assembly language for commercial games, allowing developers to maximize the system’s performance within tight memory constraints. Modern homebrew development often uses C with specialized libraries, providing higher-level programming while still achieving good performance.
Commercial games were distributed on ROM cartridges ranging from 32 KB to several megabytes using bank-switching techniques. The larger address space compared to earlier consoles allowed for more complex games with detailed graphics and sound.
Note: The 8bitworkshop IDE supports Master System development using the LibCV library. This C library simplifies hardware access and provides convenient functions for graphics, sound, and input handling.