Use labels instead of constants for HRAM

Use explicit ldh instruction to access HRAM locations, don't rely on optimizing ld
This commit is contained in:
Raymond Dodge 2024-01-05 19:24:13 -05:00 committed by Marcus Huderle
parent dcfffa5200
commit d1f4c7fab7
50 changed files with 687 additions and 663 deletions

View File

@ -5,3 +5,9 @@ INCLUDE "contents/wram.link"
SRAM 0
org $a000
"SRAM 0"
HRAM
org $FF80
"HRAM"
org $FFF8
"HRAM.2"

View File

@ -8,15 +8,15 @@ CopyrightScreenFunctions: ; 0x8222
FadeInCopyrightScreen: ; 0x8228
ld a, $41
ld [hLCDC], a
ldh [hLCDC], a
ld a, $e4
ld [wBGP], a
xor a
ld [wOBP0], a
ld [wOBP1], a
ld [hSCX], a
ld [hSCY], a
ld a, [hGameBoyColorFlag]
ldh [hSCX], a
ldh [hSCY], a
ldh a, [hGameBoyColorFlag]
ld hl, CopyrightTextGfxPointers
call LoadVideoData
call ClearSpriteBuffer
@ -55,7 +55,7 @@ DisplayCopyrightScreen: ; 0x8290
ld a, b
cp $2d ; player can press A button to skip copyright screen once counter is below $2d
jr nc, .decrementCounter
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
bit BIT_A_BUTTON, a
jr nz, .done
.decrementCounter

View File

@ -7,7 +7,7 @@ EraseAllDataMenuFunctions: ; 0x8161
dw ExitEraseAllDataMenu
CheckForResetButtonCombo: ; 0x8167
ld a, [hJoypadState]
ldh a, [hJoypadState]
cp (D_UP | D_RIGHT | START | SELECT)
jr z, .heldCorrectButtons
ld hl, wCurrentScreen
@ -16,15 +16,15 @@ CheckForResetButtonCombo: ; 0x8167
.heldCorrectButtons
ld a, $41
ld [hLCDC], a
ldh [hLCDC], a
ld a, $e4
ld [wBGP], a
xor a
ld [wOBP0], a
ld [wOBP1], a
ld [hSCX], a
ld [hSCY], a
ld a, [hGameBoyColorFlag]
ldh [hSCX], a
ldh [hSCY], a
ldh a, [hGameBoyColorFlag]
ld hl, EraseAllDataGfxPointers
call LoadVideoData
call ClearSpriteBuffer
@ -53,7 +53,7 @@ EraseAllDataGfx_GameBoyColor: ; 0x81b6
db $FF, $FF ; terminators
HandleEraseAllDataInput: ; 0x81d4
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
bit BIT_A_BUTTON, a
jr z, .checkForBButton
ld hl, $a000

View File

@ -8,17 +8,17 @@ FieldSelectScreenFunctions: ; 0xd6d7
LoadFieldSelectScreen: ; 0xd6dd
ld a, $43
ld [hLCDC], a
ldh [hLCDC], a
ld a, $e4
ld [wBGP], a
ld a, $d2
ld [wOBP0], a
ld [wOBP1], a
xor a
ld [hSCX], a
ld [hSCY], a
ldh [hSCX], a
ldh [hSCY], a
ld hl, FieldSelectGfxPointers
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
call LoadVideoData
call ClearSpriteBuffer
ld a, $8
@ -54,7 +54,7 @@ ChooseFieldToPlay: ; 0xd74e
call MoveFieldSelectCursor
ld hl, FieldSelectBorderAnimationData
call AnimateBlinkingFieldSelectBorder
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
and (A_BUTTON | B_BUTTON)
ret z
ld [wFieldSelectPressedButton], a
@ -79,7 +79,7 @@ ExitFieldSelectScreen: ; 0xd774
ld [wFieldSelectBlinkingBorderTimer], a
ret nz
.didntPressA
ld a, [hJoypadState]
ldh a, [hJoypadState]
push af
call FadeOut
call DisableLCD
@ -125,7 +125,7 @@ MoveFieldSelectCursor: ; 0xd7d3
; When the player presses Right or Left, the stage is
; illuminated with a blinking border. This function keeps tracks
; of which field is currently selected.
ld a, [hPressedButtons]
ldh a, [hPressedButtons]
ld b, a
ld a, [wSelectedFieldIndex]
bit BIT_D_LEFT, b

View File

@ -98,30 +98,30 @@ Func_ca8f: ; 0xca8f
Func_cb14: ; 0xcb14
ld a, $43
ld [hLCDC], a
ldh [hLCDC], a
ld a, $e0
ld [wBGP], a
ld a, $e1
ld [wOBP0], a
ld [wOBP1], a
xor a
ld [hSCX], a
ld [hNextFrameHBlankSCX], a
ld [hSCY], a
ld [hNextFrameHBlankSCY], a
ldh [hSCX], a
ldh [hNextFrameHBlankSCX], a
ldh [hSCY], a
ldh [hNextFrameHBlankSCY], a
ld a, $e
ld [hLYC], a
ld [hLastLYC], a
ldh [hLYC], a
ldh [hLastLYC], a
ld a, $82
ld [hNextLYCSub], a
ld [hLYCSub], a
ldh [hNextLYCSub], a
ldh [hLYCSub], a
ld hl, hSTAT
set 6, [hl]
ld hl, rIE
set 1, [hl]
ld a, $3
ld [hStatIntrRoutine], a
ld a, [hGameBoyColorFlag]
ldh [hStatIntrRoutine], a
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_cb51
ld a, [wHighScoresStage]
@ -277,7 +277,7 @@ Func_ccac: ; 0xccac
Func_ccb6: ; 0xccb6
call Func_d4cf
call AnimateHighScoresArrow
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
bit BIT_A_BUTTON, a
jr z, .asm_ccd1
lb de, $00, $01
@ -303,7 +303,7 @@ Func_ccb6: ; 0xccb6
bit 3, a
jr z, .asm_ccfb
call Func_1a43
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
ld [wd8f0], a
lb de, $00, $01
call PlaySoundEffect
@ -312,10 +312,10 @@ Func_ccb6: ; 0xccb6
ret
.asm_ccfb
ld a, [hJoypadState]
ldh a, [hJoypadState]
cp (SELECT | D_UP)
ret nz
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
and (SELECT | D_UP)
ret z
lb de, $00, $01
@ -326,7 +326,7 @@ Func_ccb6: ; 0xccb6
call LoadSpriteData
.waitForDeleteScoresConfirmation
rst AdvanceFrame
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
bit BIT_B_BUTTON, a
jr z, .asm_cd24
lb de, $00, $01
@ -362,12 +362,12 @@ Func_ccb6: ; 0xccb6
ret
Func_cd6c: ; 0xcd6c
ld a, [hFrameCounter]
ldh a, [hFrameCounter]
and $1f
call z, Func_1a43
call Func_cf7d
call Func_cfa6
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
bit BIT_A_BUTTON, a
jr z, .asm_cdbb
lb de, $00, $01
@ -399,7 +399,7 @@ Func_cd6c: ; 0xcd6c
pop af
jr nc, .asm_cdc6
.asm_cdbb
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
bit BIT_B_BUTTON, a
ret z
lb de, $00, $01
@ -569,14 +569,14 @@ SendHighScores: ; 0xced1
.attemptToSendHighScoresLoop
push bc
xor a
ld [hNumFramesSinceLastVBlank], a
ldh [hNumFramesSinceLastVBlank], a
.asm_cefa
ld b, $2
ld c, $56
ld a, [$ff00+c]
and b
jr z, .asm_cf09
ld a, [hNumFramesSinceLastVBlank]
ldh a, [hNumFramesSinceLastVBlank]
and a
jr z, .asm_cefa
jr .asm_cf0e
@ -637,7 +637,7 @@ Func_cf58: ; 0xcf58
call LoadSpriteData
.asm_cf6f
rst AdvanceFrame
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
bit BIT_A_BUTTON, a
jr z, .asm_cf6f
lb de, $00, $01
@ -791,7 +791,7 @@ Func_d035: ; 0xd035
ret
Func_d042: ; 0xd042
ld a, [hJoypadState]
ldh a, [hJoypadState]
ld [wda86], a
ld b, a
ld a, $80
@ -956,7 +956,7 @@ ExitHighScoresScreen: ; 0xd171
ret
Func_d18b: ; 0xd18b
ld a, [hPressedButtons]
ldh a, [hPressedButtons]
ld b, a
ld a, [wHighScoreNameRow]
ld e, a
@ -1001,7 +1001,7 @@ Func_d18b: ; 0xd18b
ret
Func_d1d2: ; 0xd1d2
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
ld b, a
ld a, [wHighScoreNameColumn]
bit BIT_A_BUTTON, b
@ -1040,7 +1040,7 @@ Func_d211: ; 0xd211
ld a, [wHighScoreIsEnteringName]
and a
ret z
ld a, [hJoypadState]
ldh a, [hJoypadState]
and (D_RIGHT | D_LEFT)
jr z, .asm_d221
; current name entry character changed; hide asterisk to show new letter
@ -1463,7 +1463,7 @@ Func_d46f: ; 0xd46f
ret
Func_d4cf: ; 0xd4cf
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
ld b, a
ld a, [wHighScoresStage]
bit 4, b
@ -1487,11 +1487,11 @@ Func_d4cf: ; 0xd4cf
call ClearSpriteBuffer
call Func_d57b
ld a, $a5
ld [hWX], a
ldh [hWX], a
xor a
ld [hWY], a
ldh [hWY], a
ld a, $2
ld [hSCX], a
ldh [hSCX], a
ld hl, hLCDC
set 5, [hl]
ld b, $27
@ -1516,7 +1516,7 @@ Func_d4cf: ; 0xd4cf
dec b
jr nz, .asm_d508
xor a
ld [hSCX], a
ldh [hSCX], a
ld hl, hLCDC
res 5, [hl]
set 3, [hl]
@ -1529,11 +1529,11 @@ Func_d4cf: ; 0xd4cf
call ClearSpriteBuffer
call Func_d57b
ld a, $7
ld [hWX], a
ldh [hWX], a
xor a
ld [hWY], a
ldh [hWY], a
ld a, $a0
ld [hSCX], a
ldh [hSCX], a
ld hl, hLCDC
set 5, [hl]
res 3, [hl]
@ -1558,7 +1558,7 @@ Func_d4cf: ; 0xd4cf
dec b
jr nz, .asm_d551
xor a
ld [hSCX], a
ldh [hSCX], a
ld hl, hLCDC
res 5, [hl]
xor a
@ -1568,11 +1568,11 @@ Func_d4cf: ; 0xd4cf
Func_d57b: ; 0xd57b
ld a, $f0
ld [hSCY], a
ldh [hSCY], a
xor a
ld [hNextFrameHBlankSCX], a
ldh [hNextFrameHBlankSCX], a
ld a, $10
ld [hNextFrameHBlankSCY], a
ldh [hNextFrameHBlankSCY], a
rst AdvanceFrame
ld a, BANK(HighScoresTilemap)
ld hl, HighScoresTilemap
@ -1642,16 +1642,16 @@ Func_d5d0: ; 0xd5d0
ld bc, $0009
call Func_d68a
xor a
ld [hSCY], a
ld [hNextFrameHBlankSCX], a
ld [hNextFrameHBlankSCY], a
ldh [hSCY], a
ldh [hNextFrameHBlankSCX], a
ldh [hNextFrameHBlankSCY], a
ret
TransitionHighScoresPalettes: ; 0xd626
; When switching between the Red and Blue field high scores, the palettes
; of the rows smoothly transition between red and blue.
ld c, a
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
ret z
ld a, c

View File

@ -11,17 +11,17 @@ OptionsScreenFunctions: ; 0xc34e
Func_c35a: ; 0xc35a
ld a, $47
ld [hLCDC], a
ldh [hLCDC], a
ld a, $e4
ld [wBGP], a
ld [wOBP0], a
ld a, $d2
ld [wOBP1], a
xor a
ld [hSCX], a
ld [hSCY], a
ldh [hSCX], a
ldh [hSCY], a
ld hl, OptionsScreenVideoDataPointers
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
call LoadVideoData
call ClearSpriteBuffer
ld a, $2
@ -71,7 +71,7 @@ Func_c400: ; 0xc400
call Func_c41a
call Func_c43a
call Func_c447
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
bit 1, a
ret z
lb de, $00, $01
@ -81,7 +81,7 @@ Func_c400: ; 0xc400
ret
Func_c41a: ; 0xc41a
ld a, [hPressedButtons]
ldh a, [hPressedButtons]
ld b, a
ld a, [wd916]
bit 6, b
@ -111,7 +111,7 @@ Func_c43a: ; 0xc43a
ret
Func_c447: ; 0xc447
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
bit BIT_A_BUTTON, a
ret z
lb de, $00, $01
@ -119,7 +119,7 @@ Func_c447: ; 0xc447
ld a, [wd916]
and a
jr nz, .asm_c465
ld a, [hSGBFlag]
ldh a, [hSGBFlag]
and a
ret nz
call Func_c4f4
@ -157,7 +157,7 @@ Func_c493: ; 0xc493
call Func_c4b4
call Func_c4e6
call Func_c869
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
bit BIT_B_BUTTON, a
ret z
lb de, $00, $01
@ -170,7 +170,7 @@ Func_c493: ; 0xc493
ret
Func_c4b4: ; 0xc4b4
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
ld b, a
ld a, [wd917]
bit BIT_D_LEFT, b
@ -220,7 +220,7 @@ Func_c506: ; 0xc506
call Func_c534
call Func_c554
call Func_c55a
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
bit BIT_B_BUTTON, a
ret z
lb de, $00, $01
@ -237,7 +237,7 @@ Func_c506: ; 0xc506
ret
Func_c534: ; 0xc534
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
ld b, a
ld a, [wd918]
bit BIT_D_UP, b
@ -268,7 +268,7 @@ Func_c55a: ; 0xc55a
ld a, [wd918]
and a
jr nz, .asm_c572
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
bit BIT_A_BUTTON, a
ret z
lb de, $00, $01
@ -278,7 +278,7 @@ Func_c55a: ; 0xc55a
ret
.asm_c572
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
bit BIT_A_BUTTON, a
ret z
lb de, $00, $01
@ -312,7 +312,7 @@ Func_c55a: ; 0xc55a
rst AdvanceFrame
pop hl
pop bc
ld a, [hJoypadState]
ldh a, [hJoypadState]
and a
jr z, .asm_c5c2
ld c, $0
@ -357,7 +357,7 @@ Func_c55a: ; 0xc55a
pop bc
dec d
ret z
ld a, [hJoypadState]
ldh a, [hJoypadState]
and a
jr z, .asm_c613
ld d, $ff
@ -386,7 +386,7 @@ Func_c621: ; 0xc621
ld c, a
ld a, [hl]
ld b, a
ld a, [hFrameCounter]
ldh a, [hFrameCounter]
bit 2, a
ret z
ld a, SPRITE_OPTIONS_SOLID_WHITE
@ -453,7 +453,7 @@ Func_c691: ; 0xc91
call Func_c6bf
call Func_c6d9
call Func_c6e8
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
bit BIT_B_BUTTON, a
ret z
ld de, MUSIC_NOTHING
@ -472,7 +472,7 @@ Func_c691: ; 0xc91
ret
Func_c6bf: ; 0xc6bf
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
ld b, a
ld a, [wd919]
bit BIT_D_UP, b
@ -504,7 +504,7 @@ Func_c6e8: ; 0xc6e8
ld a, [wd919]
and a
jr nz, UpdateSoundTestSoundEffectSelection
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
bit BIT_A_BUTTON, a
jr z, UpdateSoundTestBackgroundMusicSelection
ld de, MUSIC_NOTHING
@ -527,7 +527,7 @@ Func_c6e8: ; 0xc6e8
ret
UpdateSoundTestBackgroundMusicSelection: ; 0xc715
ld a, [hPressedButtons] ; joypad state
ldh a, [hPressedButtons] ; joypad state
ld b, a
ld a, [wSoundTestCurrentBackgroundMusic]
bit BIT_D_LEFT, b ; was the left dpad button pressed?
@ -551,7 +551,7 @@ UpdateSoundTestBackgroundMusicSelection: ; 0xc715
jp RedrawSoundTestID
UpdateSoundTestSoundEffectSelection: ; 0xc73a
ld a, [hNewlyPressedButtons] ; joypad state
ldh a, [hNewlyPressedButtons] ; joypad state
bit BIT_A_BUTTON, a
jr z, .didntPressAButton
ld a, [wSoundTextCurrentSoundEffect]
@ -561,7 +561,7 @@ UpdateSoundTestSoundEffectSelection: ; 0xc73a
ret
.didntPressAButton
ld a, [hPressedButtons] ; joypad state
ldh a, [hPressedButtons] ; joypad state
ld b, a
ld a, [wSoundTextCurrentSoundEffect]
bit BIT_D_LEFT, b ; was the left dpad button pressed?

