Open Large Scale Attraction Emulator (OpenLSA) is an emulator for the ride boards in Let's Go Jungle Special, The House Of The Dead 4 Special, and possibly Jurassic Park Special. The project aims to document the protocol so that large attraction games using these boards, can be played at home.
All of the reverse engineering info is stored here:
https://raw.githubusercontent.com/bobbydilley/OpenLSA/master/code_recreations/struct.md
Let's go jungle special sends its serial commands to /dev/ttyS0
. If this isn't populated on your Lindbergh you may need to symlink it using this command:
ln -s /dev/tts/0 /dev/ttyS0
The attendants tower swithches are not run via JVS.
-
Baud Rate: 115200
-
Recive: 7 bytes a go
- 1st byte is always 0xC0
- 2nd to 6th byte is payload
- 7th byte is checksum which is the exclusive bitwise or (^) operation over the last 5 payload bytes
-
Send: 22 bytes a go
- 1st byte is always 0xC0
- 2nd to 21st byte is payload
- 22nd byte is checksum which is the exclusive bitwise or (^) operation over the previous 20 bytes.
When the machine is starting up this is repeated:
C0 01 00 00 01 00 00
When the machine is erroring this is repeated indefinately:
C0 16 00 00 04 00 12
When the machine is in test mode this is repeated indefinately:
C0 13 00 00 00 00 13
When dummy serial is turned on, and its waiting for the INITIALIZE button:
C0 02 00 00 01 00 03
What I think the things are now
C0 - SYNC BYTE 02 - COMMAND 00 - CHAIR POSITION 00 - LIGHT/BLOWER 01 - LIGHT/BLOWER? 00 - LIGHT/BLOWER 03 - CHECK SUM
Buttons are not connected to JVS, but I think possibly they keyboard was used to simluate the button!? There is a link to /dev/input/js0.
The emulation is written in python 2.7 which you must have installed.
To run the emulator, open the openlsa.py file and change the file path to the RS232 device you are using. You can then type python openlsa.py
and will start to see output from the Lindbergh device.