Gottlieb Mylstar on FPGA (Q*bert and 9 other games working)

ElmarTrjoer

New member
Joined
Feb 11, 2011
Messages
34
Reaction score
1
Location
California
Gottlieb Mylstar on FPGA (Q*bert and 9 other games working)

Arcade games are so much fun...

.. so I spend some time in implementing the Gottlieb/Mylstar GS-III hardware, several generations of sound boards as well as interface/expansion modules on a Spartan3E FPGA.
Beside the SC01, SPO250 speech synthesizer, the whole design is in a single chip and a 1:1 replica of the original hardwarel (no emulation, the real thing!)

I am currently putting up a blog at www.qbert.me, so feel free to take a look. It´s under construction, so please be patient to get the full story published as well as demo videos.

The final target is to get all games working on a small board to make it a TV multi-game joystick as well as a replacement for original arcade boards.

The system is currently supporting the following games:

- Q*bert
- FHMC Q*bert
- Q*berts Qubes
- Insector (prototype)
- Mad Planets
- Curve Ball
- Krull
- Knightmare (prototype)
- Tylz (prototype)
- Reactor

The games 3 Stooges and Skrew Loose are currently imperfect in sound and I am working to support laser disc to enabled the awesome background scenery of M.A.C.H. 3.

I also hacked some 8088 assembler to write a small multi-game loader that allows to select between games.

That´s it for now - stay tuned for more and in the meantime start doing your own FPGA games - playing arcade games is lots of fun, doing them yourself even more! :)

Cheers, TRORT

------------------------------------------------------------------
If you are interested, some more details what´s inside the FPGA chip:

The video system is a perfect copy containing a cycle-accurate (!) 8088 CPU with ROM/RAM sub-system (all jumper options implemented). The I/O logic includes support for 2-player cocktail joysticks (Q*bert and FHMC Q*Bert), trackball (Reactor), and rotary controller (Mad Planets) as well as all the conventional inputs such as 2 coin switches, 1/2 player start, test switch, test step, and DIP switches. As different games use different controller mappings and DIP switch functions, I have added logic to map automatically. The foreground/background logic comes with (aligned) horizontal flip/vertical flop support as well as ROM expansion for Q*bert´s Qubes (8x 8k). Beside classic 12-bit RGB CGA to drive a arcade CRT, I implemented a line-doubler to be able to connect a regular VGA/DVI computer screen as well as a composite DAC to connect to a TV. All outputs (coin meter, coin lockout, knocker, trackball clear, sound-bus) are also implemented.

The sound system contains 2 soft Rockwell R6502 CPUs IP cores where either 1 or 2 are active depending on the game. Also all jumper options for ROM sizes are supported.
I also did a full implementation of the Rockwell 6532 RIOT (RAM, I/O bi-directional PA/PB, timer, interrupt handling). To add voice, I sampled all phonemes of the SC01A and SPO256 and stored them in external NOR flash memory (together with FPGA bit-stream, game ROMs and RAM high-score write-back). Although I can tandem-stream the phonemes from memory, it does not sound well as the original synth provide fade-in/outs. I am looking for another solution.
 
Last edited:
Cool... but has already been done: http://www.jrok.com/xfer/msf/index.html
Why not pick another system to put on FPGA? Lots of choices... and some would be quite profitable.


Can you point me to any currently available board that has this game selection? Sure, a multi-Qbert has been done, and there is talk of doing this exact thing by someone else but I haven't seen any progress in a long time.


For the record, the first person to have a functional replacement for Mad Planets, either Jamma or original Gottleib pinout, has my money. If that board also has Three Stooges I'll consider it icing on the cake...
 
Can you point me to any currently available board that has this game selection? Sure, a multi-Qbert has been done, and there is talk of doing this exact thing by someone else but I haven't seen any progress in a long time.


For the record, the first person to have a functional replacement for Mad Planets, either Jamma or original Gottleib pinout, has my money. If that board also has Three Stooges I'll consider it icing on the cake...

Hi,

As said above, I have Mad Planets (and all the other ones mentioned above) fully running on a Xilinx Spartan3E 1.6M gates eval board. As Mad Planets uses a cost-reduced sound board without voice synth, I also have 100% of the sound in my design.

It's this $200 board containing the FPGA, a 16M NOR flash to boot the FPGA as well as load ROMs, save RAMs, a Liner Technologies DAC for the sound and tons of I/Os (Hirose FX2 100 pin connector to the left). Also you see a rotary switch on that card which I tested the interface assembly against and tune speed.

http://www.xilinx.com/products/boards-and-kits/HW-SPAR3E-SK-US-G.htm
http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,793&Prod=S3E1600

