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.
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 screen | Attract — Silver Hawk briefing |
![]() |
![]() |
| Zone C | Zone I |
![]() |
![]() |
| 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 bitstreamDarius (World).mra— parent MRA (reference set)
Alternative ROM sets are provided in releases/alternatives/:
Darius (US).mraDarius (Japan).mraDarius (Japan, rev 1).mraDarius 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:
- Copy the
.rbfto_Arcade/cores/on the MiSTer SD card. - Copy the desired
.mrafile(s) to_Arcade/on the MiSTer SD card. - Provide your legally-owned Darius ROM files where each MRA expects them
(usually in
games/mame/). - Enable Direct Video in the MiSTer main menu for best HDMI output (analog output is not currently supported — see Hardware requirements).
- 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 Cwik — FX68K (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.





