diff --git a/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/README.md b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/README.md
index f0291cc6..ea048cd4 100644
--- a/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/README.md
+++ b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/README.md
@@ -1,13 +1,27 @@
robotron-fpga MiST port
=======================
-Supported games: Robotron 2048, Joust, Sinistar, Bubbles, Splat, Stargate
+Supported games: Robotron 2048, Joust, Sinistar, Bubbles, Splat, Stargate, Alien Arena
After loading the RBF, a CMOS clearing will happen. Reset the core to start
the game.
Sinistar has some graphics issues, and the speech chip is not implemented.
+Usage:
+------
+- Copy the RBF and the ARC files to the same folder.
+- Create ROM files from MAME ROM zip files using the mra utility and the MRA files.
+- Example: mra -z /path/to/mame/roms scramble.mra
+- Copy the ROM files to the root of the SD Card.
+
+- MRA utilty: https://github.com/sebdel/mra-tools-c
+
+Note: the MRA files contains a dump of the CMOS RAM. It will be included in the genearted ROM file.
+Change it for permanent settings (search for the format online). It's possible to change these values
+inside the core, with turning on "Auto-up" switch, and activate the "Advance" trigger in the OSD.
+Refer to the arcade's user manual for further info.
+
robotron-fpga
=============
diff --git a/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/buildall.sh b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/buildall.sh
deleted file mode 100644
index 2fa8e228..00000000
--- a/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/buildall.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-
-PROJECTS=" \
-ROBOTRON \
-JOUST \
-SPLAT \
-BUBBLES \
-STARGATE \
-SINISTAR"
-
-mkdir -p Releases
-for PROJECT in $PROJECTS; do
- echo "Compiling $PROJECT"
- sed -i "s/^.define CORE_NAME.*/\`define CORE_NAME \"$PROJECT\"/" rtl/RobotronFPGA_MiST.sv
- quartus_sh --flow compile RobotronFPGA.qsf && cp output_files/RobotronFPGA.rbf Releases/$PROJECT.rbf
-done
\ No newline at end of file
diff --git a/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/Alien Arena.arc b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/Alien Arena.arc
new file mode 100644
index 00000000..4dc18ef6
--- /dev/null
+++ b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/Alien Arena.arc
@@ -0,0 +1,3 @@
+[ARC]
+RBF=ROBOTRON
+MOD=5
diff --git a/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/Bubbles.arc b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/Bubbles.arc
new file mode 100644
index 00000000..85af9193
--- /dev/null
+++ b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/Bubbles.arc
@@ -0,0 +1,3 @@
+[ARC]
+RBF=ROBOTRON
+MOD=3
diff --git a/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/Joust.arc b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/Joust.arc
new file mode 100644
index 00000000..f0b3f9ad
--- /dev/null
+++ b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/Joust.arc
@@ -0,0 +1,3 @@
+[ARC]
+RBF=ROBOTRON
+MOD=1
diff --git a/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/Robotron 2084.arc b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/Robotron 2084.arc
new file mode 100644
index 00000000..98c1ad76
--- /dev/null
+++ b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/Robotron 2084.arc
@@ -0,0 +1,3 @@
+[ARC]
+RBF=ROBOTRON
+MOD=0
diff --git a/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/Sinistar.arc b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/Sinistar.arc
new file mode 100644
index 00000000..f561390f
--- /dev/null
+++ b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/Sinistar.arc
@@ -0,0 +1,3 @@
+[ARC]
+RBF=ROBOTRON
+MOD=6
diff --git a/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/Splat.arc b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/Splat.arc
new file mode 100644
index 00000000..d674b450
--- /dev/null
+++ b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/Splat.arc
@@ -0,0 +1,3 @@
+[ARC]
+RBF=ROBOTRON
+MOD=2
diff --git a/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/Stargate.arc b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/Stargate.arc
new file mode 100644
index 00000000..7712ab95
--- /dev/null
+++ b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/Stargate.arc
@@ -0,0 +1,3 @@
+[ARC]
+RBF=ROBOTRON
+MOD=4
diff --git a/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/alienar.mra b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/alienar.mra
new file mode 100644
index 00000000..8eebe0a3
--- /dev/null
+++ b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/alienar.mra
@@ -0,0 +1,87 @@
+
+ Alien Arena
+ 0209
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 02 25 00 03 00 03 00 01 00 04 00 01 00 01 00 00
+ 00 00 00 01 00 03 00 03 00 00 00 00 00 00 00 00
+ 00 00 00 00 02 20 02 20 02 20 02 20 02 20 05 50
+ 05 52 04 45 05 53 04 45 04 4e 05 54 04 45 04 04
+ 02 20 04 42 05 59 02 20 02 20 02 20 02 20 02 20
+ 02 20 02 20 02 20 05 57 04 49 04 4c 04 4c 04 49
+ 04 41 04 4d 05 53 02 20 04 45 04 4c 04 45 04 43
+ 05 54 05 52 04 4f 04 4e 04 49 04 43 05 53 02 20
+ 04 49 04 4e 04 43 03 3d 02 2f 02 28 05 52 0e ec
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+
+
diff --git a/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/bubbles.mra b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/bubbles.mra
new file mode 100644
index 00000000..7c39b74e
--- /dev/null
+++ b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/bubbles.mra
@@ -0,0 +1,86 @@
+
+ Bubbles
+ 0209
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 02 25 00 03 00 01 00 03 00 01 00 04 00 01 00 01
+ 00 00 00 00 00 05 00 03 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A
+ 00 0A 01 1A 01 1C 00 0F 01 1D 00 0F 01 18 01 1E
+ 00 0F 00 0E 00 0A 00 0C 02 23 03 32 00 0A 00 0A
+ 00 0A 00 0A 00 0A 02 21 01 13 01 16 01 16 01 13
+ 00 0B 01 17 01 1D 00 0A 00 0F 01 16 00 0F 00 0D
+ 01 1E 01 1C 01 19 01 18 01 13 00 0D 01 1D 00 0A
+ 01 13 01 18 00 0D 02 2E 02 25 02 29 05 54 05 52
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+
+
diff --git a/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/joust.mra b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/joust.mra
new file mode 100644
index 00000000..40740b61
--- /dev/null
+++ b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/joust.mra
@@ -0,0 +1,87 @@
+
+ Joust
+ 0209
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ f2 00 00 f5 00 f1 00 f3 00 f1 00 f4 00 f1 00 f1
+ 00 00 00 00 00 f5 00 f3 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 fa 00 fa 00 fa 00 fa 00 fa 00 fa
+ 00 fa f1 fa f1 fc 00 ff f1 fd 00 ff f1 f8 f1 fe
+ 00 ff 00 fe 00 fa 00 fc f2 f3 f3 f2 00 fa 00 fa
+ 00 fa 00 fa 00 fa f2 f1 f1 f3 f1 f6 f1 f6 f1 f3
+ 00 fb f1 f7 f1 fd 00 fa 00 ff f1 f6 00 ff 00 fd
+ f1 fe f1 fc f1 f9 f1 f8 f1 f3 00 fd f1 fd 00 fa
+ f1 f3 f1 f8 00 fd f2 fe f2 f5 f2 f9 f5 f1 f5 f2
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+
+
diff --git a/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/robotron.mra b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/robotron.mra
new file mode 100644
index 00000000..a61ae4c4
--- /dev/null
+++ b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/robotron.mra
@@ -0,0 +1,87 @@
+
+ Robotron 2084
+ 0209
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 02 25 00 03 00 03 00 01 00 04 00 01 00 01 00 00
+ 00 00 00 01 00 03 00 03 00 00 00 00 00 00 00 00
+ 00 00 00 00 02 20 02 20 02 20 02 20 02 20 05 50
+ 05 52 04 45 05 53 04 45 04 4e 05 54 04 45 04 04
+ 02 20 04 42 05 59 02 20 02 20 02 20 02 20 02 20
+ 02 20 02 20 02 20 05 57 04 49 04 4c 04 4c 04 49
+ 04 41 04 4d 05 53 02 20 04 45 04 4c 04 45 04 43
+ 05 54 05 52 04 4f 04 4e 04 49 04 43 05 53 02 20
+ 04 49 04 4e 04 43 03 3d 02 2f 02 28 05 52 0e ec
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+
+
diff --git a/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/sinistar.mra b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/sinistar.mra
new file mode 100644
index 00000000..0cec8cd3
--- /dev/null
+++ b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/sinistar.mra
@@ -0,0 +1,86 @@
+
+ Sinistar
+ 0209
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+03 30 03 30 00 03 00 05 00 01 00 01 00 03 00 01
+00 04 00 01 00 01 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 05 51 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+
+
diff --git a/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/splat.mra b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/splat.mra
new file mode 100644
index 00000000..e5aa1ef5
--- /dev/null
+++ b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/splat.mra
@@ -0,0 +1,87 @@
+
+ Splat
+ 0209
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+03 30 00 03 02 25 00 03 00 01 00 04 00 01 00 01
+00 00 00 00 00 05 00 03 00 00 00 00 00 00 00 00
+00 00 00 01 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A
+00 0A 01 1A 01 1C 00 0F 01 1D 00 0F 01 18 01 1E
+00 0F 00 0E 00 0A 00 0C 02 23 02 2C 00 0A 00 0A
+00 0A 00 0A 00 0A 02 21 01 13 01 16 01 16 01 13
+00 0B 01 17 01 1D 00 0A 00 0F 01 16 00 0F 00 0D
+01 1E 01 1C 01 19 01 18 01 13 00 0D 01 1D 00 0A
+01 13 01 18 00 0D 02 2D 02 25 02 29 05 57 05 5A
+02 20 02 20 02 20 02 20 02 20 02 25 02 25 05 5F
+0D D8 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 03 3A 03 3A 03 3A 01 1D
+01 1A 01 16 00 0B 01 1E 00 0A 02 21 01 13 01 16
+01 16 01 13 00 0B 01 17 01 1D 00 0A 00 0A 00 0A
+00 0A 00 0A 00 0A 02 21 01 13 01 16 C9 00 00 01
+00 00 00 00 01 17 01 1C 01 1D 54 00 00 01 00 00
+00 00 01 14 01 1C 01 18 4C 00 00 01 00 00 00 00
+01 12 00 0F 00 0D 30 00 00 01 00 00 00 00 01 17
+00 0C 01 1D 43 00 00 01 00 00 00 00 01 1A 01 10
+02 24 53 00 00 01 00 00 00 00 01 14 01 13 01 16
+41 00 00 01 00 00 00 00 00 0D 02 21 01 15 47 00
+00 01 00 00 00 00 01 1C 01 1D 01 17 54 00 00 01
+00 00 00 00 00 0F 00 0A 02 24 40 00 00 01 00 00
+00 00 01 15 00 0F 01 18 3F 00 00 01 00 00 00 00
+02 20 01 1D 01 17 59 00 00 01 00 00 00 00 00 0D
+01 1C 00 0C 37 00 00 01 00 00 00 00 01 1A 02 20
+00 0B 49 00 00 01 00 00 00 00 01 11 02 21 02 21
+59 00 00 01 00 00 00 00 01 1C 01 19 01 18 51 00
+00 01 00 00 00 00 01 14 01 19 00 0F 3F 00 00 01
+00 00 00 00 01 1E 01 13 01 17 4C 00 00 01 00 00
+00 00 01 1C 01 1D 01 17 54 00 00 01 00 00 00 00
+01 14 01 13 01 17 42 00 00 01 00 00 00 00 02 20
+01 13 00 0D 44 00 00 01 00 00 00 00 01 16 00 0F
+01 19 41 00 00 01 00 00 00 00 00 0C 01 1F 02 24
+53 00 00 01 00 00 00 00 01 14 01 14 01 15 41 00
+00 01 00 00 00 00 01 1C 00 0F 01 18 46 00 00 01
+00 00 00 00 01 18 00 0A 01 10 35 00 00 01 00 00
+00 00 01 14 01 1C 01 18 4C 00 00 01 00 00 00 00
+01 12 00 0F 00 0D 30 00 00 01 00 00 00 00 01 17
+00 0C 01 1D 43 00 00 01 00 00 00 00 01 1A 01 10
+02 24 53 00 00 01 00 00 00 00 01 14 01 13 01 16
+41 00 00 01 00 00 00 00 01 1C 02 20 01 1E 5F 00
+00 01 00 00 00 00 01 15 00 0B 02 23 47 00 00 01
+00 00 00 00 01 14 01 11 01 16 3F 00 00 01 00 00
+00 00 01 1C 00 0B 01 17 41 00 00 01 00 00 00 00
+01 12 00 0F 00 0D 30 00 00 01 00 00 00 00 01 15
+02 20 00 0E 47 00 00 01 00 00 00 00 00 0F 01 14
+01 1D 43 00 00 01 00 00 00 00 02 20 00 0B 02 22
+52 00 00 01 00 00 00 00 00 0E 01 1C 01 14 41 00
+00 01 00 00 00 00 01 14 00 0B 02 23 46 00 00 01
+00 00 00 00 01 14 01 1C 01 18 00 00 00 01 00 00
+00 00 01 12 00 0F 00 0D 00 00 00 01 00 00 00 00
+01 17 00 0C 01 1D 00 00 00 01 00 00 00 00 01 1A
+01 10 02 24 00 00 00 01 00 00 00 00 01 14 01 13
+01 16 00 00 00 01 00 00 00 00 00 0D 02 21 01 15
+00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00
+
+
+
diff --git a/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/stargate.mra b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/stargate.mra
new file mode 100644
index 00000000..3c22ce1b
--- /dev/null
+++ b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/meta/stargate.mra
@@ -0,0 +1,87 @@
+
+ Stargate
+ 0209
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+01 10 00 03 00 07 00 03 00 01 00 04 00 01 00 01
+00 00 00 00 00 00 00 03 00 05 03 30 00 00 00 00
+00 00 01 10 00 04 01 10 02 20 00 00 00 00 00 00
+00 00 00 00 00 00 05 57 04 49 04 4C 04 4C 04 49
+04 41 04 4D 05 53 02 20 04 45 04 4C 04 45 04 43
+05 54 05 52 04 4F 04 4E 04 49 04 43 05 53 02 20
+04 49 04 4E 04 43 03 3D 02 20 02 20 02 20 02 20
+02 20 02 20 02 20 02 20 02 20 02 20 02 20 05 50
+05 52 04 45 05 53 04 45 04 4E 05 54 05 53 03 3F
+02 20 02 20 02 20 02 20 02 20 02 25 02 25 05 5F
+0D D8 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+00 00 00 00 00 00 00 00 03 3A 03 3A 03 3A 03 3A
+03 3A 03 3A 03 3A 03 3A 03 3A 03 3A 03 3A 03 3A
+03 3A 03 3A 03 3A 03 3A 03 3A 03 3A 03 3A 03 3A
+03 3A 03 3A 03 3A BF 00 00 00 04 40 00 00 03 3A
+03 3A 03 3A FB 00 00 00 04 40 00 00 03 3A 03 3A
+03 3A FB 00 00 00 04 40 00 00 03 3A 03 3A 03 3A
+FB 00 00 00 04 40 00 00 03 3A 03 3A 03 3A FB 00
+00 00 04 40 00 00 03 3A 03 3A 03 3A FB 00 00 00
+04 40 00 00 03 3A 03 3A 03 3A FB 00 00 00 04 40
+00 00 03 3A 03 3A 03 3A FB 00 00 00 04 40 00 00
+03 3A 03 3A 03 3A FB 00 00 00 04 40 00 00 03 3A
+03 3A 03 3A FB 00 00 00 04 40 00 00 03 3A 03 3A
+03 3A FB 00 00 00 04 40 00 00 03 3A 03 3A 03 3A
+FB 00 00 00 04 40 00 00 03 3A 03 3A 03 3A FB 00
+00 00 04 40 00 00 03 3A 03 3A 03 3A FB 00 00 00
+04 40 00 00 03 3A 03 3A 03 3A FB 00 00 00 04 40
+00 00 03 3A 03 3A 03 3A FB 00 00 00 04 40 00 00
+03 3A 03 3A 03 3A FB 00 00 00 04 40 00 00 03 3A
+03 3A 03 3A FB 00 00 00 04 40 00 00 03 3A 03 3A
+03 3A FB 00 00 00 04 40 00 00 03 3A 03 3A 03 3A
+FB 00 00 00 04 40 00 00 03 3A 03 3A 03 3A FB 00
+00 00 04 40 00 00 03 3A 03 3A 03 3A FB 00 00 00
+04 40 00 00 03 3A 03 3A 03 3A FB 00 00 00 04 40
+00 00 03 3A 03 3A 03 3A FB 00 00 00 04 40 00 00
+03 3A 03 3A 03 3A FB 00 00 00 04 40 00 00 03 3A
+03 3A 03 3A FB 00 00 00 04 40 00 00 03 3A 03 3A
+03 3A FB 00 00 00 04 40 00 00 03 3A 03 3A 03 3A
+FB 00 00 00 04 40 00 00 03 3A 03 3A 03 3A FB 00
+00 00 04 40 00 00 03 3A 03 3A 03 3A FB 00 00 00
+04 40 00 00 03 3A 03 3A 03 3A FB 00 00 00 04 40
+00 00 03 3A 03 3A 03 3A FB 00 00 00 04 40 00 00
+03 3A 03 3A 03 3A FB 00 00 00 04 40 00 00 03 3A
+03 3A 03 3A FB 00 00 00 04 40 00 00 03 3A 03 3A
+03 3A FB 00 00 00 04 40 00 00 03 3A 03 3A 03 3A
+FB 00 00 00 04 40 00 00 03 3A 03 3A 03 3A FB 00
+00 00 04 40 00 00 03 3A 03 3A 03 3A FB 00 00 00
+04 40 00 00 03 3A 03 3A 03 3A FB 00 00 00 04 40
+00 00 03 3A 03 3A 03 3A FB 00 00 00 04 40 00 00
+03 3A 03 3A 03 3A FB 00 00 00 04 40 00 00 04 44
+05 52 04 4A 00 00 00 03 06 64 04 40 04 4C 04 45
+04 44 00 00 00 02 01 18 05 57 05 53 04 41 04 4D
+00 00 00 01 09 95 05 55 05 53 05 53 05 52 00 00
+00 01 04 45 06 65 04 45 05 50 04 4A 00 00 00 01
+02 27 05 55 04 4A 04 45 05 52 00 00 00 01 02 27
+05 50 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+
+
+
diff --git a/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/rtl/RobotronFPGA_MiST.sv b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/rtl/RobotronFPGA_MiST.sv
index 3e8e5100..fad7f994 100644
--- a/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/rtl/RobotronFPGA_MiST.sv
+++ b/Arcade_MiST/Williams 6809 rev.1 Hardware/Robotron Hardware/rtl/RobotronFPGA_MiST.sv
@@ -38,20 +38,14 @@ module RobotronFPGA_MiST(
`include "rtl/build_id.v"
-//`define CORE_NAME "ROBOTRON"
-//`define CORE_NAME "JOUST"
-//`define CORE_NAME "SPLAT"
-//`define CORE_NAME "BUBBLES"
-//`define CORE_NAME "STARGATE"
-//`define CORE_NAME "SINISTAR"
-`define CORE_NAME "ALIENAR"
-
localparam CONF_STR = {
- `CORE_NAME,";ROM;",
+ ";ROM;",
"O2,Rotate Controls,Off,On;",
"O34,Scanlines,Off,25%,50%,75%;",
"O5,Blend,Off,On;",
"O6,Swap Joysticks,Off,On;",
+ "O7,Auto up,Off,On;",
+ "T8,Advance,Off,On;",
"T0,Reset;",
"V,v1.0.",`BUILD_DATE
};
@@ -60,57 +54,98 @@ wire rotate = status[2];
wire [1:0] scanlines = status[4:3];
wire blend = status[5];
wire joyswap = status[6];
+wire autoup = status[7];
+wire adv = status[8];
-reg [7:0] SW;
-reg [7:0] JA;
-reg [7:0] JB;
-reg [3:0] BTN;
-reg blitter_sc2, sinistar;
-reg [1:0] orientation; // [left/right, landscape/portrait]
+reg [7:0] SW;
+reg [7:0] JA;
+reg [7:0] JB;
+reg [3:0] BTN;
+reg blitter_sc2, sinistar;
+
+wire [6:0] core_mod;
+reg [8*8-1:0] core_name;
+reg [1:0] orientation; // [left/right, landscape/portrait]
+
+// advance button
+reg [23:0] adv_counter;
+wire advance = (adv_counter != 0);
+
+always @(posedge clk_sys) begin
+ reg adv_d;
+
+ adv_d <= adv;
+ if (~adv_d & adv) adv_counter <= 24'hfffff;
+ if (adv_counter != 0) adv_counter <= adv_counter - 1'd1;
+end
always @(*) begin
orientation = 2'b10;
- SW = 8'h00;
+ SW = {6'h0, advance, autoup};
+ JA = 8'hFF;
+ JB = 8'hFF;
+ BTN = 4'hF;
+ core_name = "ROBOTRON";
blitter_sc2 = 0;
sinistar = 0;
- if (`CORE_NAME == "ROBOTRON") begin
+ case (core_mod)
+ 7'h0:
+ begin
+ core_name = "ROBOTRON";
BTN = { m_one_player, m_two_players, m_coin1 | m_coin2, reset };
- JA = ~{ m_right2, m_left2, m_down2, m_up2, m_right, m_left, m_down, m_up };
- JB = ~{ m_right2, m_left2, m_down2, m_up2, m_right, m_left, m_down, m_up };
- end else if (`CORE_NAME == "JOUST") begin
+ // Fire Up/Down/Left/Right maps to joystick 1/2/3/4 and keyboard R/F/D/G (MAME style)
+ JA = ~{ m_fireD|m_right2, m_fireC|m_left2, m_fireB|m_down2, m_fireA|m_up2, m_right, m_left, m_down, m_up };
+ JB = ~{ m_fireD|m_right2, m_fireC|m_left2, m_fireB|m_down2, m_fireA|m_up2, m_right, m_left, m_down, m_up };
+ end
+ 7'h1:
+ begin
+ core_name = "JOUST ";
BTN = { m_two_players, m_one_player, m_coin1 | m_coin2, reset };
JA = ~{ 5'b00000, m_fireA, m_right, m_left };
JB = ~{ 5'b00000, m_fire2A, m_right2, m_left2 };
- end else if (`CORE_NAME == "SPLAT") begin
+ end
+ 7'h2:
+ begin
+ core_name = "SPLAT ";
blitter_sc2 = 1;
BTN = { m_one_player, m_two_players, m_coin1 | m_coin2, reset };
- JA = ~{ m_right2, m_left2, m_down2, m_up2, m_right, m_left, m_down, m_up };
- JB = ~{ m_right4, m_left4, m_down4, m_up4, m_right3, m_left3, m_down3, m_up3 };
- end else if (`CORE_NAME == "BUBBLES") begin
+ // Fire Up/Down/Left/Right maps to joystick 1/2/3/4 and keyboard R/F/D/G (MAME style)
+ JA = ~{ m_fireD|m_right2, m_fireC|m_left2, m_fireB|m_down2, m_fireA|m_up2, m_right, m_left, m_down, m_up };
+ JB = ~{ m_fireD|m_right2, m_fireC|m_left2, m_fireB|m_down2, m_fireA|m_up2, m_right, m_left, m_down, m_up };
+ end
+ 7'h3:
+ begin
+ core_name = "BUBBLES ";
BTN = { m_two_players, m_one_player, m_coin1 | m_coin2, reset };
JA = ~{ 4'b0000, m_right, m_left, m_down, m_up };
JB = ~{ 4'b0000, m_right2, m_left2, m_down2, m_up2 };
- end else if (`CORE_NAME == "STARGATE") begin
+ end
+ 7'h4:
+ begin
+ core_name = "STARGATE";
BTN = { m_two_players, m_one_player, m_coin1 | m_coin2, reset };
JA = ~{ m_fireE, m_up, m_down, m_left | m_right, m_fireD, m_fireC, m_fireB, m_fireA };
JB = ~{ m_fire2E, m_up2, m_down2, m_left2 | m_right2, m_fire2D, m_fire2C, m_fire2B, m_fire2A };
-
-
- end else if (`CORE_NAME == "ALIENAR") begin
- BTN = { m_two_players, m_one_player, m_coin1 | m_coin2, reset };
- JA = ~{ m_right2, m_left2, m_down2, m_up2, m_right, m_left, m_down, m_up };
- JB = ~{ m_right2, m_left2, m_down2, m_up2, m_right, m_left, m_down, m_up };
-
-
-
- end else if (`CORE_NAME == "SINISTAR") begin
+ end
+ 7'h5:
+ begin
+ core_name = "ALIENAR ";
+ BTN = { m_one_player, m_two_players, m_coin1 | m_coin2, reset };
+ JA = ~{ 1'b0, 1'b0, m_fireB, m_fireA, m_right, m_left, m_down, m_up };
+ JB = ~{ 1'b0, 1'b0, m_fire2B, m_fire2A, m_right2, m_left2, m_down2, m_up2 };
+ end
+ 7'h6:
+ begin
+ core_name = "SINISTAR";
sinistar = 1;
orientation = 2'b01;
BTN = { m_two_players, m_one_player, m_coin1 | m_coin2, reset };
JA = { sin_x, 2'b00, m_right | m_left | m_right2 | m_left2, sin_y, 2'b00, m_up | m_down | m_up2 | m_down2 };
JB = { sin_x, 2'b00, m_right | m_left | m_right2 | m_left2, sin_y, 2'b00, m_up | m_down | m_up2 | m_down2 };
end
+ default: ;
+ endcase
end
assign LED = ~ioctl_downl;
@@ -134,6 +169,7 @@ wire [1:0] switches;
wire [7:0] joystick_0;
wire [7:0] joystick_1;
wire scandoublerD;
+wire no_csync;
wire ypbpr;
wire [7:0] audio;
wire hs, vs;
@@ -144,6 +180,29 @@ wire key_pressed;
wire [7:0] key_code;
wire key_strobe;
+user_io #(
+ .STRLEN(8+($size(CONF_STR)>>3)))
+user_io(
+ .clk_sys ( clk_sys ),
+ .conf_str ( {core_name, CONF_STR} ),
+ .SPI_CLK ( SPI_SCK ),
+ .SPI_SS_IO ( CONF_DATA0 ),
+ .SPI_MISO ( SPI_DO ),
+ .SPI_MOSI ( SPI_DI ),
+ .buttons ( buttons ),
+ .switches ( switches ),
+ .scandoubler_disable (scandoublerD ),
+ .ypbpr ( ypbpr ),
+ .no_csync ( no_csync ),
+ .core_mod ( core_mod ),
+ .key_strobe ( key_strobe ),
+ .key_pressed ( key_pressed ),
+ .key_code ( key_code ),
+ .joystick_0 ( joystick_0 ),
+ .joystick_1 ( joystick_1 ),
+ .status ( status )
+ );
+
wire ioctl_downl;
wire [7:0] ioctl_index;
wire ioctl_wr;
@@ -154,7 +213,9 @@ wire [7:0] ioctl_dout;
ROM Structure:
0000-BFFF main cpu 48k
C000-CFFF snd cpu 4k
+D000-D3FF CMOS RAM 1k
*/
+
data_io data_io (
.clk_sys ( clk_mem ),
.SPI_SCK ( SPI_SCK ),
@@ -167,7 +228,7 @@ data_io data_io (
.ioctl_dout ( ioctl_dout )
);
-reg port1_req, port2_req;
+reg port1_req;
wire [23:1] mem_addr;
wire [15:0] mem_do;
wire [15:0] mem_di;
@@ -190,7 +251,7 @@ sdram #(.MHZ(96)) sdram(
// ROM upload
.port1_req ( port1_req ),
.port1_ack ( ),
- .port1_a ( ioctl_addr[22:0] ),
+ .port1_a ( downl_addr ),
.port1_ds ( 2'b11 ),
.port1_we ( ioctl_downl ),
.port1_d ( {ioctl_dout[7:4], ioctl_dout[7:4], ioctl_dout[3:0], ioctl_dout[3:0]} ),
@@ -200,7 +261,7 @@ sdram #(.MHZ(96)) sdram(
.cpu1_addr ( ioctl_downl ? 17'h1ffff : sdram_addr ),
.cpu1_d ( mem_di ),
.cpu1_q ( mem_do ),
- .cpu1_oe ( ~mem_oe & ~(ramcs & romcs) ),
+ .cpu1_oe ( ~mem_oe & ~(ramcs & romcs) ),
.cpu1_we ( ~mem_we & ~(ramcs & romcs) ),
.cpu1_ds ( ~romcs ? 2'b11 : ~{ramub, ramlb} )
);
@@ -210,6 +271,11 @@ sdram #(.MHZ(96)) sdram(
// DXXX-FXXX -> 9xxx-Bxxx
wire [17:1] sdram_addr = ~romcs ? {1'b0, mem_addr[16], ~mem_addr[16] & mem_addr[15], mem_addr[14:1]} : { 1'b1, mem_addr[16:1] };
+// IOCTL address to SDRAM address:
+// D000-D3FF -> 1CC00-1CFFF (CMOS), otherwise direct mapping
+
+wire [22:0] downl_addr = (ioctl_addr[22:10] == { 7'h0, 4'hD, 2'b00 }) ? { 1'b1, 4'hC, 2'b11, ioctl_addr[9:0] } : ioctl_addr;
+
always @(posedge clk_mem) begin
reg ioctl_wr_last = 0;
@@ -217,7 +283,6 @@ always @(posedge clk_mem) begin
if (ioctl_downl) begin
if (~ioctl_wr_last && ioctl_wr) begin
port1_req <= ~port1_req;
- port2_req <= ~port2_req;
end
end
end
@@ -285,42 +350,22 @@ mist_video #(.COLOR_DEPTH(3), .SD_HCNT_WIDTH(11)) mist_video(
.rotate ( {orientation[1],rotate} ),
.scandoubler_disable( scandoublerD ),
.ce_divider ( 1'b1 ),
+ .no_csync ( no_csync ),
.scanlines ( scanlines ),
.blend ( blend ),
.ypbpr ( ypbpr )
);
-user_io #(
- .STRLEN(($size(CONF_STR)>>3)))
-user_io(
- .clk_sys ( clk_sys ),
- .conf_str ( CONF_STR ),
- .SPI_CLK ( SPI_SCK ),
- .SPI_SS_IO ( CONF_DATA0 ),
- .SPI_MISO ( SPI_DO ) ,
- .SPI_MOSI ( SPI_DI ),
- .buttons ( buttons ),
- .switches ( switches ),
- .scandoubler_disable (scandoublerD ),
- .ypbpr ( ypbpr ),
- .key_strobe ( key_strobe ),
- .key_pressed ( key_pressed ),
- .key_code ( key_code ),
- .joystick_0 ( joystick_0 ),
- .joystick_1 ( joystick_1 ),
- .status ( status )
- );
-
wire dac_o;
assign AUDIO_L = dac_o;
assign AUDIO_R = dac_o;
dac #(
- .C_bits(8))
+ .C_bits(11))
dac(
.clk_i(clk_aud),
.res_n_i(1),
- .dac_i(audio),
+ .dac_i({3'd0, audio}), // silence by 9dB
.dac_o(dac_o)
);