JAMMA Custom Arcade Project (JCAP)

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • JAMMA Custom Arcade Project (JCAP)


      JAMMA Custom Arcade Project (JCAP)

      CURRENT STATUS: Developing VGA driver
      What is it?


      JCAP is a project with the goal of developing a JAMMA arcade standard compatible game board using the Parallax Propeller 1 (P8X32A) microcontroller upon which a user can implement their own custom arcade game, either from scratch or by using the library of graphics, sound, input, and other drivers developed under the project. Ultimately, the project will provide:

      • VGA video driver
      • Sprite/tile based graphics driver
      • PWM sound driver
      • Serialized input driver
      • Game engine
      • PCB schematic and CAD files


      in such a way that a user has everything they need to implement their own arcade game and have a PCB printed to build it on.

      This is a project that spans several EE, CPE, and CS disciplines such as active and passive component circuit design, PCB development and design, video generation, game theory and design, assembly programming, microcontroller interfacing, FPGA development, verilog design, and many more.

      A more detailed description can be found in the JCAP README.

      How do I follow it?


      The project is being managed via GitHub, and can be found at:


      The progress log can be found at:


      The log itself contains a lot of background information that some might find very interesting as well, such as a brief history of arcade games and an analysis of historical video formats. Here are the first handful of logs to get your feet wet on the project:



      Contributing


      Any help will be gladly accepted, and if anyone is interested in contributing to the project, please read the contribution guidelines. Currently, I would be glad to get in touch with anyone who has experience with developing graphics drivers, either on the software or hardware sides. The graphics system will be tile and sprite based, and will be very similar to the Nintendo Entertainment System's.
    • acblunden2 wrote:

      In a nutshell, this is equivalent to an console for arcades? And the console shall simply be a reference design and anyone can pick up the reference and build their own PCB?
      That's fairly accurate yes. As far as it being a "console", it's really no different than any other arcade game PCB besides the fact that the hardware isn't necessarily tailored directly to a specific game.
    • Nice. Can you allude to how powerful you're aiming for the system to be? Will it be a system designed to run large scale shmups or are you aiming more for platformers/fighting games?

      I do see that you'll be looking towards expansion boards, will these include additional input options? Wheels, spinners, guns etc?
    • xodaraP wrote:

      Nice. Can you allude to how powerful you're aiming for the system to be? Will it be a system designed to run large scale shmups or are you aiming more for platformers/fighting games?

      I do see that you'll be looking towards expansion boards, will these include additional input options? Wheels, spinners, guns etc?
      At the moment this project is geared towards the types of games you would have found in the 80s, so platformers and top-downs and the like. Down the road, the project could easily be extended to include additional processors on the PCB and therefore really jack up the potential power.

      As for the expansion capability, you'll essentially be able to implement anything you want within the constraints of the number of microcontroller GPIO pins remaining. So for extra inputs, you could easily make an expansion board with something akin to a kick harness (en.wikipedia.org/wiki/Kick_harness). And if you follow the same design I have, and use shift registers to pass them to the board, you could add as many inputs as the board will fit shift registers.

      Theoretically you could make a powerful daughter board with a microcontroller of its own, have it serve as a GPU for example, and have it communicate with the JCAP Propeller.

      Add EEPROMs, SRAM, upgraded sound hardware, anything you want.