Skip to content

Repository files navigation

Sega System 32 for MiSTer FPGA

MiSTer FPGA core for Sega's standard single-screen System 32 arcade board (837-7428 / 171-5964E), including the descriptor-gated three-player control-ball interface used by SegaSonic the Hedgehog. It targets the DE10-Nano with SDRAM and uses one universal dated Arcade-SegaSystem32_YYYYMMDD.rbf release artifact; each MRA selects the required game hardware, including the real NEC V25 path for Arabian Fight and Golden Axe II.

Commercial ROMs are not included. Multi 32 and AS-1 hardware are not supported.

Features in the OSD

  • Original 4:3 or full-screen aspect ratio
  • Normal, vertical-integer, or full-integer scaling
  • Native direct-video output for HDMI-to-VGA/DAC and 15 kHz CRT setups
  • MiSTer analog VGA output plus the full HDMI scaler/OSD output path
  • Full native CRT path with adjustable 15 kHz geometry controls
  • Optional CRT 25%, 50%, and 75% scandoubler effects
  • CRT horizontal size/position and vertical-shift controls for 15 kHz output
  • Persistent 128-byte 93C46 high-score/settings storage
  • Service mode and reset
  • Per-game remappable controls defined by each MRA
  • Alien3: The Gun and Jurassic Park positional-gun inputs through the generic MiSTer/JTFRAME-compatible analog, USB-relative-mouse, and d-pad paths; Jurassic Park additionally supports GunCon 2 over SNAC
  • SegaSonic the Hedgehog: descriptor-gated three-player control-ball support; player 1 accepts native MiSTer USB/PS/2 mouse relative X/Y reports, while all three players retain left-analog-stick or d-pad compatibility input. Its optional Invert Trackball Y setting applies to both analog/d-pad and USB/mouse trackball input and is only exposed for SegaSonic.
  • Driving games: left-stick X is the analog steering source and right-stick up/down are the pedals; Rad Mobile and Slip Stream also accept d-pad left/right endpoints.
  • Rad Mobile also supports P1 steering from a paddle/wheel, dedicated spinner, reverse spinner, or mouse-relative input; Low/Normal/High sensitivity applies to analog stick, wheel, and spinner steering.
  • Slip Stream, Rad Mobile, and Rad Rally expose P1 Steering (analog stick, paddle, spinner, or reverse spinner) plus Low/Normal/High steering sensitivity. Dedicated HPS spinner events and mouse-relative reports are accumulated before the MSM6253 wheel sample.

PCB Accuracy

This table lists only areas supported by schematics or silicon evidence. It defines the implemented hardware boundary, not a blanket cycle-accuracy claim. Open timing, analogue, PLD, and protection questions remain outside the documented claims below.

Area Evidence Core implementation
Board and clocks Sega schematics 171-5964D / 171-5965C Standard single-screen board; V60, Z80/YM3438, and PCM domains
Main CPU/controller Schematics, sheet 1 16-bit V60 bus, interrupts, timers, and system control
Scroll hardware Schematics, sheet 2; Sega 315-5387 Four tilemap layers and dual-port VRAM
Objects/frame memory Schematics, sheets 3-4; Sega 315-5386 Object processing and double-buffered framebuffer
Colour/video output Schematics, sheet 5; 315-5242 silicon evidence Palette, priority, shadow/highlight, and RGB output
I/O, EEPROM, and sound Schematics, sheets 6-8 315-5296 I/O, 93C46 storage, Z80, dual YM3438, and PCM
SegaSonic control interface 420-6095 service manual, pp. 5, 8, 11: 837-8685 interface board, three XA/XB and YA/YB channels, and 1P/2P/3P control-ball test Descriptor-gated relative counter adapter; exact gain/polarity remains a validation item
Driving input adapter MiSTer HPS paddle, spinner-toggle, and PS/2 mouse packet contracts; MSM6253 channel-0 load boundary s32_driving_controls.sv; descriptor-gated Slip Stream, Rad Mobile, and Rad Rally source selection

Supported games

The 34 tracked MRA variants use the same universal RBF:

  • Arabian Fight: World, US, Japan
  • Burning Rival: World, Japan
  • Dark Edge: World, Japan
  • Golden Axe: The Revenge of Death Adder: World Rev B, US Rev A, Japan
  • Holosseum: US Rev A
  • Alien3: The Gun: World, US Rev A, Japan
  • Jurassic Park: World Rev A, Japan Rev A Deluxe, Japan Deluxe, Japan Rev A Conversion
  • Rad Mobile: World, US
  • Rad Rally: World, US, Japan
  • Slip Stream: Brazil, Hispanic
  • Spider-Man: The Videogame: World, US Rev A, Japan
  • Super Visual Football / Soccer: European Rev A, US Rev A
  • The J.League 1994: Japan, Japan Rev A
  • SegaSonic the Hedgehog: Japan Rev C, Japan Prototype

Hard Dunk, OutRunners, Stadium Cross, Title Fight, AS-1, and other Multi 32 games remain outside the production profile. Alien3 retains its special SERVICE12 coin wiring; Jurassic Park keeps its one-button Shoot assignment and MRA compatibility patch. Neither game uses the retired framebuffer/HUD blending workaround.

