7800 compared to the SMS

Eric Ball wrote (on AA)

See Charles MacDonald's docs and Richard Talbot-Watkin's doc for info about the guts of the SMS.

The SMS has 8K of program RAM, 16K of video RAM (access indirectly via Z80 I/O port commands) and 48K of cartridge address space (with bankswitching used to allow larger cartridges). Some cartridges may have additional RAM.

Like the NES, the SMS has a grid of 8x8 tiles plus 64 independently positioned 8x8 (or 8x16) sprites with a screen resolution of 256x192. Again, like the NES, the SMS GPU uses a separate memory bus, so the CPU continues to process during active video. Horizontal & vertical scrolling is done in hardware.

One interesting difference between the SMS and the NES is the SMS does not have dedicated VROM, so all tile/sprite patterns have to be transferred by the CPU to VRAM. However, this does mean sprite/tile graphics can be updated as required.

Sprites colors are from a palette of 16 (tiles have an additional palette of 16) from 64 RRGGBB. Palette entries can be reloaded on the fly, even mid-screen.

From this brief look at the capabilities of the SMS I'm amazed. It has equivalent tile/sprite capabilities to the NES and superior color capabilites (16 versus 3 colors per tile/sprite). Like the NES, the SMS graphics capabilities is generally superior to the 7800 save for raw sprite power (e.g. Robotron).

It appears a Z80 requires 2-3 times as many cycles per operation than a 6502. So the 3.58MHz Z80 clock versus the 1.79MHz 6502 wasn't a major advantage either way. (The Z80 has more registers including two 16 bit index registers.) The only limitation I can see is the CPU to GPU interface, which requires multiple port operations to move data to/from VRAM.

Sound, don't make me laugh.