Awesome
Awesome 8-bit Game Dev
A curated list of awesome resources for 8-bit retro game development.
Table of Contents
- Home Consoles
- Home Computers
- Arcade Games
- Hardware
- Development Tools
- BASIC Programming
- Books
- Community
- Contributing
Home Consoles
Fairchild Channel F
-
Sean Riddle's Channel F Info including a homebrew Tetris clone
Bally Astrocade
-
Bally Alley - An archive of all things Bally Astrocade.
-
The Better Bally Book - A wiki dedicated to organizing, annotating, and improving Software and Hardware for the Bally Arcade, a technical manual for the Bally Home Computer/Arcade/Astrocade originally published in 1978 by Dave Nutting Associates.
-
hxlnt's Astrocade Dev - Z80 demos and graphics tools for the Astrocade. Also see this thread.
Atari 2600
-
Stella Programmer's Guide - The official guide to programming the Atari 2600, from Atari employee Steve Wright.
-
Atari 2600 Advanced Programming Guide - Paul Slocum compiled this list of Atari 2600 programming techniques, including an HMOVE timing chart. Also see this list of tricks.
-
TIA Hardware Notes - A detailed analysis of the TIA chip by Andrew Towers.
-
Kirk Israel's 2600 Programming Page - A bunch of links by a 2600 homebrew developer. Also see his 2600 Cookbook, webTune2600, and playfieldpal tools
-
Random Terrain 2600 Page - Includes Atari 2600 Programming for Newbies, batariBasic info, programming tools, and much more.
-
BJARS Atari Archives - Steve Engelhardt's site full of homebrew, hacks, online tools, references, and disassembled code.
-
Stellerator - An online Atari 2600 emulator.
AFP MP-1000
- AFP MP-1000 Programming - AFP/6800 programming tools for Windows, and documentation.
Intellivision
-
jsintv - Portable Intellivision emulator and programming tools
-
IntyBASIC - a BASIC compiler for Intellivision
ColecoVision
-
Philipp Klaus Krause's tutorial on using libCV to develop games in C using SDCC. Also includes graphics conversion and compression tools.
-
ColecoVision.dk - Tools and homebrew source code.
Vectrex
Sega SG-1000
- Sega Game 1000 Specifications - by Omar Cornut / Zoop
NES
-
NesDev Wiki - Comprehensive site with NES programming tutorials, reference guides, and homebrew.
-
Shiru's Stuff - Shiru has lots of NES programming tools, and the article programming NES games in C.
-
Dustmop's NES Graphics - Describes NES graphics in detail.
-
nesdoug - Step-by-step tutorial on making a NES game in C.
-
Lizard NES - Homebrew game with a great development blog.
-
Mega Cat Studios - Some good blog posts about efficiently managing NES graphics assets.
-
Nerdy Nights NES programming tutorials
-
FamiStudio - NES Music Editor
-
NESFab - A NES-specific programming language with advanced 6502 optimizations and automatic bank placement.
Atari 7800
-
Atari 7800 (Dan Boris) - System Specs, Cartridge Information, Links, The 'Encryption' Issue, Technical Files, and more.
-
Atari 7800 Software Guide - 7800 hardware description, registers, DMA timing, and more.
-
Atari 7800 Programming Wiki - This site is intended to be a reference for the Atari 7800 Programming mailing list, with information culled from the mailing list archives and other sources (i.e. Atari Age forums)
-
CC7800 - A C-inspired compiler for the Atari 7800.
Sega Master System
- SMS Power - This area is dedicated to studying, programming, hacking of Sega 8-bit hardware and software. Technical info, VDP info, SN76489 sound chip info
Home Computers
Apple I
Commodore PET
- Commodore PET Programming Model - The PET's memory map.
TRS-80
Apple II
-
The Big PEEKs, POKEs and CALLs list - Compiled by Edhel Iaur, Esq.
-
HIRES Graphics on Apple II - Detailed explanation of the Apple II's convoluted graphics scheme, including the Rgb2Hires conversion utility.
Atari 8-bit
-
TRANSPORTING ATARI COMPUTER PROGRAMS TO THE ATARI 5200 - A.N.A.L.O.G. #15, January 1984
TI 99/4
Commodore VIC-20
Acorn
-
The BBC and Master Computer Public Domain Library and 8-Bit Acorn Webring (Webrings still exist?!?)
Sinclair
-
World of Spectrum - The official world archive for the Sinclair ZX Spectrum and the largest on-line gaming center on the Internet (Yup, I think the site's great - Cliff Lawson)
-
How to Write ZX Spectrum Games - Converting a simple BASIC program to Z80, by Jonathan Cauldwell
Commodore 64
MSX
-
The MSX Red Book - The aim of this book is to provide a description of the standard MSX hardware and software at a level of detail sufficient to satisfy that most demanding of users, the machine code programmer.
-
awesome-msx - an awesome list about MSX!
CPC
- cpctelera - Amstrad CPC game engine for C and Assembler developers, integrated into 8bitworkshop
Arcade Games
-
Computer Archeology - Investigating Asteroids, Crazy Climber, Defender, Frogger (Sound), Galaga, Moon Patrol, Omega Race, Space Invaders, Time Pilot (Sound) and the Asteroids Digital Vector Generator
-
Jed Margolin's The Secret Life of Vector Generators and The Secret Life of XY Monitors
Hardware
6502
Z80
-
Z80 Heaven - Tutorials and instruction set
-
Z80 instruction set - Searchable table
TMS9918A
-
Texas Instruments TMS9918A VDP info by Sean Young. Also see here.
-
VDP Programming Tutorial - Examples of programming the TMS9918A/v9938/v9958 from Z80 assembly language on the MSX.
-
Convert9918 - (Windows) This program can convert most modern graphics into a form compatible with the TMS9918A bitmap mode.
-
High-Resolution Sprite-Oriented Color Graphics - Ciarcia's Circuit Cellar column in August 1982 BYTE Magazine about the TMS9918.
AY-3-8910
- AY-3-8910 Datasheet - Datasheet for the programmable sound generator.
FPGA/HDL
-
ATARI PONG E CIRCUIT ANALYSIS & LAWN TENNIS: BUILDING A DIGITAL VIDEO GAME WITH 74 SERIES TTL IC’s. (PDF) - A detailed analysis of the PONG circuits by Dr. H. Holden.
-
fpga-examples - These are some of the Verilog examples from the book "Designing Video Game Hardware in Verilog" ported to CRT monitor timing and tested against the IceStorm tools.
Microcontrollers
- Uzebox - An open-source micro game platform based on the ATmega644 chip.
Development Tools
Compilers
-
CC65 - a C compiler, linker, and assembler for 6502 machines. Targets Commodore, Apple II, Atari 8-bit, NES, and more.
-
SDCC - Small Device C Compiler and toolchain. Targets Z80 and Gameboy Z80, among others.
-
z88dk - A Z80 C and assembly toolchain. There are two C compilers supported (sccz80 and sdcc), two independent C libraries included (the classic and new), an assembler/linker/librarian (z80asm), and a data compression tool (zx7). Targets over 80 different machine families.
-
CMOC - A 6809 cross-compiler for a subset of the C language. Depends on the LWTOOLS toolchain.
-
batariBASIC - BASIC programming for Atari 2600 systems.
-
LLVM-MOS SDK - A clang-based compiler/SDK for 6502 systems.
Assemblers
-
DASM - a versatile macro assembler with support for several 8-bit microprocessors including MOS 6502 & 6507, Motorola 6803, 68705 & 68HC11, Hitachi HD6303 (extended Motorola 6801), and Fairchild F8. Used most often for Atari 2600 development.
-
NESASM3 - The O.G. NESasm assembler for NES 6502 assembly.
-
ASM6 - 6502 assembler primarily targeted at NES/Famicom development.
-
zmac - Macro cross-assembler for the Zilog Z80 microprocessor, sometimes used for Astrocade development.
Emulators
-
MAMEDev.org - Home of the MAME/ MESS mega-emulator.
-
Javatari - Atari 2600 emulator in JavaScript.
-
JSNES - NES emulator in JavaScript.
-
Stella - A multi-platform Atari 2600 VCS emulator released under the GNU General Public License (GPL).
-
Mesen - A high-accuracy NES and Famicom emulator and NSF player for Windows and Linux.
-
VICE - The Versatile Commodore Emulator.
-
https://github.com/floooh/chips - Portable C emulation library for C64, CPC and other microcomputers.
-
jsvecx - Vectrex emulator in JavaScript.
-
Altirra - Atari 8-bit family emulator, includes compatible open-source ROM.
IDEs
-
8bitworkshop - An online batteries-included IDE targeting home consoles, home computers, arcade games, and Verilog hardware design.
-
WUDSN - a free integrated Apple II, Atari 2600, Atari 7800, Atari 8-bit, C64 and NES development plugin for Eclipse
-
NESICIDE - multiplatform IDE for NES, includes FamiTracker support.
-
CBM prg Studio - Free C64 IDE for Windows written with C# and VB.NET.
-
Turbo Rascal SE - A Pascal -> DASM compiler for 6502/68000 computers -- the C64, C128, VIC-20, PLUS4, NES, PET and Amiga 500.
-
BASIC8 - A fantasy console supporting a BASIC-like language.
Graphics
-
Dithertron - From 8bitworkshop. Downsamples/reduces/converts images into many different retro formats, with lots of tweaking options.
-
mcDRAW - Cool online bitmap editor for C-64.
-
retropixels - A command-line tool and library that converts to C-64 format.
Libraries
- CROSS-LIB - Cross platform game library for several 8/16/32-bit computers.
Open-Source BIOSs
-
apple2go - The Apple][Go ROM is a public domain Apple ][ replacement ROM that is capable of running most games not requiring Applesoft. This ROM was written in 2006 by Marc Ressl specifically for use with the Apple][Go Emulator
-
open-roms - A project to create unencumbered open-source ROMs for use on selected retro computers
-
CBIOS - A BSD-licensed MSX BIOS written from scratch by BouKiCHi (no cassette/disk/BASIC yet)
-
SEBasic - Open source ZX Spectrum BIOS with BASIC.
-
Altirra - Contains Atari 8-bit compatible ROM and BASIC interpreter.
BASIC
-
BASIC Manuals - 4th Edition, OS/8, EduSystem, ECMA-55 (Minimal BASIC), BASIC-80, Altair 8800 BASIC 4.1, HP2000, BASIC-PLUS
Books
-
8bitworkshop Books - Books that go along with the 8bitworkshop IDE: "Making Games for the Atari 2600", "Making 8-bit Arcade Games in C", "Making Games for the NES", and "Designing Video Game Hardware in Verilog"
-
Retro Game Dev: C64 Edition - Using modern tools, this introductory book guides you through all the elements required to make two mini games: a space shooter and a platformer, and run them on an emulator or real C64 hardware. Uses CBM prg Studio (Windows IDE)
Community
-
AtariAge Forums - Lots of active programming forums for 2600, 5200, 7800, Lynx, Jaguar, ColecoVision, Intellivision, TI-99/4A, homebrew, hacks and more.
-
NesDev Forums - Discussion of NES/Famicom programming, emulation, graphics, music, and more.
-
SMS Power Forums - Discussion of all things SEGA!
-
Lemon64 and EverythingC64 - Forums for the C-64 scene.
Misc.
-
Lou's Psuedo-3D Page - How to draw 3-D roads
-
8bit-tools - Command-line tools that go along with 8bitworkshop books
Contributing
Your contributions are always welcome! Please take a look at the contribution guidelines first.