View File

@ -22,7 +22,7 @@ GameScreenFunction_LoadGFX: ; 0xd861
GameScreenFunction_StartBall: ; 0xd87f
ld a, $67
ld [hLCDC], a
ldh [hLCDC], a
ld a, $e4
ld [wBGP], a
ld a, $e1
@ -30,22 +30,22 @@ GameScreenFunction_StartBall: ; 0xd87f
ld a, $e4
ld [wOBP1], a
ld a, [wSCX]
ld [hSCX], a
ldh [hSCX], a
xor a
ld [hSCY], a
ldh [hSCY], a
ld a, $7
ld [hWX], a
ldh [hWX], a
ld a, $83
ld [hLYC], a
ld [hLastLYC], a
ldh [hLYC], a
ldh [hLastLYC], a
ld a, $ff
ld [hLCDCMask], a
ldh [hLCDCMask], a
ld hl, hSTAT
set 6, [hl]
ld hl, rIE
set 1, [hl]
ld a, $1
ld [hStatIntrRoutine], a
ldh [hStatIntrRoutine], a
callba InitBallForStage
callba LoadStageCollisionAttributes
callba LoadStageData
@ -177,9 +177,9 @@ INCLUDE "engine/pinball_game/save_game.asm"
GameScreenFunction_HandleBallLoss: ; 0xda36
xor a
ld [hJoypadState], a
ld [hNewlyPressedButtons], a
ld [hPressedButtons], a
ldh [hJoypadState], a
ldh [hNewlyPressedButtons], a
ldh [hPressedButtons], a
ld [wFlipperCollision], a
ld [wCollisionForceAmplification], a
xor a

View File

@ -51,7 +51,7 @@ LoadBillboardOffPicture: ; 0xf196
INCLUDE "data/billboard/billboard_pic_pointers.asm"
LoadGreyBillboardPaletteData: ; 0xf269
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .loadPaletteMap
ld a, BANK(StageRedFieldBottomBGPalette5) ; also used in blue stage

View File

@ -14,7 +14,7 @@ LoadBillboardTileData: ; 0x30256
ld a, Bank(BillboardTileDataPointers)
call QueueGraphicsToLoad
pop bc
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
ret z
ld hl, BillboardPaletteDataPointers

View File

@ -245,7 +245,7 @@ Func_10184: ; 0x10184 called by what looks like the "hit voltorb and shellder" h
jr z, .NextLoop
ld b, a ;else store in b
call nz, Func_101d9
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .NextLoop ;skip if DMG
ld a, [wCurrentStage]
@ -1264,7 +1264,7 @@ Func_10871: ; 0x10871
.asm_108d3
callba ClearAllRedIndicators
callba Func_10184
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
callba nz, Func_102bc
ret
@ -1392,7 +1392,7 @@ Func_1098c: ; 0x1098c
ret z
callba Func_1c2cb
callba Func_10184
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
callba nz, Func_102bc
ret

View File

@ -57,7 +57,7 @@ Func_2032c: ; 0x2032c
jr nz, .asm_20362
callba Func_10414
callba Func_10362
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
callba nz, Func_10301
.asm_20333

View File

@ -55,7 +55,7 @@ Func_2006b: ; 0x2006b
jr nz, .asm_200a1
callba Func_10414
callba Func_10362
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
callba nz, Func_10301
.asm_20098

View File

@ -35,12 +35,12 @@ DrawShellderSprites: ; 0x1f395
; fall through
DrawShellderSprite: ; 0x1f3ad
ld a, [hSCX]
ldh a, [hSCX]
ld b, a
ld a, [hli]
sub b
ld b, a
ld a, [hSCY]
ldh a, [hSCY]
ld c, a
ld a, [hli]
sub c
@ -152,9 +152,9 @@ CloysterSpriteIds:
db SPRITE_CLOYSTER_2
DrawPikachuSavers_BlueStage: ; 0x1f448
ld a, [hSCX]
ldh a, [hSCX]
ld d, a
ld a, [hSCY]
ldh a, [hSCY]
ld e, a
ld a, [wPikachuSaverSlotRewardActive]
and a
@ -163,7 +163,7 @@ DrawPikachuSavers_BlueStage: ; 0x1f448
ld a, [wd51c]
and a
jr nz, .asm_1f469
ld a, [hFrameCounter]
ldh a, [hFrameCounter]
srl a
srl a
srl a
@ -201,7 +201,7 @@ DrawEvolutionIndicatorArrows_BlueFieldTop: ; 0x1f48f
ld a, [wEvolutionObjectsDisabled]
and a
ret nz
ld a, [hFrameCounter]
ldh a, [hFrameCounter]
bit 4, a
ret z
ld de, wIndicatorStates + 5
@ -213,7 +213,7 @@ DrawEvolutionIndicatorArrows_BlueFieldBottom: ; 0x1f4a3
ld a, [wEvolutionObjectsDisabled]
and a
ret nz
ld a, [hFrameCounter]
ldh a, [hFrameCounter]
bit 4, a
ret z
ld de, wIndicatorStates + 11
@ -221,12 +221,12 @@ DrawEvolutionIndicatorArrows_BlueFieldBottom: ; 0x1f4a3
ld b, $8
DrawEvolutionIndicatorArrows_BlueField:
push bc
ld a, [hSCX]
ldh a, [hSCX]
ld b, a
ld a, [hli]
sub b
ld b, a
ld a, [hSCY]
ldh a, [hSCY]
ld c, a
ld a, [hli]
sub c
@ -313,17 +313,17 @@ DrawEvolutionTrinket_BlueField: ; 0x1f518
add c
cp c
push af
ld a, [hSCX]
ldh a, [hSCX]
ld b, a
ld a, [hli]
sub b
ld b, a
ld a, [hSCY]
ldh a, [hSCY]
ld c, a
ld a, [hli]
sub c
ld c, a
ld a, [hFrameCounter]
ldh a, [hFrameCounter]
and $e
jr nz, .asm_1f530
dec c

View File

@ -12,7 +12,7 @@ Debug_CycleGengarBonusPhase:
; Leftover debugging function for quickly cycling through
; the three phases of the Gengar Bonus stage. Pressing UP
; will instantly skip to the next phase.
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
bit BIT_D_UP, a
ret z
ld a, [wGastly1Enabled]

View File

@ -26,13 +26,13 @@ DrawPinball: ; 0x17e81
and SPRITE_BALL_SPIN_COUNT - 1
add SPRITE_BALL_SPIN
call LoadSpriteData
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
ret nz
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
ret nz
ld a, [hSGBFlag]
ldh a, [hSGBFlag]
and a
ret nz
ld a, [wd4c5]

View File

@ -127,12 +127,12 @@ DrawVoltorbSprite: ; 0x17cdc
.drawVoltorb
pop hl
inc de
ld a, [hSCX]
ldh a, [hSCX]
ld b, a
ld a, [hli]
sub b
ld b, a
ld a, [hSCY]
ldh a, [hSCY]
ld c, a
ld a, [hli]
sub c
@ -228,7 +228,7 @@ BellsproutHeadAnimationSpriteIds: ; 0x17d76
db SPRITE_BELLSPROUT_HEAD_3
DrawBellsproutBody: ; 0x17d7a
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
ret z
ld a, $67
@ -244,7 +244,7 @@ DrawBellsproutBody: ; 0x17d7a
ret
DrawStaryu: ; 0x17d92
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
ret z
ld hl, StaryuAnimation
@ -327,9 +327,9 @@ SpinnerSpriteIds_RedField: ; 0x17e02
db SPRITE_RED_FIELD_SPINNER_5
DrawPikachuSavers_RedStage: ; 0x17e08
ld a, [hSCX]
ldh a, [hSCX]
ld d, a
ld a, [hSCY]
ldh a, [hSCY]
ld e, a
ld a, [wPikachuSaverSlotRewardActive]
and a
@ -338,7 +338,7 @@ DrawPikachuSavers_RedStage: ; 0x17e08
ld a, [wd51c]
and a
jr nz, .asm_17e29
ld a, [hFrameCounter]
ldh a, [hFrameCounter]
srl a
srl a
srl a
@ -383,9 +383,9 @@ UnusedData_7e55: ; 0x17e55
Func_17e5e: ; 0x17e5e
; unused
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
ld e, a
ld a, [hSCX]
ldh a, [hSCX]
ld d, a
.asm_17e64
ld a, [hli]
@ -401,7 +401,7 @@ Func_17e5e: ; 0x17e5e
ld a, [hli]
sub d
ld b, a
ld a, [hSCY]
ldh a, [hSCY]
ld c, a
ld a, [hli]
sub c
@ -417,7 +417,7 @@ DrawEvolutionIndicatorArrows_RedFieldTop: ; 0x17efb
ld a, [wEvolutionObjectsDisabled]
and a
ret nz
ld a, [hFrameCounter]
ldh a, [hFrameCounter]
bit 4, a
ret z
ld de, wIndicatorStates + 5
@ -429,7 +429,7 @@ DrawEvolutionIndicatorArrows_RedFieldBottom: ; 0x17f0f
ld a, [wEvolutionObjectsDisabled]
and a
ret nz
ld a, [hFrameCounter]
ldh a, [hFrameCounter]
bit 4, a
ret z
ld de, wIndicatorStates + 11
@ -437,12 +437,12 @@ DrawEvolutionIndicatorArrows_RedFieldBottom: ; 0x17f0f
ld b, $8
DrawEvolutionIndicatorArrows_RedField: ; 0x17f21
push bc
ld a, [hSCX]
ldh a, [hSCX]
ld b, a
ld a, [hli]
sub b
ld b, a
ld a, [hSCY]
ldh a, [hSCY]
ld c, a
ld a, [hli]
sub c
@ -525,17 +525,17 @@ DrawEvolutionTrinket_RedField: ; 0x17f84
add c
cp c
push af
ld a, [hSCX]
ldh a, [hSCX]
ld b, a
ld a, [hli]
sub b
ld b, a
ld a, [hSCY]
ldh a, [hSCY]
ld c, a
ld a, [hli]
sub c
ld c, a
ld a, [hFrameCounter]
ldh a, [hFrameCounter]
and $e
jr nz, .asm_17f9c
dec c

View File

@ -22,7 +22,7 @@ CallTable_84bd: ; 0x84bd
UnusedFunc_84fd:
; unused
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .not_cgb
ld a, $1

View File

@ -2,7 +2,7 @@ DrawTimer: ; 0x175a4
ld a, [wTimerActive]
and a
ret z
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr nz, DrawTimer_GameBoyColor
ld a, [wd580]

View File

@ -3,24 +3,24 @@ EndOfBallBonus: ; 0xf533
call LoadEAcuteCharacterGfx
call Func_f57f
ld a, $60
ld [hWY], a
ldh [hWY], a
dec a
ld [hLYC], a
ldh [hLYC], a
ld a, $fd
ld [hLCDCMask], a
ldh [hLCDCMask], a
call ShowBallBonusSummary
ld a, $90
ld [hWY], a
ldh [hWY], a
ld a, $83
ld [hLYC], a
ld [hLastLYC], a
ldh [hLYC], a
ldh [hLastLYC], a
ld a, $ff
ld [hLCDCMask], a
ldh [hLCDCMask], a
call FillBottomMessageBufferWithBlackTile
ret
LoadEAcuteCharacterGfx: ; 0xf55c
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr nz, .gameboyColor
ld a, BANK(E_Acute_CharacterGfx)
@ -96,7 +96,7 @@ ShowBallBonusSummary: ; 0xf5a0
call Func_f80d
.waitForAPress
rst AdvanceFrame
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
bit BIT_A_BUTTON, a
jr z, .waitForAPress
ret
@ -165,7 +165,7 @@ Func_f676: ; 0xf676
and a
jr z, .asm_f69f
rst AdvanceFrame
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
bit BIT_A_BUTTON, a
jr z, .asm_f69f
xor a
@ -201,7 +201,7 @@ Func_f676: ; 0xf676
and a
jr z, .asm_f6f2
rst AdvanceFrame
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
bit BIT_A_BUTTON, a
jr z, .asm_f6f2
xor a
@ -238,7 +238,7 @@ Func_f70d: ; 0xf70d
and a
jr z, .asm_f736
rst AdvanceFrame
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
bit BIT_A_BUTTON, a
jr z, .asm_f736
xor a
@ -262,7 +262,7 @@ Func_f70d: ; 0xf70d
and a
jr z, .asm_f76c
rst AdvanceFrame
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
bit BIT_A_BUTTON, a
jr z, .asm_f76c
xor a
@ -416,7 +416,7 @@ Func_f83a: ; 0xf83a
push bc
rst AdvanceFrame
pop bc
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
bit BIT_A_BUTTON, a
jr nz, .asm_f84e
dec b
@ -448,7 +448,7 @@ Func_f853: ; 0xf853
and a
jr z, .asm_f886
rst AdvanceFrame
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
bit BIT_A_BUTTON, a
jr z, .asm_f886
xor a

View File

