SEGA Genesis Development

SEGA Genesis

The SEGA Genesis (US) / Mega Drive (everywhere else) was a 1988 game console, known for great arcade ports, FM sound, and impressive 2D graphics. It had a Motorola 68000 CPU, 64 KB main RAM, and 64 KB Video RAM. One of the most well-known games for the system is Sonic the Hedgehog, developed by SEGA and released in 1991. This page contains a series of articles about this hardware, including how to program for it, starting from the very basics.

Some of these articles have accompanying example code, available on GitHub.

MC68000/Genesis References:





SEGA Genesis: Building a ROM
Getting started with SEGA Genesis development, and building a ROM that will run on an emulator and on a real Genesis.
Genesis hardware
SEGA Genesis: Debugging
Debugging your SEGA Genesis ROMs, including a new way of adding symbols in the MAME debugger using VASM.
SEGA Genesis: Characters and Playfields
A description of the basic building blocks of Genesis graphics, and how they are put together to form screen images. 8x8 16-color tiles are mapped to form playfields. A couple of games are analyzed, including some more advanced techniques, usable for rendering polygons.
Tile graphics (Zombies Ate My Neighbours)
SEGA Genesis: Video Display Processor
A SEGA Genesis graphics tutorial, that explains how to access the 'Video Display Processor' (VDP) graphics processor.
Contra: Hard Corps
SEGA Genesis: Printing Text
Building on the previous entry, it is explained how the VDP can be used to output text to the screen. This includes creating a font, loading it to graphics memory, writing character indices to playfields, and wrapping it into a useful subroutine.
Text output
SEGA Genesis: Scrolling
The different scroll modes of the Genesis are covered, as well as code for simple full screen smooth scrolling.
Thunderforce 4
SEGA Genesis: Code Structure
A few examples of assembly code structure is explored, including variables, arrays and structures, function calling conventions, and how to implement the State Pattern.
SEGA Genesis: Initialization
A detailed look at a complete initialization.
Contra: Hard Corps ROM chip
SEGA Genesis: Framebuffer Rendering
Is framebuffer rendering possible on the Genesis?
Framebuffer rendering with color cycling
SEGA Genesis: Mandelbrot
Mandelbrot example.
Mandelbrot set on the Genesis