Blog

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…

Settings

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

Audio

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

Color

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.

NWPaA.png

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.

Settings1.PNG
Settings2.PNG

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.