@ -272,7 +272,7 @@ UpdateEvolutionSelectionList: ; 0x10c38
ld hl, wPartyMons
add hl, bc
call LoadMonNamesIntoEvolutionSelectionList
ld a, [hJoypadState]
ldh a, [hJoypadState]
and a
ld a, [wPartySelectionCursorCounter]
jr z, .asm_10c62
@ -330,20 +330,20 @@ SelectPokemonToEvolve: ; 0x10cb7
call FillBottomMessageBufferWithBlackTile
call InitEvolutionSelectionMenu
ld a, $60
ld [hWY], a
ldh [hWY], a
dec a
ld [hLYC], a
ldh [hLYC], a
ld a, $fd
ld [hLCDCMask], a
ldh [hLCDCMask], a
call SelectPokemonToEvolveMenu
ld a, $86
ld [hWY], a
ldh [hWY], a
ld a, $83
ld [hLYC], a
ld [hLastLYC], a
ldh [hLYC], a
ldh [hLastLYC], a
ld a, $ff
ld [hLCDCMask], a
ld a, [hGameBoyColorFlag]
ldh [hLCDCMask], a
ldh a, [hGameBoyColorFlag]
and a
jr nz, .gameboyColor
ld a, BANK(StageRedFieldTopStatusBarSymbolsGfx_GameBoy)
@ -655,7 +655,7 @@ StartEvolutionMode_RedField: ; 0x10ebb
call LoadOrCopyVRAMData
callba ClearAllRedIndicators
callba Func_10184
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
callba nz, Func_102bc
ret
@ -710,7 +710,7 @@ ConcludeEvolutionMode_RedField: ; 0x10fe3
ld de, vTilesOB tile $20
ld bc, $00e0
call LoadVRAMData
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_11036
ld a, BANK(StageRedFieldBottomOBJPalette7)
@ -791,7 +791,7 @@ StartEvolutionMode_BlueField: ; 0x11061
call LoadOrCopyVRAMData
callba Func_1c2cb
callba Func_10184
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
callba nz, Func_102bc
ret
@ -847,7 +847,7 @@ ConcludeEvolutionMode_BlueField: ; 0x11195
ld de, vTilesOB tile $20
ld bc, $00e0
call LoadVRAMData
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_111f0
ld a, BANK(StageBlueFieldBottomOBJPalette7)

View File

@ -74,7 +74,7 @@ HandleEvolutionMode_BlueField: ; 0x20c08
ld de, YeahYouGotItText
ld hl, wScrollingText1
call LoadScrollingText
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_20c74
ld a, BANK(StageBlueFieldBottomOBJPalette6)
@ -160,7 +160,7 @@ ProgressEvolution: ; 0x20c76
ld de, vTilesOB tile $20
ld bc, $00e0
call LoadVRAMData
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_20d25
ld a, BANK(StageBlueFieldBottomOBJPalette7)
@ -471,7 +471,7 @@ CreateEvolutionTrinket_BlueField: ; 0x20f75
ld a, [wCurrentStage]
bit 0, a
callba nz, Func_1c2cb
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_20fc3
ld a, BANK(EvolutionTrinketPalettes)
@ -617,7 +617,7 @@ RecoverPokemon_BlueField:
ld a, [wCurrentStage]
bit 0, a
callba nz, Func_1c2cb
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_21102
ld a, BANK(StageBlueFieldBottomOBJPalette6)
@ -682,7 +682,7 @@ HandleSlotCaveCollision_EvolutionMode_BlueField: ; 0x2112a
ld bc, $0180
call LoadOrCopyVRAMData
pop bc
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_211a8
push bc

View File

@ -77,7 +77,7 @@ HandleEvolutionMode_RedField: ; 0x205e0
ld de, YeahYouGotItText
ld hl, wScrollingText1
call LoadScrollingText
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_2064f
ld a, BANK(StageRedFieldBottomOBJPalette6)
@ -163,7 +163,7 @@ Func_20651: ; 0x20651
ld de, vTilesOB tile $20
ld bc, $00e0
call LoadVRAMData
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_20700
ld a, BANK(StageRedFieldBottomOBJPalette7)
@ -493,7 +493,7 @@ CreateEvolutionTrinket_RedField: ; 0x20977
ld a, [wCurrentStage]
bit 0, a
callba nz, ClearAllRedIndicators
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_209bf
ld a, BANK(EvolutionTrinketPalettes)
@ -616,7 +616,7 @@ RecoverPokemon_RedField:
ld a, [wCurrentStage]
bit 0, a
callba nz, ClearAllRedIndicators
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_20ada
ld a, BANK(StageRedFieldBottomOBJPalette6)
@ -681,7 +681,7 @@ HandleSlotCaveCollision_EvolutionMode_RedField: ; 0x20b02
ld bc, $0180
call LoadOrCopyVRAMData
pop bc
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_20b80
push bc

View File

@ -1,7 +1,7 @@
HandleFlippers: ; 0xe0fe
xor a
ld [wFlipperCollision], a
ld [hFlipperCollisionRadius], a
ldh [hFlipperCollisionRadius], a
ld [wFlipperXForce], a
ld [wFlipperXForce + 1], a
call UpdateFlipperStates
@ -151,17 +151,17 @@ CheckLeftFlipperCollision:
ld [$ff00+c], a
inc c
ld a, [wPreviousLeftFlipperState]
ld [hPreviousFlipperState], a
ldh [hPreviousFlipperState], a
ld a, [wLeftFlipperState + 1]
ld [hFlipperState], a
ldh [hFlipperState], a
call ReadFlipperCollisionAttributes
ld a, [wFlipperCollision]
and a
ret z
ld a, [wLeftFlipperStateChange]
ld [hFlipperStateChange], a
ldh [hFlipperStateChange], a
ld a, [wLeftFlipperStateChange + 1]
ld [hFlipperStateChange + 1], a
ldh [hFlipperStateChange + 1], a
ret
CheckRightFlipperCollision: ; 0xe226
@ -185,36 +185,36 @@ CheckRightFlipperCollision: ; 0xe226
ld [$ff00+c], a
inc c
ld a, [wPreviousRightFlipperState]
ld [hPreviousFlipperState], a
ldh [hPreviousFlipperState], a
ld a, [wRightFlipperState + 1]
ld [hFlipperState], a
ldh [hFlipperState], a
call ReadFlipperCollisionAttributes
ld a, [wFlipperCollision]
and a
ret z
; collision with flipper occurred
ld a, [wRightFlipperStateChange]
ld [hFlipperStateChange], a
ldh [hFlipperStateChange], a
ld a, [wRightFlipperStateChange + 1]
ld [hFlipperStateChange + 1], a
ldh [hFlipperStateChange + 1], a
ret
ReadFlipperCollisionAttributes: ; 0xe25a
ld a, [hBallXPos + 1]
ldh a, [hBallXPos + 1]
sub 43 ; check if ball is in horizontal range of flippers
ret c
cp 48
ret nc
; ball is in horizontal range of flippers
ld [hBallXPos + 1], a ; x offset of flipper horizontal range
ld a, [hBallYPos + 1] ; ball y-position high byte
ldh [hBallXPos + 1], a ; x offset of flipper horizontal range
ldh a, [hBallYPos + 1] ; ball y-position high byte
sub 123 ; check if ball is in vertical range of flippers
ret c
cp 32
ret nc
; ball is in potential collision with flippers
ld [hBallYPos + 1], a
ld a, [hPreviousFlipperState]
ldh [hBallYPos + 1], a
ldh a, [hPreviousFlipperState]
.collisionCheckLoop
push af
ld l, 0
@ -224,7 +224,7 @@ ReadFlipperCollisionAttributes: ; 0xe25a
sla h
add h
ld h, a ; hl = a * 0x600 (this is the length of the flipper collision attributes)
ld a, [hBallXPos + 1] ; x offset of flipper horizontal range
ldh a, [hBallXPos + 1] ; x offset of flipper horizontal range
ld c, a
ld b, 0
sla c
@ -239,7 +239,7 @@ ReadFlipperCollisionAttributes: ; 0xe25a
rl b ; bc = (ball x offset) * 32
; Each column of the flipper collision attributes is 32 bytes long.
add hl, bc ; hl points to the start of the row in the flipper collision attributes
ld a, [hBallYPos + 1] ; y offset of flipper vertical range
ldh a, [hBallYPos + 1] ; y offset of flipper vertical range
ld c, a
ld b, 0
add hl, bc ; hl points to the attribute byte in the flipper collision attributes
@ -275,7 +275,7 @@ ReadFlipperCollisionAttributes: ; 0xe25a
.collision
pop af ; a = flipper state that resulted in a collision
ld a, b ; a = collision point radius
ld [hFlipperCollisionRadius], a
ldh [hFlipperCollisionRadius], a
ld h, d
ld l, e
ld a, h
@ -305,9 +305,9 @@ Func_e2e4:
or e
or d
jr nz, .asm_e2f3
ld a, [hBallXPos]
ldh a, [hBallXPos]
ld e, a
ld a, [hBallXPos + 1]
ldh a, [hBallXPos + 1]
ld d, a
ret
@ -630,7 +630,7 @@ HandleFlipperCollision: ; 0xe442
ld [wCurCollisionAttribute], a
ld [wCurCollisionTileOffset], a
ld [wCurCollisionTileOffset + 1], a
ld a, [hFlipperCollisionRadius]
ldh a, [hFlipperCollisionRadius]
sla a
ld c, a
ld b, 0
@ -640,9 +640,9 @@ HandleFlipperCollision: ; 0xe442
ld c, a
ld a, [hl]
ld b, a
ld a, [hFlipperStateChange]
ldh a, [hFlipperStateChange]
ld e, a
ld a, [hFlipperStateChange + 1]
ldh a, [hFlipperStateChange + 1]
ld d, a
sla e
rl d
@ -677,9 +677,9 @@ DrawFlippers: ; 0xe4a1
and a
ret z
ld hl, FlippersSpritePixelOffsetData
ld a, [hSCX]
ldh a, [hSCX]
ld d, a
ld a, [hSCY]
ldh a, [hSCY]
ld e, a
ld a, [hli]
sub d
@ -696,7 +696,7 @@ DrawFlippers: ; 0xe4a1
ld a, [hl]
cp SPRITE_LEFTFLIPPER_DOWN
jr nz, .asm_e4d6
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr nz, .asm_e4d4
ld a, [wFlippersDisabled]
@ -710,9 +710,9 @@ DrawFlippers: ; 0xe4a1
.asm_e4d6
call LoadSpriteData
pop hl
ld a, [hSCX]
ldh a, [hSCX]
ld d, a
ld a, [hSCY]
ldh a, [hSCY]
ld e, a
ld a, [hli]
sub d
@ -728,7 +728,7 @@ DrawFlippers: ; 0xe4a1
ld a, [hl]
cp SPRITE_RIGHTFLIPPER_DOWN
jr nz, .asm_e506
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr nz, .asm_e504
ld a, [wFlippersDisabled]

View File

@ -89,7 +89,7 @@ LoadPsyduckOrPoliwagGraphics: ; 0x1c235
call _LoadPsyduckOrPoliwagGraphics
ld a, [wLeftMapMoveCounter]
call LoadPsyduckOrPoliwagNumberGraphics
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_1c267
ld a, [wLeftMapMoveCounter]
@ -138,7 +138,7 @@ LoadPsyduckOrPoliwagGraphics: ; 0x1c235
ld a, [wRightMapMoveCounter]
add $4
call LoadPsyduckOrPoliwagNumberGraphics
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_1c2b7
ld a, [wRightMapMoveCounter]
@ -224,7 +224,7 @@ Func_1c305: ; 0x1c305
.asm_1c31f
callba Func_1c3ac
callba Func_10362
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
callba nz, Func_10301
ld a, [wCapturingMon]
@ -308,7 +308,7 @@ Func_1c3ca: ; 0x1c3ca
dec b
jr nz, .asm_1c3cf
callba Func_10184
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
callba nz, Func_102bc
ret
@ -343,7 +343,7 @@ LoadEvolutionTrinketGraphics_BlueField: ; 0x1c3ee
ld a, [wEvolutionObjectsDisabled]
and a
ret z
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
ret z
ld a, BANK(EvolutionTrinketPalettes)

View File

@ -32,7 +32,7 @@ LoadTimerGraphics: ; 0x1404a
ld a, [wTimerActive]
and a
ret z
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
ret nz
ld a, [wd580]
@ -173,7 +173,7 @@ Func_1414b: ; 0x1414b
.asm_14165
callba Func_141f2
callba Func_10362
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
callba nz, Func_10301
ld a, [wCapturingMon]
@ -257,7 +257,7 @@ Func_14210: ; 0x14210
dec b
jr nz, .asm_14215
callba Func_10184
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
callba nz, Func_102bc
ret
@ -292,7 +292,7 @@ LoadEvolutionTrinketGraphics_RedField: ; 0x14234
ld a, [wEvolutionObjectsDisabled]
and a
ret z
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
ret z
ld a, BANK(EvolutionTrinketPalettes)
@ -393,7 +393,7 @@ LoadBallGraphics: ; 0x142fc
.superMiniBall
callba LoadSuperMiniPinballGfx
.loadBallPalette
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
ret z
ld a, [wBallType]

View File

@ -34,11 +34,11 @@ HandleInGameMenu: ; 0x86d7
ld bc, $00c0
call LoadVRAMData
ld a, $60
ld [hWY], a
ldh [hWY], a
dec a
ld [hLYC], a
ldh [hLYC], a
ld a, $fd
ld [hLCDCMask], a
ldh [hLCDCMask], a
call HandleInGameMenuSelection
ld a, [wInGameMenuIndex]
and a
@ -56,13 +56,13 @@ HandleInGameMenu: ; 0x86d7
ld bc, $003c
call AdvanceFrames
ld a, $86
ld [hWY], a
ldh [hWY], a
ld a, $83
ld [hLYC], a
ld [hLastLYC], a
ldh [hLYC], a
ldh [hLastLYC], a
ld a, $ff
ld [hLCDCMask], a
ld a, [hGameBoyColorFlag]
ldh [hLCDCMask], a
ldh a, [hGameBoyColorFlag]
and a
jr nz, .asm_8778
ld a, Bank(StageRedFieldTopStatusBarSymbolsGfx_GameBoy)
@ -110,7 +110,7 @@ HandleInGameMenuSelection: ; 0x87ac
call MoveInGameMenuCursor
call DrawInGameMenu
rst AdvanceFrame
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
bit BIT_A_BUTTON, a
jr z, .waitForAButton
lb de, $00, $01
@ -119,7 +119,7 @@ HandleInGameMenuSelection: ; 0x87ac
MoveInGameMenuCursor: ; 0x87c5
; Moves the cursor up or down in the "SAVE"/"CANCEL" in-game menu
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
ld b, a
ld a, [wInGameMenuIndex]
bit BIT_D_UP, b

View File

