shithub: pokecrystal

Download patch

ref: e6a8977234369840ae729b98cbb76a299df0a114
parent: 19b75ac1d25911490ee8c993fd8f48926567fef8
author: yenatch <yenatch@gmail.com>
date: Thu Feb 5 07:15:00 EST 2015

No more static refs in bank 5b.

--- a/main.asm
+++ b/main.asm
@@ -126547,8 +126547,859 @@
 
 SECTION "bank5B", ROMX, BANK[$5B]
 
-INCBIN "baserom.gbc",$16c000,$16cfc1 - $16c000
+Function16c000: ; 16c000
+	ld a, [hCGB]
+	and a
+	ret z
+	ld a, [$ffea]
+	and a
+	ret z
+	ld a, [$cfbe]
+	push af
+	set 7, a
+	ld [$cfbe], a
+	call Function16c108
+	callba Function100063
+	callba Function100082
+	call Function16c031
+	callba Function1000a4
+	xor a
+	ld [$ffea], a
+	pop af
+	ld [$cfbe], a
+	ret
+; 16c031
 
+Function16c031: ; 16c031
+	xor a
+	ld [$cf63], a
+	ld [$cf64], a
+	ld [DefaultFlypoint], a
+	ld [$d003], a
+.asm_16c03e
+	call DelayFrame
+	callba Function10635c
+	ld a, [DefaultFlypoint]
+	ld hl, Jumptable_16c05c
+	rst JumpTable
+	call Function16cb2e
+	call Function16cbae
+	ld a, [DefaultFlypoint]
+	cp $ff
+	jr nz, .asm_16c03e
+	ret
+; 16c05c
+
+Jumptable_16c05c: ; 16c05c
+	dw Function16c074
+	dw Function16c0ba
+	dw Function16c089
+	dw Function16c09e
+	dw Function16c0a8
+	dw Function16c0dc
+	dw Function16c0ec
+	dw Function16c0ba
+	dw Function16c0ca
+	dw Function16c0dc
+	dw Function16c0ec
+	dw Function16c081
+; 16c074
+
+Function16c074: ; 16c074
+	ld a, [$cf64]
+	and a
+	ret z
+	ld [DefaultFlypoint], a
+	xor a
+	ld [$d003], a
+	ret
+; 16c081
+
+Function16c081: ; 16c081
+	push af
+	ld a, $ff
+	ld [DefaultFlypoint], a
+	pop af
+	ret
+; 16c089
+
+Function16c089: ; 16c089
+	ld a, $1
+	ld [Buffer2], a
+	ld [$d1f1], a
+	xor a
+	ld [hWY], a
+	call Function16c0fa
+	ld a, [DefaultFlypoint]
+	ld [$cf64], a
+	ret
+; 16c09e
+
+Function16c09e: ; 16c09e
+	ld a, [$cf64]
+	cp $4
+	ret nz
+	call Function16c0fa
+	ret
+; 16c0a8
+
+Function16c0a8: ; 16c0a8
+	xor a
+	ld [Buffer2], a
+	ld [$d1f1], a
+	call ClearSprites
+	ld a, $90
+	ld [hWY], a
+	call Function16c0fa
+	ret
+; 16c0ba
+
+Function16c0ba: ; 16c0ba
+	call Function16c943
+	push af
+	ld a, [$d003]
+	inc a
+	ld [$d003], a
+	pop af
+	call c, Function16c0fa
+	ret
+; 16c0ca
+
+Function16c0ca: ; 16c0ca
+	ld a, [$d003]
+	cp $28
+	push af
+	ld a, [$d003]
+	inc a
+	ld [$d003], a
+	pop af
+	call z, Function16c0fa
+	ret
+; 16c0dc
+
+Function16c0dc: ; 16c0dc
+	call Function16ca11
+	push af
+	ld a, [$d003]
+	inc a
+	ld [$d003], a
+	pop af
+	call c, Function16c0fa
+	ret
+; 16c0ec
+
+Function16c0ec: ; 16c0ec
+	call WhiteBGMap
+	call ClearScreen
+	push af
+	ld a, $ff
+	ld [DefaultFlypoint], a
+	pop af
+	ret
+; 16c0fa
+
+Function16c0fa: ; 16c0fa
+	push af
+	ld a, [DefaultFlypoint]
+	inc a
+	ld [DefaultFlypoint], a
+	xor a
+	ld [$d003], a
+	pop af
+	ret
+; 16c108
+
+Function16c108: ; 16c108
+	call DisableLCD
+	ld hl, VTiles2
+	ld de, GFX_16c173
+	lb bc, BANK(GFX_16c173), $68
+	call Get2bpp
+	call Function16c130
+	call Function16c145
+	call Function16c15c
+	ld hl, VBGMap0
+	call Function16cc73
+	call Function16cc02
+	xor a
+	ld [hBGMapMode], a
+	call EnableLCD
+	ret
+; 16c130
+
+Function16c130: ; 16c130
+	ld de, Unkn1Pals
+	ld hl, Unknown_16c903
+	ld bc, 8
+	ld a, $5
+	call FarCopyWRAM
+	callba Function96a4
+	ret
+; 16c145
+
+Function16c145: ; 16c145
+	ld hl, TileMap
+	ld bc, 20
+	xor a
+	call ByteFill
+	ld hl, Tilemap_16c633
+	ld de, $c4b4
+	ld bc, $0154
+	call CopyBytes
+	ret
+; 16c15c
+
+Function16c15c: ; 16c15c
+	ld hl, AttrMap
+	ld bc, $0014
+	xor a
+	call ByteFill
+	ld hl, Tilemap_16c79b
+	ld de, $cded
+	ld bc, $0154
+	call CopyBytes
+	ret
+; 16c173
+
+GFX_16c173:
+INCBIN "baserom.gbc", $16c173, $16c633 - $16c173
+
+Tilemap_16c633:
+INCBIN "baserom.gbc", $16c633, $16c79b - $16c633
+
+Tilemap_16c79b:
+INCBIN "baserom.gbc", $16c79b, $16c903 - $16c79b
+
+Unknown_16c903:
+	RGB 31, 31, 31
+	RGB 04, 10, 20
+	RGB 16, 19, 25
+	RGB 25, 27, 29
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+; 16c943
+
+Function16c943: ; 16c943
+	ld a, [$d003]
+	and a
+	jr nz, .asm_16c95e
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	ld a, $ff
+	ld bc, $0008
+	ld hl, Unkn1Pals
+	call ByteFill
+	pop af
+	ld [rSVBK], a
+
+.asm_16c95e
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	ld e, $0
+	ld a, $0
+.asm_16c969
+	ld hl, Unknown_16c903
+	call Function16cab6
+	call Function16cabb
+	ld d, a
+	ld hl, Unkn1Pals
+	call Function16cab6
+	call Function16cabb
+	cp d
+	jr z, .asm_16c991
+	ld b, $1
+.asm_16c981
+	dec a
+	cp d
+	jr z, .asm_16c988
+	dec b
+	jr nz, .asm_16c981
+
+.asm_16c988
+	ld hl, Unkn1Pals
+	call Function16cab6
+	call Function16cadc
+
+.asm_16c991
+	ld hl, Unknown_16c903
+	call Function16cab6
+	call Function16cad8
+	ld d, a
+	ld hl, Unkn1Pals
+	call Function16cab6
+	call Function16cad8
+	cp d
+	jr z, .asm_16c9b9
+	ld b, $1
+.asm_16c9a9
+	dec a
+	cp d
+	jr z, .asm_16c9b0
+	dec b
+	jr nz, .asm_16c9a9
+
+.asm_16c9b0
+	ld hl, Unkn1Pals
+	call Function16cab6
+	call Function16cb08
+
+.asm_16c9b9
+	ld hl, Unknown_16c903
+	call Function16cab6
+	call Function16cac4
+	ld d, a
+	ld hl, Unkn1Pals
+	call Function16cab6
+	call Function16cac4
+	cp d
+	jr z, .asm_16c9e1
+	ld b, $1
+.asm_16c9d1
+	dec a
+	cp d
+	jr z, .asm_16c9d8
+	dec b
+	jr nz, .asm_16c9d1
+
+.asm_16c9d8
+	ld hl, Unkn1Pals
+	call Function16cab6
+	call Function16cae8
+
+.asm_16c9e1
+	inc e
+	inc e
+	ld a, e
+	cp $8
+	jr nz, .asm_16c969
+	callba Function96a4
+	call Function32f9
+	ld a, [rSVBK]
+	push af
+	ld a, $1
+	ld [rSVBK], a
+	ld a, [$d003]
+	cp $1f
+	jr z, .asm_16ca09
+	pop af
+	ld [rSVBK], a
+	ld e, $0
+	pop af
+	ld [rSVBK], a
+	and a
+	ret
+
+.asm_16ca09
+	pop af
+	ld [rSVBK], a
+	pop af
+	ld [rSVBK], a
+	scf
+	ret
+; 16ca11
+
+Function16ca11: ; 16ca11
+	ld a, [$d003]
+	and a
+	jr nz, .asm_16ca1d
+	callba Function96a4
+
+.asm_16ca1d
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	ld e, $0
+	ld a, $0
+.asm_16ca28
+	ld hl, Unkn1Pals
+	call Function16cab6
+	call Function16cabb
+	cp $1f
+	jr z, .asm_16ca48
+	ld b, $1
+.asm_16ca37
+	inc a
+	cp $1f
+	jr z, .asm_16ca3f
+	dec b
+	jr nz, .asm_16ca37
+
+.asm_16ca3f
+	ld hl, Unkn1Pals
+	call Function16cab6
+	call Function16cadc
+
+.asm_16ca48
+	ld hl, Unkn1Pals
+	call Function16cab6
+	call Function16cad8
+	cp $1f
+	jr z, .asm_16ca68
+	ld b, $1
+.asm_16ca57
+	inc a
+	cp $1f
+	jr z, .asm_16ca5f
+	dec b
+	jr nz, .asm_16ca57
+
+.asm_16ca5f
+	ld hl, Unkn1Pals
+	call Function16cab6
+	call Function16cb08
+
+.asm_16ca68
+	ld hl, Unkn1Pals
+	call Function16cab6
+	call Function16cac4
+	cp $1f
+	jr z, .asm_16ca88
+	ld b, $1
+.asm_16ca77
+	inc a
+	cp $1f
+	jr z, .asm_16ca7f
+	dec b
+	jr nz, .asm_16ca77
+
+.asm_16ca7f
+	ld hl, Unkn1Pals
+	call Function16cab6
+	call Function16cae8
+
+.asm_16ca88
+	inc e
+	inc e
+	ld a, e
+	cp $8
+	jr nz, .asm_16ca28
+	callba Function96a4
+	call Function32f9
+	ld a, [rSVBK]
+	push af
+	ld a, $1
+	ld [rSVBK], a
+	ld a, [$d003]
+	cp $1f
+	jr z, .asm_16caae
+	pop af
+	ld [rSVBK], a
+	pop af
+	ld [rSVBK], a
+	and a
+	ret
+
+.asm_16caae
+	pop af
+	ld [rSVBK], a
+	pop af
+	ld [rSVBK], a
+	scf
+	ret
+; 16cab6
+
+Function16cab6: ; 16cab6
+	ld b, $0
+	ld c, e
+	add hl, bc
+	ret
+; 16cabb
+
+Function16cabb: ; 16cabb
+	inc hl
+	ld a, [hl]
+	srl a
+	srl a
+	and $1f
+	ret
+; 16cac4
+
+Function16cac4: ; 16cac4
+	inc hl
+	ld a, [hld]
+	and $3
+	ld b, a
+	ld a, [hl]
+	sla a
+	rl b
+	sla a
+	rl b
+	sla a
+	rl b
+	ld a, b
+	ret
+; 16cad8
+
+Function16cad8: ; 16cad8
+	ld a, [hl]
+	and $1f
+	ret
+; 16cadc
+
+Function16cadc: ; 16cadc
+	sla a
+	sla a
+	ld b, a
+	inc hl
+	ld a, [hl]
+	and $83
+	or b
+	ld [hl], a
+	ret
+; 16cae8
+
+Function16cae8: ; 16cae8
+	ld c, a
+	srl a
+	srl a
+	srl a
+	ld b, a
+	inc hl
+	ld a, [hl]
+	and $fc
+	or b
+	ld [hld], a
+	ld a, c
+	sla a
+	sla a
+	sla a
+	sla a
+	sla a
+	ld b, a
+	ld a, [hl]
+	and $1f
+	or b
+	ld [hl], a
+	ret
+; 16cb08
+
+Function16cb08: ; 16cb08
+	ld b, a
+	ld a, [hl]
+	and $e0
+	or b
+	ld [hl], a
+	ret
+; 16cb0f
+
+Function16cb0f: ; 16cb0f
+	xor a
+	ld [Buffer1], a
+	ld [Buffer2], a
+	xor a
+	ld [$d1ec], a
+	ld a, $70
+	ld [$d1ee], a
+	ld a, $4
+	ld [$d1ed], a
+	ld a, $a0
+	ld [$d1ef], a
+	xor a
+	ld [$d1f0], a
+	ret
+; 16cb2e
+
+Function16cb2e: ; 16cb2e
+	ld a, [Buffer2]
+	and a
+	ret z
+	call Function16cb40
+	ld hl, Unknown_16cb86
+	ld de, Sprites
+	call Function16cb5d
+	ret
+; 16cb40
+
+Function16cb40: ; 16cb40
+	ld hl, $d1ec
+	inc [hl]
+	ld a, [hl]
+	cp $18
+	ret c
+	xor a
+	ld [hl], a
+	ld a, [$d1ef]
+	cp $a0
+	jr nz, .asm_16cb57
+	ld a, $a7
+	ld [$d1ef], a
+	ret
+
+.asm_16cb57
+	ld a, $a0
+	ld [$d1ef], a
+	ret
+; 16cb5d
+
+Function16cb5d: ; 16cb5d
+	ld a, [hli]
+	and a
+	ret z
+.asm_16cb60
+	push af
+	ld a, [$d1ee]
+	add [hl]
+	add $10
+	ld [de], a
+	inc hl
+	inc de
+	ld a, [$d1ed]
+	add [hl]
+	add $8
+	ld [de], a
+	inc hl
+	inc de
+	ld a, [$d1ef]
+	add [hl]
+	ld [de], a
+	inc hl
+	inc de
+	ld a, [$d1f0]
+	or [hl]
+	ld [de], a
+	inc hl
+	inc de
+	pop af
+	dec a
+	jr nz, .asm_16cb60
+	ret
+; 16cb86
+
+Unknown_16cb86:
+	db 7
+	db  0,  0, 0, 1
+	db  8,  0, 1, 1
+	db  8,  8, 2, 0
+	db  8, 16, 3, 0
+	db 16,  0, 4, 1
+	db 16,  8, 5, 0
+	db 16, 16, 6, 0
+; 16cba3
+
+Function16cba3: ; 16cba3
+	xor a
+	ld [$d1f1], a
+	ld [$d1f2], a
+	ld [$d1f3], a
+	ret
+; 16cbae
+
+Function16cbae: ; 16cbae
+	ld a, [$d1f1]
+	and a
+	ret z
+	call Function16cbba
+	call Function16cbd1
+	ret
+; 16cbba
+
+Function16cbba: ; 16cbba
+	ld hl, $d1f2
+	inc [hl]
+	ld a, [hl]
+	cp $c
+	ret c
+	xor a
+	ld [hl], a
+	ld a, [$d1f3]
+	inc a
+	cp $4
+	jr c, .asm_16cbcd
+	xor a
+
+.asm_16cbcd
+	ld [$d1f3], a
+	ret
+; 16cbd1
+
+Function16cbd1: ; 16cbd1
+	ld a, [$d1f3]
+	ld c, a
+	ld b, 0
+	ld hl, Unknown_16cbfb
+	add hl, bc
+	ld a, [hl]
+	ld bc, $0002
+	ld hl, Unknown_16cfa3
+	call AddNTimes
+	ld de, $d00c
+	ld bc, $0002
+	ld a, $5
+	call FarCopyWRAM
+	callba Function96a4
+	ld a, $1
+	ld [hCGBPalUpdate], a
+	ret
+; 16cbfb
+
+Unknown_16cbfb:
+	db 0, 1, 2, 1, 0, 1, 2
+; 16cc02
+
+Function16cc02: ; 16cc02
+	call Function16cc18
+	call Function16cc49
+	call Function16cc62
+	call Function16cc25
+	call Function16cc6e
+	call Function16cb0f
+	call Function16cba3
+	ret
+; 16cc18
+
+Function16cc18: ; 16cc18
+	ld hl, VTiles1
+	ld de, GFX_16cca3
+	lb bc, BANK(GFX_16cca3), $2e
+	call Get2bpp
+	ret
+; 16cc25
+
+Function16cc25: ; 16cc25
+	ld hl, Unknown_16cfa9
+	ld de, $d008
+	call Function16cc41
+	ld hl, Unknown_16cfb1
+	ld de, Unkn2Pals
+	call Function16cc41
+	ld hl, Unknown_16cfb9
+	ld de, $d048
+	call Function16cc41
+	ret
+; 16cc41
+
+Function16cc41: ; 16cc41
+	ld bc, $0008
+	ld a, $5
+	jp FarCopyWRAM
+; 16cc49
+
+Function16cc49: ; 16cc49
+	ld hl, $c5d0
+	ld a, $80
+	call Function16cc5a
+	ld hl, $c5e4
+	ld a, $90
+	call Function16cc5a
+	ret
+; 16cc5a
+
+Function16cc5a: ; 16cc5a
+	ld c, $10
+.asm_16cc5c
+	ld [hli], a
+	inc a
+	dec c
+	jr nz, .asm_16cc5c
+	ret
+; 16cc62
+
+Function16cc62: ; 16cc62
+	ld hl, $cf05
+	ld bc, $0028
+	ld a, $1
+	call ByteFill
+	ret
+; 16cc6e
+
+Function16cc6e: ; 16cc6e
+	ld hl, VBGMap1
+	jr Function16cc73
+
+Function16cc73:
+	ld a, [rVBK]
+	push af
+	ld a, $0
+	ld [rVBK], a
+	push hl
+	ld de, SpritesEnd
+	call Function16cc90
+	pop hl
+	ld a, $1
+	ld [rVBK], a
+	ld de, AttrMap
+	call Function16cc90
+	pop af
+	ld [rVBK], a
+	ret
+; 16cc90
+
+Function16cc90: ; 16cc90
+	ld bc, $1214
+.asm_16cc93
+	push bc
+.asm_16cc94
+	ld a, [de]
+	inc de
+	ld [hli], a
+	dec c
+	jr nz, .asm_16cc94
+	ld bc, $000c
+	add hl, bc
+	pop bc
+	dec b
+	jr nz, .asm_16cc93
+	ret
+; 16cca3
+
+GFX_16cca3:
+INCBIN "baserom.gbc", $16cca3, $16cfa3 - $16cca3
+
+Unknown_16cfa3:
+	RGB 31, 31, 31
+	RGB 25, 27, 29
+	RGB 16, 19, 25
+
+Unknown_16cfa9:
+	RGB 31, 31, 31
+	RGB 25, 27, 29
+	RGB 31, 31, 31
+	RGB 07, 07, 07
+
+Unknown_16cfb1:
+	RGB 31, 31, 31
+	RGB 13, 09, 18
+	RGB 26, 21, 16
+	RGB 07, 07, 07
+
+Unknown_16cfb9:
+	RGB 31, 31, 31
+	RGB 18, 05, 02
+	RGB 27, 11, 12
+	RGB 07, 07, 07
+; 16cfc1
+
 GFX_16cfc1:
 INCBIN "baserom.gbc",$16cfc1,$16d421 - $16cfc1
 