Hardware emulated

Chip or subsystem Interface Implementation / reference
NEC µPD70616 V60 ~16.108 MHz, 16-bit data / 24-bit address bus s32_v60.sv, s32_v60_bus.sv
Sega 315-5385 controller V60 registers, IRQs, timers s32_io.sv; schematics and MAME behaviour
Sega 315-5386 objects Object RAM and framebuffer s32_sprite.sv; schematic sheets 3-4
Sega 315-5387 scroll Tilemap VRAM and registers s32_tilemap.sv; schematic sheet 2
Sega 315-5388 / 315-5242 video Palette, priority, RGB s32_mixer.sv; schematic and silicon evidence
Sega 315-5296 I/O JAMMA, DIP, service, coin s32_io.sv; schematic sheet 6
BR93C46 EEPROM Serial NVRAM s32_io.sv; MiSTer NVRAM upload/download
MSM6253 ADC / 8255 PPI Driving and parallel I/O, including Burning Rival's two-player six-button map Descriptor-selected interfaces in s32_io.sv, Arcade-SegaSystem32.sv, and s32_prot.sv
SegaSonic control-ball adapter Three player channels, 12-bit relative X/Y counters, c00040/c00048/c00050-style byte reads and reset writes s32_trackball_adapter; service-manual control wiring and current MAME uPD4701A contract
Generic MiSTer/JTFRAME positional-gun input Signed analog reports, PS/2 mouse packets, d-pad events, native raster overlay s32_lightgun.sv and s32_lightgun_overlay.sv; descriptor-selected ADC channels and core-side Sinden border/crosshair controls
Jurassic Park GunCon 2 SNAC serial pins, normalized optical coordinates and buttons s32_guncon_snac.sv; descriptor-gated Jurassic-only override
NEC V25 protection Program/cache and mailbox RAM s32_v25_cpu.sv; s80x86 provenance
Z80 sound CPU ~8.054 MHz s32_soundsys.sv; vendored T80
2 × YM3438 Z80 register bus JT12
RF5C68-family PCM ~12.5 MHz, wave RAM s32_rf5c68.sv
MiSTer memory services HPS download, SDRAM, DDR3 Arcade-SegaSystem32.sv, sys/

Credits

  • Meathax - System 32 RTL, integration, MRA generation, verification, and packaging.
  • meathax/s32multi - pinned driving-control adapter source, adapted here for the single-screen HPS paddle, spinner, and mouse-relative input path; the donor project is GPLv3.
  • Sega, Nemesis1207, and System 32 researchers - original hardware and public schematic material used by this project.
  • MAME developers - System 32 behavioural reference, including the uPD4701A trackball contract and SegaSonic ROM/input definitions.
  • SegaSonic documentation - 420-6095 service manual and Sudden Desu’s debug analysis, used for control wiring, stage order, and final protection behavior.
  • Jamie Iles - s80x86, used by the V25 wrapper; pin and licence details are retained with the source.
  • Jose Tejada Gomez / Jotego - JT12, JT8255, and audited JTCORES reference work, including the generic lightgun input/video contract used by the project-owned adapter.
  • jlrh - taito-fpga Operation Wolf lightgun integration, inspected for the core-side gun_1p_x/gun_1p_y contract; no upstream RTL was copied.
  • Daniel Wallner, MikeJ, Mike Johnson, TobiFlex, Sean Riddle, and Sorgelig
    • the vendored T80 Z80 core.
  • furrtek / SiliconRE - Sega 315-5242 and 315-5385 silicon research.
  • Umberto Parisi (rmonic79) and Andrea Bogazzi (@asturur) - MiSTer-CRT-Adjust.
  • misteraddons / SYSTEM11_MiSTer - GunCon-only PSX/SNAC transport reference (pinned commit c2f2374); GPL-2.0-or-later source attribution is retained in s32_guncon_snac.sv.
  • MiSTer-devel and reference-core authors - MiSTer framework, MRA tooling, and the audited S32X, Irem M92, WonderSwan, and MegaCD integration references used by this project.
  • Intel Quartus, Verilator, Icarus Verilog, ModelSim, and MAME tool authors.

License

Original core source is licensed under GNU GPLv3. Vendored components retain their own terms and notices:

Linked reference projects and arcade ROMs remain under their respective terms.

How to install

Copy the latest Arcade-SegaSystem32_YYYYMMDD.rbf and the MRA files to /media/fat/_Arcade/. Place the required MAME ROM ZIPs in /media/fat/games/mame/, then launch a game from the MiSTer Arcade menu.

For automatic installation, add this to /media/fat/downloader.ini and run Update All:

[meathax/meatcores]
db_url = https://raw.githubusercontent.com/meathax/meatcores/db/db.json.zip

Development

Quartus Prime 17.0.2 Build 602 is the pinned toolchain. Build the universal profile from the standard Arcade-SegaSystem32.qpf, Arcade-SegaSystem32.qsf, files.qip, and clean.bat project files. Local build and verification utilities are not part of the public core distribution.

About

Sega System 32 MiSTer FPGA core

Resources

Stars

22 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages