Spring 19 Update - Bringing it all together

Lots of progress over the last several months, plus there are 2 cabinets running latest prototype boards and software at Zapcon this weekend, so great time for an update.

It’s very beta

First, Brian spent a lot of time moving functionality over to the CPU, building out the interfaces between it, the FPGA, and the overall architecture. This was needed to provide better integration between the various elements of the final platform: FPGA, CPU, menu functions, and storage for saved values like settings and high scores. Of note was work done to integrate menu functionality that Timothy has been working on for saving game options so they can be fetched at runtine for use with game code.

An initial prototype board was fabbed to test the updated platform in an actual Cinematroncis cabinet, with cabinet power, display and controls. This gave us a debug platform to test and prove out the integration between the major elements of CPU and menus that were still in progress. We were able to rapidly debug menus and new functionality that was being brought in, in part because the prototype includes a USB interface for easily loading new menu and game code by inserting a thumbdrive to automatically copy over new files to the board.

The v1 prototype, installed in a Star Castle cabinet. The original logic and audio boards to the right are disconnected and not in use

The v1 prototype, installed in a Star Castle cabinet. The original logic and audio boards to the right are disconnected and not in use

New menu functionality: Primary Options, Tech Info

One area of new functionality that was recently brought in is support for the primary input options which some Cinematronics games featured. These are options built into the hardware — separate from the secondary inputs associated with dip switches — for additional options, diagnostics, and in some cases debug functionality left in place by the original developers. For example, the difficulty setting in Solar Quest, but also bookkeeping and other functions in some games. Tailgunner has options to change the look and sound of the lasers, Solar Quest will let you enable infinite nukes, and so on. These are not implemented in MAME today, and will be fun to play around with for sure.

We also added a tech info screen for displaying code versions, but also state of currently selected IOs. This is super helpful for testing and will come in handy when installing the final board in cabinet and identifying where things aren’t working.

Picture of the Tech Info screen, showing versioning as well as input status for testing controls

Picture of the Tech Info screen, showing versioning as well as input status for testing controls

The game list

The list of games with built in support has been defined. In some cases there are multiple versions of a games available, bootlegs and so on, but to complete the menus we needed to be explicit about which games would be supported inbox. As mentioned above, game code is user update-able via USB, so you will always have the option to load your own variation of game ROMs into one of the available slots if that is something you want to do.

The game list includes several variations of custom game code that Timothy has developed, including a horizontal version of Barrier, non-mirrored Solar Quest for use in a cabinet without the mirror, and even a color version of Star Castle for those interested in running the board with a WG6100.

Colored version of Star Castle, running in a Boxing Bugs cabinet with WG6100 display. This video was shot by attendees at Zapcon

Another variation that will be interesting to some is Star Castle cocktail. The cocktail version of that game is an uncommon cabinet design, but since the board is designed to work in an Asteroids cabinet with a G05, you can now play Star Castle in an Asteroids cocktail, complete with screen flipping for a 2 player game.

The v2 prototype, consisting of an FPGA development board, and an interface board for handling power, audio, controls, and display, running in an Asteroids cocktail cabinet

The v2 prototype, consisting of an FPGA development board, and an interface board for handling power, audio, controls, and display, running in an Asteroids cocktail cabinet

Prototype board running a 2 player game in an Asteroids cocktail cabinet

Here is the complete list of games with inbox support:

  • Space Wars

  • Star Hawk

  • Speed Freak

  • Barrier

  • Barrier Horizontal

  • Sundance

  • Warrior

  • Tail Gunner

  • Star Castle

  • Star Castle Easy

  • Star Castle Cocktail

  • Star Castle Color

  • Armor Attack

  • Armor Attack Rock-Ola

  • Solar Quest

  • Solar Quest No Mirror

  • Boxing Bugs

  • War of the Worlds

  • Demon

  • QB-3

Using menus to modify and save the list of enabled games

Monitor Overlays

One thing we have not disclosed until now is we are also looking to reproduce the colored monitor gels that Cinematronics included in some of the later games. We want to make sure games like Star Castle can be played the way they were intended, with rings that are red, orange and yellow in color. Armor Attack will be virtually unplayable without one.

These will be high quality reproductions, identical to the original, and we are planning to include them as an option with the final FPGA.

A sample reproduction overlay is on the left, original is on the right. This sample was digitally printed, while the final version will be colored matched and use high quality automotive inks. Also, the edges here were rough cut, whereas the final version will be routed and smoothed.