@@ -126568,13 +127419,31 @@
 	ret
 ; 16d43b
 
-INCBIN "baserom.gbc",$16d43b,$16d465 - $16d43b
+Function16d43b: ; 16d43b
+	call Function1d6e
+	call WhiteBGMap
+	call ClearTileMap
+	call ClearSprites
+	callba Function16d421
+	callba Function16d42e
+	ld b, $8
+	call GetSGBLayout
+	call Function32f9
+	call WaitBGMap
+	call Functiona36
+	call Function1d7d
+	ret
+; 16d465
 
 Tilemap_16d465:
 INCBIN "baserom.gbc",$16d465,$16d5cd - $16d465
 
-INCBIN "baserom.gbc",$16d5cd,$16d61d - $16d5cd
+Tilemap_16d5cd:
+INCBIN "baserom.gbc",$16d5cd,$16d5f5 - $16d5cd
 
+Tilemap_16d5f5:
+INCBIN "baserom.gbc",$16d5f5,$16d61d - $16d5f5
+
 Function16d61d: ; 16d61d
 	ld h, d
 	ld l, e
@@ -126652,12 +127521,14 @@
 	callba Function49856
 	callba Functionfb60d
 	hlcoord 10, 17
-	ld de, $568f
+	ld de, String_16d68f
 	call PlaceString
 	ret
 ; 16d68f
 
