System Architecture:

This device will operate mainly on the Z80, with an ATMEGA1284 microcontroller as a coprocessor to handle graphics, audio, and IO. Both chips are connected through an IO bus where the CPU uploads data to the MCU to do it's thing. The ROM cartridges use SPI flash and use a 3.3v supply, so are attached to the MCU through a level shifter.

CPU:

The CPU is a standard Z80 running at 8 MHz.

GPU:

The graphics are handled by an ATMEGA1284 microcontroller which uses the TVout library, and will run at 30FPS (or somewhere close to it). The GPU runs at a resolution of 120 x 96. It will support 8x8 tiles, and will have 16 KB of VRAM and uses monochrome.

The GPU operates by first reading a Command Stack, which tells the GPU what to do, such as configuring hardware settings, doing tile copies, sprites, ETC. When it does a tile copy, the tile is saved in the VRAM until it is told to delete the tile. Sprites are stored in  as sprite table, which is modified by the CPU.

DSP:

The DSP is still a work in progress, so this section will be updated when I have a working design in mind.