A sample reproduction overlay is on the left, original is on the right. This sample was digitally printed, while the final version will be colored matched and use high quality automotive inks. Also, the edges here were rough cut, whereas the final version will be routed and smoothed.

Winter Update

Time for an update. There’s been a ton of progress in nailing down all the remaining multigame features, and in moving the development platform towards a more production ready architecture. This included major work on:

  • the CPU to FPGA interface, which is critical for basic board function as well as updatability;

  • defining how game code will be stored and distributed;

  • the front end settings and game config UI;

  • a control scheme to ensure the board can be run in multiple cabinet configurations, with a simple and straightforward way of handling inputs for different games

among other things…. Read on.

While the initial goal for the project was to recreate hardware needed to play a game in its original cabinet, from the very outset we always envisioned a multigame package that would enable the entire Cinematronics/Vectorbeam catalog in a single cabinet. Much of the recent work has been focused on building out the framework needed to make that happen.

Input mapping

Since we want to let someone play different games using a single control panel — ideally the factory one that came with their cabinet — we need a way to easily remap controls from a variety of games into a common input scheme that can be used with a given control panel. This way, a user wont have to rewire or modify their original cabinet for every new game they want to play.

We identified the following basic control mapping schemes for the board:

Star Castle - War of the Worlds: this is the 6-button ‘Asteroids-like’ layout used by many of the classic Cinematronics games, with buttons for Left, Right, Thrust, Fire, 1P and 2P Start

Rip Off - Armor Attack: this is for 12-button games, which are basically all 6-button games with support for 2 player simultaneous gameplay

Space War(s): this is similar to the 12-button layout, with additional inputs for the number pad and Reset

Asteroids - Asteroids Deluxe: this is similar to the 6-button layout, but includes translations to go from the C/V to A/AD cabinet configuration. In actuality, it’s 2 slightly different layouts since some inputs are reversed between the 2 games

Cocktail: this is similar to the 12-button scheme, but for use in an A/AD cocktail cabinet. This would let someone play a 2 player simultaneous game like Rip Off in an Asteroids cabinet, with each player getting a set of controls

No Remap: This option is for playing games in their original cabinet with the factory control panel and game inputs intact. A number of C/V games have control schemes that were unique to that game or otherwise not widely shared. Think of the buttons on Sundance or the sticks on Warrior. Many of these original cabinets are in short supply, some exceedingly so. The work needed to play Boxing Bugs in a Speed Freak cabinet has diminishing returns. The important part is this option will enable wiring up a bespoke control panel, so there should be nothing stopping someone from playing Warrior in a Starhawk cabinet, provided they are willing to do the work to wire up the controls for those games

Timothy has developed a simple menu for setting the desired control scheme that we bring up on first boot:

Select Input Mapping menu

Select Input Mapping menu

Speaking of menus…


Timothy has also built out all the main menus for configuring the board and individual game options. There is also a menu for enabling which games should be turned on in the carousel. Since C/V games have no startup routine or test function, it feels very natural to advance the carousel and boot directly into the next game enabled in the menu.

Finally, each game has its own set of options that were originally set with hardware dip switches on the logic board. We want to enable those in software so you can easily change them from within the menu:

Game Specific Options menu

Game Specific Options menu


The sounds of a C/V game are as much a part of their DNA as the vector graphics that define them. The background drone of Star Castle or the ramping klaxon of Rip Off are unique and essential parts of those games. A lot of work has gone into to faithfully recreating these analog sounds in the FPGA by painstakingly measuring signal outputs from the original C/V audio board. Several versions of each board had to be measured to identify a suitable baseline, since wide variations have been observed across different boards even after repairs to ensure they were fully working and operational.

While using sampled WAV files would have been MUCH faster and easier, we think the effort will be worth it in the final product and the board is going to sound great.

Video of first sounds running on my multi Cine kit


Cinematronics hoped to get a bit more life out of their aging vector platform and added color with War of the Worlds, Boxing Bugs, and the Rock-Ola developed QB-3. These games were developed towards the end of the vector lifespan, not long before Cinematronics make a hard turn towards the laserdisc-based games that most know them for. A new bit denoting the color for each vector is added to the digital signal generated by the logic board, which is then translated by an adapter board to an analog signal the Wells Gardner 6100 can use. Brian has finished adding this to the platform and is now able to drive the 6100 with color output. This was also tested with a color raster monitor using a separate vector-to-raster converter that is available in market today, so other applications are possible as well.

