 
 
Z80 TV Game
Introduction
 In
1987, an electronics hobbyist from Japan developed this 8-bit games console
entirely from scratch! Despite the simplicity of its circuitry (Only
19 ICs are needed to construct the system, none of which are dedicated
graphics chips), it's possible to write surprisingly advanced games
for it!
In
1987, an electronics hobbyist from Japan developed this 8-bit games console
entirely from scratch! Despite the simplicity of its circuitry (Only
19 ICs are needed to construct the system, none of which are dedicated
graphics chips), it's possible to write surprisingly advanced games
for it!
The specifications are as follows:
- 4MHz Z80 processor (The timing of the video circuit is derived from a source separate to the computer, so running the CPU at a higher clockspeed would be fairly simple.)
- Address space of 32KB for ROM cartridges (ROMs larger than 32KB should be possible with bank switching.)
- 16KB of system ROM
- 8KB of separate video RAM
- 168x210 pixel black/white graphics
- 60Hz composite video output
- 1-bit audio output
- 1 controller (4 direction buttons, 2 fire buttons)
Technical Description
 The
circuitry of the Z80 TV Game is relatively easy to understand, making it
a good resource for learning how a computer generates a video signal.
The
circuitry of the Z80 TV Game is relatively easy to understand, making it
a good resource for learning how a computer generates a video signal.
Controller input and audio output are handled by either an Intel 8255 or Zilog Z80PIO I/O controller. There are two sockets on the PCB for either controller, depending on which is easier for you to obtain. These two ICs have to be controlled slightly differently by software, but it's possible to write games that are compatible with both, as demonstrated by the games written by Inufuto.
The controller interface is designed for two-button Sega Master System controllers and will also work with Mega Drive/Genesis controllers. Standard one-button joysticks will also work, aside from the lack of a second button.
The composite sync signal is generated with an EPROM, an unconventional method of simplifying the circuitry. Different ROMs have different data access times, so you may need to experiment with one or two models of ROM before you'll find one that produces a glitchless video signal, due to the high speed at which the raster generator steps through the ROM's address bus.
Fortunately, any size of ROM between 4KB (2732) and 64KB (27512) can be used, so long as the 4KB binary data file (available for download further down this page) is written to the upper 4KB of higher capacity ROMs. During testing, I found that a 150ns ROM worked well, while a 450ns ROM was too slow.
If the prospect of making a lot of cartridges doesn't appeal to you, I've designed a multi-cartridge that holds sixteen 32KB games on one 27C040 ROM. Game selection on the multi-cartridge is performed with DIP switches.
The maximum file size for games is 32KB, but I've designed an experimental bank-switching cartridge PCB (not tested yet!) that should allow games of up to 256KB to be accessed through two configurable 16KB page registers on the cartridge.
Software Development
 The
memory map of the Z80 TV Game is as follows:
The
memory map of the Z80 TV Game is as follows:
- $0000-$7FFF: Cartridge ROM (32KB)
- $8000-$BFFF: System RAM (16KB)
- $C000-$DFFF: Video RAM (8KB)
- $E000-$FFFF: Not used
8255:
- Port $00: Controller input (bits 0-5, active low)
- Port $01: Not used
- Port $02: Audio output (bit 0)
- Port $03: 8255 internal control register (Must be set to $9A for proper operation!)
- Port $00: Controller input (bits 0-5, active low)
- Port $01: Internal control register A (Must be set to $4F for proper operation!)
- Port $02: Audio output (bit 0)
- Port $03: Internal control register B (Must be set to $0F for proper operation!)
 As