@ -105,7 +105,7 @@ ResolveBlueStagePinballLaunchCollision: ; 0x1c7d7
ChooseInitialMap_BlueField: ; 0x1c839
; While waiting to launch the pinball, this quickly rotates the billboard with the initial
; maps the player can start on.
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
callba nz, LoadGreyBillboardPaletteData
.showNextMap
@ -511,7 +511,7 @@ UpdateSpinnerChargeGraphics_BlueField: ; 0x1cb43
sla c
ld b, $0
ld hl, TileDataPointers_1cb60
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_1cb56
ld hl, TileDataPointers_1cd10
@ -567,7 +567,7 @@ LoadBumperGraphics_BlueField: ; 0x1ce7a
ld c, a
ld b, $0
ld hl, TileDataPointers_1ceca
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_1ce8a
ld hl, TileDataPointers_1cf3a
@ -861,7 +861,7 @@ UpdatePikachuSaverAnimation_BlueField: ; 0x1d133
ret
.asm_1d1c7
ld a, [hFrameCounter]
ldh a, [hFrameCounter]
swap a
and $1
ld [wPikachuSaverAnimationFrame], a
@ -1163,7 +1163,7 @@ ResolveBonusMultiplierCollision_BlueField: ; 0x1d438
ld a, [wWhichBonusMultiplierRailingId]
sub $f
jr nz, .hitRightRailing
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr nz, .asm_1d45c
ld a, $1f
@ -1190,7 +1190,7 @@ ResolveBonusMultiplierCollision_BlueField: ; 0x1d438
jr asm_1d4fa
.hitRightRailing
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr nz, .asm_1d497
ld a, $21
@ -1282,7 +1282,7 @@ UpdateBonusMultiplierRailing_BlueField: ; 0x1d51b
cp $2
jr c, .asm_1d58b
cp $3
ld a, [hFrameCounter]
ldh a, [hFrameCounter]
jr c, .asm_1d56a
srl a
srl a
@ -1308,7 +1308,7 @@ UpdateBonusMultiplierRailing_BlueField: ; 0x1d51b
cp $2
ret c
cp $3
ld a, [hFrameCounter]
ldh a, [hFrameCounter]
jr c, .asm_1d59b
srl a
srl a
@ -1362,7 +1362,7 @@ ShowBonusMultiplierMessage_BlueField: ; 0x1d5bf
_LoadBonusMultiplierRailingGraphics_BlueField: ; 0x1d5f2
push af
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr nz, .gameboyColor
pop af
@ -1485,7 +1485,7 @@ UpdateBonusMultiplierRailingLight: ; 0x1d692
.turnOffLight
ld a, $0
ld [wBonusMultiplierRailingEndLightDuration], a
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr nz, .gameboy
ld a, $1e
@ -1623,7 +1623,7 @@ UpdatePoliwag: ; 0x1dc95
ret nz
call Func_1130
ret nz
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_1dcd7
ld a, [wLeftMapMoveCounter]
@ -1726,7 +1726,7 @@ UpdatePsyduck: ; 0x1dd2e
ret
.asm_1dd74
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_1dd89
ld a, [wRightMapMoveCounter]
@ -1828,7 +1828,7 @@ _LoadPsyduckOrPoliwagGraphics: ; 0x1de4b
ld c, a
ld b, $0
ld hl, TileDataPointers_1df66
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .gameboyColor
ld hl, TileDataPointers_1e00f
@ -1854,7 +1854,7 @@ LoadPsyduckOrPoliwagNumberGraphics: ; 0x1de6f
ld c, a
ld b, $0
ld hl, TileDataPointers_1e0a4
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_1de87
ld hl, TileDataPointers_1e1d6
@ -1895,7 +1895,7 @@ UpdateMapMoveCounters_BlueFieldBottom: ; 0x1de93
dec a
ld [wLeftMapMoveCounter], a
call LoadPsyduckOrPoliwagNumberGraphics
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .gameboy
ld a, [wLeftMapMoveCounter]
@ -1937,7 +1937,7 @@ UpdateMapMoveCounters_BlueFieldBottom: ; 0x1de93
ld [wRightMapMoveCounter], a
add $4
call LoadPsyduckOrPoliwagNumberGraphics
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .gameboy_2
ld a, [wRightMapMoveCounter]
@ -2146,7 +2146,7 @@ LoadPinballUpgradeTriggerGraphics_BlueField: ; 0x1e484
; Input: a = toggle state
and a
jr z, .toggledOff
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr nz, .toggledOnGameboy
ld hl, TileDataPointers_1e520
@ -2157,7 +2157,7 @@ LoadPinballUpgradeTriggerGraphics_BlueField: ; 0x1e484
jr .load
.toggledOff
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr nz, .toggledOffGameboy
ld hl, TileDataPointers_1e526
@ -2373,7 +2373,7 @@ LoadCAVELightGraphics_BlueField: ; 0x1e636
; Input: a = toggle state for CAVE light
and a
jr z, .toggledOff
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr nz, .toggledOnGameboy
ld hl, TileDataPointers_1e6d7
@ -2384,7 +2384,7 @@ LoadCAVELightGraphics_BlueField: ; 0x1e636
jr .load
.toggledOff
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr nz, .toggledOffGameboy
ld hl, TileDataPointers_1e6df
@ -2696,7 +2696,7 @@ LoadSlotCaveCoverGraphics_BlueField: ; 0x1e8f6
ld c, a
ld b, $0
ld hl, TileDataPointers_1e91e
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_1e912
ld hl, TileDataPointers_1e970
@ -2893,7 +2893,7 @@ _ApplySlotForceField_BlueField: ; 0x1ea6a
UpdateArrowIndicators_BlueField: ; 0x1ead4
; Updates the 5 blinking arrow indicators in the blue field bottom.
ld a, [hFrameCounter]
ldh a, [hFrameCounter]
and $f
ret nz
ld bc, $0000
@ -2920,7 +2920,7 @@ UpdateArrowIndicators_BlueField: ; 0x1ead4
ld a, c
cp $2
jr nz, .asm_1eadc
ld a, [hFrameCounter]
ldh a, [hFrameCounter]
and $f
ret nz
ld a, [wCurrentStage]
@ -2969,7 +2969,7 @@ LoadArrowIndicatorGraphics_BlueStage: ; 0x1eb41
push af
sla c
ld hl, TileDataPointers_1eb61
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .gameboy
ld hl, TileDataPointers_1ed51
@ -3442,7 +3442,7 @@ UpdateForceFieldGraphics: ; 0x1f18a
ld c, a
ld b, $0
ld hl, TileDataPointers_1f1b5
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .gameboy
ld hl, TileDataPointers_1f201

View File

@ -31,7 +31,7 @@ Func_19bbd: ; 0x19bbd
ld c, a
ld b, $0
ld hl, Data_19bda
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_19bd0
ld hl, Data_19c16

View File

@ -42,7 +42,7 @@ Func_183db: ; 0x183db
ld c, a
ld b, $0
ld hl, TileDataPointers_183f8
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_183ee
ld hl, TileDataPointers_1842e
@ -1450,7 +1450,7 @@ Func_18d72: ; 0x18d72
ld c, a
ld b, $0
ld hl, TileDataPointers_18ddb
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_18d85
ld hl, TileDataPointers_18ed1

View File

@ -264,7 +264,7 @@ Func_24516: ; 0x24516
ld c, a
ld b, $0
ld hl, TileDataPointers_24533
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_24529
ld hl, TileDataPointers_2456f
@ -626,7 +626,7 @@ UpdateMeowthHorizontalMovement: ; 0x24737
jr .asm_2475a
.asm_2474a
ld a, [hFrameCounter]
ldh a, [hFrameCounter]
and $3f
ret nz
call GenRandom
@ -692,7 +692,7 @@ UpdateMeowthVerticalMovement: ; 0x2476d
ld a, [wNumActiveJewelsTop]
cp 3
jr z, .asm_247d3
ld a, [hFrameCounter]
ldh a, [hFrameCounter]
and $3f
ret nz
call GenRandom
@ -1884,7 +1884,7 @@ Func_24fa3: ; 0x24fa3
ld c, a
ld b, $0
ld hl, TileDataPointers_25007
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_24ffd
ld hl, TileDataPointers_25421

View File

@ -39,7 +39,7 @@ Func_194ac: ; 0x194ac
ld c, a
ld b, $0
ld hl, Data_194c9
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_194bf
ld hl, Data_194fd

View File

@ -516,7 +516,7 @@ _LoadDiglettGraphics: ; 0x149d9
ld c, a
ld b, $0
ld hl, TileListDataPointers_14a11
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_149e9
ld hl, TileListDataPointers_14a83
@ -536,7 +536,7 @@ LoadDiglettNumberGraphics: ; 0x149f5
ld c, a
ld b, $0
ld hl, Data_14af5
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_14a05
ld hl, TileListDataPointers_14c8d
@ -726,7 +726,7 @@ UpdateSpinnerChargeGraphics_RedField: ; 0x14ece
sla c
ld b, $0
ld hl, TileDataPointers_14eeb
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_14ee1
ld hl, TileDataPointers_1509b
@ -805,7 +805,7 @@ LoadCAVELightGraphics_RedField: ; 0x1523c
; Input: a = toggle state for CAVE light
and a
jr z, .toggledOff
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr nz, .toggledOnGameboy
ld hl, TileDataPointers_152dd
@ -816,7 +816,7 @@ LoadCAVELightGraphics_RedField: ; 0x1523c
jr .load
.toggledOff
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr nz, .toggledOffGameboy
ld hl, TileDataPointers_152e5
@ -1041,7 +1041,7 @@ LoadPinballUpgradeTriggerGraphics_RedField: ; 0x15465
; Input: a = toggle state
and a
jr z, .toggledOff
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr nz, .toggledOnGameboy
ld hl, TileDataPointers_15511
@ -1052,7 +1052,7 @@ LoadPinballUpgradeTriggerGraphics_RedField: ; 0x15465
jr .load
.toggledOff
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr nz, .toggledOffGameboy
ld hl, TileDataPointers_15517
@ -1077,7 +1077,7 @@ LoadPinballUpgradeTriggerGraphics_RedField: ; 0x15465
ret
LoadDisabledPinballUpgradeTriggerGraphics_RedField: ; 0x15499
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
ret nz
ld b, $3
@ -1228,7 +1228,7 @@ TransitionPinballUpgrade: ; 0x155a7
; fall through
TransitionPinballUpgradePalette: ; 0x155bb
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
ret z
; gameboy color
@ -1476,7 +1476,7 @@ UpdateFieldStructures_RedField: ; 0x159c9
LoadFieldStructureGraphics_RedField: ; 0x159f4
; Based on the current stage collision state, load the proper graphics.
; Things that change on the Red field are Ditto, the lightning bolt guard rail, and the roof over the 3 Voltorbs.
ld a, [hLCDC]
ldh a, [hLCDC]
bit 7, a
jr z, .asm_15a13
ld a, [wd7f2]
@ -1501,7 +1501,7 @@ LoadFieldStructureGraphics_RedField: ; 0x159f4
ld c, a
ld b, $0
ld hl, TileDataPointers_15a3f
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_15a2d
ld hl, TileDataPointers_15d05
@ -1669,7 +1669,7 @@ LoadBumperGraphics_RedField: ; 0x15fc0
ld c, a
ld b, $0
ld hl, TileDataPointers_16010
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_15fd0
ld hl, TileData_16080
@ -2149,7 +2149,7 @@ LoadSlotCaveCoverGraphics_RedField: ; 0x16425
ld c, a
ld b, $0
ld hl, TileDataPointers_1644d
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_16441
ld hl, TileDataPointers_164a1
@ -2256,7 +2256,7 @@ ResolveRedStagePinballLaunchCollision: ; 0x1652d
ChooseInitialMap_RedField: ; 0x1658f
; While waiting to launch the pinball, this quickly rotates the billboard with the initial
; maps the player can start on.
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
callba nz, LoadGreyBillboardPaletteData
.showNextMap
@ -2444,7 +2444,7 @@ UpdatePikachuSaverAnimation_RedField: ; 0x1669e
ret
.asm_16732
ld a, [hFrameCounter]
ldh a, [hFrameCounter]
swap a
and $1
ld [wPikachuSaverAnimationFrame], a
@ -2591,7 +2591,7 @@ LoadStaryuGraphics_Top: ; 0x16859
ld c, a
ld b, $0
ld hl, TileDataPointers_16899
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_1686c
ld hl, TileDataPointers_16910
@ -2613,7 +2613,7 @@ LoadStaryuGraphics_Bottom: ; 0x16878
ld c, a
ld b, $0
ld hl, TileDataPointers_1695a
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_1688d
ld hl, TileDataPointers_16980
@ -2632,7 +2632,7 @@ INCLUDE "data/queued_tiledata/red_field/staryu_bumper.asm"
UpdateArrowIndicators_RedField: ; 0x169a6
; Updates the 5 blinking arrow indicators in the red field bottom.
ld a, [hFrameCounter]
ldh a, [hFrameCounter]
and $1f
ret nz
ld bc, $0000
@ -2662,7 +2662,7 @@ LoadArrowIndicatorGraphics_RedField: ; 0x169cd
push af
sla c ;double offset
ld hl, TileDataPointers_169ed
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_169db
ld hl, TileDataPointers_16bef
@ -2788,7 +2788,7 @@ UpdateBonusMultiplierRailing_RedField: ; 0x16e51
cp $2
jr c, .asm_16ec1
cp $3
ld a, [hFrameCounter]
ldh a, [hFrameCounter]
jr c, .asm_16ea0
srl a
srl a
@ -2814,7 +2814,7 @@ UpdateBonusMultiplierRailing_RedField: ; 0x16e51
cp $2
ret c
cp $3
ld a, [hFrameCounter]
ldh a, [hFrameCounter]
jr c, .asm_16ed1
srl a
srl a
@ -2868,7 +2868,7 @@ ShowBonusMultiplierMessage_RedField: ; 0x16ef5
_LoadBonusMultiplierRailingGraphics_RedField: ; 0x16f28
push af
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr nz, .gameboyColor
pop af

View File

@ -77,7 +77,7 @@ Func_25d0e: ; 0x25d0e
ld c, a
ld b, $0
ld hl, TileDataPointers_25d2b
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_25d21
ld hl, TileDataPointers_25d67
@ -1151,7 +1151,7 @@ Func_262f4: ; 0x262f4
ld c, a
ld b, $0
ld hl, TileDataPointers_2634a
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_26340
ld hl, TileDataPointers_26764

View File

@ -108,7 +108,7 @@ ENDR
ret
Func_85c7: ; 0x85c7
ld a, [hFrameCounter]
ldh a, [hFrameCounter]
and $3
ret nz
ld a, [wd478]
@ -217,28 +217,28 @@ HideScoreIfBallLow: ; 0x8650
bit 0, a
jr nz, .bottomStage ;if on upper stage, score is up
ld a, $86
ld [hWY], a
ldh [hWY], a
ret
.bottomStage
ld a, [wBallYPos + 1]
cp $84
jr nc, .BallLow ;if ballY pos less than or equal to 132, raise score, else lower score
ld a, [hWY]
ldh a, [hWY]
sub $3
cp $86
jr nc, .DontClampHigh ;if result is less than 132, clamp to 132, else just load it in
ld a, $86
.DontClampHigh
ld [hWY], a
ldh [hWY], a
ret
.BallLow
ld a, [hWY]
ldh a, [hWY]
add $3
cp $90
jr c, .DontClampLow ;if result is more than 144, clamp to 144, else just load it in
ld a, $90
.DontClampLow
ld [hWY], a
ldh [hWY], a
ret

