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.
- 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.
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 |
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.
| 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/ |
- 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_ycontract; 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.
Original core source is licensed under GNU GPLv3. Vendored components retain their own terms and notices:
- s80x86: GPLv3 or later (COPYING)
- JT12: GPLv3 (LICENSE)
- JT8255 conformance reference: MIT (LICENSE)
- T80: BSD-style terms in
rtl/audio/T80/ - CRT Adjust: GPLv3 or later; provenance in
verif/donors/README.md - JTFRAME/jlrh lightgun references: GPL-3.0-or-later upstream projects;
only interface semantics were adapted into the project-owned
s32_lightgun.svands32_lightgun_overlay.sv, with pinned provenance inverif/donors/README.md - GunCon SNAC transport reference: GPL-2.0-or-later; pinned source and notice in
rtl/io/s32_guncon_snac.sv - SiliconRE material: upstream SiliconRE project licence and notices
- Driving-control adapter: GPLv3-compatible adaptation of the pinned s32multi source.
- MiSTer framework and Intel/Altera IP: retained upstream/vendor notices
Linked reference projects and arcade ROMs remain under their respective terms.
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.zipQuartus 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.