rmonc79 3b365c8d56 docs: fix hardware requirements — HDMI works normally, Direct Video for analog only
Clarified that standard HDMI works out of the box. Direct Video is
only needed for analog output (15 kHz CRT / arcade monitor setups).
Previous wording incorrectly implied Direct Video was required for all users.

Thanks to Maxriptide for the feedback.
2026-04-12 10:19:10 +02:00
2026-02-27 23:28:29 +01:00

Arcade-Darius_MiSTer

FPGA core for Darius (Taito Corporation, 1986) targeting the MiSTer FPGA platform (Terasic DE10-Nano).

Darius is a triple-screen horizontal shoot-'em-up running on a dual 68000 + Z80 × 2 board with two PC080SN tile layers, PC090OJ sprites, PC060HA master/slave communication, and YM2203 ×2 + MSM5205 audio. This core reimplements the hardware in SystemVerilog from MAME references and hardware observation on original PCBs.

Status

First public release. The core runs the full game end-to-end on all supported ROM sets and has been tested on real MiSTer hardware.

Features

  • Dual 68000 main/sub with shared RAM (FX68K core)
  • Three horizontal panels composed into the 864-pixel virtual screen
  • Sprite renderer with priority, flip, 16×16 4bpp tiles
  • FG text/HUD layer with local BRAM text ROM
  • Palette with MAME-verified byte order
  • Audio: YM2203 ×2 (FM + PSG) + MSM5205 ADPCM with pan/volume routing
  • PC060HA main/sub communication
  • SDRAM arbitration for tile/sprite ROM and main/sub CPU fetch
  • Inputs (coin, start, 8-way joystick) and full DIP switch support
  • MiSTer OSD with video, pause and DIP options

ROM sets supported

  • Darius (World) — reference set
  • Darius (US)
  • Darius (Japan rev 1 — dariusj)
  • Darius (Japan pure — dariuso)
  • Darius Extra Version (dariuse)

Notes

  • Audio pole filters currently bypassed (direct DC-removed signals to mixer)
  • Analog I/O output not yet supported — use Direct Video over HDMI

Screenshots

Title Silver Hawk attract
Title screen Attract — Silver Hawk briefing
Zone C Zone I
Zone C Zone I
Zone S Zone G
Zone S Zone G

Hardware requirements

  • Terasic DE10-Nano
  • MiSTer I/O board (recommended)
  • SDRAM module (32 MB or 64 MB)
  • HDMI display or Direct Video for analog output (15 kHz CRT)

Note on video output: The core works on standard HDMI displays. For analog output on 15 kHz arcade monitors or CRT, enable Direct Video in the MiSTer main menu. Do not use Direct Video on VGA monitors (31 kHz) — use the normal MiSTer analog output instead. Native analog I/O board output is not yet fully supported due to the non-standard 864×224 resolution.

Build from source

Requires Quartus Prime Lite 17.0.x for Cyclone V (5CSEBA6U23I7).

cd Arcade-Darius_MiSTer
quartus_sh --flow compile Darius -c Darius

Output: output_files/Darius.rbf (~3.9 MB).

Running on MiSTer

The releases/ folder contains the pre-built bitstream and the parent MRA for the reference ROM set:

  • Darius_YYYYMMDD.rbf — pre-built core bitstream
  • Darius (World).mra — parent MRA (reference set)

Alternative ROM sets are provided in releases/alternatives/:

  • Darius (US).mra
  • Darius (Japan).mra
  • Darius (Japan, rev 1).mra
  • Darius Extra Version (Japan).mra

Following the MiSTer-devel convention, the alternative sets are also mirrored to the official MRA-Alternatives_MiSTer repository, where they are picked up automatically by Update_All.

Steps:

  1. Copy the .rbf to _Arcade/cores/ on the MiSTer SD card.
  2. Copy the desired .mra file(s) to _Arcade/ on the MiSTer SD card.
  3. Provide your legally-owned Darius ROM files where each MRA expects them (usually in games/mame/).
  4. Enable Direct Video in the MiSTer main menu for best HDMI output (analog output is not currently supported — see Hardware requirements).
  5. In the core OSD, set Video → Scale to Narrower HV-Integer to get a proper integer-scaled image on modern HDMI displays.

ROMs are NOT included in this repository. You must provide them yourself.

Repository layout

Arcade-Darius_MiSTer/
├── rtl/
│   ├── darius/       Darius-specific core RTL (Umberto Parisi)
│   ├── fx68k/        M68000 core (Jorge Cwik)
│   ├── jt12/         YM2203 FM synth (Jose Tejada)
│   ├── jt5205/       MSM5205 ADPCM (Jose Tejada)
│   ├── jtframe/      JTFRAME framework modules (Jose Tejada)
│   ├── t80/          Z80 core
│   ├── pll/          Clock PLL
│   └── sdram.sv      SDRAM controller (Sorgelig)
├── sys/              MiSTer framework (Sorgelig / MiSTer-devel)
├── releases/         Pre-built .rbf + parent MRA
│   └── alternatives/ MRA files for alternate ROM sets
├── docs/             Screenshots
├── Darius.qpf        Quartus project
├── Darius.qsf        Quartus assignments
├── Template.sv       Top-level wrapper
├── Template.sdc      Timing constraints
├── files.qip         HDL file list
├── build_id.v        Build version stamp
├── LICENSE           GNU GPL v3
├── AUTHORS.md        Credits and third-party licenses
└── README.md         This file

License

Distributed under GNU General Public License v3 or later. See LICENSE and AUTHORS.md for credits and third-party licensing.

GPL-3 is chosen to stay compatible with upstream GPL-3 dependencies (JTFRAME, FX68K, Sorgelig's sdram and sys framework).

Support this project

If you enjoy this core and want to support its development:

Follow

Credits

Built on top of work by:

  • Jorge CwikFX68K (M68000 core)
  • Jose Tejada / Jotego — JTFRAME, JT12, JT5205
  • Sorgelig and the MiSTer-devel team — framework, SDRAM controller
  • The MAME project — invaluable hardware reference

Full list in AUTHORS.md.

Original Darius arcade hardware © Taito Corporation, 1986.

Description
No description provided
Readme GPL-3.0 2.9 MiB
Languages
SystemVerilog 45%
Verilog 40.3%
VHDL 12.9%
Tcl 1.3%
C++ 0.3%
Other 0.1%