View File

@ -14,9 +14,9 @@ DoSlotRewardRoulette: ; 0xed8e
ld [wSlotBallIncrease], a
.waitForFlippers
xor a
ld [hJoypadState], a
ld [hNewlyPressedButtons], a
ld [hPressedButtons], a
ldh [hJoypadState], a
ldh [hNewlyPressedButtons], a
ldh [hPressedButtons], a
call HandleTilts
ld a, [wCurrentStage]
bit 0, a
@ -31,7 +31,7 @@ DoSlotRewardRoulette: ; 0xed8e
ld a, [wRightFlipperState + 1]
and a
jr nz, .waitForFlippers
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
call nz, LoadGreyBillboardPaletteData
call GenRandom
@ -122,7 +122,7 @@ DoSlotRewardRoulette: ; 0xed8e
dec b
jr nz, .displayRewardLoop
.loadColoredRewardPicture
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
ld a, [wSlotRouletteBillboardPicture]
call nz, Func_f2a0
@ -287,7 +287,7 @@ SlotRewardSmallPoints: ; 0xefb2
.asm_efd8
rst AdvanceFrame
pop bc
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
and FLIPPERS
jr nz, .asm_efe3
dec b
@ -326,7 +326,7 @@ SlotRewardBigPoints: ; 0xeff3
.asm_f019
rst AdvanceFrame
pop bc
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
and FLIPPERS
jr nz, .asm_f024
dec b
@ -435,7 +435,7 @@ SlotBonusMultiplier: ; 0xf0c1
.asm_f0e7
rst AdvanceFrame
pop bc
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
and FLIPPERS
jr nz, .asm_f0f2
dec b

View File

@ -12,9 +12,9 @@ FieldVerticalTransition: ; 0xe674
pop af
ld [wCurrentStage], a
xor a
ld [hBGP], a
ld [hOBP0], a
ld [hOBP1], a
ldh [hBGP], a
ldh [hOBP0], a
ldh [hOBP1], a
rst AdvanceFrame
call ToggleAudioEngineUpdateMethod
call DisableLCD
@ -25,11 +25,11 @@ FieldVerticalTransition: ; 0xe674
call ToggleAudioEngineUpdateMethod
call EnableLCD
ld a, $e4
ld [hBGP], a
ldh [hBGP], a
ld a, $e1
ld [hOBP0], a
ldh [hOBP0], a
ld a, $e4
ld [hOBP1], a
ldh [hOBP1], a
ret
LoadStageData: ; 0xe6c2
@ -44,9 +44,9 @@ LoadStageData: ; 0xe6c2
jr nz, .gotWindowYPos
ld a, $90
.gotWindowYPos
ld [hWY], a
ldh [hWY], a
ld hl, StageGfxPointers_GameBoy
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .loadData
ld hl, StageGfxPointers_GameBoyColor
@ -167,9 +167,9 @@ ScrollScreenToShowPinball: ; 0xed5e
ld a, [hl]
ld hl, wLeftAndRightTiltPixelsOffset
sub [hl]
ld [hSCX], a
ldh [hSCX], a
xor a
ld hl, wUpperTiltPixelsOffset
sub [hl]
ld [hSCY], a
ldh [hSCY], a
ret

View File

@ -10,7 +10,7 @@ PointerTable_28004: ; 0x28004
LoadPokedexScreen: ; 0x2800e
ld a, $23
ld [hLCDC], a
ldh [hLCDC], a
ld a, $e4
ld [wBGP], a
ld a, $93
@ -18,26 +18,26 @@ LoadPokedexScreen: ; 0x2800e
ld a, $e4
ld [wOBP1], a
xor a
ld [hSCX], a
ldh [hSCX], a
ld a, $8
ld [hSCY], a
ldh [hSCY], a
ld a, $7
ld [hWX], a
ldh [hWX], a
ld a, $8c
ld [hWY], a
ldh [hWY], a
ld a, $3b
ld [hLYC], a
ld [hLastLYC], a
ld [hNextLYCSub], a
ld [hLYCSub], a
ldh [hLYC], a
ldh [hLastLYC], a
ldh [hNextLYCSub], a
ldh [hLYCSub], a
ld hl, hSTAT
set 6, [hl]
ld hl, rIE
set 1, [hl]
ld a, $2
ld [hStatIntrRoutine], a
ldh [hStatIntrRoutine], a
ld hl, PointerTable_280a2
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
call LoadVideoData
xor a
ld [wCurPokedexIndex], a
@ -118,7 +118,7 @@ Data_280c4: ; 0x280c4
MainPokedexScreen: ; 0x280fe
call Func_28513
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
bit BIT_A_BUTTON, a
jr z, .asm_28142
ld a, [wd95f]
@ -159,10 +159,10 @@ MainPokedexScreen: ; 0x280fe
ret
.asm_2814f
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_28174
ld a, [hJoypadState]
ldh a, [hJoypadState]
bit BIT_START, a
jr z, .asm_28168
ld a, [wd960]
@ -186,7 +186,7 @@ MonInfoPokedexScreen: ; 0x28178
ld a, [wd956]
bit 0, a
jr z, .asm_28190
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
bit BIT_A_BUTTON, a
jr z, .asm_2818a
call Func_28912
@ -198,7 +198,7 @@ MonInfoPokedexScreen: ; 0x28178
jr .asm_28196
.asm_28190
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
and $3
jr z, .asm_281a2
.asm_28196
@ -209,10 +209,10 @@ MonInfoPokedexScreen: ; 0x28178
ret
.asm_281a2
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_281c7
ld a, [hJoypadState]
ldh a, [hJoypadState]
bit BIT_START, a
jr z, .asm_281bb
ld a, [wd960]
@ -415,7 +415,7 @@ Func_282e9: ; 0x282e9
ld a, Bank(MonAnimatedSpriteTypes)
call ReadByteFromBank
ld c, a
ld a, [hFrameCounter]
ldh a, [hFrameCounter]
swap a
and $7
cp $7
@ -444,7 +444,7 @@ Func_282e9: ; 0x282e9
ld a, SPRITE_DEX_ARROW
call LoadSpriteData
call Func_28368
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
and $6
jr z, .asm_28367
ld a, BANK(PokedexTilemap)
@ -470,13 +470,13 @@ Func_282e9: ; 0x282e9
ret
Func_28368: ; 0x28368
ld a, [hJoypadState]
ldh a, [hJoypadState]
bit BIT_A_BUTTON, a
jr nz, .asm_28371
jp Func_284bc
.asm_28371
ld a, [hPressedButtons]
ldh a, [hPressedButtons]
ld b, a
ld a, [wdaa2]
ld e, a
@ -665,7 +665,7 @@ SpritePaletteIndices_2848c:
db $EE, $00
Func_284bc: ; 0x284bc
ld a, [hPressedButtons]
ldh a, [hPressedButtons]
ld b, a
ld a, [wdaa2]
bit 5, b
@ -723,7 +723,7 @@ ExitPokedexScreen: ; 0x284f9
ret
Func_28513: ; 0x28513
ld a, [hPressedButtons]
ldh a, [hPressedButtons]
ld hl, wd95e
or [hl]
ld [hl], a
@ -895,7 +895,7 @@ Func_285db: ; 0x285db
.asm_28647
ld c, a
push bc
ld a, [hJoypadState]
ldh a, [hJoypadState]
and a
ld a, [wd95b]
jr z, .asm_28652
@ -945,7 +945,7 @@ DexScrollBarSpriteIds:
DrawCornerInfoPokedexScreen: ; 0x2868b
; If player is holding SELECT button, it draws the seen/own count in the top-right corner.
; Otherwise, it draws the word "POKeDEX".
ld a, [hJoypadState]
ldh a, [hJoypadState]
bit BIT_SELECT, a
jr z, .asm_286c8
ld bc, $6d03
@ -1254,15 +1254,15 @@ Func_2887c: ; 0x2887c
ld bc, $0100
call LoadVRAMData
ld a, $3f
ld [hLYC], a
ldh [hLYC], a
ld a, $47
ld [hNextLYCSub], a
ldh [hNextLYCSub], a
ld b, $33
.asm_28894
push bc
ld a, $7a
sub b
ld [hNextLYCSub], a
ldh [hNextLYCSub], a
rst AdvanceFrame
pop bc
dec b
@ -1277,7 +1277,7 @@ Func_288a2: ; 0x288a2
push bc
ld a, $44
add b
ld [hNextLYCSub], a
ldh [hNextLYCSub], a
rst AdvanceFrame
pop bc
dec b
@ -1285,8 +1285,8 @@ Func_288a2: ; 0x288a2
dec b
jr nz, .asm_288a4
ld a, $3b
ld [hLYC], a
ld [hNextLYCSub], a
ldh [hLYC], a
ldh [hNextLYCSub], a
ld a, BANK(PokedexTilemap2)
ld hl, PokedexTilemap2 + $100
deCoord 0, 8, vBGMap
@ -1628,7 +1628,7 @@ Func_28ad1: ; 0x28ad1
swap a
and $f0
sub $3c
ld [hNextFrameHBlankSCX], a
ldh [hNextFrameHBlankSCX], a
ret
Func_28add: ; 0x28add
@ -1678,7 +1678,7 @@ Func_28add: ; 0x28add
call LoadOrCopyVRAMData
call Func_28cd4
pop bc
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
ret z
push bc
@ -1721,7 +1721,7 @@ LoadUncaughtPokemonBackgroundGfx: ; 0x28b76
ld bc, $0180
call LoadOrCopyVRAMData
call Func_28cd4
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
ret z
ld a, BANK(UncaughtPokemonPaletteMap)
@ -1765,7 +1765,7 @@ LoadSeenPokemonGfx: ; 0x28baf
ld bc, $0180
call LoadOrCopyVRAMData
call Func_28cd4
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
ret z
ld a, BANK(UncaughtPokemonPaletteMap)
@ -1850,7 +1850,7 @@ Func_28bf5: ; 0x28bf5
ld [wCurrentAnimatedMonSpriteFrame], a
call Func_28cf8
pop bc
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
ret z
ld hl, MonAnimatedPalettePointers

View File

@ -13,11 +13,11 @@ SelectGameboyTargetMenuFunctions: ; 0x8004
InitSelectGameboyTargetMenu: ; 0x800a
xor a
ld [hFFC4], a
ld a, [hJoypadState]
ldh [hFFC4], a
ldh a, [hJoypadState]
cp D_UP
jr nz, .skipDebugMenu
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr nz, .showMenu
.skipDebugMenu
@ -29,14 +29,14 @@ InitSelectGameboyTargetMenu: ; 0x800a
.showMenu
ld a, $45
ld [hLCDC], a
ldh [hLCDC], a
ld a, $e4
ld [wBGP], a
ld [wOBP0], a
ld [wOBP1], a
xor a
ld [hSCX], a
ld [hSCY], a
ldh [hSCX], a
ldh [hSCY], a
call LoadGameboyTargetMenuGfx
call ClearSpriteBuffer
call SetAllPalettesWhite
@ -165,14 +165,14 @@ Data_80f4: ; 0x80f4
RGB 00, 00, 00
SelectCGBOrDMG: ; 0x8104
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
ld b, a
and (D_DOWN | D_UP)
jr z, .directionNotPressed
ld a, [hGameBoyColorFlag]
ld [hFFC4], a
ldh a, [hGameBoyColorFlag]
ldh [hFFC4], a
xor $1
ld [hGameBoyColorFlag], a
ldh [hGameBoyColorFlag], a
jr .moveCursor
.directionNotPressed
@ -183,7 +183,7 @@ SelectCGBOrDMG: ; 0x8104
ret
.moveCursor
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr nz, .cgb
ld a, Bank(DMGSelected_TileData)

View File

@ -10,7 +10,7 @@ TitlescreenFunctions: ; 0xc004
FadeInTitlescreen: ; 0xc00e
ld a, $43
ld [hLCDC], a
ldh [hLCDC], a
ld a, $e4
ld [wBGP], a
ld a, $d2
@ -18,10 +18,10 @@ FadeInTitlescreen: ; 0xc00e
ld a, $e1
ld [wOBP1], a
xor a
ld [hSCX], a
ld [hSCY], a
ldh [hSCX], a
ldh [hSCY], a
ld hl, TitlescreenFadeInGfxPointers
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
call LoadVideoData
ld a, $1
ld [wTitleScreenGameStartCursorSelection], a
@ -59,7 +59,7 @@ TitlescreenFadeInGfx_GameBoyColor: ; 0xc06b
TitlescreenLoop: ; 0xc089
call Func_c0ee
call HandleTitlescreenAnimations
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
bit BIT_A_BUTTON, a ; was A button pressed?
jr z, .AButtonNotPressed
ld a, [wTitleScreenCursorSelection]
@ -116,7 +116,7 @@ Func_c0ee: ; 0xc0ee
ret
HandleTitlescreenAnimations: ; 0xc0f7
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_c104
ld bc, $2040
@ -134,7 +134,7 @@ Func_c10e: ; 0xc10e
ld a, [wTitlescreenContinuePromptAnimationFrame]
cp $6
ret nz
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
bit 0, a
jr z, .asm_c17c
ld de, MUSIC_NOTHING
@ -210,7 +210,7 @@ Func_c1a2: ; 0xc1a2
Func_c1b1: ; 0xc1b1
call HandleTitleScreenContinuePromptAnimation
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .asm_c1c1
ld bc, $2040
@ -253,7 +253,7 @@ GoToHighScoresFromTitlescreen: ; 0xc1e7
ret
Func_c1fc: ; 0xc1fc
ld a, [hPressedButtons]
ldh a, [hPressedButtons]
ld b, a
ld a, [hl]
bit 6, b

277
home.asm
View File

