; These routines manage gradual fading ; (e.g., entering a doorway) LoadGBPal:: ld a, [wMapPalOffset] ; tells if wCurMap is dark (requires HM5_FLASH?) ld b, a ld hl, FadePal4 ld a, l sub b ld l, a jr nc, .ok dec h .ok ld a, [hli] ldh [rBGP], a ld a, [hli] ldh [rOBP0], a ld a, [hli] ldh [rOBP1], a ret GBFadeInFromBlack:: ld hl, FadePal1 ld b, 4 jr GBFadeIncCommon GBFadeOutToWhite:: ld hl, FadePal6 ld b, 3 GBFadeIncCommon: ld a, [hli] ldh [rBGP], a ld a, [hli] ldh [rOBP0], a ld a, [hli] ldh [rOBP1], a ld c, 8 call DelayFrames dec b jr nz, GBFadeIncCommon ret GBFadeOutToBlack:: ld hl, FadePal4 + 2 ld b, 4 jr GBFadeDecCommon GBFadeInFromWhite:: ld hl, FadePal7 + 2 ld b, 3 GBFadeDecCommon: ld a, [hld] ldh [rOBP1], a ld a, [hld] ldh [rOBP0], a ld a, [hld] ldh [rBGP], a ld c, 8 call DelayFrames dec b jr nz, GBFadeDecCommon ret FadePal1:: dc 3,3,3,3, 3,3,3,3, 3,3,3,3 FadePal2:: dc 3,3,3,2, 3,3,3,2, 3,3,2,0 FadePal3:: dc 3,3,2,1, 3,2,1,0, 3,2,1,0 FadePal4:: dc 3,2,1,0, 3,1,0,0, 3,2,0,0 ; rBGP rOBP0 rOBP1 FadePal5:: dc 3,2,1,0, 3,1,0,0, 3,2,0,0 FadePal6:: dc 2,1,0,0, 2,0,0,0, 2,1,0,0 FadePal7:: dc 1,0,0,0, 1,0,0,0, 1,0,0,0 FadePal8:: dc 0,0,0,0, 0,0,0,0, 0,0,0,0