Skip to content

srg320/Saturn_MiSTer

Repository files navigation

Sega Saturn Compatible IP Core for FPGA

Active Development Test Build (Single SDRAM) Test Build (Dual SDRAM) Funding Funding Twitter Follow

WARNING: This repository is in active development. There are no guarantees about stability. Breaking changes will occur until a stable release is made and announced.

Overview

The Saturn was a 32-bit console by Sega, released in 1994 in Japan and 1995 in North America and Europe. Sega designed its Saturn with advanced hardware and with dual CPUs, making it difficult for programmers. In addition, components were not specifically created to work together, graphics hardware was complex, and the system's basic geometric primitive was based on quadrilaterals which proved difficult for Sega because the rest of the industry based its design on triangles. Eventually, the Saturn was eclipsed by the release of Sega's own Dreamcast.

Technical specifications

  • CPU: 2x Hitachi SH2 32-bit RISC CPUs @ 28.63 MHz
  • RAM: 16Mbit SDRAM
  • VRAM: 12Mbit SDRAM
  • Graphics:
    • Sega/Hitachi VDP1 @ 28.63 MHz (sprite/texture and polygons)
    • Sega/Yamaha VDP2 @ 28.63 MHz (background, scroll and 3D)
  • Resolution: 320x224 to 704x224, 16,777,216 millions colors
  • Sound CPU: Motorola 68EC000 @ 11.3 MHz
  • Sound Processor: Yamaha SCSP (Saturn Custom Sound Processor) YMF292 @ 22.6 MHz
  • Media: CD-ROM

Hardware Requirements

  • 128 MB SDRAM Module (Primary)
  • SDRAM Module of any size (32MB-128MB) (Secondary)

Note: Dual SDRAM modules is recommended for better compatibility.

Test Builds

Test builds can be downloaded from the GitHub Actions, they are automatic generated on push against the current code of the repository and should not be considered releases.

To download select a workflow bellow, click on the most recent run and download the zip file under Artifacts produced during runtime.

Note: Actions has a 90-day retention rule by default, after that the artifacts are not available anymore.

Keys F1-F11 enable/disable the video screens/audio channels:

  • F1 - VDP2 NBG0
  • F2 - VDP2 NBG1
  • F3 - VDP2 NBG2
  • F4 - VDP2 NBG3
  • F5 - VDP2 RBG0
  • F6 - VDP2 Sprite
  • F7 - VDP2 Windows
  • F8 - SCSP Direct sound
  • F9 - SCSP DSP sound
  • F10 - CD audio
  • F11 - enable all

Building

Prerequisites

To build this project you also need the following repositories Saturn and SH

Cloning the Repositories

git clone https://github.com/srg320/Saturn_MiSTer.git
git clone https://github.com/srg320/Saturn.git
git clone https://github.com/srg320/SH.git

The repositories must be on the same level:

.
├── SH
├── Saturn
└── Saturn_MiSTer

Project Files

Inside the folder Saturn_MiSTer you will find 2 Quartus project files.

  • Saturn.qpf - Build project for usage with Single SDRAM.
  • Saturn_SD.qpf - Build project for usage with Dual SDRAM (recommended).

Note: For both builds the primary SDRAM module must be 128MB (i.e. with two chips)!

Compatible BIOS

BIOS NOT INCLUDED: In order to use this core, you need to provide your own BIOS.

Rename your Saturn bios file to boot.rom and place it in the games/Saturn/ folder.

Console Version Region SHA1 Size Status
Sega Saturn 1.00 Japan 2b8cb4f87580683eb4d760e4ed210813d667f0a2 512 KB
Sega Saturn 1.00a USA 3bb41feb82838ab9a35601ac666de5aacfd17a58 512 KB
Sega Saturn 1.00 Europe faa8ea183a6d7bbe5d4e03bb1332519800d3fbc3 512 KB
Sega Saturn 1.003 Japan 7b23b53d62de0f29a23e423d0fe751dfb469c2fa 512 KB
Sega Saturn 1.01 Japan df94c5b4d47eb3cc404d88b33a8fda237eaf4720 512 KB
Sega Saturn 1.01a USA faa8ea183a6d7bbe5d4e03bb1332519800d3fbc3 512 KB
Hitachi Hi-Saturn 1.01 Japan 49d8493008fa715ca0c94d99817a5439d6f2c796 512 KB
Hitachi Hi-Saturn 1.02 Japan 8a22710e09ce75f39625894366cafe503ed1942d 512 KB
Hitachi Hi-Saturn 1.03 Japan 8c031bf9908fd0142fdd10a9cdd79389f8a3f2fc 512 KB
Victor V-Saturn 1.01 Japan 4154e11959f3d5639b11d7902b3a393a99fb5776 512 KB

Note: You can also place a file named cd_bios.rom in the same directory as the CD image. This can be used for games that depend on a specific BIOS.

Status of Features (Not yet Prioritized)

Work in progress, don't report any bugs!

Video Display Processor 1 (VDP1)

  • 512×256 Framebuffer (current size is limited to 352x256 pixels). Games that make usage of the framebuffer as temporary data storage will not work (e.g., Burning Rangers)

Video Display Processor 2 (VDP2)

  • Mosaic

Yamaha SCSP (Saturn Custom Sound Processor) YMF292

  • LFO

Credits and acknowledgment

Made with ❤️ by Sergey Dvodnenko.

  • To all my Patreon supporters. Your support keeps me working on the core and helps me bring it to life.
  • Jorge Cwik - FX68K 68000 SystemVerilog core.

Legal Notice

Sega Saturn™ - Copyright © 1994, 1995 SEGA ENTERPRISES, LTD. All rights reserved. SEGA and the SEGA logo are registered trademarks of SEGA CORPORATION. All other trademarks, logos, and copyrights are property of their respective owners.

The authors and contributors or any of its maintainers are in no way associated with or endorsed by SEGA®.