@ -43,7 +43,7 @@ SECTION "Header", ROM0
SECTION "Main", ROM0
Start: ; 0x150
ld [hGameBoyColorFlag], a
ldh [hGameBoyColorFlag], a
ld sp, hGameBoyColorFlag
di
xor a
@ -89,7 +89,7 @@ Start: ; 0x150
ld a, $0
ld [MBC5SRamBank], a ; Set bits 5 and 6 of ROM Bank Number
ld a, $1
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld a, $1
ld [MBC5RomBankOn], a ; Enable RAM Banking Mode
ld a, $0
@ -104,11 +104,11 @@ Start: ; 0x150
ld [wd7fb], a
ld [wd7fc], a
ld [wd7fd], a
ld [hStatIntrRoutine], a
ldh [hStatIntrRoutine], a
ld [$ffb1], a
ld [wd8e1], a
ld [wd7fe], a
ld [hSGBInit], a
ldh [hSGBInit], a
ld hl, hLCDC
xor a
ld [hli], a
@ -129,15 +129,15 @@ Start: ; 0x150
ld a, Bank(PlaySong_BankF)
call SetSongBank
call Func_23b
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr nz, .asm_222
call InitSGB
rl a
and $1
ld [hSGBFlag], a
ldh [hSGBFlag], a
call SendSGBBorder
ld a, [hSGBFlag]
ldh a, [hSGBFlag]
and a
jr z, .asm_222
ld a, $1
@ -155,18 +155,18 @@ Start: ; 0x150
ld hl, Main
call BankSwitchSimple
Func_23b: ; 0x23b
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
cp $11
jr nz, .asm_248
ld a, $1
ld [hGameBoyColorFlag], a
ld [hGameBoyColorFlagBackup], a
ldh [hGameBoyColorFlag], a
ldh [hGameBoyColorFlagBackup], a
ret
.asm_248
xor a
ld [hGameBoyColorFlag], a
ld [hGameBoyColorFlagBackup], a
ldh [hGameBoyColorFlag], a
ldh [hGameBoyColorFlagBackup], a
ret
SoftReset:
@ -191,7 +191,7 @@ SoftReset:
ld a, $0
ld [MBC5SRamBank], a
ld a, $1
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld a, $1
ld [MBC5RomBankOn], a
ld a, $0
@ -203,7 +203,7 @@ SoftReset:
ld [wd7fb], a
ld [wd7fc], a
ld [wd7fd], a
ld [hStatIntrRoutine], a
ldh [hStatIntrRoutine], a
ld [$ffb1], a
ld [wd8e1], a
ld [wd7fe], a
@ -226,7 +226,7 @@ SoftReset:
ld [wToggleAudioEngineUpdateMethod], a
ld a, BANK(Func_3c000)
call SetSongBank
ld a, [hSGBFlag]
ldh a, [hSGBFlag]
and a
jr z, .asm_02d5
ld a, $1
@ -238,8 +238,8 @@ SoftReset:
ld a, $ff
ld [wRNGModulus], a
call ResetRNG
ld a, [hGameBoyColorFlag]
ld [hGameBoyColorFlagBackup], a
ldh a, [hGameBoyColorFlag]
ldh [hGameBoyColorFlagBackup], a
xor a
ld [wBootCheck], a
ld a, Bank(Main)
@ -253,7 +253,7 @@ VBlank: ; 0x2f2
push de
push hl
call hPushSprite ; sprite DMA transfer
ld a, [hLCDC]
ldh a, [hLCDC]
ld [rLCDC], a
call Func_113a
ei
@ -291,22 +291,22 @@ VBlank: ; 0x2f2
ld a, [hli]
ld [$ff00+c], a
.asm_328
ld a, [hLYC]
ld [hLastLYC], a
ld a, [hNextLYCSub]
ld [hLYCSub], a
ld a, [hNextFrameHBlankSCX]
ld [hHBlankSCX], a
ld a, [hNextFrameHBlankSCY]
ld [hHBlankSCY], a
ldh a, [hLYC]
ldh [hLastLYC], a
ldh a, [hNextLYCSub]
ldh [hLYCSub], a
ldh a, [hNextFrameHBlankSCX]
ldh [hHBlankSCX], a
ldh a, [hNextFrameHBlankSCY]
ldh [hHBlankSCY], a
call ReadJoypad
ld a, [wBootCheck]
and a
jr nz, .skipBootCheck
ld a, [hJoypadState]
ldh a, [hJoypadState]
cp $f
jr nz, .skipBootCheck
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
and $f
jr z, .skipBootCheck
ld hl, sp + 8
@ -395,8 +395,8 @@ FadeAndSoftReset:
ld [rSC], a
ld [rIE], a
ld [rNR52], a
ld a, [hGameBoyColorFlagBackup]
ld [hGameBoyColorFlag], a
ldh a, [hGameBoyColorFlagBackup]
ldh [hGameBoyColorFlag], a
jp SoftReset
LCDCStatus: ; 0x3ec
@ -404,7 +404,7 @@ LCDCStatus: ; 0x3ec
push bc
push de
push hl
ld a, [hStatIntrRoutine]
ldh a, [hStatIntrRoutine]
sla a
ld c, a
ld b, 0
@ -417,7 +417,7 @@ LCDCStatus: ; 0x3ec
StatIntrDone: ; 0x3ff
ld a, $1
ld [hStatIntrFired], a
ldh [hStatIntrFired], a
pop hl
pop de
pop bc
@ -560,13 +560,13 @@ CallInFollowingTable: ; 0x532
BankSwitchSimple: ; 0x549
; Switches to Bank in register a and jumps to hl.
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a ; Load Bank
jp hl
BankSwitch: ; 0x54f
ld e, a
ld a, [hLoadedROMBank] ; currently-loaded Bank
ldh a, [hLoadedROMBank] ; currently-loaded Bank
cp e
jr z, .doJump
push af
@ -582,25 +582,25 @@ BankSwitch: ; 0x54f
ld d, [hl]
ld [hl], $0
ld [MBC5RomBank], a
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [hl], d
pop de
pop hl
ret
.doJump
ld a, [hFarCallTempE]
ldh a, [hFarCallTempE]
ld e, a
ld a, [hFarCallTempA]
ldh a, [hFarCallTempA]
jp hl
DisableLCD: ; 0x576
ld a, [rLCDC]
bit 7, a
ret z
ld a, [hLCDC]
ldh a, [hLCDC]
res 7, a
ld [hLCDC], a
ldh [hLCDC], a
.asm_581
ld a, [rLCDC]
bit 7, a
@ -608,13 +608,13 @@ DisableLCD: ; 0x576
ret
EnableLCD: ; 0x588
ld a, [hFFC4]
ldh a, [hFFC4]
and a
call nz, .UpdatePals
ld a, [hLCDC]
ldh a, [hLCDC]
set 7, a
ld [rLCDC], a
ld [hLCDC], a
ldh [hLCDC], a
ret
.UpdatePals
@ -686,20 +686,22 @@ VBlankIntEnable:
ret
WriteDMACodeToHRAM: ; 0x5f7
; Initializes registers hPushSprite - hFarCallTempA
ld c, $80
ld b, $a ; number of bytes to load
; Initializes registers hPushSprite - hPushSprite.end
assert HIGH(hPushSprite) == $FF
assert DMARoutine.end - DMARoutine == hPushSprite.end - hPushSprite
ld c, LOW(hPushSprite)
ld b, hPushSprite.end - hPushSprite ; number of bytes to load
ld hl, DMARoutine
.loop
ld a, [hli]
ld [$ff00+c], a ; add register c to $ff00, and store register a into the resulting address
ldh [c], a ; add register c to $ff00, and store register a into the resulting address
inc c
dec b
jr nz, .loop
ret
DMARoutine:
; This routine is initially loaded into hPushSprite - hFarCallTempA by WriteDMACodeToHRAM.
; This routine is initially loaded into hPushSprite by WriteDMACodeToHRAM.
ld a, (wSpriteBuffer >> 8)
ld [rDMA], a ; start DMA
ld a, $28
@ -707,6 +709,7 @@ DMARoutine:
dec a
jr nz, .waitLoop
ret
.end
WaitForLCD: ; 0x60f
; Wait for LCD controller to stop reading from both OAM and VRAM because
@ -1033,9 +1036,9 @@ StatIntrTogglePinballWindow:
inc c
cp c
jp nc, StatIntrDone
ld a, [hLCDCMask]
ldh a, [hLCDCMask]
ld c, a
ld a, [hLCDC]
ldh a, [hLCDC]
xor $10 ; toggle window tile data
and c
ld c, a
@ -1052,16 +1055,16 @@ StatIntrTogglePinballWindow:
StatIntrTogglePokedexWindow: ; 0xfea
ld hl, hLastLYC
ld a, [hLYCSub]
ldh a, [hLYCSub]
cp [hl]
jr nz, .asm_1015
ld a, [rLY]
cp [hl]
jp nz, StatIntrDone
ld a, [hLCDC]
ldh a, [hLCDC]
xor $18 ; toggle window tile data and tile map
ld c, a
ld a, [hHBlankSCX]
ldh a, [hHBlankSCX]
ld b, a
ld hl, rSTAT
.waitForHBlank
@ -1080,12 +1083,12 @@ StatIntrTogglePokedexWindow: ; 0xfea
ld a, [rLY]
cp [hl]
jr nz, .asm_1037
ld a, [hLastLYC]
ldh a, [hLastLYC]
ld hl, hLYCSub
sub [hl]
add $40
ld c, a
ld a, [hLYCSub]
ldh a, [hLYCSub]
ld b, a
ld hl, rSTAT
.waitForHBlank_2
@ -1103,10 +1106,10 @@ StatIntrTogglePokedexWindow: ; 0xfea
ld a, [rLY]
cp [hl]
jp nz, StatIntrDone
ld a, [hLCDC]
ldh a, [hLCDC]
xor $18 ; toggle window tile data and tile map
ld c, a
ld a, [hHBlankSCX]
ldh a, [hHBlankSCX]
ld b, a
ld hl, rSTAT
.waitForHBlank_3
@ -1130,9 +1133,9 @@ StatIntrToggleHighScoresWindow:
cp [hl]
jr nz, .asm_1080
.asm_1069
ld a, [hLYCSub]
ldh a, [hLYCSub]
ld c, a
ld a, [hHBlankSCX]
ldh a, [hHBlankSCX]
ld b, a
ld hl, rSTAT
.waitForHBlank
@ -1154,7 +1157,7 @@ StatIntrToggleHighScoresWindow:
cp [hl]
jp nz, StatIntrDone
.asm_108d
ld a, [hHBlankSCY]
ldh a, [hHBlankSCY]
ld b, a
ld hl, rSTAT
.waitForHBlank_2
@ -1240,11 +1243,11 @@ QueueGraphicsToLoadWithFunc: ; 0x10c5
inc h
ld [hl], d
ld e, $ff
ld [hROMBankBuffer], a
ld a, [hLoadedROMBank]
ldh [hROMBankBuffer], a
ldh a, [hLoadedROMBank]
push af
ld a, [hROMBankBuffer]
ld [hLoadedROMBank], a
ldh a, [hROMBankBuffer]
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
dec bc
ld a, [bc]
@ -1258,7 +1261,7 @@ QueueGraphicsToLoadWithFunc: ; 0x10c5
add $4
ld [hl], a
pop af
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ld hl, wd7fb
ld l, [hl]
@ -1312,10 +1315,10 @@ Func_113a: ; 0x113a
inc h
ld d, [hl]
inc h
ld a, [hLoadedROMBank]
ldh a, [hLoadedROMBank]
push af
ld a, [hl]
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
inc h
ld a, [hl]
@ -1324,7 +1327,7 @@ Func_113a: ; 0x113a
ld l, a
call JumpToHL
pop af
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
pop hl
inc l
@ -1436,7 +1439,7 @@ Func_11c7:
Func_11d2:
ld h, d
ld l, e
ld a, [hLoadedROMBank]
ldh a, [hLoadedROMBank]
ld [$ff94], a
.asm_11d8
ld a, [hli]
@ -1452,7 +1455,7 @@ Func_11d2:
ld a, [hli]
ld b, a
ld a, [hli]
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
push hl
ld h, b
@ -1512,7 +1515,7 @@ Func_11d2:
jr nz, .asm_11f1
pop hl
ld a, [$ff94]
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
jr .asm_11d8
@ -1521,7 +1524,7 @@ Func_122e:
ld [rVBK], a
ld h, d
ld l, e
ld a, [hLoadedROMBank]
ldh a, [hLoadedROMBank]
ld [$ff94], a
.asm_1238
ld a, [hli]
@ -1542,7 +1545,7 @@ Func_122e:
ld a, [hli]
ld b, a
ld a, [hli]
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
push hl
ld h, b
@ -1557,7 +1560,7 @@ Func_122e:
jr nz, .asm_1256
pop hl
ld a, [$ff94]
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
jr .asm_1238
@ -1590,10 +1593,10 @@ LoadPalettes:
ld c, a
ld a, [hli]
ld b, a
ld a, [hLoadedROMBank]
ldh a, [hLoadedROMBank]
push af
ld a, [hli]
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
push hl
ld h, b
@ -1609,7 +1612,7 @@ LoadPalettes:
jr nz, .loadColor
pop hl
pop af
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
jr .loop
@ -1684,7 +1687,7 @@ Func_1a89: ; 0x1a89
ret
.asm_1a9f
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
bit 1, a
jp nz, Func_1bd3
rst AdvanceFrame
@ -1742,10 +1745,10 @@ Func_1ae2: ; 0x1ae2
ld a, [wd869]
ld h, a
add hl, bc
ld a, [hLoadedROMBank]
ldh a, [hLoadedROMBank]
push af
ld a, [wd86a]
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
REPT 15
ld a, [hli]
@ -1756,7 +1759,7 @@ ENDR
ld [de], a
inc de
pop af
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
pop hl
pop bc
@ -1776,7 +1779,7 @@ Func_1b3d: ; 0x1b3d
ret
.asm_1b56
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
bit BIT_B_BUTTON, a
jp nz, Func_1bd3
rst AdvanceFrame
@ -1798,7 +1801,7 @@ Func_1b60: ; 0x1b60
ret
.asm_1b7e
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
bit BIT_B_BUTTON, a
jp nz, Func_1bd3
rst AdvanceFrame
@ -1818,7 +1821,7 @@ Func_1b88: ; 0x1b88
ret
.asm_1b9d
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
bit BIT_B_BUTTON, a
jp nz, Func_1bd3
rst AdvanceFrame
@ -1875,10 +1878,10 @@ Unused_Func_1ed9:
ld d, $0
sla e
rl d
ld a, [hLoadedROMBank]
ldh a, [hLoadedROMBank]
push af
ld a, $2
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ld hl, $4f06
jr asm_1f3b
@ -1892,10 +1895,10 @@ Unused_Func_1ef2:
ld d, $0
sla e
rl d
ld a, [hLoadedROMBank]
ldh a, [hLoadedROMBank]
push af
ld a, $2
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ld hl, $4f06
jr asm_1f3b
@ -1910,10 +1913,10 @@ LoadSpriteData2: ; 0x1f0b
ld d, $0
sla e
rl d
ld a, [hLoadedROMBank]
ldh a, [hLoadedROMBank]
push af
ld a, Bank(SpriteDataPointers2)
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ld hl, SpriteDataPointers2
jr asm_1f3b
@ -1928,10 +1931,10 @@ LoadSpriteData: ; 0x1f24
ld d, $0
sla e
rl d ; multiply de by 2
ld a, [hLoadedROMBank]
ldh a, [hLoadedROMBank]
push af
ld a, Bank(SpriteDataPointers)
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ld hl, SpriteDataPointers
asm_1f3b: ; 0x1f3b
@ -1966,7 +1969,7 @@ asm_1f3b: ; 0x1f3b
ld a, l
ld [wSpriteBufferSize], a
pop af
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
pop hl
pop de
@ -1982,10 +1985,10 @@ Unused_Func_1f68:
ld d, $0
sla e
rl d
ld a, [hLoadedROMBank]
ldh a, [hLoadedROMBank]
push af
ld a, $2
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ld hl, $4f06
jr asm_1fca
@ -1999,10 +2002,10 @@ Unused_Func_1f81:
ld d, $0
sla e
rl d
ld a, [hLoadedROMBank]
ldh a, [hLoadedROMBank]
push af
ld a, $2
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ld hl, $4f06
jr asm_1fca
@ -2015,10 +2018,10 @@ Func_1f9a:
ld d, $0
sla e
rl d
ld a, [hLoadedROMBank]
ldh a, [hLoadedROMBank]
push af
ld a, BANK(SpriteDataPointers2)
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ld hl, SpriteDataPointers2
jr asm_1fca
@ -2031,10 +2034,10 @@ Func_1fb3:
ld d, $0
sla e
rl d
ld a, [hLoadedROMBank]
ldh a, [hLoadedROMBank]
push af
ld a, BANK(SpriteDataPointers)
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ld hl, SpriteDataPointers
asm_1fca:
@ -2073,7 +2076,7 @@ asm_1fca:
ld a, l
ld [wSpriteBufferSize], a
pop af
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
pop hl
pop de
@ -2133,43 +2136,43 @@ CallTable_2049: ; 0x2049
LoadDexVWFCharacter: ; 0x206d
; Loads a single variable-width-font character used in various parts of the Pokedex screen.
ld a, [hLoadedROMBank]
ldh a, [hLoadedROMBank]
push af
ld a, Bank(LoadDexVWFCharacter_)
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
call LoadDexVWFCharacter_
jr c, .asm_2084
pop af
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
and a
ret
.asm_2084
pop af
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
scf
ret
Func_208c: ; 0x208c
ld a, [hLoadedROMBank]
ldh a, [hLoadedROMBank]
push af
ld a, Bank(Func_8ee0)
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
call Func_8ee0
jr c, .asm_20a3
pop af
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
and a
ret
.asm_20a3
pop af
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
scf
ret
@ -2178,7 +2181,7 @@ MultiplyBbyCUnsigned: ; 0x20ab
; u16 bc = (u8)b * (u8)c
push af
xor a
ld [hSignedMathSignBuffer], a
ldh [hSignedMathSignBuffer], a
jr MultiplyBbyCSigned.asm_20c6
MultiplyBbyCSigned:
@ -2186,7 +2189,7 @@ MultiplyBbyCSigned:
push af
ld a, b
xor c
ld [hSignedMathSignBuffer], a
ldh [hSignedMathSignBuffer], a
bit 7, b
jr z, .asm_20be
ld a, b
@ -2252,7 +2255,7 @@ MultiplyBbyCSigned:
rr l
ld b, h
ld c, l
ld a, [hSignedMathSignBuffer]
ldh a, [hSignedMathSignBuffer]
rlca
jr nc, .done
ld a, c
@ -2278,7 +2281,7 @@ MultiplyVectorComponentByAngleFactor: ; 0x210b
push hl
ld a, b
xor d
ld [hSignedMathSignBuffer2], a
ldh [hSignedMathSignBuffer2], a
bit 7, b
jr z, .positive
; negate bc
@ -2307,7 +2310,7 @@ MultiplyVectorComponentByAngleFactor: ; 0x210b
ld c, e
call MultiplyBbyCUnsigned
add hl, bc
ld a, [hSignedMathSignBuffer2]
ldh a, [hSignedMathSignBuffer2]
rlca
jr nc, .positive2
; negate hl
@ -2337,7 +2340,7 @@ Sine: ; 0x2149
; Output: e = sin(a)
; d = 0 if sin(a) is positive, $ff if sin(a) is negative
push hl
ld [hSignedMathSignBuffer], a
ldh [hSignedMathSignBuffer], a
and $7f ; ensure angle is between 0 and 180 degrees
cp $40
jr c, .firstQuadrant
@ -2352,7 +2355,7 @@ Sine: ; 0x2149
ld e, [hl]
pop hl
ld d, $0
ld a, [hSignedMathSignBuffer]
ldh a, [hSignedMathSignBuffer]
sla a
ret nc
ld d, $ff
@ -2461,24 +2464,24 @@ RotateVector: ; 0x21e7
push hl
push bc
push de
ld [hRotationAngleBuffer], a
ldh [hRotationAngleBuffer], a
call Cosine
ld a, e
ld [hCosineResultBuffer], a
ldh [hCosineResultBuffer], a
ld a, d
ld [hCosineResultBuffer + 1], a
ldh [hCosineResultBuffer + 1], a
; xComponent * cos(angle)
call MultiplyVectorComponentByAngleFactor
ld l, c
ld h, b
pop bc
push bc
ld a, [hRotationAngleBuffer]
ldh a, [hRotationAngleBuffer]
call Sine
ld a, e
ld [hSineResultBuffer], a
ldh [hSineResultBuffer], a
ld a, d
ld [hSineResultBuffer + 1], a
ldh [hSineResultBuffer + 1], a
; yComponent * sin(angle)
call MultiplyVectorComponentByAngleFactor
add hl, bc ; hl = xComponent * cos(angle) + yComponent * sin(angle)
@ -2486,9 +2489,9 @@ RotateVector: ; 0x21e7
pop bc
push hl
push de
ld a, [hSineResultBuffer]
ldh a, [hSineResultBuffer]
ld e, a
ld a, [hSineResultBuffer + 1]
ldh a, [hSineResultBuffer + 1]
cpl
ld d, a
; xComponent * -sin(angle)
@ -2496,9 +2499,9 @@ RotateVector: ; 0x21e7
ld l, c
ld h, b
pop bc
ld a, [hCosineResultBuffer]
ldh a, [hCosineResultBuffer]
ld e, a
ld a, [hCosineResultBuffer + 1]
ldh a, [hCosineResultBuffer + 1]
ld d, a
; yComponent * cos(angle)
call MultiplyVectorComponentByAngleFactor
@ -2682,10 +2685,10 @@ CheckStageCollision: ; 0x22b5
ld a, [wStageCollisionMapPointer + 1]
ld b, a
add hl, bc ; hl = address of ball tile's collision attribute
ld a, [hLoadedROMBank]
ldh a, [hLoadedROMBank]
push af
ld a, [wStageCollisionMapBank]
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ld bc, 32 - 1 ; stage's number of tiles wide - 1
ld a, [hli]
@ -2698,12 +2701,12 @@ CheckStageCollision: ; 0x22b5
ld a, [hl]
ld [wLowerRightCollisionAttribute], a
pop af
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ld a, [hLoadedROMBank]
ldh a, [hLoadedROMBank]
push af
ld a, [wStageCollisionMasksBank]
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ld a, [wSubTileBallXPos]
sla a
@ -2781,7 +2784,7 @@ CheckStageCollision: ; 0x22b5
dec b
jr nz, .testCollisionPointLoop
pop af
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ld hl, wCollisionPointTests
ld de, wd7d9
@ -2867,10 +2870,10 @@ CheckStageCollision: ; 0x22b5
ld [wIsBallColliding], a
and a
ret z
ld a, [hLoadedROMBank]
ldh a, [hLoadedROMBank]
push af
ld a, Bank(CollisionForceAngles)
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
push de
; Based on the start and end collision point indices, look
@ -2906,7 +2909,7 @@ CheckStageCollision: ; 0x22b5
ld [wBallXPos + 1], a
pop de
pop af
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ld a, d
swap a
@ -3242,7 +3245,7 @@ LoadFlippersPalette: ; 0x2862
ld a, [wFlippersDisabled]
and a
jr nz, .flippersDisabled
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .done
ld a, Bank(ActiveFlippersPalette)
@ -3254,7 +3257,7 @@ LoadFlippersPalette: ; 0x2862
ret
.flippersDisabled
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr z, .done2
ld a, Bank(DisabledFlippersPalette)

