Doubletalk is a game of audio manipulation which I wrote in Z80 assembler for the Gameboy. It synthesizes three loves of mine: audio, cheap hackable hardware, and Z80 assembler.
I have always been fascinated with audio sounds and their manipulation. When I first learned to program on a TRS80 Model I, I listened with awe to the audio produced on the cassettes which stored the programs I wrote. The sounds of modems and fax machines have always fascinated me. When my dad bought a TRS80 Model II computer for his business, the first thing I did was hook up my hobby kit amplifier to pins on its parallel port so I could create my kooky sounds with his prized machine.
Cheap hackable hardware captures my imagination. This is partly because I am struck by how inexpensive powerful platforms can become. Nintendo's Gameboy is a fantastic example: it would cost considerably more to interface a microcontroller to the buttons and screen than any Gameboy selling on eBay. Repurposing hardware also has a mild feeling of rebellion for me --- perhaps because the corporations manufacturing the hardware did not intend it for all of the uses hackers can imagine.
I cannot completely explain why I love Z80 assembler. It might be because it is the first assembler I learned. At the time my big wish was to write my own shoot-em-up computer game. Z80 assembler opened up that possibility for me.
Now more than 20 years old, the Z80 has long since been abandoned for use in microcomputers. However, it has found its way more recently in less expensive digital organizers and game machines. When I learned that Nintendo used a Z80 clone in their Gameboy and Gameboy Color, I knew I had to build a project around it.
Doubletalk, a two player audio-manipulation game was my first serious endeaver with the Gameboy. The game uses the Pocketvoice, a Gameboy cartridge with a built-in amplified speaker and microphone. In Doubletalk, players record themselves, reverse their recordings, then try to guess what each other is saying.
Doubletalk main code
Doubletalk support files