Cinematronics FPGA proto driving a color vector monitor playing WotW
Multi Cine prototype driving a 6100 in an Asyetoids cab. The flicker is just the camera frame rate beating with the 38Hz game refresh

Summer Progress

First, thanks to everyone for all the interest so far! From the outset, our intention was to bring the Cinematronics and Vectorbeam games we love to a larger audience, so it's great to see those ideas validated by the support we've been receiving. We've been very busy and have made a lot of progress since first revealing the project earlier this summer, so we thought it would be a good opportunity to share some of that progress and bring folks up to speed with where we are at.

We first announced the project at the NW Pinball & Arcade show in Seattle this past June., where we prototypes running in 2 Cinematronics cabinets with 5 playable games in each. We showed an updated version of that prototype running in a War of the Worlds cabinet at CAX last month.


At this point, we feel the basic underlying platform is there and demonstrates all the major elements we initially set out to accomplish:

  1. Implement the Cinematronics CCPU in an FPGA with 100% accuracy. This took some effort to get to. The original schematics included several errors, and Brian had to build a test fixture running an original CCPU and the FPGA in parallel to identify and close all the gaps
  2. Deploy the FPGA to a board package with I/O and cabling to run in an original, unmodified Cinematronics cabinet, with working voltages, video output to the Vectorbeam display, and a common set of playable controls built around the 'Asteroids interaction model' (Left, Right, Thrust, Fire). This enabled us to play the heart of the Cinematronics catalog, as games like Star Castle and Armor Attack all share a common set of controls
  3. Ability to boot up and play multiple Cinematronics / Vectorbeam games in a multigame format. The current platform builds each game into the FPGA bitstream, and we with a button combo we can easily switch to and boot right into the next game in a list or carousel. We like this method of switching games because it is simple and lightweight, plus all the C/V games boot directly into the game mode with no startup routine or test screens

This effectively met all the initial goals we had for the project: to produce a low-cost, drop-in replacement for failing (or missing) C/V hardware that could run in an original cabinet with no modifications.

But we aren't done yet. Not even close. We have several other major goals in mind that we think will make this application even better and appealing to a wider audience. We're not ready to talk about all of those plans just yet, but we feel comfortable sharing the following progress.

Video on the Electrohome G05

The circuitry has now been defined to handle the digital to analog conversion of the video signal output from the CCPU to drive an Electrohome G05 monitor. In keeping with our original goal of bringing these games to an expanded audience, we had always wanted to enable playing a set of games with common controls in an Asteroids cabinet. Original C/V cabinets can be hard to come by, and the fact is there are many more surviving Asteroids cabinets available today. Brian has been working to identify a low cost DAC solution that can handle the display requirements, writing the drivers needed to test several candidates on the G05. After evaluating several different options and choosing one with the best cost to performance ration, he feels confident about the DAC we will be using in the final build. Hardware was also added for the Atari edge connector and power supply, and this has been tested in an original Asteroids cabinet.

Game Settings and Options

We also made a progress on the front end to allow for setup and game options on screen. This has been supported in a big way by Timothy at Outerworld Arcade who has been providing code to help out with the project. Timothy has a working menu system that uses the original Star Castle / Solar Quest fonts, and we are building out and testing that now. Our plan at this point is to support freeplay, saving high scores, choosing which games to enable in the carousel, and (ideally) to expose the game specific settings in software. All original C/V games had options enabled through hardware dip switches on the logic board. We are looking to make those configurable on screen so you don't have to open the cabinet to change something. The screenshots below were taken while testing in MAME.


Other Cabinet Configurations

Another area we've made progress on is ensuring the board can operate across a range of original cabinets with different monitor configurations, depending on the game. C/V games were designed to support vectors of variable intensity. Most games had 2 or 16 levels of intensity. The very late games, like War of the Worlds and Solar Quest, had a daughter board on the monitor enabling 64 levels of intensity. What if you want to play Solar Quest with a monitor that only supports 2 levels? We don't want to require everyone to have hardware supporting 64 levels, so we have made sure games can gracefully downgrade their intensity level depending upon which monitor they will be played on. That includes running these games on an Electrohome G05.

Also, several C/V games were designed to operate in cabinets with a mirrored display so their images could be super imposed over a cardboard backdrop. Since we don't want to require folks to install a mirror in their cabinets to play a game like Solar Quest, we have added the logic to mirror the display so it will look and play right in a non-mirrored cabinet. Thanks again to Timothy @ Outerworld Arcade for that.