View File

@ -1,9 +1,9 @@
PlaySong: ; 0x490
ld a, [hLoadedROMBank]
ldh a, [hLoadedROMBank]
push af
ld a, [wCurrentSongBank]
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ld a, e
ld [wStageSong], a
@ -11,7 +11,7 @@ PlaySong: ; 0x490
ld [wStageSongBank], a
call PlaySong_BankF ; this function is replicated in multiple banks.
pop af
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ret
@ -31,14 +31,14 @@ PlaySoundEffect: ; 0x4af
ld a, d
ld [wSFXTimer], a
ld d, $0
ld a, [hLoadedROMBank]
ldh a, [hLoadedROMBank]
push af
ld a, [wCurrentSongBank]
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
call PlaySoundEffect_BankF ; this function is replicated in multiple banks
pop af
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ret
@ -61,26 +61,26 @@ PlaySFXIfNoneActive: ; 0x4d8
PlayCry: ; 0x4ef
; Plays a Pokemon cry.
; Input: e = mon id
ld a, [hLoadedROMBank]
ldh a, [hLoadedROMBank]
push af
ld a, [wCurrentSongBank]
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
call PlayCry_BankF ; this function is replicated in multiple banks
pop af
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ret
UpdateSFX: ; 0x504
ld a, [hLoadedROMBank]
ldh a, [hLoadedROMBank]
push af
ld a, [wCurrentSongBank]
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
call Func_3c180
pop af
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ld a, [wd801]
inc a

View File

@ -77,11 +77,11 @@ FarCopyData: ; 0x666 spooky
; bc = number of bytes to copy
bit 7, h
jr nz, .copyFromSRAM
ld [hROMBankBuffer], a
ld a, [hLoadedROMBank]
ldh [hROMBankBuffer], a
ldh a, [hLoadedROMBank]
push af
ld a, [hROMBankBuffer]
ld [hLoadedROMBank], a
ldh a, [hROMBankBuffer]
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
scf
jr .copyData
@ -102,7 +102,7 @@ FarCopyData: ; 0x666 spooky
pop af
ret nc
pop af
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ret
@ -112,14 +112,14 @@ ReadByteFromBank: ; 0x68f
; Output: a = byte at a:hl
push de
ld d, a
ld a, [hLoadedROMBank]
ldh a, [hLoadedROMBank]
ld e, a
ld a, d
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ld d, [hl]
ld a, e
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ld a, d
pop de
@ -179,11 +179,11 @@ LoadVideoData: ; 0x6a4
jp c, FarCopyCGBPals ; if lowest bit of bc is set
jp .nopJump
.nopJump
ld [hROMBankBuffer], a ; save bank of data to be loaded
ld a, [hLoadedROMBank]
ldh [hROMBankBuffer], a ; save bank of data to be loaded
ldh a, [hLoadedROMBank]
push af
ld a, [hROMBankBuffer] ; a contains bank of data to be loaded
ld [hLoadedROMBank], a
ldh a, [hROMBankBuffer] ; a contains bank of data to be loaded
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a ; switch bank to the bank of data to be loaded
srl b
rr c
@ -201,7 +201,7 @@ LoadVideoData: ; 0x6a4
xor a
ld [rVBK], a ; set VRAM Bank to Bank 0
pop af
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a ; reload the previous ROM Bank
ret
@ -210,11 +210,11 @@ FarCopyCGBPals: ; 0x6fd
; hl: source
; e: dest offset
; bc: size
ld [hROMBankBuffer], a ; save bank of data to be loaded
ld a, [hLoadedROMBank]
ldh [hROMBankBuffer], a ; save bank of data to be loaded
ldh a, [hLoadedROMBank]
push af
ld a, [hROMBankBuffer] ; a contains bank of data to be loaded
ld [hLoadedROMBank], a
ldh a, [hROMBankBuffer] ; a contains bank of data to be loaded
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a ; switch bank to the bank of data to be loaded
ld a, e
bit 6, a
@ -228,7 +228,7 @@ FarCopyCGBPals: ; 0x6fd
call .copyPaletteData
.no_obp
pop af
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ret
@ -263,11 +263,11 @@ LoadVRAMData: ; 0x73f
; bc = number of bytes to copy
bit 7, h
jr nz, .asm_752
ld [hROMBankBuffer], a
ld a, [hLoadedROMBank]
ldh [hROMBankBuffer], a
ldh a, [hLoadedROMBank]
push af
ld a, [hROMBankBuffer]
ld [hLoadedROMBank], a
ldh a, [hROMBankBuffer]
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
scf
jr .asm_756
@ -322,7 +322,7 @@ LoadVRAMData: ; 0x73f
pop af
ret nc
pop af
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ret
@ -334,11 +334,11 @@ FarCopyPalettes: ; 0x790
jp nz, Func_7dc
bit 7, h
jr nz, .asm_7ad
ld [hROMBankBuffer], a
ld a, [hLoadedROMBank]
ldh [hROMBankBuffer], a
ldh a, [hLoadedROMBank]
push af
ld a, [hROMBankBuffer]
ld [hLoadedROMBank], a
ldh a, [hROMBankBuffer]
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
scf
jr .asm_7b1
@ -377,18 +377,18 @@ FarCopyPalettes: ; 0x790
pop af
ret nc
pop af
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ret
Func_7dc: ; 0x7dc
bit 7, h
jr nz, .asm_7ef
ld [hROMBankBuffer], a
ld a, [hLoadedROMBank]
ldh [hROMBankBuffer], a
ldh a, [hLoadedROMBank]
push af
ld a, [hROMBankBuffer]
ld [hLoadedROMBank], a
ldh a, [hROMBankBuffer]
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
scf
jr .asm_7f3
@ -461,7 +461,7 @@ Func_7dc: ; 0x7dc
pop af
ret nc
pop af
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ret
@ -498,11 +498,11 @@ Func_858: ; 0x858
LoadBillboardPaletteMap: ; 0x86f
; Loads the background palette map for a 6x4-tile billboard picture.
ld [hROMBankBuffer], a
ld a, [hLoadedROMBank]
ldh [hROMBankBuffer], a
ldh a, [hLoadedROMBank]
push af
ld a, [hROMBankBuffer]
ld [hLoadedROMBank], a
ldh a, [hROMBankBuffer]
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ld a, [rLCDC]
bit 7, a
@ -538,7 +538,7 @@ LoadBillboardPaletteMap: ; 0x86f
xor a
ld [rVBK], a
pop af
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ret
@ -575,16 +575,16 @@ LoadBillboardPaletteMap: ; 0x86f
dec b
jr nz, .asm_8ae
pop af
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ret
Func_8e1: ; 0x8e1
ld [hROMBankBuffer], a
ld a, [hLoadedROMBank]
ldh [hROMBankBuffer], a
ldh a, [hLoadedROMBank]
push af
ld a, [hROMBankBuffer]
ld [hLoadedROMBank], a
ldh a, [hROMBankBuffer]
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ld a, [rLCDC]
bit 7, a
@ -598,7 +598,7 @@ Func_8e1: ; 0x8e1
dec b
jr nz, .asm_8f5
pop af
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ret
@ -613,6 +613,6 @@ Func_8e1: ; 0x8e1
dec b
jr nz, .asm_907
pop af
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ret

View File

@ -71,7 +71,7 @@ Func_1c32: ; 0x1c32
Func_1c39:
xor a
ld [hNumFramesSinceLastVBlank], a
ldh [hNumFramesSinceLastVBlank], a
ld a, $1
ld [wd8e9], a
.asm_1c41
@ -80,7 +80,7 @@ Func_1c39:
ld a, [$ff00+c]
and b
jr z, Func_1c50
ld a, [hNumFramesSinceLastVBlank]
ldh a, [hNumFramesSinceLastVBlank]
and a
jr nz, Func_1ca1
jr .asm_1c41

View File

