diff options
author | luckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com> | 2018-08-23 19:50:38 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-23 19:50:38 -0400 |
commit | 23bae0181bd990c535346191cff41bdddcb44493 (patch) | |
tree | 7a8049625b80530fea25166cfaad28c0d5416ae9 | |
parent | 8f3ebd4a59cf69d97bc4932738a78a37d0968d3d (diff) | |
parent | 95e09f83f43b0109e937d56a56c0cbce792c921d (diff) |
Merge pull request #41 from Pokeglitch/master
Bank 2 dump
25 files changed, 3291 insertions, 55 deletions
@@ -21,7 +21,7 @@ CORRECTEDROM := $(ROM:%.gb=%-correctheader.gb) rwildcard = $(foreach d, $(wildcard $1*), $(filter $(subst *, %, $2), $d) $(call rwildcard, $d/, $2)) DIRS := home engine data audio maps -ASMFILES := $(call rwildcard, $(DIRS), *.asm) gfx.asm vram.asm sram.asm wram.asm hram.asm +ASMFILES := $(call rwildcard, $(DIRS), *.asm) bin.asm gfx.asm vram.asm sram.asm wram.asm hram.asm OBJS := $(patsubst %.asm, $(BUILD)/%.o, $(ASMFILES)) OBJS += $(BUILD)/shim.o @@ -88,12 +88,19 @@ $(BUILD)/%.o: %.asm | $$(dir $$@) $(BUILD)/gfx/sgb/sgb_border_alt.2bpp: tools/gfx += --trim-whitespace $(BUILD)/gfx/sgb/sgb_border_gold.2bpp: tools/gfx += --trim-whitespace +$(BUILD)/gfx/sgb/sgb_border_gold_corrupted.2bpp: tools/gfx += --trim-whitespace +$(BUILD)/gfx/sgb/sgb_border_silver.2bpp: tools/gfx += --trim-whitespace +$(BUILD)/gfx/sgb/corrupted_9e1c.2bpp: tools/gfx += --trim-whitespace +$(BUILD)/gfx/sgb/corrupted_a66c.2bpp: tools/gfx += --trim-whitespace +$(BUILD)/gfx/sgb/corrupted_b1e3.2bpp: tools/gfx += --trim-whitespace $(BUILD)/gfx/sgb/sgb_border_silver.2bpp: tools/gfx += --trim-whitespace $(BUILD)/gfx/trainer_card/leaders.2bpp: tools/gfx += --trim-whitespace $(BUILD)/gfx/pokegear/town_map.2bpp: tools/gfx += --trim-trailing $(BUILD)/gfx/minigames/slots.2bpp: tools/gfx += --trim-whitespace $(BUILD)/gfx/minigames/poker.2bpp: tools/gfx += --trim-whitespace $(BUILD)/gfx/intro/purin_pikachu.2bpp: tools/gfx += --trim-whitespace +$(BUILD)/gfx/battle_anims/attack_animations_1.2bpp: tools/gfx += --trim-whitespace +$(BUILD)/gfx/battle_anims/attack_animations_2.2bpp: tools/gfx += --trim-whitespace .PRECIOUS: $(BUILD)/%.pic $(BUILD)/%.pic: $(BUILD)/%.2bpp tools/pkmncompress | $$(dir $$@) @@ -0,0 +1,9 @@ +SECTION "bin.asm@Unknownaebc", ROMX + +Unknownaebc: ; 02:6ebc +INCBIN "bin/unknown_aebc.bin" + +SECTION "bin.asm@Unknownbb43", ROMX + +Unknownbb43: ; 02:7b43 +INCBIN "bin/unknown_bb43.bin"
\ No newline at end of file diff --git a/bin/unknown_aebc.bin b/bin/unknown_aebc.bin Binary files differnew file mode 100755 index 0000000..531072d --- /dev/null +++ b/bin/unknown_aebc.bin diff --git a/bin/unknown_bb43.bin b/bin/unknown_bb43.bin Binary files differnew file mode 100755 index 0000000..e21effb --- /dev/null +++ b/bin/unknown_bb43.bin diff --git a/engine/dumps/bank02.asm b/engine/dumps/bank02.asm new file mode 100755 index 0000000..39eb195 --- /dev/null +++ b/engine/dumps/bank02.asm @@ -0,0 +1,3161 @@ +include "constants.asm" + +SECTION "engine/dumps/bank02.asm@Function8000", ROMX + +Function8000: ; 02:4000 + ld a, $00 + ld hl, Data8022 + call Function1656 + call Function1668 + ld a, $01 + ldh [hConnectedMapWidth], a + ld de, wPlayerSprite + ld a, $00 + ldh [hConnectionStripLength], a + ld bc, wMapObjects + call Function813d + ld a, $00 + call Function1908 + ret + +Data8022: ; 02:4022 + db $01, $00, $00, $10, $ee, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00 + +Function8031: ; 02:4031 + call Function8047 + ld a, [wUsedSprites+1] + ld [wMap1ObjectSprite], a + ld a, $01 + call Function1602 + ld b, $00 + ld c, $01 + call StartFollow + ret + +Function8047: ; 02:4047 + ld a, $01 + ld hl, Data805d + call Function1656 + ld a, [wPlayerNextMapX] + ld [wMap1ObjectXCoord], a + ld a, [wPlayerNextMapY] + dec a + ld [wMap1ObjectYCoord], a + ret + +Data805d: ; 02:405d + db $4d, $00, $00, $18, $ff, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00 + +Function806c: ; 02:406c + ld a, $01 + call Function169f + xor a + ld [wObjectFollow_Follower], a + ld a, $ff + ld [wObjectFollow_Leader], a + ret + +Function807b: ; 02:407b + ld a, $01 + ld hl, Data8089 + call Function1656 + ld a, $01 + call Function1668 + ret + +Data8089: ; 02:4089 + db $01, $00, $00, $17, $ee, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00 + +_InitializeVisibleSprites: ; 02:4098 + ld bc, wMap2Object + ld a, $02 +.sub_809d + ldh [hConnectionStripLength], a + ld hl, $0001 + add hl, bc + ld a, [hl] + and a + jr z, .sub_80dc + ld hl, $0000 + add hl, bc + ld a, [hl] + cp $ff + jr nz, .sub_80dc + ld a, [wXCoord] + ld d, a + ld a, [wYCoord] + ld e, a + ld hl, $0003 + add hl, bc + ld a, [hl] + add $01 + sub d + jr c, .sub_80dc + cp $0c + jr nc, .sub_80dc + ld hl, $0002 + add hl, bc + ld a, [hl] + add $01 + sub e + jr c, .sub_80dc + cp $0b + jr nc, .sub_80dc + push bc + call Function80eb + pop bc + jp c, Function80ea +.sub_80dc + ld hl, $0010 + add hl, bc + ld b, h + ld c, l + ldh a, [hConnectionStripLength] + inc a + cp $10 + jr nz, .sub_809d + ret + +Function80ea: ; 02:40ea + ret + +Function80eb: ; 02:40eb + call Function811a + and a + ret nz + ld hl, wObject1StructEnd + ld a, $03 + ld de, $0028 +.sub_80f8 + ldh [hConnectedMapWidth], a + ld a, [hl] + and a + jr z, .sub_8108 + add hl, de + ldh a, [hConnectedMapWidth] + inc a + cp $0a + jr nz, .sub_80f8 + scf + ret +.sub_8108 + ld d, h + ld e, l + call Function813d + ld a, [wVramState] + bit 7, a + ret z + ld hl, $0005 + add hl, de + set 5, [hl] + ret + +Function811a: ; 02:411a + ldh a, [hConnectionStripLength] + ld e, a + ld d, $00 + ld hl, wUnknownWordcc9c + add hl, de + ld a, [hl] + ret + +Function8125: ; 02:4125 + ldh a, [hConnectionStripLength] + ld e, a + ld d, $00 + ld hl, wUnknownWordcc9c + add hl, de + ld [hl], $ff + ret + +Function8131: ; 02:4131 + ldh a, [hConnectionStripLength] + ld e, a + ld d, $00 + ld hl, wUnknownWordcc9c + add hl, de + ld [hl], $00 + ret + +Function813d: ; 02:413d + ldh a, [hConnectionStripLength] + ld hl, $0001 + add hl, de + ld [hl], a + ldh a, [hConnectedMapWidth] + ld hl, $0000 + add hl, bc + ld [hl], a + ld hl, $0008 + add hl, de + ld [hl], $00 + ld hl, $0002 + add hl, bc + ld a, [hl] + ld hl, $0015 + add hl, de + ld [hl], a + ld hl, $0011 + add hl, de + ld [hl], a + ld hl, wYCoord + sub [hl] + and $0f + swap a + ld hl, $0019 + add hl, de + ld [hl], a + ld hl, $0003 + add hl, bc + ld a, [hl] + ld hl, $0014 + add hl, de + ld [hl], a + ld hl, $0010 + add hl, de + ld [hl], a + ld hl, wXCoord + sub [hl] + and $0f + swap a + ld hl, $0018 + add hl, de + ld [hl], a + ld hl, $0004 + add hl, bc + ld a, [hl] + ld hl, $0003 + add hl, de + ld [hl], a + call Function81ce + ld hl, $000d + add hl, de + ld [hl], $ff + ld hl, $000a + add hl, de + ld [hl], $00 + ld hl, $0007 + add hl, de + ld [hl], $00 + ld hl, $0001 + add hl, bc + ld a, [hl] + ld hl, $0000 + add hl, de + ld [hl], a + call Function820d + ld hl, $0002 + add hl, de + ld [hl], a + ld hl, $0005 + add hl, bc + ld a, [hl] + call Function81f8 + ld hl, $000b + add hl, bc + ld a, [hl] + ld hl, $0021 + add hl, de + ld [hl], a + and a + ret + +Function81ce: ; 02:41ce + ld hl, $0004 + add hl, de + ld [hl], $70 + ldh a, [hConnectedMapWidth] + push hl + ld hl, wCenteredObject + cp [hl] + pop hl + jr nz, .sub_81e0 + set 7, [hl] +.sub_81e0 + cp $01 + jr z, .sub_81e8 + cp $02 + jr nz, .sub_81ea +.sub_81e8 + set 1, [hl] +.sub_81ea + ld hl, $0005 + add hl, de + ld [hl], $00 + ldh a, [hConnectedMapWidth] + cp $01 + ret z + set 4, [hl] + ret + +Function81f8: ; 02:41f8 + push af + swap a + and $0f + inc a + ld hl, $0016 + add hl, de + ld [hl], a + pop af + and $0f + inc a + ld hl, $0017 + add hl, de + ld [hl], a + ret + +Function820d: ; 02:420d + push af + ldh a, [hConnectionStripLength] + cp $00 + jr nz, .sub_8218 + pop af + ld a, $00 + ret +.sub_8218 + cp $01 + jr nz, .sub_8220 + pop af + ld a, $0c + ret +.sub_8220 + pop af + push hl + push de + ld d, a + ld e, $00 + ld hl, wUsedNPCSprites +.sub_8229 + ld a, [hli] + cp d + jr z, .sub_8238 + inc e + ld a, e + cp $0a + jr nz, .sub_8229 + ld a, $00 + scf + jr .sub_823f +.sub_8238 + ld hl, Data8242 + ld d, $00 + add hl, de + ld a, [hl] +.sub_823f + pop de + pop hl + ret + +Data8242: ; 02:4242 + db $18, $24, $30, $3c, $48, $54, $60, $6c + db $78, $7c + +Function824c: ; 02:424c + nop + ld a, [wPlayerStepDirection] + cp $ff + ret z + ld hl, Table8259 + jp CallJumptable + +Table8259: ; 02:4259 + dw Function8299 + dw Function8292 + dw Function82e6 + dw Function82ed + +Function8261: ; 02:4261 + ret + +Function8262: ; 02:4262 + ld a, [wPlayerStepDirection] + cp $ff + ret z + ld hl, Table826e + jp CallJumptable + +Table826e: ; 02:426e + dw Function827d + dw Function8276 + dw Function8284 + dw Function828b + +Function8276: ; 02:4276 + ld a, [wYCoord] + sub $02 + jr Function829e + +Function827d: ; 02:427d + ld a, [wYCoord] + add $0a + jr Function829e + +Function8284: ; 02:4284 + ld a, [wXCoord] + sub $02 + jr Function82f2 + +Function828b: ; 02:428b + ld a, [wXCoord] + add $0b + jr Function82f2 + +Function8292: ; 02:4292 + ld a, [wYCoord] + sub $01 + jr Function829e + +Function8299: ; 02:4299 + ld a, [wYCoord] + add $09 + +Function829e: ; 02:429e + ld d, a + ld a, [wXCoord] + ld e, a + ld bc, wMap2Object + ld a, $02 +.sub_82a8 + ldh [hConnectionStripLength], a + ld hl, $0001 + add hl, bc + ld a, [hl] + and a + jr z, .sub_82d8 + ld hl, $0002 + add hl, bc + ld a, d + cp [hl] + jr nz, .sub_82d8 + ld hl, $0000 + add hl, bc + ld a, [hl] + cp $ff + jr nz, .sub_82d8 + ld hl, $0003 + add hl, bc + ld a, [hl] + add $01 + sub e + jr c, .sub_82d8 + cp $0c + jr nc, .sub_82d8 + push de + push bc + call Function80eb + pop bc + pop de +.sub_82d8 + ld hl, $0010 + add hl, bc + ld b, h + ld c, l + ldh a, [hConnectionStripLength] + inc a + cp $10 + jr nz, .sub_82a8 + ret + +Function82e6: ; 02:42e6 + ld a, [wXCoord] + sub $01 + jr Function82f2 + +Function82ed: ; 02:42ed + ld a, [wXCoord] + add $0a + +Function82f2: ; 02:42f2 + ld e, a + ld a, [wYCoord] + ld d, a + ld bc, wMap2Object + ld a, $02 +.sub_82fc + ldh [hConnectionStripLength], a + ld hl, $0001 + add hl, bc + ld a, [hl] + and a + jr z, .sub_832c + ld hl, $0003 + add hl, bc + ld a, e + cp [hl] + jr nz, .sub_832c + ld hl, $0000 + add hl, bc + ld a, [hl] + cp $ff + jr nz, .sub_832c + ld hl, $0002 + add hl, bc + ld a, [hl] + add $01 + sub d + jr c, .sub_832c + cp $0b + jr nc, .sub_832c + push de + push bc + call Function80eb + pop bc + pop de +.sub_832c + ld hl, $0010 + add hl, bc + ld b, h + ld c, l + ldh a, [hConnectionStripLength] + inc a + cp $10 + jr nz, .sub_82fc + ret + +Function833a: ; 02:433a + ld a, c + push af + call InitMovementBuffer + ld a, $29 + call AppendToMovementBuffer + ld a, b + call GetMapObject + ld hl, $0000 + add hl, bc + ld a, [hl] + cp $ff + jr z, .sub_8361 + call GetObjectStruct + ld hl, $0011 + add hl, bc + ld a, [hl] + ld hl, $0010 + add hl, bc + ld b, [hl] + ld c, a + jr .sub_836c +.sub_8361 + ld hl, $0002 + add hl, bc + ld a, [hl] + ld hl, $0003 + add hl, bc + ld b, [hl] + ld c, a +.sub_836c + pop af + call ComputePathToWalkToPlayer + ld a, $28 + call AppendToMovementBuffer + ld a, $32 + call AppendToMovementBuffer + xor a + ret + +Function837c: ; 02:437c + call InitMovementBuffer + push bc + ld a, b + call GetMapObject + ld hl, $0000 + add hl, bc + ld a, [hl] + call GetObjectStruct + ld hl, $0010 + add hl, bc + ld a, [hl] + ld hl, $0011 + add hl, bc + ld c, [hl] + ld b, a + pop hl + ld a, l + call ComputePathToWalkToPlayer + ld a, $32 + call AppendToMovementBuffer + ret + +Function83a2: ; 02:43a2 + push de + call InitMovementBuffer + pop de + call Function83b0 + ld a, $32 + call AppendToMovementBuffer + ret + +Function83b0: ; 02:43b0 + push de + push bc + ld a, c + call GetMapObject + ld hl, $0000 + add hl, bc + ld a, [hl] + call GetObjectStruct + ld d, b + ld e, c + pop bc + ld a, b + call GetMapObject + ld hl, $0000 + add hl, bc + ld a, [hl] + call GetObjectStruct + ld hl, $0010 + add hl, bc + ld a, [hl] + ld hl, $0011 + add hl, bc + ld c, [hl] + ld b, a + ld hl, $0010 + add hl, de + ld a, [hl] + ld hl, $0011 + add hl, de + ld e, [hl] + ld d, a + pop af + call ComputePathToWalkToPlayer + ret + +Function83e8: ; 02:43e8 + ld hl, wcb70 + push hl + ld a, [hl] + ld l, a + ld h, $00 + ld de, Table83fb + add hl, hl + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + pop hl + push de + ret + +Table83fb: ; 02:43fb + dw Function8432 + dw Function844a + dw Function8459 + dw Function8433 + dw Function8438 + dw Function843d + dw Function8468 + dw Function8477 + dw Function8485 + dw Function848b + dw Function8494 + dw Function849b + dw Function84a9 + dw Function84af + dw Function84b8 + +Function8419: ; 02:4419 + ld a, c + ld [wVBCopyFarSrcBank], a + ld a, l + ld [wVBCopyFarSrc], a + ld a, h + ld [wVBCopyFarSrc+1], a + +Function8425: ; 02:4425 + ld a, e + ld [wVBCopyFarDst], a + ld a, d + ld [wVBCopyFarDst+1], a + +Function842d: ; 02:442d + ld a, b + ld [wVBCopyFarSize], a + ret + +Function8432: ; 02:4432 + ret + +Function8433: ; 02:4433 + ld hl, ShockEmoteGFX + jr Function8440 + +Function8438: ; 02:4438 + ld hl, QuestionEmoteGFX + jr Function8440 + +Function843d: ; 02:443d + ld hl, HappyEmoteGFX + +Function8440: ; 02:4440 + ld de, vChars1 + $780 + ld b, $04 + ld c, BANK(HappyEmoteGFX) + jp Function8419 + +Function844a: ; 02:444a + ld [hl], $00 + ld hl, JumpShadowGFX + ld de, vChars1 + $7c0 + ld b, $01 + ld c, BANK(JumpShadowGFX) + jp Function8419 + +Function8459: ; 02:4459 + ld [hl], $00 + ld hl, UnknownBouncingOrbGFX + ld de, vChars1 + $7c0 + ld b, $04 + ld c, BANK(UnknownBouncingOrbGFX) + jp Function8419 + +Function8468: ; 02:4468 + ld [hl], $00 + ld hl, UnknownBallGFX + ld de, vChars1 + $7c0 + ld b, $01 + ld c, BANK(UnknownBallGFX) + jp Function8419 + +Function8477: ; 02:4477 + inc [hl] + ld hl, GrampsSpriteGFX + ld de, vChars0 + ld b, $06 + ld c, BANK(GrampsSpriteGFX) + jp Function8419 + +Function8485: ; 02:4485 + inc [hl] + ld b, $06 + jp Function842d + +Function848b: ; 02:448b + inc [hl] + ld de, vChars1 + ld b, $06 + jp Function8425 + +Function8494: ; 02:4494 + ld [hl], $00 + ld b, $06 + jp Function842d + +Function849b: ; 02:449b + inc [hl] + ld hl, PippiSpriteGFX + ld de, vChars0 + ld b, $06 + ld c, BANK(PippiSpriteGFX) + jp Function8419 + +Function84a9: ; 02:44a9 + inc [hl] + ld b, $06 + jp Function842d + +Function84af: ; 02:44af + inc [hl] + ld de, vChars1 + ld b, $06 + jp Function8425 + +Function84b8: ; 02:44b8 + ld [hl], $00 + ld b, $06 + jp Function842d + +SECTION "engine/dumps/bank02.asm@QueueFollowerFirstStep", ROMX + +QueueFollowerFirstStep: ; 02:45df + call Function85f2 + jr c, .sub_85ec + ld [wFollowMovementQueue], a + xor a + ld [wFollowerMovementQueueLength], a + ret +.sub_85ec + ld a, $ff + ld [wFollowerMovementQueueLength], a + ret + +Function85f2: ; 02:45f2 + ld a, [wObjectFollow_Leader] + call GetObjectStruct + ld hl, $0010 + add hl, bc + ld d, [hl] + ld hl, $0011 + add hl, bc + ld e, [hl] + ld a, [wObjectFollow_Follower] + call GetObjectStruct + ld hl, $0010 + add hl, bc + ld a, d + cp [hl] + jr z, .sub_861a + jr c, .sub_8616 + and a + ld a, $0b + ret +.sub_8616 + and a + ld a, $0a + ret +.sub_861a + ld hl, $0011 + add hl, bc + ld a, e + cp [hl] + jr z, .sub_862c + jr c, .sub_8628 + and a + ld a, $08 + ret +.sub_8628 + and a + ld a, $09 + ret +.sub_862c + scf + ret + +Function862e: ; 02:462e + ld a, e + and $3f + cp $20 + jr nc, .sub_863a + call Function8644 + ld a, h + ret +.sub_863a + and $1f + call Function8644 + ld a, h + xor $ff + inc a + ret + +Function8644: ; 02:4644 + ld e, a + ld a, d + ld d, $00 + ld hl, Data8660 + add hl, de + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $0000 +.sub_8653 + srl a + jr nc, .sub_8658 + add hl, de +.sub_8658 + sla e + rl d + and a + jr nz, .sub_8653 + ret + +Data8660: ; 02:4660 + dw $00 + dw $19 + dw $32 + dw $4a + dw $62 + dw $79 + dw $8e + dw $a2 + dw $b5 + dw $c6 + dw $d5 + dw $e2 + dw $ed + dw $f5 + dw $fb + dw $ff + dw $100 + dw $ff + dw $fb + dw $f5 + dw $ed + dw $e2 + dw $d5 + dw $c6 + dw $b5 + dw $a2 + dw $8e + dw $79 + dw $62 + dw $4a + dw $32 + dw $19 + +Function86a0: ; 02:46a0 + call Function881e + ld hl, InitEffectObject + ld a, BANK(InitEffectObject) + call FarCall_hl + call Function886a + call WaitBGMap + call SetPalettes +.sub_86b4 + call DelayFrame + call GetJoypadDebounced + ld hl, EffectObjectJumpNoDelay + ld a, BANK(EffectObjectJumpNoDelay) + call FarCall_hl + ld hl, hJoyDown + ld a, [hl] + and $03 + jr z, .sub_86b4 + ret + +FlyMap: ; 02:46cb + ld hl, hJoyDebounceSrc + ld a, [hl] + push af + ld [hl], $01 + call Function881e + ld hl, InitEffectObject + ld a, BANK(InitEffectObject) + call FarCall_hl + call Function886a + call Function88b3 + ld hl, wcb60 + ld [hl], c + inc hl + ld [hl], b + coord hl, 1, 15 + ld de, Text8776 + call PlaceString + call WaitBGMap + call SetPalettes + xor a + ld [wFlyDestination], a +.sub_86fc + call DelayFrame + call GetJoypadDebounced + ld hl, EffectObjectJumpNoDelay + ld a, BANK(EffectObjectJumpNoDelay) + call FarCall_hl + ld hl, hJoyDown + ld a, [hl] + and $02 + jr nz, .sub_873e + ld a, [hl] + and $01 + jr nz, .sub_8743 + call Function8747 + ld hl, Functionc77d + ld a, BANK(Functionc77d) + call FarCall_hl + ld d, $00 + ld hl, Data8a53 + add hl, de + add hl, de + ld d, [hl] + inc hl + ld e, [hl] + ld hl, wcb60 + ld c, [hl] + inc hl + ld b, [hl] + ld hl, $0004 + add hl, bc + ld [hl], e + ld hl, $0005 + add hl, bc + ld [hl], d + jr .sub_86fc +.sub_873e + ld a, $ff + ld [wFlyDestination], a +.sub_8743 + pop af + ldh [hJoyDebounceSrc], a + ret + +Function8747: ; 02:4747 + ld a, [wFlyDestination] + ld l, a + ld h, $00 + add hl, hl + add hl, hl + ld de, Data8a17 + add hl, de + ld de, hJoySum + ld a, [de] + and $40 + jr nz, .sub_876e + inc hl + ld a, [de] + and $80 + jr nz, .sub_876e + inc hl + ld a, [de] + and $20 + jr nz, .sub_876e + inc hl + ld a, [de] + and $10 + jr nz, .sub_876e + ret +.sub_876e + ld a, [hl] + cp $ff + ret z + ld [wFlyDestination], a + ret + +Text8776: ; 02:4776 + db "とびさき を えらんでください@" + +Function8786: ; 02:4786 + ld a, [wFlyDestination] + push af + xor a + ld [wFlyDestination], a + call Function881e + ld de, PokedexNestIconGFX + ld hl, vChars0 + $7f0 + lb bc, BANK(PokedexNestIconGFX), $01 + call Request1bpp + call GetPokemonName + coord hl, 4, 15 + call PlaceString + coord hl, 9, 15 + ld de, Text87e4 + call PlaceString + call WaitBGMap + call SetPalettes + xor a + ldh [hBGMapMode], a + ld hl, wTileMap + ld bc, $0168 + xor a + call ByteFill + ld hl, Function3e9dc + ld a, BANK(Function3e9dc) + call FarCall_hl +.sub_87ca + call Function87ea + call GetJoypadDebounced + ldh a, [hJoyDown] + and $03 + jr nz, .sub_87df + ld hl, wFlyDestination + inc [hl] + call DelayFrame + jr .sub_87ca +.sub_87df + pop af + ld [wFlyDestination], a + ret + +Text87e4: ; 02:47e4 + db "の すみか@" + +Function87ea: ; 02:47ea + ld a, [wFlyDestination] + and $10 + jr z, .sub_881a + ld de, wTileMap + ld hl, wVirtualOAM +.sub_87f7 + ld a, [de] + and a + ret z + push de + push hl + ld e, a + ld d, $00 + ld hl, Data8a53 + add hl, de + add hl, de + ld e, l + ld d, h + pop hl + ld a, [de] + inc de + sub $04 + ld [hli], a + ld a, [de] + inc de + sub $04 + ld [hli], a + ld a, $7f + ld [hli], a + xor a + ld [hli], a + pop de + inc de + jr .sub_87f7 +.sub_881a + call ClearSprites + ret + +Function881e: ; 02:481e + call ClearBGPalettes + call ClearTileMap + call UpdateSprites + call DisableLCD + ld hl, PokedexLocationGFX + ld de, vTilesetEnd + ld bc, $0200 + ld a, BANK(PokedexLocationGFX) + call FarCopyData + ld hl, wTileMap + call DecompTownMapTilemap + coord hl, 0, 13 + ld b, $03 + ld c, $12 + call DrawTextBox + ld a, $03 + call UpdateSoundNTimes + call EnableLCD + ld b, $02 + call GetSGBLayout + ret + +DecompTownMapTilemap: ; 02:4856 + ld de, TownMapTilemap +.sub_8859 + ld a, [de] + and a + ret z + ld b, a + inc de + ld a, [de] + ld c, a + ld a, b + add $60 +.sub_8863 + ld [hli], a + dec c + jr nz, .sub_8863 + inc de + jr .sub_8859 + +Function886a: ; 02:486a + ld de, GoldSpriteGFX + ld hl, vChars0 + lb bc, BANK(GoldSpriteGFX), $04 + call Request2bpp + ld de, GoldSpriteGFX + $c0 + ld hl, vChars0 + $40 + lb bc, BANK(GoldSpriteGFX), $04 + call Request2bpp + ld de, $0000 + ld a, $41 + call InitSpriteAnimStruct + ld hl, $0003 + add hl, bc + ld [hl], $00 + push bc + ld a, [wMapGroup] + ld b, a + ld a, [wMapId] + ld c, a + call GetWorldMapLocation + ld e, a + ld d, $00 + ld hl, Data8a53 + add hl, de + add hl, de + ld d, [hl] + inc hl + ld e, [hl] + pop bc + ld hl, $0004 + add hl, bc + ld [hl], e + ld hl, $0005 + add hl, bc + ld [hl], d + ret + +Function88b3: ; 02:48b3 + ld de, PoppoSpriteGFX + ld hl, vChars0 + $80 + lb bc, BANK(PoppoSpriteGFX), $04 + call Request2bpp + ld de, PoppoSpriteGFX + $c0 + ld hl, vChars0 + $c0 + lb bc, BANK(PoppoSpriteGFX), $04 + call Request2bpp + ld de, $0000 + ld a, $41 + call InitSpriteAnimStruct + ld hl, $0003 + add hl, bc + ld [hl], $08 + ret + +TownMapTilemap: ; 02:48da + db $04, $05 + db $19, $01 + db $1a, $08 + db $1b, $01 + db $04, $02 + db $09, $01 + db $06, $02 + db $04, $05 + db $1c, $01 + db $05, $01 + db $11, $01 + db $12, $01 + db $13, $01 + db $14, $01 + db $15, $01 + db $16, $01 + db $17, $01 + db $1c, $01 + db $04, $02 + db $0a, $01 + db $05, $01 + db $06, $01 + db $04, $05 + db $1d, $01 + db $1a, $08 + db $1e, $01 + db $04, $03 + db $0f, $01 + db $10, $01 + db $04, $01 + db $0d, $01 + db $0e, $02 + db $0d, $01 + db $04, $09 + db $02, $01 + db $04, $02 + db $01, $01 + db $07, $01 + db $08, $01 + db $02, $01 + db $0f, $01 + db $02, $01 + db $04, $01 + db $0f, $01 + db $09, $01 + db $06, $01 + db $08, $01 + db $04, $05 + db $01, $01 + db $05, $01 + db $03, $01 + db $07, $02 + db $05, $01 + db $06, $01 + db $06, $01 + db $05, $01 + db $07, $01 + db $0e, $01 + db $05, $01 + db $07, $03 + db $08, $01 + db $04, $03 + db $02, $01 + db $04, $01 + db $0f, $01 + db $04, $01 + db $0c, $01 + db $06, $01 + db $07, $01 + db $0b, $01 + db $06, $01 + db $07, $01 + db $0b, $01 + db $04, $01 + db $0f, $01 + db $10, $01 + db $06, $01 + db $05, $01 + db $07, $02 + db $0c, $01 + db $07, $02 + db $03, $01 + db $0f, $01 + db $09, $01 + db $07, $01 + db $06, $01 + db $07, $01 + db $03, $01 + db $06, $01 + db $0f, $01 + db $09, $01 + db $06, $01 + db $07, $01 + db $03, $01 + db $0a, $01 + db $06, $05 + db $07, $02 + db $05, $01 + db $07, $02 + db $06, $01 + db $05, $01 + db $04, $01 + db $0b, $01 + db $0d, $01 + db $0c, $01 + db $07, $01 + db $05, $01 + db $0e, $01 + db $07, $02 + db $06, $0a + db $07, $01 + db $03, $01 + db $04, $02 + db $0a, $01 + db $06, $01 + db $0b, $01 + db $04, $01 + db $06, $01 + db $05, $01 + db $07, $02 + db $05, $01 + db $06, $01 + db $05, $01 + db $06, $05 + db $0c, $01 + db $08, $01 + db $04, $06 + db $0a, $01 + db $06, $02 + db $0b, $01 + db $07, $01 + db $06, $01 + db $0c, $01 + db $06, $02 + db $18, $01 + db $06, $02 + db $07, $01 + db $06, $01 + db $04, $0a + db $0c, $01 + db $07, $01 + db $05, $01 + db $07, $02 + db $05, $01 + db $07, $03 + db $0b, $01 + db $04, $0d + db $10, $01 + db $04, $01 + db $0a, $01 + db $0b, $01 + db $04, $01 + db $10, $01 + db $04, $01 + db $00 + +SECTION "engine/dumps/bank02.asm@Data8a17", ROMX + +Data8a17: ; 02:4a17 + db $0b + db $ff + + db $01, $0a, $03, $00, $02, $00, $05, $01, $03, $01, $04, $02, $0d, $02 + db $0d, $03, $0d, $05, $04, $02, $04, $06, $07 + db $ff + + db $05, $08 + db $ff + + db $06 + db $ff + + db $ff + + db $0e, $09, $06, $0e, $08, $0a, $0a + db $08, $09, $00, $00, $09, $0c, $00 + db $ff + + db $ff + + db $ff + + db $0b + db $ff + + db $ff + + db $04, $03 + db $ff + + db $04 + db $ff + + db $08, $08 + db $ff + +Data8a53: ; 02:4a53 + db $00, $00, $1c, $9c, $28, $9c, $34, $9c + db $40, $9c, $4c, $9c, $5c, $9c, $6c, $94 + db $6c, $84, $6c, $78, $6c, $6c, $64, $6c + db $5c, $6c, $6c, $64, $6c, $5c, $5c, $5c + db $5c, $50, $5c, $44, $50, $44, $44, $44 + db $44, $5c, $44, $6c, $4c, $74, $4c, $7c + db $40, $7c, $34, $7c, $4c, $84, $3c, $8c + db $34, $94, $5c, $80, $54, $68, $3c, $38 + db $3c, $2c, $34, $2c, $2c, $20, $34, $14 + db $3c, $14, $3c, $20, $48, $14, $54, $1c + db $54, $2c, $54, $38, $3c, $44, $48, $2c + +OpenPokegear: ; 02:4aab + ld hl, wce5f + ld a, [hl] + push af + set 4, [hl] + ldh a, [hMapAnims] + push af + xor a + ldh [hMapAnims], a + ldh a, [hJoypadSum] + push af + ld a, [wVramState] + push af + xor a + ld [wVramState], a + call Function8ae0 + call DelayFrame +.sub_8ac9 + call Function8ba3 + jr nc, .sub_8ac9 + pop af + ld [wVramState], a + pop af + ldh [hJoypadSum], a + pop af + ldh [hMapAnims], a + pop af + ld [wce5f], a + call ClearJoypad + ret + +Function8ae0: ; 02:4ae0 + call ClearBGPalettes + call DisableLCD + call ClearSprites + ld b, $13 + call GetSGBLayout + ld hl, Pokegear1GFX + ld de, vChars2 + ld bc, $0200 + ld a, $02 + call FarCopyData + call Function8b2a + call Function8b7e + xor a + ldh [hSCY], a + ldh [hSCX], a + ld [wJumptableIndex], a + ld [wFlyDestination], a + ld a, $ff + ld [wcb60], a + ld a, $07 + ldh [hWX], a + ld a, $08 + call UpdateSoundNTimes + ld a, $e3 + ldh [rLCDC], a + call WaitBGMap + call SetPalettes + ld a, $e0 + ldh [rOBP1], a + ret + +Function8b2a: ; 02:4b2a + ld hl, wTileMap + ld bc, $0168 + ld a, $7f + call ByteFill + ld de, wTileMap + ld hl, Data8b42 + ld bc, $003c + call CopyBytes + ret + +Data8b42: ; 02:4b42 + db $0d, $1c, $1d, $0b, $1c, $1d, $0b, $1c + db $1d, $0c, $01, $05, $05, $05, $05, $05 + db $05, $05, $05, $02, $08, $1e, $1f, $0a + db $1e, $1f, $0a, $1e, $1f, $07, $08, $7f + db $7f, $0f, $7f, $7f, $0f, $7f, $7f, $07 + db $03, $06, $06, $09, $06, $06, $09, $06 + db $06, $04, $03, $06, $06, $06, $06, $06 + db $06, $06, $06, $04 + +Function8b7e: ; 02:4b7e + coord hl, 1, 0 + ld a, $10 + call Function8b97 + coord hl, 4, 0 + ld a, $14 + call Function8b97 + coord hl, 7, 0 + ld a, $18 + call Function8b97 + ret + +Function8b97: ; 02:4b97 + ld [hli], a + inc a + ld [hld], a + ld bc, $0014 + add hl, bc + inc a + ld [hli], a + inc a + ld [hld], a + ret + +Function8ba3: ; 02:4ba3 + call UpdateTime + call GetJoypadDebounced + ld a, [wJumptableIndex] + bit 7, a + jr nz, .sub_8bc3 + call Function8bfd + ld a, BANK(EffectObjectJumpNoDelay) + ld hl, EffectObjectJumpNoDelay + call FarCall_hl + call Function8bd5 + call DelayFrame + and a + ret +.sub_8bc3 + ld hl, InitEffectObject + ld a, BANK(InitEffectObject) + call FarCall_hl + call ClearSprites + xor a + ldh [hSCX], a + ldh [hSCY], a + scf + ret + +Function8bd5: ; 02:4bd5 + coord hl, 11, 1 + ld a, $7f + ld [hli], a + ld [hl], a + ld de, hRTCHours + coord hl, 11, 1 + ld bc, $0102 + call PrintNumber + inc hl + ld de, hRTCMinutes + ld bc, $8102 + call PrintNumber + inc hl + ld de, hRTCSeconds + ld bc, $8102 + call PrintNumber + ret + +Function8bfd: ; 02:4bfd + ld a, [wJumptableIndex] + ld e, a + ld d, $00 + ld hl, Table8c0c + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp hl + +Table8c0c: ; 02:4c0c + dw Function8c21 + dw Function8c49 + dw DrawMap + dw Function8cab + dw Function8cb7 + dw Function8d62 + dw Function8e6c + dw Function8e9e + +Function8c1c: ; 02:4c1c + ld hl, wJumptableIndex + inc [hl] + ret + +Function8c21: ; 02:4c21 + ld hl, InitEffectObject + ld a, BANK(InitEffectObject) + call FarCall_hl + ld de, PointerGFX + ld hl, vChars0 + $7c0 + lb bc, BANK(PointerGFX), $04 + call Request2bpp + ld a, $29 + ld hl, wTileMapBackup + ld [hli], a + ld [hl], $7c + ld de, $241c + ld a, $44 + call InitSpriteAnimStruct + call Function8c1c + ret + +Function8c49: ; 02:4c49 + ld hl, hJoySum + ld a, [hl] + and $02 + jr nz, .sub_8c59 + ld a, [hl] + and $01 + ret z + call Function8c5f + ret +.sub_8c59 + ld hl, wJumptableIndex + set 7, [hl] + ret + +Function8c5f: ; 02:4c5f + ld a, [wFlyDestination] + ld hl, wcb60 + cp [hl] + ret z + ld [wcb60], a + and $03 + ld e, a + ld d, $00 + ld hl, Unknown8c78 + add hl, de + ld a, [hl] + ld [wJumptableIndex], a + ret + +Unknown8c78: ; 02:4c78 + db $02, $04, $06, $02 + +DrawMap: ; 02:4c7c + call Function8c1c + call Function8eaa + call WaitForAutoBgMapTransfer + ld b, $14 + call GetSGBLayout + ld de, PokedexLocationGFX + ld hl, vTilesetEnd + lb bc, BANK(PokedexLocationGFX), $1f + call Request2bpp + coord hl, 0, 3 + call DecompTownMapTilemap + call WaitBGMap + call Function886a + ld hl, $0005 + add hl, bc + ld a, [hl] + add $18 + ld [hl], a + ret + +Function8cab: ; 02:4cab + ld hl, hJoyDown + ld a, [hl] + and $02 + ret z + xor a + ld [wJumptableIndex], a + ret + +Function8cb7: ; 02:4cb7 + call Function8c1c + call Function8eaa + call WaitForAutoBgMapTransfer + ld b, $15 + call GetSGBLayout + ld de, Pokegear2GFX + ld hl, vTilesetEnd + lb bc, BANK(Pokegear2GFX), $09 + call Request2bpp + ld de, VerticalPipeGFX + ld hl, vChars0 + lb bc, BANK(VerticalPipeGFX), $01 + call Request2bpp + coord hl, 0, 3 + ld bc, $00b4 + ld a, $0e + call ByteFill + coord hl, 1, 8 + ld bc, $0412 + call Function8ef9 + coord hl, 4, 3 + ld bc, $060e + call Function8ef9 + ld a, $05 + coord hl, 0, 11 + ld [hl], a + coord hl, 19, 11 + ld [hl], a + coord hl, 2, 5 + ld a, $60 + ld [hli], a + inc a + ld [hld], a + inc a + ld bc, $0014 + add hl, bc + ld [hli], a + inc a + ld [hld], a + coord hl, 2, 4 + ld a, $64 + ld [hli], a + inc a + ld [hl], a + coord hl, 5, 5 + ld bc, $000c + ld a, $66 + call ByteFill + coord hl, 5, 6 + ld bc, $000c + ld a, $67 + call ByteFill + ld hl, Text91c2 + call PrintText + call WaitBGMap + ld de, $4c23 + ld a, $44 + call InitSpriteAnimStruct + ld hl, $0002 + add hl, bc + ld [hl], $00 + ld hl, $0003 + add hl, bc + ld [hl], $7c + ld de, $4030 + ld a, $4b + call InitSpriteAnimStruct + ld hl, $0003 + add hl, bc + ld [hl], $00 + xor a + ld [wcb61], a + ret + +Function8d62: ; 02:4d62 + ld hl, hJoyDown + ld a, [hl] + and $02 + ret z + xor a + ld [wJumptableIndex], a + ret + +Function8d6e: ; 02:4d6e + ld hl, wcb61 + ld e, [hl] + ld d, $00 + ld hl, Table8d7d + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp hl + +Table8d7d: ; 02:4d7d + dw Function8d85 + dw Function8d91 + dw Function8d85 + dw Function8db9 + +Function8d85: ; 02:4d85 + ld hl, hJoyDown + ld a, [hl] + and $01 + ret z + ld hl, wcb61 + inc [hl] + ret + +Function8d91: ; 02:4d91 + ld hl, $000c + add hl, bc + ld a, [hl] + and a + jr nz, .sub_8da6 + call Function8dfd + jr c, .sub_8db1 + ld hl, $0006 + add hl, bc + ld a, [hl] + and a + jr z, .sub_8dab +.sub_8da6 + ld hl, hFFC0 + jr Function8de3 +.sub_8dab + ld a, $03 + ld [wcb61], a + ret +.sub_8db1 + call .sub_8da6 + xor a + ld [wcb61], a + ret + +Function8db9: ; 02:4db9 + ld hl, $000c + add hl, bc + ld a, [hl] + and a + jr nz, .sub_8dcf + call Function8dfd + jr c, .sub_8dda + ld hl, $0006 + add hl, bc + ld a, [hl] + cp $60 + jr z, .sub_8dd4 +.sub_8dcf + ld hl, $0040 + jr Function8de3 +.sub_8dd4 + ld a, $01 + ld [wcb61], a + ret +.sub_8dda + call .sub_8dcf + ld a, $02 + ld [wcb61], a + ret + +Function8de3: ; 02:4de3 + push hl + ld hl, $0006 + add hl, bc + ld d, [hl] + ld hl, $000c + add hl, bc + ld e, [hl] + pop hl + add hl, de + ld e, l + ld d, h + ld hl, $000c + add hl, bc + ld [hl], e + ld hl, $0006 + add hl, bc + ld [hl], d + ret + +Function8dfd: ; 02:4dfd + ld hl, $0006 + add hl, bc + push bc + ld c, [hl] + ld a, [wMapGroup] + ld e, a + ld d, $00 + ld hl, Table8e2f + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a +.sub_8e11 + ld a, [hl] + and a + jr z, .sub_8e1e + cp c + jr z, .sub_8e21 + ld de, $0006 + add hl, de + jr .sub_8e11 +.sub_8e1e + pop bc + and a + ret +.sub_8e21 + ld de, Function8e2c + push de + inc hl + ld e, [hl] + inc hl + ld a, [hli] + ld h, [hl] + ld l, a + jp hl + +Function8e2c: ; 02:4e2c + pop bc + scf + ret + +Table8e2f: ; 02:4e2f + dw Data8e4d + dw Data8e4d + dw Data8e4d + dw Data8e4d + dw Data8e4d + dw Data8e4d + dw Data8e4d + dw Data8e4d + dw Data8e4d + dw Data8e4d + dw Data8e4d + dw Data8e4d + dw Data8e4d + dw Data8e4d + dw Data8e4d + +Data8e4d: ; 02:4e4d + db $10, $02 + dw Function8e66 + dw Function8e66 + + db $20, $05 + dw Function8e66 + dw Function8e66 + + db $40, $07 + dw Function8e66 + dw Function8e66 + + db $48, $09 + dw Function8e66 + dw Function8e66 + + db $00 + +Function8e66: ; 02:4e66 + ld d, $00 + call PlayMusic + ret + +Function8e6c: ; 02:4e6c + call Function8c1c + call Function8eaa + call WaitForAutoBgMapTransfer + ld b, $13 + call GetSGBLayout + call LoadFontExtra + ld de, Text8e90 + coord hl, 7, 7 + call PlaceString + ld hl, Text8e95 + call PrintText + call WaitBGMap + ret + +Text8e90: ; 02:4e90 + db "けんがい@" + +Text8e95: ; 02:4e95 + text "ちぇっ⋯⋯⋯⋯" + done + +Function8e9e: ; 02:4e9e + ld hl, hJoyDown + ld a, [hl] + and $02 + ret z + xor a + ld [wJumptableIndex], a + ret + +Function8eaa: ; 02:4eaa + ld hl, InitEffectObject + ld a, BANK(InitEffectObject) + call FarCall_hl + call ClearSprites + call WaitForAutoBgMapTransfer + coord hl, 0, 3 + ld bc, $012c + ld a, $7f + call ByteFill + call WaitBGMap + call WaitBGMap + ret + +Function8eca: ; 02:4eca + ld hl, wFlyDestination + ld de, hJoySum + ld a, [de] + and $20 + jr nz, .sub_8edc + ld a, [de] + and $10 + jr nz, .sub_8ee2 + jr .sub_8ee7 +.sub_8edc + ld a, [hl] + and a + ret z + dec [hl] + jr .sub_8ee7 +.sub_8ee2 + ld a, [hl] + cp $02 + ret nc + inc [hl] +.sub_8ee7 + ld e, [hl] + ld d, $00 + ld hl, Data8ef5 + add hl, de + ld a, [hl] + ld hl, $0006 + add hl, bc + ld [hl], a + ret + +Data8ef5: ; 02:4ef5 + db $00, $18, $30, $00 + +Function8ef9: ; 02:4ef9 + dec c + dec c + dec b + dec b + ld de, $0014 + push bc + push hl + ld a, $01 + ld [hli], a + ld a, $05 +.sub_8f07 + ld [hli], a + dec c + jr nz, .sub_8f07 + ld a, $02 + ld [hl], a + pop hl + pop bc + add hl, de +.sub_8f11 + push bc + push hl + ld a, $08 + ld [hli], a + ld a, $7f +.sub_8f18 + ld [hli], a + dec c + jr nz, .sub_8f18 + ld a, $07 + ld [hli], a + pop hl + add hl, de + pop bc + dec b + jr nz, .sub_8f11 + ld a, $03 + ld [hli], a + ld a, $06 +.sub_8f2a + ld [hli], a + dec c + jr nz, .sub_8f2a + ld a, $04 + ld [hli], a + ret + +SECTION "engine/dumps/bank02.asm@Text91c2", ROMX + +Text91c2: ; 02:51c2 + text "エーボタンで チューニング!" + done + +SetTitleBGDecorationBorder: ; 02:51d2 + 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: ; 02:51ef + 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: ; 02:528b + 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: ; 02:52a8 + 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: ; 02:52d4 + ld hl, Data99ec + ld de, Data988c + ret + +Function92db: ; 02:52db + 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: ; 02:532b + 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: ; 02:534b + ld hl, Data99fc + ld de, Data986c + ret + +Function9352: ; 02:5352 + 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: ; 02:537b + ld hl, Data99dc + ld de, wcce2 + ret + +Function9382: ; 02:5382 + 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: ; 02:539f + ld hl, Data99bc + ld de, Data986c + ret + +Function93a6: ; 02:53a6 + ld hl, Data9a1c + ld de, Data98dc + ret + +Function93ad: ; 02:53ad + ld hl, Data9a2c + ld de, Data993c + ret + +Function93b4: ; 02:53b4 + ld hl, Data9a3c + ld de, Data986c + ret + +Function93bb: ; 02:53bb + 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: ; 02:53cc + dw Data986c + dw Data996c + + dw Data987c + dw Data998c + + dw Data986c + dw Data999c + +Function93d8: ; 02:53d8 + ld hl, Data9a4c + ld de, Data986c + ld a, $08 + ld [wccd0], a + ret + +Function93e4: ; 02:53e4 + ld hl, Data99cc + ld de, Data986c + ret + +Function93eb: ; 02:53eb + ld hl, Data986c + ld de, wc51a + ld bc, $0010 + call CopyBytes + ld hl, Data994c + ld de, Data986c + ret + +Function93fe: ; 02:53fe + 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: ; 02:541a + 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: ; 02:5441 + ld hl, Data9a3c + ld de, Data986c + ret + +Function9448: ; 02:5448 + 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: ; 02:548e + 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: ; 02:54ab + 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: ; 02:54c8 + 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: ; 02:54e5 + 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: ; 02:5527 + ld a, [wTimeOfDay] + and $03 + jr z, .sub_9534 + cp $03 + jr z, .sub_9534 + scf + ret +.sub_9534 + and a + ret + +Function9536: ; 02:5536 + ld a, [wTimeOfDay] + and $03 + cp $02 + jr nz, .sub_9541 + scf + ret +.sub_9541 + and a + ret + +Function9543: ; 02:5543 + ld a, [wMapGroup] + ld e, a + ld d, $00 + ld hl, Data954f + add hl, de + ld a, [hl] + ret + +Data954f: ; 02:554f + db $01, $07, $0c, $03, $08, $06, $0b, $04 + db $05, $0a, $02, $03, $02, $02, $09, $01 + +Function955f: ; 02:555f + push de + call Function964b + pop hl + jp Function964b + +Function9567: ; 02:5567 + bit 3, a + ld a, $18 + ret nz + ld a, [hl] + +Function956d: ; 02:556d + 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: ; 02:557e + 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: ; 02:5599 + 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: ; 02:55b0 + 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: ; 02:55cc + 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: ; 02:55f8 + ld hl, Data98fc + ld de, wcce2 + ld bc, $0030 + jp CopyBytes + +Function9604: ; 02:5604 + 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 + +Function962d: ; 02:562d + ld hl, Data997c + jp Function964b + +Function9633: ; 02:5633 + ld hl, Data986c + jp Function964b + +Function9639: ; 02:5639 + ld hl, Data99ac + jp Function964b + +Function963f: ; 02:563f + ld hl, Data99bc + jp Function964b + +Function9645: ; 02:5645 + ld hl, wc51a + jp Function964b + +Function964b: ; 02:564b + ld a, [wJoypadFlags] + push af + set 7, a + ld [wJoypadFlags], a + call Function965c + pop af + ld [wJoypadFlags], a + ret + +Function965c: ; 02:565c + 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: ; 02:5695 + 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: ; 02:56d9 + dw Data9aac + dw Data9acc + dw Data9adc + dw Data9aec + dw Data9afc + dw Data9b0c + dw Data9b1c + dw Data9b2c + dw Data9b3c + +Function96eb: ; 02:56eb + 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: ; 02:5704 + call Function9710 + push de + call Function980a + pop hl + call Function97be + ret + +Function9710: ; 02:5710 + 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: ; 02:5725 + ld hl, vChars0 + ld bc, $2000 + xor a + call ByteFill + ret + +Function9730: ; 02:5730 + 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: ; 02:579a + 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: ; 02:57be + 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: ; 02:580a + 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: ; 02:5838 + ld a, [hli] + ld [de], a + inc de + dec bc + ld a, c + or b + jr nz, Function9838 + ret + +Function9841: ; 02:5841 + xor a + ld [de], a + inc de + dec bc + ld a, c + or b + jr nz, Function9841 + ret + +Function984a: ; 02:584a + 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: ; 02:5860 + ld de, $1b58 +.sub_9863 + nop + nop + nop + dec de + ld a, d + or e + jr nz, .sub_9863 + ret + +Data986c: ; 02:586c + db $21, $01, $03, $00, $00, $00, $13, $11 + db $00, $00, $00, $00, $00, $00, $00, $00 + +Data987c: ; 02:587c + db $21, $01, $07, $05, $00, $0a, $13, $0d + db $00, $00, $00, $00, $00, $00, $00, $00 + +Data988c: ; 02:588c + db $22, $05, $07, $0a, $00, $0c, $13, $11 + db $03, $05, $01, $00, $0a, $03, $03, $00 + +Data989c: ; 02:589c + db $0a, $08, $13, $0a, $03, $0a, $00, $04 + db $08, $0b, $03, $0f, $0b, $00, $13, $07 + +Data98ac: ; 02:58ac + db $21, $01, $07, $05, $00, $01, $07, $07 + db $00, $00, $00, $00, $00, $00, $00, $00 + +Data98bc: ; 02:58bc + db $21, $01, $07, $05, $0b, $01, $13, $02 + db $00, $00, $00, $00, $00, $00, $00, $00 + +Data98cc: ; 02:58cc + db $21, $01, $07, $05, $01, $01, $08, $08 + db $00, $00, $00, $00, $00, $00, $00, $00 + +Data98dc: ; 02:58dc + db $22, $05, $03, $05, $00, $00, $13, $0b + db $03, $0a, $00, $04, $13, $09, $02, $0f + +Data98ec: ; 02:58ec + db $00, $06, $13, $07, $03, $00, $04, $04 + db $0f, $09, $03, $00, $00, $0c, $13, $11 + +Data98fc: ; 02:58fc + db $23, $07, $07, $10, $00, $00, $02, $0c + db $02, $00, $0c, $00, $12, $01, $02, $00 + +Data990c: ; 02:590c + db $0c, $02, $12, $03, $02, $00, $0c, $04 + db $12, $05, $02, $00, $0c, $06, $12, $07 + +Data991c: ; 02:591c + db $02, $00, $0c, $08, $12, $09, $02, $00 + db $0c, $0a, $12, $0b, $00, $00, $00, $00 + +Data992c: ; 02:592c + db $21, $01, $07, $10, $00, $00, $13, $02 + db $00, $00, $00, $00, $00, $00, $00, $00 + +Data993c: ; 02:593c + db $21, $01, $07, $10, $00, $00, $13, $05 + db $00, $00, $00, $00, $00, $00, $00, $00 + +Data994c: ; 02:594c + db $51, $35, $00, $36, $00, $37, $00, $38 + db $00, $00, $00, $00, $00, $00, $00, $00 + +Data995c: ; 02:595c + db $51, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + +Data996c: ; 02:596c + db $51, $2a, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + +Data997c: ; 02:597c + db $51, $2b, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + +Data998c: ; 02:598c + db $51, $2c, $00, $2d, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + +Data999c: ; 02:599c + db $51, $2e, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + +Data99ac: ; 02:59ac + db $51, $2f, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + +Data99bc: ; 02:59bc + db $51, $30, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + +Data99cc: ; 02:59cc + db $51, $2d, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + +Data99dc: ; 02:59dc + db $51, $22, $00, $23, $00, $24, $00, $25 + db $00, $00, $00, $00, $00, $00, $00, $00 + +Data99ec: ; 02:59ec + db $51, $0e, $00, $0e, $00, $0e, $00, $0e + db $00, $00, $00, $00, $00, $00, $00, $00 + +Data99fc: ; 02:59fc + db $51, $26, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + +Data9a0c: ; 02:5a0c + db $51, $30, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + +Data9a1c: ; 02:5a1c + db $51, $31, $00, $32, $00, $33, $00, $34 + db $00, $00, $00, $00, $00, $00, $00, $00 + +Data9a2c: ; 02:5a2c + db $51, $27, $00, $28, $00, $0f, $00, $13 + db $00, $00, $00, $00, $00, $00, $00, $00 + +Data9a3c: ; 02:5a3c + db $51, $0f, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + +Data9a4c: ; 02:5a4c + db $51, $29, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + +Data9a5c: ; 02:5a5c + db $59, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + +Data9a6c: ; 02:5a6c + db $89, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + +Data9a7c: ; 02:5a7c + db $89, $01, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + +Data9a8c: ; 02:5a8c + db $99, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + +Data9a9c: ; 02:5a9c + db $a1, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + +Data9aac: ; 02:5aac + db $b9, $01, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + +Data9abc: ; 02:5abc + db $b9, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + +Data9acc: ; 02:5acc + db $79, $5d, $08, $00, $0b, $8c, $d0, $f4 + db $60, $00, $00, $00, $00, $00, $00, $00 + +Data9adc: ; 02:5adc + db $79, $52, $08, $00, $0b, $a9, $e7, $9f + db $01, $c0, $7e, $e8, $e8, $e8, $e8, $e0 + +Data9aec: ; 02:5aec + db $79, $47, $08, $00, $0b, $c4, $d0, $16 + db $a5, $cb, $c9, $05, $d0, $10, $a2, $28 + +Data9afc: ; 02:5afc + db $79, $3c, $08, $00, $0b, $f0, $12, $a5 + db $c9, $c9, $c8, $d0, $1c, $a5, $ca, $c9 + +Data9b0c: ; 02:5b0c + db $79, $31, $08, $00, $0b, $0c, $a5, $ca + db $c9, $7e, $d0, $06, $a5, $cb, $c9, $7e + +Data9b1c: ; 02:5b1c + db $79, $26, $08, $00, $0b, $39, $cd, $48 + db $0c, $d0, $34, $a5, $c9, $c9, $80, $d0 + +Data9b2c: ; 02:5b2c + db $79, $1b, $08, $00, $0b, $ea, $ea, $ea + db $ea, $ea, $a9, $01, $cd, $4f, $0c, $d0 + +Data9b3c: ; 02:5b3c + db $79, $10, $08, $00, $0b, $4c, $20, $08 + db $ea, $ea, $ea, $ea, $ea, $60, $ea, $ea @@ -5,6 +5,7 @@ PokedexNestIconGFX:: INCBIN "gfx/pokegear/dexmap_nest_icon.1bpp" SECTION "gfx.asm@Bank 2 Misc GFX", ROMX +UnknownBouncingOrbGFX:: INCBIN "gfx/overworld/gfx_84bf.2bpp" JumpShadowGFX:: INCBIN "gfx/overworld/shadow.2bpp" @@ -14,24 +15,35 @@ QuestionEmoteGFX:: INCBIN "gfx/overworld/question.2bpp" HappyEmoteGFX:: INCBIN "gfx/overworld/happy.2bpp" +UnknownBallGFX:: +INCBIN "gfx/overworld/gfx_85cf.2bpp" SECTION "gfx.asm@Pokegear GFX", ROMX -PokegearGFX:: -INCBIN "gfx/pokegear/pokegear.2bpp" +Pokegear1GFX:: +INCBIN "gfx/pokegear/pokegear_1.2bpp" +Pokegear2GFX:: +INCBIN "gfx/pokegear/pokegear_2.2bpp" +VerticalPipeGFX:: +INCBIN "gfx/pokegear/vertical_pipe.2bpp" SECTION "gfx.asm@Title Screen BG Decoration Border", ROMX TitleBGDecorationBorder:: INCBIN "gfx/title/titlebgdecoration.2bpp" -SECTION "gfx.asm@Super Palettes", ROMX +SECTION "gfx.asm@SGB GFX", ROMX + INCLUDE "data/pokemon/palettes.inc" INCLUDE "data/super_palettes.inc" -SECTION "gfx.asm@Unused SGB Border GFX", ROMX +Corrupted9e1cGFX: +INCBIN "gfx/sgb/corrupted_9e1c.2bpp" + UnusedSGBBorderGFX:: INCBIN "gfx/sgb/sgb_border_alt.2bpp" -SECTION "gfx.asm@SGB Border GFX", ROMX +Corrupteda66cGFX: +INCBIN "gfx/sgb/corrupted_a66c.2bpp" + SGBBorderGFX:: if def(GOLD) INCBIN "gfx/sgb/sgb_border_gold.2bpp" @@ -39,6 +51,20 @@ else INCBIN "gfx/sgb/sgb_border_silver.2bpp" endc +SECTION "gfx.asm@Corrupted SGB GFX", ROMX + +SGBBorderGoldCorruptedGFX: +INCBIN "gfx/sgb/sgb_border_gold_corrupted.2bpp" + +Corruptedb1e3GFX: +INCBIN "gfx/sgb/corrupted_b1e3.2bpp" + +SGBBorderSilverCorruptedGFX: +INCBIN "gfx/sgb/sgb_border_silver_corrupted.2bpp" + +Corruptedba93GFX: +INCBIN "gfx/sgb/corrupted_ba93.2bpp" + SECTION "gfx.asm@Title Screen GFX", ROMX if def(GOLD) TitleScreenGFX:: INCBIN "gfx/title/title.2bpp" @@ -246,7 +272,11 @@ INCLUDE "gfx/pokemon/annon_pics.asm" INCLUDE "gfx/pokemon/egg.asm" SECTION "gfx.asm@Attack Animation GFX", ROMX -INCBIN "gfx/battle_anims/attack_animations.2bpp" + +INCBIN "gfx/battle_anims/attack_animations_1.2bpp" +PointerGFX:: +INCBIN "gfx/battle_anims/pointer.2bpp" +INCBIN "gfx/battle_anims/attack_animations_2.2bpp" SECTION "gfx.asm@Pokemon Party Sprites", ROMX NyoromoIcon:: INCBIN "gfx/icons/nyoromo.2bpp" diff --git a/gfx/battle_anims/attack_animations.png b/gfx/battle_anims/attack_animations.png Binary files differdeleted file mode 100644 index 96e60c2..0000000 --- a/gfx/battle_anims/attack_animations.png +++ /dev/null diff --git a/gfx/battle_anims/attack_animations_1.png b/gfx/battle_anims/attack_animations_1.png Binary files differnew file mode 100755 index 0000000..c432ff2 --- /dev/null +++ b/gfx/battle_anims/attack_animations_1.png diff --git a/gfx/battle_anims/attack_animations_2.png b/gfx/battle_anims/attack_animations_2.png Binary files differnew file mode 100755 index 0000000..2e04011 --- /dev/null +++ b/gfx/battle_anims/attack_animations_2.png diff --git a/gfx/battle_anims/pointer.png b/gfx/battle_anims/pointer.png Binary files differnew file mode 100755 index 0000000..09763ee --- /dev/null +++ b/gfx/battle_anims/pointer.png diff --git a/gfx/overworld/gfx_85cf.png b/gfx/overworld/gfx_85cf.png Binary files differnew file mode 100755 index 0000000..099c049 --- /dev/null +++ b/gfx/overworld/gfx_85cf.png diff --git a/gfx/pokegear/pokegear.png b/gfx/pokegear/pokegear.png Binary files differdeleted file mode 100644 index 2c8d3e9..0000000 --- a/gfx/pokegear/pokegear.png +++ /dev/null diff --git a/gfx/pokegear/pokegear_1.png b/gfx/pokegear/pokegear_1.png Binary files differnew file mode 100755 index 0000000..c7d7ade --- /dev/null +++ b/gfx/pokegear/pokegear_1.png diff --git a/gfx/pokegear/pokegear_2.png b/gfx/pokegear/pokegear_2.png Binary files differnew file mode 100755 index 0000000..0e92fc8 --- /dev/null +++ b/gfx/pokegear/pokegear_2.png diff --git a/gfx/pokegear/vertical_pipe.png b/gfx/pokegear/vertical_pipe.png Binary files differnew file mode 100755 index 0000000..cbaadc5 --- /dev/null +++ b/gfx/pokegear/vertical_pipe.png diff --git a/gfx/sgb/corrupted_9e1c.png b/gfx/sgb/corrupted_9e1c.png Binary files differnew file mode 100755 index 0000000..f124031 --- /dev/null +++ b/gfx/sgb/corrupted_9e1c.png diff --git a/gfx/sgb/corrupted_a66c.png b/gfx/sgb/corrupted_a66c.png Binary files differnew file mode 100755 index 0000000..a8bab25 --- /dev/null +++ b/gfx/sgb/corrupted_a66c.png diff --git a/gfx/sgb/corrupted_b1e3.png b/gfx/sgb/corrupted_b1e3.png Binary files differnew file mode 100755 index 0000000..0ee2cb5 --- /dev/null +++ b/gfx/sgb/corrupted_b1e3.png diff --git a/gfx/sgb/corrupted_ba93.png b/gfx/sgb/corrupted_ba93.png Binary files differnew file mode 100755 index 0000000..dfd88be --- /dev/null +++ b/gfx/sgb/corrupted_ba93.png diff --git a/gfx/sgb/sgb_border_gold_corrupted.png b/gfx/sgb/sgb_border_gold_corrupted.png Binary files differnew file mode 100755 index 0000000..740bbd1 --- /dev/null +++ b/gfx/sgb/sgb_border_gold_corrupted.png diff --git a/gfx/sgb/sgb_border_silver_corrupted.png b/gfx/sgb/sgb_border_silver_corrupted.png Binary files differnew file mode 100755 index 0000000..5b32a8e --- /dev/null +++ b/gfx/sgb/sgb_border_silver_corrupted.png @@ -126,7 +126,11 @@ hPrintNumTemp:: ds 3 ; ffba big-endian ENDU - ds 10 ; TODO + ds 3 ; TODO + +hFFC0:: ds 1 ; FFC0 + + ds 6 hFFC7:: db ; FFC7 hFFC8:: db ; FFC8 diff --git a/pokegold-spaceworld.link b/pokegold-spaceworld.link index 919bb40..0320f95 100644 --- a/pokegold-spaceworld.link +++ b/pokegold-spaceworld.link @@ -129,25 +129,19 @@ ROMX $01 "engine/overworld/object_collision.asm@_CheckPlayerObjectCollision" "engine/dumps/bank01.asm@SettingsScreen" ROMX $02 - org $4000 - org $44bf + "engine/dumps/bank02.asm@Function8000" "gfx.asm@Bank 2 Misc GFX" - ; $45cf - org $4a0f + "engine/dumps/bank02.asm@QueueFollowerFirstStep" "gfx.asm@Mon Nest Icon" - ; $4a17 - org $4f32 + "engine/dumps/bank02.asm@Data8a17" "gfx.asm@Pokegear GFX" - org $51fb + "engine/dumps/bank02.asm@Text91c2" "gfx.asm@Title Screen BG Decoration Border" - org $5b4c - "gfx.asm@Super Palettes" - ; $5e1c - org $62cc - "gfx.asm@Unused SGB Border GFX" - ; $666c - org $6b1c - "gfx.asm@SGB Border GFX" + "engine/dumps/bank02.asm@Function928b" + "gfx.asm@SGB GFX" + "bin.asm@Unknownaebc" + "gfx.asm@Corrupted SGB GFX" + "bin.asm@Unknownbb43" ROMX $03 org $4000 "engine/overworld/player_movement.asm@Player Movement" @@ -1,25 +1,4 @@ -02:4000 Function8000 -02:4098 _InitializeVisibleSprites -02:4125 Function8125 -02:4131 Function8131 -02:413D Function813d -02:424C Function824c -02:43E8 Function83e8 -02:45DF QueueFollowerFirstStep -02:462E Function862e -02:46CB FlyMap -02:4786 Function8786 -02:4856 DecompTownMapTilemap -02:48DA DecompTownMapTilemap.tilemap -02:4AAB OpenPokegear -02:4C7C DrawMap -02:4DC2 TownMapGfx -02:4F32 PokegearRadioGfx -02:51D2 SetTitleBGDecorationBorder -02:528B Function928b -02:5695 CheckSGB -02:56eb Function96eb - +03:477D Functionc77d 03:47D5 SpawnPoints 03:488D Tilesets 03:54E6 Functiond4e6 @@ -107,6 +86,7 @@ 0F:691E Function3e91e 0F:6963 Function3e963 0F:69A9 _LoadWildMons +0F:69DC Function3e9dc 0F:6E3E Function3ee3e 0F:6F19 Function3ef19 0F:7019 PlaceGraphic @@ -110,6 +110,10 @@ wc40e:: ds 1 ; c40e wSpriteAnimIDBuffer:: db ; c4c0 + ds 89 + +wc51a:: ds 1 ; c51a + ENDU @@ -190,18 +194,25 @@ wBattleAnimEnd:: wBattleMonNickname:: ds 6 ; c9f6 wEnemyMonNickname:: ds 6 ; c9fc - ds 2 - +wca02:: ds 1 ; ca02 +wca03:: ds 1 ; ca03 wca04:: ds 1 ; ca04 - ds 5 - + ds 3 + +wca08:: ds 1 ; ca08 +wca09:: ds 1 ; ca09 wca0a:: ds 1 ; ca0a ds $32 ; TODO wPlayerSubStatus3:: db ; ca3d - ds $4 + +wca3e:: ds 1 ; ca3e +wca3f:: ds 1 ; ca3f +wca40:: ds 1 ; ca40 +wca41:: ds 1 ; ca41 + wEnemySubStatus3:: db ; ca42 wca43:: db ; ca43 @@ -215,9 +226,15 @@ wTrainerClass:: ; ca57 ds $6b wLinkBattleRNCount:: db ; cac3 + ds 29 + +wcae1:: ds 1 ; cae1 + ENDU + + SECTION "CB14", WRAM0[$CB14] UNION @@ -254,9 +271,8 @@ SECTION "CB5E", WRAM0[$CB5E] wJumptableIndex:: db ; cb5e wFlyDestination:: db ; cb5f - ds 2 - -SECTION "CB62", WRAM0[$CB62] +wcb60:: ds 1 ; cb60 +wcb61:: ds 1 ; cb61 wVBCopySize:: ds 1 ; cb62 wVBCopySrc:: ds 2 ; cb63 @@ -413,6 +429,35 @@ SECTION "CCCE", WRAM0[$CCCE] wDisableVBlankWYUpdate:: db ; ccce wSGB:: db +SECTION "CCD0", WRAM0[$CCD0] + +wccd0:: ds 1 ; ccd0 +wccd1:: ds 1 ; ccd1 +wccd2:: ds 1 ; ccd2 +wccd3:: ds 1 ; ccd3 + + ds 5 + +wccd9:: ds 1 ; ccd9 + +SECTION "CCE1", WRAM0[$CCE1] + +wcce1:: ds 1 ; cce1 +wcce2:: ds 1 ; cce2 +wcce3:: ds 1 ; cce3 +wcce4:: ds 1 ; cce4 + + ds 6 + +wcceb:: ds 1 ; cceb + + ds 5 + +wccf1:: ds 1 ; ccf1 +wccf2:: ds 1 ; ccf2 +wccf3:: ds 1 ; ccf3 +wccf4:: ds 1 ; ccf4 + SECTION "CD11", WRAM0[$CD11] wcd11:: ds 1 ; cd11 @@ -547,8 +592,11 @@ wHPBarHPDifference:: dw ; cdcb wLinkBattleRNs:: ds 10 ; cdcd -wcdd7:: db ; cdd7 -; cddd +wcdd7:: ds 1 ; cdd7 + + ds 7 + +wcddf:: ds 1 ; cddf SECTION "CE00", WRAM0[$CE00] @@ -906,7 +954,10 @@ wBGMapAnchor:: ; d643 wUsedSprites:: ; d645 dw ; This is for the player + +wUsedNPCSprites:: ;d647 ds 2 * 5 ; This is for the NPCs + wUsedSpritesEnd:: ; d651 |