Clean up bg map and palette fade code in home.asm.

This commit is contained in:
yenatch 2014-05-31 00:35:15 -07:00
parent 6d64c3e01d
commit f59f03c685

212
home.asm
View file

@ -1336,70 +1336,36 @@ AutoBgMapTransfer:: ; 1d57 (0:1d57)
ld [H_AUTOBGTRANSFERPORTION],a ; store next portion ld [H_AUTOBGTRANSFERPORTION],a ; store next portion
ld b,6 ld b,6
; unrolled loop and using pop for speed
TransferBgRows:: ; 1d9e (0:1d9e) TransferBgRows:: ; 1d9e (0:1d9e)
; unrolled loop and using pop for speed
rept 20 / 2 - 1
pop de pop de
ld [hl],e ld [hl], e
inc l inc l
ld [hl],d ld [hl], d
inc l inc l
endr
pop de pop de
ld [hl],e ld [hl], e
inc l inc l
ld [hl],d ld [hl], d
inc l
pop de i ld a, 32 - (20 - 1)
ld [hl],e
inc l
ld [hl],d
inc l
pop de
ld [hl],e
inc l
ld [hl],d
inc l
pop de
ld [hl],e
inc l
ld [hl],d
inc l
pop de
ld [hl],e
inc l
ld [hl],d
inc l
pop de
ld [hl],e
inc l
ld [hl],d
inc l
pop de
ld [hl],e
inc l
ld [hl],d
inc l
pop de
ld [hl],e
inc l
ld [hl],d
inc l
pop de
ld [hl],e
inc l
ld [hl],d
ld a,13
add l add l
ld l,a ld l, a
jr nc,.noCarry jr nc, .ok
inc h inc h
.noCarry .ok
dec b dec b
jr nz,TransferBgRows jr nz, TransferBgRows
ld a,[H_SPTEMP]
ld h,a ld a, [H_SPTEMP]
ld a,[H_SPTEMP + 1] ld h, a
ld l,a ld a, [H_SPTEMP + 1]
ld sp,hl ; restore stack pointer ld l, a
ld sp, hl
ret ret
; Copies [H_VBCOPYBGNUMROWS] rows from H_VBCOPYBGSRC to H_VBCOPYBGDEST. ; Copies [H_VBCOPYBGNUMROWS] rows from H_VBCOPYBGSRC to H_VBCOPYBGDEST.
@ -1590,9 +1556,9 @@ UpdateMovingBgTiles::
ld a, [$ffd8] ld a, [$ffd8]
inc a inc a
ld [$ffd8], a ld [$ffd8], a
cp 20 cp $14
ret c ret c
cp 21 cp $15
jr z, .flower jr z, .flower
ld hl, vTileset + $14 * $10 ld hl, vTileset + $14 * $10
@ -1697,7 +1663,7 @@ rLCDC_DEFAULT EQU %11100011
ld sp, wStack ld sp, wStack
ld hl, wc000 ; start of WRAM ld hl, $c000 ; start of WRAM
ld bc, $2000 ; size of WRAM ld bc, $2000 ; size of WRAM
.loop .loop
ld [hl], 0 ld [hl], 0
@ -1907,102 +1873,78 @@ NOT_VBLANKED EQU 1
; These routines manage gradual fading ; These routines manage gradual fading
; (e.g., entering a doorway) ; (e.g., entering a doorway)
LoadGBPal:: ; 20ba (0:20ba) LoadGBPal::
ld a,[wd35d] ;tells if cur.map is dark (requires HM5_FLASH?) ld a, [wd35d] ;tells if cur.map is dark (requires HM5_FLASH?)
ld b,a ld b, a
ld hl,GBPalTable_00 ;16 ld hl, FadePal4
ld a,l ld a, l
sub b sub b
ld l,a ld l, a
jr nc,.jr0 jr nc, .ok
dec h dec h
.jr0 .ok
ld a,[hli] ld a, [hli]
ld [rBGP],a ld [rBGP], a
ld a,[hli] ld a, [hli]
ld [rOBP0],a ld [rOBP0], a
ld a,[hli] ld a, [hli]
ld [rOBP1],a ld [rOBP1], a
ret ret
GBFadeOut1:: ; 20d1 (0:20d1) GBFadeOut1::
ld hl,IncGradGBPalTable_01 ;0d ld hl, FadePal1
ld b,$04 ld b, 4
jr GBFadeOutCommon jr GBFadeOutCommon
GBFadeOut2:: ; 20d8 (0:20d8) GBFadeOut2::
ld hl,IncGradGBPalTable_02 ;1c ld hl, FadePal6
ld b,$03 ld b, 3
GBFadeOutCommon:: ; 20dd (0:20dd) GBFadeOutCommon::
ld a,[hli] ld a, [hli]
ld [rBGP],a ld [rBGP], a
ld a,[hli] ld a, [hli]
ld [rOBP0],a ld [rOBP0], a
ld a,[hli] ld a, [hli]
ld [rOBP1],a ld [rOBP1], a
ld c,8 ld c, 8
call DelayFrames call DelayFrames
dec b dec b
jr nz,GBFadeOutCommon jr nz, GBFadeOutCommon
ret ret
GBFadeIn1:: ; 20ef (0:20ef) GBFadeIn1::
ld hl,DecGradGBPalTable_01 ;18 ld hl, FadePal4 + 2
ld b,$04 ld b, 4
jr GBFadeInCommon jr GBFadeInCommon
GBFadeIn2:: ; 20f6 (0:20f6) GBFadeIn2::
ld hl,DecGradGBPalTable_02 ;21 ld hl, FadePal7 + 2
ld b,$03 ld b, 3
GBFadeInCommon:: ; 20fb (0:20fb) GBFadeInCommon::
ld a,[hld] ld a, [hld]
ld [rOBP1],a ld [rOBP1], a
ld a,[hld] ld a, [hld]
ld [rOBP0],a ld [rOBP0], a
ld a,[hld] ld a, [hld]
ld [rBGP],a ld [rBGP], a
ld c,8 ld c, 8
call DelayFrames call DelayFrames
dec b dec b
jr nz,GBFadeInCommon jr nz, GBFadeInCommon
ret ret
IncGradGBPalTable_01:: ; 210d (0:210d) FadePal1:: db %11111111, %11111111, %11111111
db %11111111 ;BG Pal FadePal2:: db %11111110, %11111110, %11111000
db %11111111 ;OBJ Pal 1 FadePal3:: db %11111001, %11100100, %11100100
db %11111111 ;OBJ Pal 2 FadePal4:: db %11100100, %11010000, %11100000
;and so on... ; rBGP rOBP0 rOBP1
db %11111110 FadePal5:: db %11100100, %11010000, %11100000
db %11111110 FadePal6:: db %10010000, %10000000, %10010000
db %11111000 FadePal7:: db %01000000, %01000000, %01000000
FadePal8:: db %00000000, %00000000, %00000000
db %11111001
db %11100100
db %11100100
GBPalTable_00:: ; 2116 (0:2116)
db %11100100
db %11010000
DecGradGBPalTable_01:: ; 2118 (0:2118)
db %11100000
;19
db %11100100
db %11010000
db %11100000
IncGradGBPalTable_02:: ; 211c (0:211c)
db %10010000
db %10000000
db %10010000
db %01000000
db %01000000
DecGradGBPalTable_02:: ; 2121 (0:2121)
db %01000000
db %00000000
db %00000000
db %00000000
Serial:: ; 2125 (0:2125) Serial:: ; 2125 (0:2125)
push af push af