Welcome to Data Crystal's new home! Data Crystal is now part of the TCRF family (sort of).
The wiki has recently moved; please report any issues in Discord. Pardon the dust.

NBA Jam Tournament Edition (SNES)/ROM map/Titlescreen code: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
No edit summary
(added note formatting)
Line 1: Line 1:
==Notes==
{{Note|This code loops through a series of 16 bit values (8 of them) stored at '''0B7C3A [$16:FC3A]''' and compares them to player input. Then sets a bit at '''$16FF''' if entered correctly.}}
 
This code loops through a series of values stored at '''0B7C3A [$16:FC3A]''' and compares them to player input. Then sets a bit at '''$16FF''' if entered correctly.


==Commented titlescreen input check routine==
==Commented titlescreen input check routine==

Revision as of 04:57, 19 October 2018

Note for template.png
Note:
This code loops through a series of 16 bit values (8 of them) stored at 0B7C3A [$16:FC3A] and compares them to player input. Then sets a bit at $16FF if entered correctly.


Commented titlescreen input check routine

--------------------------------------
get total correct input amount counter
--------------------------------------
$8A/8847 AE FD 16    LDX $16FD  [$00:16FD]   A:4000 X:0034

--------------------------------------------
use that as an index to get next input value
--------------------------------------------
$8A/884A BF 3A FC 16 LDA $16FC3A,x[$16:FC3A] A:4000 X:0000

-----------------------------------------
compare next input value to current input
-----------------------------------------
$8A/884E C5 88       CMP $88    [$00:0088]   A:4000 X:0000
$8A/8850 D0 12       BNE $12    [$8864]      A:4000 X:0000

$8A/8852 E8          INX                     A:4000 X:0000
$8A/8853 E8          INX                     A:4000 X:0001
$8A/8854 8E FD 16    STX $16FD  [$00:16FD]   A:4000 X:0002

---------------------------------------
compare to 16 decimal (8 correct inputs)
---------------------------------------
$8A/8857 E0 10 00    CPX #$0010              A:4000 X:0002
$8A/885A D0 0E       BNE $0E    [$886A]      A:4000 X:0002

--------------------------
code was entered correctly
--------------------------
$8A/885C A9 01 00    LDA #$0001              A:0400 X:0010
$8A/885F 8D FF 16    STA $16FF  [$00:16FF]   A:0001 X:0010
$8A/8862 80 06       BRA $06    [$886A]      A:0001 X:0010

--------------------------------------------------
wrong input, reset the total correct input counter
--------------------------------------------------
$8A/8864 A9 00 00    LDA #$0000              A:FFFF X:0010
$8A/8867 8D FD 16    STA $16FD  [$00:16FD]   A:0000 X:0010

$8A/886A end