Let's Emulate Space Invaders
From MAMEDEV Wiki
The Intro
Emulating any system can be a daunting task, even to experienced software engineers. MAME can provide a good starting point, but can itself be quite daunting to get into. This series of articles should provide some insight into the way MAME works, and accelerate any attempts to emulate something in a stand-alone emulator.