Introduction
The SG-1000 combines a Z80 CPU with separate video and sound chips. For a first disassembly, its small RAM area and mirrored I/O ports are useful landmarks: they help distinguish game state, graphics transfers and sound writes 1 2 3.
Sega released its first home console in Japan on 15 July 1983, alongside the SC-3000 computer and on the same day as Nintendo’s Famicom. Sega’s hardware history explains how the SG-1000 adapted the SC-3000 design into a games machine 4.
Hardware and Memory Map
MAME’s SG-1000 driver records a Z80A running at approximately 3.58 MHz, a TMS9918A video display processor (VDP), and an SN76489A sound generator for the boards it documents. Its board notes and machine configuration are useful companions to chip manuals, but an emulator implementation is not a substitute for checking the particular hardware revision 1.
The SMS Power memory map describes the ordinary SG-1000 address space as follows 2:
| CPU addresses | Contents | Reversing implication |
|---|---|---|
$0000-$BFFF |
Cartridge ROM, RAM or other cartridge hardware | Check the cartridge before assuming the whole range is ROM |
$C000-$C3FF |
1 KiB of system RAM | Start here when identifying game-state variables |
$C400-$FFFF |
Mirrors of that RAM, repeated every 1 KiB | Different addresses may refer to the same byte |
For example, $C123, $C523 and $FD23 all select offset $123 in ordinary system RAM.
When annotating a trace, normalise RAM addresses with $C000 | (address & $03FF) to avoid inventing several variables for one storage location.
Cartridges can disable system RAM and take over the address space, so apply this rule only after identifying the mapping 2.
Finding Video and Sound Routines
The Z80 accesses these devices through I/O instructions, separately from its memory reads and writes. The SG-1000 I/O port map gives these useful ranges 3:
| I/O port | Write | Read |
|---|---|---|
$40-$7F |
SN76489 sound data | Open bus |
Even ports in $80-$BF |
VDP data | VDP data |
Odd ports in $80-$BF |
VDP control | VDP status |
A search for writes to $BE alone can miss graphics code using $80: both select the VDP data port.
Follow the surrounding address-setup and transfer instructions before labelling a routine as a tile loader.
Likewise, read and write accesses to $BF have different meanings 3.
Controller decoding needs more care.
SMS Power lists controller reads across $C0-$FF, while the pinned MAME driver routes $DC-$DF through its peripheral handlers.
If a trace uses another alias, check the documentation and emulator implementation separately rather than treating their maps as identical 1 3.
Try an I/O Watchpoint
With an SG-1000 cartridge running in MAME’s debugger and the Z80 selected, enter wpiset 80,40,w to stop on writes in the video-port range.
MAME’s watchpoint documentation explains that wpiset selects I/O space and that the second argument is a length 5.
Resume execution and inspect the instruction stream at a stop.
Compare the port, the value written and the preceding setup code; repeat during a screen transition to find a larger transfer.
Use wplist to see the watchpoint number, then wpclear followed by that number to remove it 5.
This is a starting point for tracing a game’s graphics path, not a claim that every write transfers visible tile data.
The SMS Power document collection links the Texas Instruments TMS9918A data sheet for interpreting video-register writes. Keep the SG-1000’s chip documentation beside any Master System reference rather than assuming the later machine’s video features apply.
History and Hardware Videos
The following videos provide historical context and a look at the physical systems.
History of the SG-1000
GTV Japan covers the SG-1000’s history and includes contemporary Sega advertisements.
Sega SG-1000 II System Review & Story
Nostalgia Nerd examines the SG-1000 II’s hardware, physical design, expansion options and software compatibility. The review also compares its architecture with the ColecoVision and discusses its relationship to later Sega hardware. Use the technical references above when identifying chips or interpreting memory accesses on a particular board.
Magazine Interviews
The magazine index collects developer interviews tagged for this system across all indexed magazines.
| Magazine | Issue | Pages | Developer | Platforms | Description |
|---|---|---|---|---|---|
| Retro Gamer | 163 | p. 57 | Martin Wenting | SG-1000 | Wenting discusses releasing Astrododge for Sega’s first home console. |
| Retro Gamer | 163 | p. 61 | Yu Suzuki | SG-1000 | Suzuki discusses his early Sega work on Champion Boxing. |
References
-
MAME SG-1000 driver, board notes,
sg1000_mapandsg1000_io_map, pinned revision774a180df2b6ef9c53e48337792256817c50f768. ↩ ↩2 ↩3 -
SMS Power - Memory Map, SG-1000/SC-3000 section. ↩ ↩2 ↩3
-
Sega Hard Story, part 1, Sega, 14 July 2017 (Japanese). ↩