From 24399a8a19932f940dc78f6f84e9681c9fce7bbb Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Fri, 8 Sep 2017 19:31:01 -0700 Subject: Label various WRAM addresses --- engine/high_scores_screen.asm | 24 +++++------ engine/pinball_game.asm | 8 ++-- .../ball_loss/ball_loss_diglett_bonus.asm | 2 +- .../ball_loss/ball_loss_gengar_bonus.asm | 2 +- .../ball_loss/ball_loss_meowth_bonus.asm | 2 +- .../ball_loss/ball_loss_mewtwo_bonus.asm | 2 +- .../ball_loss/ball_loss_seel_bonus.asm | 2 +- engine/pinball_game/end_of_ball_bonus.asm | 24 +++++------ .../load_stage_data/load_blue_field.asm | 2 +- .../load_stage_data/load_red_field.asm | 2 +- .../blue_stage_resolve_collision.asm | 4 +- .../red_stage_resolve_collision.asm | 4 +- engine/pinball_game/stage_init/init_stages.asm | 2 +- engine/pokedex.asm | 6 +-- engine/pokedex/variable_width_font_character.asm | 4 +- wram.asm | 50 ++++++++++++++-------- 16 files changed, 76 insertions(+), 64 deletions(-) diff --git a/engine/high_scores_screen.asm b/engine/high_scores_screen.asm index 3d867c6..048ac07 100644 --- a/engine/high_scores_screen.asm +++ b/engine/high_scores_screen.asm @@ -810,17 +810,17 @@ Func_d042: ; 0xd042 ld [wd8aa], a ld a, BANK(HighScoresTilemap) ld hl, HighScoresTilemap + $3c0 - ld de, wc280 + ld de, wSendHighScoresTopBarTilemap ld bc, $0040 call FarCopyData ld a, $0 hlCoord 0, 2, vBGMap - ld de, wc2c0 + ld de, wSendHighScoresTopBarTilemap + $40 ld bc, $01c0 call LoadVRAMData ld a, BANK(HighScoresTilemap) ld hl, HighScoresTilemap + $280 - ld de, wc480 + ld de, wSendHighScoresTopBarTilemap + $200 ld bc, $0040 call FarCopyData call Func_d6b6 @@ -836,17 +836,17 @@ Func_d042: ; 0xd042 .asm_d0a2 ld a, BANK(HighScoresTilemap2) ld hl, HighScoresTilemap2 + $3c0 - ld de, wc280 + ld de, wSendHighScoresTopBarTilemap ld bc, $0040 call FarCopyData ld a, $0 hlCoord 0, 2, vBGWin - ld de, wc2c0 + ld de, wSendHighScoresTopBarTilemap + $40 ld bc, $01c0 call LoadVRAMData ld a, BANK(HighScoresTilemap2) ld hl, HighScoresTilemap2 + $280 - ld de, wc480 + ld de, wSendHighScoresTopBarTilemap + $200 ld bc, $0040 call FarCopyData call Func_d6b6 @@ -883,7 +883,7 @@ Func_d0f5: ; 0xd0f5 ret Func_d107: ; 0xd107 - ld hl, wc280 + ld hl, wSendHighScoresTopBarTilemap ld a, $c0 ld b, $20 .clear @@ -892,7 +892,7 @@ rept 32 endr dec b jr nz, .clear - ld hl, wc280 + ld hl, wSendHighScoresTopBarTilemap ld b, $5 .loop ld c, $4 @@ -1721,11 +1721,11 @@ Func_d68a: ; 0xd68a ret nz ld hl, vBGMap add hl, bc - call Func_d6aa + call ShowDexCompletionCrown ld hl, vBGWin add hl, bc ; fall through -Func_d6aa: ; 0xd6aa +ShowDexCompletionCrown: ; 0xd6aa ld a, $56 call PutTileInVRAM inc hl @@ -1747,8 +1747,8 @@ Func_d6b6: ; 0xd6b6 ld a, c cp NUM_POKEMON ret nz - ld hl, wc289 - ld a, $56 + ld hl, wSendHighScoresTopBarTilemap + $9 + ld a, $56 ; a crown is shown when Dex is completed ld [hli], a ld a, $57 ld [hli], a diff --git a/engine/pinball_game.asm b/engine/pinball_game.asm index e85ed71..5ede0d6 100644 --- a/engine/pinball_game.asm +++ b/engine/pinball_game.asm @@ -258,9 +258,9 @@ GameScreenFunction_EndBall: ; 0xdab2 ld hl, rIE res 1, [hl] ld a, [wCurrentStage] - ld [wd4ad], a + ld [wCurrentStageBackup], a ld a, [wStageCollisionState] - ld [wd4b0], a + ld [wStageCollisionStateBackup], a ld a, [wNextStage] ld [wCurrentStage], a xor a @@ -284,9 +284,9 @@ GameScreenFunction_EndBall: ; 0xdab2 res 6, [hl] ld hl, rIE res 1, [hl] - ld a, [wd4ad] + ld a, [wCurrentStageBackup] ld [wCurrentStage], a - ld a, [wd4b0] + ld a, [wStageCollisionStateBackup] ld [wStageCollisionState], a ld a, $1 ld [wScreenState], a diff --git a/engine/pinball_game/ball_loss/ball_loss_diglett_bonus.asm b/engine/pinball_game/ball_loss/ball_loss_diglett_bonus.asm index 999ee09..7e2a57e 100644 --- a/engine/pinball_game/ball_loss/ball_loss_diglett_bonus.asm +++ b/engine/pinball_game/ball_loss/ball_loss_diglett_bonus.asm @@ -1,5 +1,5 @@ HandleBallLossDiglettBonus: ; 0xe056 - ld a, [wd4ad] + ld a, [wCurrentStageBackup] ld hl, wCurrentStage cp [hl] ret z diff --git a/engine/pinball_game/ball_loss/ball_loss_gengar_bonus.asm b/engine/pinball_game/ball_loss/ball_loss_gengar_bonus.asm index 5f8248f..6f16c3a 100644 --- a/engine/pinball_game/ball_loss/ball_loss_gengar_bonus.asm +++ b/engine/pinball_game/ball_loss/ball_loss_gengar_bonus.asm @@ -1,5 +1,5 @@ HandleBallLossGengarBonus: ; 0xdf1a - ld a, [wd4ad] + ld a, [wCurrentStageBackup] ld hl, wCurrentStage cp [hl] ret z diff --git a/engine/pinball_game/ball_loss/ball_loss_meowth_bonus.asm b/engine/pinball_game/ball_loss/ball_loss_meowth_bonus.asm index 6e9f994..de1e00f 100644 --- a/engine/pinball_game/ball_loss/ball_loss_meowth_bonus.asm +++ b/engine/pinball_game/ball_loss/ball_loss_meowth_bonus.asm @@ -22,7 +22,7 @@ HandleBallLossMeowthBonus: ; 0xdfe2 ld [wMeowthStageScore], a callba Func_24fa3 .asm_e00f - ld a, [wd4ad] + ld a, [wCurrentStageBackup] ld hl, wCurrentStage cp [hl] ret z diff --git a/engine/pinball_game/ball_loss/ball_loss_mewtwo_bonus.asm b/engine/pinball_game/ball_loss/ball_loss_mewtwo_bonus.asm index cf1a5a4..f556b33 100644 --- a/engine/pinball_game/ball_loss/ball_loss_mewtwo_bonus.asm +++ b/engine/pinball_game/ball_loss/ball_loss_mewtwo_bonus.asm @@ -1,5 +1,5 @@ HandleBallLossMewtwoBonus: ; 0xdf7e - ld a, [wd4ad] + ld a, [wCurrentStageBackup] ld hl, wCurrentStage cp [hl] ret z diff --git a/engine/pinball_game/ball_loss/ball_loss_seel_bonus.asm b/engine/pinball_game/ball_loss/ball_loss_seel_bonus.asm index 6fbce47..551aaf4 100644 --- a/engine/pinball_game/ball_loss/ball_loss_seel_bonus.asm +++ b/engine/pinball_game/ball_loss/ball_loss_seel_bonus.asm @@ -22,7 +22,7 @@ HandleBallLossSeelBonus: ; 0xe08b ld [wd793], a callba Func_262f4 .asm_e0b8 - ld a, [wd4ad] + ld a, [wCurrentStageBackup] ld hl, wCurrentStage cp [hl] ret z diff --git a/engine/pinball_game/end_of_ball_bonus.asm b/engine/pinball_game/end_of_ball_bonus.asm index 5d312ef..6e577c1 100644 --- a/engine/pinball_game/end_of_ball_bonus.asm +++ b/engine/pinball_game/end_of_ball_bonus.asm @@ -65,9 +65,9 @@ ShowBallBonusSummary: ; 0xf5a0 ld de, wBottomMessageText + $80 ld hl, SubtotalPointsText call PlaceTextAlphanumericOnly - ld hl, wd489 + ld hl, wEndOfBallBonusSubTotal call ClearBCD6Buffer - ld hl, wd48f + ld hl, wEndOfBallBonusTotalScore call ClearBCD6Buffer ld a, $1 ld [wd4ab], a @@ -189,7 +189,7 @@ Func_f676: ; 0xf676 .asm_f6c7 push de push hl - ld hl, wd48f + $5 + ld hl, wEndOfBallBonusTotalScore + $5 ld de, wBottomMessageText + $86 call Func_f8bd ld bc, $0040 @@ -214,8 +214,8 @@ Func_f676: ; 0xf676 jr z, .asm_f709 dec a ld [wCurBonusMultiplier], a - ld hl, wd48f - ld de, wd489 + ld hl, wEndOfBallBonusTotalScore + ld de, wEndOfBallBonusSubTotal call AddBigBCD6 jr .asm_f6c7 @@ -269,7 +269,7 @@ Func_f70d: ; 0xf70d ld [wd4ab], a .asm_f76c ld hl, wScore - ld de, wd48f + ld de, wEndOfBallBonusTotalScore call AddBigBCD6 ld hl, wScore + $5 ld de, wBottomMessageText + $66 @@ -430,13 +430,13 @@ Func_f83a: ; 0xf83a Func_f853: ; 0xf853 push hl - ld hl, wd483 + ld hl, wEndOfBallBonusCategoryScore call ClearBCD6Buffer pop hl .asm_f85b push de push hl - ld hl, wd483 + $5 + ld hl, wEndOfBallBonusCategoryScore + $5 ld de, wBottomMessageText + $46 call Func_f8bd ld bc, $0040 @@ -462,17 +462,17 @@ Func_f853: ; 0xf853 dec [hl] push de push hl - ld hl, wd483 + ld hl, wEndOfBallBonusCategoryScore call AddBigBCD6 pop hl pop de jr .asm_f85b .asm_f899 - ld hl, wd489 - ld de, wd483 + ld hl, wEndOfBallBonusSubTotal + ld de, wEndOfBallBonusCategoryScore call AddBigBCD6 - ld hl, wd489 + $5 + ld hl, wEndOfBallBonusSubTotal + $5 ld de, wBottomMessageText + $86 call Func_f8bd ld bc, $0040 diff --git a/engine/pinball_game/load_stage_data/load_blue_field.asm b/engine/pinball_game/load_stage_data/load_blue_field.asm index 9bbdb78..a2b8bc9 100644 --- a/engine/pinball_game/load_stage_data/load_blue_field.asm +++ b/engine/pinball_game/load_stage_data/load_blue_field.asm @@ -52,7 +52,7 @@ Func_1c1db: ; 0x1c1db Func_1c203: ; 0x1c203 ld a, $ff ld [wWhichAnimatedShellder], a - ld [wd4db], a + ld [wWhichBumperGfx], a ld a, [wBallXPos + 1] ld [wd4c5], a ld a, [wBallYPos + 1] diff --git a/engine/pinball_game/load_stage_data/load_red_field.asm b/engine/pinball_game/load_stage_data/load_red_field.asm index e146a91..5252602 100644 --- a/engine/pinball_game/load_stage_data/load_red_field.asm +++ b/engine/pinball_game/load_stage_data/load_red_field.asm @@ -68,7 +68,7 @@ LoadTimerGraphics: ; 0x1404a Func_14091: ; 0x14091 ld a, $ff ld [wWhichAnimatedVoltorb], a - ld [wd4db], a + ld [wWhichBumperGfx], a ld a, [wBallXPos + 1] ld [wd4c5], a ld a, [wBallYPos + 1] diff --git a/engine/pinball_game/object_collision/blue_stage_resolve_collision.asm b/engine/pinball_game/object_collision/blue_stage_resolve_collision.asm index d26f133..e336fd4 100644 --- a/engine/pinball_game/object_collision/blue_stage_resolve_collision.asm +++ b/engine/pinball_game/object_collision/blue_stage_resolve_collision.asm @@ -550,13 +550,13 @@ LightUpBumper_BlueField: ; 0x1ce60 ld [wBumperLightUpDuration], a ld a, [wWhichBumperId] sub $1 - ld [wd4db], a + ld [wWhichBumperGfx], a sla a inc a jr LoadBumperGraphics_BlueField LoadBumpersGraphics_BlueField: ; 1ce72 - ld a, [wd4db] + ld a, [wWhichBumperGfx] cp $ff ret z sla a diff --git a/engine/pinball_game/object_collision/red_stage_resolve_collision.asm b/engine/pinball_game/object_collision/red_stage_resolve_collision.asm index 2f706ed..93cc7a5 100644 --- a/engine/pinball_game/object_collision/red_stage_resolve_collision.asm +++ b/engine/pinball_game/object_collision/red_stage_resolve_collision.asm @@ -1651,13 +1651,13 @@ LightUpBumper_RedField: ; 0x15fa6 ld [wBumperLightUpDuration], a ld a, [wWhichBumperId] sub $6 - ld [wd4db], a + ld [wWhichBumperGfx], a sla a inc a jr LoadBumperGraphics_RedField LoadBumpersGraphics_RedField: ; 0x15fb8 - ld a, [wd4db] + ld a, [wWhichBumperGfx] cp $ff ret z sla a diff --git a/engine/pinball_game/stage_init/init_stages.asm b/engine/pinball_game/stage_init/init_stages.asm index 621a828..5b33538 100644 --- a/engine/pinball_game/stage_init/init_stages.asm +++ b/engine/pinball_game/stage_init/init_stages.asm @@ -61,7 +61,7 @@ ResetDataForStageInitialization: ; 0x8388 ld hl, wHighScoreId ld bc, $0039 call ClearData - ld hl, wd4ad + ld hl, wCurrentStageBackup ld bc, $034d call ClearData ret diff --git a/engine/pokedex.asm b/engine/pokedex.asm index d8eea4e..f3ad04a 100644 --- a/engine/pokedex.asm +++ b/engine/pokedex.asm @@ -992,7 +992,7 @@ Func_286dd: ; 0x286dd ld e, a ld a, [wd864] ld d, a - ld hl, wc010 + ld hl, wPokedexFontBuffer xor a ld bc, $00a0 call LoadOrCopyVRAMData @@ -2109,7 +2109,7 @@ Func_28d97: ; 0x28d97 jr z, .asm_28de9 dec b .asm_28de9 - ld hl, wc010 + ld hl, wPokedexFontBuffer add hl, bc ld a, [$ff8f] ld c, a @@ -2177,7 +2177,7 @@ Func_28e09: ; 0x28e09 jr z, .asm_28e53 dec b .asm_28e53 - ld hl, wc010 + ld hl, wPokedexFontBuffer add hl, bc ld a, [$ff8f] ld c, a diff --git a/engine/pokedex/variable_width_font_character.asm b/engine/pokedex/variable_width_font_character.asm index e85b234..f486019 100644 --- a/engine/pokedex/variable_width_font_character.asm +++ b/engine/pokedex/variable_width_font_character.asm @@ -51,7 +51,7 @@ LoadDexVWFCharacter_: ; 0x8d17 rl b sla c rl b - ld hl, wc010 + ld hl, wPokedexFontBuffer add hl, bc ld d, h ld e, l @@ -209,7 +209,7 @@ Func_8e01: ; 0x8e01 ld b, a sla c rl b - ld hl, wc010 + ld hl, wPokedexFontBuffer add hl, bc ld d, h ld e, l diff --git a/wram.asm b/wram.asm index 5c96d11..8e56299 100644 --- a/wram.asm +++ b/wram.asm @@ -10,8 +10,10 @@ SECTION "WRAM Bank 0", WRAM0 wc000:: ; 0xc000 ds $10 -wc010:: ; 0xc010 - ds $140 +wPokedexFontBuffer:: ; 0xc010 +; Buffer to build up the variable-width font used for various displayed text in the pokedex screen. +; This buffer is copied directly to VRAM tile data. There is room for 10 characters worth of the widest text character. + ds 10 * $20 wc150:: ; 0xc150 ds $68 @@ -19,19 +21,14 @@ wc150:: ; 0xc150 wc1b8:: ; 0xc1b8 ds $c8 -wc280:: ; 0xc280 - ds $9 - -wc289:: ; 0xc289 - ds $37 - -wc2c0:: ; 0xc2c0 - ds $140 +wSendHighScoresTopBarTilemap:: ; 0xc280 +; This is the tilemap data that is sent via infrared in the High Scores screen. +; It actually takes up $400 bytes of spaces, but there are other labels that use this space, too. + ds $180 wMonAnimatedCollisionMask:: ; 0xc400 ds $80 -wc480:: ; 0xc480 ds $40 wc4c0:: ; 0xc4c0 @@ -150,13 +147,19 @@ wCurBonusMultiplier:: ; 0xd482 ; railings. (left one first, then right one). See MAX_BONUS_MULTIPLIER ds $1 -wd483:: ; 0xd483 +wEndOfBallBonusCategoryScore:: ; 0xd483 +; The "Bonus" score for the currently-displayed category of bonus score. (e.g. bonus score for "Pokemon Caught" category) +; It is a 6-digit BCD value. ds $6 -wd489:: ; 0xd489 +wEndOfBallBonusSubTotal:: ; 0xd489 +; The running subtotal for the end-of-ball-bonus display. +; It is a 6-digit BCD value. ds $6 -wd48f:: ; 0xd48f +wEndOfBallBonusTotalScore:: ; 0xd48f +; The final score after the end-of-ball-bonus score is added to the player's previous score. +; It is a 6-digit BCD value. ds $6 wGoingToBonusStage:: ; 0xd495 @@ -239,10 +242,12 @@ wDrawBottomMessageBox:: ; 0xd4aa wd4ab:: ; 0xd4ab ds $1 -wCurrentStage:: ; 0xd4ac see constants/stage_constants.asm for list. bit 0 is 1 if the stage has flippers +wCurrentStage:: ; 0xd4ac +; see constants/stage_constants.asm for list. bit 0 is 1 if the stage has flippers ds $1 -wd4ad:: ; 0xd4ad +wCurrentStageBackup:: ; 0xd4ad +; Holds backup of current stage id when going to a Bonus Stage. See wCurrentStage. ds $1 wMoveToNextScreenState:: ; 0xd4ae @@ -252,8 +257,11 @@ wMoveToNextScreenState:: ; 0xd4ae wStageCollisionState:: ; 0xd4af ds $1 -wd4b0:: ; 0xd4b0 - ds $3 +wStageCollisionStateBackup:: ; 0xd4b0 +; Holds backup of stage collision state when going to a Bonus Stage. See wStageCollisionState. + ds $1 + + ds $2 wBallXPos:: ; 0xd4b3 ds $2 @@ -343,7 +351,11 @@ wBumperLightUpDuration:: ; 0xd4da ; This is shared by both bumpers, so only one can be lit up at a time. ds $1 -wd4db:: ; 0xd4db +wWhichBumperGfx:: ; 0xd4db +; Determines which bumper graphics will be loaded by LoadBumperGraphics_RedField and LoadBumperGraphics_BlueField +; $0 = left bumper +; $1 = right bumper +; $FF = neither bumper ds $1 wPinballLaunchCollision:: ; 0xd4dc -- cgit v1.2.3