Skip to content

Latest commit

 

History

History
164 lines (105 loc) · 6.03 KB

README.md

File metadata and controls

164 lines (105 loc) · 6.03 KB

Dragon's Lair (Arcade) Hardware Scoreboard

This project will provide a repository for information on creating homebrew versions of the hardware scoreboard, to operate with the Don Bluth Laserdisc Arcade games Dragon's Lair, Space Ace and Thayer's Quest, using Hypseus Singe. Support for a Space Ace hardware annunciator is also included.

The Hypseus Singe Game API also allows games to utilize this hardware.

Software

Hypseus Singe and an Arduino/Esp32 sketch.

Arduino IDE to load sketch onto Board.

A Windows hypseus binary with USB serial support is provided in Releases.

Hardware

The project uses serial communication with an Arduino Classic or Esp32 driving MAX7219
8-Digit LED Display Controllers to power 7-segment LED character, or other LED, displays.

The provided sketches demonstrate the serial communication (using serialib) between hypseus
and the Arduino. These should be portable to other programmable microcontrollers able to handle
serial communication.

Required Arduino libraries:
LEDControl
SerialLib

Hardware details and schematics

Easy to construct, it can be hand wired on a basic perfboard with LED sizes of your choosing. Be aware of the power consumption of the LEDs as larger displays will require that an exterior power source be implemented. Components can be (DIP/DIL) through hole to enable easy soldering.

Fabrication files can be found in schematics.

Schematic

Bill of Materials:

  • 1    -  Arduino/Esp32 Microcontroller [IC2]
  • 16  -  7-Segment display (common cathode) [LED1 to 16]
  • 2    -  MAX7219 [IC1 & IC3]
  • 2    -  100nf capacitor [C6 - C7]
  • 2    -  10uf electrolytic capacitor [C1 - C2]
  • 2    -  Resistor [R1 - R2] value:
    See table below:

Calculator

Using prebuilt LED modules

It can also be created using pre-built and commonly available 8-Digit MAX7219 modules:

Modules

See demonstration videos on image links above.

Serial protocol

The provided sketches are coded for a 19200 baud rate on the Arduino side.
Baud rates should be adjusted to give the most reliable communication on your hardware.

Updates are communicated using a three byte struct using writeBytes():

typedef struct {
   char unit;
   char digit;
   char value;
} DigitStruct;

The scoreboard DigitStruct.value is 7-bit ASCII suitable for passing via setChar() as a (byte) cast.

The annunciator will recieve 0, 1, 2 or 4 on value, digit is unused.

Scoreboard: unit is 0 | Annunciator: unit is 1

Hypseus command arguments

You will need to provide the following arguments to enable serial communication on the required port:

(Use 19200 baud for provided sketch)

In MS Windows:

-usbscoreboard COM <com port decimal> <baud rate>

In Linux, the USB device can appear as USB or ACM. Specify your connection as follows:

-usbscoreboard ACM <com port decimal> <baud rate>
-usbscoreboard USB <com port decimal> <baud rate>

Example:

-usbscoreboard COM 3 19200

Ensure that the hypseus user has read/write permission on the USB device.
Group membership to dialout should normally suffice in linux.

Reference

WhichDigit enum     * DigitStruct('digit')

typedef enum
{
      PLAYER1_0 = 0,
      PLAYER1_1,
      PLAYER1_2,
      PLAYER1_3,
      PLAYER1_4,
      PLAYER1_5,
      PLAYER2_0,
      PLAYER2_1,
      PLAYER2_2,
      PLAYER2_3,
      PLAYER2_4,
      PLAYER2_5,
      LIVES0,
      LIVES1,
      CREDITS1_0,
      CREDITS1_1,
      DIGIT_COUNT
} WhichDigit;

Community Image Share

Please share images of your projects and creations on the Hypseus Discord server.

Credits

A massive thanks goes out to Rumblebelly5 for the inspiration, patience, schematics, hardware
itinerary and expertise on this project. Without them this project would not be possible.

License

Hypseus Singe, Being Retro Orientated This Humble Emulator Regenerates

Copyright (C) 2021-2022 DirtBagXon

  Creative Commons License

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Liability

The user assumes complete responsibility for all hardware used in conjunction with this application. The repository maintainers will not be responsible in any way for the non-performance or malfunction of any hardware used in conjunction with this application, nor for any damages whatsoever arising out of the use of any such hardware.

Trademark

The "Hypseus Singe" mark is used to uniquely identify this project as an Arcade Laserdisc Emulator. Any direct or indirect commercial use of the mark "Hypseus" is strictly prohibited without express permission.