Thomas
Lövskog

Arcadia :: A Project with Rules

CEO Additude Innovation

If Technology doesn’t fix the problem … we need more technology!

Kategoriserat under:



Last month I wrote a small piece around Space Invaders turning 40 years old, as well as some other arcade games around that era. See here

I also mentioned that we thought of having a small project recreating a game, but with modern logic parts.

A project for us 

Now and then you need to have some fun projects on the side. Here at Additude where devotion to technology is king, it is no different. So the question arose. What about a new implementation of a classic arcade game? What would be possible today?

The classic way of doing such a project would be either ...

  • Take any processor based platform like Arduino, Raspberry Pie or similar and emulate the whole game. There are a dime a dozen of these emulators. One of the more famous once are MAME. For raspberry pie there is a very nicely packaged and ready to run distro called RetroPie. It doesn't get easier than that ... however, not so interesting either.
  • Take the original hardware, translate it into VHDL and find a suitable FPGA to hold the complete game. Some variants here include the mega project FPGAArcade. It has been in development for a few years, but are now ready.

Both of these have been done and are fun on their own, but we choose a different path for this project.

First we wanted to recreate the logic in the same way it used to be done, but with modern and smaller parts. To see how small we could make it. The average size of the components for the video timing is typically done with modern SMT parts is 4% of the area in 1978 using DIP.

Below is a comparison of implementing the video timing circuitry in a typical arcade. Left using 70's Dual In Line Plastic components and right top corner using modern SMT components.

We also wanted to create a unique and stylish cabinet that are less clumsy and easier to place in a home or office. And just for the sake of it use a nice curved full HD screen. Classic sturdy Arcade quality stick and buttons is a must.

Goal

  • Reduce the PCB size to 6% of an average Arcade PCB. They are typically 10"*12" -> 77420 [mm2]. This gives our reduced PCB the size 68x68 [mm2]. Choose 70 x 45 [mm]
  • Nice looking cabinet for wall mounting. A modern curved full HD monitor. Modern HDMI monitors present a problem, since these old Arcades usually are 224×256 through 224 x 288. In either portrait or landscape mode. The solution is to have a nice background representing the game filling 1920 by 1080 and in the center add the gameplay scaled to fit. Probably scaled 2x2 or 3x3.
  • Use sturdy Arcade quality joysticks and buttons. 2 player option.
  • Possibility to run other games than Space Invaders.

Rules

Regarding rules it is a bit tricky. Some of the parts is just not available or would be ridiculously difficult to integrate. The running thought is that any IC used in 1978 will be replaced by equivalent IC from today. The Logic is not a problem, but some of the custom chips would be. However, by replacing these with a CPLD/FPGA is ok or, since many of the custom chips where just logic, replace with discrete logic.

Another tricky issue is data storage for game data. Usually the arcade games had a huge number of small PROMS/EPROMS for all kinds of look-up tables. We will replace these IC by IC with static SRAM. Game data loaded by a housekeeping MCU at boot.

Note: it will be ok to actually replace a number of identical ROM/RAM packages with a larger modern one. Including simplification of the address decoder logic.

Standard Rules

  • Implementation should be true to the original schematic, IC for IC.
  • Use a real 65C02 or Z80 whatever was needed. QFP-44 package is the smallest available. A bit large, but ok.
  • Use real logic from LV' VQFN series.
  • Use SRAM memories, loaded with data at startup.
  • Any voltage rail is ok, as well as using level translators if needed.
  • Size of board 70 x 45 [mm].
Exceptions and addon
  • Housekeeping MCU for loading SRAM and communicating to outside world via I2C.
  • Video output interface as digital VGA out. V-sync, H-sync and 8,9 or 10 bit digital VGA. Then reformatted to HDMI.