But I want to bring the cost way down by doing an own pcb, also swapping this part out with a Spartan6 LX25 which is 1/2 the price of the S3C1600. I am in contact with MikeJ from www.fpgaarcade.com to port the code to his Replay board which just got ready. In such a way, we could get the game out very soon. Otherwise, the eval board or 1/2 year more.

I will post some pictures just to prove.
 
Not really, what I see is an external 8088 CPU and only Q*bert.

He's only showing Q*bert there, but it is a multi-Mylstar project. And yes, he is using the actual CPU rather than putting it in the FPGA. That has proven to be a very wise decision... JROK's Multi-Williams board (http://www.jrok.com/hardware/wsf/) is the closest thing out there to the real hardware.
 
He's only showing Q*bert there, but it is a multi-Mylstar project. And yes, he is using the actual CPU rather than putting it in the FPGA. That has proven to be a very wise decision... JROK's Multi-Williams board (http://www.jrok.com/hardware/wsf/) is the closest thing out there to the real hardware.

:) I don´t want to take credits of this board you mention, but it´s old school and an expensive overkill. With a cycle-accurate 8088 (wait states) or the use of dual-port RAMs you can push the whole hardware (including variations) into a single FPGA.
What you need is 7k slices FPGA with 38 BRAMs, 16M of parallel flash to boot/load ROMs and a single channel 8-bit DAC (or a resistor ladder if you wish). It fits 2x2 inches.

The main point though is that I want to preserve the original hardware... forever. My step is the final step in doing so, as I own VHDL code (software) that accurately describes the original hardware. If - let say it a bit pathetically - in 1000th of years from now the last 8088 CPU has died (it already kept itself alive for 30+ years, so I had to take a large number :), the VHDL code will still describe it and synthesize on any future FPGA.

So let´s list the steps for completeness:

Initial step: Gottlieb/Mylstar produces the arcade game, Due-date: When the last box is fallen to pieces.
2nd step: Multi-game modules, plug into the original circuit boards. Due-date: When the last box is fallen to pieces. (http://forums.arcade-museum.com/showthread.php?t=176919)
3rd step: Replacement board (JROKs work), replaces the old PCBs but requires old CPU/RAM/ROM chips. Due-date: When the last CPU/RAM/ROM parts are gone.
Final step: Full replica in hardware-descriptive language (my work). Due-date: Never
 
Last edited:
:) I don´t want to take credits of this board you mention, but it´s old school and an expensive overkill. With a cycle-accurate 8088 (wait states) or the use of dual-port RAMs you can push the whole hardware (including variations) into a single FPGA.

What you need is 7k slices FPGA with 38 BRAMs, 16M of parallel flash to boot/load ROMs and a single channel 8-bit DAC (or a resistor ladder if you wish). It fits 2x2 inches.

JROK sells his multi boards for $165 each, and they're sold out in no time. If you can produce something of the same quality for less, good luck to you.
If I had some FPGA skills I'd be working on an Omega Race replacement....
 
Can you point me to any currently available board that has this game selection? Sure, a multi-Qbert has been done, and there is talk of doing this exact thing by someone else but I haven't seen any progress in a long time.


For the record, the first person to have a functional replacement for Mad Planets, either Jamma or original Gottleib pinout, has my money. If that board also has Three Stooges I'll consider it icing on the cake...

I agree with all said by OZ. As far as I know, there is no multi Mylstar Gotleib board available. Being worked on yes, but available no.

I would pick one up to try and make a Reactor sometime down the line.
 
I would be interested in something I could actually purchase. My skills lie in other endevours so if you make something I can buy and use... I am a customer.
 
Interesting..

I've been working on the same thing, to keep the FPGA small and ensure perfect functionality it uses the original CPU and cycle timing/wait was matched to the original hardware.

It can play all the gen-1 mylstar games, along with screwloose & 3 stooges.

I've not really worked on it since March (!) ack.
Board: http://jrok.com/xfer/msf/msf_mar27_a.jpg
Menu: http://jrok.com/xfer/msf/msf_mar27_b.jpg
Setup: http://jrok.com/xfer/msf/setup.jpg

Reactor in Vertical mode, http://jrok.com/xfer/msf/react_v.jpg
Qbert in Horizonatl mode http://jrok.com/xfer/msf/qb_h.jpg

Eventually I'll release it like the Williams boards when I get a chance to build a few.

- James

edit: freaking links.... :(
 
Last edited:
This sounds awesome. This has been talked about for quite some time but nothing has reached the market. I'd spring for whichever board comes out first...and has all of the proper sound support.
 
Do either of these drive the Q*bert knocker? That circuit keeps self-destructing in my set up; I'd replace the hardware in a heartbeat if it handled that part as well.
 
Back
Top Bottom