Write 8-bit code in your browser.

Ever wanted to be an old-school game programmer?
Learn how classic game hardware worked.
Write code and see it run instantly.

Open 8bitworkshop IDE

8bitworkshop IDE screenshot

Learn 8-bit Game Programming!

Books available on Amazon and GumRoad.

Note: We may earn commissions from purchases made using these links.

Making Games For The Atari 2600

The Atari 2600 was released in 1977, and now there's finally a book about how to write games for it! You'll learn about the 6502 CPU, NTSC frames, scanlines, cycle counting, players, missiles, collisions, procedural generation, pseudo-3D, and more. While using the manual, take advantage of our Web-based IDE to write 6502 assembly code, and see your code run instantly in the browser. We'll cover the same programming tricks that master programmers used to make classic games.

Making 8-Bit Arcade Games in C

With this book, you'll learn all about the hardware of Golden Age 8-bit arcade games produced in the late 1970s to early 1980s. We'll learn how to use the C programming language to write code for the Z80 CPU. The following arcade platforms are covered: * Midway 8080 (Space Invaders) * VIC Dual (Carnival) * Galaxian/Scramble (Namco) * Atari Color Vector * Williams (Defender, Robotron) We'll describe how to create video and sound for each platform.

Designing Video Game Hardware in Verilog

This book attempts to capture the spirit of the ''Bronze Age'' of video games, when video games were designed as circuits, not as software. We'll delve into these circuits as they morph from Pong into programmable personal computers and game consoles. Instead of wire-wrap and breadboards, we'll use modern tools to approximate these old designs in a simulated environment from the comfort of our keyboards. At the end of this adventure, you should be well-equipped to begin exploring the world of FPGAs, and maybe even design your own game console.

Making Games For The NES

Learn how to program the NES in C using the NESLib library! We'll show you how to uncompress tile maps, scroll the screen, animate sprites, create a split status bar, play background music and sound effects and more. We'll write some 6502 assembly language too, programming the PPU and APU directly. We'll use different "mappers" which add bank-switching and IRQs to cartridges, producing advanced psuedo-3D raster effects.

Game Consoles

Atari 2600

Learn how to program the Atari 2600 with dozens of fully commented examples. The built-in 6502 assembler runs as you type and flags any errors. Single step through your code and use our CPU Cycle Analyzer to develop that perfect kernel.

Famicom console

For a different kind of challenge, try programming the NES (aka Famicom) in C or assembler. Learn all about nametables, scrolling, sprites, NMIs and mappers. Browse video RAM, profile the CPU, and edit graphics in the Asset Editor.

Arcade Games

Arcade game

You can develop your own games on classic arcade game hardware, using our in-browser C compiler targeting the Z80 CPU. Learn how to control frame buffers, sprite engines, vector displays and sound chips. Use the included debugger to step through instructions, view memory, and disassemble machine code.

We simulate the hardware of actual arcade games in the browser. Supported architectures include VIC Dual (Sega/Gremlin), Midway 8080, Galaxian/Scramble (Namco), Atari Vector, and Williams.

Hardware Design

FPGA USB stick

Use our Verilog IDE to design logic circuits in the browser. We'll run your design in real time in the browser, and show you the output on a simulated CRT. You can also slow down time and see the waveforms cycle-by-cycle.

Plenty of examples are included to teach logic programming, from simple counters and dividers all the way to custom CPUs and an 8-bit game platform. The book even shows you how to synthesize your code to the Lattice iCEstick and connect to a CRT or TV.

Supported Platforms

Atari 2600/VCS

Atari 2600
In 1977, the Atari 2600 popularized the idea of programmable video game consoles. Its 6502 CPU and mere 128 bytes of RAM powered hundreds of classic games. Fiendishly difficult to program, developers learned plenty of tricks for "racing the beam" to generate displays far beyond what its designers believed possible. Read more about the Atari 2600.


The NES was one of the last 8-bit game consoles, and one of the most popular. Its 6502 was paired with a PPU that supported 64 sprites on top of a scrolling background layer. It shipped with only 4 KB of RAM, but "mapper" hardware on the cartridge expanded its capabilities, supporting games as large as 1 MB. Read more about the NES.


Use our Verilog IDE to design a 8-bit game platform from scratch. We'll run your design in real time in the browser, displaying the output on a simulated CRT. Plenty of examples are included to teach logic programming. The book even shows you how to synthesize your code to the Lattice iCEstick and connect to a CRT or TV.

VIC Dual

VIC Dual
The VIC Dual system was one of the first CPU-based arcade platforms from Gremlin Industries, later acquired by Sega. It used a Z80 CPU and a character-based display with simple RGB colors. "Carnival" is probably the best-remembered game on this platform.

