VMU peripheral

From dreamcast.wiki
Revision as of 00:28, 30 December 2022 by Unknown user (talk) (Created page with "The VMU peripheral on the Maple Bus contains 3 functions: screen, storage, and timer. === Screen === The "block write" command (0x0C) with screen function code...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The VMU peripheral on the Maple Bus contains 3 functions: screen, storage, and timer.

Screen

The "block write" command (0x0C) with screen function code and 48 data words is used to write monochrome images to the screen. A screen is 48 bits wide and 32 bits tall. For each bit in the 48 data words, a value of 1 means the pixel is on (black) and 0 means the pixel is off (white). Data is written from left to right and top to bottom. The most significant bit of the first word sets the pixel on the top, left of the screen. The two most significant bytes write to the 33rd through 48th bit of the first row. The next two bytes write to the 1st through 16th bits of the second row. This is repeated for the rest of the 48 words like pictured below.

Dreamcast Screen Words

Storage

The "block read" and "block write" commands (0x0B and 0x0C) with storage function code are used to read and write the 256 blocks of memory in the storage peripheral. There are 256 pages of memory that make up the entire storage space. Each page consists of 512 bytes. That makes a total of 128 KB of memory.

Timer

The timer function allows the host to activate the buzzer on the VMU and get button conditions.