# Sega Saturn Hardware Overview Written by InvisibleUp Last modified 2020-01-11 Mostly paraphrased from ST-103-R1-040194 (Saturn Overview Manual) [1], with all the marketing buzzspeak and pointless redundancy stripped out. More detailed information on each part can be found within the documentation for that part written by SEGA. ## Connection graph Joypads <-> SMPC SMPC <-> CPU Bus WRAM <-> CPU Bus BIOS ROM <-> CPU Bus SH2-M <-> CPU Bus SH2-S <-> CPU Bus VDP1 <-> B-bus VDP2 <-> B-bus SCSP <-> B-bus VDP1 RAM <-> VDP1 VDP2 RAM <-> VDP2 Video out <-> VDP2 SCSP <-> Audio Bus M68k <-> Audio Bus Audio RAM <-> Audio Bus DAC Output <-> SCSP Cart <-> A-bus CD I/F <-> A-bus CD I/F <-> CD Bus SH-1 <-> CD Bus CD ROM <-> CD Bus CD Buffer <-> CD Bus MPEG card <-> CD Bus ## Buses and Blocks In hardware-speak, a "bus" is simply a shared line that all I/O is carried on. Typically to transfer data, one device signals another by raising a chip select line and setting a read/write line before reading or writing from a certain address. Devices can include RAM, ROM, processors, etc. The system is dedicated into different "blocks", all of which share a bus. - CPU Block (CPU Bus) - Video Block (B-bus) - Audio Block (B-bus, Audio Bus) - CD Block (A-bus, CD bus) If it helps, think of the "B-bus" as the I/O bus. Additionally, the cartridge slot and the CD interface logic communicate with the SCP on the "A-bus". This shared bus feature is the source of a *lot* of headaches. While the SCU serves a fine job at being the in-between between all the various blocks, that doesn't help inter-bus communications much. An especially troublesome pain point is that the two SH-2 processors and the RAM are all on the same bus, so only one processor can use RAM at a time. As the Saturn is a CD-based system and can only execute code from RAM, this presents a problem that needs some trickery to overcome (if you even *want* to use the sub-CPU, anyways). ## SH-2 processors The Sega Saturn has two Hitachi SuperH 2 processors clocked at 26.8 MHz. Modern variants of the SH-2 are known as the "J2"[2] One of these processors is the *main* processor, and the other is the *sub* processor. (Documentation from the era used "master" and "slave", terms that I wish to avoid for what should be hopefully obvious reasons.) They each have 4 kilobytes of cache, which is *absolutely critical* for dual- CPU use as memory cannot be used by more than one processor at a time. (Nothing bad happens if you try, the CPU just halts until the bus is open.) ## SCU As all roads lead to Rome, all I/O in the Saturn flows through the SCU. It serves as the main bus arbitrier, transferring information from one subsystem to another. It's also responsible for DMA transfers (so the data actually gets from A to B at a reasonable pace) and generating vertical blanking interrupts. In addition, it also contains the system's digital signal processor (DSP) to transform data as it's transferred from one source to another ### DSP The digital signal processor is responsible for quickly manipulating parallel, structured data into a more useable format. A typical use is matrix math calc- ulations for transforming sprites/backgrounds. It is clocked at 14 MHz, about half that of the SH-2 processors. It has 256 instructions of program RAM. It can send and receive data via DMA as well. ## VDP (Video Display Processor) The Sega Saturn is capable of outputting (at most) a 704x512x24 image (on PAL, 704x480x24 for NTSC) to a television. (That said, higher resolutions and color depths require more video RAM. The lowest quality output is 320x224 at 16 colors.) For some reason, this was split up into two discrete chips. ### VDP1 This is the main drawing unit of the system, and solely handles sprite and line rendering. Think of this as an upgraded variant of the Mega Drive's VDP, except it can apply scaling/distortion/color shading effects to a very large number of sprites. To be clear, the Saturn does not natively support 3D rendering. This is always faked with scaled and distorted sprites. This is known as "quad" rendering, as opposed to the "tri" (triangle) rendering of modern systems. To operate it, you place drawing commands in the VDP1's video RAM (along with any required textures/color palettes) and it gets written to a framebuffer that VDP2 then composes into a complete image. There's two framebuffers, one that's read and one that's written, and they alternate back and forth. (TODO: where physically are the framebuffers stored???) ### VDP2 This handles the background and also scene compositing. It supports 5 layers of background that can be transformed ala Mode 7, and a framebuffer. ## SCSP (Saturn Custom Sound Processor) The SCSP is responsible for all sound output, as it's directly connected to the DAC that's connected to the speakers on the television/etc. It supports both FM synthesis and PCM playback. All sound data is stored on the 512 KB of dedicated sound RAM, along with the M68k's program. It also has it's *own* DSP that provides common effects such as reverb, sound mixing, echo, panning, etc, even for CD audio. ### M68EC000 For sound purposes (and *only* sound purposes) there's an user-programmable Motorola 68EC000. This is effectively identical to the typical M68k, just with a different (square instead of DIP) pinout and a lower cost. It is clocked at 11.3 MHz. This would be used for sound drivers (to generate FM synthesis instructions), PCM manipulation, etc. ## SMCP This controls the controller inputs, all of the reset lines for all the different processors, and the real-time clock. Surprisingly, this document claims it also supports Megadrive controllers. It also can turn individual processors on and off entirely. Really you'll be using this thing to read the joysticks. That's about it. ## CD-ROM The CD-ROM drive is controlled by a simple Hitachi SH-1 CPU clocked at 20 MHz. It also has a 512 KB buffer for storing CD data. ## MPEG add-on card There's a slot on the back of the Saturn for an additional MPEG decoder card. This slot in particular is very powerful, being used for a Saturn ISO loader[3] Granted, it's only power insofar as it being connected to the CD bus, thus being able to pretend to be the CD drive. So don't get your hopes up... (Actually, it should be possible to use the cartridge slot for the same use, which was already experimented with in the Action Replay cart) The MPEG decoder card has it's own processors and buffers that decode MPEG streams from the CD and return decompressed data over the CD interface. ## Sources [1] https://antime.kapsi.fi/sega/files/ST-103-R1-040194.pdf [2] http://www.j-core.org/ [3] https://youtu.be/jOyfZex7B3E