diff options
Diffstat (limited to 'battle')
-rw-r--r-- | battle/anim_commands.asm | 1549 | ||||
-rw-r--r-- | battle/anim_objects.asm | 5037 | ||||
-rw-r--r-- | battle/anims.asm | 3 | ||||
-rw-r--r-- | battle/bg_effects.asm | 2938 |
4 files changed, 9527 insertions, 0 deletions
diff --git a/battle/anim_commands.asm b/battle/anim_commands.asm new file mode 100644 index 000000000..c8077b710 --- /dev/null +++ b/battle/anim_commands.asm @@ -0,0 +1,1549 @@ +; Battle animation command interpreter. + + +PlayBattleAnim: ; cc0d6 + + ld a, [rSVBK] + push af + + ld a, 5 + ld [rSVBK], a + + call _PlayBattleAnim + + pop af + ld [rSVBK], a + ret +; cc0e4 + +_PlayBattleAnim: ; cc0e4 + + ld c, 6 +.wait + call BattleAnimDelayFrame + dec c + jr nz, .wait + + call BattleAnimAssignPals + call BattleAnimRequestPals + call BattleAnimDelayFrame + + ld c, 1 + ld a, [rKEY1] + bit 7, a + jr nz, .asm_cc0ff + ld c, 3 + +.asm_cc0ff + ld hl, $ff9e + ld a, [hl] + push af + + ld [hl], c + call Functioncc11c + + pop af + ld [$ff9e], a + + ld a, $1 + ld [hBGMapMode], a + + call BattleAnimDelayFrame + call BattleAnimDelayFrame + call BattleAnimDelayFrame + call WaitSFX + ret +; cc11c + +Functioncc11c: ; cc11c + + ld a, [FXAnimIDHi] + and a + jr nz, .asm_cc156 + + callba CheckBattleScene + jr c, .asm_cc141 + + call BattleAnimClearHud + call Functioncc163 + + call BattleAnimAssignPals + call BattleAnimRequestPals + + xor a + ld [hSCX], a + ld [hSCY], a + call BattleAnimDelayFrame + call BattleAnimRestoreHuds + +.asm_cc141 + ld a, [$cfca] + and a + jr z, .asm_cc15f + + ld l, a + ld h, 0 + ld de, $10e + add hl, de + ld a, l + ld [FXAnimIDLo], a + ld a, h + ld [FXAnimIDHi], a + +.asm_cc156 + call WaitSFX + call Functioncc881 + call Functioncc163 + +.asm_cc15f + call Functioncc8f6 + ret +; cc163 + +Functioncc163: ; cc163 + + call Functioncc8d3 + +.playframe + call Functioncc25f + call Functionccb48 + call Functioncc96e + call Function3b0c + call BattleAnimRequestPals + +; Speed up Rollout's animation. + ld a, [FXAnimIDHi] + or a + jr nz, .asm_cc193 + + ld a, [FXAnimIDLo] + cp ROLLOUT + jr nz, .asm_cc193 + + ld a, $2e + ld b, 5 + ld de, 4 + ld hl, ActiveBGEffects +.asm_cc18c + cp [hl] + jr z, .asm_cc196 + add hl, de + dec b + jr nz, .asm_cc18c + +.asm_cc193 + call BattleAnimDelayFrame + +.asm_cc196 + ld a, [$d40f] + bit 0, a + jr z, .playframe + + call Functioncc23d + ret +; cc1a1 + +BattleAnimClearHud: ; cc1a1 + + call BattleAnimDelayFrame + call WaitTop + call ClearActorHud + ld a, $1 + ld [hBGMapMode], a + call BattleAnimDelayFrame + call BattleAnimDelayFrame + call BattleAnimDelayFrame + call WaitTop + ret +; cc1bb + +BattleAnimRestoreHuds: ; cc1bb + + call BattleAnimDelayFrame + call WaitTop + + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + + ld hl, UpdateBattleHuds + ld a, $f + rst FarCall + + pop af + ld [rSVBK], a + + ld a, $1 + ld [hBGMapMode], a + call BattleAnimDelayFrame + call BattleAnimDelayFrame + call BattleAnimDelayFrame + call WaitTop + ret +; cc1e2 + +BattleAnimRequestPals: ; cc1e2 + + ld a, [hCGB] + and a + ret z + + ld a, [rBGP] + ld b, a + ld a, [$cfc7] + cp b + call nz, Functioncc91a + + ld a, [rOBP0] + ld b, a + ld a, [$cfc8] + cp b + call nz, Functioncc94b + ret +; cc1fb + +BattleAnimDelayFrame: ; cc1fb +; Like DelayFrame but wastes battery life. + + ld a, 1 + ld [VBlankOccurred], a +.wait + ld a, [VBlankOccurred] + and a + jr nz, .wait + ret +; cc207 + +ClearActorHud: ; cc207 + + ld a, [hBattleTurn] + and a + jr z, .player + + hlcoord 1, 0 + lb bc, 4, 10 + call ClearBox + ret + +.player + hlcoord 9, 7 + lb bc, 5, 11 + call ClearBox + ret +; cc220 + +INCBIN "baserom.gbc",$cc220,$cc23d - $cc220 + + +Functioncc23d: ; cc23d + + ld a, [$d40f] + bit 3, a + jr z, .asm_cc254 + + ld hl, Sprites + 3 + ld c, (SpritesEnd - Sprites) / 4 +.asm_cc249 + ld a, [hl] + and $f0 + ld [hli], a + inc hl + inc hl + inc hl + dec c + jr nz, .asm_cc249 + ret + +.asm_cc254 + ld hl, Sprites + ld c, SpritesEnd - Sprites + xor a +.asm_cc25a + ld [hli], a + dec c + jr nz, .asm_cc25a + ret +; cc25f + +Functioncc25f: ; cc25f + call Functioncc267 + ret nc + call Functioncc275 + ret +; cc267 + +Functioncc267: ; cc267 + ld a, [$d412] + and a + jr z, .asm_cc273 + + dec a + ld [$d412], a + and a + ret + +.asm_cc273 + scf + ret +; cc275 + +Functioncc275: ; cc275 + + call GetBattleAnimByte + + cp $ff + jr nz, .asm_cc286 + +; Return from a subroutine. + ld hl, $d40f + bit 1, [hl] + jr nz, .asm_cc28e + + set 0, [hl] + ret + +.asm_cc286 + cp $d0 + jr nc, .asm_cc28e + + ld [$d412], a + ret + +.asm_cc28e + call Functioncc293 + + jr Functioncc275 +; cc293 + +Functioncc293: ; cc293 +; Execute battle animation command in [$d417]. + ld a, [$d417] + sub $d0 + + ld e, a + ld d, 0 + ld hl, BattleAnimCommands + add hl, de + add hl, de + + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; cc2a4 + + +; no known jump sources +BattleAnimCommands: ; cc2a4 (33:42a4) + dw BattleAnimCmd_D0 + dw BattleAnimCmd_D1 + dw BattleAnimCmd_D2 + dw BattleAnimCmd_D3 + dw BattleAnimCmd_D4 + dw BattleAnimCmd_D5 + dw BattleAnimCmd_D6 + dw BattleAnimCmd_D7 + dw BattleAnimCmd_D8 + dw BattleAnimCmd_D9 + dw BattleAnimCmd_DA + dw BattleAnimCmd_DB + dw BattleAnimCmd_DC + dw BattleAnimCmd_DD + dw BattleAnimCmd_DE + dw BattleAnimCmd_DF + dw BattleAnimCmd_E0 + dw BattleAnimCmd_E1 + dw BattleAnimCmd_E2 + dw BattleAnimCmd_E3 + dw BattleAnimCmd_E4 + dw BattleAnimCmd_E5 + dw BattleAnimCmd_E6 + dw BattleAnimCmd_E7 + dw BattleAnimCmd_E8 + dw BattleAnimCmd_E9 + dw BattleAnimCmd_EA + dw BattleAnimCmd_EB + dw BattleAnimCmd_EC + dw BattleAnimCmd_ED + dw BattleAnimCmd_EE + dw BattleAnimCmd_EF + dw BattleAnimCmd_F0 + dw BattleAnimCmd_F1 + dw BattleAnimCmd_F2 + dw BattleAnimCmd_F3 + dw BattleAnimCmd_F4 + dw BattleAnimCmd_F5 + dw BattleAnimCmd_F6 + dw BattleAnimCmd_F7 + dw BattleAnimCmd_F8 + dw BattleAnimCmd_F9 + dw BattleAnimCmd_FA + dw BattleAnimCmd_FB + dw BattleAnimCmd_FC + dw BattleAnimCmd_FD + dw BattleAnimCmd_FE + dw BattleAnimCmd_FF + + +; no known jump sources +BattleAnimCmd_EA: +BattleAnimCmd_EB: +BattleAnimCmd_EC: +BattleAnimCmd_ED: ; cc304 (33:4304) + ret + +; no known jump sources +BattleAnimCmd_FF: ; cc305 (33:4305) + ld hl, $d40f + res 1, [hl] + ld hl, $d413 + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $d410 + ld [hl], e + inc hl + ld [hl], d + ret + +; no known jump sources +BattleAnimCmd_FE: ; cc317 (33:4317) + call GetBattleAnimByte + ld e, a + call GetBattleAnimByte + ld d, a + push de + ld hl, $d410 + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $d413 + ld [hl], e + inc hl + ld [hl], d + pop de + ld hl, $d410 + ld [hl], e + inc hl + ld [hl], d + ld hl, $d40f + set 1, [hl] + ret + +; no known jump sources +BattleAnimCmd_FC: ; cc339 (33:4339) + call GetBattleAnimByte + ld e, a + call GetBattleAnimByte + ld d, a + ld hl, $d410 + ld [hl], e + inc hl + ld [hl], d + ret + +; no known jump sources +BattleAnimCmd_FD: ; cc348 (33:4348) + call GetBattleAnimByte + ld hl, $d40f + bit 2, [hl] + jr nz, .asm_cc35b + and a + jr z, .asm_cc363 + dec a + set 2, [hl] + ld [$d415], a +.asm_cc35b + ld hl, $d415 + ld a, [hl] + and a + jr z, .asm_cc372 + dec [hl] +.asm_cc363 + call GetBattleAnimByte + ld e, a + call GetBattleAnimByte + ld d, a + ld hl, $d410 + ld [hl], e + inc hl + ld [hl], d + ret +.asm_cc372 + ld hl, $d40f + res 2, [hl] + ld hl, $d410 + ld e, [hl] + inc hl + ld d, [hl] + inc de + inc de + ld [hl], d + dec hl + ld [hl], e + ret + +; no known jump sources +BattleAnimCmd_EF: ; cc383 (33:4383) + ld hl, $c689 + ld a, [hl] + and a + jr z, .asm_cc39a + + dec [hl] + call GetBattleAnimByte + ld e, a + call GetBattleAnimByte + ld d, a + ld hl, $d410 + ld [hl], e + inc hl + ld [hl], d + ret + +.asm_cc39a + ld hl, $d410 + ld e, [hl] + inc hl + ld d, [hl] + inc de + inc de + ld [hl], d + dec hl + ld [hl], e + ret + +; no known jump sources +BattleAnimCmd_F9: ; cc3a6 (33:43a6) + call GetBattleAnimByte + ld [$d416], a + ret + +; no known jump sources +BattleAnimCmd_FA: ; cc3ad (33:43ad) + ld hl, $d416 + inc [hl] + ret + +; no known jump sources +BattleAnimCmd_FB: ; cc3b2 (33:43b2) + call GetBattleAnimByte + ld hl, $d416 + cp [hl] + jr z, .jump + + ld hl, $d410 + ld e, [hl] + inc hl + ld d, [hl] + inc de + inc de + ld [hl], d + dec hl + ld [hl], e + ret + +.jump + call GetBattleAnimByte + ld e, a + call GetBattleAnimByte + ld d, a + ld hl, $d410 + ld [hl], e + inc hl + ld [hl], d + ret + +; no known jump sources +BattleAnimCmd_F8: ; cc3d6 (33:43d6) + call GetBattleAnimByte + ld hl, $c689 + cp [hl] + jr z, .jump + + ld hl, $d410 + ld e, [hl] + inc hl + ld d, [hl] + inc de + inc de + ld [hl], d + dec hl + ld [hl], e + ret + +.jump + call GetBattleAnimByte + ld e, a + call GetBattleAnimByte + ld d, a + ld hl, $d410 + ld [hl], e + inc hl + ld [hl], d + ret + +; no known jump sources +BattleAnimCmd_EE: ; cc3fa (33:43fa) + call GetBattleAnimByte + ld e, a + ld a, [$c689] + and e + jr nz, .jump + + ld hl, $d410 + ld e, [hl] + inc hl + ld d, [hl] + inc de + inc de + ld [hl], d + dec hl + ld [hl], e + ret +.jump + call GetBattleAnimByte + ld e, a + call GetBattleAnimByte + ld d, a + ld hl, $d410 + ld [hl], e + inc hl + ld [hl], d + ret + +; no known jump sources +BattleAnimCmd_D0: ; cc41f (33:441f) + call GetBattleAnimByte + ld [$d419], a + call GetBattleAnimByte + ld [$d41a], a + call GetBattleAnimByte + ld [$d41b], a + call GetBattleAnimByte + ld [$d41c], a + call Functioncc9a1 + ret + +; no known jump sources +BattleAnimCmd_F0: ; cc43b (33:443b) + call GetBattleAnimByte + ld [$d419], a + call GetBattleAnimByte + ld [$d41a], a + call GetBattleAnimByte + ld [$d41b], a + call GetBattleAnimByte + ld [$d41c], a + call Functionccb4f + ret + +; no known jump sources +BattleAnimCmd_F1: ; cc457 (33:4457) + call GetBattleAnimByte + ld [$cfc7], a + ret + +; no known jump sources +BattleAnimCmd_F2: ; cc45e (33:445e) + call GetBattleAnimByte + ld [$cfc8], a + ret + +; no known jump sources +BattleAnimCmd_F3: ; cc465 (33:4465) + call GetBattleAnimByte + ld [$cfc9], a + ret + +; no known jump sources +BattleAnimCmd_DF: ; cc46c (33:446c) + ld a, [hSGB] ; $ff00+$e7 + and a + ld a, $e0 + jr z, .asm_cc475 + ld a, $f0 +.asm_cc475 + ld [$cfc8], a + ret + +; no known jump sources +BattleAnimCmd_E5: ; cc479 (33:4479) + ld hl, $d30a + ld a, $a0 +.asm_cc47e + ld [hl], $0 + inc hl + dec a + jr nz, .asm_cc47e + ret + +; no known jump sources +BattleAnimCmd_D1: +BattleAnimCmd_D2: +BattleAnimCmd_D3: +BattleAnimCmd_D4: +BattleAnimCmd_D5: ; cc485 (33:4485) + ld a, [$d417] + and $f + ld c, a + ld hl, $d300 + xor a + ld [$d419], a +.asm_cc492 + ld a, [$d419] + cp $4f + ret nc + call GetBattleAnimByte + ld [hli], a + ld a, [$d419] + ld [hli], a + push bc + push hl + ld l, a + ld h, $0 + add hl, hl + add hl, hl + add hl, hl + add hl, hl + ld de, $8310 + add hl, de + ld a, [$d417] + call Functionce846 + ld a, [$d419] + add c + ld [$d419], a + pop hl + pop bc + dec c + jr nz, .asm_cc492 + ret + +; no known jump sources +BattleAnimCmd_D6: ; cc4c0 (33:44c0) + call GetBattleAnimByte + ld e, $a + ld bc, $d30a +.asm_cc4c8 + ld hl, $0 + add hl, bc + ld d, [hl] + ld a, [$d417] + cp d + jr z, .asm_cc4dd + ld hl, $18 + add hl, bc + ld c, l + ld b, h + dec e + jr nz, .asm_cc4c8 + ret +.asm_cc4dd + ld hl, $e + add hl, bc + inc [hl] + ret + +; no known jump sources +BattleAnimCmd_D8: ; cc4e3 (33:44e3) + call GetBattleAnimByte + ld e, $5 + ld bc, $d3fa +.asm_cc4eb + ld hl, $0 + add hl, bc + ld d, [hl] + ld a, [$d417] + cp d + jr z, .asm_cc500 + ld hl, $4 + add hl, bc + ld c, l + ld b, h + dec e + jr nz, .asm_cc4eb + ret +.asm_cc500 + ld hl, $1 + add hl, bc + inc [hl] + ret + +; no known jump sources +BattleAnimCmd_D7: ; cc506 (33:4506) + call GetBattleAnimByte + ld e, $a + ld bc, $d30a +.asm_cc50e + ld hl, $0 + add hl, bc + ld d, [hl] + ld a, [$d417] + cp d + jr z, .asm_cc523 + ld hl, $18 + add hl, bc + ld c, l + ld b, h + dec e + jr nz, .asm_cc50e + ret +.asm_cc523 + call GetBattleAnimByte + ld hl, $e + add hl, bc + ld [hl], a + ret + +; no known jump sources +BattleAnimCmd_D9: ; cc52c (33:452c) + + ld hl, $d300 +.asm_cc52f + ld a, [hl] + and a + jr z, .asm_cc537 + inc hl + inc hl + jr .asm_cc52f + +.asm_cc537 + ld a, $28 + ld [hli], a + ld a, $42 + ld [hli], a + ld a, $29 + ld [hli], a + ld a, $49 + ld [hl], a + + ld hl, $8730 + ld de, $9060 + ld a, $70 + ld [$d419], a + ld a, $7 + call Functioncc561 + ld de, $9310 + ld a, $60 + ld [$d419], a + ld a, $6 + call Functioncc561 + ret + +; known jump sources: cc550 (33:4550), cc55d (33:455d), cc57b (33:457b) +Functioncc561: ; cc561 (33:4561) + push af + push hl + push de + ld bc, $3301 + call Request2bpp + pop de + ld a, [$d419] + ld l, a + ld h, $0 + add hl, de + ld e, l + ld d, h + pop hl + ld bc, $10 + add hl, bc + pop af + dec a + jr nz, Functioncc561 + ret + +; no known jump sources +BattleAnimCmd_DA: ; cc57e (33:457e) + + ld hl, $d300 +.asm_cc581 + ld a, [hl] + and a + jr z, .asm_cc589 + inc hl + inc hl + jr .asm_cc581 + +.asm_cc589 + ld a, $28 + ld [hli], a + ld a, $35 + ld [hli], a + ld a, $29 + ld [hli], a + ld a, $43 + ld [hl], a + + ld hl, $8660 + ld de, $9050 + ld a, $70 + ld [$d419], a + ld a, $7 + call Functioncc5b3 + ld de, $9310 + ld a, $60 + ld [$d419], a + ld a, $6 + call Functioncc5b3 + ret + +; known jump sources: cc5a2 (33:45a2), cc5af (33:45af), cc5cd (33:45cd) +Functioncc5b3: ; cc5b3 (33:45b3) + push af + push hl + push de + ld bc, $3302 + call Request2bpp + pop de + ld a, [$d419] + ld l, a + ld h, $0 + add hl, de + ld e, l + ld d, h + pop hl + ld bc, $20 + add hl, bc + pop af + dec a + jr nz, Functioncc5b3 + ret + +; no known jump sources +BattleAnimCmd_DB: ; cc5d0 (33:45d0) + callab GetPokeBallWobble + ld a, c + ld [$d416], a + ret + +; no known jump sources +BattleAnimCmd_E7: ; cc5db (33:45db) + ret + +; no known jump sources +BattleAnimCmd_DC: ; cc5dc (33:45dc) + ld a, [rSVBK] ; $ff00+$70 + push af + ld a, 1 + ld [rSVBK], a ; $ff00+$70 + ld a, [CurPartySpecies] ; $d108 + push af + + ld a, [hBattleTurn] ; $ff00+$e4 + and a + jr z, .player + + ld a, [TempBattleMonSpecies] ; $d205 + ld [CurPartySpecies], a ; $d108 + ld hl, BattleMonDVs ; $c632 + ld a, PREDEF_GET_UNOWN_LETTER + call Predef + ld de, $8000 + ld a, $3c + call Predef + jr .done + +.player + ld a, [TempEnemyMonSpecies] ; $d204 + ld [CurPartySpecies], a ; $d108 + ld hl, EnemyMonDVs ; $d20c + ld a, PREDEF_GET_UNOWN_LETTER + call Predef + ld de, $8000 + ld a, $3d + call Predef + +.done + pop af + ld [CurPartySpecies], a ; $d108 + pop af + ld [rSVBK], a ; $ff00+$70 + ret + +; no known jump sources +BattleAnimCmd_E8: ; cc622 (33:4622) + + ld de, $8000 + ld a, [hBattleTurn] ; $ff00+$e4 + and a + jr z, .player + + ld hl, $9000 + ld b, 0 + ld c, $31 + call Request2bpp + ret + +.player + ld hl, $9310 + ld b, 0 + ld c, $24 + call Request2bpp + ret + +; no known jump sources +BattleAnimCmd_DD: ; cc640 (33:4640) + + ld a, [rSVBK] ; $ff00+$70 + push af + ld a, 1 + ld [rSVBK], a ; $ff00+$70 + xor a + call GetSRAMBank + +GetSubstitutePic: ; cc64c + + ld hl, $a000 + ld bc, $310 +.loop + xor a + ld [hli], a + dec bc + ld a, c + or b + jr nz, .loop + + ld a, [hBattleTurn] ; $ff00+$e4 + and a + jr z, .player + + ld hl, MonsterSpriteGFX + ld de, $a000 + $130 + call CopyMonsterSpriteTile + ld hl, MonsterSpriteGFX + $10 + ld de, $a000 + $1a0 + call CopyMonsterSpriteTile + ld hl, MonsterSpriteGFX + $20 + ld de, $a000 + $140 + call CopyMonsterSpriteTile + ld hl, MonsterSpriteGFX + $30 + ld de, $a000 + $1b0 + call CopyMonsterSpriteTile + + ld hl, $9000 + ld de, $a000 + lb bc, BANK(GetSubstitutePic), 7 * 7 + call Request2bpp + jr .done + +.player + ld hl, MonsterSpriteGFX + $40 + ld de, $a000 + $100 + call CopyMonsterSpriteTile + ld hl, MonsterSpriteGFX + $50 + ld de, $a000 + $160 + call CopyMonsterSpriteTile + ld hl, MonsterSpriteGFX + $60 + ld de, $a000 + $110 + call CopyMonsterSpriteTile + ld hl, MonsterSpriteGFX + $70 + ld de, $a000 + $170 + call CopyMonsterSpriteTile + + ld hl, $9310 + ld de, $a000 + lb bc, BANK(GetSubstitutePic), 6 * 6 + call Request2bpp + +.done + call CloseSRAM + pop af + ld [rSVBK], a ; $ff00+$70 + ret + +; known jump sources: cc663 (33:4663), cc66c (33:466c), cc675 (33:4675), cc67e (33:467e), cc695 (33:4695), cc69e (33:469e), cc6a7 (33:46a7), cc6b0 (33:46b0) +CopyMonsterSpriteTile: ; cc6c6 (33:46c6) + ld bc, $10 + ld a, BANK(MonsterSpriteGFX) + call FarCopyBytes + ret + +; no known jump sources +BattleAnimCmd_E2: ; cc6cf (33:46cf) + ld a, [rSVBK] ; $ff00+$70 + push af + ld a, $1 + ld [rSVBK], a ; $ff00+$70 + xor a + call GetSRAMBank + call GetMinimizePic + call Request2bpp + call CloseSRAM + pop af + ld [rSVBK], a ; $ff00+$70 + ret + +; known jump sources: cc6da (33:46da), cc740 (33:4740) +GetMinimizePic: ; cc6e7 (33:46e7) + ld hl, $a000 + ld bc, $310 +.loop + xor a + ld [hli], a + dec bc + ld a, c + or b + jr nz, .loop + + ld a, [hBattleTurn] ; $ff00+$e4 + and a + jr z, .player + + ld de, $a1a0 + call CopyMinimizePic + ld hl, $9000 + ld de, $a000 + lb bc, BANK(GetMinimizePic), $31 + ret + +.player + ld de, $a160 + call CopyMinimizePic + ld hl, $9310 + ld de, $a000 + lb bc, BANK(GetMinimizePic), $24 + ret + +; known jump sources: cc6fc (33:46fc), cc70c (33:470c) +CopyMinimizePic: ; cc719 (33:4719) + ld hl, MinimizePic + ld bc, $10 + ld a, BANK(MinimizePic) + call FarCopyBytes + ret +; cc725 (33:4725) + +MinimizePic: ; cc725 +INCBIN "gfx/battle/minimize.2bpp" +; cc735 + +; no known jump sources +BattleAnimCmd_E9: ; cc735 (33:4735) + ld a, [rSVBK] ; $ff00+$70 + push af + ld a, $1 + ld [rSVBK], a ; $ff00+$70 + xor a + call GetSRAMBank + call GetMinimizePic + ld hl, $8000 + call Request2bpp + call CloseSRAM + pop af + ld [rSVBK], a ; $ff00+$70 + ret + +; no known jump sources +BattleAnimCmd_DE: ; cc750 (33:4750) + ld a, [rSVBK] ; $ff00+$70 + push af + ld a, $1 + ld [rSVBK], a ; $ff00+$70 + + ld a, [CurPartySpecies] ; $d108 + push af + ld a, [hBattleTurn] ; $ff00+$e4 + and a + jr z, .player + + callab Function3f486 + jr .done + +.player + callab Function3f447 + +.done + pop af + ld [CurPartySpecies], a ; $d108 + pop af + ld [rSVBK], a ; $ff00+$70 + ret + +; no known jump sources +BattleAnimCmd_E6: ; cc776 (33:4776) + ld a, [rSVBK] ; $ff00+$70 + push af + ld a, $1 + ld [rSVBK], a ; $ff00+$70 + ld a, [CurPartySpecies] ; $d108 + push af + + ld a, [$c689] + ld [CurPartySpecies], a ; $d108 + + ld a, [hBattleTurn] ; $ff00+$e4 + and a + jr z, .player + + ld hl, BattleMonDVs ; $c632 + ld a, PREDEF_GET_UNOWN_LETTER + call Predef + ld de, $9000 + ld a, $3c + call Predef + jr .done + +.player + ld hl, EnemyMonDVs ; $d20c + ld a, PREDEF_GET_UNOWN_LETTER + call Predef + ld de, $9310 + ld a, $3d + call Predef + +.done + pop af + ld [CurPartySpecies], a ; $d108 + ld b, $1 + call GetSGBLayout + pop af + ld [rSVBK], a ; $ff00+$70 + ret + +; no known jump sources +BattleAnimCmd_E3: ; cc7bb (33:47bb) + xor a + ld [hOAMUpdate], a ; $ff00+$d8 + ret + +; no known jump sources +BattleAnimCmd_E4: ; cc7bf (33:47bf) + ld a, $1 + ld [hOAMUpdate], a ; $ff00+$d8 + ret + +; no known jump sources +BattleAnimCmd_F4: ; cc7c4 (33:47c4) + ld hl, $d40f + set 3, [hl] + ret + +; no known jump sources +BattleAnimCmd_F5: ; cc7ca (33:47ca) + ret + +; no known jump sources +BattleAnimCmd_F6: ; cc7cb (33:47cb) + ret + +; no known jump sources +BattleAnimCmd_F7: ; cc7cc (33:47cc) + ret + +; no known jump sources +BattleAnimCmd_E0: ; cc7cd (33:47cd) + call GetBattleAnimByte + ld e, a + srl a + srl a + ld [$c2be], a + call Functioncc7fc + and 3 + ld [CryTracks], a ; $c2bd + + ld e, a + ld d, 0 + ld hl, Datacc7f8 + add hl, de + ld a, [hl] + ld [$c2bc], a + + call GetBattleAnimByte + ld e, a + ld d, 0 + callab PlayStereoSFX + + ret +; cc7f8 (33:47f8) + +Datacc7f8: ; cc7f8 + db $f0, $0f, $f0, $0f +; cc7fc + +; known jump sources: cc7d8 (33:47d8) +Functioncc7fc: ; cc7fc (33:47fc) + ld a, [hBattleTurn] ; $ff00+$e4 + and a + jr nz, .enemy + + ld a, e + ret + +.enemy + ld a, e + xor 1 + ret + +; no known jump sources +BattleAnimCmd_E1: ; cc807 (33:4807) + call GetBattleAnimByte + and 3 + ld e, a + ld d, 0 + ld hl, Datacc871 + add hl, de + add hl, de + add hl, de + add hl, de + + ld a, [rSVBK] ; $ff00+$70 + push af + ld a, 1 + ld [rSVBK], a ; $ff00+$70 + + ld a, [hBattleTurn] ; $ff00+$e4 + and a + jr nz, .enemy + + ld a, $f0 + ld [CryTracks], a ; $c2bd + ld a, [BattleMonSpecies] ; $c62c + jr .asm_cc834 + +.enemy + ld a, $0f + ld [CryTracks], a ; $c2bd + ld a, [EnemyMonSpecies] ; $d206 + +.asm_cc834 + push hl + call Function37f3 + pop hl + jr c, .done + + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + + push hl + ld hl, CryPitch ; $c2b0 + ld a, [hli] + ld h, [hl] + ld l, a + add hl, bc + ld a, l + ld [CryPitch], a ; $c2b0 + ld a, h + ld [CryEcho], a ; $c2b1 + pop hl + + ld a, [hli] + ld c, a + ld b, [hl] + ld hl, CryLength ; $c2b2 + ld a, [hli] + ld h, [hl] + ld l, a + add hl, bc + + ld a, l + ld [CryLength], a ; $c2b2 + ld a, h + ld [CryLength + 1], a + ld a, 1 + ld [$c2bc], a + + callab PlayCry + +.done + pop af + ld [rSVBK], a ; $ff00+$70 + ret +; cc871 (33:4871) + +Datacc871: ; cc871 +; +pitch, +echo, +length + db $00, $00, $c0, $00 + db $00, $00, $40, $00 + db $00, $00, $00, $00 + db $00, $00, $00, $00 +; cc881 + + +Functioncc881: ; cc881 + ld a, [$cfca] + cp $1 + jr z, .asm_cc88b + cp $4 + ret nz + +.asm_cc88b + ld a, [TypeModifier] + and $7f + ret z + + cp 10 + ld de, SFX_DAMAGE + jr z, .play + + ld de, SFX_SUPER_EFFECTIVE + jr nc, .play + + ld de, SFX_NOT_VERY_EFFECTIVE + +.play + call PlaySFX + ret +; cc8a4 + +BattleAnimAssignPals: ; cc8a4 + ld a, [hCGB] + and a + jr nz, .asm_cc8be + ld a, [hSGB] + and a + ld a, $e0 + jr z, .asm_cc8b2 + ld a, $f0 + +.asm_cc8b2 + ld [$cfc8], a + ld a, $e4 + ld [$cfc7], a + ld [$cfc9], a + ret + +.asm_cc8be + ld a, $e4 + ld [$cfc7], a + ld [$cfc8], a + ld [$cfc9], a + call DmgToCgbBGPals + ld de, $e4e4 + call DmgToCgbObjPals + ret +; cc8d3 + +Functioncc8d3: ; cc8d3 + ld hl, LYOverrides + ld bc, $0354 +.asm_cc8d9 + ld [hl], $0 + inc hl + dec bc + ld a, c + or b + jr nz, .asm_cc8d9 + ld hl, FXAnimIDLo + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $506f + add hl, de + add hl, de + call Function3ae1 + call BattleAnimAssignPals + call BattleAnimDelayFrame + ret +; cc8f6 + +Functioncc8f6: ; cc8f6 + call WaitTop + ld a, $e4 + ld [$cfc7], a + ld [$cfc8], a + ld [$cfc9], a + call DmgToCgbBGPals + ld de, $e4e4 + call DmgToCgbObjPals + xor a + ld [hSCX], a + ld [hSCY], a + call BattleAnimDelayFrame + ld a, $1 + ld [hBGMapMode], a + ret +; cc91a + +Functioncc91a: ; cc91a + ld [rBGP], a + ld a, [hCGB] + and a + ret z + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, $d080 + ld de, $d000 + ld a, [rBGP] + ld b, a + ld c, $7 + call CopyPals + ld hl, $d0c0 + ld de, MartPointer + ld a, [rBGP] + ld b, a + ld c, $2 + call CopyPals + pop af + ld [rSVBK], a + ld a, $1 + ld [hCGBPalUpdate], a + ret +; cc94b + +Functioncc94b: ; cc94b + ld [rOBP0], a + ld a, [hCGB] + and a + ret z + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, $d0d0 + ld de, $d050 + ld a, [rOBP0] + ld b, a + ld c, $2 + call CopyPals + pop af + ld [rSVBK], a + ld a, $1 + ld [hCGBPalUpdate], a + ret +; cc96e + +Functioncc96e: ; cc96e + ld a, $0 + ld [$d418], a + ld hl, $d30a + ld e, $a +.asm_cc978 + ld a, [hl] + and a + jr z, .asm_cc98a + ld c, l + ld b, h + push hl + push de + call Functionccfbe + call Functioncca09 + pop de + pop hl + jr c, .asm_cc9a0 + +.asm_cc98a + ld bc, $0018 + add hl, bc + dec e + jr nz, .asm_cc978 + ld a, [$d418] + ld l, a + ld h, $c4 +.asm_cc997 + ld a, l + cp $a0 + jr nc, .asm_cc9a0 + xor a + ld [hli], a + jr .asm_cc997 + +.asm_cc9a0 + ret +; cc9a1 + + diff --git a/battle/anim_objects.asm b/battle/anim_objects.asm new file mode 100644 index 000000000..09cfb0102 --- /dev/null +++ b/battle/anim_objects.asm @@ -0,0 +1,5037 @@ +; Objects used in battle animations. + + +; known jump sources: cc437 (33:4437) +Functioncc9a1: ; cc9a1 (33:49a1) + ld hl, $d30a + ld e, $a +.asm_cc9a6 + ld a, [hl] + and a + jr z, .asm_cc9b3 + ld bc, $18 + add hl, bc + dec e + jr nz, .asm_cc9a6 + scf + ret +.asm_cc9b3 + ld c, l + ld b, h + ld hl, $d40e + inc [hl] + call Functioncc9c4 + ret + + +Functioncc9bd: ; cc9bd + ld hl, $0000 + add hl, bc + ld [hl], $0 + ret +; cc9c4 + + +; known jump sources: cc9b9 (33:49b9) +Functioncc9c4: ; cc9c4 (33:49c4) + ld a, [$d419] + ld e, a + ld d, $0 + ld hl, $4b56 + add hl, de + add hl, de + add hl, de + add hl, de + add hl, de + add hl, de + ld e, l + ld d, h + ld hl, $0 + add hl, bc + ld a, [$d40e] + ld [hli], a + ld a, [de] + inc de + ld [hli], a + ld a, [de] + inc de + ld [hli], a + ld a, [de] + inc de + ld [hli], a + ld a, [de] + inc de + ld [hli], a + ld a, [de] + inc de + ld [hli], a + ld a, [de] + call Functionccb31 + ld [hli], a + ld a, [$d41a] + ld [hli], a + ld a, [$d41b] + ld [hli], a + xor a + ld [hli], a + ld [hli], a + ld a, [$d41c] + ld [hli], a + xor a + ld [hli], a + dec a + ld [hli], a + xor a + ld [hli], a + ld [hli], a + ld [hl], a + ret + + +Functioncca09: ; cca09 + call Functionccaaa + call Functionce7d1 + cp EGG + jp z, .asm_ccaa5 + cp NUM_POKEMON + 1 + jp z, .asm_ccaa2 + push af + ld hl, $d419 + ld a, [$d420] + xor [hl] + and $e0 + ld [hl], a + pop af + push bc + call Functionce83c + ld a, [$d41b] + add [hl] + ld [$d41b], a + inc hl + ld a, [hli] + ld c, a + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [$d418] + ld e, a + ld d, $c4 +.asm_cca3c + ld a, [$d41d] + ld b, a + ld a, [$d41f] + add b + ld b, a + push hl + ld a, [hl] + ld hl, $d419 + bit 6, [hl] + jr z, .asm_cca53 + add $8 + xor $ff + inc a + +.asm_cca53 + pop hl + add b + ld [de], a + inc hl + inc de + ld a, [$d41c] + ld b, a + ld a, [$d41e] + add b + ld b, a + push hl + ld a, [hl] + ld hl, $d419 + bit 5, [hl] + jr z, .asm_cca6f + add $8 + xor $ff + inc a + +.asm_cca6f + pop hl + add b + ld [de], a + inc hl + inc de + ld a, [$d41b] + add $31 + add [hl] + ld [de], a + inc hl + inc de + ld a, [$d419] + ld b, a + ld a, [hl] + xor b + and $e0 + ld b, a + ld a, [hl] + and $10 + or b + ld b, a + ld a, [OTPartyMon6Nickname] + and $f + or b + ld [de], a + inc hl + inc de + ld a, e + ld [$d418], a + cp $a0 + jr nc, .asm_ccaa7 + dec c + jr nz, .asm_cca3c + pop bc + jr .asm_ccaa5 + +.asm_ccaa2 + call Functioncc9bd + +.asm_ccaa5 + and a + ret + +.asm_ccaa7 + pop bc + scf + ret +; ccaaa + +Functionccaaa: ; ccaaa + ld hl, $0001 + add hl, bc + ld a, [hl] + and $80 + ld [$d419], a + xor a + ld [$d420], a + ld hl, $0005 + add hl, bc + ld a, [hl] + ld [OTPartyMon6Nickname], a + ld hl, $0002 + add hl, bc + ld a, [hl] + ld [$d41a], a + ld hl, $0006 + add hl, bc + ld a, [hli] + ld [$d41b], a + ld a, [hli] + ld [$d41c], a + ld a, [hli] + ld [$d41d], a + ld a, [hli] + ld [$d41e], a + ld a, [hli] + ld [$d41f], a + ld a, [hBattleTurn] + and a + ret z + ld hl, $0001 + add hl, bc + ld a, [hl] + ld [$d419], a + bit 0, [hl] + ret z + ld hl, $0007 + add hl, bc + ld a, [hli] + ld d, a + ld a, $b4 + sub d + ld [$d41c], a + ld a, [hli] + ld d, a + ld a, [$d41a] + cp $ff + jr nz, .asm_ccb09 + ld a, $28 + add d + jr .asm_ccb26 + +.asm_ccb09 + sub d + push af + ld a, [FXAnimIDHi] + or a + jr nz, .asm_ccb25 + ld a, [FXAnimIDLo] + cp $86 + jr z, .asm_ccb20 + cp $87 + jr z, .asm_ccb20 + cp $d0 + jr nz, .asm_ccb25 + +.asm_ccb20 + pop af + sub $8 + jr .asm_ccb26 + +.asm_ccb25 + pop af + +.asm_ccb26 + ld [$d41d], a + ld a, [hli] + xor $ff + inc a + ld [$d41e], a + ret +; ccb31 + + +; known jump sources: cc9ed (33:49ed) +Functionccb31: ; ccb31 (33:4b31) + push hl + push bc + ld hl, $d300 + ld b, a + ld c, $5 +.asm_ccb39 + ld a, [hli] + cp b + jr z, .asm_ccb44 + inc hl + dec c + jr nz, .asm_ccb39 + xor a + jr .asm_ccb45 +.asm_ccb44 + ld a, [hl] +.asm_ccb45 + pop bc + pop hl + ret + + +Functionccb48: ; ccb48 + callab Functionc8000 + ret +; ccb4f + + +; known jump sources: cc453 (33:4453) +Functionccb4f: ; ccb4f (33:4b4f) + callab Functionc801a + ret +; ccb56 (33:4b56) + +INCBIN "baserom.gbc",$ccb56,$ccfbe - $ccb56 + + +Functionccfbe: ; ccfbe + ld hl, $0004 + add hl, bc + ld e, [hl] + ld d, $0 + ld hl, $4fce + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; ccfce + + +; no known jump sources +Jumptable_ccfce: ; ccfce (33:4fce) + dw Functioncd06e + dw Functioncd12a + dw Functioncd146 + dw Functioncd0e3 + dw Functioncd0a6 + dw Functioncd081 + dw Functioncd079 + dw Functioncd2be + dw Functioncd306 + dw Functioncd3ae + dw Functioncd3f2 + dw Functioncd478 + dw Functioncd5e9 + dw Functioncd66a + dw Functioncd6e3 + dw Functioncd71a + dw Functioncd284 + dw Functioncd777 + dw Functioncd15c + dw Functioncd212 + dw Functioncd7a4 + dw Functioncd80c + dw Functioncd824 + dw Functioncd89a + dw Functioncd900 + dw Functioncd954 + dw Functioncdafa + dw Functioncdb06 + dw Functioncda0a + dw Functioncdb80 + dw Functioncdca6 + dw Functioncda31 + dw Functioncda4d + dw Functioncdcc3 + dw Functioncdd2a + dw Functioncdd90 + dw Functioncddf9 + dw Functioncde28 + dw Functioncde54 + dw Functioncde6b + dw Functioncde89 + dw Functioncdedd + dw Functioncdf59 + dw Functionce063 + dw Functionce0c5 + dw Functioncdf1b + dw Functionce10e + dw Functionce15c + dw Functionce1e7 + dw Functionce226 + dw Functionce255 + dw Functionce2cc + dw Functioncdf8c + dw Functionce00b + dw Functionce2fd + dw Functionce35f + dw Functionce389 + dw Functionce3b4 + dw Functionce3d2 + dw Functionce3ff + dw Functioncdfcb + dw Functionce416 + dw Functionce43a + dw Functioncdad6 + dw Functionce49c + dw Functionce4dc + dw Functionce1b0 + dw Functionce508 + dw Functionce532 + dw Functionce55b + dw Functionce593 + dw Functionce5b4 + dw Functionce5dc + dw Functionce5ee + dw Functionce62f + dw Functionce688 + dw Functionce6b3 + dw Functionce6d2 + dw Functioncd58a + dw Functionce6bf + + +; no known jump sources +Functioncd06e: ; cd06e (33:506e) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cd071: ; cd071 (33:5071) + dw Functioncd078 + dw Functioncd075 + + +; no known jump sources +Functioncd075: ; cd075 (33:5075) + call Functioncc9bd + +; no known jump sources +Functioncd078: ; cd078 (33:5078) + ret + +; no known jump sources +Functioncd079: ; cd079 (33:5079) + call Functioncd081 + ret c + call Functioncc9bd + ret + +; known jump sources: cd079 (33:5079), cd17e (33:517e), cd22b (33:522b) +Functioncd081: ; cd081 (33:5081) + ld hl, $7 + add hl, bc + ld a, [hl] + cp $88 + ret nc + add $2 + ld [hl], a + ld hl, $8 + add hl, bc + dec [hl] + ld hl, $f + add hl, bc + ld a, [hl] + dec [hl] + ld hl, $b + add hl, bc + ld d, [hl] + call Functionce734 + ld hl, $a + add hl, bc + ld [hl], a + scf + ret + +; no known jump sources +Functioncd0a6: ; cd0a6 (33:50a6) + ld hl, $7 + add hl, bc + ld a, [hl] + cp $88 + jr c, .asm_cd0b3 + call Functioncc9bd + ret +.asm_cd0b3 + add $2 + ld [hl], a + ld hl, $8 + add hl, bc + dec [hl] + ld hl, $f + add hl, bc + ld a, [hl] + inc [hl] + inc [hl] + inc [hl] + inc [hl] + ld d, $10 + push af + push de + call Functionce734 + ld hl, $a + add hl, bc + ld [hl], a + pop de + pop af + call Functionce732 + ld hl, $9 + add hl, bc + sra a + sra a + sra a + sra a + ld [hl], a + ret + +; known jump sources: cdafa (33:5afa) +Functioncd0e3: ; cd0e3 (33:50e3) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cd0e6: ; cd0e6 (33:50e6) + dw Functioncd0ea + dw Functioncd106 + + +; no known jump sources +Functioncd0ea: ; cd0ea (33:50ea) + call Functionce72c + ld hl, $b + add hl, bc + bit 7, [hl] + ld a, $0 + jr z, .asm_cd0f9 + ld a, $20 +.asm_cd0f9 + ld hl, $f + add hl, bc + ld [hl], a + ld hl, $b + add hl, bc + ld a, [hl] + and $7f + ld [hl], a + +; no known jump sources +Functioncd106: ; cd106 (33:5106) + ld hl, $f + add hl, bc + ld a, [hl] + ld hl, $b + add hl, bc + ld d, [hl] + push af + push de + call Functionce734 + ld hl, $a + add hl, bc + ld [hl], a + pop de + pop af + call Functionce732 + ld hl, $9 + add hl, bc + ld [hl], a + ld hl, $f + add hl, bc + inc [hl] + ret + +; no known jump sources +Functioncd12a: ; cd12a (33:512a) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cd12d: ; cd12d (33:512d) + dw Functioncd135 + dw Functioncd131 + + +; no known jump sources +Functioncd131: ; cd131 (33:5131) + call Functioncc9bd + ret + +; no known jump sources +Functioncd135: ; cd135 (33:5135) + ld hl, $7 + add hl, bc + ld a, [hl] + cp $84 + ret nc + ld hl, $b + add hl, bc + ld a, [hl] + call Functionce70a + ret + +; no known jump sources +Functioncd146: ; cd146 (33:5146) + ld hl, $7 + add hl, bc + ld a, [hl] + cp $84 + jr nc, .asm_cd158 + ld hl, $b + add hl, bc + ld a, [hl] + call Functionce70a + ret +.asm_cd158 + call Functioncc9bd + ret + +; no known jump sources +Functioncd15c: ; cd15c (33:515c) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cd15f: ; cd15f (33:515f) + dw Functioncd177 + dw Functioncd17e + dw Functioncd1dc + dw Functioncd196 + dw Functioncd1a7 + dw Functioncd1dc + dw Functioncd1d2 + dw Functioncd1dd + dw Functioncd1ee + dw Functioncd1dc + dw Functioncd1ee + dw Functioncd20e + + +; no known jump sources +Functioncd177: ; cd177 (33:5177) + call Functioncd249 + call Functionce72c + ret + +; no known jump sources +Functioncd17e: ; cd17e (33:517e) + call Functioncd081 + ret c + ld hl, $a + add hl, bc + ld a, [hl] + ld hl, $8 + add hl, bc + add [hl] + ld [hl], a + ld a, $b + call Functionce7bf + call Functionce72c + ret + +; no known jump sources +Functioncd196: ; cd196 (33:5196) + call Functionce72c + ld a, $9 + call Functionce7bf + ld hl, $f + add hl, bc + ld [hl], $0 + inc hl + ld [hl], $10 + +; no known jump sources +Functioncd1a7: ; cd1a7 (33:51a7) + ld hl, $f + add hl, bc + ld a, [hli] + ld d, [hl] + call Functionce734 + ld hl, $a + add hl, bc + ld [hl], a + ld hl, $f + add hl, bc + ld a, [hl] + dec a + ld [hl], a + and $1f + ret nz + ld [hl], a + ld hl, $10 + add hl, bc + ld a, [hl] + sub $4 + ld [hl], a + ret nz + ld a, $c + call Functionce7bf + call Functionce72c + ret + +; no known jump sources +Functioncd1d2: ; cd1d2 (33:51d2) + ld a, $d + call Functionce7bf + ld hl, $e + add hl, bc + dec [hl] + +; no known jump sources +Functioncd1dc: ; cd1dc (33:51dc) + ret + +; no known jump sources +Functioncd1dd: ; cd1dd (33:51dd) + call Functioncd249 + ld a, $a + call Functionce7bf + call Functionce72c + ld hl, $10 + add hl, bc + ld [hl], $20 + +; no known jump sources +Functioncd1ee: ; cd1ee (33:51ee) + ld hl, $f + add hl, bc + ld a, [hli] + ld d, [hl] + call Functionce734 + ld hl, $a + add hl, bc + ld [hl], a + ld hl, $f + add hl, bc + ld a, [hl] + dec a + ld [hl], a + and $1f + jr z, Functioncd20e + and $f + ret nz + call Functionce72c + ret + +; known jump sources: cd205 (33:5205) +Functioncd20e: ; cd20e (33:520e) + call Functioncc9bd + ret + +; no known jump sources +Functioncd212: ; cd212 (33:5212) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cd215: ; cd215 (33:5215) + dw Functioncd21b + dw Functioncd222 + dw Functioncd232 + + +; no known jump sources +Functioncd21b: ; cd21b (33:521b) + call Functioncd249 + call Functionce72c + ret + +; no known jump sources +Functioncd222: ; cd222 (33:5222) + ld hl, $7 + add hl, bc + ld a, [hl] + cp $70 + jr nc, .asm_cd22f + call Functioncd081 + ret +.asm_cd22f + call Functionce72c + +; no known jump sources +Functioncd232: ; cd232 (33:5232) + ld hl, $8 + add hl, bc + ld a, [hl] + cp $80 + jr nc, .asm_cd245 + add $4 + ld [hl], a + ld hl, $7 + add hl, bc + dec [hl] + dec [hl] + ret +.asm_cd245 + call Functioncc9bd + ret + +; known jump sources: cd177 (33:5177), cd1dd (33:51dd), cd21b (33:521b) +Functioncd249: ; cd249 (33:5249) + ld hl, $526c + ld a, [rSVBK] ; $ff00+$70 + push af + ld a, $1 + ld [rSVBK], a ; $ff00+$70 + ld a, [CurItem] ; $d106 + ld e, a + pop af + ld [rSVBK], a ; $ff00+$70 +.asm_cd25a + ld a, [hli] + cp $ff + jr z, .asm_cd265 + cp e + jr z, .asm_cd265 + inc hl + jr .asm_cd25a +.asm_cd265 + ld a, [hl] + ld hl, $5 + add hl, bc + ld [hl], a + ret +; cd26c (33:526c) + +INCBIN "baserom.gbc",$cd26c,$cd284 - $cd26c + +; no known jump sources +Functioncd284: ; cd284 (33:5284) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cd287: ; cd287 (33:5287) + dw Functioncd291 + dw Functioncd2a0 + dw Functioncd2b1 + dw Functioncd2b5 + dw Functioncd2bd + + +; no known jump sources +Functioncd291: ; cd291 (33:5291) + ld hl, $b + add hl, bc + ld a, [hl] + swap a + and $f + ld hl, $e + add hl, bc + ld [hl], a + ret + +; no known jump sources +Functioncd2a0: ; cd2a0 (33:52a0) + ld hl, $7 + add hl, bc + ld a, [hl] + cp $88 + ret nc + ld hl, $b + add hl, bc + ld a, [hl] + call Functionce70a + ret + +; no known jump sources +Functioncd2b1: ; cd2b1 (33:52b1) + call Functioncc9bd + ret + +; no known jump sources +Functioncd2b5: ; cd2b5 (33:52b5) + call Functionce72c + ld a, $f + call Functionce7bf + +; no known jump sources +Functioncd2bd: ; cd2bd (33:52bd) + ret + +; no known jump sources +Functioncd2be: ; cd2be (33:52be) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cd2c1: ; cd2c1 (33:52c1) + dw Functioncd2c5 + dw Functioncd2d1 + + +; no known jump sources +Functioncd2c5: ; cd2c5 (33:52c5) + call Functionce72c + ld hl, $f + add hl, bc + ld [hl], $30 + inc hl + ld [hl], $48 + +; no known jump sources +Functioncd2d1: ; cd2d1 (33:52d1) + ld hl, $f + add hl, bc + ld a, [hli] + ld d, [hl] + call Functionce734 + ld hl, $a + add hl, bc + ld [hl], a + ld hl, $f + add hl, bc + inc [hl] + ld a, [hl] + and $3f + ret nz + ld hl, $f + add hl, bc + ld [hl], $20 + ld hl, $10 + add hl, bc + ld a, [hl] + ld hl, $b + add hl, bc + sub [hl] + jr z, .asm_cd302 + jr c, .asm_cd302 + ld hl, $10 + add hl, bc + ld [hl], a + ret +.asm_cd302 + call Functioncc9bd + ret + +; no known jump sources +Functioncd306: ; cd306 (33:5306) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cd309: ; cd309 (33:5309) + dw Functioncd311 + dw Functioncd321 + dw Functioncd32a + dw Functioncd37d + + +; no known jump sources +Functioncd311: ; cd311 (33:5311) + ld hl, $7 + add hl, bc + ld a, [hl] + cp $80 + jr nc, .asm_cd31e + call Functioncd38e + ret +.asm_cd31e + call Functionce72c + +; no known jump sources +Functioncd321: ; cd321 (33:5321) + call Functionce72c + ld hl, $f + add hl, bc + ld [hl], $0 + +; no known jump sources +Functioncd32a: ; cd32a (33:532a) + ld hl, $f + add hl, bc + ld a, [hl] + cp $40 + jr nc, .asm_cd363 + ld hl, $f + add hl, bc + ld a, [hl] + ld d, $18 + call Functionce732 + sub $18 + sra a + ld hl, $a + add hl, bc + ld [hl], a + ld hl, $f + add hl, bc + ld a, [hl] + ld d, $18 + call Functionce734 + ld hl, $9 + add hl, bc + ld [hl], a + ld hl, $b + add hl, bc + ld a, [hl] + and $f + ld hl, $f + add hl, bc + add [hl] + ld [hl], a + ret +.asm_cd363 + ld hl, $b + add hl, bc + ld a, [hl] + and $f0 + jr z, .asm_cd37a + sub $10 + ld d, a + ld a, [hl] + and $f + or d + ld [hl], a + ld hl, $e + add hl, bc + dec [hl] + ret +.asm_cd37a + call Functionce72c + +; no known jump sources +Functioncd37d: ; cd37d (33:537d) + ld hl, $7 + add hl, bc + ld a, [hl] + cp $b0 + jr c, .asm_cd38a + call Functioncc9bd + ret +.asm_cd38a + call Functioncd38e + ret + +; known jump sources: cd31a (33:531a), cd38a (33:538a) +Functioncd38e: ; cd38e (33:538e) + ld hl, $b + add hl, bc + ld a, [hl] + and $f + ld hl, $7 + add hl, bc + add [hl] + ld [hl], a + ld hl, $b + add hl, bc + ld a, [hl] + and $f + ld e, a + srl e + ld hl, $8 + add hl, bc +.asm_cd3a9 + dec [hl] + dec e + jr nz, .asm_cd3a9 + ret + +; no known jump sources +Functioncd3ae: ; cd3ae (33:53ae) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cd3b1: ; cd3b1 (33:53b1) + dw Functioncd3b7 + dw Functioncd3cc + dw Functioncd3ee + + +; no known jump sources +Functioncd3b7: ; cd3b7 (33:53b7) + call Functionce72c + ld hl, $f + add hl, bc + ld [hl], $0 + ld hl, $b + add hl, bc + ld a, [hl] + and $f + ld hl, $9 + add hl, bc + ld [hl], a + +; no known jump sources +Functioncd3cc: ; cd3cc (33:53cc) + ld hl, $f + add hl, bc + ld a, [hl] + and a + jr z, .asm_cd3d6 + dec [hl] + ret +.asm_cd3d6 + ld hl, $b + add hl, bc + ld a, [hl] + swap a + and $f + ld hl, $f + add hl, bc + ld [hl], a + ld hl, $9 + add hl, bc + ld a, [hl] + xor $ff + inc a + ld [hl], a + ret + +; no known jump sources +Functioncd3ee: ; cd3ee (33:53ee) + call Functioncc9bd + ret + +; no known jump sources +Functioncd3f2: ; cd3f2 (33:53f2) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cd3f5: ; cd3f5 (33:53f5) + dw Functioncd409 + dw Functioncd45c + dw Functioncd467 + dw Functioncd472 + dw Functioncd462 + dw Functioncd46d + dw Functioncd477 + dw Functioncd41d + dw Functioncd437 + dw Functioncd458 + + +; no known jump sources +Functioncd409: ; cd409 (33:5409) + ld hl, $b + add hl, bc + ld a, [hl] + ld hl, $e + add hl, bc + ld [hl], a + cp $7 + jr z, Functioncd41d + ld a, $11 + call Functionce7bf + ret + +; known jump sources: cd415 (33:5415) +Functioncd41d: ; cd41d (33:541d) + ld hl, $7 + add hl, bc + ld a, [hl] + cp $88 + jr nc, .asm_cd42f + add $2 + ld [hl], a + ld hl, $8 + add hl, bc + dec [hl] + ret +.asm_cd42f + call Functionce72c + ld a, $10 + call Functionce7bf + +; no known jump sources +Functioncd437: ; cd437 (33:5437) + ld hl, $f + add hl, bc + ld a, [hl] + ld d, $10 + push af + push de + call Functionce734 + ld hl, $a + add hl, bc + ld [hl], a + pop de + pop af + call Functionce732 + ld hl, $9 + add hl, bc + ld [hl], a + ld hl, $f + add hl, bc + inc [hl] + ret + +; no known jump sources +Functioncd458: ; cd458 (33:5458) + call Functioncc9bd + ret + +; no known jump sources +Functioncd45c: ; cd45c (33:545c) + ld hl, $a + add hl, bc + dec [hl] + ret + +; no known jump sources +Functioncd462: ; cd462 (33:5462) + ld hl, $a + add hl, bc + inc [hl] + +; no known jump sources +Functioncd467: ; cd467 (33:5467) + ld hl, $9 + add hl, bc + dec [hl] + ret + +; no known jump sources +Functioncd46d: ; cd46d (33:546d) + ld hl, $a + add hl, bc + inc [hl] + +; no known jump sources +Functioncd472: ; cd472 (33:5472) + ld hl, $9 + add hl, bc + inc [hl] + +; no known jump sources +Functioncd477: ; cd477 (33:5477) + ret + +; no known jump sources +Functioncd478: ; cd478 (33:5478) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cd47b: ; cd47b (33:547b) + dw Functioncd48d + dw Functioncd496 + dw Functioncd4ee + dw Functioncd53a + dw Functioncd545 + dw Functioncd545 + dw Functioncd545 + dw Functioncd545 + dw Functioncd549 + + +; no known jump sources +Functioncd48d: ; cd48d (33:548d) + call Functionce72c + ld hl, $f + add hl, bc + ld [hl], $40 + +; no known jump sources +Functioncd496: ; cd496 (33:5496) + ld hl, $f + add hl, bc + ld a, [hl] + cp $30 + jr nc, .asm_cd4bc + call Functionce72c + xor a + ld hl, $f + add hl, bc + ld [hli], a + ld [hl], a + ld a, $17 + call Functionce7bf + ld hl, $b + add hl, bc + bit 6, [hl] + ret z + ld hl, $d + add hl, bc + ld [hl], $5 + ret +.asm_cd4bc + ld hl, $b + add hl, bc + ld a, [hl] + and $3f + ld d, a + ld hl, $f + add hl, bc + ld a, [hl] + dec [hl] + call Functionce734 + ld hl, $a + add hl, bc + ld [hl], a + call Functioncd557 + ld hl, $10 + add hl, bc + ld a, [hl] + ld hl, $7 + add hl, bc + ld h, [hl] + ld l, a + add hl, de + ld e, l + ld d, h + ld hl, $7 + add hl, bc + ld [hl], d + ld hl, $10 + add hl, bc + ld [hl], e + ret + +; no known jump sources +Functioncd4ee: ; cd4ee (33:54ee) + ld hl, $a + add hl, bc + ld a, [hl] + cp $20 + jr nz, .asm_cd4fb + call Functioncc9bd + ret +.asm_cd4fb + ld hl, $f + add hl, bc + ld a, [hl] + ld d, $10 + call Functionce734 + ld hl, $9 + add hl, bc + ld [hl], a + ld hl, $b + add hl, bc + bit 6, [hl] + jr nz, .asm_cd519 + ld hl, $f + add hl, bc + inc [hl] + jr .asm_cd51e +.asm_cd519 + ld hl, $f + add hl, bc + dec [hl] +.asm_cd51e + ld de, $80 + ld hl, $10 + add hl, bc + ld a, [hl] + ld hl, $a + add hl, bc + ld h, [hl] + ld l, a + add hl, de + ld e, l + ld d, h + ld hl, $a + add hl, bc + ld [hl], d + ld hl, $10 + add hl, bc + ld [hl], e + ret + +; no known jump sources +Functioncd53a: ; cd53a (33:553a) + ld a, $16 + call Functionce7bf + ld hl, $1 + add hl, bc + res 5, [hl] + +; no known jump sources +Functioncd545: ; cd545 (33:5545) + call Functionce72c + ret + +; no known jump sources +Functioncd549: ; cd549 (33:5549) + ld hl, $7 + add hl, bc + ld a, [hl] + cp $c0 + ret nc + ld a, $8 + call Functionce70a + ret + +; known jump sources: cd4d2 (33:54d2), cd5cd (33:55cd) +Functioncd557: ; cd557 (33:5557) + ld hl, $b + add hl, bc + ld a, [hl] + bit 7, a + jr nz, .asm_cd574 + cp $20 + jr nc, .asm_cd570 + cp $18 + jr nc, .asm_cd56c + ld de, $200 + ret +.asm_cd56c + ld de, $180 + ret +.asm_cd570 + ld de, $100 + ret +.asm_cd574 + and $3f + cp $20 + jr nc, .asm_cd586 + cp $18 + jr nc, .asm_cd582 + ld de, $fe00 + ret +.asm_cd582 + ld de, $fe80 + ret +.asm_cd586 + ld de, rJOYP ; $ff00 + ret + +; no known jump sources +Functioncd58a: ; cd58a (33:558a) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cd58d: ; cd58d (33:558d) + dw Functioncd591 + dw Functioncd5aa + + +; no known jump sources +Functioncd591: ; cd591 (33:5591) + ld hl, $b + add hl, bc + ld a, [hl] + and $40 + rlca + rlca + add $19 + ld hl, $3 + add hl, bc + ld [hl], a + call Functionce72c + ld hl, $f + add hl, bc + ld [hl], $40 + +; no known jump sources +Functioncd5aa: ; cd5aa (33:55aa) + ld hl, $f + add hl, bc + ld a, [hl] + cp $30 + jr nc, .asm_cd5b7 + call Functioncc9bd + ret +.asm_cd5b7 + ld hl, $b + add hl, bc + ld a, [hl] + and $3f + ld d, a + ld hl, $f + add hl, bc + ld a, [hl] + dec [hl] + call Functionce734 + ld hl, $a + add hl, bc + ld [hl], a + call Functioncd557 + ld hl, $10 + add hl, bc + ld a, [hl] + ld hl, $7 + add hl, bc + ld h, [hl] + ld l, a + add hl, de + ld e, l + ld d, h + ld hl, $7 + add hl, bc + ld [hl], d + ld hl, $10 + add hl, bc + ld [hl], e + ret + +; no known jump sources +Functioncd5e9: ; cd5e9 (33:55e9) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cd5ec: ; cd5ec (33:55ec) + dw Functioncd5f2 + dw Functioncd5fb + dw Functioncd61b + + +; no known jump sources +Functioncd5f2: ; cd5f2 (33:55f2) + call Functionce72c + ld hl, $f + add hl, bc + ld [hl], $c + +; no known jump sources +Functioncd5fb: ; cd5fb (33:55fb) + ld hl, $f + add hl, bc + ld a, [hl] + and a + jr z, .asm_cd60d + dec [hl] + ld hl, $b + add hl, bc + ld a, [hl] + call Functionce70a + ret +.asm_cd60d + call Functionce72c + ld hl, $f + add hl, bc + ld [hl], $0 + ld a, $22 + call Functionce7bf + +; no known jump sources +Functioncd61b: ; cd61b (33:561b) + ld hl, $7 + add hl, bc + ld a, [hl] + cp $98 + jr nc, .asm_cd63f + ld hl, $f + add hl, bc + ld a, [hl] + ld hl, $7 + add hl, bc + ld h, [hl] + ld l, a + ld de, $60 + add hl, de + ld e, l + ld d, h + ld hl, $f + add hl, bc + ld [hl], e + ld hl, $7 + add hl, bc + ld [hl], d +.asm_cd63f + ld hl, $8 + add hl, bc + ld a, [hl] + cp $20 + ret c + ld hl, $b + add hl, bc + ld a, [hl] + and $f0 + ld e, a + ld d, $ff + ld hl, $10 + add hl, bc + ld a, [hl] + ld hl, $8 + add hl, bc + ld h, [hl] + ld l, a + add hl, de + ld e, l + ld d, h + ld hl, $10 + add hl, bc + ld [hl], e + ld hl, $8 + add hl, bc + ld [hl], d + ret + +; no known jump sources +Functioncd66a: ; cd66a (33:566a) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cd66d: ; cd66d (33:566d) + dw Functioncd677 + dw Functioncd687 + dw Functioncd6c5 + dw Functioncd6c6 + dw Functioncd6d6 + + +; no known jump sources +Functioncd677: ; cd677 (33:5677) + call Functionce72c + ld a, $42 + ld [hLCDStatCustom], a ; $ff00+$c6 + ld a, $58 + ld [$FF00+$c7], a + ld a, $5e + ld [$FF00+$c8], a + ret + +; no known jump sources +Functioncd687: ; cd687 (33:5687) + ld hl, $b + add hl, bc + ld e, [hl] + ld hl, $8 + add hl, bc + ld a, [hl] + cp e + jr nc, .asm_cd69b + call Functionce72c + xor a + ld [$FF00+$c7], a + ret +.asm_cd69b + dec a + ld [hl], a + ld hl, $f + add hl, bc + ld a, [hl] + ld d, $10 + call Functionce734 + ld hl, $a + add hl, bc + ld [hl], a + ld hl, $8 + add hl, bc + add [hl] + sub $10 + ret c + ld [$FF00+$c7], a + ld hl, $9 + add hl, bc + ld a, [hl] + inc a + and $7 + ld [hl], a + ld hl, $f + add hl, bc + inc [hl] + inc [hl] + +; no known jump sources +Functioncd6c5: ; cd6c5 (33:56c5) + ret + +; no known jump sources +Functioncd6c6: ; cd6c6 (33:56c6) + ld hl, $8 + add hl, bc + ld a, [hl] + cp $70 + jr c, asm_cd6da + xor a + ld [hLCDStatCustom], a ; $ff00+$c6 + ld [$FF00+$c7], a + ld [$FF00+$c8], a + +; no known jump sources +Functioncd6d6: ; cd6d6 (33:56d6) + call Functioncc9bd + ret +asm_cd6da: ; cd6da (33:56da) + inc a + inc a + ld [hl], a + sub $10 + ret c + ld [$FF00+$c7], a + ret + +; no known jump sources +Functioncd6e3: ; cd6e3 (33:56e3) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cd6e6: ; cd6e6 (33:56e6) + dw Functioncd6ea + dw Functioncd6f7 + + +; no known jump sources +Functioncd6ea: ; cd6ea (33:56ea) + call Functionce72c + ld hl, $b + add hl, bc + ld a, $24 + add [hl] + call Functionce7bf + +; no known jump sources +Functioncd6f7: ; cd6f7 (33:56f7) + ld hl, $7 + add hl, bc + ld a, [hl] + cp $b8 + jr c, .asm_cd704 + call Functioncc9bd + ret +.asm_cd704 + ld a, $2 + call Functionce70a + ld hl, $f + add hl, bc + ld a, [hl] + dec [hl] + ld d, $8 + call Functionce734 + ld hl, $a + add hl, bc + ld [hl], a + ret + +; no known jump sources +Functioncd71a: ; cd71a (33:571a) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cd71d: ; cd71d (33:571d) + dw Functioncd725 + dw Functioncd728 + dw Functioncd763 + dw Functioncd776 + + +; no known jump sources +Functioncd725: ; cd725 (33:5725) + call Functionce72c + +; no known jump sources +Functioncd728: ; cd728 (33:5728) + ld hl, $8 + add hl, bc + ld a, [hl] + cp $30 + jr c, .asm_cd747 + ld a, $2 + call Functionce70a + ld hl, $f + add hl, bc + ld a, [hl] + dec [hl] + ld d, $8 + call Functionce734 + ld hl, $a + add hl, bc + ld [hl], a + ret +.asm_cd747 + call Functionce72c + ld a, $28 + call Functionce7bf + ld hl, $a + add hl, bc + ld [hl], $0 + ld hl, $8 + add hl, bc + ld [hl], $30 + ld hl, $1 + add hl, bc + ld a, [hl] + and $1 + ld [hl], a + +; no known jump sources +Functioncd763: ; cd763 (33:5763) + ld hl, $a + add hl, bc + ld a, [hl] + cp $18 + jr nc, .asm_cd76e + inc [hl] + ret +.asm_cd76e + call Functionce72c + ld a, $29 + call Functionce7bf + +; no known jump sources +Functioncd776: ; cd776 (33:5776) + ret + +; no known jump sources +Functioncd777: ; cd777 (33:5777) + ld hl, $a + add hl, bc + ld a, [hl] + cp $38 + jr c, .asm_cd784 + call Functioncc9bd + ret +.asm_cd784 + ld a, [hl] + ld hl, $f + add hl, bc + ld l, [hl] + ld h, a + ld de, $80 + add hl, de + ld e, l + ld d, h + ld hl, $f + add hl, bc + ld [hl], e + ld hl, $a + add hl, bc + ld [hl], d + ld hl, $9 + add hl, bc + ld a, [hl] + xor $10 + ld [hl], a + ret + +; no known jump sources +Functioncd7a4: ; cd7a4 (33:57a4) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cd7a7: ; cd7a7 (33:57a7) + dw Functioncd7ab + dw Functioncd7d2 + + +; no known jump sources +Functioncd7ab: ; cd7ab (33:57ab) + call Functionce72c + ld hl, $b + add hl, bc + ld a, [hl] + and $f0 + ld hl, $10 + add hl, bc + ld [hl], a + ld hl, $b + add hl, bc + ld a, [hl] + and $f + sla a + sla a + sla a + ld hl, $f + add hl, bc + ld [hl], a + ld hl, $b + add hl, bc + ld [hl], $1 + +; no known jump sources +Functioncd7d2: ; cd7d2 (33:57d2) + ld hl, $10 + add hl, bc + ld a, [hl] + and a + jr nz, .asm_cd7de + call Functioncc9bd + ret +.asm_cd7de + ld hl, $f + add hl, bc + ld a, [hl] + inc [hl] + ld hl, $10 + add hl, bc + ld d, [hl] + push af + push de + call Functionce734 + ld hl, $a + add hl, bc + ld [hl], a + pop de + pop af + call Functionce732 + ld hl, $9 + add hl, bc + ld [hl], a + ld hl, $b + add hl, bc + ld a, [hl] + xor $1 + ld [hl], a + ret z + ld hl, $10 + add hl, bc + dec [hl] + ret + +; no known jump sources +Functioncd80c: ; cd80c (33:580c) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cd80f: ; cd80f (33:580f) + dw Functioncd81f + dw Functioncd817 + dw Functioncd81f + dw Functioncd820 + + +; no known jump sources +Functioncd817: ; cd817 (33:5817) + call Functionce72c + ld a, $35 + call Functionce7bf + +; no known jump sources +Functioncd81f: ; cd81f (33:581f) + ret + +; no known jump sources +Functioncd820: ; cd820 (33:5820) + call Functioncc9bd + ret + +; no known jump sources +Functioncd824: ; cd824 (33:5824) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cd827: ; cd827 (33:5827) + dw Functioncd835 + dw Functioncd860 + dw Functioncd88f + dw Functioncd88f + dw Functioncd88f + dw Functioncd88f + dw Functioncd893 + + +; no known jump sources +Functioncd835: ; cd835 (33:5835) + call Functionce72c + ld hl, $3 + add hl, bc + ld a, [hl] + ld hl, $10 + add hl, bc + ld [hl], a + ld hl, $b + add hl, bc + bit 7, [hl] + jr nz, .asm_cd852 + ld hl, $f + add hl, bc + ld [hl], $10 + jr .asm_cd858 +.asm_cd852 + ld hl, $f + add hl, bc + ld [hl], $30 +.asm_cd858 + ld hl, $b + add hl, bc + ld a, [hl] + and $7f + ld [hl], a + +; no known jump sources +Functioncd860: ; cd860 (33:5860) + ld hl, $f + add hl, bc + ld a, [hl] + ld hl, $b + add hl, bc + ld d, [hl] + call Functionce734 + ld hl, $9 + add hl, bc + ld [hl], a + bit 7, a + jr nz, .asm_cd87e + ld hl, $10 + add hl, bc + ld a, [hl] + inc a + jr .asm_cd883 +.asm_cd87e + ld hl, $10 + add hl, bc + ld a, [hl] +.asm_cd883 + call Functionce7bf + ld hl, $f + add hl, bc + inc [hl] + ld a, [hl] + and $1f + ret nz + +; no known jump sources +Functioncd88f: ; cd88f (33:588f) + call Functionce72c + ret + +; no known jump sources +Functioncd893: ; cd893 (33:5893) + ld hl, $e + add hl, bc + ld [hl], $1 + ret + +; no known jump sources +Functioncd89a: ; cd89a (33:589a) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cd89d: ; cd89d (33:589d) + dw Functioncd8ab + dw Functioncd8cc + dw Functioncd8f5 + dw Functioncd8f5 + dw Functioncd8f5 + dw Functioncd8f5 + dw Functioncd8f9 + + +; no known jump sources +Functioncd8ab: ; cd8ab (33:58ab) + call Functionce72c + ld hl, $b + add hl, bc + bit 7, [hl] + jr nz, .asm_cd8be + ld hl, $f + add hl, bc + ld [hl], $10 + jr .asm_cd8c4 +.asm_cd8be + ld hl, $f + add hl, bc + ld [hl], $30 +.asm_cd8c4 + ld hl, $b + add hl, bc + ld a, [hl] + and $7f + ld [hl], a + +; no known jump sources +Functioncd8cc: ; cd8cc (33:58cc) + ld hl, $f + add hl, bc + ld a, [hl] + ld hl, $b + add hl, bc + ld d, [hl] + call Functionce734 + ld hl, $a + add hl, bc + ld [hl], a + bit 7, a + jr nz, .asm_cd8e6 + ld a, $3d + jr .asm_cd8e8 +.asm_cd8e6 + ld a, $3c +.asm_cd8e8 + call Functionce7bf + ld hl, $f + add hl, bc + inc [hl] + inc [hl] + ld a, [hl] + and $1f + ret nz + +; no known jump sources +Functioncd8f5: ; cd8f5 (33:58f5) + call Functionce72c + ret + +; no known jump sources +Functioncd8f9: ; cd8f9 (33:58f9) + ld hl, $e + add hl, bc + ld [hl], $1 + ret + +; no known jump sources +Functioncd900: ; cd900 (33:5900) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cd903: ; cd903 (33:5903) + dw Functioncd907 + dw Functioncd913 + + +; no known jump sources +Functioncd907: ; cd907 (33:5907) + call Functionce72c + ld hl, $f + add hl, bc + ld [hl], $28 + inc hl + ld [hl], $0 + +; no known jump sources +Functioncd913: ; cd913 (33:5913) + ld hl, $b + add hl, bc + ld a, [hl] + ld hl, $f + add hl, bc + ld d, [hl] + push af + push de + call Functionce734 + ld hl, $a + add hl, bc + ld [hl], a + pop de + pop af + call Functionce732 + ld hl, $9 + add hl, bc + ld [hl], a + ld hl, $f + add hl, bc + ld a, [hl] + and a + jr z, .asm_cd950 + ld d, a + ld hl, $10 + add hl, bc + ld e, [hl] + ld hl, hPushOAM ; $ff80 + add hl, de + ld e, l + ld d, h + ld hl, $10 + add hl, bc + ld [hl], e + ld hl, $f + add hl, bc + ld [hl], d + ret +.asm_cd950 + call Functioncc9bd + ret + +; no known jump sources +Functioncd954: ; cd954 (33:5954) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cd957: ; cd957 (33:5957) + dw Functioncd961 + dw Functioncd96a + dw Functioncd96e + dw Functioncd96a + dw Functioncd97b + + +; no known jump sources +Functioncd961: ; cd961 (33:5961) + call Functionce72c + ld hl, $b + add hl, bc + ld [hl], $0 + +; no known jump sources +Functioncd96a: ; cd96a (33:596a) + call Functioncd99a + ret + +; no known jump sources +Functioncd96e: ; cd96e (33:596e) + ld hl, $7 + add hl, bc + ld a, [hl] + cp $88 + jr c, asm_cd988 + call Functionce72c + ret + +; no known jump sources +Functioncd97b: ; cd97b (33:597b) + ld hl, $7 + add hl, bc + ld a, [hl] + cp $b8 + jr c, asm_cd988 + call Functioncc9bd + ret + +; known jump sources: cd975 (33:5975), cd982 (33:5982) +asm_cd988: ; cd988 (33:5988) + call Functioncd99a + ld hl, $7 + add hl, bc + inc [hl] + ld a, [hl] + and $1 + ret nz + ld hl, $8 + add hl, bc + dec [hl] + ret + +; known jump sources: cd96a (33:596a), cd988 (33:5988) +Functioncd99a: ; cd99a (33:599a) + call Functioncd9f4 + ld hl, $f + add hl, bc + ld a, [hl] + push af + push de + call Functionce734 + sra a + sra a + sra a + sra a + ld hl, $b + add hl, bc + add [hl] + ld hl, $a + add hl, bc + ld [hl], a + pop de + pop af + call Functionce732 + ld hl, $9 + add hl, bc + ld [hl], a + ld hl, $f + add hl, bc + ld a, [hl] + sub $8 + ld [hl], a + ld hl, $b + add hl, bc + ld a, [hl] + and a + jr z, .asm_cd9d7 + cp $c2 + jr c, .asm_cd9e2 +.asm_cd9d7 + dec a + ld [hl], a + and $7 + ret nz + ld hl, $10 + add hl, bc + inc [hl] + ret +.asm_cd9e2 + xor a + ld hl, $10 + add hl, bc + ld [hl], a + ld hl, $b + add hl, bc + ld [hl], a + ld hl, $9 + add hl, bc + ld [hli], a + ld [hl], a + ret + +; known jump sources: cd99a (33:599a) +Functioncd9f4: ; cd9f4 (33:59f4) + ld hl, $10 + add hl, bc + ld e, [hl] + ld d, $0 + ld hl, $5a01 + add hl, de + ld d, [hl] + ret +; cda01 (33:5a01) + +INCBIN "baserom.gbc",$cda01,$cda0a - $cda01 + +; no known jump sources +Functioncda0a: ; cda0a (33:5a0a) + ld hl, $7 + add hl, bc + ld a, [hl] + cp $30 + jr nc, .asm_cda17 + call Functioncc9bd + ret +.asm_cda17 + ld hl, $b + add hl, bc + ld a, [hl] + and $f + ld e, a + ld hl, $7 + add hl, bc + ld a, [hl] + sub e + ld [hl], a + srl e + ld hl, $8 + add hl, bc +.asm_cda2c + inc [hl] + dec e + jr nz, .asm_cda2c + ret + +; no known jump sources +Functioncda31: ; cda31 (33:5a31) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cda34: ; cda34 (33:5a34) + dw Functioncda4c + dw Functioncda3a + dw Functioncda4c + + +; no known jump sources +Functioncda3a: ; cda3a (33:5a3a) + ld hl, $3 + add hl, bc + ld a, [hl] + inc a + call Functionce7bf + call Functionce72c + ld hl, $f + add hl, bc + ld [hl], $8 + +; no known jump sources +Functioncda4c: ; cda4c (33:5a4c) + ret + +; no known jump sources +Functioncda4d: ; cda4d (33:5a4d) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cda50: ; cda50 (33:5a50) + dw Functioncda58 + dw Functioncda62 + dw Functioncda7a + dw Functioncda8c + + +; no known jump sources +Functioncda58: ; cda58 (33:5a58) + call Functionce72c + ld hl, $10 + add hl, bc + ld [hl], $40 + ret + +; no known jump sources +Functioncda62: ; cda62 (33:5a62) + ld hl, $10 + add hl, bc + ld a, [hl] + cp $20 + jr c, .asm_cda6f + call Functioncda8d + ret +.asm_cda6f + ld [hl], $40 + ld a, $57 + call Functionce7bf + call Functionce72c + ret + +; no known jump sources +Functioncda7a: ; cda7a (33:5a7a) + ld hl, $10 + add hl, bc + ld a, [hl] + and a + jr z, .asm_cda84 + dec [hl] + ret +.asm_cda84 + call Functionce72c + ld a, $58 + call Functionce7bf + +; no known jump sources +Functioncda8c: ; cda8c (33:5a8c) + ret + +; known jump sources: cda6b (33:5a6b), cdaf2 (33:5af2) +Functioncda8d: ; cda8d (33:5a8d) + dec [hl] + ld d, $20 + call Functionce734 + ld hl, $a + add hl, bc + ld [hl], a + ld hl, $2 + add hl, bc + ld a, [hl] + add $2 + ld [hl], a + ld hl, $f + add hl, bc + ld e, [hl] + ld hl, $7 + add hl, bc + ld d, [hl] + ld hl, $b + add hl, bc + ld h, [hl] + ld a, h + and $f + swap a + ld l, a + ld a, h + and $f0 + swap a + ld h, a + add hl, de + ld e, l + ld d, h + ld hl, $f + add hl, bc + ld [hl], e + ld hl, $7 + add hl, bc + ld [hl], d + ld hl, $10 + add hl, bc + ld a, [hl] + and $1 + ret nz + ld hl, $8 + add hl, bc + dec [hl] + ret + +; no known jump sources +Functioncdad6: ; cdad6 (33:5ad6) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cdad9: ; cdad9 (33:5ad9) + dw Functioncdadf + dw Functioncdae9 + dw Functioncdaf9 + + +; no known jump sources +Functioncdadf: ; cdadf (33:5adf) + call Functionce72c + ld hl, $10 + add hl, bc + ld [hl], $40 + ret + +; no known jump sources +Functioncdae9: ; cdae9 (33:5ae9) + ld hl, $10 + add hl, bc + ld a, [hl] + cp $20 + jr c, .asm_cdaf6 + call Functioncda8d + ret +.asm_cdaf6 + call Functionce72c + +; no known jump sources +Functioncdaf9: ; cdaf9 (33:5af9) + ret + +; no known jump sources +Functioncdafa: ; cdafa (33:5afa) + call Functioncd0e3 + ld hl, $f + add hl, bc + ld a, [hl] + add $f + ld [hl], a + ret + +; no known jump sources +Functioncdb06: ; cdb06 (33:5b06) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cdb09: ; cdb09 (33:5b09) + dw Functioncdb13 + dw Functioncdb14 + dw Functioncdb28 + dw Functioncdb50 + dw Functioncdb65 + + +; no known jump sources +Functioncdb13: ; cdb13 (33:5b13) + ret + +; no known jump sources +Functioncdb14: ; cdb14 (33:5b14) + ld hl, $8 + add hl, bc + ld a, [hl] + cp $30 + jr c, .asm_cdb24 + ld hl, $e + add hl, bc + ld [hl], $0 + ret +.asm_cdb24 + add $4 + ld [hl], a + ret + +; no known jump sources +Functioncdb28: ; cdb28 (33:5b28) + ld hl, $7 + add hl, bc + ld a, [hl] + cp $98 + ret nc + inc [hl] + inc [hl] + ld hl, $1 + add hl, bc + set 0, [hl] + ld hl, $2 + add hl, bc + ld [hl], $90 + ld hl, $d + add hl, bc + ld [hl], $0 + ld hl, $c + add hl, bc + ld [hl], $2 + ld hl, $8 + add hl, bc + dec [hl] + ret + +; no known jump sources +Functioncdb50: ; cdb50 (33:5b50) + call Functionce72c + ld hl, $f + add hl, bc + ld [hl], $2c + ld hl, $d + add hl, bc + ld [hl], $0 + ld hl, $c + add hl, bc + ld [hl], $80 + +; no known jump sources +Functioncdb65: ; cdb65 (33:5b65) + ld hl, $7 + add hl, bc + ld a, [hl] + cp $98 + ret nc + inc [hl] + inc [hl] + ld hl, $f + add hl, bc + ld a, [hl] + inc [hl] + ld d, $8 + call Functionce734 + ld hl, $a + add hl, bc + ld [hl], a + ret + +; no known jump sources +Functioncdb80: ; cdb80 (33:5b80) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cdb83: ; cdb83 (33:5b83) + dw Functioncdb9f + dw Functioncdbb3 + dw Functioncdbcf + dw Functioncdbeb + dw Functioncdc74 + dw Functioncdc1a + dw Functioncdbc1 + dw Functioncdc1e + dw Functioncdc27 + dw Functioncdc39 + dw Functioncdc74 + dw Functioncdc48 + dw Functioncdc57 + dw Functioncdc74 + + +; no known jump sources +Functioncdb9f: ; cdb9f (33:5b9f) + ld hl, $f + add hl, bc + ld [hl], $28 + inc hl + ld [hl], $10 + ld hl, $b + add hl, bc + ld a, [hl] + ld hl, $e + add hl, bc + ld [hl], a + ret + +; no known jump sources +Functioncdbb3: ; cdbb3 (33:5bb3) + ld hl, $7 + add hl, bc + ld a, [hl] + cp $40 + jr nc, .asm_cdbbd + inc [hl] +.asm_cdbbd + call Functioncdc75 + ret + +; no known jump sources +Functioncdbc1: ; cdbc1 (33:5bc1) + ld hl, $7 + add hl, bc + ld a, [hl] + cp $4b + jr nc, .asm_cdbcb + inc [hl] +.asm_cdbcb + call Functioncdc75 + ret + +; no known jump sources +Functioncdbcf: ; cdbcf (33:5bcf) + ld hl, $7 + add hl, bc + ld a, [hl] + cp $88 + jr nc, .asm_cdbe6 + and $f + jr nz, asm_cdbfa + ld hl, $10 + add hl, bc + ld [hl], $10 + call Functionce72c + ret +.asm_cdbe6 + call Functionce72c + inc [hl] + ret + +; no known jump sources +Functioncdbeb: ; cdbeb (33:5beb) + ld hl, $10 + add hl, bc + ld a, [hl] + and a + jr z, .asm_cdbf5 + dec [hl] + ret +.asm_cdbf5 + ld hl, $e + add hl, bc + dec [hl] +asm_cdbfa: ; cdbfa (33:5bfa) + ld hl, $7 + add hl, bc + inc [hl] + ld hl, $8 + add hl, bc + ld d, [hl] + ld hl, $f + add hl, bc + ld e, [hl] + ld hl, hPushOAM ; $ff80 + add hl, de + ld e, l + ld d, h + ld hl, $8 + add hl, bc + ld [hl], d + ld hl, $f + add hl, bc + ld [hl], e + ret + +; no known jump sources +Functioncdc1a: ; cdc1a (33:5c1a) + call Functioncc9bd + ret + +; no known jump sources +Functioncdc1e: ; cdc1e (33:5c1e) + ld a, $4e + call Functionce7bf + call Functionce72c + ret + +; no known jump sources +Functioncdc27: ; cdc27 (33:5c27) + ld hl, $f + add hl, bc + ld a, [hl] + inc [hl] + inc [hl] + ld d, $2 + call Functionce734 + ld hl, $9 + add hl, bc + ld [hl], a + ret + +; no known jump sources +Functioncdc39: ; cdc39 (33:5c39) + ld a, $50 + call Functionce7bf + ld hl, $a + add hl, bc + ld [hl], $4 + call Functionce72c + ret + +; no known jump sources +Functioncdc48: ; cdc48 (33:5c48) + ld a, $4f + call Functionce7bf + call Functionce72c + ld hl, $f + add hl, bc + ld [hl], $40 + ret + +; no known jump sources +Functioncdc57: ; cdc57 (33:5c57) + ld hl, $f + add hl, bc + ld a, [hl] + ld d, $20 + call Functionce734 + ld hl, $a + add hl, bc + ld [hl], a + ld hl, $f + add hl, bc + ld a, [hl] + cp $30 + jr c, .asm_cdc71 + dec [hl] + ret +.asm_cdc71 + call Functionce72c + +; no known jump sources +Functioncdc74: ; cdc74 (33:5c74) + ret + +; known jump sources: cdbbd (33:5bbd), cdbcb (33:5bcb) +Functioncdc75: ; cdc75 (33:5c75) + ld hl, $f + add hl, bc + ld a, [hli] + ld d, [hl] + call Functionce734 + ld hl, $a + add hl, bc + ld [hl], a + ld hl, $f + add hl, bc + inc [hl] + ld a, [hl] + and $3f + ret nz + ld hl, $f + add hl, bc + ld [hl], $20 + ld hl, $10 + add hl, bc + ld a, [hl] + sub $8 + ld [hl], a + ret nz + xor a + ld hl, $f + add hl, bc + ld [hli], a + ld [hl], a + call Functionce72c + ret + +; no known jump sources +Functioncdca6: ; cdca6 (33:5ca6) + ld hl, $a + add hl, bc + ld a, [hl] + and a + jr z, .asm_cdcb6 + cp $d8 + jr nc, .asm_cdcb6 + call Functioncc9bd + ret +.asm_cdcb6 + ld hl, $b + add hl, bc + ld d, [hl] + ld hl, $a + add hl, bc + ld a, [hl] + sub d + ld [hl], a + ret + +; no known jump sources +Functioncdcc3: ; cdcc3 (33:5cc3) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cdcc6: ; cdcc6 (33:5cc6) + dw Functioncdcca + dw Functioncdced + + +; no known jump sources +Functioncdcca: ; cdcca (33:5cca) + ld a, [hBattleTurn] ; $ff00+$e4 + and a + jr z, .asm_cdcd9 + ld hl, $b + add hl, bc + ld a, [hl] + xor $ff + add $3 + ld [hl], a +.asm_cdcd9 + call Functionce72c + ld hl, $f + add hl, bc + ld [hl], $8 + ld hl, $b + add hl, bc + ld a, $59 + add [hl] + call Functionce7bf + ret + +; no known jump sources +Functioncdced: ; cdced (33:5ced) + ld hl, $f + add hl, bc + ld a, [hl] + and a + jr z, .asm_cdcfa + dec [hl] + call Functioncdcfe + ret +.asm_cdcfa + call Functioncc9bd + ret + +; known jump sources: cdcf6 (33:5cf6) +Functioncdcfe: ; cdcfe (33:5cfe) + ld hl, $10 + add hl, bc + ld a, [hl] + inc [hl] + inc [hl] + ld d, $10 + call Functionce734 + ld d, a + ld hl, $9 + add hl, bc + ld [hl], a + ld hl, $b + add hl, bc + ld a, [hl] + and a + jr z, .asm_cdd20 + dec a + ret z + ld hl, $a + add hl, bc + ld [hl], d + ret +.asm_cdd20 + ld hl, $a + add hl, bc + ld a, d + xor $ff + inc a + ld [hl], a + ret + +; no known jump sources +Functioncdd2a: ; cdd2a (33:5d2a) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cdd2d: ; cdd2d (33:5d2d) + dw Functioncdd31 + dw Functioncdd4f + + +; no known jump sources +Functioncdd31: ; cdd31 (33:5d31) + call Functionce72c + ld hl, $b + add hl, bc + ld a, [hl] + and $3f + ld hl, $10 + add hl, bc + ld [hl], a + ld hl, $b + add hl, bc + ld a, [hl] + and $80 + rlca + ld [hl], a + add $5d + call Functionce7bf + ret + +; no known jump sources +Functioncdd4f: ; cdd4f (33:5d4f) + ld hl, $b + add hl, bc + ld a, [hl] + swap a + ld d, a + ld hl, $10 + add hl, bc + ld a, [hl] + inc [hl] + push af + push de + call Functionce734 + ld hl, $a + add hl, bc + ld [hl], a + pop de + pop af + call Functionce732 + ld hl, $9 + add hl, bc + ld [hl], a + ld hl, $7 + add hl, bc + ld a, [hl] + cp $80 + ret nc + ld hl, $10 + add hl, bc + ld a, [hl] + and $3 + jr nz, .asm_cdd87 + ld hl, $8 + add hl, bc + dec [hl] +.asm_cdd87 + and $1 + ret nz + ld hl, $7 + add hl, bc + inc [hl] + ret + +; no known jump sources +Functioncdd90: ; cdd90 (33:5d90) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cdd93: ; cdd93 (33:5d93) + dw Functioncdd97 + dw Functioncddbc + + +; no known jump sources +Functioncdd97: ; cdd97 (33:5d97) + call Functionce72c + ld hl, $3 + add hl, bc + ld a, [hl] + ld hl, $f + add hl, bc + ld [hl], a + ld hl, $b + add hl, bc + ld a, [hl] + and $80 + rlca + ld hl, $f + add hl, bc + add [hl] + call Functionce7bf + ld hl, $b + add hl, bc + ld a, [hl] + and $7f + ld [hl], a + +; no known jump sources +Functioncddbc: ; cddbc (33:5dbc) + ld hl, $b + add hl, bc + ld a, [hl] + ld d, $10 + push af + push de + call Functionce734 + sra a + sra a + ld hl, $a + add hl, bc + ld [hl], a + pop de + pop af + call Functionce732 + ld hl, $9 + add hl, bc + ld [hl], a + ld hl, $b + add hl, bc + ld a, [hl] + inc [hl] + and $3f + jr z, .asm_cddf0 + and $1f + ret nz + ld hl, $f + add hl, bc + ld a, [hl] + inc a + jr .asm_cddf5 +.asm_cddf0 + ld hl, $f + add hl, bc + ld a, [hl] +.asm_cddf5 + call Functionce7bf + ret + +; no known jump sources +Functioncddf9: ; cddf9 (33:5df9) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cddfc: ; cddfc (33:5dfc) + dw Functioncde02 + dw Functioncde20 + dw Functioncde21 + + +; no known jump sources +Functioncde02: ; cde02 (33:5e02) + call Functionce72c + ld hl, $b + add hl, bc + ld a, [hl] + add $63 + call Functionce7bf + ld hl, $b + add hl, bc + ld e, [hl] + ld d, $0 + ld hl, $5e25 + add hl, de + ld a, [hl] + ld hl, $a + add hl, bc + ld [hl], a + +; no known jump sources +Functioncde20: ; cde20 (33:5e20) + ret + +; no known jump sources +Functioncde21: ; cde21 (33:5e21) + call Functioncc9bd + ret +; cde25 (33:5e25) + +INCBIN "baserom.gbc",$cde25,$cde28 - $cde25 + +; no known jump sources +Functioncde28: ; cde28 (33:5e28) + ld hl, $f + add hl, bc + ld a, [hl] + inc [hl] + inc [hl] + ld d, $4 + call Functionce734 + ld hl, $9 + add hl, bc + ld [hl], a + ld hl, $a + add hl, bc + ld d, [hl] + ld hl, $10 + add hl, bc + ld e, [hl] + ld hl, $ffa0 + add hl, de + ld e, l + ld d, h + ld hl, $a + add hl, bc + ld [hl], d + ld hl, $10 + add hl, bc + ld [hl], e + ret + +; no known jump sources +Functioncde54: ; cde54 (33:5e54) + ld hl, $f + add hl, bc + ld a, [hl] + dec [hl] + dec [hl] + ld d, $10 + call Functionce734 + ld hl, $a + add hl, bc + ld [hl], a + ld hl, $7 + add hl, bc + inc [hl] + ret + +; no known jump sources +Functioncde6b: ; cde6b (33:5e6b) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cde6e: ; cde6e (33:5e6e) + dw Functioncde72 + dw Functioncde88 + + +; no known jump sources +Functioncde72: ; cde72 (33:5e72) + call Functionce72c + ld hl, $b + add hl, bc + ld a, [hl] + and a + jr nz, .asm_cde83 + ld hl, $1 + add hl, bc + set 6, [hl] +.asm_cde83 + add $6a + call Functionce7bf + +; no known jump sources +Functioncde88: ; cde88 (33:5e88) + ret + +; no known jump sources +Functioncde89: ; cde89 (33:5e89) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cde8c: ; cde8c (33:5e8c) + dw Functioncde90 + dw Functioncdebf + + +; no known jump sources +Functioncde90: ; cde90 (33:5e90) + call Functionce72c + ld hl, $f + add hl, bc + ld [hl], $0 + ld hl, $b + add hl, bc + ld e, [hl] + ld a, e + and $70 + swap a + ld [hl], a + ld hl, $9 + add hl, bc + ld a, e + and $80 + jr nz, .asm_cdeb2 + ld a, e + and $f + ld [hl], a + ret +.asm_cdeb2 + ld a, e + and $f + xor $ff + inc a + ld [hl], a + ld a, $6e + call Functionce7bf + ret + +; no known jump sources +Functioncdebf: ; cdebf (33:5ebf) + ld hl, $f + add hl, bc + ld a, [hl] + and a + jr z, .asm_cdec9 + dec [hl] + ret +.asm_cdec9 + ld hl, $b + add hl, bc + ld a, [hl] + ld hl, $f + add hl, bc + ld [hl], a + ld hl, $9 + add hl, bc + ld a, [hl] + xor $ff + inc a + ld [hl], a + ret + +; no known jump sources +Functioncdedd: ; cdedd (33:5edd) + ld hl, $f + add hl, bc + ld a, [hl] + ld d, $18 + push af + push de + call Functionce734 + sra a + sra a + sra a + ld hl, $10 + add hl, bc + add [hl] + ld hl, $a + add hl, bc + ld [hl], a + pop de + pop af + call Functionce732 + ld hl, $9 + add hl, bc + ld [hl], a + ld hl, $f + add hl, bc + inc [hl] + ld a, [hl] + and $7 + ret nz + ld hl, $10 + add hl, bc + ld a, [hl] + cp $28 + jr nc, .asm_cdf17 + inc [hl] + ret +.asm_cdf17 + call Functioncc9bd + ret + +; no known jump sources +Functioncdf1b: ; cdf1b (33:5f1b) + ld hl, $f + add hl, bc + ld a, [hl] + ld d, $18 + push af + push de + call Functionce734 + sra a + sra a + sra a + ld hl, $10 + add hl, bc + add [hl] + ld hl, $a + add hl, bc + ld [hl], a + pop de + pop af + call Functionce732 + ld hl, $9 + add hl, bc + ld [hl], a + ld hl, $f + add hl, bc + inc [hl] + ld a, [hl] + and $3 + ret nz + ld hl, $10 + add hl, bc + ld a, [hl] + cp $28 + jr nc, .asm_cdf55 + inc [hl] + ret +.asm_cdf55 + call Functioncc9bd + ret + +; no known jump sources +Functioncdf59: ; cdf59 (33:5f59) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_cdf5c: ; cdf5c (33:5f5c) + dw Functioncdf60 + dw Functioncdedd + + +; no known jump sources +Functioncdf60: ; cdf60 (33:5f60) + ld hl, $7 + add hl, bc + ld a, [hl] + cp $84 + jr nc, .asm_cdf88 + inc [hl] + ld hl, $f + add hl, bc + ld a, [hl] + inc [hl] + ld d, $18 + call Functionce732 + ld hl, $9 + add hl, bc + ld [hl], a + ld hl, $7 + add hl, bc + ld a, [hl] + and $1 + ret nz + ld hl, $8 + add hl, bc + dec [hl] + ret +.asm_cdf88 + call Functionce72c + ret + +; no known jump sources +Functioncdf8c: ; cdf8c (33:5f8c) + ld hl, $b + add hl, bc + ld a, [hl] + ld d, $18 + push af + push de + call Functionce734 + sra a + sra a + sra a + ld hl, $10 + add hl, bc + add [hl] + ld hl, $a + add hl, bc + ld [hl], a + pop de + pop af + call Functionce732 + ld hl, $9 + add hl, bc + ld [hl], a + ld hl, $b + add hl, bc + inc [hl] + inc [hl] + ld a, [hl] + and $7 + ret nz + ld hl, $10 + add hl, bc + ld a, [hl] + cp $e8 + jr z, .asm_cdfc7 + dec [hl] + ret +.asm_cdfc7 + call Functioncc9bd + ret + +; no known jump sources +Functioncdfcb: ; cdfcb (33:5fcb) + ld hl, $b + add hl, bc + ld a, [hl] + ld d, $18 + push af + push de + call Functionce734 + sra a + sra a + sra a + ld hl, $10 + add hl, bc + add [hl] + ld hl, $a + add hl, bc + ld [hl], a + pop de + pop af + call Functionce732 + ld hl, $9 + add hl, bc + ld [hl], a + ld hl, $b + add hl, bc + inc [hl] + inc [hl] + ld a, [hl] + and $3 + ret nz + ld hl, $10 + add hl, bc + ld a, [hl] + cp $d0 + jr z, .asm_ce007 + dec [hl] + dec [hl] + ret +.asm_ce007 + call Functioncc9bd + ret + +; no known jump sources +Functionce00b: ; ce00b (33:600b) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_ce00e: ; ce00e (33:600e) + dw Functionce014 + dw Functionce023 + dw Functionce05f + + +; no known jump sources +Functionce014: ; ce014 (33:6014) + call Functionce72c + ld hl, $f + add hl, bc + ld [hl], $34 + ld hl, $10 + add hl, bc + ld [hl], $10 + +; no known jump sources +Functionce023: ; ce023 (33:6023) + ld hl, $7 + add hl, bc + ld a, [hl] + cp $6c + jr c, .asm_ce02d + ret +.asm_ce02d + ld a, $2 + call Functionce70a + ld hl, $f + add hl, bc + ld a, [hl] + ld hl, $10 + add hl, bc + ld d, [hl] + call Functionce734 + bit 7, a + jr nz, .asm_ce046 + xor $ff + inc a +.asm_ce046 + ld hl, $a + add hl, bc + ld [hl], a + ld hl, $f + add hl, bc + ld a, [hl] + sub $4 + ld [hl], a + and $1f + cp $20 + ret nz + ld hl, $10 + add hl, bc + srl [hl] + ret + +; no known jump sources +Functionce05f: ; ce05f (33:605f) + call Functioncc9bd + ret + +; no known jump sources +Functionce063: ; ce063 (33:6063) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_ce066: ; ce066 (33:6066) + dw Functionce06e + dw Functionce083 + dw Functionce091 + dw Functionce09e + + +; no known jump sources +Functionce06e: ; ce06e (33:606e) + ld hl, $b + add hl, bc + ld a, [hl] + ld hl, $e + add hl, bc + ld [hl], a + ld hl, $8 + add hl, bc + ld a, [hl] + ld hl, $f + add hl, bc + ld [hl], a + ret + +; no known jump sources +Functionce083: ; ce083 (33:6083) + ld hl, $7 + add hl, bc + ld a, [hl] + cp $58 + ret nc + ld a, $2 + call Functionce70a + ret + +; no known jump sources +Functionce091: ; ce091 (33:6091) + ld hl, $10 + add hl, bc + ld a, [hl] + cp $20 + jr c, Functionce09e + call Functioncc9bd + ret + +; known jump sources: ce098 (33:6098) +Functionce09e: ; ce09e (33:609e) + ld hl, $10 + add hl, bc + ld a, [hl] + ld d, $8 + call Functionce734 + ld hl, $9 + add hl, bc + ld [hl], a + sra a + xor $ff + inc a + ld hl, $f + add hl, bc + add [hl] + ld hl, $8 + add hl, bc + ld [hl], a + ld hl, $10 + add hl, bc + ld a, [hl] + add $8 + ld [hl], a + ret + +; no known jump sources +Functionce0c5: ; ce0c5 (33:60c5) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_ce0c8: ; ce0c8 (33:60c8) + dw Functionce0ce + dw Functionce0f8 + dw Functionce0dd + + +; no known jump sources +Functionce0ce: ; ce0ce (33:60ce) + ld hl, $b + add hl, bc + ld a, [hl] + and $f0 + swap a + ld hl, $e + add hl, bc + ld [hl], a + ret + +; no known jump sources +Functionce0dd: ; ce0dd (33:60dd) + ld hl, $f + add hl, bc + ld a, [hl] + ld d, $10 + call Functionce734 + ld hl, $a + add hl, bc + bit 7, a + jr z, .asm_ce0f0 + ld [hl], a +.asm_ce0f0 + ld hl, $f + add hl, bc + ld a, [hl] + sub $4 + ld [hl], a + +; no known jump sources +Functionce0f8: ; ce0f8 (33:60f8) + ld hl, $7 + add hl, bc + ld a, [hl] + cp $84 + jr c, .asm_ce105 + call Functioncc9bd + ret +.asm_ce105 + ld hl, $b + add hl, bc + ld a, [hl] + call Functionce70a + ret + +; no known jump sources +Functionce10e: ; ce10e (33:610e) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_ce111: ; ce111 (33:6111) + dw Functionce115 + dw Functionce12a + + +; no known jump sources +Functionce115: ; ce115 (33:6115) + call Functionce72c + ld hl, $f + add hl, bc + ld [hl], $28 + ld hl, $8 + add hl, bc + ld a, [hl] + sub $28 + ld hl, $10 + add hl, bc + ld [hl], a + +; no known jump sources +Functionce12a: ; ce12a (33:612a) + ld hl, $f + add hl, bc + ld a, [hli] + ld d, [hl] + call Functionce734 + ld hl, $a + add hl, bc + ld [hl], a + ld hl, $f + add hl, bc + ld a, [hl] + ld hl, $b + add hl, bc + and [hl] + jr nz, .asm_ce149 + ld hl, $7 + add hl, bc + dec [hl] +.asm_ce149 + ld hl, $f + add hl, bc + inc [hl] + ld a, [hl] + and $3f + ret nz + ld hl, $f + add hl, bc + ld [hl], $20 + inc hl + srl [hl] + ret + +; no known jump sources +Functionce15c: ; ce15c (33:615c) + ld hl, $b + add hl, bc + ld a, [hl] + ld hl, $f + add hl, bc + ld d, [hl] + push af + push de + call Functionce734 + ld hl, $a + add hl, bc + ld [hl], a + pop de + pop af + call Functionce732 + ld hl, $9 + add hl, bc + ld [hl], a + ld hl, $b + add hl, bc + inc [hl] + ld a, [hl] + and $1 + jr nz, .asm_ce189 + ld hl, $7 + add hl, bc + dec [hl] +.asm_ce189 + ld hl, $b + add hl, bc + ld a, [hl] + and $3 + jr nz, .asm_ce197 + ld hl, $8 + add hl, bc + inc [hl] +.asm_ce197 + ld hl, $7 + add hl, bc + ld a, [hl] + ld hl, $f + add hl, bc + cp $5a + jr nc, .asm_ce1aa + ld a, [hl] + and a + jr z, .asm_ce1ac + dec [hl] + ret +.asm_ce1aa + inc [hl] + ret +.asm_ce1ac + call Functioncc9bd + ret + +; no known jump sources +Functionce1b0: ; ce1b0 (33:61b0) + ld hl, $b + add hl, bc + ld a, [hl] + inc [hl] + ld hl, $f + add hl, bc + ld d, [hl] + push af + push de + call Functionce734 + ld hl, $a + add hl, bc + ld [hl], a + pop de + pop af + call Functionce732 + ld hl, $9 + add hl, bc + ld [hl], a + ld hl, $10 + add hl, bc + ld a, [hl] + inc [hl] + ld hl, $f + add hl, bc + cp $40 + jr nc, .asm_ce1df + inc [hl] + ret +.asm_ce1df + ld a, [hl] + dec [hl] + and a + ret nz + call Functioncc9bd + ret + +; no known jump sources +Functionce1e7: ; ce1e7 (33:61e7) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_ce1ea: ; ce1ea (33:61ea) + dw Functionce1ee + dw Functionce1fb + + +; no known jump sources +Functionce1ee: ; ce1ee (33:61ee) + call Functionce72c + ld hl, $8 + add hl, bc + ld a, [hl] + ld hl, $10 + add hl, bc + ld [hl], a + +; no known jump sources +Functionce1fb: ; ce1fb (33:61fb) + ld hl, $b + add hl, bc + ld a, [hl] + ld d, $30 + call Functionce734 + ld hl, $10 + add hl, bc + add [hl] + ld hl, $8 + add hl, bc + ld [hl], a + ld hl, $b + add hl, bc + ld a, [hl] + add $8 + ld d, $30 + call Functionce732 + ld hl, $9 + add hl, bc + ld [hl], a + ld hl, $b + add hl, bc + inc [hl] + ret + +; no known jump sources +Functionce226: ; ce226 (33:6226) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_ce229: ; ce229 (33:6229) + dw Functionce22d + dw Functionce254 + + +; no known jump sources +Functionce22d: ; ce22d (33:622d) + call Functionce72c + ld hl, $b + add hl, bc + ld a, [hl] + ld d, $10 + call Functionce734 + ld hl, $a + add hl, bc + ld [hl], a + ld hl, $b + add hl, bc + ld a, [hl] + ld d, $10 + call Functionce732 + ld hl, $9 + add hl, bc + ld [hl], a + ld hl, $10 + add hl, bc + ld [hl], $f + +; no known jump sources +Functionce254: ; ce254 (33:6254) + ret + +; no known jump sources +Functionce255: ; ce255 (33:6255) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_ce258: ; ce258 (33:6258) + dw Functionce260 + dw Functionce274 + dw Functionce278 + dw Functionce289 + + +; no known jump sources +Functionce260: ; ce260 (33:6260) + call Functionce72c + ld a, [hBattleTurn] ; $ff00+$e4 + and a + jr nz, .asm_ce26c + ld a, $f0 + jr .asm_ce26e +.asm_ce26c + ld a, $cc +.asm_ce26e + ld hl, $f + add hl, bc + ld [hl], a + ret + +; no known jump sources +Functionce274: ; ce274 (33:6274) + call Functionce29f + ret + +; no known jump sources +Functionce278: ; ce278 (33:6278) + call Functionce29f + ld hl, $7 + add hl, bc + ld a, [hl] + cp $84 + ret nc + ld a, $4 + call Functionce70a + ret + +; no known jump sources +Functionce289: ; ce289 (33:6289) + call Functionce29f + ld hl, $7 + add hl, bc + ld a, [hl] + cp $d0 + jr nc, .asm_ce29b + ld a, $4 + call Functionce70a + ret +.asm_ce29b + call Functioncc9bd + ret + +; known jump sources: ce274 (33:6274), ce278 (33:6278), ce289 (33:6289) +Functionce29f: ; ce29f (33:629f) + ld hl, $10 + add hl, bc + ld a, [hl] + and $7 + inc [hl] + srl a + ld e, a + ld d, $0 + ld a, [hSGB] ; $ff00+$e7 + and a + jr nz, .asm_ce2b6 + ld hl, $62c4 + jr .asm_ce2b9 +.asm_ce2b6 + ld hl, $62c8 +.asm_ce2b9 + add hl, de + ld a, [hl] + ld hl, $f + add hl, bc + and [hl] + ld [$cfc8], a + ret +; ce2c4 (33:62c4) + +INCBIN "baserom.gbc",$ce2c4,$ce2cc - $ce2c4 + +; no known jump sources +Functionce2cc: ; ce2cc (33:62cc) + ld hl, $b + add hl, bc + ld a, [hl] + ld d, $18 + call Functionce734 + sra a + sra a + sra a + ld hl, $10 + add hl, bc + add [hl] + ld hl, $a + add hl, bc + ld [hl], a + ld hl, $b + add hl, bc + ld a, [hl] + inc [hl] + ld d, $18 + call Functionce732 + ld hl, $9 + add hl, bc + ld [hl], a + ld hl, $10 + add hl, bc + dec [hl] + dec [hl] + ret + +; no known jump sources +Functionce2fd: ; ce2fd (33:62fd) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_ce300: ; ce300 (33:6300) + dw Functionce306 + dw Functionce330 + dw Functionce34c + + +; no known jump sources +Functionce306: ; ce306 (33:6306) + ld hl, $a + add hl, bc + ld a, [hl] + cp $e0 + jr nz, .asm_ce319 + call Functionce72c + ld hl, $f + add hl, bc + ld [hl], $2 + ret +.asm_ce319 + ld d, a + ld hl, $f + add hl, bc + ld e, [hl] + ld hl, hPushOAM ; $ff80 + add hl, de + ld e, l + ld d, h + ld hl, $a + add hl, bc + ld [hl], d + ld hl, $f + add hl, bc + ld [hl], e + ret + +; no known jump sources +Functionce330: ; ce330 (33:6330) + ld hl, $10 + add hl, bc + ld a, [hl] + and a + jr z, .asm_ce33a + dec [hl] + ret +.asm_ce33a + ld [hl], $4 + ld hl, $f + add hl, bc + ld a, [hl] + xor $ff + inc a + ld [hl], a + ld hl, $a + add hl, bc + add [hl] + ld [hl], a + ret + +; no known jump sources +Functionce34c: ; ce34c (33:634c) + ld hl, $7 + add hl, bc + ld a, [hl] + cp $84 + jr nc, .asm_ce35b + ld a, $4 + call Functionce70a + ret +.asm_ce35b + call Functioncc9bd + ret + +; no known jump sources +Functionce35f: ; ce35f (33:635f) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_ce362: ; ce362 (33:6362) + dw Functionce366 + dw Functionce375 + + +; no known jump sources +Functionce366: ; ce366 (33:6366) + call Functionce72c + ld hl, $b + add hl, bc + ld a, [hl] + and $7f + add $81 + call Functionce7bf + +; no known jump sources +Functionce375: ; ce375 (33:6375) + ld hl, $b + add hl, bc + bit 7, [hl] + jr nz, .asm_ce383 + ld hl, $9 + add hl, bc + inc [hl] + ret +.asm_ce383 + ld hl, $9 + add hl, bc + dec [hl] + ret + +; no known jump sources +Functionce389: ; ce389 (33:6389) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_ce38c: ; ce38c (33:638c) + dw Functionce392 + dw Functionce39c + dw Functionce3ae + + +; no known jump sources +Functionce392: ; ce392 (33:6392) + call Functionce72c + ld hl, $f + add hl, bc + ld [hl], $c + ret + +; no known jump sources +Functionce39c: ; ce39c (33:639c) + ld hl, $f + add hl, bc + ld a, [hl] + and a + jr z, .asm_ce3a6 + dec [hl] + ret +.asm_ce3a6 + call Functionce72c + ld a, $20 + call Functionce7bf + +; no known jump sources +Functionce3ae: ; ce3ae (33:63ae) + ld hl, $a + add hl, bc + dec [hl] + ret + +; no known jump sources +Functionce3b4: ; ce3b4 (33:63b4) + ld hl, $f + add hl, bc + ld a, [hl] + inc [hl] + inc [hl] + push af + ld d, $2 + call Functionce734 + ld hl, $a + add hl, bc + ld [hl], a + pop af + ld d, $8 + call Functionce732 + ld hl, $9 + add hl, bc + ld [hl], a + ret + +; no known jump sources +Functionce3d2: ; ce3d2 (33:63d2) + ld hl, $a + add hl, bc + ld a, [hl] + cp $20 + jr c, .asm_ce3df + call Functioncc9bd + ret +.asm_ce3df + ld hl, $b + add hl, bc + ld a, [hl] + ld d, $8 + call Functionce732 + ld hl, $9 + add hl, bc + ld [hl], a + ld hl, $b + add hl, bc + ld a, [hl] + add $2 + ld [hl], a + and $7 + ret nz + ld hl, $a + add hl, bc + inc [hl] + ret + +; no known jump sources +Functionce3ff: ; ce3ff (33:63ff) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_ce402: ; ce402 (33:6402) + dw Functionce406 + dw Functionce412 + + +; no known jump sources +Functionce406: ; ce406 (33:6406) + ld hl, $b + add hl, bc + ld a, [hl] + ld hl, $7 + add hl, bc + add [hl] + ld [hl], a + ret + +; no known jump sources +Functionce412: ; ce412 (33:6412) + call Functioncc9bd + ret + +; no known jump sources +Functionce416: ; ce416 (33:6416) + ld hl, $b + add hl, bc + ld a, [hl] + ld d, $18 + push af + push de + call Functionce734 + ld hl, $a + add hl, bc + ld [hl], a + pop de + pop af + call Functionce732 + ld hl, $9 + add hl, bc + sra a + ld [hl], a + ld hl, $b + add hl, bc + ld a, [hl] + inc [hl] + ret + +; no known jump sources +Functionce43a: ; ce43a (33:643a) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_ce43d: ; ce43d (33:643d) + dw Functionce443 + dw Functionce465 + dw Functionce490 + + +; no known jump sources +Functionce443: ; ce443 (33:6443) + call Functionce72c + ld hl, $f + add hl, bc + ld [hl], $28 + ld hl, $b + add hl, bc + ld a, [hl] + and $f + ld hl, $3 + add hl, bc + add [hl] + call Functionce7bf + ld hl, $b + add hl, bc + ld a, [hl] + and $f0 + or $8 + ld [hl], a + +; no known jump sources +Functionce465: ; ce465 (33:6465) + ld hl, $f + add hl, bc + ld a, [hl] + and a + jr z, .asm_ce48b + dec [hl] + add $8 + ld d, a + ld hl, $b + add hl, bc + ld a, [hl] + push af + push de + call Functionce734 + ld hl, $a + add hl, bc + ld [hl], a + pop de + pop af + call Functionce732 + ld hl, $9 + add hl, bc + ld [hl], a + ret +.asm_ce48b + ld [hl], $10 + call Functionce72c + +; no known jump sources +Functionce490: ; ce490 (33:6490) + ld hl, $f + add hl, bc + ld a, [hl] + dec [hl] + and a + ret nz + call Functioncc9bd + ret + +; no known jump sources +Functionce49c: ; ce49c (33:649c) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_ce49f: ; ce49f (33:649f) + dw Functionce4a3 + dw Functionce4b0 + + +; no known jump sources +Functionce4a3: ; ce4a3 (33:64a3) + call Functionce72c + ld hl, $b + add hl, bc + ld a, $24 + add [hl] + call Functionce7bf + +; no known jump sources +Functionce4b0: ; ce4b0 (33:64b0) + ld hl, $a + add hl, bc + ld a, [hl] + cp $38 + jr nc, .asm_ce4d8 + inc [hl] + ld hl, $f + add hl, bc + ld a, [hl] + inc [hl] + ld d, $18 + call Functionce732 + ld hl, $9 + add hl, bc + ld [hl], a + ld hl, $8 + add hl, bc + ld a, [hl] + and $1 + ret nz + ld hl, $7 + add hl, bc + dec [hl] + ret +.asm_ce4d8 + call Functioncc9bd + ret + +; no known jump sources +Functionce4dc: ; ce4dc (33:64dc) + ld hl, $b + add hl, bc + ld a, [hl] + and a + ret z + ld d, a + ld hl, $f + add hl, bc + ld a, [hl] + inc [hl] + call Functionce734 + bit 7, a + jr nz, .asm_ce4f4 + xor $ff + inc a +.asm_ce4f4 + ld hl, $a + add hl, bc + ld [hl], a + ld hl, $f + add hl, bc + ld a, [hl] + and $1f + ret nz + ld hl, $b + add hl, bc + srl [hl] + ret + +; no known jump sources +Functionce508: ; ce508 (33:6508) + ld hl, $f + add hl, bc + ld a, [hl] + cp $10 + jr nc, .asm_ce52e + inc [hl] + inc [hl] + ld d, a + ld hl, $b + add hl, bc + ld a, [hl] + push af + push de + call Functionce734 + ld hl, $a + add hl, bc + ld [hl], a + pop de + pop af + call Functionce732 + ld hl, $9 + add hl, bc + ld [hl], a + ret +.asm_ce52e + call Functioncc9bd + ret + +; no known jump sources +Functionce532: ; ce532 (33:6532) + ld hl, $b + add hl, bc + ld e, [hl] + ld hl, $f + add hl, bc + ld d, [hl] + ld a, e + and $c0 + rlca + rlca + add [hl] + ld [hl], a + ld a, e + and $3f + push af + push de + call Functionce734 + ld hl, $a + add hl, bc + ld [hl], a + pop de + pop af + call Functionce732 + ld hl, $9 + add hl, bc + ld [hl], a + ret + +; no known jump sources +Functionce55b: ; ce55b (33:655b) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_ce55e: ; ce55e (33:655e) + dw Functionce564 + dw Functionce56e + dw Functionce577 + + +; no known jump sources +Functionce564: ; ce564 (33:6564) + ld d, $18 + ld hl, $b + add hl, bc + ld a, [hl] + inc [hl] + jr asm_ce58f + +; no known jump sources +Functionce56e: ; ce56e (33:656e) + call Functionce72c + ld hl, $f + add hl, bc + ld [hl], $18 + +; no known jump sources +Functionce577: ; ce577 (33:6577) + ld hl, $f + add hl, bc + ld a, [hl] + cp $80 + jr nc, .asm_ce58b + ld d, a + add $8 + ld [hl], a + ld hl, $b + add hl, bc + ld a, [hl] + jr asm_ce58f +.asm_ce58b + call Functioncc9bd + ret +asm_ce58f: ; ce58f (33:658f) + call Functionce6f1 + ret + +; no known jump sources +Functionce593: ; ce593 (33:6593) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_ce596: ; ce596 (33:6596) + dw Functionce5b3 + dw Functionce59a + + +; no known jump sources +Functionce59a: ; ce59a (33:659a) + ld hl, $7 + add hl, bc + ld a, [hl] + cp $30 + jr c, .asm_ce5b0 + ld hl, $7 + add hl, bc + dec [hl] + dec [hl] + ld hl, $8 + add hl, bc + inc [hl] + inc [hl] + ret +.asm_ce5b0 + call Functioncc9bd + +; no known jump sources +Functionce5b3: ; ce5b3 (33:65b3) + ret + +; no known jump sources +Functionce5b4: ; ce5b4 (33:65b4) + ld d, $50 + ld hl, $b + add hl, bc + ld a, [hl] + inc [hl] + inc [hl] + push af + push de + call Functionce734 + sra a + sra a + ld hl, $f + add hl, bc + add [hl] + inc [hl] + ld hl, $a + add hl, bc + ld [hl], a + pop de + pop af + call Functionce732 + ld hl, $9 + add hl, bc + ld [hl], a + ret + +; no known jump sources +Functionce5dc: ; ce5dc (33:65dc) + ld hl, $a + add hl, bc + ld a, [hl] + cp $d0 + jr z, .asm_ce5ea + dec [hl] + dec [hl] + dec [hl] + dec [hl] + ret +.asm_ce5ea + call Functioncc9bd + ret + +; no known jump sources +Functionce5ee: ; ce5ee (33:65ee) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_ce5f1: ; ce5f1 (33:65f1) + dw Functionce5f9 + dw Functionce60a + dw Functionce622 + dw Functionce618 + + +; no known jump sources +Functionce5f9: ; ce5f9 (33:65f9) + ld hl, $b + add hl, bc + ld a, [hl] + and a + jr nz, asm_ce61c + call Functionce72c + ld hl, $a + add hl, bc + ld [hl], $ec + +; no known jump sources +Functionce60a: ; ce60a (33:660a) + ld hl, $a + add hl, bc + ld a, [hl] + cp $4 + jr z, Functionce618 + inc [hl] + inc [hl] + inc [hl] + inc [hl] + ret + +; known jump sources: ce611 (33:6611) +Functionce618: ; ce618 (33:6618) + call Functioncc9bd + ret +asm_ce61c: ; ce61c (33:661c) + call Functionce72c + call Functionce72c + +; no known jump sources +Functionce622: ; ce622 (33:6622) + ld hl, $a + add hl, bc + ld a, [hl] + cp $d8 + ret z + dec [hl] + dec [hl] + dec [hl] + dec [hl] + ret + +; no known jump sources +Functionce62f: ; ce62f (33:662f) + call Functionce71e ; ; ; call does not return + +; no known jump sources +Jumptable_ce632: ; ce632 (33:6632) + dw Functionce63a + dw Functionce648 + dw Functionce65c + dw Functionce672 + + +; no known jump sources +Functionce63a: ; ce63a (33:663a) + ld hl, $b + add hl, bc + ld a, [hl] + ld hl, $e + add hl, bc + ld [hl], a + call Functionce72c + ret + +; no known jump sources +Functionce648: ; ce648 (33:6648) + ld hl, $a + add hl, bc + ld a, [hl] + add $4 + cp $70 + jr c, .asm_ce654 + xor a +.asm_ce654 + ld [hl], a + ld hl, $9 + add hl, bc + inc [hl] + inc [hl] + ret + +; no known jump sources +Functionce65c: ; ce65c (33:665c) + ld hl, $a + add hl, bc + ld a, [hl] + add $4 + cp $70 + jr c, .asm_ce668 + xor a +.asm_ce668 + ld [hl], a + ld hl, $9 + add hl, bc + ld a, [hl] + add $8 + ld [hl], a + ret + +; no known jump sources +Functionce672: ; ce672 (33:6672) + ld hl, $a + add hl, bc + ld a, [hl] + add $4 + cp $70 + jr c, .asm_ce67e + xor a +.asm_ce67e + ld [hl], a + ld hl, $9 + add hl, bc + ld a, [hl] + add $4 + ld [hl], a + ret + +; no known jump sources +Functionce688: ; ce688 (33:6688) + ld hl, $7 + add hl, bc + ld d, [hl] + ld hl, $f + add hl, bc + ld e, [hl] + ld hl, $b + add hl, bc + ld a, [hl] + ld l, a + and $f0 + ld h, a + swap a + or h + ld h, a + ld a, l + and $f + swap a + ld l, a + add hl, de + ld e, l + ld d, h + ld hl, $7 + add hl, bc + ld [hl], d + ld hl, $f + add hl, bc + ld [hl], e + ret + +; no known jump sources +Functionce6b3: ; ce6b3 (33:66b3) + ld d, $18 + ld hl, $b + add hl, bc + ld a, [hl] + inc [hl] + call Functionce6f1 + ret + +; no known jump sources +Functionce6bf: ; ce6bf (33:66bf) + ld d, $18 + ld hl, $10 + add hl, bc + ld a, [hl] + inc [hl] + srl a + ld hl, $b + add hl, bc + add [hl] + call Functionce6f1 + ret + +; no known jump sources +Functionce6d2: ; ce6d2 (33:66d2) + ld hl, $f + add hl, bc + ld a, [hl] + cp $20 + jr nc, .asm_ce6ed + inc [hl] + ld hl, $b + add hl, bc + ld d, [hl] + call Functionce734 + xor $ff + inc a + ld hl, $a + add hl, bc + ld [hl], a + ret +.asm_ce6ed + call Functioncc9bd + ret + +; known jump sources: ce58f (33:658f), ce6bb (33:66bb), ce6ce (33:66ce) +Functionce6f1: ; ce6f1 (33:66f1) + push af + push de + call Functionce734 + sra a + sra a + ld hl, $a + add hl, bc + ld [hl], a + pop de + pop af + call Functionce732 + ld hl, $9 + add hl, bc + ld [hl], a + ret + +; known jump sources: cd142 (33:5142), cd154 (33:5154), cd2ad (33:52ad), cd553 (33:5553), cd609 (33:5609), cd706 (33:5706), cd733 (33:5733), ce02f (33:602f), ce08d (33:608d), ce10a (33:610a), ce285 (33:6285), ce297 (33:6297), ce357 (33:6357) +Functionce70a: ; ce70a (33:670a) + and $f + ld e, a + ld hl, $7 + add hl, bc + add [hl] + ld [hl], a + srl e + ld hl, $8 + add hl, bc +.asm_ce719 + dec [hl] + dec e + jr nz, .asm_ce719 + ret + +; known jump sources: cd06e (33:506e), cd0e3 (33:50e3), cd12a (33:512a), cd15c (33:515c), cd212 (33:5212), cd284 (33:5284), cd2be (33:52be), cd306 (33:5306), cd3ae (33:53ae), cd3f2 (33:53f2), cd478 (33:5478), cd58a (33:558a), cd5e9 (33:55e9), cd66a (33:566a), cd6e3 (33:56e3), cd71a (33:571a), cd7a4 (33:57a4), cd80c (33:580c), cd824 (33:5824), cd89a (33:589a), cd900 (33:5900), cd954 (33:5954), cda31 (33:5a31), cda4d (33:5a4d), cdad6 (33:5ad6), cdb06 (33:5b06), cdb80 (33:5b80), cdcc3 (33:5cc3), cdd2a (33:5d2a), cdd90 (33:5d90), cddf9 (33:5df9), cde6b (33:5e6b), cde89 (33:5e89), cdf59 (33:5f59), ce00b (33:600b), ce063 (33:6063), ce0c5 (33:60c5), ce10e (33:610e), ce1e7 (33:61e7), ce226 (33:6226), ce255 (33:6255), ce2fd (33:62fd), ce35f (33:635f), ce389 (33:6389), ce3ff (33:63ff), ce43a (33:643a), ce49c (33:649c), ce55b (33:655b), ce593 (33:6593), ce5ee (33:65ee), ce62f (33:662f) +Functionce71e: ; ce71e (33:671e) + pop de + ld hl, $e + add hl, bc + ld l, [hl] + ld h, $0 + add hl, hl + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +; known jump sources: cd0ea (33:50ea), cd17a (33:517a), cd192 (33:5192), cd196 (33:5196), cd1ce (33:51ce), cd1e5 (33:51e5), cd20a (33:520a), cd21e (33:521e), cd22f (33:522f), cd2b5 (33:52b5), cd2c5 (33:52c5), cd31e (33:531e), cd321 (33:5321), cd37a (33:537a), cd3b7 (33:53b7), cd42f (33:542f), cd48d (33:548d), cd49f (33:549f), cd545 (33:5545), cd5a1 (33:55a1), cd5f2 (33:55f2), cd60d (33:560d), cd677 (33:5677), cd694 (33:5694), cd6ea (33:56ea), cd725 (33:5725), cd747 (33:5747), cd76e (33:576e), cd7ab (33:57ab), cd817 (33:5817), cd835 (33:5835), cd88f (33:588f), cd8ab (33:58ab), cd8f5 (33:58f5), cd907 (33:5907), cd961 (33:5961), cd977 (33:5977), cda43 (33:5a43), cda58 (33:5a58), cda76 (33:5a76), cda84 (33:5a84), cdadf (33:5adf), cdaf6 (33:5af6), cdb50 (33:5b50), cdbe2 (33:5be2), cdbe6 (33:5be6), cdc23 (33:5c23), cdc44 (33:5c44), cdc4d (33:5c4d), cdc71 (33:5c71), cdca2 (33:5ca2), cdcd9 (33:5cd9), cdd31 (33:5d31), cdd97 (33:5d97), cde02 (33:5e02), cde72 (33:5e72), cde90 (33:5e90), cdf88 (33:5f88), ce014 (33:6014), ce115 (33:6115), ce1ee (33:61ee), ce22d (33:622d), ce260 (33:6260), ce30f (33:630f), ce366 (33:6366), ce392 (33:6392), ce3a6 (33:63a6), ce443 (33:6443), ce48d (33:648d), ce4a3 (33:64a3), ce56e (33:656e), ce601 (33:6601), ce61c (33:661c), ce61f (33:661f), ce644 (33:6644) +Functionce72c: ; ce72c (33:672c) + ld hl, $e + add hl, bc + inc [hl] + ret + +; known jump sources: cd0d2 (33:50d2), cd11c (33:511c), cd33a (33:533a), cd44a (33:544a), cd7f5 (33:57f5), cd929 (33:5929), cd9bb (33:59bb), cdd69 (33:5d69), cddd3 (33:5dd3), cdefb (33:5efb), cdf39 (33:5f39), cdf72 (33:5f72), cdfaa (33:5faa), cdfe9 (33:5fe9), ce172 (33:6172), ce1c7 (33:61c7), ce218 (33:6218), ce246 (33:6246), ce2ee (33:62ee), ce3c9 (33:63c9), ce3e6 (33:63e6), ce429 (33:6429), ce482 (33:6482), ce4c2 (33:64c2), ce525 (33:6525), ce552 (33:6552), ce5d3 (33:65d3), ce701 (33:6701), ce76c (33:676c) +Functionce732: ; ce732 (33:6732) + add $10 + +; known jump sources: cd09c (33:509c), cd0c8 (33:50c8), cd112 (33:5112), cd1ad (33:51ad), cd1f4 (33:51f4), cd2d7 (33:52d7), cd34d (33:534d), cd440 (33:5440), cd4ca (33:54ca), cd502 (33:5502), cd5c5 (33:55c5), cd6a4 (33:56a4), cd711 (33:5711), cd73e (33:573e), cd7eb (33:57eb), cd86a (33:586a), cd8d6 (33:58d6), cd91f (33:591f), cd9a4 (33:59a4), cda90 (33:5a90), cdb77 (33:5b77), cdc30 (33:5c30), cdc5e (33:5c5e), cdc7b (33:5c7b), cdd07 (33:5d07), cdd5f (33:5d5f), cddc5 (33:5dc5), cde31 (33:5e31), cde5d (33:5e5d), cdee6 (33:5ee6), cdf24 (33:5f24), cdf95 (33:5f95), cdfd4 (33:5fd4), ce03c (33:603c), ce0a5 (33:60a5), ce0e4 (33:60e4), ce130 (33:6130), ce168 (33:6168), ce1bd (33:61bd), ce202 (33:6202), ce237 (33:6237), ce2d3 (33:62d3), ce3be (33:63be), ce41f (33:641f), ce478 (33:6478), ce4ea (33:64ea), ce51b (33:651b), ce548 (33:6548), ce5bf (33:65bf), ce6e1 (33:66e1), ce6f3 (33:66f3), ce766 (33:6766) +Functionce734: ; ce734 (33:6734) + and $3f + cp $20 + jr nc, .asm_ce73f + call Functionce749 + ld a, h + ret +.asm_ce73f + and $1f + call Functionce749 + ld a, h + xor $ff + inc a + ret + +; known jump sources: ce73a (33:673a), ce741 (33:6741) +Functionce749: ; ce749 (33:6749) + ld e, a + ld a, d + ld d, $0 + ld hl, $677f + add hl, de + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $0 +.asm_ce758 + srl a + jr nc, .asm_ce75d + add hl, de +.asm_ce75d + sla e + rl d + and a + jr nz, .asm_ce758 + ret + +; no known jump sources +Functionce765: ; ce765 (33:6765) + ld a, e + call Functionce734 + ld e, a + ret + +; no known jump sources +Functionce76b: ; ce76b (33:676b) + ld a, e + call Functionce732 + ld e, a + ret +; ce771 (33:6771) + +INCBIN "baserom.gbc",$ce771,$ce7bf - $ce771 + +; known jump sources: cd18f (33:518f), cd19b (33:519b), cd1cb (33:51cb), cd1d4 (33:51d4), cd1e2 (33:51e2), cd2ba (33:52ba), cd419 (33:5419), cd434 (33:5434), cd4ab (33:54ab), cd53c (33:553c), cd618 (33:5618), cd6f4 (33:56f4), cd74c (33:574c), cd773 (33:5773), cd81c (33:581c), cd883 (33:5883), cd8e8 (33:58e8), cda40 (33:5a40), cda73 (33:5a73), cda89 (33:5a89), cdc20 (33:5c20), cdc3b (33:5c3b), cdc4a (33:5c4a), cdce9 (33:5ce9), cdd4b (33:5d4b), cddb1 (33:5db1), cddf5 (33:5df5), cde0c (33:5e0c), cde85 (33:5e85), cdebb (33:5ebb), ce372 (33:6372), ce3ab (33:63ab), ce458 (33:6458), ce4ad (33:64ad) +Functionce7bf: ; ce7bf (33:67bf) + ld hl, $3 + add hl, bc + ld [hl], a + ld hl, $c + add hl, bc + ld [hl], $0 + ld hl, $d + add hl, bc + ld [hl], $ff + ret + + +Functionce7d1: ; ce7d1 +.asm_ce7d1 + ld hl, $000c + add hl, bc + ld a, [hl] + and a + jr z, .asm_ce7e1 + dec [hl] + call Functionce823 + ld a, [hli] + push af + jr .asm_ce7fd + +.asm_ce7e1 + ld hl, $000d + add hl, bc + inc [hl] + call Functionce823 + ld a, [hli] + cp $fe + jr z, .asm_ce815 + cp $ff + jr z, .asm_ce807 + push af + ld a, [hl] + push hl + and $3f + ld hl, $000c + add hl, bc + ld [hl], a + pop hl + +.asm_ce7fd + ld a, [hl] + and $c0 + srl a + ld [$d420], a + pop af + ret + +.asm_ce807 + xor a + ld hl, $000c + add hl, bc + ld [hl], a + ld hl, $000d + add hl, bc + dec [hl] + dec [hl] + jr .asm_ce7d1 + +.asm_ce815 + xor a + ld hl, $000c + add hl, bc + ld [hl], a + dec a + ld hl, $000d + add hl, bc + ld [hl], a + jr .asm_ce7d1 +; ce823 + +Functionce823: ; ce823 + ld hl, $0003 + add hl, bc + ld e, [hl] + ld d, $0 + ld hl, $685e + add hl, de + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $000d + add hl, bc + ld l, [hl] + ld h, $0 + add hl, hl + add hl, de + ret +; ce83c + +Functionce83c: ; ce83c + ld l, a + ld h, $0 + ld de, $6eae + add hl, hl + add hl, hl + add hl, de + ret +; ce846 + + +; known jump sources: cc4b0 (33:44b0) +Functionce846: ; ce846 (33:6846) + push hl + ld l, a + ld h, $0 + add hl, hl + add hl, hl + ld de, $7cf6 + add hl, de + ld c, [hl] + inc hl + ld b, [hl] + inc hl + ld a, [hli] + ld h, [hl] + ld l, a + pop de + push bc + call Functione73 + pop bc + ret +; ce85e (33:685e) + +INCBIN "baserom.gbc",$ce85e,$cfd9e - $ce85e + diff --git a/battle/anims.asm b/battle/anims.asm new file mode 100644 index 000000000..1a5e28d40 --- /dev/null +++ b/battle/anims.asm @@ -0,0 +1,3 @@ +BattleAnimations: ; c906f +INCBIN "baserom.gbc",$c906f,$cbcdd - $c906f + diff --git a/battle/bg_effects.asm b/battle/bg_effects.asm new file mode 100644 index 000000000..d2af6af6b --- /dev/null +++ b/battle/bg_effects.asm @@ -0,0 +1,2938 @@ +; BG effects for use in battle animations. + +; no known jump sources +Functionc8000: ; c8000 (32:4000) + ld hl, $d3fa + ld e, $5 +.asm_c8005 + ld a, [hl] + and a + jr z, .asm_c8012 + ld c, l + ld b, h + push hl + push de + call Functionc804a + pop de + pop hl +.asm_c8012 + ld bc, $4 + add hl, bc + dec e + jr nz, .asm_c8005 + ret + +; no known jump sources +Functionc801a: ; c801a (32:401a) + ld hl, $d3fa + ld e, $5 +.asm_c801f + ld a, [hl] + and a + jr z, .asm_c802c + ld bc, $4 + add hl, bc + dec e + jr nz, .asm_c801f + scf + ret +.asm_c802c + ld c, l + ld b, h + ld hl, $0 + add hl, bc + ld a, [$d419] + ld [hli], a + ld a, [$d41a] + ld [hli], a + ld a, [$d41b] + ld [hli], a + ld a, [$d41c] + ld [hl], a + ret + +; known jump sources: c80c6 (32:40c6), c811c (32:411c), c8139 (32:4139), c814d (32:414d), c8164 (32:4164), c81e6 (32:41e6), c81ef (32:41ef), c822c (32:422c), c827d (32:427d), c8299 (32:4299), c82ea (32:42ea), c8377 (32:4377), c8437 (32:4437), c85ca (32:45ca), c85ff (32:45ff), c8d13 (32:4d13), c8dd0 (32:4dd0), c8e26 (32:4e26), c8e4e (32:4e4e), c8f15 (32:4f15) +EndBattleBGEffect: ; c8043 (32:4043) + ld hl, 0 + add hl, bc + ld [hl], 0 + ret + +; known jump sources: c800d (32:400d) +Functionc804a: ; c804a (32:404a) + ld hl, 0 + add hl, bc + ld e, [hl] + ld d, 0 + ld hl, BattleBGEffects + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +; no known jump sources +BattleBGEffects: ; c805a (32:405a) + dw BattleBGEffect_0 + dw Functionc80eb + dw Functionc80f3 + dw Functionc812d + dw Functionc8141 + dw Functionc8155 + dw Functionc8171 + dw Functionc818b + dw Functionc81a5 + dw Functionc81b3 + dw Functionc81ea + dw Functionc837b + dw Functionc83a8 + dw Functionc8545 + dw Functionc8599 + dw Functionc863f + dw Functionc8662 + dw Functionc8214 + dw Functionc8281 + dw Functionc8689 + dw Functionc8709 + dw Functionc8be8 + dw Functionc8bf2 + dw Functionc8bfd + dw Functionc8c08 + dw Functionc8c14 + dw Functionc8c20 + dw Functionc8c30 + dw Functionc8b00 + dw Functionc8c3c + dw Functionc8c55 + dw Functionc8cf9 + dw Functionc8d02 + dw Functionc8761 + dw Functionc89ee + dw Functionc87a7 + dw Functionc8805 + dw Functionc8837 + dw Functionc892a + dw Functionc82f5 + dw Functionc89b5 + dw Functionc8607 + dw Functionc8a3a + dw Functionc8acc + dw Functionc8964 + dw Functionc88e7 + dw Functionc8ce1 + dw Functionc8919 + dw Functionc85c2 + dw Functionc85ce + dw Functionc8603 + dw Functionc8c61 + dw Functionc8ca2 + dw Functionc8d3a + + +; no known jump sources +BattleBGEffect_0: ; c80c6 (32:40c6) + call EndBattleBGEffect + ret + +; known jump sources: c8b7d (32:4b7d), c8d80 (32:4d80), c8dd8 (32:4dd8) +Functionc80ca: ; c80ca (32:40ca) + ld hl, $1 + add hl, bc + ld l, [hl] + ld h, $0 + add hl, hl + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ret + +; known jump sources: c81b3 (32:41b3), c8214 (32:4214), c8281 (32:4281), c82f5 (32:42f5), c83ed (32:43ed), c8545 (32:4545), c8599 (32:4599), c8607 (32:4607), c863f (32:463f), c8662 (32:4662), c8689 (32:4689), c8709 (32:4709), c8761 (32:4761), c87a7 (32:47a7), c8805 (32:4805), c8837 (32:4837), c88e7 (32:48e7), c8919 (32:4919), c892a (32:492a), c8964 (32:4964), c89b5 (32:49b5), c89ee (32:49ee), c8a3a (32:4a3a), c8acc (32:4acc), c8b05 (32:4b05), c8c61 (32:4c61), c8ca2 (32:4ca2) +Functionc80d7: ; c80d7 (32:40d7) + pop de + ld hl, $1 + add hl, bc + ld l, [hl] + ld h, $0 + add hl, hl + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +; known jump sources: c81c0 (32:41c0), c8230 (32:4230), c825a (32:425a), c829d (32:429d), c82c7 (32:42c7), c8302 (32:4302), c835c (32:435c), c841d (32:441d), c854e (32:454e), c85a2 (32:45a2), c8610 (32:4610), c8648 (32:4648), c866b (32:466b), c8698 (32:4698), c86cb (32:46cb), c8712 (32:4712), c876a (32:476a), c87b2 (32:47b2), c87db (32:47db), c8810 (32:4810), c8842 (32:4842), c8876 (32:4876), c8890 (32:4890), c88f6 (32:48f6), c8933 (32:4933), c896d (32:496d), c89be (32:49be), c89f7 (32:49f7), c8a49 (32:4a49), c8a84 (32:4a84), c8a96 (32:4a96), c8ad3 (32:4ad3), c8b0e (32:4b0e), c8c68 (32:4c68), c8cab (32:4cab), c8d8b (32:4d8b), c8dec (32:4dec), c8def (32:4def), c8df2 (32:4df2) +Functionc80e5: ; c80e5 (32:40e5) + ld hl, $1 + add hl, bc + inc [hl] + ret + +; no known jump sources +Functionc80eb: ; c80eb (32:40eb) + ld de, .inverted + jp Functionc80fb +; c80f1 (32:40f1) + +.inverted + db %11100100 ; 3210 + db %00011011 ; 0123 +; c80f3 + +; no known jump sources +Functionc80f3: ; c80f3 (32:40f3) + ld de, .white + jp Functionc80fb +; c80f9 (32:40f9) + +.white + db %11100100 ; 3210 + db %00000000 ; 0000 +; c80fb + +; known jump sources: c80ee (32:40ee), c80f6 (32:40f6) +Functionc80fb: ; c80fb (32:40fb) + ld a, $1 + ld [$d419], a + ld hl, $1 + add hl, bc + ld a, [hl] + and a + jr z, .asm_c810a + dec [hl] + ret + +.asm_c810a + ld hl, $2 + add hl, bc + ld a, [hl] + ld hl, $1 + add hl, bc + ld [hl], a + ld hl, $3 + add hl, bc + ld a, [hl] + and a + jr nz, .asm_c8120 + call EndBattleBGEffect + ret + +.asm_c8120 + dec a + ld [hl], a + and 1 + ld l, a + ld h, 0 + add hl, de + ld a, [hl] + ld [$cfc7], a + ret + +; no known jump sources +Functionc812d: ; c812d (32:412d) + ld de, $413d + call Functionc8d57 + jr c, .asm_c8139 + ld [$cfc7], a + ret +.asm_c8139 + call EndBattleBGEffect + ret +; c813d (32:413d) + +INCBIN "baserom.gbc",$c813d,$c8141 - $c813d + +; no known jump sources +Functionc8141: ; c8141 (32:4141) + ld de, $4151 + call Functionc8d57 + jr c, .asm_c814d + ld [$cfc7], a + ret +.asm_c814d + call EndBattleBGEffect + ret +; c8151 (32:4151) + +INCBIN "baserom.gbc",$c8151,$c8155 - $c8151 + +; no known jump sources +Functionc8155: ; c8155 (32:4155) + ld de, $4168 + call Functionc8d57 + jr c, .asm_c8164 + ld [$cfc7], a + ld [$cfc9], a + ret +.asm_c8164 + call EndBattleBGEffect + ret +; c8168 (32:4168) + +INCBIN "baserom.gbc",$c8168,$c8171 - $c8168 + +; no known jump sources +Functionc8171: ; c8171 (32:4171) + call Functionc9059 + jr nz, .asm_c817b + ld de, $4185 + jr .asm_c817e +.asm_c817b + ld de, $4188 +.asm_c817e + call Functionc8d57 + ld [$cfc8], a + ret +; c8185 (32:4185) + +INCBIN "baserom.gbc",$c8185,$c818b - $c8185 + +; no known jump sources +Functionc818b: ; c818b (32:418b) + call Functionc9059 + jr nz, .asm_c8195 + ld de, $419f + jr .asm_c8198 +.asm_c8195 + ld de, $41a2 +.asm_c8198 + call Functionc8d57 + ld [$cfc8], a + ret +; c819f (32:419f) + +INCBIN "baserom.gbc",$c819f,$c81a5 - $c819f + +; no known jump sources +Functionc81a5: ; c81a5 (32:41a5) + ld de, $41af + call Functionc8d57 + ld [$cfc7], a + ret +; c81af (32:41af) + +INCBIN "baserom.gbc",$c81af,$c81b3 - $c81af + +; no known jump sources +Functionc81b3: ; c81b3 (32:41b3) + call Functionc80d7 ; ; ; call does not return + +; no known jump sources +Jumptable_c81b6: ; c81b6 (32:41b6) + dw Functionc81c0 + dw Functionc80e5 + dw Functionc80e5 + dw Functionc80e5 + dw Functionc81e3 + + +; no known jump sources +Functionc81c0: ; c81c0 (32:41c0) + call Functionc80e5 + push bc + call Functionc9038 + jr nz, .asm_c81d1 + ld hl, $c4ac + ld bc, $707 + jr .asm_c81d7 +.asm_c81d1 + ld hl, $c51a + ld bc, $606 +.asm_c81d7 + call ClearBox + pop bc + xor a + ld [hBGMapThird], a ; $ff00+$d5 + ld a, $1 + ld [hBGMapMode], a ; $ff00+$d4 + ret + +; no known jump sources +Functionc81e3: ; c81e3 (32:41e3) + xor a + ld [hBGMapMode], a ; $ff00+$d4 + call EndBattleBGEffect + ret + +; no known jump sources +Functionc81ea: ; c81ea (32:41ea) + call Functionc9042 + jr z, .asm_c81f3 + call EndBattleBGEffect + ret +.asm_c81f3 + call Functionc9038 + jr nz, .asm_c81fd + ld de, $4210 + jr .asm_c8200 +.asm_c81fd + ld de, $420c +.asm_c8200 + ld a, e + ld [$d41a], a + ld a, d + ld [$d41b], a + call Functionc83ed + ret +; c820c (32:420c) + +INCBIN "baserom.gbc",$c820c,$c8214 - $c820c + +; no known jump sources +Functionc8214: ; c8214 (32:4214) + call Functionc80d7 ; ; ; call does not return + +; no known jump sources +Jumptable_c8217: ; c8217 (32:4217) + dw Functionc8223 + dw Functionc825a + dw Functionc80e5 + dw Functionc80e5 + dw Functionc80e5 + dw Functionc827a + + +; no known jump sources +Functionc8223: ; c8223 (32:4223) + call Functionc9042 + jr z, .asm_c8230 + ld hl, $d40e + inc [hl] + call EndBattleBGEffect + ret +.asm_c8230 + call Functionc80e5 + push bc + call Functionc9038 + jr nz, .asm_c8242 + ld a, $b8 + ld [$d419], a + ld a, $84 + jr .asm_c8249 +.asm_c8242 + ld a, $b9 + ld [$d419], a + ld a, $30 +.asm_c8249 + ld [$d41a], a + ld a, $40 + ld [$d41b], a + xor a + ld [$d41c], a + call Functionc82ee + pop bc + ret + +; no known jump sources +Functionc825a: ; c825a (32:425a) + call Functionc80e5 + push bc + call Functionc9038 + jr nz, .asm_c826b + ld hl, $c524 + ld bc, $107 + jr .asm_c8271 +.asm_c826b + ld hl, $c51a + ld bc, $106 +.asm_c8271 + call ClearBox + ld a, $1 + ld [hBGMapMode], a ; $ff00+$d4 + pop bc + ret + +; no known jump sources +Functionc827a: ; c827a (32:427a) + xor a + ld [hBGMapMode], a ; $ff00+$d4 + call EndBattleBGEffect + ret + +; no known jump sources +Functionc8281: ; c8281 (32:4281) + call Functionc80d7 ; ; ; call does not return + +; no known jump sources +Jumptable_c8284: ; c8284 (32:4284) + dw Functionc8290 + dw Functionc82c7 + dw Functionc80e5 + dw Functionc80e5 + dw Functionc80e5 + dw Functionc82e7 + + +; no known jump sources +Functionc8290: ; c8290 (32:4290) + call Functionc9042 + jr z, .asm_c829d + ld hl, $d40e + inc [hl] + call EndBattleBGEffect + ret +.asm_c829d + call Functionc80e5 + push bc + call Functionc9038 + jr nz, .asm_c82af + ld a, $ba + ld [$d419], a + ld a, $84 + jr .asm_c82b6 +.asm_c82af + ld a, $bb + ld [$d419], a + ld a, $30 +.asm_c82b6 + ld [$d41a], a + ld a, $40 + ld [$d41b], a + xor a + ld [$d41c], a + call Functionc82ee + pop bc + ret + +; no known jump sources +Functionc82c7: ; c82c7 (32:42c7) + call Functionc80e5 + push bc + call Functionc9038 + jr nz, .asm_c82d8 + ld hl, $c510 + ld bc, $207 + jr .asm_c82de +.asm_c82d8 + ld hl, $c51a + ld bc, $206 +.asm_c82de + call ClearBox + ld a, $1 + ld [hBGMapMode], a ; $ff00+$d4 + pop bc + ret + +; no known jump sources +Functionc82e7: ; c82e7 (32:42e7) + xor a + ld [hBGMapMode], a ; $ff00+$d4 + call EndBattleBGEffect + ret + +; known jump sources: c8255 (32:4255), c82c2 (32:42c2) +Functionc82ee: ; c82ee (32:42ee) + callab Functioncc9a1 + ret + +; no known jump sources +Functionc82f5: ; c82f5 (32:42f5) + call Functionc80d7 ; ; ; call does not return + +; no known jump sources +Jumptable_c82f8: ; c82f8 (32:42f8) + dw Functionc8302 + dw Functionc831d + dw Functionc80e5 + dw Functionc80e5 + dw Functionc8365 + + +; no known jump sources +Functionc8302: ; c8302 (32:4302) + call Functionc80e5 + call Functionc9038 + ld [hl], a + ld hl, $2 + add hl, bc + ld a, [hl] + and a + jr z, .asm_c8315 + ld a, $9 + jr .asm_c8317 +.asm_c8315 + ld a, $8 +.asm_c8317 + ld hl, $3 + add hl, bc + ld [hl], a + ret + +; no known jump sources +Functionc831d: ; c831d (32:431d) + ld hl, $2 + add hl, bc + ld a, [hl] + and a + jr z, .asm_c833e + ld hl, $c518 + ld de, $806 +.asm_c832b + push de + push hl +.asm_c832d + inc hl + ld a, [hld] + ld [hli], a + dec d + jr nz, .asm_c832d + pop hl + ld de, $14 + add hl, de + pop de + dec e + jr nz, .asm_c832b + jr .asm_c8355 +.asm_c833e + ld hl, $c4b3 + ld de, $807 +.asm_c8344 + push de + push hl +.asm_c8346 + dec hl + ld a, [hli] + ld [hld], a + dec d + jr nz, .asm_c8346 + pop hl + ld de, $14 + add hl, de + pop de + dec e + jr nz, .asm_c8344 +.asm_c8355 + xor a + ld [hBGMapThird], a ; $ff00+$d5 + ld a, $1 + ld [hBGMapMode], a ; $ff00+$d4 + call Functionc80e5 + ld hl, $3 + add hl, bc + dec [hl] + ret + +; no known jump sources +Functionc8365: ; c8365 (32:4365) + xor a + ld [hBGMapMode], a ; $ff00+$d4 + ld hl, $3 + add hl, bc + ld a, [hl] + and a + jr z, .asm_c8377 + ld hl, $1 + add hl, bc + ld [hl], $1 + ret +.asm_c8377 + call EndBattleBGEffect + ret + +; no known jump sources +Functionc837b: ; c837b (32:437b) + call Functionc9038 + jr nz, .asm_c8385 + ld de, $439e + jr .asm_c8388 +.asm_c8385 + ld de, $4394 +.asm_c8388 + ld a, e + ld [$d41a], a + ld a, d + ld [$d41b], a + call Functionc83ed + ret +; c8394 (32:4394) + +INCBIN "baserom.gbc",$c8394,$c83a8 - $c8394 + +; no known jump sources +Functionc83a8: ; c83a8 (32:43a8) + call Functionc9038 + jr nz, .asm_c83b2 + ld de, $43d7 + jr .asm_c83b5 +.asm_c83b2 + ld de, $43c1 +.asm_c83b5 + ld a, e + ld [$d41a], a + ld a, d + ld [$d41b], a + call Functionc83ed + ret +; c83c1 (32:43c1) + +INCBIN "baserom.gbc",$c83c1,$c83ed - $c83c1 + +; known jump sources: c8208 (32:4208), c8390 (32:4390), c83bd (32:43bd) +Functionc83ed: ; c83ed (32:43ed) + call Functionc80d7 ; ; ; call does not return + +; no known jump sources +Jumptable_c83f0: ; c83f0 (32:43f0) + dw Functionc83fa + dw Functionc80e5 + dw Functionc80e5 + dw Functionc842a + dw Functionc8434 + + +; known jump sources: c8428 (32:4428) +Functionc83fa: ; c83fa (32:43fa) + ld hl, $3 + add hl, bc + ld e, [hl] + ld d, $0 + inc [hl] + ld a, [$d41a] + ld l, a + ld a, [$d41b] + ld h, a + add hl, de + add hl, de + add hl, de + ld a, [hl] + cp $ff + jr z, Functionc8434 + cp $fe + jr z, .asm_c8425 + cp $fd + jr z, .asm_c841d + call Functionc8458 +.asm_c841d + call Functionc80e5 + ld a, $1 + ld [hBGMapMode], a ; $ff00+$d4 + ret +.asm_c8425 + call Functionc843b + jr Functionc83fa + +; no known jump sources +Functionc842a: ; c842a (32:442a) + xor a + ld [hBGMapMode], a ; $ff00+$d4 + ld hl, $1 + add hl, bc + ld [hl], $0 + ret + +; known jump sources: c8410 (32:4410) +Functionc8434: ; c8434 (32:4434) + xor a + ld [hBGMapMode], a ; $ff00+$d4 + call EndBattleBGEffect + ret + +; known jump sources: c8425 (32:4425) +Functionc843b: ; c843b (32:443b) + push bc + inc hl + ld a, [hli] + ld b, a + and $f + ld c, a + ld a, b + swap a + and $f + ld b, a + ld e, [hl] + ld d, $0 + ld hl, $449c + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + call ClearBox + pop bc + ret + +; known jump sources: c841a (32:441a) +Functionc8458: ; c8458 (32:4458) + push bc + push hl + ld e, [hl] + ld d, $0 + ld hl, $44a8 + add hl, de + add hl, de + add hl, de + ld a, [hli] + ld b, a + and $f + ld c, a + ld a, b + swap a + and $f + ld b, a + ld e, [hl] + inc hl + ld d, [hl] + pop hl + inc hl + ld a, [hli] + ld [$d419], a + push de + ld e, [hl] + ld d, $0 + ld hl, $449c + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + pop de +.asm_c8484 + push bc + push hl + ld a, [$d419] + ld b, a +.asm_c848a + ld a, [de] + add b + ld [hli], a + inc de + dec c + jr nz, .asm_c848a + pop hl + ld bc, $14 + add hl, bc + pop bc + dec b + jr nz, .asm_c8484 + pop bc + ret +; c849c (32:449c) + +INCBIN "baserom.gbc",$c849c,$c8545 - $c849c + +; no known jump sources +Functionc8545: ; c8545 (32:4545) + call Functionc80d7 ; ; ; call does not return + +; no known jump sources +Jumptable_c8548: ; c8548 (32:4548) + dw Functionc854e + dw Functionc8557 + dw Functionc8561 + + +; no known jump sources +Functionc854e: ; c854e (32:454e) + call Functionc80e5 + ld de, $202 + call Functionc8f69 + +; no known jump sources +Functionc8557: ; c8557 (32:4557) + ld a, [hLCDStatCustom] ; $ff00+$c6 + and a + ret z + push bc + call Functionc8565 + pop bc + ret + +; no known jump sources +Functionc8561: ; c8561 (32:4561) + call Functionc8f0a + ret + +; known jump sources: c855c (32:455c) +Functionc8565: ; c8565 (32:4565) + ld hl, $d422 + ld de, $d423 + ld c, $3f + ld a, [hl] + push af +.asm_c856f + ld a, [de] + inc de + ld [hli], a + dec c + jr nz, .asm_c856f + pop af + ld [hl], a + ld de, $d200 + ld hl, $d422 + ld bc, $0 +.asm_c8580 + ld a, [$FF00+$c7] + cp e + jr nc, .asm_c858b + push hl + add hl, bc + ld a, [hl] + pop hl + jr .asm_c858c +.asm_c858b + xor a +.asm_c858c + ld [de], a + ld a, c + inc a + and $3f + ld c, a + inc de + ld a, e + cp $5f + jr c, .asm_c8580 + ret + +; no known jump sources +Functionc8599: ; c8599 (32:4599) + call Functionc80d7 ; ; ; call does not return + +; no known jump sources +Jumptable_c859c: ; c859c (32:459c) + dw Functionc85a2 + dw Functionc85ba + dw Functionc85be + + +; no known jump sources +Functionc85a2: ; c85a2 (32:45a2) + call Functionc80e5 + call Functionc8eca + ld a, $42 + ld [hLCDStatCustom], a ; $ff00+$c6 + xor a + ld [$FF00+$c7], a + ld a, $5e + ld [$FF00+$c8], a + ld de, $202 + call Functionc8f2e + ret + +; no known jump sources +Functionc85ba: ; c85ba (32:45ba) + call Functionc8fef + ret + +; no known jump sources +Functionc85be: ; c85be (32:45be) + call Functionc8f0a + ret + +; no known jump sources +Functionc85c2: ; c85c2 (32:45c2) + call Functionc8eca + ld a, $42 + call Functionc8ede + call EndBattleBGEffect + ret + +; no known jump sources +Functionc85ce: ; c85ce (32:45ce) + ld hl, $3 + add hl, bc + ld a, [hl] + ld e, a + add $4 + ld [hl], a + ld hl, $2 + add hl, bc + ld a, [hl] + and $f0 + swap a + xor $ff + add $4 + ld d, a + ld hl, $1 + add hl, bc + ld a, [hl] + ld [$d419], a + ld hl, $2 + add hl, bc + ld a, [hl] + cp $20 + jr nc, .asm_c85fc + inc [hl] + inc [hl] + call Functionc8f9a + ret +.asm_c85fc + call Functionc8eca + call EndBattleBGEffect + ret + +; no known jump sources +Functionc8603: ; c8603 (32:4603) + call Functionc8f0a + ret + +; no known jump sources +Functionc8607: ; c8607 (32:4607) + call Functionc80d7 ; ; ; call does not return + +; no known jump sources +Jumptable_c860a: ; c860a (32:460a) + dw Functionc8610 + dw Functionc862e + dw Functionc863b + + +; no known jump sources +Functionc8610: ; c8610 (32:4610) + call Functionc80e5 + call Functionc8eca + ld a, $43 + ld [hLCDStatCustom], a ; $ff00+$c6 + xor a + ld [$FF00+$c7], a + ld a, $5f + ld [$FF00+$c8], a + ld de, $605 + call Functionc8f2e + ld hl, $3 + add hl, bc + ld [hl], $0 + ret + +; no known jump sources +Functionc862e: ; c862e (32:462e) + ld hl, $3 + add hl, bc + ld a, [hl] + inc [hl] + and $3 + ret nz + call Functionc8fef + ret + +; no known jump sources +Functionc863b: ; c863b (32:463b) + call Functionc8f0a + ret + +; no known jump sources +Functionc863f: ; c863f (32:463f) + call Functionc80d7 ; ; ; call does not return + +; no known jump sources +Jumptable_c8642: ; c8642 (32:4642) + dw Functionc8648 + dw Functionc865a + dw Functionc865e + + +; no known jump sources +Functionc8648: ; c8648 (32:4648) + call Functionc80e5 + call Functionc8eca + ld a, $43 + call Functionc8ede + ld de, $605 + call Functionc8f2e + ret + +; no known jump sources +Functionc865a: ; c865a (32:465a) + call Functionc8fef + ret + +; no known jump sources +Functionc865e: ; c865e (32:465e) + call Functionc8f0a + ret + +; no known jump sources +Functionc8662: ; c8662 (32:4662) + call Functionc80d7 ; ; ; call does not return + +; no known jump sources +Jumptable_c8665: ; c8665 (32:4665) + dw Functionc866b + dw Functionc8681 + dw Functionc8685 + + +; no known jump sources +Functionc866b: ; c866b (32:466b) + call Functionc80e5 + call Functionc8eca + ld a, $42 + call Functionc8ede + ld hl, $3 + add hl, bc + ld e, [hl] + ld d, $2 + call Functionc8f2e + ret + +; no known jump sources +Functionc8681: ; c8681 (32:4681) + call Functionc8fef + ret + +; no known jump sources +Functionc8685: ; c8685 (32:4685) + call Functionc8f0a + ret + +; no known jump sources +Functionc8689: ; c8689 (32:4689) + call Functionc80d7 ; ; ; call does not return + +; no known jump sources +Jumptable_c868c: ; c868c (32:468c) + dw Functionc8698 + dw Functionc86af + dw Functionc86cf + dw Functionc86bd + dw Functionc86e9 + dw Functionc8705 + + +; no known jump sources +Functionc8698: ; c8698 (32:4698) + call Functionc80e5 + call Functionc8eca + ld a, $43 + call Functionc8ede + ld a, [$FF00+$c8] + inc a + ld [$FF00+$c8], a + ld hl, $2 + add hl, bc + ld [hl], $0 + ret + +; no known jump sources +Functionc86af: ; c86af (32:46af) + ld hl, $3 + add hl, bc + ld a, [hl] + cp $10 + jr nc, asm_c86cb + inc [hl] + call Functionc86ea + ret + +; no known jump sources +Functionc86bd: ; c86bd (32:46bd) + ld hl, $3 + add hl, bc + ld a, [hl] + cp $ff + jr z, asm_c86cb + dec [hl] + call Functionc86ea + ret +asm_c86cb: ; c86cb (32:46cb) + call Functionc80e5 + ret + +; no known jump sources +Functionc86cf: ; c86cf (32:46cf) + ld hl, $2 + add hl, bc + ld a, [hl] + ld d, $2 + call Functionc905d + ld hl, $3 + add hl, bc + add [hl] + call Functionc86ea + ld hl, $2 + add hl, bc + ld a, [hl] + add $4 + ld [hl], a + +; no known jump sources +Functionc86e9: ; c86e9 (32:46e9) + ret + +; known jump sources: c86b9 (32:46b9), c86c7 (32:46c7), c86de (32:46de) +Functionc86ea: ; c86ea (32:46ea) + ld e, a + xor $ff + inc a + ld d, a + ld h, $d2 + ld a, [$FF00+$c7] + ld l, a + ld a, [$FF00+$c8] + sub l + srl a + push af +.asm_c86fa + ld [hl], e + inc hl + ld [hl], d + inc hl + dec a + jr nz, .asm_c86fa + pop af + ret nc + ld [hl], e + ret + +; no known jump sources +Functionc8705: ; c8705 (32:4705) + call Functionc8f0a + ret + +; no known jump sources +Functionc8709: ; c8709 (32:4709) + call Functionc80d7 ; ; ; call does not return + +; no known jump sources +Jumptable_c870c: ; c870c (32:470c) + dw Functionc8712 + dw Functionc8732 + dw Functionc875d + + +; no known jump sources +Functionc8712: ; c8712 (32:4712) + call Functionc80e5 + call Functionc8eca + ld a, $42 + call Functionc8ede + ld hl, $3 + add hl, bc + ld e, [hl] + ld d, $2 + call Functionc8f2e + ld h, $d2 + ld a, [$FF00+$c8] + ld l, a + ld [hl], $0 + dec l + ld [hl], $0 + ret + +; no known jump sources +Functionc8732: ; c8732 (32:4732) + ld a, [$FF00+$c8] + ld l, a + ld h, $d2 + ld e, l + ld d, h + dec de +.asm_c873a + ld a, [de] + dec de + ld [hld], a + ld a, [$FF00+$c7] + cp l + jr nz, .asm_c873a + ld [hl], $90 + ld a, [$FF00+$c8] + ld l, a + ld a, [hl] + cp $1 + jr c, .asm_c8752 + cp $90 + jr z, .asm_c8752 + ld [hl], $0 +.asm_c8752 + dec l + ld a, [hl] + cp $2 + ret c + cp $90 + ret z + ld [hl], $0 + ret + +; no known jump sources +Functionc875d: ; c875d (32:475d) + call Functionc8f0a + ret + +; no known jump sources +Functionc8761: ; c8761 (32:4761) + call Functionc80d7 ; ; ; call does not return + +; no known jump sources +Jumptable_c8764: ; c8764 (32:4764) + dw Functionc876a + dw Functionc8781 + dw Functionc87a3 + + +; no known jump sources +Functionc876a: ; c876a (32:476a) + call Functionc80e5 + call Functionc8eca + ld a, $42 + call Functionc8ede + ld a, [$FF00+$c8] + inc a + ld [$FF00+$c8], a + ld hl, $2 + add hl, bc + ld [hl], $1 + ret + +; no known jump sources +Functionc8781: ; c8781 (32:4781) + ld hl, $3 + add hl, bc + ld a, [hl] + and $3f + ld d, a + ld hl, $2 + add hl, bc + ld a, [hl] + cp d + ret nc + call Functionc901b + ld hl, $3 + add hl, bc + ld a, [hl] + rlca + rlca + and $3 + ld hl, $2 + add hl, bc + add [hl] + ld [hl], a + ret + +; no known jump sources +Functionc87a3: ; c87a3 (32:47a3) + call Functionc8f0a + ret + +; no known jump sources +Functionc87a7: ; c87a7 (32:47a7) + call Functionc80d7 ; ; ; call does not return + +; no known jump sources +Jumptable_c87aa: ; c87aa (32:47aa) + dw Functionc87b2 + dw Functionc87cf + dw Functionc87de + dw Functionc8801 + + +; no known jump sources +Functionc87b2: ; c87b2 (32:47b2) + call Functionc80e5 + call Functionc8eca + ld a, $42 + call Functionc8ede + ld a, [$FF00+$c8] + inc a + ld [$FF00+$c8], a + ld hl, $2 + add hl, bc + ld [hl], $2 + ld hl, $3 + add hl, bc + ld [hl], $0 + ret + +; no known jump sources +Functionc87cf: ; c87cf (32:47cf) + ld hl, $3 + add hl, bc + ld a, [hl] + and a + jr z, .asm_c87d9 + dec [hl] + ret +.asm_c87d9 + ld [hl], $10 + call Functionc80e5 + +; no known jump sources +Functionc87de: ; c87de (32:47de) + ld a, [$FF00+$c7] + ld l, a + ld a, [$FF00+$c8] + sub l + dec a + ld hl, $2 + add hl, bc + cp [hl] + ret c + ld a, [hl] + push af + and $7 + jr nz, .asm_c87f6 + ld hl, $1 + add hl, bc + dec [hl] +.asm_c87f6 + pop af + call Functionc901b + ld hl, $2 + add hl, bc + inc [hl] + inc [hl] + ret + +; no known jump sources +Functionc8801: ; c8801 (32:4801) + call Functionc8f0a + ret + +; no known jump sources +Functionc8805: ; c8805 (32:4805) + call Functionc80d7 ; ; ; call does not return + +; no known jump sources +Jumptable_c8808: ; c8808 (32:4808) + dw Functionc8810 + dw Functionc8869 + dw Functionc8888 + dw Functionc8833 + + +; no known jump sources +Functionc8810: ; c8810 (32:4810) + call Functionc80e5 + call Functionc8eca + ld a, $43 + call Functionc8ede + ld a, [$FF00+$c8] + inc a + ld [$FF00+$c8], a + ld hl, $3 + add hl, bc + ld [hl], $0 + call Functionc9038 + jr nz, .asm_c882f + ld a, $2 + jr .asm_c8831 +.asm_c882f + ld a, $fe +.asm_c8831 + ld [hl], a + ret + +; no known jump sources +Functionc8833: ; c8833 (32:4833) + call Functionc8f0a + ret + +; no known jump sources +Functionc8837: ; c8837 (32:4837) + call Functionc80d7 ; ; ; call does not return + +; no known jump sources +Jumptable_c883a: ; c883a (32:483a) + dw Functionc8842 + dw Functionc8869 + dw Functionc8888 + dw Functionc8865 + + +; no known jump sources +Functionc8842: ; c8842 (32:4842) + call Functionc80e5 + call Functionc8eca + ld a, $43 + call Functionc8ef4 + ld a, [$FF00+$c8] + inc a + ld [$FF00+$c8], a + ld hl, $3 + add hl, bc + ld [hl], $0 + call Functionc9038 + jr nz, .asm_c8861 + ld a, $2 + jr .asm_c8863 +.asm_c8861 + ld a, $fe +.asm_c8863 + ld [hl], a + ret + +; no known jump sources +Functionc8865: ; c8865 (32:4865) + call Functionc8f0a + ret + +; no known jump sources +Functionc8869: ; c8869 (32:4869) + ld hl, $3 + add hl, bc + ld a, [hl] + cp $f8 + jr z, .asm_c8876 + cp $8 + jr nz, .asm_c8879 +.asm_c8876 + call Functionc80e5 +.asm_c8879 + call Functionc88a5 + ld hl, $2 + add hl, bc + ld a, [hl] + ld hl, $3 + add hl, bc + add [hl] + ld [hl], a + ret + +; no known jump sources +Functionc8888: ; c8888 (32:4888) + ld hl, $3 + add hl, bc + ld a, [hl] + and a + jr nz, .asm_c8893 + call Functionc80e5 +.asm_c8893 + call Functionc88a5 + ld hl, $2 + add hl, bc + ld a, [hl] + xor $ff + inc a + ld hl, $3 + add hl, bc + add [hl] + ld [hl], a + ret + +; known jump sources: c8879 (32:4879), c8893 (32:4893) +Functionc88a5: ; c88a5 (32:48a5) + push af + ld a, [FXAnimIDHi] ; $cfc3 + or a + jr nz, .asm_c88b3 + ld a, [FXAnimIDLo] ; $cfc2 + cp $cd + jr z, .asm_c88b7 +.asm_c88b3 + pop af + jp Functionc900b +.asm_c88b7 + ld a, [$FF00+$c7] + ld d, a + ld a, [$FF00+$c8] + sub d + ld d, a + ld h, $d2 + ld a, [hSCY] ; $ff00+$d0 + or a + jr nz, .asm_c88d0 + ld a, [$FF00+$c7] + or a + jr z, .asm_c88d6 + dec a + ld l, a + ld [hl], $0 + jr .asm_c88d6 +.asm_c88d0 + ld a, [$FF00+$c8] + dec a + ld l, a + ld [hl], $0 +.asm_c88d6 + ld a, [hSCY] ; $ff00+$d0 + ld l, a + ld a, [$FF00+$c7] + sub l + jr nc, .asm_c88e0 + xor a + dec d +.asm_c88e0 + ld l, a + pop af +.asm_c88e2 + ld [hli], a + dec d + jr nz, .asm_c88e2 + ret + +; no known jump sources +Functionc88e7: ; c88e7 (32:48e7) + call Functionc80d7 ; ; ; call does not return + +; no known jump sources +Jumptable_c88ea: ; c88ea (32:48ea) + dw Functionc88f6 + dw Functionc8869 + dw Functionc8888 + dw Functionc88f2 + + +; no known jump sources +Functionc88f2: ; c88f2 (32:48f2) + call Functionc8f0a + ret + +; no known jump sources +Functionc88f6: ; c88f6 (32:48f6) + call Functionc80e5 + call Functionc8eca + ld a, $43 + call Functionc8ede + ld a, [$FF00+$c8] + inc a + ld [$FF00+$c8], a + ld hl, $3 + add hl, bc + ld [hl], $0 + call Functionc9038 + jr nz, .asm_c8915 + ld a, $fe + jr .asm_c8917 +.asm_c8915 + ld a, $2 +.asm_c8917 + ld [hl], a + ret + +; no known jump sources +Functionc8919: ; c8919 (32:4919) + call Functionc80d7 ; ; ; call does not return + +; no known jump sources +Jumptable_c891c: ; c891c (32:491c) + dw Functionc88f6 + dw Functionc8869 + dw Functionc8929 + dw Functionc8888 + dw Functionc8926 + + +; no known jump sources +Functionc8926: ; c8926 (32:4926) + call Functionc8f0a + +; no known jump sources +Functionc8929: ; c8929 (32:4929) + ret + +; no known jump sources +Functionc892a: ; c892a (32:492a) + call Functionc80d7 ; ; ; call does not return + +; no known jump sources +Jumptable_c892d: ; c892d (32:492d) + dw Functionc8933 + dw Functionc894a + dw Functionc8960 + + +; no known jump sources +Functionc8933: ; c8933 (32:4933) + call Functionc80e5 + call Functionc8eca + ld a, $43 + call Functionc8ede + ld a, [$FF00+$c8] + inc a + ld [$FF00+$c8], a + ld hl, $3 + add hl, bc + ld [hl], $0 + ret + +; no known jump sources +Functionc894a: ; c894a (32:494a) + ld hl, $3 + add hl, bc + ld a, [hl] + ld d, $8 + call Functionc905d + call Functionc900b + ld hl, $3 + add hl, bc + ld a, [hl] + add $4 + ld [hl], a + ret + +; no known jump sources +Functionc8960: ; c8960 (32:4960) + call Functionc8f0a + ret + +; no known jump sources +Functionc8964: ; c8964 (32:4964) + call Functionc80d7 ; ; ; call does not return + +; no known jump sources +Jumptable_c8967: ; c8967 (32:4967) + dw Functionc896d + dw Functionc8985 + dw Functionc89b1 + + +; no known jump sources +Functionc896d: ; c896d (32:496d) + call Functionc80e5 + call Functionc8eca + ld a, $43 + call Functionc8ede + ld a, [$FF00+$c8] + inc a + ld [$FF00+$c8], a + xor a + ld hl, $2 + add hl, bc + ld [hli], a + ld [hl], a + ret + +; no known jump sources +Functionc8985: ; c8985 (32:4985) + ld hl, $3 + add hl, bc + ld a, [hl] + ld d, $6 + call Functionc905d + push af + ld hl, $2 + add hl, bc + ld a, [hl] + ld d, $2 + call Functionc905d + ld e, a + pop af + add e + call Functionc900b + ld hl, $2 + add hl, bc + ld a, [hl] + add $8 + ld [hl], a + ld hl, $3 + add hl, bc + ld a, [hl] + add $2 + ld [hl], a + ret + +; no known jump sources +Functionc89b1: ; c89b1 (32:49b1) + call Functionc8f0a + ret + +; no known jump sources +Functionc89b5: ; c89b5 (32:49b5) + call Functionc80d7 ; ; ; call does not return + +; no known jump sources +Jumptable_c89b8: ; c89b8 (32:49b8) + dw Functionc89be + dw Functionc89ca + dw Functionc89da + + +; no known jump sources +Functionc89be: ; c89be (32:49be) + call Functionc80e5 + call Functionc8eca + ld a, $43 + call Functionc8ede + ret + +; no known jump sources +Functionc89ca: ; c89ca (32:49ca) + ld hl, $3 + add hl, bc + ld a, [hl] + cp $20 + ret nc + inc [hl] + ld d, a + ld e, $4 + call Functionc8f2e + ret + +; no known jump sources +Functionc89da: ; c89da (32:49da) + ld hl, $3 + add hl, bc + ld a, [hl] + and a + jr z, .asm_c89ea + dec [hl] + ld d, a + ld e, $4 + call Functionc8f2e + ret +.asm_c89ea + call Functionc8f0a + ret + +; no known jump sources +Functionc89ee: ; c89ee (32:49ee) + call Functionc80d7 ; ; ; call does not return + +; no known jump sources +Jumptable_c89f1: ; c89f1 (32:49f1) + dw Functionc89f7 + dw Functionc8a14 + dw Functionc8a36 + + +; no known jump sources +Functionc89f7: ; c89f7 (32:49f7) + call Functionc80e5 + call Functionc8eca + ld a, $42 + call Functionc8ef4 + ld a, [$FF00+$c8] + inc a + ld [$FF00+$c8], a + ld hl, $2 + add hl, bc + ld [hl], $1 + ld hl, $3 + add hl, bc + ld [hl], $20 + ret + +; no known jump sources +Functionc8a14: ; c8a14 (32:4a14) + ld hl, $2 + add hl, bc + ld a, [hl] + cp $38 + ret nc + push af + ld hl, $3 + add hl, bc + ld a, [hl] + ld d, $10 + call Functionc9066 + add $10 + ld d, a + pop af + add d + call Functionc901b + ld hl, $3 + add hl, bc + inc [hl] + inc [hl] + ret + +; no known jump sources +Functionc8a36: ; c8a36 (32:4a36) + call Functionc8f0a + ret + +; no known jump sources +Functionc8a3a: ; c8a3a (32:4a3a) + call Functionc80d7 ; ; ; call does not return + +; no known jump sources +Jumptable_c8a3d: ; c8a3d (32:4a3d) + dw Functionc8a49 + dw Functionc8a6f + dw Functionc8a70 + dw Functionc8a88 + dw Functionc8a6f + dw Functionc8aac + + +; no known jump sources +Functionc8a49: ; c8a49 (32:4a49) + call Functionc80e5 + ld a, $e4 + call Functionc8ecb + ld a, $47 + call Functionc8ede + ld a, [$FF00+$c8] + inc a + ld [$FF00+$c8], a + ld a, [$FF00+$c7] + ld l, a + ld h, $d2 +.asm_c8a60 + ld a, [$FF00+$c8] + cp l + jr z, .asm_c8a69 + xor a + ld [hli], a + jr .asm_c8a60 +.asm_c8a69 + ld hl, $3 + add hl, bc + ld [hl], $0 + +; no known jump sources +Functionc8a6f: ; c8a6f (32:4a6f) + ret + +; no known jump sources +Functionc8a70: ; c8a70 (32:4a70) + call Functionc8ab0 + jr nc, .asm_c8a79 + call Functionc8a9a + ret +.asm_c8a79 + ld hl, $3 + add hl, bc + ld [hl], $0 + ld a, [$FF00+$c7] + inc a + ld [$FF00+$c7], a + call Functionc80e5 + ret + +; no known jump sources +Functionc8a88: ; c8a88 (32:4a88) + call Functionc8ab0 + jr nc, .asm_c8a96 + call Functionc8a9a + ld a, [$FF00+$c8] + dec a + ld l, a + ld [hl], e + ret +.asm_c8a96 + call Functionc80e5 + ret + +; known jump sources: c8a75 (32:4a75), c8a8d (32:4a8d) +Functionc8a9a: ; c8a9a (32:4a9a) + ld e, a + ld a, [$FF00+$c7] + ld l, a + ld a, [$FF00+$c8] + sub l + srl a + ld h, $d2 +.asm_c8aa5 + ld [hl], e + inc hl + inc hl + dec a + jr nz, .asm_c8aa5 + ret + +; no known jump sources +Functionc8aac: ; c8aac (32:4aac) + call Functionc8f19 + ret + +; known jump sources: c8a70 (32:4a70), c8a88 (32:4a88) +Functionc8ab0: ; c8ab0 (32:4ab0) + ld hl, $3 + add hl, bc + ld a, [hl] + inc [hl] + srl a + srl a + srl a + ld e, a + ld d, $0 + ld hl, $4ac7 + add hl, de + ld a, [hl] + cp $ff + ret +; c8ac7 (32:4ac7) + +INCBIN "baserom.gbc",$c8ac7,$c8acc - $c8ac7 + +; no known jump sources +Functionc8acc: ; c8acc (32:4acc) + call Functionc80d7 ; ; ; call does not return + +; no known jump sources +Jumptable_c8acf: ; c8acf (32:4acf) + dw Functionc8ad3 + dw Functionc8ae5 + + +; no known jump sources +Functionc8ad3: ; c8ad3 (32:4ad3) + call Functionc80e5 + call Functionc8eca + ld a, $43 + call Functionc8ede + ld hl, $2 + add hl, bc + ld [hl], $40 + ret + +; no known jump sources +Functionc8ae5: ; c8ae5 (32:4ae5) + ld hl, $2 + add hl, bc + ld a, [hl] + and a + jr z, .asm_c8afc + dec [hl] + srl a + srl a + srl a + and $f + ld d, a + ld e, a + call Functionc8f2e + ret +.asm_c8afc + call Functionc8f0a + ret + +; no known jump sources +Functionc8b00: ; c8b00 (32:4b00) + ld a, [hCGB] ; $ff00+$e6 + and a + jr nz, asm_c8b7a + call Functionc80d7 ; ; ; call does not return + +; no known jump sources +Jumptable_c8b08: ; c8b08 (32:4b08) + dw Functionc8b0e + dw Functionc8b22 + dw Functionc8b60 + + +; no known jump sources +Functionc8b0e: ; c8b0e (32:4b0e) + call Functionc80e5 + ld a, $e4 + call Functionc8ecb + ld a, $47 + ld [hLCDStatCustom], a ; $ff00+$c6 + xor a + ld [$FF00+$c7], a + ld a, $60 + ld [$FF00+$c8], a + ret + +; no known jump sources +Functionc8b22: ; c8b22 (32:4b22) + ld hl, $3 + add hl, bc + ld a, [hl] + inc [hl] + ld e, a + and $7 + ret nz + ld a, e + and $18 + sla a + swap a + sla a + ld e, a + ld d, $0 + push bc + call Functionc9038 + jr nz, .asm_c8b4d + ld hl, $4bd8 + add hl, de + ld a, [hli] + ld [$cfc9], a + ld d, a + ld e, [hl] + ld bc, $2f30 + jr .asm_c8b5b +.asm_c8b4d + ld hl, $4be0 + add hl, de + ld d, [hl] + inc hl + ld a, [hl] + ld [$cfc9], a + ld e, a + ld bc, $3728 +.asm_c8b5b + call Functionc8b6c + pop bc + ret + +; no known jump sources +Functionc8b60: ; c8b60 (32:4b60) + call Functionc8f19 + ld a, $e4 + ld [$cfc7], a + ld [$cfc9], a + ret + +; known jump sources: c8b5b (32:4b5b) +Functionc8b6c: ; c8b6c (32:4b6c) + ld hl, $d200 +.asm_c8b6f + ld [hl], d + inc hl + dec b + jr nz, .asm_c8b6f +.asm_c8b74 + ld [hl], e + inc hl + dec c + jr nz, .asm_c8b74 + ret +asm_c8b7a: ; c8b7a (32:4b7a) + ld de, $4b81 + call Functionc80ca + jp [hl] +; c8b81 (32:4b81) + +INCBIN "baserom.gbc",$c8b81,$c8be8 - $c8b81 + +; no known jump sources +Functionc8be8: ; c8be8 (32:4be8) + ld de, $4bef + call Functionc8d77 + ret +; c8bef (32:4bef) + +INCBIN "baserom.gbc",$c8bef,$c8bf2 - $c8bef + +; no known jump sources +Functionc8bf2: ; c8bf2 (32:4bf2) + ld de, $4bf9 + call Functionc8d77 + ret +; c8bf9 (32:4bf9) + +INCBIN "baserom.gbc",$c8bf9,$c8bfd - $c8bf9 + +; no known jump sources +Functionc8bfd: ; c8bfd (32:4bfd) + ld de, $4c04 + call Functionc8d77 + ret +; c8c04 (32:4c04) + +INCBIN "baserom.gbc",$c8c04,$c8c08 - $c8c04 + +; no known jump sources +Functionc8c08: ; c8c08 (32:4c08) + ld de, $4c0f + call Functionc8d77 + ret +; c8c0f (32:4c0f) + +INCBIN "baserom.gbc",$c8c0f,$c8c14 - $c8c0f + +; no known jump sources +Functionc8c14: ; c8c14 (32:4c14) + ld de, $4c1b + call Functionc8d77 + ret +; c8c1b (32:4c1b) + +INCBIN "baserom.gbc",$c8c1b,$c8c20 - $c8c1b + +; no known jump sources +Functionc8c20: ; c8c20 (32:4c20) + ld de, $4c27 + call Functionc8d77 + ret +; c8c27 (32:4c27) + +INCBIN "baserom.gbc",$c8c27,$c8c30 - $c8c27 + +; no known jump sources +Functionc8c30: ; c8c30 (32:4c30) + ld de, $4c37 + call Functionc8d77 + ret +; c8c37 (32:4c37) + +INCBIN "baserom.gbc",$c8c37,$c8c3c - $c8c37 + +; no known jump sources +Functionc8c3c: ; c8c3c (32:4c3c) + ld de, $4c43 + call Functionc8d77 + ret +; c8c43 (32:4c43) + +INCBIN "baserom.gbc",$c8c43,$c8c55 - $c8c43 + +; no known jump sources +Functionc8c55: ; c8c55 (32:4c55) + ld de, $4c5c + call Functionc8d77 + ret +; c8c5c (32:4c5c) + +INCBIN "baserom.gbc",$c8c5c,$c8c61 - $c8c5c + +; no known jump sources +Functionc8c61: ; c8c61 (32:4c61) + call Functionc80d7 ; ; ; call does not return + +; no known jump sources +Jumptable_c8c64: ; c8c64 (32:4c64) + dw Functionc8c68 + dw Functionc8c85 + + +; no known jump sources +Functionc8c68: ; c8c68 (32:4c68) + call Functionc80e5 + call Functionc8eca + ld a, $43 + call Functionc8ede + ld a, [$FF00+$c8] + inc a + ld [$FF00+$c8], a + ld hl, $2 + add hl, bc + ld [hl], $1 + ld hl, $3 + add hl, bc + ld [hl], $20 + ret + +; no known jump sources +Functionc8c85: ; c8c85 (32:4c85) + ld hl, $3 + add hl, bc + ld a, [hl] + and a + jr z, .asm_c8c9e + dec [hl] + and $1 + ret nz + ld hl, $2 + add hl, bc + ld a, [hl] + xor $ff + inc a + ld [hl], a + call Functionc900b + ret +.asm_c8c9e + call Functionc8f0a + ret + +; no known jump sources +Functionc8ca2: ; c8ca2 (32:4ca2) + call Functionc80d7 ; ; ; call does not return + +; no known jump sources +Jumptable_c8ca5: ; c8ca5 (32:4ca5) + dw Functionc8cab + dw Functionc8cc3 + dw Functionc8cdd + + +; no known jump sources +Functionc8cab: ; c8cab (32:4cab) + call Functionc80e5 + call Functionc8eca + ld a, $43 + ld [hLCDStatCustom], a ; $ff00+$c6 + xor a + ld [$FF00+$c7], a + ld a, $37 + ld [$FF00+$c8], a + ld hl, $3 + add hl, bc + ld [hl], $0 + ret + +; no known jump sources +Functionc8cc3: ; c8cc3 (32:4cc3) + ld hl, $3 + add hl, bc + ld a, [hl] + cp $40 + jr nc, Functionc8cdd + ld d, $6 + call Functionc905d + call Functionc900b + ld hl, $3 + add hl, bc + ld a, [hl] + add $2 + ld [hl], a + ret + +; known jump sources: c8cca (32:4cca) +Functionc8cdd: ; c8cdd (32:4cdd) + call Functionc8f0a + ret + +; no known jump sources +Functionc8ce1: ; c8ce1 (32:4ce1) + call Functionc8d0b + jr c, .asm_c8cea + bit 7, a + jr z, .asm_c8ceb +.asm_c8cea + xor a +.asm_c8ceb + push af + call DelayFrame + pop af + ld [hSCY], a ; $ff00+$d0 + xor $ff + inc a + ld [$d314], a + ret + +; no known jump sources +Functionc8cf9: ; c8cf9 (32:4cf9) + call Functionc8d0b + jr nc, .asm_c8cff + xor a +.asm_c8cff + ld [hSCX], a ; $ff00+$cf + ret + +; no known jump sources +Functionc8d02: ; c8d02 (32:4d02) + call Functionc8d0b + jr nc, .asm_c8d08 + xor a +.asm_c8d08 + ld [hSCY], a ; $ff00+$d0 + ret + +; known jump sources: c8ce1 (32:4ce1), c8cf9 (32:4cf9), c8d02 (32:4d02) +Functionc8d0b: ; c8d0b (32:4d0b) + ld hl, $1 + add hl, bc + ld a, [hl] + and a + jr nz, .asm_c8d18 + call EndBattleBGEffect + scf + ret +.asm_c8d18 + dec [hl] + ld hl, $3 + add hl, bc + ld a, [hl] + and $f + jr z, .asm_c8d2a + dec [hl] + ld hl, $2 + add hl, bc + ld a, [hl] + and a + ret +.asm_c8d2a + ld a, [hl] + swap a + or [hl] + ld [hl], a + ld hl, $2 + add hl, bc + ld a, [hl] + xor $ff + inc a + ld [hl], a + and a + ret + +; no known jump sources +Functionc8d3a: ; c8d3a (32:4d3a) + ld hl, $3 + add hl, bc + ld a, [hl] + cp $40 + jr nc, .asm_c8d53 + ld d, $6 + call Functionc905d + ld [hSCX], a ; $ff00+$cf + ld hl, $3 + add hl, bc + ld a, [hl] + add $2 + ld [hl], a + ret +.asm_c8d53 + xor a + ld [hSCX], a ; $ff00+$cf + ret + +; known jump sources: c8130 (32:4130), c8144 (32:4144), c8158 (32:4158), c817e (32:417e), c8198 (32:4198), c81a8 (32:41a8) +Functionc8d57: ; c8d57 (32:4d57) + ld hl, $1 + add hl, bc + ld a, [hl] + and a + jr z, .asm_c8d69 + + dec [hl] + ld hl, $3 + add hl, bc + ld a, [hl] + call Functionc8eb2 + ret + +.asm_c8d69 + ld hl, $2 + add hl, bc + ld a, [hl] + ld hl, $1 + add hl, bc + ld [hl], a + call Functionc8eac + ret + +; known jump sources: c8beb (32:4beb), c8bf5 (32:4bf5), c8c00 (32:4c00), c8c0b (32:4c0b), c8c17 (32:4c17), c8c23 (32:4c23), c8c33 (32:4c33), c8c3f (32:4c3f), c8c58 (32:4c58) +Functionc8d77: ; c8d77 (32:4d77) + ld a, [hCGB] ; $ff00+$e6 + and a + jr nz, asm_c8dd4 + push de + ld de, Jumptable_c8d85 + call Functionc80ca + pop de + jp [hl] + +; no known jump sources +Jumptable_c8d85: ; c8d85 (32:4d85) + dw Functionc8d8b + dw Functionc8daa + dw Functionc8dc9 + + +; no known jump sources +Functionc8d8b: ; c8d8b (32:4d8b) + call Functionc80e5 + ld a, $e4 + call Functionc8ecb + ld a, $47 + call Functionc8ede + ld a, [$FF00+$c8] + inc a + ld [$FF00+$c8], a + ld hl, $3 + add hl, bc + ld a, [hl] + ld [hl], $0 + ld hl, $2 + add hl, bc + ld [hl], a + ret + +; no known jump sources +Functionc8daa: ; c8daa (32:4daa) + ld hl, $2 + add hl, bc + ld a, [hl] + and $f + jr z, .asm_c8db5 + dec [hl] + ret +.asm_c8db5 + ld a, [hl] + swap a + or [hl] + ld [hl], a + call Functionc8eac + jr c, .asm_c8dc3 + call Functionc900b + ret +.asm_c8dc3 + ld hl, $3 + add hl, bc + dec [hl] + ret + +; no known jump sources +Functionc8dc9: ; c8dc9 (32:4dc9) + call Functionc8f19 + ld a, $e4 + ld [rBGP], a ; $ff00+$47 + call EndBattleBGEffect + ret +asm_c8dd4: ; c8dd4 (32:4dd4) + push de + ld de, Jumptable_c8ddd + call Functionc80ca + pop de + jp [hl] + +; no known jump sources +Jumptable_c8ddd: ; c8ddd (32:4ddd) + dw Functionc8de7 + dw Functionc8e02 + dw Functionc8e21 + dw Functionc8e2a + dw Functionc8e49 + + +; no known jump sources +Functionc8de7: ; c8de7 (32:4de7) + call Functionc9038 + jr nz, .asm_c8df2 + call Functionc80e5 + call Functionc80e5 +.asm_c8df2 + call Functionc80e5 + ld hl, $3 + add hl, bc + ld a, [hl] + ld [hl], $0 + ld hl, $2 + add hl, bc + ld [hl], a + ret + +; no known jump sources +Functionc8e02: ; c8e02 (32:4e02) + ld hl, $2 + add hl, bc + ld a, [hl] + and $f + jr z, .asm_c8e0d + dec [hl] + ret +.asm_c8e0d + ld a, [hl] + swap a + or [hl] + ld [hl], a + call Functionc8eac + jr c, .asm_c8e1b + call Functionc8e52 + ret +.asm_c8e1b + ld hl, $3 + add hl, bc + dec [hl] + ret + +; no known jump sources +Functionc8e21: ; c8e21 (32:4e21) + ld a, $e4 + call Functionc8e52 + call EndBattleBGEffect + ret + +; no known jump sources +Functionc8e2a: ; c8e2a (32:4e2a) + ld hl, $2 + add hl, bc + ld a, [hl] + and $f + jr z, .asm_c8e35 + dec [hl] + ret +.asm_c8e35 + ld a, [hl] + swap a + or [hl] + ld [hl], a + call Functionc8eac + jr c, .asm_c8e43 + call Functionc8e7f + ret +.asm_c8e43 + ld hl, $3 + add hl, bc + dec [hl] + ret + +; no known jump sources +Functionc8e49: ; c8e49 (32:4e49) + ld a, $e4 + call Functionc8e7f + call EndBattleBGEffect + ret + +; known jump sources: c8e17 (32:4e17), c8e23 (32:4e23) +Functionc8e52: ; c8e52 (32:4e52) + ld h, a + ld a, [rSVBK] ; $ff00+$70 + push af + ld a, $5 + ld [rSVBK], a ; $ff00+$70 + ld a, h + push bc + push af + ld hl, BGPals ; $d080 + ld de, Unkn1Pals ; $d000 + ld b, a + ld c, $1 + call CopyPals + ld hl, $d0c8 + ld de, $d048 + pop af + ld b, a + ld c, $1 + call CopyPals + pop bc + pop af + ld [rSVBK], a ; $ff00+$70 + ld a, $1 + ld [hCGBPalUpdate], a ; $ff00+$e5 + ret + +; known jump sources: c8e3f (32:4e3f), c8e4b (32:4e4b) +Functionc8e7f: ; c8e7f (32:4e7f) + ld h, a + ld a, [rSVBK] ; $ff00+$70 + push af + ld a, $5 + ld [rSVBK], a ; $ff00+$70 + ld a, h + push bc + push af + ld hl, $d088 + ld de, $d008 + ld b, a + ld c, $1 + call CopyPals + ld hl, OBPals ; $d0c0 + ld de, MartPointer ; $d040 (aliases: Unkn2Pals) + pop af + ld b, a + ld c, $1 + call CopyPals + pop bc + pop af + ld [rSVBK], a ; $ff00+$70 + ld a, $1 + ld [hCGBPalUpdate], a ; $ff00+$e5 + ret + +; known jump sources: c8d73 (32:4d73), c8dba (32:4dba), c8e12 (32:4e12), c8e3a (32:4e3a) +Functionc8eac: ; c8eac (32:4eac) + ld hl, $3 + add hl, bc + ld a, [hl] + inc [hl] + +; known jump sources: c8d65 (32:4d65) +Functionc8eb2: ; c8eb2 (32:4eb2) + ld l, a + ld h, $0 + add hl, de + ld a, [hl] + cp $ff + jr z, .asm_c8ec8 + cp $fe + jr nz, .asm_c8ec6 + ld a, [de] + ld hl, $3 + add hl, bc + ld [hl], $0 +.asm_c8ec6 + and a + ret +.asm_c8ec8 + scf + ret + +; known jump sources: c85a5 (32:45a5), c85c2 (32:45c2), c85fc (32:45fc), c8613 (32:4613), c864b (32:464b), c866e (32:466e), c869b (32:469b), c8715 (32:4715), c876d (32:476d), c87b5 (32:47b5), c8813 (32:4813), c8845 (32:4845), c88f9 (32:48f9), c8936 (32:4936), c8970 (32:4970), c89c1 (32:49c1), c89fa (32:49fa), c8ad6 (32:4ad6), c8c6b (32:4c6b), c8cae (32:4cae), c8f0f (32:4f0f), c8f2a (32:4f2a) +Functionc8eca: ; c8eca (32:4eca) + xor a + +; known jump sources: c8a4e (32:4a4e), c8b13 (32:4b13), c8d90 (32:4d90) +Functionc8ecb: ; c8ecb (32:4ecb) + ld hl, CurMartEnd ; $d100 (aliases: LYOverrides) + ld e, $99 +.asm_c8ed0 + ld [hli], a + dec e + jr nz, .asm_c8ed0 + ld hl, $d200 + ld e, $91 +.asm_c8ed9 + ld [hli], a + dec e + jr nz, .asm_c8ed9 + ret + +; known jump sources: c85c7 (32:45c7), c8650 (32:4650), c8673 (32:4673), c86a0 (32:46a0), c871a (32:471a), c8772 (32:4772), c87ba (32:47ba), c8818 (32:4818), c88fe (32:48fe), c893b (32:493b), c8975 (32:4975), c89c6 (32:49c6), c8a53 (32:4a53), c8adb (32:4adb), c8c70 (32:4c70), c8d95 (32:4d95) +Functionc8ede: ; c8ede (32:4ede) + ld [hLCDStatCustom], a ; $ff00+$c6 + call Functionc9038 + jr nz, .asm_c8eea + ld de, $36 + jr .asm_c8eed +.asm_c8eea + ld de, $2f5e +.asm_c8eed + ld a, d + ld [$FF00+$c7], a + ld a, e + ld [$FF00+$c8], a + ret + +; known jump sources: c884a (32:484a), c89ff (32:49ff) +Functionc8ef4: ; c8ef4 (32:4ef4) + ld [hLCDStatCustom], a ; $ff00+$c6 + call Functionc9038 + jr nz, .asm_c8f00 + ld de, $36 + jr .asm_c8f03 +.asm_c8f00 + ld de, $2d5e +.asm_c8f03 + ld a, d + ld [$FF00+$c7], a + ld a, e + ld [$FF00+$c8], a + ret + +; known jump sources: c8561 (32:4561), c85be (32:45be), c8603 (32:4603), c863b (32:463b), c865e (32:465e), c8685 (32:4685), c8705 (32:4705), c875d (32:475d), c87a3 (32:47a3), c8801 (32:4801), c8833 (32:4833), c8865 (32:4865), c88f2 (32:48f2), c8926 (32:4926), c8960 (32:4960), c89b1 (32:49b1), c89ea (32:49ea), c8a36 (32:4a36), c8afc (32:4afc), c8c9e (32:4c9e), c8cdd (32:4cdd) +Functionc8f0a: ; c8f0a (32:4f0a) + xor a + ld [$FF00+$c7], a + ld [$FF00+$c8], a + call Functionc8eca + xor a + ld [hLCDStatCustom], a ; $ff00+$c6 + call EndBattleBGEffect + ret + +; known jump sources: c8aac (32:4aac), c8b60 (32:4b60), c8dc9 (32:4dc9) +Functionc8f19: ; c8f19 (32:4f19) + xor a + ld [hLCDStatCustom], a ; $ff00+$c6 + ld a, $e4 + ld [rBGP], a ; $ff00+$47 + ld [$cfc7], a + ld [$cfc9], a + ld [$FF00+$c7], a + ld [$FF00+$c8], a + call Functionc8eca + ret + +; known jump sources: c85b6 (32:45b6), c8624 (32:4624), c8656 (32:4656), c867d (32:467d), c8724 (32:4724), c89d6 (32:49d6), c89e6 (32:49e6), c8af8 (32:4af8) +Functionc8f2e: ; c8f2e (32:4f2e) + push bc + xor a + ld [$d419], a + ld a, e + ld [$d41a], a + ld a, d + ld [$d41b], a + ld a, $80 + ld [$d41c], a + ld bc, $d200 +.asm_c8f43 + ld a, [$FF00+$c7] + cp c + jr nc, .asm_c8f58 + ld a, [$FF00+$c8] + cp c + jr c, .asm_c8f58 + ld a, [$d41b] + ld d, a + ld a, [$d419] + call Functionc905d + ld [bc], a +.asm_c8f58 + inc bc + ld a, [$d41a] + ld hl, $d419 + add [hl] + ld [hl], a + ld hl, $d41c + dec [hl] + jr nz, .asm_c8f43 + pop bc + ret + +; known jump sources: c8554 (32:4554) +Functionc8f69: ; c8f69 (32:4f69) + push bc + xor a + ld [$d419], a + ld a, e + ld [$d41a], a + ld a, d + ld [$d41b], a + ld a, $40 + ld [$d41c], a + ld bc, $d422 +.asm_c8f7e + ld a, [$d41b] + ld d, a + ld a, [$d419] + call Functionc905d + ld [bc], a + inc bc + ld a, [$d41a] + ld hl, $d419 + add [hl] + ld [hl], a + ld hl, $d41c + dec [hl] + jr nz, .asm_c8f7e + pop bc + ret + +; known jump sources: c85f8 (32:45f8) +Functionc8f9a: ; c8f9a (32:4f9a) + push bc + ld [$d41c], a + ld a, e + ld [$d41a], a + ld a, d + ld [$d41b], a + call Functionc8fe4 + ld hl, $d200 + add hl, de + ld c, l + ld b, h +.asm_c8faf + ld a, [$d41c] + and a + jr z, .asm_c8fe1 + dec a + ld [$d41c], a + push af + ld a, [$d41b] + ld d, a + ld a, [$d41a] + push hl + call Functionc905d + ld e, a + pop hl + ld a, [$FF00+$c8] + cp c + jr c, .asm_c8fcf + ld a, e + ld [bc], a + inc bc +.asm_c8fcf + ld a, [$FF00+$c7] + cp l + jr nc, .asm_c8fd6 + ld [hl], e + dec hl +.asm_c8fd6 + ld a, [$d41a] + add $4 + ld [$d41a], a + pop af + jr .asm_c8faf +.asm_c8fe1 + pop bc + and a + ret + +; known jump sources: c8fa6 (32:4fa6) +Functionc8fe4: ; c8fe4 (32:4fe4) + ld a, [$FF00+$c7] + ld e, a + ld a, [$d419] + add e + ld e, a + ld d, $0 + ret + +; known jump sources: c85ba (32:45ba), c8637 (32:4637), c865a (32:465a), c8681 (32:4681) +Functionc8fef: ; c8fef (32:4fef) + push bc + ld a, [$FF00+$c7] + ld l, a + inc a + ld e, a + ld h, $d2 + ld d, h + ld a, [$FF00+$c8] + sub l + and a + jr z, .asm_c9009 + ld c, a + ld a, [hl] + push af +.asm_c9001 + ld a, [de] + inc de + ld [hli], a + dec c + jr nz, .asm_c9001 + pop af + ld [hl], a +.asm_c9009 + pop bc + ret + +; known jump sources: c88b4 (32:48b4), c8954 (32:4954), c899d (32:499d), c8c9a (32:4c9a), c8cd1 (32:4cd1), c8dbf (32:4dbf) +Functionc900b: ; c900b (32:500b) + push af + ld h, $d2 + ld a, [$FF00+$c7] + ld l, a + ld a, [$FF00+$c8] + sub l + ld d, a + pop af +.asm_c9016 + ld [hli], a + dec d + jr nz, .asm_c9016 + ret + +; known jump sources: c8790 (32:4790), c87f7 (32:47f7), c8a2c (32:4a2c) +Functionc901b: ; c901b (32:501b) + push af + ld e, a + ld a, [$FF00+$c7] + ld l, a + ld a, [$FF00+$c8] + sub l + sub e + ld d, a + ld h, $d2 + ld a, [$FF00+$c7] + ld l, a + ld a, $90 +.asm_c902c + ld [hli], a + dec e + jr nz, .asm_c902c + pop af + xor $ff +.asm_c9033 + ld [hli], a + dec d + jr nz, .asm_c9033 + ret + +; known jump sources: c81c4 (32:41c4), c81f3 (32:41f3), c8234 (32:4234), c825e (32:425e), c82a1 (32:42a1), c82cb (32:42cb), c8305 (32:4305), c837b (32:437b), c83a8 (32:43a8), c8826 (32:4826), c8858 (32:4858), c890c (32:490c), c8b39 (32:4b39), c8de7 (32:4de7), c8ee0 (32:4ee0), c8ef6 (32:4ef6) +Functionc9038: ; c9038 (32:5038) + ld hl, $2 + add hl, bc + ld a, [hBattleTurn] ; $ff00+$e4 + and $1 + xor [hl] + ret + +; known jump sources: c81ea (32:41ea), c8223 (32:4223), c8290 (32:4290) +Functionc9042: ; c9042 (32:5042) + ld hl, $2 + add hl, bc + ld a, [hBattleTurn] ; $ff00+$e4 + and $1 + xor [hl] + jr nz, .asm_c9053 + ld a, [EnemySubStatus3] ; $c66f + and $60 + ret +.asm_c9053 + ld a, [PlayerSubStatus3] ; $c66a + and $60 + ret + +; known jump sources: c8171 (32:4171), c818b (32:418b) +Functionc9059: ; c9059 (32:5059) + ld a, [hSGB] ; $ff00+$e7 + and a + ret + +; known jump sources: c86d6 (32:46d6), c8951 (32:4951), c898c (32:498c), c8997 (32:4997), c8cce (32:4cce), c8d45 (32:4d45), c8f54 (32:4f54), c8f85 (32:4f85), c8fc2 (32:4fc2) +Functionc905d: ; c905d (32:505d) + ld e, a + callab Functionce765 + ld a, e + ret + +; known jump sources: c8a24 (32:4a24) +Functionc9066: ; c9066 (32:5066) + ld e, a + callab Functionce76b + ld a, e + ret +; c906f (32:506f) + + |