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.
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.
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
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.
- 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:
It can also be created using pre-built and commonly available 8-Digit MAX7219
modules:
See demonstration videos on image links above.
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
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.
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;
Please share images of your projects and creations on the Hypseus Discord server.
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.
Hypseus Singe, Being Retro Orientated This Humble Emulator Regenerates
Copyright (C) 2021-2022 DirtBagXon
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
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.
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.