Skip to content
Victor edited this page Sep 29, 2021 · 7 revisions

Welcome to the 32X wiki!

Technical Specifications

  • CPUs: Dual Hitachi SH-2 (SH7095) 32-bit RISC
  • Main RAM: 256KB
  • Video RAM: 256KB
  • Screen Resolutions: 320x224, 320x240
  • Clock Speed: 23 MHz
  • Color depth: 15 bits, 32768 unique colors
  • Number of Video Modes: 3
  • Sound: 2-channel PWM (11-bit resolution)

https://segaretro.org/Sega_32X/Technical_specifications

32X block diagram

The 32X is made up of the following parts:

  • MEGA Drive I/F Component (I/F chip built-in)
  • 32X Cartridge
  • SH2
  • SDRAM (2 Mbit)
  • Frame Buffer (1Mbit x 2)
  • VDP
  • Color Palette Component (VDP chip built-in)
  • PWM Component (I/F chip built-in)

These hardware resources (excluding the SH2 and SDRAM components) contained by 32X are directly controlled by the MEGA Drive 68000 CPU. The ROM cartridge can be read from both the MEGA Drive and 32X. Images and sound made by 32X are combined with images and sound made by the MEGA Drive.

Startup

The 32x startup process is rather complicated: the 32x header includes both a Genesis ICD header block plus the 32x header block. If either of these two headers are incorrect the system will fail to boot.

SegaCD

The main point in starting the 32X is a special header which tells the 32X where the code/data is to copy into the SDRAM on startup. In a 32X cart, the header is just after the standard MD ROM header. Since there is no 32X ROM in the SegaCD, the 32X needs another method of getting this info...

The way to start the 32X on the SegaCD is to copy the header and all the code/data into the 32X framebuffer.

MD 68000: Look for 32X signature in IO. If present, turn 32X on and set SegaCDcommunication register telling SegaCD the 32X is present.

CD 68000: Wait for comm register saying 32X is present. Load code to start 32X from CD into word ram. Flip it to the MD 68000 side and set comm register telling the MD the data is ready.

MD 68000: Wait for SegaCD comm register saying 32X data is loaded. Get access to 32X VDP resources, then copy the data from word ram to the 32X framebuffer. Release access to 32X VDP resources. Set 32X communication register to "CD" and wait for "M_OK"/"S_OK" from 32X.

The 32X is now up and running the code passed to it via the framebuffer.

Clone this wiki locally