@ -23,22 +23,22 @@ ReadJoypad: ; 0xab8
and $f
or b
cpl ; a contains currently-pressed buttons
ld [hJoypadState], a
ldh [hJoypadState], a
ld a, $30
ld [rJOYP], a
ld a, [hJoypadState]
ldh a, [hJoypadState]
ld hl, hPreviousJoypadState
xor [hl] ; a contains buttons that are different from previous frame
push af
ld hl, hJoypadState
and [hl] ; a contains newly-pressed buttons compared to last frame
ld [hNewlyPressedButtons], a
ld [hPressedButtons], a
ldh [hNewlyPressedButtons], a
ldh [hPressedButtons], a
pop af
ld hl, hPreviousJoypadState
and [hl] ; a contains newly-pressed buttons compared to two frames ago
ld [hPrevPreviousJoypadState], a
ld a, [hJoypadState]
ldh [hPrevPreviousJoypadState], a
ldh a, [hJoypadState]
and a
jr z, .asm_b15
ld hl, hPreviousJoypadState
@ -49,26 +49,26 @@ ReadJoypad: ; 0xab8
ld hl, hJoyRepeatDelay
dec [hl]
jr nz, .asm_b1a
ld a, [hJoypadState]
ld [hPressedButtons], a
ldh a, [hJoypadState]
ldh [hPressedButtons], a
ld a, [wd807]
ld [hJoyRepeatDelay], a
ldh [hJoyRepeatDelay], a
jr .asm_b1a
.asm_b15
ld a, [wd806]
ld [hJoyRepeatDelay], a
ldh [hJoyRepeatDelay], a
.asm_b1a
ld a, [hJoypadState]
ld [hPreviousJoypadState], a
ldh a, [hJoypadState]
ldh [hPreviousJoypadState], a
ld hl, wJoypadStatesPersistent
ld a, [hJoypadState]
ldh a, [hJoypadState]
or [hl]
ld [hli], a
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
or [hl]
ld [hli], a
ld a, [hPressedButtons]
ldh a, [hPressedButtons]
or [hl]
ld [hli], a
ret
@ -82,14 +82,14 @@ ClearPersistentJoypadStates: ; 0xb2e
ret
IsKeyPressed2: ; 0xb36
ld a, [hJoypadState]
ldh a, [hJoypadState]
and [hl]
jr z, .asm_b3e
cp [hl]
jr z, .asm_b48
.asm_b3e
inc hl
ld a, [hJoypadState]
ldh a, [hJoypadState]
and [hl]
ret z
cp [hl]
@ -107,22 +107,22 @@ IsKeyPressed: ; 0xb4c
; input: hl = pointer to key config byte pair (e.g. wKeyConfigLeftFlipper)
; output: zero flag is set if a corresponding key is pressed
; zero flag is reset if no corresponding key is pressed
ld a, [hJoypadState]
ldh a, [hJoypadState]
and [hl]
jr z, .asm_b58
cp [hl]
jr nz, .asm_b58
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
and [hl]
ret nz
.asm_b58
inc hl
ld a, [hJoypadState]
ldh a, [hJoypadState]
and [hl]
ret z
cp [hl]
jr nz, .asm_b64
ld a, [hNewlyPressedButtons]
ldh a, [hNewlyPressedButtons]
and [hl]
ret

View File

@ -1,12 +1,12 @@
SetAllPalettesWhite: ; 0xb66
; Sets all BG and OBJ palettes to white.
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr nz, .gameboyColor
xor a
ld [hBGP], a
ld [hOBP0], a
ld [hOBP1], a
ldh [hBGP], a
ldh [hOBP0], a
ldh [hOBP1], a
ret
.gameboyColor
@ -65,7 +65,7 @@ SetAllPalettesWhite: ; 0xb66
FadeIn: ; 0xbbe
; Fades palettes in from white screen.
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jp nz, FadeIn_GameboyColor
; Regular Gameboy
@ -250,7 +250,7 @@ GetNextFadedPalette: ; 0xc60
FadeOut: ; 0xcb5
; Fades palettes out to a white screen.
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jp nz, FadeOut_GameboyColor
; Regular Gameboy

View File

@ -1,10 +1,10 @@
FarSendSGBPackets: ; 0x12a1
; send 16*b bytes at a:hl via the joypad register
ld [hROMBankBuffer], a
ld a, [hLoadedROMBank]
ldh [hROMBankBuffer], a
ldh a, [hLoadedROMBank]
push af
ld a, [hROMBankBuffer]
ld [hLoadedROMBank], a
ldh a, [hROMBankBuffer]
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ld a, [hl]
and $7
@ -48,7 +48,7 @@ FarSendSGBPackets: ; 0x12a1
.quit
pop af
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ret
@ -112,11 +112,11 @@ InitSGB: ; 0x12f8
ret
FarSendSGBPacket_BGMapRows: ; 0x1353
ld [hROMBankBuffer], a
ld a, [hLoadedROMBank]
ldh [hROMBankBuffer], a
ldh a, [hLoadedROMBank]
push af
ld a, [hROMBankBuffer]
ld [hLoadedROMBank], a
ldh a, [hROMBankBuffer]
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
push af
push hl
@ -149,17 +149,17 @@ FarSendSGBPacket_BGMapRows: ; 0x1353
call FarSendSGBPackets
ld bc, $0006
call SGBWait1750
ld a, [hBGP]
ldh a, [hBGP]
ld [rBGP], a
ld a, [hLCDC]
ldh a, [hLCDC]
ld [rLCDC], a
pop af
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ret
SendSGBBorder: ; 0x13a8
ld a, [hSGBFlag]
ldh a, [hSGBFlag]
and a
ret z
ld bc, $0078
@ -243,10 +243,10 @@ SendSGBBorder: ; 0x13a8
ret
SignalStartSGBBorderTransmission: ; 0x1489
ld a, [hSGBFlag]
ldh a, [hSGBFlag]
and a
ret z
ld a, [hSGBInit]
ldh a, [hSGBInit]
and a
ret nz
ld a, BANK(Data_3aa66)
@ -255,16 +255,16 @@ SignalStartSGBBorderTransmission: ; 0x1489
ld bc, $0004
call SGBWait1750
ld a, $ff
ld [hSGBInit], a
ldh [hSGBInit], a
ret
SGBNormal: ; 0x14a4
ld a, [hSGBFlag]
ldh a, [hSGBFlag]
and a
ret z
ld bc, $0002
call SGBWait1750
ld a, [hSGBInit]
ldh a, [hSGBInit]
and a
ret z
ld a, BANK(Data_3aa76)
@ -273,5 +273,5 @@ SGBNormal: ; 0x14a4
ld bc, $0004
call SGBWait1750
xor a
ld [hSGBInit], a
ldh [hSGBInit], a
ret

View File

@ -2,7 +2,7 @@ INCLUDE "text/scrolling_text.asm"
EnableBottomText: ; 0x30db
ld a, $86
ld [hWY], a ;force text bar up
ldh [hWY], a ;force text bar up
ld a, $1
ld [wBottomTextEnabled], a
ld [wDisableDrawScoreboardInfo], a
@ -186,7 +186,7 @@ LoadSpecialTextChar: ; 0x31e1 copy special font data into VRAM based on the cont
push de
push hl
ld c, a
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
ld a, c
jr z, .asm_31ed
@ -682,7 +682,7 @@ UpdateBottomText: ; 0x33e3
ret nz ;if text has displayed, we are done, else
ld [wBottomTextEnabled], a ; disable bottom text
call FillBottomMessageBufferWithBlackTile ;fill with default data?
ld a, [hGameBoyColorFlag]
ldh a, [hGameBoyColorFlag]
and a
jr nz, .gameboyColor
ld a, Bank(StageRedFieldTopStatusBarSymbolsGfx_GameBoy)
@ -702,9 +702,9 @@ UpdateBottomText: ; 0x33e3
MainLoopUntilTextIsClear: ; 0x3475
xor a
ld [hJoypadState], a
ld [hNewlyPressedButtons], a
ld [hPressedButtons], a
ldh [hJoypadState], a
ldh [hNewlyPressedButtons], a
ldh [hPressedButtons], a
call HandleTilts
ld a, [wCurrentStage]
bit 0, a ;handle flippers if the stage has any

View File

@ -204,10 +204,10 @@ ApplyTiltForces: ; 0x36c1
sla c
rl b
add hl, bc
ld a, [hLoadedROMBank]
ldh a, [hLoadedROMBank]
push af
ld a, BANK(TiltLeftOnlyForce)
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ld a, [wBallXVelocity]
add [hl]
@ -225,7 +225,7 @@ ApplyTiltForces: ; 0x36c1
adc [hl]
ld [wBallYVelocity + 1], a
pop af
ld [hLoadedROMBank], a
ldh [hLoadedROMBank], a
ld [MBC5RomBank], a
ret

117
hram.asm
View File

@ -1,63 +1,78 @@
DEF hPushSprite EQU $FF80
SECTION "HRAM", HRAM
DEF hFarCallTempA EQU $FF8A
DEF hFarCallTempE EQU $FF8B
DEF hJoypadState EQU $FF98 ; current state of buttons. See joy_constants.asm for which bits
; correspond to which buttons.
DEF hNewlyPressedButtons EQU $FF99 ; buttons that were pressed in the current frame.
DEF hPressedButtons EQU $FF9A ; buttons that were pressed last frame and current frame(?)
DEF hPrevPreviousJoypadState EQU $FF9B ; joypad state from two frames ago. See joy_constants.asm for
hPushSprite :: ds 10 ; 0xFF80
.end ::
hFarCallTempA :: db ; 0xFF8A
hFarCallTempE :: db ; 0xFF8B
hRotationAngleBuffer :: db ; 0xFF8C
hCosineResultBuffer :: dw ; 0xFF8D
hSineResultBuffer :: dw ; 0xFF8F
ds 7
hJoypadState :: db ; 0xFF98 ; current state of buttons. See joy_constants.asm for which bits
; correspond to which buttons.
hNewlyPressedButtons :: db ; 0xFF99 ; buttons that were pressed in the current frame.
hPressedButtons :: db ; 0xFF9A ; buttons that were pressed last frame and current frame(?)
hPrevPreviousJoypadState :: db ; 0xFF9B ; joypad state from two frames ago. See joy_constants.asm for
; which bits correspond to which buttons. (need a better name for this...)
DEF hPreviousJoypadState EQU $FF9C ; prevoius frame's joypad state. See joy_constants.asm for
hPreviousJoypadState :: db ; 0xFF9C ; previous frame's joypad state. See joy_constants.asm for
; which bits correspond to which buttons.
DEF hJoyRepeatDelay EQU $FF9D
hJoyRepeatDelay :: db ; 0xFF9D
DEF hLCDC EQU $FF9E
DEF hSTAT EQU $FF9F
DEF hSCY EQU $FFA0
DEF hSCX EQU $FFA1
DEF hLYC EQU $FFA2
DEF hBGP EQU $FFA3
DEF hOBP0 EQU $FFA4
DEF hOBP1 EQU $FFA5
DEF hWY EQU $FFA6
DEF hWX EQU $FFA7
DEF hLastLYC EQU $FFA8
DEF hNextLYCSub EQU $FFA9
DEF hLYCSub EQU $FFAA
DEF hNextFrameHBlankSCX EQU $FFAB
DEF hHBlankSCX EQU $FFAC
DEF hNextFrameHBlankSCY EQU $FFAD
DEF hHBlankSCY EQU $FFAE
DEF hLCDCMask EQU $FFAF
DEF hStatIntrRoutine EQU $FFB0
hLCDC :: db ; 0xFF9E
hSTAT :: db ; 0xFF9F
hSCY :: db ; 0xFFA0
hSCX :: db ; 0xFFA1
hLYC :: db ; 0xFFA2
hBGP :: db ; 0xFFA3
hOBP0 :: db ; 0xFFA4
hOBP1 :: db ; 0xFFA5
hWY :: db ; 0xFFA6
hWX :: db ; 0xFFA7
hLastLYC :: db ; 0xFFA8
hNextLYCSub :: db ; 0xFFA9
hLYCSub :: db ; 0xFFAA
hNextFrameHBlankSCX :: db ; 0xFFAB
hHBlankSCX :: db ; 0xFFAC
hNextFrameHBlankSCY :: db ; 0xFFAD
hHBlankSCY :: db ; 0xFFAE
hLCDCMask :: db ; 0xFFAF
hStatIntrRoutine :: db ; 0xFFB0
DEF hNumFramesSinceLastVBlank EQU $FFB2
DEF hFrameCounter EQU $FFB3
DEF hVBlankCount EQU $FFB4
DEF hStatIntrFired EQU $FFB5
DEF hSignedMathSignBuffer EQU $FFB6
DEF hSignedMathSignBuffer2 EQU $FFB7
ds 1
DEF hBallXPos EQU $FFBA
DEF hBallYPos EQU $FFBC
hNumFramesSinceLastVBlank :: db ; 0xFFB2
hFrameCounter :: db ; 0xFFB3
hVBlankCount :: db ; 0xFFB4
hStatIntrFired :: db ; 0xFFB5
hSignedMathSignBuffer :: db ; 0xFFB6
hSignedMathSignBuffer2 :: db ; 0xFFB7
DEF hFlipperStateChange EQU $FFC0
DEF hPreviousFlipperState EQU $FFC2
DEF hFlipperState EQU $FFC3
ds 2
DEF hRotationAngleBuffer EQU $FF8C
DEF hCosineResultBuffer EQU $FF8D
DEF hSineResultBuffer EQU $FF8F
hBallXPos :: dw ; 0xFFBA
hBallYPos :: dw ; 0xFFBC
DEF hFlipperCollisionRadius EQU $FFBF
ds 1
DEF hFFC4 = $FFC4
hFlipperCollisionRadius :: db ; 0xFFBF
DEF hLoadedROMBank EQU $FFF8 ; this is updated whenever the code switches ROM Banks
DEF hROMBankBuffer EQU $FFFA
DEF hSGBFlag EQU $FFFB
DEF hSGBInit EQU $FFFC
DEF hGameBoyColorFlagBackup EQU $FFFD
DEF hGameBoyColorFlag EQU $FFFE ; this is set to $01 if a GameBoy Color is running the game. $00, otherwise.
hFlipperStateChange :: dw ; 0xFFC0
hPreviousFlipperState :: db ; 0xFFC2
hFlipperState :: db ; 0xFFC3
hFFC4 :: db ; 0xFFC4
SECTION "HRAM.2", HRAM
hLoadedROMBank :: db ; 0xFFF8 ; this is updated whenever the code switches ROM Banks
ds 1
hROMBankBuffer :: db ; 0xFFFA
hSGBFlag :: db ; 0xFFFB
hSGBInit :: db ; 0xFFFC
hGameBoyColorFlagBackup :: db ; 0xFFFD
hGameBoyColorFlag :: db ; 0xFFFE ; this is set to $01 if a GameBoy Color is running the game. $00, otherwise.

View File

@ -77,7 +77,7 @@ MACRO bigdw ; big-endian word
ENDM
MACRO callba
ld [hFarCallTempA], a
ldh [hFarCallTempA], a
IF _NARG > 1
ld a, BANK(\2)
ld hl, \2