summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
Diffstat (limited to 'engine')
-rwxr-xr-xengine/dumps/bank01.asm4
-rwxr-xr-xengine/dumps/bank02.asm1094
-rw-r--r--engine/dumps/bank09.asm8
-rw-r--r--engine/games/pikachu_minigame.asm2
-rw-r--r--engine/gfx/load_gfx.asm (renamed from engine/gfx.asm)2
-rw-r--r--engine/gfx/set_title_decoration.asm33
-rw-r--r--engine/gfx/sgb_layouts.asm896
-rw-r--r--engine/movie/game_freak_intro.asm2
-rw-r--r--engine/movie/title.asm2
-rw-r--r--engine/trainer_gear.asm8
10 files changed, 942 insertions, 1109 deletions
diff --git a/engine/dumps/bank01.asm b/engine/dumps/bank01.asm
index 01f36da..03c93ba 100755
--- a/engine/dumps/bank01.asm
+++ b/engine/dumps/bank01.asm
@@ -3741,9 +3741,7 @@ Function78f0:
ld a, [hl]
xor $08
ld [hl], a
- ld hl, Function96eb
- ld a, BANK(Function96eb)
- call FarCall_hl
+ callab UpdateSGBBorder
call LoadFont
call LoadFontExtra
ld c, $70
diff --git a/engine/dumps/bank02.asm b/engine/dumps/bank02.asm
index 38042a4..bb1528c 100755
--- a/engine/dumps/bank02.asm
+++ b/engine/dumps/bank02.asm
@@ -1252,1097 +1252,3 @@ Data8a53:
db $3c, $14, $3c, $20, $48, $14, $54, $1c
db $54, $2c, $54, $38, $3c, $44, $48, $2c
-SECTION "engine/dumps/bank02.asm@SetTitleBGDecorationBorder", ROMX
-
-SetTitleBGDecorationBorder:
- ld de, TitleBGDecorationBorder
- ld hl, vChars2 + $500
- lb bc, BANK(TitleBGDecorationBorder), $09
- call Request2bpp
- coord hl, 0, 8
- ld b, $50
- call Function91ef
- coord hl, 0, 16
- ld b, $54
- call Function91ef
- ret
-
-Function91ef:
- xor a
- ld c, $14
-.sub_91f2
- and $03
- or b
- ld [hli], a
- inc a
- dec c
- jr nz, .sub_91f2
- ret
-
-SECTION "engine/dumps/bank02.asm@Function928b", ROMX
-
-Function928b:
- ld a, b
- cp $ff
- jr nz, .sub_9293
- ld a, [wccd0]
-.sub_9293
- cp $fc
- jp z, Function9604
- ld l, a
- ld h, $00
- add hl, hl
- ld de, Table92a8
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, Function955f
- push de
- jp hl
-
-Table92a8:
- dw Function92d4
- dw Function92db
- dw Function934b
- dw Function9352
- dw Function9382
- dw Function93a6
- dw Function93ad
- dw Function93bb
- dw Function93b4
- dw Function93fe
- dw Function937b
- dw Function941a
- dw Function93d8
- dw Function9441
- dw Function932b
- dw Function93e4
- dw Function939f
- dw Function93eb
- dw Function9448
- dw Function948e
- dw Function94ab
- dw Function94c8
-
-Function92d4:
- ld hl, Data99ec
- ld de, Data988c
- ret
-
-Function92db:
- ld hl, Data995c
- ld de, wcce1
- ld bc, $0010
- call CopyBytes
- ld a, [wca3f]
- ld hl, wca02
- call Function9567
- jr c, .sub_92f7
- ld e, $00
- call Function9599
-.sub_92f7
- ld b, a
- ld a, [wca44]
- ld hl, wcdd7
- call Function9567
- jr c, .sub_9308
- ld e, $01
- call Function9599
-.sub_9308
- ld c, a
- ld hl, wcce2
- ld a, [wccd1]
- add $23
- ld [hli], a
- inc hl
- ld a, [wccd2]
- add $23
- ld [hli], a
- inc hl
- ld a, b
- ld [hli], a
- inc hl
- ld a, c
- ld [hl], a
- ld hl, wcce1
- ld de, Data988c
- ld a, $01
- ld [wccd0], a
- ret
-
-Function932b:
- ld hl, Data995c
- ld de, wcce1
- ld bc, $0010
- call CopyBytes
- ld hl, wcce2
- ld [hl], $10
- inc hl
- inc hl
- ld a, [wccd1]
- add $23
- ld [hl], a
- ld hl, wcce1
- ld de, Data98bc
- ret
-
-Function934b:
- ld hl, Data99fc
- ld de, Data986c
- ret
-
-Function9352:
- ld hl, Data995c
- ld de, wcce1
- ld bc, $0010
- call CopyBytes
- ld a, [wMonDexIndex]
- call Function956d
- call Function957e
- push af
- ld hl, wcce2
- ld a, [wccd9]
- add $23
- ld [hli], a
- inc hl
- pop af
- ld [hl], a
- ld hl, wcce1
- ld de, Data98ac
- ret
-
-Function937b:
- ld hl, Data99dc
- ld de, wcce2
- ret
-
-Function9382:
- ld hl, Data9a0c
- ld de, wcce1
- ld bc, $0010
- call CopyBytes
- ld a, [wMonDexIndex]
- call Function956d
- ld hl, wcce4
- ld [hl], a
- ld hl, wcce1
- ld de, Data98cc
- ret
-
-Function939f:
- ld hl, Data99bc
- ld de, Data986c
- ret
-
-Function93a6:
- ld hl, Data9a1c
- ld de, Data98dc
- ret
-
-Function93ad:
- ld hl, Data9a2c
- ld de, Data993c
- ret
-
-Function93b4:
- ld hl, Data9a3c
- ld de, Data986c
- ret
-
-Function93bb:
- ld b, $00
- ld hl, Table93cc
- add hl, bc
- add hl, bc
- add hl, bc
- add hl, bc
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc hl
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ret
-
-Table93cc:
- dw Data986c
- dw Data996c
-
- dw Data987c
- dw Data998c
-
- dw Data986c
- dw Data999c
-
-Function93d8:
- ld hl, Data9a4c
- ld de, Data986c
- ld a, $08
- ld [wccd0], a
- ret
-
-Function93e4:
- ld hl, Data99cc
- ld de, Data986c
- ret
-
-Function93eb:
- ld hl, Data986c
- ld de, wc51a
- ld bc, $0010
- call CopyBytes
- ld hl, Data994c
- ld de, Data986c
- ret
-
-Function93fe:
- ld hl, Data995c
- ld de, wcce1
- ld bc, $0010
- call CopyBytes
- call Function94e5
- ld hl, wcce2
- ld [hld], a
- ld de, Data986c
- ld a, $09
- ld [wccd0], a
- ret
-
-Function941a:
- push bc
- ld hl, Data995c
- ld de, wcce1
- ld bc, $0010
- call CopyBytes
- pop bc
- ld a, c
- and a
- ld a, $0e
- jr nz, .sub_9437
- ld a, [wccd1]
- call Function956d
- call Function957e
-.sub_9437
- ld [wcce2], a
- ld hl, wcce1
- ld de, Data986c
- ret
-
-Function9441:
- ld hl, Data9a3c
- ld de, Data986c
- ret
-
-Function9448:
- ld hl, Data995c
- ld de, wcce1
- ld bc, $0010
- call CopyBytes
- ld hl, Data986c
- ld de, wccf1
- ld bc, $0010
- call CopyBytes
- call Function94e5
- ld hl, wcce2
- ld [hl], a
- ld a, [wMonDexIndex]
- call Function956d
- ld hl, wcce4
- ld [hl], a
- ld hl, wccf4
- ld a, $05
- 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, wcce1
- ld de, wccf1
- ret
-
-Function948e:
- ld hl, Data995c
- ld de, wcce1
- ld bc, $0010
- call CopyBytes
- ld a, $16
- ld [wcce2], a
- ld a, $30
- ld [wcce4], a
- ld hl, wcce1
- ld de, Data992c
- ret
-
-Function94ab:
- ld hl, Data995c
- ld de, wcce1
- ld bc, $0010
- call CopyBytes
- ld a, $16
- ld [wcce2], a
- ld a, $26
- ld [wcce4], a
- ld hl, wcce1
- ld de, Data992c
- ret
-
-Function94c8:
- ld hl, Data995c
- ld de, wcce1
- ld bc, $0010
- call CopyBytes
- ld a, $16
- ld [wcce2], a
- ld a, $39
- ld [wcce4], a
- ld hl, wcce1
- ld de, Data992c
- ret
-
-Function94e5:
- ld a, [wMapPermissions]
- cp $02
- jr z, .sub_950e
- cp $04
- jr z, .sub_9516
- cp $06
- jr z, .sub_951e
- cp $05
- jr z, .sub_9521
- cp $03
- jr z, .sub_9505
- call Function9527
- jr c, .sub_9524
- call Function9543
- ret
-.sub_9505
- call Function9536
- jr c, .sub_9524
- call Function9543
- ret
-.sub_950e
- call Function9527
- jr c, .sub_9524
- ld a, $00
- ret
-.sub_9516
- call Function9527
- jr c, .sub_9524
- ld a, $0c
- ret
-.sub_951e
- ld a, $03
- ret
-.sub_9521
- ld a, $04
- ret
-.sub_9524
- ld a, $0d
- ret
-
-Function9527:
- ld a, [wTimeOfDay]
- and $03
- jr z, .sub_9534
- cp $03
- jr z, .sub_9534
- scf
- ret
-.sub_9534
- and a
- ret
-
-Function9536:
- ld a, [wTimeOfDay]
- and $03
- cp $02
- jr nz, .sub_9541
- scf
- ret
-.sub_9541
- and a
- ret
-
-Function9543:
- ld a, [wMapGroup]
- ld e, a
- ld d, $00
- ld hl, Data954f
- add hl, de
- ld a, [hl]
- ret
-
-Data954f:
- db $01, $07, $0c, $03, $08, $06, $0b, $04
- db $05, $0a, $02, $03, $02, $02, $09, $01
-
-Function955f:
- push de
- call Function964b
- pop hl
- jp Function964b
-
-Function9567:
- bit 3, a
- ld a, $18
- ret nz
- ld a, [hl]
-
-Function956d:
- and a
- jr z, .sub_957a
- ld e, a
- ld d, $00
- ld hl, PokemonPalettes
- add hl, de
- ld a, [hl]
- and a
- ret
-.sub_957a
- ld a, $0f
- scf
- ret
-
-Function957e:
- push bc
- push af
- ld hl, wPartyMon1DVs
- ld a, [wWhichPokemon]
- ld bc, $0030
- call AddNTimes
- call Function95b0
- ld b, $00
- jr nc, .sub_9595
- ld b, $0a
-.sub_9595
- pop af
- add b
- pop bc
- ret
-
-Function9599:
- push bc
- push af
- ld a, e
- and a
- ld a, [wcae1]
- jr z, .sub_95a4
- srl a
-.sub_95a4
- srl a
- ld b, $00
- jr nc, .sub_95ac
- ld b, $0a
-.sub_95ac
- pop af
- add b
- pop bc
- ret
-
-Function95b0:
- ld a, [hl]
- cp $a0
- jr c, .sub_95ca
- ld a, [hli]
- and $0f
- cp $0a
- jr c, .sub_95ca
- ld a, [hl]
- cp $a0
- jr c, .sub_95ca
- ld a, [hl]
- and $0f
- cp $0a
- jr c, .sub_95ca
- scf
- ret
-.sub_95ca
- and a
- ret
-
-Function95cc:
- ld hl, wcddf
- ldh a, [hBattleTurn]
- and a
- jr nz, .sub_95d7
- ld hl, wca08
-.sub_95d7
- call Function95b0
- ld hl, wcae1
- jr nc, .sub_95ec
- ldh a, [hBattleTurn]
- and a
- jr nz, .sub_95e8
- set 0, [hl]
- jr .sub_95f7
-.sub_95e8
- set 1, [hl]
- jr .sub_95f7
-.sub_95ec
- ldh a, [hBattleTurn]
- and a
- jr nz, .sub_95f5
- res 0, [hl]
- jr .sub_95f7
-.sub_95f5
- res 1, [hl]
-.sub_95f7
- ret
-
-Function95f8:
- ld hl, Data98fc
- ld de, wcce2
- ld bc, $0030
- jp CopyBytes
-
-Function9604:
- ld hl, wccd3
- ld a, [wcce1]
- ld e, a
- ld d, $00
- add hl, de
- ld e, l
- ld d, h
- ld a, [de]
- and a
- ld e, $05
- jr z, .sub_961d
- dec a
- ld e, $0a
- jr z, .sub_961d
- ld e, $0f
-.sub_961d
- push de
- ld hl, wcceb
- ld bc, $0006
- ld a, [wcce1]
- call AddNTimes
- pop de
- ld [hl], e
- ret
-
-LoadMagikarpPalettes_Intro:
- ld hl, Data997c
- jp Function964b
-
-LoadForestPalettes2_Intro:
- ld hl, Data986c
- jp Function964b
-
-LoadVenusaurPalettes_Intro:
- ld hl, Data99ac
- jp Function964b
-
-LoadCharizardPalettes_Intro:
- ld hl, Data99bc
- jp Function964b
-
-Function9645:
- ld hl, wc51a
- jp Function964b
-
-Function964b:
- ld a, [wJoypadFlags]
- push af
- set 7, a
- ld [wJoypadFlags], a
- call Function965c
- pop af
- ld [wJoypadFlags], a
- ret
-
-Function965c:
- ld a, [hl]
- and $07
- ret z
- ld b, a
-.sub_9661
- push bc
- xor a
- ldh [rJOYP], a
- ld a, $30
- ldh [rJOYP], a
- ld b, $10
-.sub_966b
- ld e, $08
- ld a, [hli]
- ld d, a
-.sub_966f
- bit 0, d
- ld a, $10
- jr nz, .sub_9677
- ld a, $20
-.sub_9677
- ldh [rJOYP], a
- ld a, $30
- ldh [rJOYP], a
- rr d
- dec e
- jr nz, .sub_966f
- dec b
- jr nz, .sub_966b
- ld a, $20
- ldh [rJOYP], a
- ld a, $30
- ldh [rJOYP], a
- call Function9860
- pop bc
- dec b
- jr nz, .sub_9661
- ret
-
-CheckSGB:
- ld a, [wJoypadFlags]
- push af
- set 7, a
- ld [wJoypadFlags], a
- xor a
- ldh [rJOYP], a
- ld [wSGB], a
- call Function9730
- jr nc, .sub_96c0
- ld a, $01
- ld [wSGB], a
- call .sub_96c5
- call Function9704
- call Function979a
- call Function9725
- ld hl, Data9abc
- call Function965c
-.sub_96c0
- pop af
- ld [wJoypadFlags], a
- ret
-.sub_96c5
- ld hl, Table96d9
- ld c, $09
-.sub_96ca
- push bc
- ld a, [hli]
- push hl
- ld h, [hl]
- ld l, a
- call Function965c
- pop hl
- inc hl
- pop bc
- dec c
- jr nz, .sub_96ca
- ret
-
-Table96d9:
- dw Data9aac
- dw Data9acc
- dw Data9adc
- dw Data9aec
- dw Data9afc
- dw Data9b0c
- dw Data9b1c
- dw Data9b2c
- dw Data9b3c
-
-Function96eb:
- ld a, [wSGB]
- ret z
- di
- xor a
- ldh [rJOYP], a
- ld hl, Data9aac
- call Function965c
- call Function9704
- ld hl, Data9abc
- call Function965c
- ei
- ret
-
-Function9704:
- call Function9710
- push de
- call Function980a
- pop hl
- call Function97be
- ret
-
-Function9710:
- ld a, [wce5f]
- bit 3, a
- jr nz, .sub_971e
- ld hl, UnusedSGBBorderGFX
- ld de, Corrupted9e1cGFX
- ret
-.sub_971e
- ld hl, SGBBorderGFX
- ld de, Corrupteda66cGFX
- ret
-
-Function9725:
- ld hl, vChars0
- ld bc, $2000
- xor a
- call ByteFill
- ret
-
-Function9730:
- ld hl, Data9a7c
- call Function965c
- call Function9860
- ldh a, [rJOYP]
- and $03
- cp $03
- jr nz, .sub_978c
- ld a, $20
- ldh [rJOYP], a
- ldh a, [rJOYP]
- ldh a, [rJOYP]
- call Function9860
- call Function9860
- ld a, $30
- ldh [rJOYP], a
- call Function9860
- call Function9860
- ld a, $10
- ldh [rJOYP], a
- ldh a, [rJOYP]
- ldh a, [rJOYP]
- ldh a, [rJOYP]
- ldh a, [rJOYP]
- ldh a, [rJOYP]
- ldh a, [rJOYP]
- call Function9860
- call Function9860
- ld a, $30
- ldh [rJOYP], a
- ldh a, [rJOYP]
- ldh a, [rJOYP]
- ldh a, [rJOYP]
- call Function9860
- call Function9860
- ldh a, [rJOYP]
- and $03
- cp $03
- jr nz, .sub_978c
- call .sub_9791
- and a
- ret
-.sub_978c
- call .sub_9791
- scf
- ret
-.sub_9791
- ld hl, Data9a6c
- call Function965c
- jp Function9860
-
-Function979a:
- call DisableLCD
- ld a, $e4
- ldh [rBGP], a
- ld hl, SuperPalettes
- ld de, vChars1
- ld bc, $1000
- call Function9838
- call Function984a
- ld a, $e3
- ldh [rLCDC], a
- ld hl, Data9a5c
- call Function965c
- xor a
- ldh [rBGP], a
- ret
-
-Function97be:
- call DisableLCD
- ld a, $e4
- ldh [rBGP], a
- ld de, vChars1
- ld bc, $0140
- call Function9838
- ld b, $12
-.sub_97d0
- push bc
- ld bc, $000c
- call Function9838
- ld bc, $0028
- call Function9841
- ld bc, $000c
- call Function9838
- pop bc
- dec b
- jr nz, .sub_97d0
- ld bc, $0140
- call Function9838
- ld bc, $0100
- call Function9841
- ld bc, $0080
- call Function9838
- call Function984a
- ld a, $e3
- ldh [rLCDC], a
- ld hl, Data9a9c
- call Function965c
- xor a
- ldh [rBGP], a
- ret
-
-Function980a:
- call DisableLCD
- ld a, $e4
- ldh [rBGP], a
- ld de, vChars1
- ld b, $80
-.sub_9816
- push bc
- ld bc, $0010
- call Function9838
- ld bc, $0010
- call Function9841
- pop bc
- dec b
- jr nz, .sub_9816
- call Function984a
- ld a, $e3
- ldh [rLCDC], a
- ld hl, Data9a8c
- call Function965c
- xor a
- ldh [rBGP], a
- ret
-
-Function9838:
- ld a, [hli]
- ld [de], a
- inc de
- dec bc
- ld a, c
- or b
- jr nz, Function9838
- ret
-
-Function9841:
- xor a
- ld [de], a
- inc de
- dec bc
- ld a, c
- or b
- jr nz, Function9841
- ret
-
-Function984a:
- ld hl, vBGMap0
- ld de, $000c
- ld a, $80
- ld c, $0d
-.sub_9854
- ld b, $14
-.sub_9856
- ld [hli], a
- inc a
- dec b
- jr nz, .sub_9856
- add hl, de
- dec c
- jr nz, .sub_9854
- ret
-
-Function9860:
- ld de, $1b58
-.sub_9863
- nop
- nop
- nop
- dec de
- ld a, d
- or e
- jr nz, .sub_9863
- ret
-
-Data986c:
- db $21, $01, $03, $00, $00, $00, $13, $11
- db $00, $00, $00, $00, $00, $00, $00, $00
-
-Data987c:
- db $21, $01, $07, $05, $00, $0a, $13, $0d
- db $00, $00, $00, $00, $00, $00, $00, $00
-
-Data988c:
- db $22, $05, $07, $0a, $00, $0c, $13, $11
- db $03, $05, $01, $00, $0a, $03, $03, $00
-
-Data989c:
- db $0a, $08, $13, $0a, $03, $0a, $00, $04
- db $08, $0b, $03, $0f, $0b, $00, $13, $07
-
-Data98ac:
- db $21, $01, $07, $05, $00, $01, $07, $07
- db $00, $00, $00, $00, $00, $00, $00, $00
-
-Data98bc:
- db $21, $01, $07, $05, $0b, $01, $13, $02
- db $00, $00, $00, $00, $00, $00, $00, $00
-
-Data98cc:
- db $21, $01, $07, $05, $01, $01, $08, $08
- db $00, $00, $00, $00, $00, $00, $00, $00
-
-Data98dc:
- db $22, $05, $03, $05, $00, $00, $13, $0b
- db $03, $0a, $00, $04, $13, $09, $02, $0f
-
-Data98ec:
- db $00, $06, $13, $07, $03, $00, $04, $04
- db $0f, $09, $03, $00, $00, $0c, $13, $11
-
-Data98fc:
- db $23, $07, $07, $10, $00, $00, $02, $0c
- db $02, $00, $0c, $00, $12, $01, $02, $00
-
-Data990c:
- db $0c, $02, $12, $03, $02, $00, $0c, $04
- db $12, $05, $02, $00, $0c, $06, $12, $07
-
-Data991c:
- db $02, $00, $0c, $08, $12, $09, $02, $00
- db $0c, $0a, $12, $0b, $00, $00, $00, $00
-
-Data992c:
- db $21, $01, $07, $10, $00, $00, $13, $02
- db $00, $00, $00, $00, $00, $00, $00, $00
-
-Data993c:
- db $21, $01, $07, $10, $00, $00, $13, $05
- db $00, $00, $00, $00, $00, $00, $00, $00
-
-Data994c:
- db $51, $35, $00, $36, $00, $37, $00, $38
- db $00, $00, $00, $00, $00, $00, $00, $00
-
-Data995c:
- db $51, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
-
-Data996c:
- db $51, $2a, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
-
-Data997c:
- db $51, $2b, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
-
-Data998c:
- db $51, $2c, $00, $2d, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
-
-Data999c:
- db $51, $2e, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
-
-Data99ac:
- db $51, $2f, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
-
-Data99bc:
- db $51, $30, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
-
-Data99cc:
- db $51, $2d, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
-
-Data99dc:
- db $51, $22, $00, $23, $00, $24, $00, $25
- db $00, $00, $00, $00, $00, $00, $00, $00
-
-Data99ec:
- db $51, $0e, $00, $0e, $00, $0e, $00, $0e
- db $00, $00, $00, $00, $00, $00, $00, $00
-
-Data99fc:
- db $51, $26, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
-
-Data9a0c:
- db $51, $30, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
-
-Data9a1c:
- db $51, $31, $00, $32, $00, $33, $00, $34
- db $00, $00, $00, $00, $00, $00, $00, $00
-
-Data9a2c:
- db $51, $27, $00, $28, $00, $0f, $00, $13
- db $00, $00, $00, $00, $00, $00, $00, $00
-
-Data9a3c:
- db $51, $0f, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
-
-Data9a4c:
- db $51, $29, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
-
-Data9a5c:
- db $59, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
-
-Data9a6c:
- db $89, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
-
-Data9a7c:
- db $89, $01, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
-
-Data9a8c:
- db $99, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
-
-Data9a9c:
- db $a1, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
-
-Data9aac:
- db $b9, $01, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
-
-Data9abc:
- db $b9, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
-
-Data9acc:
- db $79, $5d, $08, $00, $0b, $8c, $d0, $f4
- db $60, $00, $00, $00, $00, $00, $00, $00
-
-Data9adc:
- db $79, $52, $08, $00, $0b, $a9, $e7, $9f
- db $01, $c0, $7e, $e8, $e8, $e8, $e8, $e0
-
-Data9aec:
- db $79, $47, $08, $00, $0b, $c4, $d0, $16
- db $a5, $cb, $c9, $05, $d0, $10, $a2, $28
-
-Data9afc:
- db $79, $3c, $08, $00, $0b, $f0, $12, $a5
- db $c9, $c9, $c8, $d0, $1c, $a5, $ca, $c9
-
-Data9b0c:
- db $79, $31, $08, $00, $0b, $0c, $a5, $ca
- db $c9, $7e, $d0, $06, $a5, $cb, $c9, $7e
-
-Data9b1c:
- db $79, $26, $08, $00, $0b, $39, $cd, $48
- db $0c, $d0, $34, $a5, $c9, $c9, $80, $d0
-
-Data9b2c:
- db $79, $1b, $08, $00, $0b, $ea, $ea, $ea
- db $ea, $ea, $a9, $01, $cd, $4f, $0c, $d0
-
-Data9b3c:
- db $79, $10, $08, $00, $0b, $4c, $20, $08
- db $ea, $ea, $ea, $ea, $ea, $60, $ea, $ea
diff --git a/engine/dumps/bank09.asm b/engine/dumps/bank09.asm
index 39d902e..5466c79 100644
--- a/engine/dumps/bank09.asm
+++ b/engine/dumps/bank09.asm
@@ -347,10 +347,10 @@ UpdateItemDescription::
callab ShowItemDescription
ret
-Function2420b:
+Pokepic:
ld a, $01
ldh [hBGMapMode], a
- ld hl, .MenuHeader24262
+ ld hl, .PokepicMenuHeader
call LoadMenuHeader
call MenuBox
call UpdateSprites
@@ -372,7 +372,7 @@ Function2420b:
call Coord2Tile
ld a, $80
ldh [hGraphicStartTile], a
- ld bc, $0707
+ lb bc, 7, 7
predef PlaceGraphic
ld a, $01
ldh [hBGMapMode], a
@@ -384,7 +384,7 @@ Function2420b:
call LoadFont
ret
-.MenuHeader24262:
+.PokepicMenuHeader:
db MENU_BACKUP_TILES
menu_coords 6, 4, $e, $d
dw 0
diff --git a/engine/games/pikachu_minigame.asm b/engine/games/pikachu_minigame.asm
index de930da..4230771 100644
--- a/engine/games/pikachu_minigame.asm
+++ b/engine/games/pikachu_minigame.asm
@@ -36,7 +36,7 @@ PikachuMiniGame::
.Init:
call DisableLCD
- ld b, SGB_BETA_PIKACHU_MINIGAME
+ ld b, SGB_PIKACHU_MINIGAME
call GetSGBLayout
callab InitEffectObject
call PikachuMiniGame_ClearBothTilemaps
diff --git a/engine/gfx.asm b/engine/gfx/load_gfx.asm
index 5700904..c628c67 100644
--- a/engine/gfx.asm
+++ b/engine/gfx/load_gfx.asm
@@ -1,6 +1,6 @@
INCLUDE "constants.asm"
-SECTION "engine/gfx.asm", ROMX
+SECTION "engine/gfx/load_gfx.asm", ROMX
LoadFontGraphics::
ld de, FontGFX
diff --git a/engine/gfx/set_title_decoration.asm b/engine/gfx/set_title_decoration.asm
new file mode 100644
index 0000000..1a4f2fe
--- /dev/null
+++ b/engine/gfx/set_title_decoration.asm
@@ -0,0 +1,33 @@
+INCLUDE "constants.asm"
+
+SECTION "engine/gfx/set_title_decoration.asm", ROMX
+
+SetTitleBGDecorationBorder:
+ ld de, TitleBGDecorationBorder
+ ld hl, vChars2 + $500
+ lb bc, BANK(TitleBGDecorationBorder), 9
+ call Request2bpp
+
+; top row
+ coord hl, 0, 8
+ ld b, $50
+ call .PlaceRow
+
+; bottom row
+ coord hl, 0, 16
+ ld b, $54
+ call .PlaceRow
+ ret
+
+.PlaceRow:
+ xor a
+ ld c, SCREEN_WIDTH
+.loop
+ and $03
+ or b
+ ld [hli], a
+ inc a
+ dec c
+ jr nz, .loop
+ ret
+
diff --git a/engine/gfx/sgb_layouts.asm b/engine/gfx/sgb_layouts.asm
new file mode 100644
index 0000000..a4faf2a
--- /dev/null
+++ b/engine/gfx/sgb_layouts.asm
@@ -0,0 +1,896 @@
+INCLUDE "constants.asm"
+
+SECTION "engine/gfx/sgb_layouts.asm", ROMX
+
+LoadSGBLayout:
+ ld a, b
+ cp SGB_RAM
+ jr nz, .not_ram
+ ld a, [wccd0]
+.not_ram
+ cp SGB_PARTY_MENU_HP_PALS
+ jp z, SGB_ApplyPartyMenuHPPals
+ 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, _LoadSGBLayout_ReturnFromJumpTable
+ push de
+ jp hl
+
+.Jumptable:
+ dw SGB_BattleGrayscale
+ dw SGB_BattleColors
+ dw SGB_TownMap
+ dw SGB_StatsScreenHPPals
+ dw SGB_Pokedex
+ dw SGB_SlotMachine
+ dw SGB_TitleScreen
+ dw SGB_GSIntro
+ dw SGB_Diploma
+ dw SGB_MapPals
+ dw SGB_PartyMenu
+ dw SGB_Evolution
+ dw SGB_GFIntro
+ dw SGB_TrainerCard
+ dw SGB_MoveList
+ dw SGB_PikachuMinigame
+ dw SGB_PokedexSelection
+ dw SGB_Poker
+ dw SGB12
+ dw SGB_TrainerGear
+ dw SGB_TrainerGearMap
+ dw SGB_TrainerGearRadio
+
+SGB_BattleGrayscale:
+ ld hl, PalPacket_BattleGrayscale
+ ld de, BlkPacket_Battle
+ ret
+
+SGB_BattleColors:
+ ld hl, PalPacket_995c
+ ld de, wcce1
+ ld bc, PALPACKET_LENGTH
+ call CopyBytes
+
+ ld a, [wca3f]
+ ld hl, wca02
+ call Function9567
+ jr c, .sub_92f7
+
+ ld e, $00
+ call Function9599
+.sub_92f7
+ ld b, a
+ ld a, [wca44]
+ ld hl, wcdd7
+ call Function9567
+ jr c, .sub_9308
+ ld e, $01
+ call Function9599
+.sub_9308
+ ld c, a
+ ld hl, wcce2
+ ld a, [wccd1]
+ add $23
+ ld [hli], a
+ inc hl
+ ld a, [wccd2]
+ add $23
+ ld [hli], a
+ inc hl
+ ld a, b
+ ld [hli], a
+ inc hl
+ ld a, c
+ ld [hl], a
+ ld hl, wcce1
+ ld de, BlkPacket_Battle
+ ld a, $01
+ ld [wccd0], a
+ ret
+
+SGB_MoveList:
+ ld hl, PalPacket_995c
+ ld de, wcce1
+ ld bc, PALPACKET_LENGTH
+ call CopyBytes
+ ld hl, wcce2
+ ld [hl], $10
+ inc hl
+ inc hl
+ ld a, [wccd1]
+ add $23
+ ld [hl], a
+ ld hl, wcce1
+ ld de, BlkPacket_MoveList
+ ret
+
+SGB_TownMap:
+ ld hl, PalPacket_TownMap
+ ld de, BlkPacket_986c
+ ret
+
+SGB_StatsScreenHPPals:
+ ld hl, PalPacket_995c
+ ld de, wcce1
+ ld bc, PALPACKET_LENGTH
+ call CopyBytes
+ ld a, [wMonDexIndex]
+ call Function956d
+ call Function957e
+ push af
+ ld hl, wcce2
+ ld a, [wccd9]
+ add $23
+ ld [hli], a
+ inc hl
+ pop af
+ ld [hl], a
+ ld hl, wcce1
+ ld de, BlkPacket_StatsScreen
+ ret
+
+SGB_PartyMenu:
+ ld hl, PalPacket_PartyMenu
+ ld de, wcce2
+ ret
+
+SGB_Pokedex:
+ ld hl, PalPacket_Pokedex
+ ld de, wcce1
+ ld bc, PALPACKET_LENGTH
+ call CopyBytes
+ ld a, [wMonDexIndex]
+ call Function956d
+ ld hl, wcce4
+ ld [hl], a
+ ld hl, wcce1
+ ld de, BlkPacket_Pokedex
+ ret
+
+SGB_PokedexSelection:
+ ld hl, PalPacket_GSIntroCharizard
+ ld de, BlkPacket_986c
+ ret
+
+SGB_SlotMachine:
+ ld hl, PalPacket_SlotMachine
+ ld de, BlkPacket_SlotMachine
+ ret
+
+SGB_TitleScreen:
+ ld hl, PalPacket_TitleScreen
+ ld de, BlkPacket_TitleScreen
+ ret
+
+SGB_Diploma:
+ ld hl, PalPacket_9a3c
+ ld de, BlkPacket_986c
+ ret
+
+SGB_GSIntro:
+ ld b, 0
+ ld hl, .BlkPacketTable
+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
+
+.BlkPacketTable:
+ dw BlkPacket_986c, PalPacket_GSIntroShellderLapras
+ dw BlkPacket_GSIntroJigglypuffPikachu, PalPacket_GSIntroJigglypuffPikachu
+ dw BlkPacket_986c, PalPacket_GSIntroBlastoise
+
+SGB_GFIntro:
+ ld hl, PalPacket_GFIntro
+ ld de, BlkPacket_986c
+ ld a, $08
+ ld [wccd0], a
+ ret
+
+SGB_PikachuMinigame:
+ ld hl, PalPacket_PikachuMinigame
+ ld de, BlkPacket_986c
+ ret
+
+SGB_Poker:
+ ld hl, BlkPacket_986c
+ ld de, wc51a
+ ld bc, PALPACKET_LENGTH
+ call CopyBytes
+ ld hl, PalPacket_Poker
+ ld de, BlkPacket_986c
+ ret
+
+SGB_MapPals:
+ ld hl, PalPacket_995c
+ ld de, wcce1
+ ld bc, PALPACKET_LENGTH
+ call CopyBytes
+ call GetMapPalsIndex
+ ld hl, wcce2
+ ld [hld], a
+ ld de, BlkPacket_986c
+ ld a, $09
+ ld [wccd0], a
+ ret
+
+SGB_Evolution:
+ push bc
+ ld hl, PalPacket_995c
+ ld de, wcce1
+ ld bc, PALPACKET_LENGTH
+ call CopyBytes
+ pop bc
+ ld a, c
+ and a
+ ld a, $0e
+ jr nz, .sub_9437
+ ld a, [wccd1]
+ call Function956d
+ call Function957e
+.sub_9437
+ ld [wcce2], a
+ ld hl, wcce1
+ ld de, BlkPacket_986c
+ ret
+
+SGB_TrainerCard:
+ ld hl, PalPacket_9a3c
+ ld de, BlkPacket_986c
+ ret
+
+SGB12:
+ ld hl, PalPacket_995c
+ ld de, wcce1
+ ld bc, PALPACKET_LENGTH
+ call CopyBytes
+ ld hl, BlkPacket_986c
+ ld de, wccf1
+ ld bc, PALPACKET_LENGTH
+ call CopyBytes
+ call GetMapPalsIndex
+ ld hl, wcce2
+ ld [hl], a
+ ld a, [wMonDexIndex]
+ call Function956d
+ ld hl, wcce4
+ ld [hl], a
+ ld hl, wccf4
+ ld a, $05
+ 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, wcce1
+ ld de, wccf1
+ ret
+
+SGB_TrainerGear:
+ ld hl, PalPacket_995c
+ ld de, wcce1
+ ld bc, PALPACKET_LENGTH
+ call CopyBytes
+ ld a, $16
+ ld [wcce2], a
+ ld a, $30
+ ld [wcce4], a
+ ld hl, wcce1
+ ld de, BlkPacket_TrainerGear
+ ret
+
+SGB_TrainerGearMap:
+ ld hl, PalPacket_995c
+ ld de, wcce1
+ ld bc, PALPACKET_LENGTH
+ call CopyBytes
+ ld a, $16
+ ld [wcce2], a
+ ld a, $26
+ ld [wcce4], a
+ ld hl, wcce1
+ ld de, BlkPacket_TrainerGear
+ ret
+
+SGB_TrainerGearRadio:
+ ld hl, PalPacket_995c
+ ld de, wcce1
+ ld bc, PALPACKET_LENGTH
+ call CopyBytes
+ ld a, $16
+ ld [wcce2], a
+ ld a, $39
+ ld [wcce4], a
+ ld hl, wcce1
+ ld de, BlkPacket_TrainerGear
+ ret
+
+GetMapPalsIndex:
+ ld a, [wMapPermissions]
+ cp ROUTE
+ jr z, .is_route
+ cp CAVE
+ jr z, .is_cave
+ cp GATE
+ jr z, .is_gate
+ cp ENVIRONMENT_5
+ jr z, .env5
+ cp INDOOR
+ jr z, .indoors
+ call Function9527
+ jr c, .sub_9524
+ call Function9543
+ ret
+
+.indoors
+ call Function9536
+ jr c, .sub_9524
+ call Function9543
+ ret
+
+.is_route
+ call Function9527
+ jr c, .sub_9524
+ ld a, $00
+ ret
+
+.is_cave
+ call Function9527
+ jr c, .sub_9524
+ ld a, $0c
+ ret
+
+.is_gate
+ ld a, $03
+ ret
+
+.env5
+ ld a, $04
+ ret
+
+.sub_9524
+ ld a, $0d
+ ret
+
+Function9527:
+ ld a, [wTimeOfDay]
+ and $03
+ jr z, .sub_9534
+ cp $03
+ jr z, .sub_9534
+ scf
+ ret
+.sub_9534
+ and a
+ ret
+
+Function9536:
+ ld a, [wTimeOfDay]
+ and $03
+ cp $02
+ jr nz, .sub_9541
+ scf
+ ret
+.sub_9541
+ and a
+ ret
+
+Function9543:
+ ld a, [wMapGroup]
+ ld e, a
+ ld d, $00
+ ld hl, Data954f
+ add hl, de
+ ld a, [hl]
+ ret
+
+Data954f:
+ db $01, $07, $0c, $03, $08, $06, $0b, $04
+ db $05, $0a, $02, $03, $02, $02, $09, $01
+
+_LoadSGBLayout_ReturnFromJumpTable:
+ push de
+ call PushSGBPals
+ pop hl
+ jp PushSGBPals
+
+Function9567:
+ bit 3, a
+ ld a, $18
+ ret nz
+ ld a, [hl]
+
+Function956d:
+ and a
+ jr z, .sub_957a
+ ld e, a
+ ld d, $00
+ ld hl, PokemonPalettes
+ add hl, de
+ ld a, [hl]
+ and a
+ ret
+.sub_957a
+ ld a, $0f
+ scf
+ ret
+
+Function957e:
+ push bc
+ push af
+ ld hl, wPartyMon1DVs
+ ld a, [wWhichPokemon]
+ ld bc, $0030
+ call AddNTimes
+ call Function95b0
+ ld b, $00
+ jr nc, .sub_9595
+ ld b, $0a
+.sub_9595
+ pop af
+ add b
+ pop bc
+ ret
+
+Function9599:
+ push bc
+ push af
+ ld a, e
+ and a
+ ld a, [wcae1]
+ jr z, .sub_95a4
+ srl a
+.sub_95a4
+ srl a
+ ld b, $00
+ jr nc, .sub_95ac
+ ld b, $0a
+.sub_95ac
+ pop af
+ add b
+ pop bc
+ ret
+
+Function95b0:
+ ld a, [hl]
+ cp $a0
+ jr c, .sub_95ca
+ ld a, [hli]
+ and $0f
+ cp $0a
+ jr c, .sub_95ca
+ ld a, [hl]
+ cp $a0
+ jr c, .sub_95ca
+ ld a, [hl]
+ and $0f
+ cp $0a
+ jr c, .sub_95ca
+ scf
+ ret
+.sub_95ca
+ and a
+ ret
+
+Function95cc:
+ ld hl, wcddf
+ ldh a, [hBattleTurn]
+ and a
+ jr nz, .sub_95d7
+ ld hl, wca08
+.sub_95d7
+ call Function95b0
+ ld hl, wcae1
+ jr nc, .sub_95ec
+ ldh a, [hBattleTurn]
+ and a
+ jr nz, .sub_95e8
+ set 0, [hl]
+ jr .sub_95f7
+.sub_95e8
+ set 1, [hl]
+ jr .sub_95f7
+.sub_95ec
+ ldh a, [hBattleTurn]
+ and a
+ jr nz, .sub_95f5
+ res 0, [hl]
+ jr .sub_95f7
+.sub_95f5
+ res 1, [hl]
+.sub_95f7
+ ret
+
+Function95f8:
+ ld hl, BlkPacket_98fc
+ ld de, wcce2
+ ld bc, $0030
+ jp CopyBytes
+
+SGB_ApplyPartyMenuHPPals:
+ ld hl, wccd3
+ ld a, [wcce1]
+ ld e, a
+ ld d, $00
+ add hl, de
+ ld e, l
+ ld d, h
+ ld a, [de]
+ and a
+ ld e, $05
+ jr z, .sub_961d
+ dec a
+ ld e, $0a
+ jr z, .sub_961d
+ ld e, $0f
+.sub_961d
+ push de
+ ld hl, wcceb
+ ld bc, $0006
+ ld a, [wcce1]
+ call AddNTimes
+ pop de
+ ld [hl], e
+ ret
+
+LoadMagikarpPalettes_Intro:
+ ld hl, PalPacket_MagikarpIntro
+ jp PushSGBPals
+
+LoadForestPalettes2_Intro:
+ ld hl, BlkPacket_986c
+ jp PushSGBPals
+
+LoadVenusaurPalettes_Intro:
+ ld hl, PalPacket_GSIntroVenusaur
+ jp PushSGBPals
+
+LoadCharizardPalettes_Intro:
+ ld hl, PalPacket_GSIntroCharizard
+ jp PushSGBPals
+
+Function9645:
+ ld hl, wc51a
+ jp PushSGBPals
+
+PushSGBPals:
+ ld a, [wJoypadFlags]
+ push af
+ set 7, a
+ ld [wJoypadFlags], a
+ call _PushSGBPals
+ pop af
+ ld [wJoypadFlags], a
+ ret
+
+_PushSGBPals:
+ ld a, [hl]
+ and $7
+ ret z
+ ld b, a
+.loop
+ push bc
+ xor a
+ ldh [rJOYP], a
+ ld a, $30
+ ldh [rJOYP], a
+ ld b, $10
+.loop2
+ ld e, $08
+ ld a, [hli]
+ ld d, a
+.loop3
+ bit 0, d
+ ld a, $10
+ jr nz, .ok
+ ld a, $20
+.ok
+ ldh [rJOYP], a
+ ld a, $30
+ ldh [rJOYP], a
+ rr d
+ dec e
+ jr nz, .loop3
+ dec b
+ jr nz, .loop2
+ ld a, $20
+ ldh [rJOYP], a
+ ld a, $30
+ ldh [rJOYP], a
+ call SGBDelayCycles
+ pop bc
+ dec b
+ jr nz, .loop
+ ret
+
+CheckSGB:
+ ld a, [wJoypadFlags]
+ push af
+ set 7, a
+ ld [wJoypadFlags], a
+
+ xor a
+ ldh [rJOYP], a
+ ld [wSGB], a
+ call PushSGBBorderPalsAndWait
+ jr nc, .skip
+ ld a, 1
+ ld [wSGB], a
+ call _InitSGBBorderPals
+ call PushSGBBorder
+ call SGBBorder_PushBGPals
+ call SGB_ClearVRAM
+ ld hl, MaskEnCancelPacket
+ call _PushSGBPals
+.skip
+ pop af
+ ld [wJoypadFlags], a
+ ret
+
+_InitSGBBorderPals:
+ ld hl, .PacketPointerTable
+ ld c, 9
+
+.loop
+ push bc
+ ld a, [hli]
+ push hl
+ ld h, [hl]
+ ld l, a
+ call _PushSGBPals
+ pop hl
+ inc hl
+ pop bc
+ dec c
+ jr nz, .loop
+ ret
+
+.PacketPointerTable:
+ dw MaskEnFreezePacket
+ dw DataSndPacket1
+ dw DataSndPacket2
+ dw DataSndPacket3
+ dw DataSndPacket4
+ dw DataSndPacket5
+ dw DataSndPacket6
+ dw DataSndPacket7
+ dw DataSndPacket8
+
+UpdateSGBBorder:
+ ld a, [wSGB]
+ ret z
+ di
+ xor a
+ ldh [rJOYP], a
+ ld hl, MaskEnFreezePacket
+ call _PushSGBPals
+ call PushSGBBorder
+ ld hl, MaskEnCancelPacket
+ call _PushSGBPals
+ ei
+ ret
+
+PushSGBBorder:
+ call .LoadSGBBorderPointers
+ push de
+ call SGBBorder_YetMorePalPushing
+ pop hl
+ call SGBBorder_MorePalPushing
+ ret
+
+.LoadSGBBorderPointers:
+ ld a, [wce5f]
+ bit 3, a
+ jr nz, .spaceworld_border
+
+; load alternate border
+ ld hl, AlternateSGBBorderGFX
+ ld de, AlternateSGBBorderTilemap
+ ret
+
+.spaceworld_border
+ ld hl, SGBBorderGFX
+ ld de, SGBBorderTilemap
+ ret
+
+SGB_ClearVRAM:
+ ld hl, vChars0
+ ld bc, $2000
+ xor a
+ call ByteFill
+ ret
+
+PushSGBBorderPalsAndWait:
+ ld hl, MltReq2Packet
+ call _PushSGBPals
+ call SGBDelayCycles
+ ldh a, [rJOYP]
+ and $3
+ cp $3
+ jr nz, .carry
+ ld a, $20
+ ldh [rJOYP], a
+ ldh a, [rJOYP]
+ ldh a, [rJOYP]
+ call SGBDelayCycles
+ call SGBDelayCycles
+ ld a, $30
+ ldh [rJOYP], a
+ call SGBDelayCycles
+ call SGBDelayCycles
+ ld a, $10
+ ldh [rJOYP], a
+rept 6
+ ldh a, [rJOYP]
+endr
+ call SGBDelayCycles
+ call SGBDelayCycles
+ ld a, $30
+ ldh [rJOYP], a
+ ldh a, [rJOYP]
+ ldh a, [rJOYP]
+ ldh a, [rJOYP]
+ call SGBDelayCycles
+ call SGBDelayCycles
+ ldh a, [rJOYP]
+ and $3
+ cp $3
+ jr nz, .carry
+ call .FinalPush
+ and a
+ ret
+
+.carry
+ call .FinalPush
+ scf
+ ret
+
+.FinalPush:
+ ld hl, MltReq1Packet
+ call _PushSGBPals
+ jp SGBDelayCycles
+
+SGBBorder_PushBGPals:
+ call DisableLCD
+ ld a, %11100100
+ ldh [rBGP], a
+ ld hl, SuperPalettes
+ ld de, vChars1
+ ld bc, $1000
+ call CopyData
+ call DrawDefaultTiles
+ ld a, $e3
+ ldh [rLCDC], a
+ ld hl, PalTrnPacket
+ call _PushSGBPals
+ xor a
+ ldh [rBGP], a
+ ret
+
+SGBBorder_MorePalPushing:
+ call DisableLCD
+ ld a, %11100100
+ ldh [rBGP], a
+ ld de, vChars1
+ ld bc, (6 + SCREEN_WIDTH + 6) * 5 * 2
+ call CopyData
+ ld b, SCREEN_HEIGHT
+.loop
+ push bc
+ ld bc, 6 * 2
+ call CopyData
+ ld bc, SCREEN_WIDTH * 2
+ call ClearBytes
+ ld bc, 6 * 2
+ call CopyData
+ pop bc
+ dec b
+ jr nz, .loop
+ ld bc, (6 + SCREEN_WIDTH + 6) * 5 * 2
+ call CopyData
+ ld bc, $100
+ call ClearBytes
+ ld bc, $80
+ call CopyData
+ call DrawDefaultTiles
+ ld a, $e3
+ ldh [rLCDC], a
+ ld hl, PctTrnPacket
+ call _PushSGBPals
+ xor a
+ ldh [rBGP], a
+ ret
+
+SGBBorder_YetMorePalPushing:
+ call DisableLCD
+ ld a, $e4
+ ldh [rBGP], a
+ ld de, vChars1
+ ld b, $80
+.loop
+ push bc
+ ld bc, $10
+ call CopyData
+ ld bc, $10
+ call ClearBytes
+ pop bc
+ dec b
+ jr nz, .loop
+ call DrawDefaultTiles
+ ld a, $e3
+ ldh [rLCDC], a
+ ld hl, ChrTrnPacket
+ call _PushSGBPals
+ xor a
+ ldh [rBGP], a
+ ret
+
+CopyData:
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec bc
+ ld a, c
+ or b
+ jr nz, CopyData
+ ret
+
+ClearBytes:
+ xor a
+ ld [de], a
+ inc de
+ dec bc
+ ld a, c
+ or b
+ jr nz, ClearBytes
+ ret
+
+DrawDefaultTiles:
+ hlbgcoord 0, 0
+ ld de, BG_MAP_WIDTH - SCREEN_WIDTH
+ ld a, $80
+ ld c, 12 + 1
+.line
+ ld b, SCREEN_WIDTH
+.tile
+ ld [hli], a
+ inc a
+ dec b
+ jr nz, .tile
+ add hl, de
+ dec c
+ jr nz, .line
+ ret
+
+SGBDelayCycles:
+ ld de, 7000
+.wait
+ nop
+ nop
+ nop
+ dec de
+ ld a, d
+ or e
+ jr nz, .wait
+ ret
+
+INCLUDE "data/sgb/blk_packets.inc"
+INCLUDE "data/sgb/pal_packets.inc"
+INCLUDE "data/sgb/ctrl_packets.inc"
diff --git a/engine/movie/game_freak_intro.asm b/engine/movie/game_freak_intro.asm
index 9ae95c9..e3474a2 100644
--- a/engine/movie/game_freak_intro.asm
+++ b/engine/movie/game_freak_intro.asm
@@ -23,7 +23,7 @@ GameFreakIntro::
ld c, 10
call DelayFrames
- ld b, SGB_GS_TITLE_SCREEN
+ ld b, SGB_GF_INTRO
call GetSGBLayout
callab IntroCopyRightInfo
diff --git a/engine/movie/title.asm b/engine/movie/title.asm
index 2323d38..8ddf260 100644
--- a/engine/movie/title.asm
+++ b/engine/movie/title.asm
@@ -118,7 +118,7 @@ TitleSequenceInit::
ld a, " "
call ByteFill
- ld b, $06
+ ld b, SGB_TITLE_SCREEN
call GetSGBLayout
call EnableLCD
ld a, $01
diff --git a/engine/trainer_gear.asm b/engine/trainer_gear.asm
index 32e3a91..e7ef0db 100644
--- a/engine/trainer_gear.asm
+++ b/engine/trainer_gear.asm
@@ -89,7 +89,7 @@ TrainerGear_Init:
call ClearBGPalettes
call DisableLCD
call ClearSprites
- ld b, SGB_TRAINER_GEAR
+ ld b, SGB_TRAINERGEAR
call GetSGBLayout
ld hl, TrainerGearGFX
@@ -282,7 +282,7 @@ TrainerGear_Map:
call TrainerGear_Next
call TrainerGear_ClearView
call WaitForAutoBgMapTransfer
- ld b, SGB_PACKPALS
+ ld b, SGB_TRAINERGEAR_MAP
call GetSGBLayout
ld de, TownMapGFX
ld hl, vTilesetEnd
@@ -312,7 +312,7 @@ TrainerGear_Radio:
call TrainerGear_Next
call TrainerGear_ClearView
call WaitForAutoBgMapTransfer
- ld b, SGB_TRAINER_CARD
+ ld b, SGB_TRAINERGEAR_RADIO
call GetSGBLayout
ld de, RadioGFX
@@ -595,7 +595,7 @@ TrainerGear_Phone:
call TrainerGear_Next
call TrainerGear_ClearView
call WaitForAutoBgMapTransfer
- ld b, SGB_TRAINER_GEAR
+ ld b, SGB_TRAINERGEAR
call GetSGBLayout
call LoadFontExtra
ld de, .OutOfRangeText