Midway 8080

Midway 8080
The Midway 8080 system powered Gun Fight, the first CPU-based arcade game. Later, it would also run the immensely popular Space Invaders. It used a Z80 and a simple black-and-white frame buffer backed by 7 kilobytes of RAM, a huge amount for the time.


Galaxian/Scramble platform
Galaxian pushed the limit of video game designs in 1979, with a 3 MHz Z80 and RGB color graphics with hardware sprites overlapping a scrolling background. This hardware was licensed for many classics like Scramble and Frogger.

Atari Vector

Vector game
Atari's black-and-white vector games like Lunar Lander and Asteroids took the industry by storm, later leading to color vector games like Tempest. Powered by a 6502 CPU and custom state machine, they could draw points and lines at a resolution far beyond the CRT-based games of the era.


Williams game
The Williams games like Defender, Robotron, and Joust were powered by Motorola's 6809 CPU (our emulation uses the Z80 though) and plenty of RAM. A 36 kilobyte framebuffer gave it 16-color graphics, and a custom bit blitter chip moved pixels around quickly. A separate CPU powered its unique sound effects.

Apple ][+

Apple ][
You can even write C or 6502 assembler code for Woz's creation, the Apple ][+. Thrill to the unusual frame buffer layout and one-bit speaker output! You can even load your program on a real machine via cassette port, as demonstrated in this video.


The ColecoVision gave Atari a run for their money in 1982 with their excellent arcade ports. The graphics were based on Texas Instruments's TMS9918 Video Display Processors, whose variants powered several Z80-based game consoles and home computers including the MSX and Sega Master System. Read more about the ColecoVision.


No one really agrees on what MSX stands for, but it was an early 80s home computer standard promoted by Japanese manufacturers and Microsoft. These machines featured similar hardware to a ColecoVision albeit with more RAM, a full keyboard, and expansion slots.

Sega Master System

Sega Master System
Sega's SG-1000 console used the same chipset as the ColecoVision. Its backwards-compatible successor, the Sega Master System (Sega Mark III in Japan) was a significant upgrade, with more color depth and hardware scrolling, and would be the basis for the Game Gear.

Bally Astrocade

Bally Astrocade
The ambitious Bally Astrocade never attained the popularity of the Atari 2600. It had odd controllers and overheating problems, but a cavernous amount of RAM (4 KB) for the time and a feature-rich BIOS. This powered its 160 x 102 frame buffer, with a clever "magic" function generator that accelerated graphics operations.

Atari 7800

Atari 7800
The Atari 7800 was the first Atari console designed by an outside company. Internal Atari drama postponed its release until 1986. Its MARIA chip operates exclusively via Direct Memory Access, reading from RAM at high speed and drawing into an internal line buffer.

Commodore 64

The Commodore 64 (or C-64) dominated the microcomputer market in the early 1980s. Its colorful sprite-enabled graphics, multichannel SID audio, and 64K of memory made it a favorite of gamers.

ZX Spectrum 48k

ZX Spectrum
The ZX Spectrum ("Speccy") was one of the first mass-market home computers in the UK, featuring a "chiclet" keyboard preassigned to BASIC keywords. Its bitmapped graphics and sound capabilities were rudimentary, but with 48K of RAM it could power some pretty cool games.

Atari 800

Atari 5200
The Atari 800 was the first generation home computer from Atari. It shared the same ANTIC/GTIA/POKEY chipset as the Atari 5200, and many games were ported between the two.


The Z-Machine is a virtual machine architecture used by Infocom to fit their mainframe-size games into microcomputers. It has since been extensively documented, and hundreds of compatible games have been developed by homebrew developers.

Make Your Own Pixel Art.

Transform your images into 8-bit formats right in your browser. Then export your new artwork to a 8bitworkshop project.

Open Dithertron



Book sales help support this site, but we accept donations too!

8bitworkshop depends on open-source developers for its many moving parts. A large portion of our Patreon income is donated to them.



Sign up for our Gumroad mailing list, and we'll email you about new releases, new books, and other fun stuff.

© 2022 Puzzling Plans LLC. Privacy Policy. Mastodon: oldbytes.space/@8bitworkshop infosec.exchange/@sehugg

Some brands and product names mentioned are trademarks or service marks of their respective owners. Use of a term in this work should not be regarded as affecting the validity of any trademark or service mark. 8bitworkshop.com and 8bitworkshop publications are not affiliated with or endorsed by any third party.

This site may contain affiliate links. As an Amazon Associate, we earn from qualifying purchases.