Basic lights test menu that works for Solo lights, and mapping for start/body/neon implemented.

This commit is contained in:
Jennifer Taylor 2022-04-01 20:42:14 +00:00
parent 7a7e70be6b
commit 44eafc9f4f
2 changed files with 130 additions and 0 deletions

1
.gitignore vendored
View File

@ -14,6 +14,7 @@ stepx_*.sh
*.iso
*.zip
*.swp
# Byte-compiled / optimized / DLL files

View File

@ -345,3 +345,132 @@ InputTestMenuEnd:
.org 0x8003c244
; Coin Mech ON/OFF
li a2, 0x2a
.org 0x80012d30
; Don't display ULDR next to ON/OFF for IO test since Solo has no IO board.
.asciiz "%s"
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Lights Test Menu
; Fixes unable to select individual lights for test.
.org 0x80039f44
jal is_1p_start_pressed
; Mapping from which test light entry to which actual light to activate.
.org 0x80012acc
; Body left/center/right lights.
.dw 12
.dw 9
.dw 8
; Pad extra1/extra2/extra3/extra4 lights.
.dw 6
.dw 7
.dw 4
.dw 5
; Start button light.
.dw 14
; Speaker light.
.dw 16
; Labels for the lights test options.
.org 0x80012b08
.asciiz "BODY LEFT"
.org 0x80012b14
.asciiz "BODY CENTER"
.org 0x80012b24
.asciiz "BODY RIGHT"
.org 0x80012b34
.asciiz "EXTRA1"
.org 0x80012b44
.asciiz "EXTRA2"
.org 0x80012b50
.asciiz "EXTRA3"
.org 0x80012b60
.asciiz "EXTRA4"
.org 0x80012b70
.asciiz "START"
.org 0x80012b80
.asciiz "SPEAKER"
; Skip displaying labels for lamps we don't have.
.org 0x8003a19c
nop
.org 0x8003a1c0
nop
.org 0x8003a1e4
nop
.org 0x8003a208
nop
.org 0x8003a22c
nop
.org 0x8003a250
nop
; Reposition "ALL" and "EXIT" according to the new layout.
.org 0x8003a25c
li a2, 0x0
.org 0x8003a280
li a2, 0x10
; Reference the correct cursor value for "ALL" and "EXIT".
.org 0x8003a270
lw a0, 0x3c(sp)
.org 0x8003a294
lw a0, 0x40(sp)
; Check for the correct cursor value to display green "current light" indicator
; if we are doing the "ALL" check.
.org 0x8003a010
li v0, 0x9
; Wrap cursor around from top to bottom correctly.
.org 0x80039e14
li v0, 0xA
; Wrap cursor around from bottom to top correctly.
.org 0x80039e44
slti v0, v0, 0xB
; Run all test when "ALL" is selected.
.org 0x80039e78
li v0, 0x9
.org 0x80039f60
li v0, 0x9
; Exit when "EXIT" is selected.
.org 0x80039f04
li v0, 0xA
.org 0x80039f50
li v0, 0xA
; Initialize the all test frame counter to account for us only having 9 lights
; instead of 15, accounting for 60 frames per light being lit.
.org 0x80039f6c
li v0, 0x21C
.org 0x80039ea4
li v0, 0x21B
.org 0x80039ebc
li a1, 0x8
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Lights mappings
; Map body right lower to body left, right higher and left lower to body center, and left higher to body right.
.org 0x8001666c
.dw 0x00000002
.dw 0x00000200
.org 0x80016664
.dw 0x00000002
.dw 0x00000400
; Map start 1p to correct solo start lights.
.org 0x8001667c
.dw 0x00000002
.dw 0x00000100
; Fix "speaker" light output to point at solo speaker neons.
.org 0x8001668c
.dw 0x00000002
.dw 0x00001000