-INCBIN "baserom.gbc",$16d68f,$16d696 - $16d68f
+String_16d68f: ; 16d68f
+	db "CANCEL@"
+; 16d696
 
 Function16d696: ; 16d696
 	call Function16d421
@@ -126666,9 +127537,9 @@
 
 
 Function16d69a: ; 16d69a
-	ld de, $52c1
+	ld de, GFX_16cfc1 + $300
 	ld hl, $9760
-	ld bc, $5b08
+	lb bc, BANK(GFX_16cfc1), 8
 	call Get2bpp
 	ret
 ; 16d6a7
@@ -126680,11 +127551,11 @@
 
 Function16d6ae: ; 16d6ae
 	call Function16d42e
-	ld hl, $55cd
+	ld hl, Tilemap_16d5cd
 	ld de, TileMap
 	ld bc, $0028
 	call CopyBytes
-	ld hl, $55f5
+	ld hl, Tilemap_16d5f5
 	decoord 0, 16
 	ld bc, $0028
 	call CopyBytes
@@ -126711,7 +127582,7 @@
 	ld c, $a
 	predef Function28eef
 	hlcoord 5, 11
-	ld de, $5701
+	ld de, String_16d701
 	call PlaceString
 	call WaitBGMap
 	call Function3200
@@ -126719,7 +127590,9 @@
 	jp DelayFrames
 ; 16d701
 
-INCBIN "baserom.gbc",$16d701,$16d70c - $16d701
+String_16d701: ; 16d701
+	db "WAITING..!@"
+; 16d70c
 
 Function16d70c: ; 16d70c
 	call Function16d725