Skip to content

JCAP Log #4: Architecture

Connor Spangler edited this page Apr 25, 2018 · 10 revisions

JCAP Architecture

High-level Design

Before initiating development, a high-level design for the project should be established. Fundamentally, an arcade game can be broken down into 4 major sub-systems:

  1. Input system - the hardware and software which involves polling and storing the states of various physical inputs
  2. Video system - the hardware and software responsible for displaying graphics (tiles and sprites) to a screen
  3. Sound system - the hardware and software used to generate game audio
  4. Game system - the software which accepts data from the input system, and uses it to manipulate sprites and tiles for display by the video system and play audio via the sound system; essentially, the game logic


JCAP High-level Block Diagram

JCAP High-level Block Diagram

Low-level Design

Applying this design paradigm to the JAMMA standard gives us more specific low-level attributes for each of the sub-systems: the input system will need to be able to interface with 16 user inputs and others, the video system will have to output an RGBS signal, the sound system will need to support mono audio, etc. However, the specifics of the low-level architecture of JCAP are not immediately obvious without an analysis of the target requirement for the system. What video resolution(s) are we aiming to support? What sound generation method will we use? The answers to these questions will become apparent as we dive into the individual sub-systems and analyze the constraints of different paradigms and their solutions.

The following low-level system diagram is a work in progress, and is the result of the work analyzed in the following JCAP log entries. Using this as a guide to understand the implementations of the various subsystems and their discussions should prove invaluable:


JCAP High-level Block Diagram

JCAP Low-level Block Diagram

Conclusion

Outlining a high-level schema for the project from the outset is an excellent way of defining the various lines of effort for the individual subsystems. Even though the rationales for the decisions on low-level implementation have not been discussed at this point, the relevant system diagram provided explains their interconnection effectively. At this point we are ready to investigate these decisions and designs.