A single runtime-selectable MiSTer FPGA core that accurately emulates nine arcade games from the Universal Do's Castle family with cycle-accurate hardware models and optional PCB-level features.

Stars

3

7-day growth

No data

Forks

0

Open issues

0

License

GPL-3.0

Last updated

2026-07-29

AI repository intelligence
FR-AI / ANALYSIS

Why it is worth attention

It achieves high accuracy through decap-informed synchronous models of the custom sprite doorway and CF37201 chip, a cycle-sensitive WAIT handshake, and a Verilator-based verification pipeline that regresses against MAME captures across all nine games.

Who it is for

  • MiSTer FPGA owners seeking accurate arcade cores
  • Arcade preservationists and hardware reverse engineers
  • FPGA developers studying arcade hardware emulation
  • Retro gaming enthusiasts wanting a single-core solution for multiple games

Use cases

  • Playing the nine supported arcade titles on a MiSTer setup with accurate timing and video output
  • Validating hardware accuracy by running the automated regression suite against MAME captures
  • Experimenting with PCB audio stage and experimental framebuffer render options
  • Learning about cycle-stealing Z80 synchronization and CF37201 register modeling

Strengths

  • Cycle-accurate modeling of three Z80s, TMS1025 input, four SN76489A PSGs, and HD6845 raster interrupts
  • Runtime game selection via a single RBF and per-game MRA files, reducing FPGA rebuilds
  • Comprehensive verification with Verilator, MAME timing runs, and a 361-frame Do! Run Run check
  • Open source with detailed documentation, Quartus build results, and a PowerShell-based validation pipeline

Considerations

  • Experimental features (e.g., CF framebuffer, CURSOR IRQ) are not fully accurate and may have missing sprites
  • ROMs are not distributed; users must supply their own dumps alongside the source
  • Requires Quartus 17.0.2 or compatible toolchain and familiarity with FPGA builds

README quick start

Universal Do! Castle Hardware for MiSTer

One runtime-selectable FPGA core for the Universal Do's Castle board family. The release target is Universal_DoCastle.rbf, selected by a separate MRA for each game.

Supported sets

IDMAME setGameProfileRotation
00docastleMr. Do's CastleCastleROT270
01douniMr. Do! vs. UnicornsCastleROT270
02dorunrunDo! Run RunRun RunROT0
03dowildMr. Do's Wild RideRun RunROT0
04jjackJumping JackRun RunROT270
05kickridrKick RiderRun RunROT0
06spieroSuper PierrotRun RunROT0
07idsoccerIndoor SoccerSoccerROT0
08asoccerAmerican SoccerSoccerROT0

The core models three 4 MHz Z80s, the cycle-sensitive main/sub WAIT handshake, TMS1025 input pipeline, four SN76489A PSGs with READY-driven wait, live board-relevant HD6845 registers and raster outputs, profile-specific CPU maps and tile priority, standard and Soccer sprite formats, Soccer dual-stick inputs, and Soccer MSM5205 ADPCM through a pinned JT5205 implementation. It also includes the main-board watchdog and a decap-informed synchronous model of the third-CPU/CF37201 sprite doorway. The wrapper provides OSD-controlled CRT H-Size, H-Position, and V-Shift through the pinned MiSTer-CRT-Adjust core-side implementation, plus selectable normal or full H+V integer HDMI scaling.

PCB support options

The default remains the nine-game visually proven path. PCB support enables the dumped third CPU's two real transfer phases, the decoded CF37201 registers, the chip's 126-MCLK /PL/interrupt cycle, and the three-second watchdog while retaining the proven renderer. The CF model now uses the decap-derived address, counter, flip, palette, and field-select equations. This mode completed software regressions for all nine sets and a 361-frame Do! Run Run timing run.

PCB audio stage adds a 48 kHz approximation of the service-manual output coupling and speaker roll-off. Experimental CF framebuffer selects the full two-field 64K renderer driven only by the real third-CPU/CF stream; it remains opt-in because the central title sprite is still missing in comparison with the proven renderer. Experimental IRQ compares the schematic CURSOR source with validated VSYNC behavior. CURSOR mode is not a release default: t

Description

MiSTer FPGA core for Universal Do! Castle arcade hardware

Related repositories

Similar projects matched by category, topics, and programming language.

slvDev
Featured
slvDev GitHub avatar

esp32-ai

A 28.9 million parameter language model runs on an $8 ESP32-S3 microcontroller entirely on-device, generating simple stories at about 9.5 tokens per second.

AI & Machine LearningLarge Language Models
1,960
m-novotny
Featured
m-novotny GitHub avatar

memguard-rs

A Rust library that provides secure memory handling primitives including zeroization on drop, memory locking, constant-time comparison, and compile-time guarded regions, with zero dependencies and no_std support.

Embedded & IoTSecurity
131
zju3dv
Featured
zju3dv GitHub avatar

INTACT-JEPA

INTACT is an end-to-end JEPA world model that learns an isomorphic intent-to-action interface, enabling search-free direct control for goal-conditioned robot tasks with high success rates after just one epoch of training.

AI & Machine LearningEmbedded & IoT
14