pokecrystal-board/predef/sgb.asm
2015-12-16 21:57:42 -05:00

639 lines
8.2 KiB
NASM

Predef_LoadSGBLayout: ; 864c
; LoadSGBLayout
call CheckCGB
jp nz, Predef_LoadSGBLayoutCGB
ld a, b
cp SCGB_RAM
jr nz, .not_ram
ld a, [SGBPredef]
.not_ram
cp SCGB_FC
jp z, Function8ade
ld l, a
ld h, 0
add hl, hl
ld de, .Jumptable
add hl, de
ld a, [hli]
ld h, [hl]
ld l, a
ld de, .Finish
push de
jp [hl]
; 866f
.Jumptable: ; 866f
dw .SGB00
dw .SGB01
dw .SGB02
dw .SGB03
dw .SGB04
dw .SGB05
dw .SGB06
dw .SGB07
dw .SGB08
dw .SGB09
dw .SGB0a
dw .SGB0b
dw .SGB0c
dw .SGB0d
dw .SGB0e
dw .SGB0f
dw .SGB10
dw .SGB11
dw .SGB12
dw .SGB13
dw .SGB14
dw .SGB15
dw .SGB16
dw .SGB17
dw .SGB18
dw .SGB19
dw .SGB1a
dw .SGB1b
dw .SGB1c
dw .SGB1d
dw .SGB1e
; 86ad
.SGB00: ; 86ad
ld hl, PalPacket_9c66
ld de, BlkPacket_9aa6
ret
; 86b4
.SGB01: ; 86b4
ld hl, BlkPacket_9aa6
call Function9809
ld hl, PalPacket_9ce6
ld de, wcda9
ld bc, $0010
call CopyBytes
ld a, [PlayerHPPal]
ld l, a
ld h, 0
rept 2
add hl, hl
endr
ld de, Palettes_a8be
add hl, de
ld a, [hli]
ld [wcda9 + 3], a
ld a, [hli]
ld [wcda9 + 4], a
ld a, [hli]
ld [wcda9 + 5], a
ld a, [hl]
ld [wcda9 + 6], a
ld a, [EnemyHPPal]
ld l, a
ld h, $0
rept 2
add hl, hl
endr
ld de, Palettes_a8be
add hl, de
ld a, [hli]
ld [wcda9 + 9], a
ld a, [hli]
ld [wcda9 + 10], a
ld a, [hli]
ld [wcda9 + 11], a
ld a, [hl]
ld [wcda9 + 12], a
ld hl, PalPacket_9cf6
ld de, wcda9 + $10
ld bc, $0010
call CopyBytes
call GetBattlemonBackpicPalettePointer
ld a, [hli]
ld [wcda9 + $13], a
ld a, [hli]
ld [wcda9 + $14], a
ld a, [hli]
ld [wcda9 + $15], a
ld a, [hl]
ld [wcda9 + $16], a
call GetEnemyFrontpicPalettePointer
ld a, [hli]
ld [wcda9 + $19], a
ld a, [hli]
ld [wcda9 + $1a], a
ld a, [hli]
ld [wcda9 + $1b], a
ld a, [hl]
ld [wcda9 + $1c], a
ld hl, wcda9
ld de, wcda9 + $10
ld a, SCGB_01
ld [SGBPredef], a
ret
; 873c
.SGB0e: ; 873c
ld hl, PalPacket_9bd6
ld de, wcda9
ld bc, $0010
call CopyBytes
ld hl, wcda9 + 1
ld [hl], $10
rept 2
inc hl
endr
ld a, [PlayerHPPal]
add $2f
ld [hl], a
ld hl, wcda9
ld de, BlkPacket_9ad6
ret
; 875c
.SGB02: ; 875c
ld hl, PalPacket_9c76
ld de, BlkPacket_9a86
ret
; 8763
.SGB03: ; 8763
ld hl, PalPacket_9ce6
ld de, wcda9
ld bc, $0010
call CopyBytes
ld a, [wcda1]
ld l, a
ld h, $0
rept 2
add hl, hl
endr
ld de, Palettes_a8be
add hl, de
ld a, [hli]
ld [wcda9 + 3], a
ld a, [hli]
ld [wcda9 + 4], a
ld a, [hli]
ld [wcda9 + 5], a
ld a, [hl]
ld [wcda9 + 6], a
ld a, [CurPartySpecies]
ld bc, wd10e + 21
call GetPlayerOrMonPalettePointer
ld a, [hli]
ld [wcda9 + 9], a
ld a, [hli]
ld [wcda9 + 10], a
ld a, [hli]
ld [wcda9 + 11], a
ld a, [hl]
ld [wcda9 + 12], a
ld hl, wcda9
ld de, BlkPacket_9ac6
ret
; 87ab
.SGB0a: ; 87ab
ld hl, PalPacket_9c56
ld de, wcda9 + 1
ret
; 87b2
.SGB04: ; 87b2
ld hl, PalPacket_9ce6
ld de, wcda9
ld bc, $0010
call CopyBytes
ld hl, wcda9 + 3
ld [hl], $9f
inc hl
ld [hl], $2a
inc hl
ld [hl], $5a
inc hl
ld [hl], $19
ld a, [CurPartySpecies]
call GetMonPalettePointer_
ld a, [hli]
ld [wcda9 + 9], a
ld a, [hli]
ld [wcda9 + 10], a
ld a, [hli]
ld [wcda9 + 11], a
ld a, [hl]
ld [wcda9 + 12], a
ld hl, wcda9
ld de, BlkPacket_9ae6
ret
; 87e9
.SGB17: ; 87e9
ld hl, PalPacket_9ce6
ld de, wcda9
ld bc, $0010
call CopyBytes
ld hl, wcda9 + 3
ld [hl], $9f
inc hl
ld [hl], $2a
inc hl
ld [hl], $5a
inc hl
ld [hl], $19
ld a, [CurPartySpecies]
ld bc, wd10e + 21
call GetPlayerOrMonPalettePointer
ld a, [hli]
ld [wcda9 + 9], a
ld a, [hli]
ld [wcda9 + 10], a
ld a, [hli]
ld [wcda9 + 11], a
ld a, [hl]
ld [wcda9 + 12], a
ld hl, wcda9
ld de, BlkPacket_9ae6
ret
; 8823
.SGB16: ; 8823
call .SGB04
ld de, BlkPacket_9af6
ret
; 882a
.SGB10: ; 882a
ld hl, PalPacket_9ce6
ld de, wcda9
ld bc, $0010
call CopyBytes
ld hl, wcda9 + 3
ld [hl], $9f
inc hl
ld [hl], $2a
inc hl
ld [hl], $5a
inc hl
ld [hl], $19
ld hl, wcda9
ld de, BlkPacket_9a86
ret
; 884b
.SGB14: ; 884b
ld hl, PalPacket_9c36
ld de, BlkPacket_9a86
ret
; 8852
.SGB05: ; 8852
ld hl, PalPacket_9c96
ld de, BlkPacket_9b06
ret
; 8859
.SGB06: ; 8859
ld hl, PalPacket_9ca6
ld de, BlkPacket_9b76
ret
; 8860
.SGB08:
.SGB1d: ; 8860
ld hl, PalPacket_9cb6
ld de, BlkPacket_9a86
ret
; 8867
.SGB07: ; 8867
ld b, 0
ld hl, .BlkPacketTable_SGB07
rept 4
add hl, bc
endr
ld e, [hl]
inc hl
ld d, [hl]
inc hl
ld a, [hli]
ld h, [hl]
ld l, a
ret
; 8878
.BlkPacketTable_SGB07: ; 8878
dw BlkPacket_9a86, PalPacket_9be6
dw BlkPacket_9a96, PalPacket_9c06
dw BlkPacket_9a86, PalPacket_9c16
; 8884
.SGB0c: ; 8884
ld hl, PalPacket_9b96
ld de, BlkPacket_9b56
ld a, SCGB_08
ld [SGBPredef], a
ret
; 8890
.SGB13: ; 8890
ld hl, PalPacket_9ba6
ld de, BlkPacket_9b86
ret
; 8897
.SGB0f: ; 8897
ld hl, PalPacket_9c46
ld de, BlkPacket_9a86
ret
; 889e
.SGB11: ; 889e
ld hl, BlkPacket_9a86
ld de, PlayerLightScreenCount
ld bc, $0010
call CopyBytes
ld hl, PalPacket_9bb6
ld de, BlkPacket_9a86
ret
; 88b1
.SGB09: ; 88b1
ld hl, PalPacket_9bd6
ld de, wcda9
ld bc, $0010
call CopyBytes
call .GetPermission
ld hl, wcda9 + 1
ld [hld], a
ld de, BlkPacket_9a86
ld a, SCGB_09
ld [SGBPredef], a
ret
; 88cd
.SGB0b: ; 88cd
push bc
ld hl, PalPacket_9ce6
ld de, wcda9
ld bc, $0010
call CopyBytes
pop bc
ld a, c
and a
jr z, .asm_88ef
ld hl, wcda9 + 3
ld [hl], $e7
inc hl
ld [hl], $1c
inc hl
ld [hl], $62
inc hl
ld [hl], $c
jr .asm_8913
.asm_88ef
ld hl, PartyMon1DVs
ld bc, $0030
ld a, [CurPartyMon]
call AddNTimes
ld c, l
ld b, h
ld a, [PlayerHPPal]
call GetPlayerOrMonPalettePointer
ld a, [hli]
ld [wcda9 + 3], a
ld a, [hli]
ld [wcda9 + 4], a
ld a, [hli]
ld [wcda9 + 5], a
ld a, [hl]
ld [wcda9 + 6], a
.asm_8913
ld hl, wcda9
ld de, BlkPacket_9a86
ret
; 891a
.SGB0d:
.SGB15: ; 891a
ld hl, PalPacket_9cb6
ld de, BlkPacket_9a86
ret
; 8921
.SGB18: ; 8921
ld hl, PalPacket_9bc6
ld de, BlkPacket_9a86
ret
; 8928
.SGB12: ; 8928
ld hl, PalPacket_9bd6
ld de, wcda9
ld bc, $0010
call CopyBytes
ld hl, BlkPacket_9a86
ld de, wcda9 + $10
ld bc, $0010
call CopyBytes
call .GetPermission
ld hl, wcda9 + 1
ld [hl], a
ld hl, wcda9 + 3
ld [hl], $2e
ld hl, wcda9 + $13
ld a, $5
ld [hli], a
ld a, [wMenuBorderLeftCoord]
ld [hli], a
ld a, [wMenuBorderTopCoord]
ld [hli], a
ld a, [wMenuBorderRightCoord]
ld [hli], a
ld a, [wMenuBorderBottomCoord]
ld [hl], a
ld hl, wcda9
ld de, wcda9 + $10
ret
; 8969
.SGB1e: ; 8969
ld hl, PalPacket_9ce6
ld de, wcda9
ld bc, $0010
call CopyBytes
ld a, [CurPartySpecies]
ld l, a
ld h, 0
rept 3
add hl, hl
endr
ld de, PokemonPalettes
add hl, de
ld a, [wcf65]
and 3
sla a
sla a
ld c, a
ld b, 0
add hl, bc
ld a, [hli]
ld [wcda9 + 3], a
ld a, [hli]
ld [wcda9 + 4], a
ld a, [hli]
ld [wcda9 + 5], a
ld a, [hl]
ld [wcda9 + 6], a
ld hl, wcda9
ld de, BlkPacket_9a86
ret
; 89a6
.SGB19: ; 89a6
ld hl, PalPacket_9cd6
ld de, BlkPacket_9a86
ret
; 89ad
.SGB1a: ; 89ad
ld hl, PalPacket_9ce6
ld de, wcda9
ld bc, $0010
call CopyBytes
ld a, [CurPartySpecies]
ld bc, wd10e + 21
call GetPlayerOrMonPalettePointer
ld a, [hli]
ld [wcda9 + 3], a
ld a, [hli]
ld [wcda9 + 4], a
ld a, [hli]
ld [wcda9 + 5], a
ld a, [hl]
ld [wcda9 + 6], a
ld hl, wcda9
ld de, BlkPacket_9a86
ret
; 89d9
.SGB1b: ; 89d9
ld hl, PalPacket_9cc6
ld de, BlkPacket_9a86
ret
; 89e0
.SGB1c: ; 89e0
ld hl, PalPacket_9ce6
ld de, wcda9
ld bc, $0010
call CopyBytes
ld a, [CurPartySpecies]
ld bc, wd10e + 21
call GetFrontpicPalettePointer
ld a, [hli]
ld [wcda9 + 3], a
ld a, [hli]
ld [wcda9 + 4], a
ld a, [hli]
ld [wcda9 + 5], a
ld a, [hl]
ld [wcda9 + 6], a
ld hl, wcda9
ld de, BlkPacket_9a86
ret
; 8a0c
.GetPermission: ; 8a0c
ld a, [TimeOfDayPal]
cp $2
jr c, .asm_8a16
ld a, $19
ret
.asm_8a16
ld a, [wPermission]
cp $2
jr z, .asm_8a39
cp $4
jr z, .asm_8a3c
cp $7
jr z, .asm_8a3c
cp $5
jr z, .asm_8a3f
cp $6
jr z, .asm_8a42
ld a, [MapGroup]
ld e, a
ld d, 0
ld hl, .Unknown_8a45
add hl, de
ld a, [hl]
ret
.asm_8a39
ld a, $0
ret
.asm_8a3c
ld a, $18
ret
.asm_8a3f
ld a, $6
ret
.asm_8a42
ld a, $3
ret
; 8a45
.Unknown_8a45: ; 8a45
db $00
db $12
db $14
db $18
db $11
db $15
db $09
db $04
db $0f
db $16
db $0e
db $10
db $06
db $01
db $03
db $06
db $0b
db $08
db $05
db $17
db $08
db $07
db $13
db $02
db $0c
db $0a
db $0d
; 8a60
.Finish: ; 8a60
push de
call Function9809
pop hl
jp Function9809
; 8a68