mentioned earlier, 6 games (also a larger ROM containing all 6 games
and a selection menu) have been developed by the creator of the Z80
TV Game, Mr. Isizu. These games were written in Z80 assembly, and the source
code listings (with code comments in Japanese) are available for
download here.
As
mentioned earlier, 6 games (also a larger ROM containing all 6 games
and a selection menu) have been developed by the creator of the Z80
TV Game, Mr. Isizu. These games were written in Z80 assembly, and the source
code listings (with code comments in Japanese) are available for
download here.
There's a selection of tools available for programming the Z80 TV Game in C:
- The Z88DK development kit supports the Z80 TV Game.
- Cate is a C-like programming language and multi-platform compiler developed by Inufuto that can compile code for hundreds of retro systems. Inufuto has ported 20 games written with it to the Z80 TV Game.
- Cross-Lib is a multi-platform C programming framework with support for hundreds of retro systems, including the Z80 TV Game.
Changelog
Revision 0:Initial prototype, as seen in the photos.
- A jumper on the PCB was intended to allow usage of Atari 7800 controllers. After some research (which I should've done before ordering the PCBs...) I realized that the outputs of A7800 controllers are active high, so implementing A7800 controller support would require a lot more circuitry that wasn't worth adding.
- The 74LS122 that generates the pixel clock wasn't oscillating, which was due to a misprint on the original schematic.
This is the version available for download on this page.
- VCC connected to pin 5 to allow usage of Sega Mega Drive/Genesis controllers.
- 74LS122 clock circuit fixed.
Downloads

 Interactive Bill of Materials - Console
Interactive Bill of Materials - Console
HTML document, 531 KB
 Schematic - Console
Schematic - Console
    PDF document, 941 KB
 PCB Gerbers - Console
PCB Gerbers - Console
    ZIP archive, 744 KB
 KiCad Files - Console
KiCad Files - Console
    ZIP archive, 1.33 MB - Useful if you want
to make modifications to the PCB. Made with KiCad 9.
 Interactive Bill of Materials - 32KB ROM Cartridge
Interactive Bill of Materials - 32KB ROM Cartridge
    HTML document, 338 KB
 Schematic - 32KB ROM Cartridge
Schematic - 32KB ROM Cartridge
    PDF document, 127 KB

 PCB Gerbers - 32KB ROM Cartridge
PCB Gerbers - 32KB ROM Cartridge
    ZIP archive, 170 KB
 KiCad Files - 32KB ROM Cartridge
KiCad Files - 32KB ROM Cartridge
    ZIP archive, 532 KB - Useful if you want
to make modifications to the PCB. Made with KiCad 9.
 Interactive Bill of Materials - 32KB x 16 Multi-Cartridge
Interactive Bill of Materials - 32KB x 16 Multi-Cartridge
    HTML document, 350 KB
 Schematic - 32KB x 16 Multi-Cartridge
Schematic - 32KB x 16 Multi-Cartridge
    PDF document, 151 KB
 PCB Gerbers - 32KB x 16 Multi-Cartridge
PCB Gerbers - 32KB x 16 Multi-Cartridge
    ZIP archive, 191 KB
 KiCad Files - 32KB x 16 Multi-Cartridge
KiCad Files - 32KB x 16 Multi-Cartridge
    ZIP archive, 564 KB - Useful if you want
to make modifications to the PCB. Made with KiCad 9.

 Interactive Bill of Materials - Experimental 256KB ROM Cartridge
Interactive Bill of Materials - Experimental 256KB ROM Cartridge
    HTML document, 316 KB
 Schematic - Experimental 256KB ROM Cartridge
Schematic - Experimental 256KB ROM Cartridge
    PDF document, 221 KB
 PCB Gerbers - Experimental 256KB ROM Cartridge
PCB Gerbers - Experimental 256KB ROM Cartridge
    ZIP archive, 209 KB - Please note that the
256KB cartridge hasn't yet been tested!
 KiCad Files - Experimental 256KB ROM Cartridge
KiCad Files - Experimental 256KB ROM Cartridge
    ZIP archive, 603 KB - Useful if you want
to make modifications to the PCB. Made with KiCad 9.
 Custom Fonts
Custom Fonts
    ZIP archive, 8.90 MB - Custom fonts used
for the KiCad files. Only needed if you want to modify these files.
 Original Schematics
Original Schematics
    ZIP archive, 1.14 MB - Mr. Isizu's original
schematics for the Z80 TV Game, with the 74LS122 timing circuit corrected.
Includes the 1980's hand-drawn schematic, which has a different memory
map to the 2000's CAD schematic that this PCB, emulators, C devtools, etc.
are based on.
 Game ROMs
Game ROMs
    ZIP archive, 922 KB - All the games I know
to exist for the Z80 TV Game thus far. Includes two combined ROMs for those
who would rather have all 26 games on 2 multi-cartridges. If you know of
any games that aren't mentioned on this page (or you've written a new
game), please let me know! My email address is on the home
page.
 32KB Cartridge Dimensions
32KB Cartridge Dimensions
    PDF document, 61.3 KB - Useful for designing
a 3D printed cartridge enclosure. Note that the standard PCB thickness
used by most manufacturers is 1.6mm.
 32KB x 16 Multi-Cartridge Dimensions
32KB x 16 Multi-Cartridge Dimensions
    PDF document, 67.1 KB - Useful for designing
a 3D printed cartridge enclosure. Note that the standard PCB thickness
used by most manufacturers is 1.6mm.
 Z80 TV Game Logo (1920 x 846) (Variant 1)
Z80 TV Game Logo (1920 x 846) (Variant 1)
    PNG image, 1.21 MB - The logo seen at the top of the page in full resolution.
 Z80 TV Game Logo (1920 x 846) (Variant 2)
Z80 TV Game Logo (1920 x 846) (Variant 2)
    PNG image, 1.08 MB - The logo seen at the top of the page in full resolution.
Thanks to:
Mr. Isizu: The original designer of the Z80 TV Game.
Inufuto: Developer of Cate, a multi-platform compiler that can generate software for the Z80 TV Game. All 20 of the games he has created with it thus far have Z80 TV Game versions. Inufuto has also designed a PCB version of the Z80 TV Game that outputs VGA video via a Raspberry Pi Pico.
Takeda Toshiya: Developer of eZ80TVGAME, a Z80 TV Game emulator for Windows.
lsluk: Developer of vdmgr, a multi-platform emulator for Windows that supports the Z80 TV Game.
Last updated on Oct 26, 2025.
This page was first uploaded on Oct 26, 2025.
.png)
 2 days ago
                                1
                        2 days ago
                                1
                     
  
/https://tf-cmsv2-smithsonianmag-media.s3.amazonaws.com/filer_public/02/b0/02b0ad5f-1007-4a21-ba98-1d65dc4b4f14/oldrieve.png)

