mirror of
https://github.com/jeremysrand/BuGS.git
synced 2025-01-02 10:30:31 +00:00
Move non-game code out of the main segment to make more room for more high score code.
This commit is contained in:
parent
08be64a61c
commit
701585df1a
254
BuGS/game.s
254
BuGS/game.s
@ -18,6 +18,7 @@
|
||||
; more on-screen action.
|
||||
|
||||
case on
|
||||
datachk off
|
||||
mcopy game.macros
|
||||
keep game
|
||||
|
||||
@ -344,7 +345,7 @@ updateGameState_doneBonus anop
|
||||
stz isSinglePlayer
|
||||
bra updateGameState_twoPlayer
|
||||
updateGameState_isSinglePlayer anop
|
||||
jmp setGameNotRunning
|
||||
jmp >setGameNotRunning
|
||||
updateGameState_notHighScore anop
|
||||
lda isSinglePlayer
|
||||
beq updateGameState_isSinglePlayer
|
||||
@ -512,8 +513,96 @@ copyFromPlayer2Tiles_skip anop
|
||||
cpx #RHS_FIRST_TILE_OFFSET
|
||||
blt copyFromPlayer2Tiles_loop
|
||||
rtl
|
||||
|
||||
|
||||
|
||||
checkKeyboard entry
|
||||
checkKey_loop2 anop
|
||||
short i,m
|
||||
lda >KEYBOARD
|
||||
bpl checkKey_done
|
||||
sta >KEYBOARD_STROBE
|
||||
long i,m
|
||||
and #$007f
|
||||
|
||||
ldx gameState
|
||||
bne checkKey_pause
|
||||
|
||||
cmp #'q'
|
||||
beq checkKey_quit
|
||||
cmp #'Q'
|
||||
beq checkKey_quit
|
||||
|
||||
cmp #'1'
|
||||
beq checkKey_game
|
||||
|
||||
cmp #'2'
|
||||
beq checkKey_game
|
||||
|
||||
cmp #'s'
|
||||
beq checkKey_swapStereo
|
||||
cmp #'S'
|
||||
beq checkKey_swapStereo
|
||||
|
||||
checkKey_done anop
|
||||
long i,m
|
||||
rtl
|
||||
|
||||
checkKey_pause anop
|
||||
jmp >pauseGame
|
||||
|
||||
checkKey_quit anop
|
||||
stz shouldQuit
|
||||
rtl
|
||||
|
||||
checkKey_game anop
|
||||
sec
|
||||
sbc #'1'
|
||||
jmp startGame
|
||||
|
||||
checkKey_swapStereo anop
|
||||
jsl swapStereoSettings
|
||||
jmp >staticGameBoard
|
||||
|
||||
|
||||
|
||||
waitForBeam entry
|
||||
beamLoop anop
|
||||
lda >VERTICAL_COUNTER ; load the counter value
|
||||
and #$80ff ; mask out the VBL bits
|
||||
asl a ; shift the word around
|
||||
adc #0 ; move MSB -> LSB
|
||||
cmp #$1c8
|
||||
bge beamLoop
|
||||
rtl
|
||||
|
||||
|
||||
waitForVbl entry
|
||||
vblLoop1 anop
|
||||
short m
|
||||
lda #$fe
|
||||
cmp >READ_VBL
|
||||
bpl vblLoop1
|
||||
vblLoop2 anop
|
||||
cmp >READ_VBL
|
||||
bmi vblLoop2
|
||||
long m
|
||||
rtl
|
||||
|
||||
|
||||
borderColour dc i2'0'
|
||||
frameCount dc i2'0'
|
||||
shouldPreloadSound dc i2'0'
|
||||
highScoreCountdown dc i2'0'
|
||||
|
||||
end
|
||||
|
||||
|
||||
gameExtras start extraSeg
|
||||
using globalData
|
||||
using tileData
|
||||
using playerData
|
||||
|
||||
|
||||
overwriteGameTile entry
|
||||
phy
|
||||
tay
|
||||
@ -527,12 +616,11 @@ overwriteGameTile entry
|
||||
inx
|
||||
inx
|
||||
ply
|
||||
rts
|
||||
|
||||
rtl
|
||||
|
||||
pauseGame entry
|
||||
jsl pauseSound
|
||||
|
||||
|
||||
ldx #GAME_NUM_TILES_WIDE*4+2
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
@ -555,7 +643,7 @@ pauseGame entry
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
|
||||
|
||||
ldx #GAME_NUM_TILES_WIDE*6+2
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
@ -578,7 +666,7 @@ pauseGame entry
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
|
||||
|
||||
ldx #GAME_NUM_TILES_WIDE*8+2
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
@ -601,7 +689,7 @@ pauseGame entry
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
|
||||
|
||||
ldx #GAME_NUM_TILES_WIDE*10+2
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
@ -624,7 +712,7 @@ pauseGame entry
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
|
||||
|
||||
ldx #GAME_NUM_TILES_WIDE*12+2
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_LETTER_O
|
||||
@ -647,7 +735,7 @@ pauseGame entry
|
||||
_overwriteGameTile TILE_LETTER_M
|
||||
_overwriteGameTile TILE_LETTER_E
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
|
||||
|
||||
ldx #GAME_NUM_TILES_WIDE*14+2
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
@ -670,7 +758,7 @@ pauseGame entry
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
|
||||
|
||||
short i,m
|
||||
pauseGame_loop anop
|
||||
lda >KEYBOARD
|
||||
@ -688,7 +776,7 @@ pauseGame_quit anop
|
||||
stz shouldQuit
|
||||
rtl
|
||||
|
||||
|
||||
|
||||
setGameTile entry
|
||||
cmp tileType,x
|
||||
beq setGameTile_skip
|
||||
@ -698,9 +786,9 @@ setGameTile entry
|
||||
setGameTile_skip anop
|
||||
inx
|
||||
inx
|
||||
rts
|
||||
|
||||
|
||||
rtl
|
||||
|
||||
; This must come before staticGameBoard because it falls into it.
|
||||
setGameNotRunning entry
|
||||
lda #GAME_STATE_NOT_RUNNING
|
||||
sta gameState
|
||||
@ -710,15 +798,13 @@ setGameNotRunning entry
|
||||
jsl fleaInitLevel
|
||||
jsl addRandomMushrooms
|
||||
stz displayGlobalHighScores
|
||||
jmp staticGameBoard
|
||||
|
||||
|
||||
; Fall through into staticGameBoard...
|
||||
staticGameBoard entry
|
||||
lda #TILE_PLAYER
|
||||
sta tileType+RHS_FIRST_TILE_OFFSET-GAME_NUM_TILES_WIDE-1
|
||||
lda #TILE_STATE_DIRTY
|
||||
sta tileDirty+RHS_FIRST_TILE_OFFSET-GAME_NUM_TILES_WIDE-1
|
||||
|
||||
|
||||
lda displayGlobalHighScores
|
||||
beq staticGameBoard_localHighScores
|
||||
jmp staticGameBoard_globalHighScores
|
||||
@ -746,7 +832,7 @@ staticGameBoard_localHighScores anop
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
|
||||
|
||||
ldx #GAME_NUM_TILES_WIDE*10+2
|
||||
_setGameTile TILE_EMPTY
|
||||
_highScoreRow 0
|
||||
@ -756,7 +842,7 @@ staticGameBoard_localHighScores anop
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
|
||||
|
||||
ldx #GAME_NUM_TILES_WIDE*12+2
|
||||
_setGameTile TILE_EMPTY
|
||||
_highScoreRow 1
|
||||
@ -766,7 +852,7 @@ staticGameBoard_localHighScores anop
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
|
||||
|
||||
ldx #GAME_NUM_TILES_WIDE*14+2
|
||||
_setGameTile TILE_EMPTY
|
||||
_highScoreRow 2
|
||||
@ -776,7 +862,7 @@ staticGameBoard_localHighScores anop
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
|
||||
|
||||
ldx #GAME_NUM_TILES_WIDE*16+2
|
||||
_setGameTile TILE_EMPTY
|
||||
_highScoreRow 3
|
||||
@ -786,7 +872,7 @@ staticGameBoard_localHighScores anop
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
|
||||
|
||||
ldx #GAME_NUM_TILES_WIDE*18+2
|
||||
_setGameTile TILE_EMPTY
|
||||
_highScoreRow 4
|
||||
@ -796,7 +882,7 @@ staticGameBoard_localHighScores anop
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
|
||||
|
||||
ldx #GAME_NUM_TILES_WIDE*20+2
|
||||
_setGameTile TILE_EMPTY
|
||||
_highScoreRow 5
|
||||
@ -806,7 +892,7 @@ staticGameBoard_localHighScores anop
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
|
||||
|
||||
ldx #GAME_NUM_TILES_WIDE*22+2
|
||||
_setGameTile TILE_EMPTY
|
||||
_highScoreRow 6
|
||||
@ -816,7 +902,7 @@ staticGameBoard_localHighScores anop
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
|
||||
|
||||
ldx #GAME_NUM_TILES_WIDE*24+2
|
||||
_setGameTile TILE_EMPTY
|
||||
_highScoreRow 7
|
||||
@ -826,7 +912,7 @@ staticGameBoard_localHighScores anop
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
|
||||
|
||||
ldx #GAME_NUM_TILES_WIDE*26+2
|
||||
_setGameTile TILE_EMPTY
|
||||
_highScoreRow 8
|
||||
@ -836,7 +922,7 @@ staticGameBoard_localHighScores anop
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
|
||||
|
||||
ldx #GAME_NUM_TILES_WIDE*28+2
|
||||
_setGameTile TILE_EMPTY
|
||||
_highScoreRow 9
|
||||
@ -995,7 +1081,7 @@ staticGameBoard_Options anop
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
|
||||
|
||||
ldx #GAME_NUM_TILES_WIDE*32+2
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_LETTER_P
|
||||
@ -1018,7 +1104,7 @@ staticGameBoard_Options anop
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
|
||||
|
||||
ldx #GAME_NUM_TILES_WIDE*34+2
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
@ -1041,7 +1127,7 @@ staticGameBoard_Options anop
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
|
||||
|
||||
ldx #GAME_NUM_TILES_WIDE*36+2
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
@ -1064,7 +1150,7 @@ staticGameBoard_Options anop
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
|
||||
|
||||
ldx #GAME_NUM_TILES_WIDE*38+2
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
@ -1082,7 +1168,7 @@ staticGameBoard_Options anop
|
||||
_setGameTile TILE_LETTER_E
|
||||
_setGameTile TILE_LETTER_O
|
||||
_setGameTile TILE_EMPTY
|
||||
|
||||
|
||||
lda settings+SETTINGS_SWAP_STEREO_OFFSET
|
||||
bne staticGameBoard_swapped
|
||||
_setGameTile TILE_LETTER_L
|
||||
@ -1096,7 +1182,7 @@ staticGameBoard_swapped anop
|
||||
staticGameBoard_cont anop
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
|
||||
|
||||
ldx #GAME_NUM_TILES_WIDE*40+2
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
@ -1119,7 +1205,7 @@ staticGameBoard_cont anop
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
_setGameTile TILE_EMPTY
|
||||
|
||||
|
||||
rtl
|
||||
|
||||
|
||||
@ -1151,97 +1237,17 @@ displayConnectionString entry
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
rtl
|
||||
|
||||
|
||||
checkKeyboard entry
|
||||
checkKey_loop2 anop
|
||||
short i,m
|
||||
lda >KEYBOARD
|
||||
bpl checkKey_done
|
||||
sta >KEYBOARD_STROBE
|
||||
long i,m
|
||||
and #$007f
|
||||
|
||||
ldx gameState
|
||||
bne checkKey_pause
|
||||
|
||||
cmp #'q'
|
||||
beq checkKey_quit
|
||||
cmp #'Q'
|
||||
beq checkKey_quit
|
||||
|
||||
cmp #'1'
|
||||
beq checkKey_game
|
||||
|
||||
cmp #'2'
|
||||
beq checkKey_game
|
||||
|
||||
cmp #'s'
|
||||
beq checkKey_swapStereo
|
||||
cmp #'S'
|
||||
beq checkKey_swapStereo
|
||||
|
||||
checkKey_done anop
|
||||
long i,m
|
||||
rtl
|
||||
|
||||
checkKey_pause anop
|
||||
jmp pauseGame
|
||||
|
||||
checkKey_quit anop
|
||||
stz shouldQuit
|
||||
rtl
|
||||
|
||||
checkKey_game anop
|
||||
sec
|
||||
sbc #'1'
|
||||
jmp startGame
|
||||
|
||||
checkKey_swapStereo anop
|
||||
jsl swapStereoSettings
|
||||
jmp staticGameBoard
|
||||
|
||||
|
||||
|
||||
waitForKey entry
|
||||
short m
|
||||
short m
|
||||
waitForKey_loop anop
|
||||
lda >KEYBOARD
|
||||
bpl waitForKey_loop
|
||||
sta >KEYBOARD_STROBE
|
||||
long m
|
||||
lda >KEYBOARD
|
||||
bpl waitForKey_loop
|
||||
sta >KEYBOARD_STROBE
|
||||
long m
|
||||
and #$7f
|
||||
rtl
|
||||
|
||||
|
||||
waitForBeam entry
|
||||
beamLoop anop
|
||||
lda >VERTICAL_COUNTER ; load the counter value
|
||||
and #$80ff ; mask out the VBL bits
|
||||
asl a ; shift the word around
|
||||
adc #0 ; move MSB -> LSB
|
||||
cmp #$1c8
|
||||
bge beamLoop
|
||||
rtl
|
||||
rtl
|
||||
|
||||
|
||||
waitForVbl entry
|
||||
vblLoop1 anop
|
||||
short m
|
||||
lda #$fe
|
||||
cmp >READ_VBL
|
||||
bpl vblLoop1
|
||||
vblLoop2 anop
|
||||
cmp >READ_VBL
|
||||
bmi vblLoop2
|
||||
long m
|
||||
rtl
|
||||
|
||||
|
||||
shouldQuit dc i2'1'
|
||||
borderColour dc i2'0'
|
||||
frameCount dc i2'0'
|
||||
shouldPreloadSound dc i2'0'
|
||||
displayGlobalHighScores dc i2'0'
|
||||
highScoreCountdown dc i2'0'
|
||||
|
||||
end
|
||||
end
|
||||
|
@ -137,14 +137,14 @@ _dirtyNonGameTile_skip&SYSCNT anop
|
||||
macro
|
||||
_overwriteGameTile &type
|
||||
lda #&type
|
||||
jsr overwriteGameTile
|
||||
jsl overwriteGameTile
|
||||
mend
|
||||
|
||||
|
||||
macro
|
||||
_setGameTile &type
|
||||
lda #&type
|
||||
jsr setGameTile
|
||||
jsl setGameTile
|
||||
mend
|
||||
|
||||
|
||||
@ -153,70 +153,70 @@ _dirtyNonGameTile_skip&SYSCNT anop
|
||||
ldy #SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+&nthScore*SETTINGS_HIGH_SCORE_SIZE
|
||||
lda settings,y
|
||||
jsl asciiToTileType
|
||||
jsr setGameTile
|
||||
jsl setGameTile
|
||||
|
||||
iny
|
||||
lda settings,y
|
||||
jsl asciiToTileType
|
||||
jsr setGameTile
|
||||
jsl setGameTile
|
||||
|
||||
iny
|
||||
lda settings,y
|
||||
jsl asciiToTileType
|
||||
jsr setGameTile
|
||||
jsl setGameTile
|
||||
|
||||
iny
|
||||
lda settings,y
|
||||
jsl asciiToTileType
|
||||
jsr setGameTile
|
||||
jsl setGameTile
|
||||
|
||||
iny
|
||||
lda settings,y
|
||||
jsl asciiToTileType
|
||||
jsr setGameTile
|
||||
jsl setGameTile
|
||||
|
||||
iny
|
||||
lda settings,y
|
||||
jsl asciiToTileType
|
||||
jsr setGameTile
|
||||
jsl setGameTile
|
||||
|
||||
iny
|
||||
lda settings,y
|
||||
jsl asciiToTileType
|
||||
jsr setGameTile
|
||||
jsl setGameTile
|
||||
|
||||
iny
|
||||
lda settings,y
|
||||
jsl asciiToTileType
|
||||
jsr setGameTile
|
||||
jsl setGameTile
|
||||
|
||||
iny
|
||||
lda settings,y
|
||||
jsl asciiToTileType
|
||||
jsr setGameTile
|
||||
jsl setGameTile
|
||||
|
||||
iny
|
||||
lda settings,y
|
||||
jsl asciiToTileType
|
||||
jsr setGameTile
|
||||
jsl setGameTile
|
||||
|
||||
lda #TILE_EMPTY
|
||||
jsr setGameTile
|
||||
jsl setGameTile
|
||||
|
||||
iny
|
||||
lda settings,y
|
||||
jsl asciiToTileType
|
||||
jsr setGameTile
|
||||
jsl setGameTile
|
||||
|
||||
iny
|
||||
lda settings,y
|
||||
jsl asciiToTileType
|
||||
jsr setGameTile
|
||||
jsl setGameTile
|
||||
|
||||
iny
|
||||
lda settings,y
|
||||
jsl asciiToTileType
|
||||
jsr setGameTile
|
||||
jsl setGameTile
|
||||
mend
|
||||
|
||||
|
||||
@ -225,70 +225,70 @@ _dirtyNonGameTile_skip&SYSCNT anop
|
||||
ldy #2+&nthScore*SETTINGS_HIGH_SCORE_SIZE
|
||||
lda highScoreResponse,y
|
||||
jsl asciiToTileType
|
||||
jsr setGameTile
|
||||
jsl setGameTile
|
||||
|
||||
iny
|
||||
lda highScoreResponse,y
|
||||
jsl asciiToTileType
|
||||
jsr setGameTile
|
||||
jsl setGameTile
|
||||
|
||||
iny
|
||||
lda highScoreResponse,y
|
||||
jsl asciiToTileType
|
||||
jsr setGameTile
|
||||
jsl setGameTile
|
||||
|
||||
iny
|
||||
lda highScoreResponse,y
|
||||
jsl asciiToTileType
|
||||
jsr setGameTile
|
||||
jsl setGameTile
|
||||
|
||||
iny
|
||||
lda highScoreResponse,y
|
||||
jsl asciiToTileType
|
||||
jsr setGameTile
|
||||
jsl setGameTile
|
||||
|
||||
iny
|
||||
lda highScoreResponse,y
|
||||
jsl asciiToTileType
|
||||
jsr setGameTile
|
||||
jsl setGameTile
|
||||
|
||||
iny
|
||||
lda highScoreResponse,y
|
||||
jsl asciiToTileType
|
||||
jsr setGameTile
|
||||
jsl setGameTile
|
||||
|
||||
iny
|
||||
lda highScoreResponse,y
|
||||
jsl asciiToTileType
|
||||
jsr setGameTile
|
||||
jsl setGameTile
|
||||
|
||||
iny
|
||||
lda highScoreResponse,y
|
||||
jsl asciiToTileType
|
||||
jsr setGameTile
|
||||
jsl setGameTile
|
||||
|
||||
iny
|
||||
lda highScoreResponse,y
|
||||
jsl asciiToTileType
|
||||
jsr setGameTile
|
||||
jsl setGameTile
|
||||
|
||||
lda #TILE_EMPTY
|
||||
jsr setGameTile
|
||||
jsl setGameTile
|
||||
|
||||
iny
|
||||
lda highScoreResponse,y
|
||||
jsl asciiToTileType
|
||||
jsr setGameTile
|
||||
jsl setGameTile
|
||||
|
||||
iny
|
||||
lda highScoreResponse,y
|
||||
jsl asciiToTileType
|
||||
jsr setGameTile
|
||||
jsl setGameTile
|
||||
|
||||
iny
|
||||
lda highScoreResponse,y
|
||||
jsl asciiToTileType
|
||||
jsr setGameTile
|
||||
jsl setGameTile
|
||||
mend
|
||||
|
||||
|
||||
|
@ -193,6 +193,9 @@ backupStack dc i2'0'
|
||||
collision dc i2'0'
|
||||
collisionAddr dc i2'0'
|
||||
numSegments dc i2'0'
|
||||
displayGlobalHighScores dc i2'0'
|
||||
shouldQuit dc i2'1'
|
||||
scoreIndex dc i2'0'
|
||||
|
||||
|
||||
tileJumpTable dc a4'solid0'
|
||||
|
230
BuGS/score.s
230
BuGS/score.s
@ -8,6 +8,7 @@
|
||||
|
||||
|
||||
case on
|
||||
datachk off
|
||||
mcopy score.macros
|
||||
keep score
|
||||
|
||||
@ -15,78 +16,6 @@ score start
|
||||
using globalData
|
||||
using tileData
|
||||
|
||||
|
||||
updateHighScore entry
|
||||
ldx #HIGH_SCORE_ONES_OFFSET
|
||||
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+9
|
||||
jsl asciiToTileType
|
||||
sta tileType,x
|
||||
_dirtyNonGameTile
|
||||
|
||||
dex
|
||||
dex
|
||||
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+8
|
||||
jsl asciiToTileType
|
||||
sta tileType,x
|
||||
_dirtyNonGameTile
|
||||
|
||||
dex
|
||||
dex
|
||||
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+7
|
||||
jsl asciiToTileType
|
||||
sta tileType,x
|
||||
_dirtyNonGameTile
|
||||
|
||||
dex
|
||||
dex
|
||||
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+6
|
||||
jsl asciiToTileType
|
||||
sta tileType,x
|
||||
_dirtyNonGameTile
|
||||
|
||||
dex
|
||||
dex
|
||||
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+5
|
||||
jsl asciiToTileType
|
||||
sta tileType,x
|
||||
_dirtyNonGameTile
|
||||
|
||||
dex
|
||||
dex
|
||||
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+4
|
||||
jsl asciiToTileType
|
||||
sta tileType,x
|
||||
_dirtyNonGameTile
|
||||
|
||||
dex
|
||||
dex
|
||||
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+3
|
||||
jsl asciiToTileType
|
||||
sta tileType,x
|
||||
_dirtyNonGameTile
|
||||
|
||||
dex
|
||||
dex
|
||||
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+2
|
||||
jsl asciiToTileType
|
||||
sta tileType,x
|
||||
_dirtyNonGameTile
|
||||
|
||||
dex
|
||||
dex
|
||||
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+1
|
||||
jsl asciiToTileType
|
||||
sta tileType,x
|
||||
_dirtyNonGameTile
|
||||
|
||||
dex
|
||||
dex
|
||||
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET
|
||||
jsl asciiToTileType
|
||||
sta tileType,x
|
||||
_dirtyNonGameTile
|
||||
rtl
|
||||
|
||||
|
||||
scoreStartGame entry
|
||||
stz gameScore
|
||||
@ -380,6 +309,90 @@ scoreAddOneThousand_skipZeroHundreds anop
|
||||
jmp scoreAddOneToTile
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
end
|
||||
|
||||
|
||||
scoreExtras start extraSeg
|
||||
using globalData
|
||||
using tileData
|
||||
using playerData
|
||||
|
||||
|
||||
updateHighScore entry
|
||||
ldx #HIGH_SCORE_ONES_OFFSET
|
||||
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+9
|
||||
jsl asciiToTileType
|
||||
sta tileType,x
|
||||
_dirtyNonGameTile
|
||||
|
||||
dex
|
||||
dex
|
||||
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+8
|
||||
jsl asciiToTileType
|
||||
sta tileType,x
|
||||
_dirtyNonGameTile
|
||||
|
||||
dex
|
||||
dex
|
||||
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+7
|
||||
jsl asciiToTileType
|
||||
sta tileType,x
|
||||
_dirtyNonGameTile
|
||||
|
||||
dex
|
||||
dex
|
||||
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+6
|
||||
jsl asciiToTileType
|
||||
sta tileType,x
|
||||
_dirtyNonGameTile
|
||||
|
||||
dex
|
||||
dex
|
||||
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+5
|
||||
jsl asciiToTileType
|
||||
sta tileType,x
|
||||
_dirtyNonGameTile
|
||||
|
||||
dex
|
||||
dex
|
||||
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+4
|
||||
jsl asciiToTileType
|
||||
sta tileType,x
|
||||
_dirtyNonGameTile
|
||||
|
||||
dex
|
||||
dex
|
||||
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+3
|
||||
jsl asciiToTileType
|
||||
sta tileType,x
|
||||
_dirtyNonGameTile
|
||||
|
||||
dex
|
||||
dex
|
||||
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+2
|
||||
jsl asciiToTileType
|
||||
sta tileType,x
|
||||
_dirtyNonGameTile
|
||||
|
||||
dex
|
||||
dex
|
||||
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+1
|
||||
jsl asciiToTileType
|
||||
sta tileType,x
|
||||
_dirtyNonGameTile
|
||||
|
||||
dex
|
||||
dex
|
||||
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET
|
||||
jsl asciiToTileType
|
||||
sta tileType,x
|
||||
_dirtyNonGameTile
|
||||
rtl
|
||||
|
||||
|
||||
checkHighScore entry
|
||||
ldy #0
|
||||
checkHighScore_loop anop
|
||||
@ -429,7 +442,7 @@ checkHighScore_doneCopy anop
|
||||
lda gameScore+2,x
|
||||
sta settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_OFFSET+2,y
|
||||
sta setHighScoreRequest+8
|
||||
|
||||
|
||||
lda playerNum
|
||||
cmp #PLAYER_ONE
|
||||
beq checkHighScore_isPlayer1
|
||||
@ -441,61 +454,61 @@ checkHighScore_saveHighScore anop
|
||||
lda tileType,x
|
||||
jsl tileTypeToAscii
|
||||
sta settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET,y
|
||||
|
||||
|
||||
inx
|
||||
inx
|
||||
lda tileType,x
|
||||
jsl tileTypeToAscii
|
||||
sta settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+1,y
|
||||
|
||||
|
||||
inx
|
||||
inx
|
||||
lda tileType,x
|
||||
jsl tileTypeToAscii
|
||||
sta settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+2,y
|
||||
|
||||
|
||||
inx
|
||||
inx
|
||||
lda tileType,x
|
||||
jsl tileTypeToAscii
|
||||
sta settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+3,y
|
||||
|
||||
|
||||
inx
|
||||
inx
|
||||
lda tileType,x
|
||||
jsl tileTypeToAscii
|
||||
sta settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+4,y
|
||||
|
||||
|
||||
inx
|
||||
inx
|
||||
lda tileType,x
|
||||
jsl tileTypeToAscii
|
||||
sta settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+5,y
|
||||
|
||||
|
||||
inx
|
||||
inx
|
||||
lda tileType,x
|
||||
jsl tileTypeToAscii
|
||||
sta settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+6,y
|
||||
|
||||
|
||||
inx
|
||||
inx
|
||||
lda tileType,x
|
||||
jsl tileTypeToAscii
|
||||
sta settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+7,y
|
||||
|
||||
|
||||
inx
|
||||
inx
|
||||
lda tileType,x
|
||||
jsl tileTypeToAscii
|
||||
sta settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+8,y
|
||||
|
||||
|
||||
inx
|
||||
inx
|
||||
lda tileType,x
|
||||
jsl tileTypeToAscii
|
||||
sta settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_SCORE_TEXT_OFFSET+9,y
|
||||
|
||||
|
||||
ldx #GAME_NUM_TILES_WIDE*4+2
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
@ -518,7 +531,7 @@ checkHighScore_saveHighScore anop
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
|
||||
|
||||
ldx #GAME_NUM_TILES_WIDE*6+2
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
@ -541,7 +554,7 @@ checkHighScore_saveHighScore anop
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
|
||||
|
||||
ldx #GAME_NUM_TILES_WIDE*8+2
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
@ -570,7 +583,7 @@ checkHighScore_donePrintingPlayer anop
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
|
||||
|
||||
ldx #GAME_NUM_TILES_WIDE*10+2
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
@ -593,7 +606,7 @@ checkHighScore_donePrintingPlayer anop
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
|
||||
|
||||
ldx #GAME_NUM_TILES_WIDE*12+2
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
@ -616,7 +629,7 @@ checkHighScore_donePrintingPlayer anop
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
|
||||
|
||||
ldx #GAME_NUM_TILES_WIDE*14+2
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_LETTER_E
|
||||
@ -639,7 +652,7 @@ checkHighScore_donePrintingPlayer anop
|
||||
_overwriteGameTile TILE_LETTER_L
|
||||
_overwriteGameTile TILE_LETTER_S
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
|
||||
|
||||
ldx #GAME_NUM_TILES_WIDE*16+2
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
@ -662,7 +675,7 @@ checkHighScore_donePrintingPlayer anop
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
|
||||
|
||||
ldx #GAME_NUM_TILES_WIDE*18+2
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
@ -685,7 +698,7 @@ checkHighScore_donePrintingPlayer anop
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
|
||||
|
||||
ldx #GAME_NUM_TILES_WIDE*20+2
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
@ -708,7 +721,7 @@ checkHighScore_donePrintingPlayer anop
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
|
||||
|
||||
ldx #GAME_NUM_TILES_WIDE*18+20
|
||||
checkHighScore_nextKey anop
|
||||
jsl waitForKey
|
||||
@ -733,14 +746,14 @@ checkHighScore_skipToUpperCase anop
|
||||
blt checkHighScore_isInvalid
|
||||
cmp #'Z'+1
|
||||
bge checkHighScore_isInvalid
|
||||
|
||||
|
||||
checkHighScore_isValid anop
|
||||
cpx #GAME_NUM_TILES_WIDE*18+26
|
||||
bge checkHighScore_isInvalid
|
||||
sta settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_WHO_OFFSET,y
|
||||
iny
|
||||
jsl asciiToTileType
|
||||
jsr overwriteGameTile
|
||||
jsl overwriteGameTile
|
||||
_overwriteGameTile TILE_SOLID2
|
||||
dex
|
||||
dex
|
||||
@ -759,14 +772,14 @@ checkHighScore_backspace anop
|
||||
dex
|
||||
dex
|
||||
bra checkHighScore_nextKey
|
||||
|
||||
|
||||
checkHighScore_isEnter anop
|
||||
cpx #GAME_NUM_TILES_WIDE*18+26
|
||||
blt checkHighScore_isInvalid
|
||||
bra checkHighScore_doneInitials
|
||||
checkHighScore_isInvalid anop
|
||||
bra checkHighScore_nextKey
|
||||
|
||||
|
||||
checkHighScore_doneInitials anop
|
||||
lda settings+SETTINGS_HIGH_SCORE_OFFSET+HIGH_SCORE_WHO_OFFSET-3,y
|
||||
sta setHighScoreRequest+2
|
||||
@ -803,7 +816,7 @@ checkHighScore_retry anop
|
||||
jsl sendHighScore
|
||||
beq checkHighScore_retryPrompt
|
||||
brl checkHighScore_doneNetwork
|
||||
|
||||
|
||||
checkHighScore_retryPrompt anop
|
||||
ldx #GAME_NUM_TILES_WIDE*22+2
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
@ -827,7 +840,7 @@ checkHighScore_retryPrompt anop
|
||||
_overwriteGameTile TILE_LETTER_N
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
|
||||
|
||||
jsl waitForKey
|
||||
and #$df
|
||||
cmp #'N'
|
||||
@ -837,37 +850,34 @@ checkHighScore_retryPrompt anop
|
||||
brl checkHighScore_retry
|
||||
checkHighScore_doRetry anop
|
||||
brl checkHighScore_retryPrompt
|
||||
|
||||
|
||||
checkHighScore_doneNetwork anop
|
||||
jsl updateHighScore
|
||||
sec
|
||||
rtl
|
||||
|
||||
|
||||
|
||||
|
||||
uploadSpin1 entry
|
||||
ldx #GAME_NUM_TILES_WIDE*22+36
|
||||
_overwriteGameTile TILE_SOLID1
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
rtl
|
||||
|
||||
|
||||
|
||||
|
||||
uploadSpin2 entry
|
||||
ldx #GAME_NUM_TILES_WIDE*22+36
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_SOLID1
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
rtl
|
||||
|
||||
|
||||
|
||||
|
||||
uploadSpin3 entry
|
||||
ldx #GAME_NUM_TILES_WIDE*22+36
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_EMPTY
|
||||
_overwriteGameTile TILE_SOLID1
|
||||
rtl
|
||||
|
||||
|
||||
scoreIndex dc i2'0'
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
Loading…
Reference in New Issue
Block a user