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

From Data Crystal
Jump to navigation Jump to search
No edit summary
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
==Notes==
{{subpage|game=NBA Jam Tournament Edition:ROM map}}
 
{{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==


<pre>
<pre>
-------------------------
here are the input values
-------------------------
org $16FC3A
dw #$4000 ;Y
dw #$0800 ;up
dw #$0400 ;down
dw #$8000 ;B
dw #$0200 ;left
dw #$0080 ;A
dw #$0100 ;right
dw #$0400 ;down
--------------------------------------
--------------------------------------
get total correct input amount counter
get total correct input amount counter
Line 47: Line 59:
$8A/886A end
$8A/886A end
</pre>
</pre>
{{Internal Data|game=NBA Jam Tournament Edition}}

Latest revision as of 20:35, 28 January 2024

This is a sub-page of NBA Jam Tournament Edition (SNES)/ROM map.

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

-------------------------
here are the input values
-------------------------
org $16FC3A
	dw #$4000		;Y
	dw #$0800		;up
	dw #$0400		;down
	dw #$8000		;B
	dw #$0200		;left
	dw #$0080		;A
	dw #$0100		;right
	dw #$0400		;down

--------------------------------------
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