From f2888a2d751a8a71e6d9aa8caa96e60680a83b1f Mon Sep 17 00:00:00 2001 From: yenatch Date: Sat, 20 Jul 2013 01:25:20 -0400 Subject: [PATCH 01/84] more overworld wram labels --- engine/vblank.asm | 6 +++--- wram.asm | 17 +++++++++++++---- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/engine/vblank.asm b/engine/vblank.asm index 5080a56ad..ea1d47260 100644 --- a/engine/vblank.asm +++ b/engine/vblank.asm @@ -146,12 +146,12 @@ VBlank0: ; 2b1 xor a ld [VBlankOccurred], a -; dec $cfb1 until 0 - ld a, [$cfb1] +; dec OverworldDelay until 0 + ld a, [OverworldDelay] and a jr z, .textdelay dec a - ld [$cfb1], a + ld [OverworldDelay], a .textdelay ; dec text delay counter until 0 diff --git a/wram.asm b/wram.asm index b7a610ba4..dec9176db 100644 --- a/wram.asm +++ b/wram.asm @@ -845,7 +845,9 @@ TileX: ; cf83 -SECTION "VBlank",BSS[$cfb2] +SECTION "VBlank",BSS[$cfb1] +OverworldDelay: ; cfb1 + ds 1 TextDelayFrames: ; cfb2 ds 1 VBlankOccurred: ; cfb3 @@ -1086,7 +1088,12 @@ SECTION "UsedSprites",BSS[$d154] UsedSprites: ; d154 ds 32 -SECTION "connections",BSS[$d1a9] +SECTION "map",BSS[$d1a3] + +MapEventBank: ; d1a3 + ds 1 + + ds 5 MapConnections: @@ -1534,8 +1541,10 @@ SECTION "Scripting",BSS[$d434] ScriptFlags: ; d434 SCRIPT_RUNNING EQU 2 ds 1 - - ds 2 +ScriptFlags2: ; d435 + ds 1 +ScriptFlags3: ; d436 + ds 1 ScriptMode: ; d437 SCRIPT_OFF EQU 0 From 6fb2cd66133896bdb1e8f04ec2278a99627edea6 Mon Sep 17 00:00:00 2001 From: yenatch Date: Sat, 20 Jul 2013 01:25:41 -0400 Subject: [PATCH 02/84] no more incbins in bank 25 --- main.asm | 1322 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 1277 insertions(+), 45 deletions(-) diff --git a/main.asm b/main.asm index da4967743..b7b2209a8 100644 --- a/main.asm +++ b/main.asm @@ -101,9 +101,10 @@ RTC: ; 46f ld a, [VramState] bit 0, a ; obj update ret z - -; update palettes - callab TimeOfDayPals +; 47e + +TimeOfDayPals: ; 47e + callab _TimeOfDayPals ret ; 485 @@ -2130,8 +2131,10 @@ SafeTileAnimation: ; 17d3 ret ; 17ff + INCBIN "baserom.gbc", $17ff, $185d - $17ff + GetTileType: ; 185d ; checks the properties of a tile ; input: a = tile id @@ -2155,8 +2158,10 @@ GetTileType: ; 185d ret ; 1875 + INCBIN "baserom.gbc", $1875, $18a0 - $1875 + CheckCounterTile: ; 18a0 cp $90 ret z @@ -2164,7 +2169,12 @@ CheckCounterTile: ; 18a0 ret ; 18a6 -INCBIN "baserom.gbc", $18a6, $18ac - $18a6 +CheckPitTile: ; 18a6 + cp $60 + ret z + cp $68 + ret +; 18ac CheckIceTile: ; 18ac cp $23 @@ -3090,7 +3100,13 @@ GetAnyMapHeaderMember: ; 0x2c0c ; 0x2c1c -INCBIN "baserom.gbc", $2c1c, $2c5b - $2c1c +INCBIN "baserom.gbc", $2c1c, $2c57 - $2c1c + + +GetMapEventBank: ; 2c57 + ld a, [MapEventBank] + ret +; 2c5b GetAnyMapBlockdataBank: ; 2c5b @@ -4580,7 +4596,7 @@ CheckTrainerBattle: ; 360d ld [$d040], a .asm_367e - call $2c57 + call GetMapEventBank ld [EngineBuffer1], a ld a, [$ffe0] call GetMapObject @@ -6481,7 +6497,7 @@ SECTION "bank3",DATA,BANK[$3] INCBIN "baserom.gbc", $c000, $29 SpecialsPointers: ; 0xc029 - dbw $25, $7c28 + dbw BANK(Function97c28), Function97c28 dbw $0a, $5ce8 dbw $0a, $5d11 dbw $0a, $5d92 @@ -17009,7 +17025,7 @@ SECTION "bank23",DATA,BANK[$23] INCBIN "baserom.gbc", $8c000, $8c011 - $8c000 -TimeOfDayPals: ; 8c011 +_TimeOfDayPals: ; 8c011 ; return carry if pals are changed ; forced pals? @@ -18347,7 +18363,183 @@ INCLUDE "maps/map_headers.asm" INCLUDE "maps/second_map_headers.asm" -INCBIN "baserom.gbc", $966b0, $96795 - $966b0 +Function966b0: ; 966b0 + xor a + ld [$d432], a +.asm_966b4 + ld a, [$d432] + ld hl, .pointers + rst JumpTable + ld a, [$d432] + cp 3 ; done + jr nz, .asm_966b4 +.done + ret + +.pointers + dw Function96724 + dw Function9673e + dw Function96773 + dw .done +; 966cb + + +Function966cb: ; 966cb + xor a + ld [ScriptFlags3], a + ret +; 966d0 + +Function966d0: ; 966d0 + ld a, $ff + ld [ScriptFlags3], a + ret +; 966d6 + +Function966d6: ; 966d6 + ld hl, ScriptFlags3 + bit 5, [hl] + ret +; 966dc + +Function966dc: ; 966dc + ld hl, ScriptFlags3 + res 2, [hl] + ret +; 966e2 + +Function966e2: ; 966e2 + ld hl, ScriptFlags3 + res 1, [hl] + ret +; 966e8 + +Function966e8: ; 966e8 + ld hl, ScriptFlags3 + res 0, [hl] + ret +; 966ee + +Function966ee: ; 966ee + ld hl, ScriptFlags3 + res 4, [hl] + ret +; 966f4 + +Function966f4: ; 966f4 + ld hl, ScriptFlags3 + set 2, [hl] + ret +; 966fa + +Function966fa: ; 966fa + ld hl, ScriptFlags3 + set 1, [hl] + ret +; 96700 + +Function96700: ; 96700 + ld hl, ScriptFlags3 + set 0, [hl] + ret +; 96706 + +Function96706: ; 96706 + ld hl, ScriptFlags3 + set 4, [hl] + ret +; 9670c + +Function9670c: ; 9670c + ld hl, ScriptFlags3 + bit 2, [hl] + ret +; 96712 + +Function96712: ; 96712 + ld hl, ScriptFlags3 + bit 1, [hl] + ret +; 96718 + +Function96718: ; 96718 + ld hl, ScriptFlags3 + bit 0, [hl] + ret +; 9671e + +Function9671e: ; 9671e + ld hl, ScriptFlags3 + bit 4, [hl] + ret +; 96724 + + +Function96724: ; 96724 + xor a + ld [ScriptVar], a + xor a + ld [ScriptRunning], a + ld hl, $d432 + ld bc, $3e + call ByteFill + ld a, $4 + ld hl, $53e5 + rst FarCall + call $092f + ; fallthrough +; 9673e + + +Function9673e: ; 9673e + xor a + ld [$d453], a + ld [$d454], a + call Function968d1 + ld a, $5 + ld hl, $5363 + rst FarCall + call Function966cb + ld a, [$ff9f] + cp $f7 + jr nz, .asm_9675a + call Function966d0 +.asm_9675a + ld a, [$ff9f] + cp $f3 + jr nz, .asm_96764 + xor a + ld [PoisonStepCount], a +.asm_96764 + xor a + ld [$ff9f], a + ld a, $2 + ld [$d432], a + ret +; 9676d + + +Function9676d: ; 9676d + ld c, 30 + call DelayFrames + ret +; 96773 + + +Function96773: ; 96773 + call ResetOverworldDelay + call Function967c1 + callba Function97e08 + call DoEvents + ld a, [$d432] + cp 2 + ret nz + call Function967d1 + call NextOverworldFrame + call Function967e1 + call Function967f4 + ret +; 96795 DoEvents: ; 96795 @@ -18355,15 +18547,15 @@ DoEvents: ; 96795 ld hl, .pointers rst JumpTable ret -; 9679d .pointers dw Function967a1 dw Function967ae +; 967a1 Function967a1: ; 967a1 call PlayerEvents - call $66cb + call Function966cb callba ScriptEvents ret ; 967ae @@ -18373,19 +18565,102 @@ Function967ae: ; 967ae ; 967af -INCBIN "baserom.gbc", $967af, $9681f - $967af +MaxOverworldDelay: ; 967af + db 2 +; 967b0 + +ResetOverworldDelay: ; 967b0 + ld a, [MaxOverworldDelay] + ld [OverworldDelay], a + ret +; 967b7 + +NextOverworldFrame: ; 967b7 + ld a, [OverworldDelay] + and a + ret z + ld c, a + call DelayFrames + ret +; 967c1 + + +Function967c1: ; 967c1 + ld a, [$d433] + cp 1 + ret z + call UpdateTime + call GetJoypadPublic + call TimeOfDayPals + ret +; 967d1 + +Function967d1: ; 967d1 + ld a, $1 + ld hl, $576a + rst FarCall + ld a, $3 + ld hl, $5497 + rst FarCall + call Function96812 + ret +; 967e1 + +Function967e1: ; 967e1 + ld a, $1 + ld hl, $5920 + rst FarCall + ld a, $3 + ld hl, $54d2 + rst FarCall + ld a, $2e + ld hl, $4098 + rst FarCall + ret +; 967f4 + +Function967f4: ; 967f4 + ld a, [$d150] + bit 5, a + jr z, .asm_96806 + bit 6, a + jr z, .asm_9680c + bit 4, a + jr nz, .asm_9680c + call Function966d0 + +.asm_96806 + ld a, $0 + ld [$d433], a + ret + +.asm_9680c + ld a, $1 + ld [$d433], a + ret +; 96812 + +Function96812: ; 96812 + ld hl, $d150 + bit 6, [hl] + ret z + ld a, $2 + ld hl, $41ca + rst FarCall + + ret +; 9681f PlayerEvents: ; 9681f -; Reset carry. xor a ld a, [ScriptRunning] and a ret nz - call $68e4 + call Function968e4 call CheckTrainerBattle3 jr c, .asm_96848 @@ -18393,13 +18668,13 @@ PlayerEvents: ; 9681f call CheckTileEvent jr c, .asm_96848 - call $7c30 + call Function97c30 jr c, .asm_96848 - call $68ec + call Function968ec jr c, .asm_96848 - call $693a + call Function9693a jr c, .asm_96848 call OWPlayerInput @@ -18411,13 +18686,11 @@ PlayerEvents: ; 9681f .asm_96848 push af - ld a, $25 - ld hl, $6c56 - rst FarCall + callba Function96c56 pop af ld [ScriptRunning], a - call $6beb + call Function96beb ld a, [ScriptRunning] cp 4 jr z, .asm_96865 @@ -18451,7 +18724,7 @@ CheckTrainerBattle3: ; 96867 CheckTileEvent: ; 96874 ; Check for warps, tile triggers or wild battles. - call $670c + call Function9670c jr z, .asm_96886 ld a, $41 @@ -18463,26 +18736,25 @@ CheckTileEvent: ; 96874 jr c, .asm_968aa .asm_96886 - call $6712 + call Function96712 jr z, .asm_96890 call $2ad4 jr c, .asm_968ba .asm_96890 - call $6718 + call Function96718 jr z, .asm_96899 - call $6b79 + call CountStep ret c .asm_96899 - call $671e + call Function9671e jr z, .asm_968a4 - call $7cc0 + call Function97cc0 ret c - jr .asm_968a4 .asm_968a4 @@ -18496,7 +18768,7 @@ CheckTileEvent: ; 96874 .asm_968aa ld a, [StandingTile] - call $18a6 + call CheckPitTile jr nz, .asm_968b6 ld a, 6 scf @@ -18512,13 +18784,142 @@ CheckTileEvent: ; 96874 ld a, [hli] ld h, [hl] ld l, a - call $2c57 + call GetMapEventBank call PushScriptPointer ret ; 968c7 -INCBIN "baserom.gbc", $968c7, $96974 - $968c7 +Function968c7: ; 968c7 + ld hl, $d452 + ld a, [hl] + and a + ret z + dec [hl] + ret z + scf + ret +; 968d1 + +Function968d1: ; 968d1 + ld a, 5 + ld [$d452], a + ret +; 968d7 + +Function968d7: ; 968d7 + ret +; 968d8 + +Function968d8: ; 968d8 + ld a, [$d452] + cp 2 + ret nc + ld a, 2 + ld [$d452], a + ret +; 968e4 + +Function968e4: ; 968e4 + call Function966d6 + ret z + call $2f3e + ret +; 968ec + +Function968ec: ; 968ec + ld a, [$dc07] + and a + jr z, .asm_96938 + + ld c, a + call $211b + cp c + jr nc, .asm_96938 + + ld e, a + ld d, 0 + ld hl, $dc08 + ld a, [hli] + ld h, [hl] + ld l, a + add hl, de + add hl, de + add hl, de + add hl, de + + call GetMapEventBank + call GetFarHalfword + call GetMapEventBank + call PushScriptPointer + + ld hl, ScriptFlags + res 3, [hl] + + callba Function96c56 + callba ScriptEvents + + ld hl, ScriptFlags + bit 3, [hl] + jr z, .asm_96938 + + ld hl, $d44f + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [$d44e] + call PushScriptPointer + scf + ret + +.asm_96938 + xor a + ret +; 9693a + +Function9693a: ; 9693a + ld a, [InLinkBattle] + and a + jr nz, .asm_96964 + ld hl, StatusFlags2 + bit 2, [hl] + jr z, .asm_96951 + ld a, $4 + ld hl, $54a4 + rst FarCall + jr c, .asm_96966 + xor a + ret + +.asm_96951 + ld a, $4 + ld hl, $5452 + rst FarCall + ld a, $4 + ld hl, $54e7 + rst FarCall + ld a, $24 + ld hl, $4074 + rst FarCall + ret c + +.asm_96964 + xor a + ret + +.asm_96966 + ld a, $4 + ld hl, $75f8 + call PushScriptPointer + scf + ret +; 96970 + +Function96970: ; 96970 + ld a, 8 + scf + ret +; 96974 OWPlayerInput: ; 96974 @@ -18559,7 +18960,7 @@ CheckAPressOW: ; 96999 ret c call TryReadSign ret c - call $7c5f + call Function97c5f ret c xor a ret @@ -18632,7 +19033,7 @@ TryObjectEvent: ; 969b5 ld a, [hli] ld h, [hl] ld l, a - call $2c57 + call GetMapEventBank call PushScriptPointer ; ld a, -1 ret @@ -18644,7 +19045,7 @@ TryObjectEvent: ; 969b5 ld a, [hli] ld h, [hl] ld l, a - call $2c57 + call GetMapEventBank ld de, EngineBuffer1 ld bc, 2 call FarCopyBytes @@ -18722,7 +19123,7 @@ TryReadSign: ; 96a38 ld a, [PlayerDirection] and %1100 cp b - jp nz, $6ad6 + jp nz, .dontread .read call PlayTalkObject @@ -18730,16 +19131,16 @@ TryReadSign: ; 96a38 ld a, [hli] ld h, [hl] ld l, a - call $2c57 + call GetMapEventBank call PushScriptPointer scf ret .itemifset call CheckSignFlag - jp nz, $6ad6 + jp nz, .dontread call PlayTalkObject - call $2c57 + call GetMapEventBank ld de, EngineBuffer1 ld bc, 3 call FarCopyBytes @@ -18752,7 +19153,7 @@ TryReadSign: ; 96a38 .asm_96aa2 call CheckSignFlag jr nz, .dontread - call $2c57 + call GetMapEventBank ld de, EngineBuffer1 ld bc, 3 call FarCopyBytes @@ -18773,9 +19174,9 @@ TryReadSign: ; 96a38 pop hl inc hl inc hl - call $2c57 + call GetMapEventBank call GetFarHalfword - call $2c57 + call GetMapEventBank call PushScriptPointer scf ret @@ -18792,7 +19193,7 @@ CheckSignFlag: ; 96ad8 ld h, [hl] ld l, a push hl - call $2c57 + call GetMapEventBank call GetFarHalfword ld e, l ld d, h @@ -18832,7 +19233,7 @@ PlayerMovement: ; 96af0 ; 96b10 .seven ; 96b10 - call $68d7 ; empty + call Function968d7 ; empty xor a ld c, a ret @@ -18932,7 +19333,188 @@ SelectMenuCallback: ; 96b66 ; 96b79 -INCBIN "baserom.gbc", $96b79, $96c5e - $96b79 +CountStep: ; 96b79 + ld a, [InLinkBattle] + and a + jr nz, .asm_96bc9 + + ld a, $24 + ld hl, $4136 + rst FarCall + jr c, .asm_96bcb + + call Function96bd7 + jr c, .asm_96bcb + + ld hl, PoisonStepCount + inc [hl] + ld hl, StepCount + inc [hl] + jr nz, .asm_96b9c + + ld a, $1 + ld hl, $725a + rst FarCall + +.asm_96b9c + ld a, [StepCount] + cp $80 + jr nz, .asm_96bab + + ld a, $5 + ld hl, $6f3e + rst FarCall + jr nz, .asm_96bcf + +.asm_96bab + ld a, $1 + ld hl, $7282 + rst FarCall + + ld hl, PoisonStepCount + ld a, [hl] + cp 4 + jr c, .asm_96bc3 + ld [hl], 0 + + ld a, $14 + ld hl, $45da + rst FarCall + jr c, .asm_96bcb + +.asm_96bc3 + callba Function97db3 + +.asm_96bc9 + xor a + ret + +.asm_96bcb + ld a, -1 + scf + ret + +.asm_96bcf + ld a, 8 + scf + ret +; 96bd3 + + +Function96bd3: ; 96bd3 + ld a, $7 + scf + ret +; 96bd7 + +Function96bd7: ; 96bd7 + ld a, [$dca1] + and a + ret z + dec a + ld [$dca1], a + ret nz + ld a, $4 + ld hl, $7619 + call PushScriptPointer + scf + ret +; 96beb + +Function96beb: ; 96beb + ld a, [ScriptRunning] + and a + ret z + cp $ff + ret z + cp $a + ret nc + + ld c, a + ld b, 0 + ld hl, ScriptPointers96c0c + add hl, bc + add hl, bc + add hl, bc + ld a, [hli] + ld [ScriptBank], a + ld a, [hli] + ld [ScriptPos], a + ld a, [hl] + ld [ScriptPos + 1], a + ret +; 96c0c + +ScriptPointers96c0c: ; 96c0c + dbw BANK(UnknownScript_0x96c2d), UnknownScript_0x96c2d + dbw $2f, $6675 ; BANK(UnknownScript_0xbe675), UnknownScript_0xbe675 + dbw $2f, $666a ; BANK(UnknownScript_0xbe66a), UnknownScript_0xbe66a + dbw $04, $62ce ; BANK(UnknownScript_0x122ce), UnknownScript_0x122ce + dbw BANK(UnknownScript_0x96c4d), UnknownScript_0x96c4d + dbw BANK(UnknownScript_0x96c34), UnknownScript_0x96c34 + dbw BANK(FallIntoMapScript), FallIntoMapScript + dbw $04, $64c8 ; BANK(UnknownScript_0x124c8), UnknownScript_0x124c8 + dbw BANK(UnknownScript_0x96c2f), UnknownScript_0x96c2f + dbw BANK(UnknownScript_0x96c4f), UnknownScript_0x96c4f + dbw BANK(UnknownScript_0x96c2d), UnknownScript_0x96c2d +; 96c2d + +UnknownScript_0x96c2d: ; 96c2d + end +; 96c2e + +UnknownScript_0x96c2e: ; 96c2e + end +; 96c2f + +UnknownScript_0x96c2f: ; 96c2f + 3callasm $05, $6f5e + end +; 96c34 + +UnknownScript_0x96c34: ; 96c34 + warpsound + newloadmap $f5 + end +; 96c38 + +FallIntoMapScript: ; 96c38 + newloadmap $f6 + playsound SFX_KINESIS + applymovement $0, MovementData_0x96c48 + playsound SFX_STRENGTH + 2call UnknownScript_0x96c4a + end +; 96c48 + +MovementData_0x96c48: ; 96c48 + skyfall + step_end +; 96c4a + +UnknownScript_0x96c4a: ; 96c4a + earthquake 16 + end +; 96c4d + +UnknownScript_0x96c4d: ; 96c4d + reloadandreturn $f7 +; 96c4f + +UnknownScript_0x96c4f: ; 96c4f + deactivatefacing $3 + 3callasm BANK(Function96706), Function96706 + end +; 96c56 + + +Function96c56: ; 96c56 + push af + ld a, 1 + ld [ScriptMode], a + pop af + ret +; 96c5e ScriptEvents: ; 96c5e @@ -19002,7 +19584,657 @@ RunScriptCommand: ; 96ca9 INCLUDE "engine/scripting.asm" -INCBIN "baserom.gbc", $97c20, $97f7e - $97c20 +Function97c20: ; 97c20 + ld a, [.byte] + ld [ScriptVar], a + ret + +.byte + db 0 +; 97c28 + +Function97c28: ; 97c28 + ld hl, StatusFlags2 + res 1, [hl] + res 2, [hl] + ret +; 97c30 + +Function97c30: ; 97c30 + ld a, [$d45c] + and a + ret z + ld hl, $d45e + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [$d45d] + call PushScriptPointer + scf + push af + xor a + ld hl, $d45c + ld bc, 8 + call ByteFill + pop af + ret +; 97c4f + +Function97c4f: ; 97c4f + ld hl, $d45c + ld a, [hl] + and a + ret nz + ld [hl], 1 + inc hl + ld [hl], b + inc hl + ld [hl], e + inc hl + ld [hl], d + scf + ret +; 97c5f + +Function97c5f: ; 97c5f + call GetFacingTileCoord + ld [EngineBuffer1], a + ld c, a + ld a, $4 + ld hl, $765b + rst FarCall + jr c, .asm_97cb9 + call $1894 + jr nz, .asm_97c7b + ld a, $3 + ld hl, $5186 + rst FarCall + jr .asm_97cb9 + +.asm_97c7b + ld a, [EngineBuffer1] + call CheckWhirlpoolTile + jr nz, .asm_97c8b + ld a, $3 + ld hl, $4e3e + rst FarCall + jr .asm_97cb9 + +.asm_97c8b + ld a, [EngineBuffer1] + call CheckWaterfallTile + jr nz, .asm_97c9b + ld a, $3 + ld hl, $4b56 + rst FarCall + jr .asm_97cb9 + +.asm_97c9b + ld a, [EngineBuffer1] + call $189a + jr nz, .asm_97cad + ld a, $3 + ld hl, $4ec9 + rst FarCall + jr c, .asm_97cb9 + jr .asm_97cb7 + +.asm_97cad + callba CheckSurfOW + jr nc, .asm_97cb7 + jr .asm_97cb9 + +.asm_97cb7 + xor a + ret + +.asm_97cb9 + call PlayClickSFX + ld a, $ff + scf + ret +; 97cc0 + +Function97cc0: ; 97cc0 + call Function968c7 + jr c, .asm_97ce2 + call Function97cfd + jr nc, .asm_97ce2 + ld hl, StatusFlags2 + bit 2, [hl] + jr nz, .asm_97cdb + ld a, $a + ld hl, $60e7 + rst FarCall + jr nz, .asm_97ce2 + jr .asm_97ce6 + +.asm_97cdb + call Function97d23 + jr nc, .asm_97ce2 + jr .asm_97ced + +.asm_97ce2 + ld a, 1 + and a + ret + +.asm_97ce6 + ld a, BANK(UnknownScript_0x97cf9) + ld hl, UnknownScript_0x97cf9 + jr .asm_97cf4 + +.asm_97ced + ld a, $4 + ld hl, $75eb + jr .asm_97cf4 + +.asm_97cf4 + call PushScriptPointer + scf + ret +; 97cf9 + +UnknownScript_0x97cf9: ; 97cf9 + battlecheck + startbattle + returnafterbattle + end +; 97cfd + +Function97cfd: ; 97cfd + ld hl, StatusFlags + bit 5, [hl] + jr nz, .asm_97d21 + ld a, [$d19a] + cp $4 + jr z, .asm_97d17 + cp $7 + jr z, .asm_97d17 + ld a, $5 + ld hl, $49dd + rst FarCall + jr nc, .asm_97d21 + +.asm_97d17 + ld a, [StandingTile] + call CheckIceTile + jr z, .asm_97d21 + scf + ret + +.asm_97d21 + and a + ret +; 97d23 + +Function97d23: ; 97d23 + call Function97d64 + ret nc + call Function97d31 + ld a, $a + ld hl, $61df + rst FarCall + ret +; 97d31 + +Function97d31: ; 97d31 +.asm_97d31 + call RNG + cp 100 << 1 + jr nc, .asm_97d31 + srl a + ld hl, Table97d87 + ld de, 4 +.asm_97d40 + sub [hl] + jr c, .asm_97d46 + add hl, de + jr .asm_97d40 + +.asm_97d46 + inc hl + ld a, [hli] + ld [$d22e], a + ld a, [hli] + ld d, a + ld a, [hl] + sub d + jr nz, .asm_97d54 + ld a, d + jr .asm_97d5f + +.asm_97d54 + ld c, a + inc c + call RNG + ld a, [hRandomAdd] + call SimpleDivide + add d + +.asm_97d5f + ld [CurPartyLevel], a + xor a + ret +; 97d64 + +Function97d64: ; 97d64 + ld a, [StandingTile] + call $188e + ld b, $66 + jr z, .asm_97d70 + ld b, $33 + +.asm_97d70 + ld a, $a + ld hl, $6124 + rst FarCall + ld a, $a + ld hl, $6138 + rst FarCall + call RNG + ld a, [hRandomAdd] + cp b + ret c + ld a, 1 + and a + ret +; 97d87 + +Table97d87: ; 97d87 + db 20, $0a, $07, $12 + db 20, $0d, $07, $12 + db 10, $0b, $09, $12 + db 10, $0e, $09, $12 + db 5, $0c, $0c, $0f + db 5, $0f, $0c, $0f + db 10, $30, $0a, $10 + db 10, $2e, $0a, $11 + db 5, $7b, $0d, $0e + db 5, $7f, $0d, $0e + db -1, $31, $1e, $28 +; 97db3 + +Function97db3: ; 97db3 + nop + nop + ; fallthrough +; 97db5 + +Function97db5: ; 97db5 + ld hl, StatusFlags2 + bit 4, [hl] + jr z, .asm_97df7 + ld a, [PlayerState] + cp $1 + jr nz, .asm_97df7 + call $2d05 + and a + jr nz, .asm_97df7 + ld hl, $dca2 + ld a, [hli] + ld d, a + ld e, [hl] + cp $ff + jr nz, .asm_97dd8 + ld a, e + cp $ff + jr z, .asm_97ddc + +.asm_97dd8 + inc de + ld [hl], e + dec hl + ld [hl], d + +.asm_97ddc + ld a, d + cp $4 + jr c, .asm_97df7 + ld a, [$dc31] + and a + jr nz, .asm_97df7 + ld a, $6 + ld [$dc31], a + xor a + ld [$dc32], a + ld hl, StatusFlags2 + res 4, [hl] + scf + ret + +.asm_97df7 + xor a + ret +; 97df9 + +Function97df9: ; 97df9 + ld hl, $d6de + ld de, $0006 + ld c, $4 + xor a +.asm_97e02 + ld [hl], a + add hl, de + dec c + jr nz, .asm_97e02 + ret +; 97e08 + +Function97e08: ; 97e08 + ld hl, $d6de + xor a +.asm_97e0c + ld [hConnectionStripLength], a + ld a, [hl] + and a + jr z, .asm_97e19 + push hl + ld b, h + ld c, l + call Function97e79 + pop hl + +.asm_97e19 + ld de, $0006 + add hl, de + ld a, [hConnectionStripLength] + inc a + cp $4 + jr nz, .asm_97e0c + ret +; 97e25 + +Function97e25: ; 97e25 + ld hl, $d6de + ld bc, 6 + call AddNTimes + ld b, h + ld c, l + ret +; 97e31 + +Function97e31: ; 97e31 + push bc + push de + call Function97e45 + ld d, h + ld e, l + pop hl + pop bc + ret c + ld a, b + ld bc, $0005 + call FarCopyBytes + xor a + ld [hl], a + ret +; 97e45 + +Function97e45: ; 97e45 + ld hl, $d6de + ld de, $0006 + ld c, $4 +.asm_97e4d + ld a, [hl] + and a + jr z, .asm_97e57 + add hl, de + dec c + jr nz, .asm_97e4d + scf + ret + +.asm_97e57 + ld a, $4 + sub c + and a + ret +; 97e5c + +Function97e5c: ; 97e5c + ld hl, $d6de + ld de, $0006 + ld c, $4 +.asm_97e64 + ld a, [hl] + cp b + jr z, .asm_97e6e + add hl, de + dec c + jr nz, .asm_97e64 + and a + ret + +.asm_97e6e + xor a + ld [hl], a + scf + ret +; 97e72 + +Function97e72: ; 97e72 + ld hl, $0000 + add hl, bc + ld [hl], 0 + ret +; 97e79 + +Function97e79: ; 97e79 + ld hl, $0000 + add hl, bc + ld a, [hl] + cp 5 + jr c, .asm_97e83 + xor a + +.asm_97e83 + ld e, a + ld d, 0 + ld hl, Table97e94 + add hl, de + add hl, de + add hl, de + ld a, [hli] + push af + ld a, [hli] + ld h, [hl] + ld l, a + pop af + rst FarCall + ret +; 97e94 + +Table97e94: ; 97e94 + dbw BANK(Function97eb7), Function97eb7 + dbw BANK(Function97eb8), Function97eb8 + dbw BANK(Function97f42), Function97f42 + dbw BANK(Function97ef9), Function97ef9 + dbw BANK(Function97ebc), Function97ebc +; 97ea3 + +Function97ea3: ; 97ea3 + ld hl, $0005 + add hl, bc + ld a, [hl] + pop hl + rst JumpTable + ret +; 97eab + +Function97eab: ; 97eab + ld hl, $0005 + add hl, bc + inc [hl] + ret +; 97eb1 + +Function97eb1: ; 97eb1 + ld hl, $0005 + add hl, bc + dec [hl] + ret +; 97eb7 + +Function97eb7: ; 97eb7 + ret +; 97eb8 + +Function97eb8: ; 97eb8 + call $2f3e + ret +; 97ebc + +Function97ebc: ; 97ebc + call Function97ea3 + dw Function97ec3 + dw Function97ecd +; 97ec3 + +Function97ec3: ; 97ec3 + ld a, [$ffd0] + ld hl, $0004 + add hl, bc + ld [hl], a + call Function97eab +; 97ecd + +Function97ecd: ; 97ecd + ld hl, $0001 + add hl, bc + ld a, [hl] + dec a + ld [hl], a + jr z, .asm_97eee + and $1 + jr z, .asm_97ee4 + ld hl, $0002 + add hl, bc + ld a, [$ffd0] + sub [hl] + ld [$ffd0], a + ret + +.asm_97ee4 + ld hl, $0002 + add hl, bc + ld a, [$ffd0] + add [hl] + ld [$ffd0], a + ret + +.asm_97eee + ld hl, $0004 + add hl, bc + ld a, [hl] + ld [$ffd0], a + call Function97e72 + ret +; 97ef9 + +Function97ef9: ; 97ef9 + call Function97ea3 + dw Function97f02 + dw Function97f0a + dw Function97f1b +; 97f02 + +Function97f02: ; 97f02 + call Function97f38 + jr z, Function97f2c + call Function97eab +; 97f0a + +Function97f0a: ; 97f0a + call Function97f38 + jr z, Function97f2c + call Function97eab + + ld hl, $0002 + add hl, bc + ld a, [hl] + ld [$d173], a + ret +; 97f1b + +Function97f1b: ; 97f1b + call Function97f38 + jr z, Function97f2c + call Function97eb1 + + ld hl, $0003 + add hl, bc + ld a, [hl] + ld [$d173], a + ret +; 97f2c + +Function97f2c: ; 97f2c + ld a, $7f + ld [$d173], a + ld hl, $0005 + add hl, bc + ld [hl], 0 + ret +; 97f38 + +Function97f38: ; 97f38 + push bc + ld bc, $d4d6 + call GetSpriteDirection + and a + pop bc + ret +; 97f42 + +Function97f42: ; 97f42 + ld de, $d4d6 + ld a, $d +.asm_97f47 + push af + + ld hl, $0000 + add hl, de + ld a, [hl] + and a + jr z, .asm_97f71 + + ld hl, $0003 + add hl, de + ld a, [hl] + cp $19 + jr nz, .asm_97f71 + + ld hl, $000e + add hl, de + ld a, [hl] + call CheckPitTile + jr nz, .asm_97f71 + + ld hl, $0007 + add hl, de + ld a, [hl] + cp $ff + jr nz, .asm_97f71 + call $3567 + jr c, .asm_97f7c + +.asm_97f71 + ld hl, $0028 + add hl, de + ld d, h + ld e, l + + pop af + dec a + jr nz, .asm_97f47 + ret + +.asm_97f7c + pop af + ret +; 97f7e + SECTION "bank26",DATA,BANK[$26] From 173f38346c1ccacf24705080227dede70232983f Mon Sep 17 00:00:00 2001 From: yenatch Date: Sat, 20 Jul 2013 02:27:48 -0400 Subject: [PATCH 03/84] get rid of bank 25 hard addresses in scripting.asm --- engine/scripting.asm | 104 +++++++++++++++++++++---------------------- 1 file changed, 52 insertions(+), 52 deletions(-) diff --git a/engine/scripting.asm b/engine/scripting.asm index f9ede0041..79fbe69ee 100644 --- a/engine/scripting.asm +++ b/engine/scripting.asm @@ -485,11 +485,11 @@ Script_verbosegiveitem: ; 0x96f60 ; item (ItemLabelByte) ; quantity (DecimalParam) - call $77ca + call Script_giveitem call CurItemName ld de, StringBuffer1 ld a, $1 - call $76c8 + call Function976c8 ld b, BANK(GiveItemScript) ld de, GiveItemScript jp ScriptCall @@ -535,7 +535,7 @@ Script_verbosegiveitem2: ; 0x96f8e .asm_96f98 ld [$d106], a call GetScriptByte - call $769e + call Unknown_0x9769e ld a, [de] ld [$d10c], a ld hl, $d892 @@ -548,7 +548,7 @@ Script_verbosegiveitem2: ; 0x96f8e call CurItemName ld de, StringBuffer1 ld a, $1 - call $76c8 + call Function976c8 ld b, BANK(GiveItemScript) ld de, GiveItemScript jp ScriptCall @@ -1021,6 +1021,9 @@ Script_applymovement: ; 0x971f3 call GetScriptByte call Unknown_0x971e3 ld c, a +; 971fa + +Function971fa: ; 971fa push bc ld a, c ld a, $1 @@ -1028,7 +1031,7 @@ Script_applymovement: ; 0x971f3 rst $8 pop bc push bc - call $7221 + call Unknown_0x97221 pop bc call GetScriptByte ld l, a @@ -1058,7 +1061,7 @@ Script_applymovement2: ; 0x97228 ld a, [$ffe0] ld c, a - jp $71fa + jp Function971fa ; 0x9722e Script_faceplayer: ; 0x9722e @@ -1079,7 +1082,7 @@ Script_faceplayer: ; 0x9722e ld e, a ld a, [$ffe0] ld d, a - call $728b + call Unknown_0x9728b ret ; 0x97248 @@ -1114,7 +1117,7 @@ Script_faceperson: ; 0x97248 add a ld e, a ld d, c - call $728b + call Unknown_0x9728b ret ; 0x97274 @@ -1135,7 +1138,7 @@ Script_spriteface: ; 0x97274 add a add a ld e, a - call $728b + call Unknown_0x9728b ret ; 0x9728b @@ -1161,7 +1164,7 @@ Unknown_0x9728b: ; 0x9728b ld hl, $d0ed bit 6, [hl] jr nz, .asm_972b5 ; 0x972b0 $3 - call $72bc + call Unknown_0x972bc .asm_972b5 call $1ad2 ret @@ -1173,7 +1176,7 @@ Unknown_0x9728b: ; 0x9728b Unknown_0x972bc: ; 0x972bc call $217a - ld hl, $c4a0 + ld hl, TileMap ld bc, $0168 .asm_972c5 res 7, [hl] @@ -1211,7 +1214,7 @@ Script_appear: ; 0x972dd call $1956 ld a, [$ffaf] ld b, $0 - call $730b + call Unknown_0x9730b ret ; 0x972ee @@ -1229,7 +1232,7 @@ Script_disappear: ; 0x972ee call $199f ld a, [$ffaf] ld b, $1 - call $730b + call Unknown_0x9730b ld a, $1 ld hl, $5920 rst $8 @@ -1543,9 +1546,7 @@ Script_returnafterbattle: ; 0x97459 jr z, .asm_9748e ; 0x97481 $b ld b, $24 ld de, $4255 - ld a, $25 - ld hl, $7c4f - rst $8 + callba Function97c4f .asm_9748e jp Script_reloadmap ; 0x97491 @@ -1978,7 +1979,7 @@ Script_random: ; 0x97640 and a ret z ld c, a - call $7673 + call Unknown_0x97673 and a jr z, .asm_9765f ; 0x9764d $10 ld b, a @@ -2027,7 +2028,7 @@ Script_checkcode: ; 0x9767d ; variable_id (SingleByteParam) call GetScriptByte - call $769e + call Unknown_0x9769e ld a, [de] ld [$c2dd], a ret @@ -2039,7 +2040,7 @@ Script_writevarcode: ; 0x97688 ; variable_id (SingleByteParam) call GetScriptByte - call $769e + call Unknown_0x9769e ld a, [$c2dd] ld [de], a ret @@ -2052,7 +2053,7 @@ Script_writecode: ; 0x97693 ; value (SingleByteParam) call GetScriptByte - call $769e + call Unknown_0x9769e call GetScriptByte ld [de], a ret @@ -2096,9 +2097,12 @@ Script_pokenamemem: ; 0x976ae Unknown_976c0: ; 0x976c0 call GetScriptByte cp $3 - jr c, .asm_976c8 ; 0x976c5 $1 + jr c, .asm_976c8 xor a .asm_976c8 +; 976c8 + +Function976c8: ; 976c8 ld hl, StringBuffer3 ld bc, 19 call AddNTimes @@ -2197,8 +2201,8 @@ Script_readmoney: ; 0x97732 ; account (SingleByteParam) ; memory (SingleByteParam) - call $7771 - call $7861 + call Unknown_0x97771 + call Unknown_0x97861 ld hl, StringBuffer1 ld bc, $4306 call $3198 @@ -2211,7 +2215,7 @@ Script_readcoins: ; 0x97747 ; parameters: ; memory (SingleByteParam) - call $7771 + call Unknown_0x97771 ld hl, StringBuffer1 ld de, $d855 ld bc, $4206 @@ -2225,7 +2229,7 @@ Script_RAM2MEM: ; 0x9775c ; parameters: ; memory (SingleByteParam) - call $7771 + call Unknown_0x97771 ld de, $c2dd ld hl, StringBuffer1 ld bc, $4103 @@ -2372,8 +2376,8 @@ Script_givemoney: ; 0x97829 ; account (SingleByteParam) ; money (MoneyByteParam) - call $7861 - call $786d + call Unknown_0x97861 + call Unknown_0x9786d ld a, $5 ld hl, $5fd7 rst $8 @@ -2386,8 +2390,8 @@ Script_takemoney: ; 0x97836 ; account (SingleByteParam) ; money (MoneyByteParam) - call $7861 - call $786d + call Unknown_0x97861 + call Unknown_0x9786d ld a, $5 ld hl, $5ffa rst $8 @@ -2400,8 +2404,8 @@ Script_checkmoney: ; 0x97843 ; account (SingleByteParam) ; money (MoneyByteParam) - call $7861 - call $786d + call Unknown_0x97861 + call Unknown_0x9786d ld a, $5 ld hl, $600b rst $8 @@ -2451,7 +2455,7 @@ Script_givecoins: ; 0x97881 ; parameters: ; coins (CoinByteParam) - call $78a0 + call Function978a0 ld a, $5 ld hl, $606f rst $8 @@ -2463,7 +2467,7 @@ Script_takecoins: ; 0x9788b ; parameters: ; coins (CoinByteParam) - call $78a0 + call Function978a0 ld a, $5 ld hl, $608f rst $8 @@ -2475,11 +2479,14 @@ Script_checkcoins: ; 0x97895 ; parameters: ; coins (CoinByteParam) - call $78a0 + call Function978a0 ld a, $5 ld hl, $60a1 rst $8 - jr Unknown_9784f ; 0x9789e $af + jr Unknown_9784f +; 978a0 + +Function978a0: ; 978a0 call GetScriptByte ld [$ffc4], a call GetScriptByte @@ -2718,7 +2725,7 @@ Script_setbit2: ; 0x979bb call GetScriptByte ld d, a ld b, $1 - call $79ee + call Unknown_0x979ee ret ; 0x979c9 @@ -2732,7 +2739,7 @@ Script_clearbit2: ; 0x979c9 call GetScriptByte ld d, a ld b, $0 - call $79ee + call Unknown_0x979ee ret ; 0x979d7 @@ -2746,7 +2753,7 @@ Script_checkbit2: ; 0x979d7 call GetScriptByte ld d, a ld b, $2 - call $79ee + call Unknown_0x979ee ld a, c and a jr z, .asm_979ea ; 0x979e6 $2 @@ -2897,9 +2904,7 @@ Script_writecmdqueue: ; 0x97a8b ld d, a ld a, [ScriptBank] ld b, a - ld a, $25 - ld hl, $7e31 - rst $8 + callba Function97e31 ret ; 0x97a9e @@ -2912,9 +2917,7 @@ Script_delcmdqueue: ; 0x97a9e ld [$c2dd], a call GetScriptByte ld b, a - ld a, $25 - ld hl, $7e5c - rst $8 + callba Function97e5c ret c ld a, $1 ld [$c2dd], a @@ -2976,16 +2979,12 @@ Script_warpcheck: ; 0x97af6 call $224a ret nc - ld a, $25 - ld hl, $66d0 - rst $8 + callba Function966d0 ret ; 0x97b01 Unknown_0x97b01: ; 0x97b01 - ld a, $25 - ld hl, $66d0 - rst $8 + callba Function966d0 ret ; 0x97b08 @@ -3005,7 +3004,7 @@ Script_newloadmap: ; 0x97b08 Script_reloadandreturn: ; 0x97b16 ; script command 0x92 - call $7b08 + call Script_newloadmap jp Script_end ; 0x97b1c @@ -3203,8 +3202,9 @@ Script_credits: ; 0x97bf3 ld hl, $6455 rst $8 ; fallthrough + DisplayCredits: - call $7bc0 + call Script_resetfuncs ld a, $3 call $261b call StopScript From 1ff1a40f60e3ed4f37e7c67c1524c956dca29217 Mon Sep 17 00:00:00 2001 From: yenatch Date: Sat, 20 Jul 2013 22:34:05 -0400 Subject: [PATCH 04/84] rename second hide_person macro to remove_person --- extras/crystal.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extras/crystal.py b/extras/crystal.py index 4e084b273..f2eb46338 100644 --- a/extras/crystal.py +++ b/extras/crystal.py @@ -1993,7 +1993,7 @@ movement_command_bases = { 0x45: "accelerate_last", 0x46: ["step_sleep", ["duration", DecimalParam]], 0x47: "step_end", - 0x49: "hide_person", + 0x49: "remove_person", # do these next two have any params ?? 0x4C: "teleport_from", From 8e27cfbc1a9891788e1dc3b588e7d2486684294c Mon Sep 17 00:00:00 2001 From: yenatch Date: Sat, 20 Jul 2013 22:34:40 -0400 Subject: [PATCH 05/84] movement command asm --- engine/movement.asm | 829 ++++++++++++++++++++++++++++++++++++++++++++ main.asm | 113 +++++- 2 files changed, 941 insertions(+), 1 deletion(-) create mode 100644 engine/movement.asm diff --git a/engine/movement.asm b/engine/movement.asm new file mode 100644 index 000000000..da08280c1 --- /dev/null +++ b/engine/movement.asm @@ -0,0 +1,829 @@ +MovementPointers: ; 5075 + dw Movement_turn_head_down + dw Movement_turn_head_up + dw Movement_turn_head_left + dw Movement_turn_head_right + dw Movement_half_step_down + dw Movement_half_step_up + dw Movement_half_step_left + dw Movement_half_step_right + dw Movement_slow_step_down + dw Movement_slow_step_up + dw Movement_slow_step_left + dw Movement_slow_step_right + dw Movement_step_down + dw Movement_step_up + dw Movement_step_left + dw Movement_step_right + dw Movement_big_step_down + dw Movement_big_step_up + dw Movement_big_step_left + dw Movement_big_step_right + dw Movement_slow_slide_step_down + dw Movement_slow_slide_step_up + dw Movement_slow_slide_step_left + dw Movement_slow_slide_step_right + dw Movement_slide_step_down + dw Movement_slide_step_up + dw Movement_slide_step_left + dw Movement_slide_step_right + dw Movement_fast_slide_step_down + dw Movement_fast_slide_step_up + dw Movement_fast_slide_step_left + dw Movement_fast_slide_step_right + dw Movement_turn_away_down + dw Movement_turn_away_up + dw Movement_turn_away_left + dw Movement_turn_away_right + dw Movement_turn_in_down + dw Movement_turn_in_up + dw Movement_turn_in_left + dw Movement_turn_in_right + dw Movement_turn_waterfall_down + dw Movement_turn_waterfall_up + dw Movement_turn_waterfall_left + dw Movement_turn_waterfall_right + dw Movement_slow_jump_step_down + dw Movement_slow_jump_step_up + dw Movement_slow_jump_step_left + dw Movement_slow_jump_step_right + dw Movement_jump_step_down + dw Movement_jump_step_up + dw Movement_jump_step_left + dw Movement_jump_step_right + dw Movement_fast_jump_step_down + dw Movement_fast_jump_step_up + dw Movement_fast_jump_step_left + dw Movement_fast_jump_step_right + dw Function5293 + dw Function529c + dw Movement_remove_fixed_facing + dw Movement_fix_facing + dw Function52b7 + dw Movement_hide_person + dw Movement_show_person + dw Function5226 + dw Function522a + dw Function522e + dw Function5232 + dw Function5236 + dw Function523a + dw Movement_accelerate_last + dw Movement_step_sleep + dw Movement_step_end + dw Function51db + dw Movement_remove_person + dw Function51b8 + dw Function5210 + dw Movement_teleport_from + dw Movement_teleport_to + dw Movement_skyfall + dw Movement_step_wait5 + dw Function525f + dw Function5189 + dw Function51ab + dw Movement_hide_emote + dw Movement_show_emote + dw Movement_step_shake + dw Function5279 + dw Function5196 + dw Function516a + dw Function513e +; 5129 + + +Movement_teleport_from: ; 5129 + ld hl, $0009 + add hl, bc + ld [hl], $c + ret +; 5130 + +Movement_teleport_to: ; 5130 + ld hl, $0009 + add hl, bc + ld [hl], $d + ret +; 5137 + +Movement_skyfall: ; 5137 + ld hl, $0009 + add hl, bc + ld [hl], $e + ret +; 513e + +Function513e: ; 513e + ld hl, $0009 + add hl, bc + ld [hl], $19 + ret +; 5145 + +Movement_step_wait5: ; 5145 + call GetSpriteDirection + rlca + rlca + ld hl, $000c + add hl, bc + ld [hl], a + ld hl, $000b + add hl, bc + ld [hl], $4 + call Function505e + ld hl, $000a + add hl, bc + ld [hl], a + ld hl, $0009 + add hl, bc + ld [hl], $3 + ld hl, $0007 + add hl, bc + ld [hl], $ff + ret +; 516a + +Function516a: ; 516a + call GetSpriteDirection + rlca + rlca + ld hl, $000c + add hl, bc + ld [hl], a + call Function505e + ld hl, $000a + add hl, bc + ld [hl], a + ld hl, $0007 + add hl, bc + ld [hl], $ff + ld hl, $0009 + add hl, bc + ld [hl], $12 + ret +; 5189 + +Function5189: ; 5189 + ld hl, $000b + add hl, bc + ld [hl], $6 + ld hl, $0009 + add hl, bc + ld [hl], $10 + ret +; 5196 + +Function5196: ; 5196 + call Function505e + ld hl, $000a + add hl, bc + ld [hl], a + ld hl, $000b + add hl, bc + ld [hl], $1 + ld hl, $0009 + add hl, bc + ld [hl], $11 + ret +; 51ab + +Function51ab: ; 51ab + ld hl, $000b + add hl, bc + ld [hl], $6 + ld hl, $0009 + add hl, bc + ld [hl], $1 + ret +; 51b8 + +Function51b8: ; 51b8 + ld hl, $001b + add hl, bc + ld [hl], $0 + jp Function5065 +; 51c1 + +Movement_step_end: ; 51c1 + call $4769 + ld hl, $0003 + add hl, bc + ld [hl], a + ld hl, $001b + add hl, bc + ld [hl], $0 + ld hl, VramState + res 7, [hl] + ld hl, $0009 + add hl, bc + ld [hl], $1 + ret +; 51db + +Function51db: ; 51db + call $4769 + ld hl, $0003 + add hl, bc + ld [hl], a + ld hl, $001b + add hl, bc + ld [hl], $0 + call Function505e + ld hl, $000a + add hl, bc + ld [hl], a + ld hl, $0009 + add hl, bc + ld [hl], $3 + ld hl, VramState + res 7, [hl] + ret +; 51fd + +Movement_remove_person: ; 51fd + call $4357 + ld hl, $d4cd + ld a, [hConnectionStripLength] + cp [hl] + jr nz, .asm_520a + ld [hl], $ff + +.asm_520a + ld hl, VramState + res 7, [hl] + ret +; 5210 + +Function5210: ; 5210 + ld hl, $000b + add hl, bc + ld [hl], $1 + ld hl, $0009 + add hl, bc + ld [hl], $4 + ld hl, VramState + res 7, [hl] + ret +; 5222 + +Movement_show_person: ; 5222 + ld a, $1 + jr Function5247 + +Function5226: ; 5226 + ld a, $2 + jr Function5247 + +Function522a: ; 522a + ld a, $3 + jr Function5247 + +Function522e: ; 522e + ld a, $4 + jr Function5247 + +Function5232: ; 5232 + ld a, $5 + jr Function5247 + +Function5236: ; 5236 + ld a, $6 + jr Function5247 + +Function523a: ; 523a + ld a, $7 + jr Function5247 + +Movement_accelerate_last: ; 523e + ld a, $8 + jr Function5247 + +Movement_step_sleep: ; 5242 +; parameters: +; duration (DecimalParam) + + call Function505e + jr Function5247 + +Function5247: ; 5247 + ld hl, $000a + add hl, bc + ld [hl], a + ld hl, $0009 + add hl, bc + ld [hl], $3 + ld hl, $000b + add hl, bc + ld [hl], $1 + ld hl, $0007 + add hl, bc + ld [hl], $ff + ret +; 525f + +Function525f: ; 525f + ld a, $1 + ld hl, $000a + add hl, bc + ld [hl], a + ld hl, $0009 + add hl, bc + ld [hl], $b + ld hl, $000b + add hl, bc + ld [hl], $3 + ld hl, $0007 + add hl, bc + ld [hl], $ff + ret +; 5279 + +Function5279: ; 5279 + ld a, $18 + ld hl, $000a + add hl, bc + ld [hl], a + ld hl, $0009 + add hl, bc + ld [hl], $3 + ld hl, $000b + add hl, bc + ld [hl], $b + ld hl, $0007 + add hl, bc + ld [hl], $ff + ret +; 5293 + +Function5293: ; 5293 + ld hl, $0004 + add hl, bc + res 3, [hl] + jp Function5065 +; 529c + +Function529c: ; 529c + ld hl, $0004 + add hl, bc + set 3, [hl] + jp Function5065 +; 52a5 + +Movement_remove_fixed_facing: ; 52a5 + ld hl, $0004 + add hl, bc + res 2, [hl] + jp Function5065 +; 52ae + +Movement_fix_facing: ; 52ae + ld hl, $0004 + add hl, bc + set 2, [hl] + jp Function5065 +; 52b7 + +Function52b7: ; 52b7 + ld hl, $0004 + add hl, bc + res 0, [hl] + jp Function5065 +; 52c0 + +Movement_hide_person: ; 52c0 + ld hl, $0004 + add hl, bc + set 0, [hl] + jp Function5065 +; 52c9 + +Movement_hide_emote: ; 52c9 + call $5579 + jp Function5065 +; 52cf + +Movement_show_emote: ; 52cf + call $5547 + jp Function5065 +; 52d5 + +Movement_step_shake: ; 52d5 +; parameters: +; displacement (DecimalParam) + + call Function505e + call $5565 + jp Function5065 +; 52de + +Movement_turn_head_down: ; 52de + ld a, $0 + jr Function52ee + +Movement_turn_head_up: ; 52e2 + ld a, $4 + jr Function52ee + +Movement_turn_head_left: ; 52e6 + ld a, $8 + jr Function52ee + +Movement_turn_head_right: ; 52ea + ld a, $c + jr Function52ee + +Function52ee: ; 52ee + ld hl, $0008 + add hl, bc + ld [hl], a + ld hl, $000b + add hl, bc + ld [hl], $1 + ld hl, $0007 + add hl, bc + ld [hl], $ff + ret +; 5300 + +Movement_slow_step_down: ; 5300 + ld a, $0 + jp Function5412 +; 5305 + +Movement_slow_step_up: ; 5305 + ld a, $1 + jp Function5412 +; 530a + +Movement_slow_step_left: ; 530a + ld a, $2 + jp Function5412 +; 530f + +Movement_slow_step_right: ; 530f + ld a, $3 + jp Function5412 +; 5314 + +Movement_step_down: ; 5314 + ld a, $4 + jp Function5412 +; 5319 + +Movement_step_up: ; 5319 + ld a, $5 + jp Function5412 +; 531e + +Movement_step_left: ; 531e + ld a, $6 + jp Function5412 +; 5323 + +Movement_step_right: ; 5323 + ld a, $7 + jp Function5412 +; 5328 + +Movement_big_step_down: ; 5328 + ld a, $8 + jp Function5412 +; 532d + +Movement_big_step_up: ; 532d + ld a, $9 + jp Function5412 +; 5332 + +Movement_big_step_left: ; 5332 + ld a, $a + jp Function5412 +; 5337 + +Movement_big_step_right: ; 5337 + ld a, $b + jp Function5412 +; 533c + + +Movement_turn_away_down: ; 533c + ld a, $0 + jp Function5446 +; 5341 + +Movement_turn_away_up: ; 5341 + ld a, $1 + jp Function5446 +; 5346 + +Movement_turn_away_left: ; 5346 + ld a, $2 + jp Function5446 +; 534b + +Movement_turn_away_right: ; 534b + ld a, $3 + jp Function5446 +; 5350 + +Movement_turn_in_down: ; 5350 + ld a, $4 + jp Function5446 +; 5355 + +Movement_turn_in_up: ; 5355 + ld a, $5 + jp Function5446 +; 535a + +Movement_turn_in_left: ; 535a + ld a, $6 + jp Function5446 +; 535f + +Movement_turn_in_right: ; 535f + ld a, $7 + jp Function5446 +; 5364 + +Movement_turn_waterfall_down: ; 5364 + ld a, $8 + jp Function5446 +; 5369 + +Movement_turn_waterfall_up: ; 5369 + ld a, $9 + jp Function5446 +; 536e + +Movement_turn_waterfall_left: ; 536e + ld a, $a + jp Function5446 +; 5373 + +Movement_turn_waterfall_right: ; 5373 + ld a, $b + jp Function5446 +; 5378 + + +Movement_slow_slide_step_down: ; 5378 + ld a, $0 + jp Function5468 +; 537d + +Movement_slow_slide_step_up: ; 537d + ld a, $1 + jp Function5468 +; 5382 + +Movement_slow_slide_step_left: ; 5382 + ld a, $2 + jp Function5468 +; 5387 + +Movement_slow_slide_step_right: ; 5387 + ld a, $3 + jp Function5468 +; 538c + +Movement_slide_step_down: ; 538c + ld a, $4 + jp Function5468 +; 5391 + +Movement_slide_step_up: ; 5391 + ld a, $5 + jp Function5468 +; 5396 + +Movement_slide_step_left: ; 5396 + ld a, $6 + jp Function5468 +; 539b + +Movement_slide_step_right: ; 539b + ld a, $7 + jp Function5468 +; 53a0 + +Movement_fast_slide_step_down: ; 53a0 + ld a, $8 + jp Function5468 +; 53a5 + +Movement_fast_slide_step_up: ; 53a5 + ld a, $9 + jp Function5468 +; 53aa + +Movement_fast_slide_step_left: ; 53aa + ld a, $a + jp Function5468 +; 53af + +Movement_fast_slide_step_right: ; 53af + ld a, $b + jp Function5468 +; 53b4 + + +Movement_slow_jump_step_down: ; 53b4 + ld a, $0 + jp Function548a +; 53b9 + +Movement_slow_jump_step_up: ; 53b9 + ld a, $1 + jp Function548a +; 53be + +Movement_slow_jump_step_left: ; 53be + ld a, $2 + jp Function548a +; 53c3 + +Movement_slow_jump_step_right: ; 53c3 + ld a, $3 + jp Function548a +; 53c8 + +Movement_jump_step_down: ; 53c8 + ld a, $4 + jp Function548a +; 53cd + +Movement_jump_step_up: ; 53cd + ld a, $5 + jp Function548a +; 53d2 + +Movement_jump_step_left: ; 53d2 + ld a, $6 + jp Function548a +; 53d7 + +Movement_jump_step_right: ; 53d7 + ld a, $7 + jp Function548a +; 53dc + +Movement_fast_jump_step_down: ; 53dc + ld a, $8 + jp Function548a +; 53e1 + +Movement_fast_jump_step_up: ; 53e1 + ld a, $9 + jp Function548a +; 53e6 + +Movement_fast_jump_step_left: ; 53e6 + ld a, $a + jp Function548a +; 53eb + +Movement_fast_jump_step_right: ; 53eb + ld a, $b + jp Function548a +; 53f0 + + +Movement_half_step_down: ; 53f0 + ld a, $0 + jr Function5400 + +Movement_half_step_up: ; 53f4 + ld a, $4 + jr Function5400 + +Movement_half_step_left: ; 53f8 + ld a, $8 + jr Function5400 + +Movement_half_step_right: ; 53fc + ld a, $c + jr Function5400 + +Function5400: ; 5400 + ld hl, $001d + add hl, bc + ld [hl], a + ld hl, $000b + add hl, bc + ld [hl], $2 + ld hl, $0009 + add hl, bc + ld [hl], $a + ret +; 5412 + +Function5412: ; 5412 + call $4690 + call $463f + ld hl, $000b + add hl, bc + ld [hl], $2 + ld hl, $000e + add hl, bc + ld a, [hl] + call $188e + jr z, .asm_542d + call $1875 + jr c, .asm_5430 + +.asm_542d + call $5556 + +.asm_5430 + ld hl, $d4cf + ld a, [hConnectionStripLength] + cp [hl] + jr z, .asm_543f + ld hl, $0009 + add hl, bc + ld [hl], $2 + ret + +.asm_543f + ld hl, $0009 + add hl, bc + ld [hl], $6 + ret +; 5446 + +Function5446: ; 5446 + call $4690 + call $463f + ld hl, $000b + add hl, bc + ld [hl], $4 + ld hl, $d4cf + ld a, [hConnectionStripLength] + cp [hl] + jr z, .asm_5461 + ld hl, $0009 + add hl, bc + ld [hl], $2 + ret + +.asm_5461 + ld hl, $0009 + add hl, bc + ld [hl], $6 + ret +; 5468 + + +Function5468: ; 5468 + call $4690 + call $463f + ld hl, $000b + add hl, bc + ld [hl], $1 + ld hl, $d4cf + ld a, [hConnectionStripLength] + cp [hl] + jr z, .asm_5483 + ld hl, $0009 + add hl, bc + ld [hl], $2 + ret + +.asm_5483 + ld hl, $0009 + add hl, bc + ld [hl], $6 + ret +; 548a + + +Function548a: ; 548a + call $4690 + ld hl, $001f + add hl, bc + ld [hl], $0 + ld hl, $0005 + add hl, bc + res 3, [hl] + ld hl, $000b + add hl, bc + ld [hl], $2 + call $5529 + ld hl, $d4cf + ld a, [hConnectionStripLength] + cp [hl] + jr z, .asm_54b1 + ld hl, $0009 + add hl, bc + ld [hl], $8 + ret + +.asm_54b1 + ld hl, $0009 + add hl, bc + ld [hl], $9 + ret +; 54b8 + + diff --git a/main.asm b/main.asm index b7b2209a8..80acd042f 100644 --- a/main.asm +++ b/main.asm @@ -5583,7 +5583,118 @@ INCBIN "baserom.gbc", $3e32, $3fb5 - $3e32 SECTION "bank1",DATA,BANK[$1] -INCBIN "baserom.gbc", $4000, $5f99 - $4000 + +INCBIN "baserom.gbc", $4000, $5000 - $4000 + + +Function5000: ; 5000 + ld a, [$c2de] + ld hl, $c2df + ld [hl], a + ld a, $3e + ld [$c2de], a + ld a, [hl] + ret +; 500e + +Function500e: ; 500e + ld hl, $c2e3 + call $1aae + ret +; 5015 + +Function5015: ; 5015 + ld hl, $001b + add hl, bc + ld e, [hl] + inc [hl] + ld d, $0 + ld hl, $c2e2 + ld a, [hli] + ld h, [hl] + ld l, a + add hl, de + ld a, [hl] + ret +; 5026 + +Function5026: ; 5026 + ld hl, $001b + add hl, bc + ld e, [hl] + inc [hl] + ld d, $0 + ld hl, $c2e6 + ld a, [hli] + ld h, [hl] + ld l, a + add hl, de + ld a, [hl] + ret +; 5037 + +Function5037: ; 5037 + ld hl, $503d + jp $5041 +; 503d + +Function503d: ; 503d + ld a, [$c2e2] + ret +; 5041 + +Function5041: ; 5041 + call $5055 +.asm_5044 + xor a + ld [$c2ea], a + call Function505e + call Function506b + ld a, [$c2ea] + and a + jr nz, .asm_5044 + ret +; 5055 + +Function5055: ; 5055 + ld a, l + ld [$c2eb], a + ld a, h + ld [$c2ec], a + ret +; 505e + +Function505e: ; 505e + ld hl, $c2eb + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 5065 + +Function5065: ; 5065 + ld a, $1 + ld [$c2ea], a + ret +; 506b + +Function506b: ; 506b + push af + call $54b8 + pop af + ld hl, MovementPointers + rst JumpTable + ret +; 5075 + + +; 5075 +INCLUDE "engine/movement.asm" +; 54b8 + + +INCBIN "baserom.gbc", $54b8, $5f99 - $54b8 + OakSpeech: ; 0x5f99 ld a, $24 From b3c5ca0d6e4a5abafe38aa8f448ab65c4c265d44 Mon Sep 17 00:00:00 2001 From: yenatch Date: Sun, 21 Jul 2013 05:53:04 -0400 Subject: [PATCH 06/84] mom/rival/red/green names --- wram.asm | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/wram.asm b/wram.asm index dec9176db..a4d1076f8 100644 --- a/wram.asm +++ b/wram.asm @@ -1573,17 +1573,19 @@ PlayerGender: ; d472 ds 8 PlayerID: ; d47b ds 2 + PlayerName: ; d47d ds 11 -PlayerNameEnd: ; d488 - +MomsName: ; d488 + ds 11 +RivalName: ; d493 + ds 11 +RedsName: ; d49e + ds 11 +GreensName: ; d4a9 ds 11 -WRivalName: ; d493 - ds 11 -WRivalNameEnd: ; d49e - - ds 24 + ds 2 ; init time set at newgame StartDay: ; d4b6 From 9c7b0932fc36fbb5526d8fd5362390c61d0e792b Mon Sep 17 00:00:00 2001 From: yenatch Date: Sun, 21 Jul 2013 05:53:40 -0400 Subject: [PATCH 07/84] more bank 1 asm --- main.asm | 1857 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 1846 insertions(+), 11 deletions(-) diff --git a/main.asm b/main.asm index 80acd042f..dc70f6a89 100644 --- a/main.asm +++ b/main.asm @@ -5644,7 +5644,7 @@ Function503d: ; 503d ; 5041 Function5041: ; 5041 - call $5055 + call Function5055 .asm_5044 xor a ld [$c2ea], a @@ -5680,7 +5680,7 @@ Function5065: ; 5065 Function506b: ; 506b push af - call $54b8 + call Function54b8 pop af ld hl, MovementPointers rst JumpTable @@ -5693,7 +5693,1846 @@ INCLUDE "engine/movement.asm" ; 54b8 -INCBIN "baserom.gbc", $54b8, $5f99 - $54b8 +Function54b8: ; 54b8 + ld e, a + ld a, [$d4ce] + cp $ff + ret z + ld a, [$d4cd] + ld d, a + ld a, [hConnectionStripLength] + cp d + ret nz + ld a, e + cp $3e + ret z + cp $47 + ret z + cp $4b + ret z + cp $50 + ret z + cp $8 + ret c + push af + ld hl, $d4d0 + inc [hl] + ld e, [hl] + ld d, $0 + ld hl, $d4d1 + add hl, de + pop af + ld [hl], a + ret +; 54e6 + +Function54e6: ; 54e6 + ld hl, $d4d0 + ld a, [hl] + and a + jr z, .asm_5503 + cp $ff + jr z, .asm_5503 + dec [hl] + ld e, a + ld d, $0 + ld hl, $d4d1 + add hl, de + inc e + ld a, $ff +.asm_54fc + ld d, [hl] + ld [hld], a + ld a, d + dec e + jr nz, .asm_54fc + ret + +.asm_5503 + call Function550a + ret c + ld a, $3e + ret +; 550a + +Function550a: ; 550a + ld a, [$d4cd] + cp $ff + jr z, .asm_5520 + push bc + call $1ae5 + ld hl, $0000 + add hl, bc + ld a, [hl] + pop bc + and a + jr z, .asm_5520 + and a + ret + +.asm_5520 + ld a, $ff + ld [$d4ce], a + ld a, $47 + scf + ret +; 5529 + +Function5529: ; 5529 + push bc + ld de, .data_5535 + call Function55b9 + call Function55ac + pop bc + ret + +.data_5535 + db $00, $05, $1b +; 5538 + +Function5538: ; 5538 + push bc + ld de, .data_5544 + call Function55b9 + call Function55ac + pop bc + ret + +.data_5544 + db $00, $05, $22 +; 5547 + +Function5547: ; 5547 + push bc + ld de, .data_5553 + call Function55b9 + call Function55ac + pop bc + ret + +.data_5553 + db $00, $05, $1c +; 5556 + +Function5556: ; 5556 + push bc + ld de, .data_5562 + call Function55b9 + call Function55ac + pop bc + ret + +.data_5562 + db $00, $06, $23 +; 5565 + +Function5565: ; 5565 + push bc + push af + ld de, .data_5576 + call Function55b9 + pop af + ld [$c2f5], a + call Function55ac + pop bc + ret + +.data_5576 + db $00, $05, $1d +; 5579 + +Function5579: ; 5579 + push bc + ld a, [hConnectionStripLength] + ld c, a + call Function5582 + pop bc + ret +; 5582 + +Function5582: ; 5582 + ld de, $d4d6 + ld a, $d +.asm_5587 + push af + ld hl, $0004 + add hl, de + bit 7, [hl] + jr z, .asm_55a1 + ld hl, $0000 + add hl, de + ld a, [hl] + and a + jr z, .asm_55a1 + push bc + xor a + ld bc, $0028 + call ByteFill + pop bc + +.asm_55a1 + ld hl, $0028 + add hl, de + ld d, h + ld e, l + pop af + dec a + jr nz, .asm_5587 + ret +; 55ac + +Function55ac: ; 55ac + call $1a13 + ret nc + ld d, h + ld e, l + ld a, $2 + ld hl, $4286 + rst FarCall + ret +; 55b9 + +Function55b9: ; 55b9 + ld hl, $c2f0 + ld [hl], $ff + inc hl + ld [hl], $ff + inc hl + ld a, [de] + inc de + ld [hli], a + ld a, [de] + inc de + ld [hli], a + ld a, [de] + ld [hli], a + ld a, [hConnectionStripLength] + ld [hli], a + push hl + ld hl, $0010 + add hl, bc + ld d, [hl] + ld hl, $0011 + add hl, bc + ld e, [hl] + pop hl + ld [hl], d + inc hl + ld [hl], e + inc hl + ld [hl], $ff + ret +; 55e0 + +Function55e0: ; 55e0 + ld a, [VramState] + bit 0, a + ret z + ld bc, $d4d6 + xor a +.asm_55ea + ld [hConnectionStripLength], a + call $1af1 + jr z, .asm_55f4 + call Function565c + +.asm_55f4 + ld hl, $0028 + add hl, bc + ld b, h + ld c, l + ld a, [hConnectionStripLength] + inc a + cp $d + jr nz, .asm_55ea + ret +; 5602 + +Function5602: ; 5602 + call Function5645 + ld a, $0 + call Function5629 + ld a, [$d459] + bit 7, a + jr z, .asm_5619 + ld a, [$ffe0] + and a + jr z, .asm_5619 + call Function5629 + +.asm_5619 + call Function5920 + ret +; 561d + +Function561d: ; 561d + call Function5645 + ld a, $0 + call Function5629 + call Function5920 + ret +; 5629 + +Function5629: ; 5629 + cp $10 + ret nc + call GetMapObject + ld hl, $0000 + add hl, bc + ld a, [hl] + cp $ff + ret z + cp $d + ret nc + call $1ae5 + call $1af1 + ret z + call Function5673 + ret +; 5645 + +Function5645: ; 5645 + xor a + ld bc, $d4d6 +.asm_5649 + ld [hConnectionStripLength], a + call Function5680 + ld hl, $0028 + add hl, bc + ld b, h + ld c, l + ld a, [hConnectionStripLength] + inc a + cp $d + jr nz, .asm_5649 + ret +; 565c + +Function565c: ; 565c + push bc + call Function56cd + pop bc + jr c, Function5680 + call Function56a3 + jr c, Function5680 + call Function5688 + ld a, $1 + ld hl, $4440 + rst FarCall + xor a + ret +; 5673 + +Function5673: ; 5673 + call Function56a3 + jr c, Function5680 + ld a, $1 + ld hl, $4440 + rst FarCall + xor a + ret +; 5680 + +Function5680: ; 5680 + ld hl, $000d + add hl, bc + ld [hl], $ff + scf + ret +; 5688 + +Function5688: ; 5688 + push bc + ld hl, $0010 + add hl, bc + ld d, [hl] + ld hl, $0011 + add hl, bc + ld e, [hl] + call $2a3c + pop bc + ld hl, $000e + add hl, bc + ld [hl], a + ld a, $1 + ld hl, $463f + rst FarCall + ret +; 56a3 + +Function56a3: ; 56a3 + ld hl, $0010 + add hl, bc + ld d, [hl] + ld hl, $0011 + add hl, bc + ld e, [hl] + inc d + inc e + ld a, [XCoord] + cp d + jr z, .asm_56bc + jr nc, .asm_56cb + add $b + cp d + jr c, .asm_56cb + +.asm_56bc + ld a, [YCoord] + cp e + jr z, .asm_56c9 + jr nc, .asm_56cb + add $a + cp e + jr c, .asm_56cb + +.asm_56c9 + xor a + ret + +.asm_56cb + scf + ret +; 56cd + +Function56cd: ; 56cd + ld a, [$d14c] + ld d, a + ld hl, $0019 + add hl, bc + ld a, [hl] + ld hl, $0017 + add hl, bc + add [hl] + add d + cp $f0 + jr nc, .asm_56e5 + cp $a0 + jp nc, $5768 + +.asm_56e5 + and $7 + ld d, $2 + cp $4 + jr c, .asm_56ef + ld d, $3 + +.asm_56ef + ld a, [hl] + srl a + srl a + srl a + cp $14 + jr c, .asm_56fc + sub $20 + +.asm_56fc + ld [$ffbd], a + ld a, [$d14d] + ld e, a + ld hl, $001a + add hl, bc + ld a, [hl] + ld hl, $0018 + add hl, bc + add [hl] + add e + cp $f0 + jr nc, .asm_5715 + cp $90 + jr nc, .asm_5768 + +.asm_5715 + and $7 + ld e, $2 + cp $4 + jr c, .asm_571f + ld e, $3 + +.asm_571f + ld a, [hl] + srl a + srl a + srl a + cp $12 + jr c, .asm_572c + sub $20 + +.asm_572c + ld [$ffbe], a + ld hl, $0006 + add hl, bc + bit 7, [hl] + jr z, .asm_573e + ld a, d + add $2 + ld d, a + ld a, e + add $2 + ld e, a + +.asm_573e + ld a, d + ld [$ffbf], a +.asm_5741 + ld a, [$ffbf] + ld d, a + ld a, [$ffbe] + add e + dec a + cp $12 + jr nc, .asm_5763 + ld b, a +.asm_574d + ld a, [$ffbd] + add d + dec a + cp $14 + jr nc, .asm_5760 + ld c, a + push bc + call $1d05 + pop bc + ld a, [hl] + cp $60 + jr nc, .asm_5768 + +.asm_5760 + dec d + jr nz, .asm_574d + +.asm_5763 + dec e + jr nz, .asm_5741 + and a + ret + +.asm_5768 + scf + ret +; 576a + +Function576a: ; 576a + call Function5771 + call Function5781 + ret +; 5771 + +Function5771: ; 5771 + xor a + ld [$d14e], a + ld [$d14f], a + ld [$d150], a + ld a, $ff + ld [$d151], a + ret +; 5781 + +Function5781: ; 5781 + ld bc, $d4d6 + xor a +.asm_5785 + ld [hConnectionStripLength], a + call $1af1 + jr z, .asm_578f + call $437b + +.asm_578f + ld hl, $0028 + add hl, bc + ld b, h + ld c, l + ld a, [hConnectionStripLength] + inc a + cp $d + jr nz, .asm_5785 + ret +; 579d + +Function579d: ; 579d + ld a, $3e + ld [$c2de], a + ld [$c2df], a + xor a + ld [$d04e], a + ld [$d4e2], a + call Function57bc + ld a, $5 + ld hl, $49c6 + rst FarCall + call c, $57d9 + call Function57ca + ret +; 57bc + +Function57bc: ; 57bc + ld hl, $d45b + bit 7, [hl] + jr nz, .asm_57c4 + ret + +.asm_57c4 + ld a, $0 + ld [$d4e1], a + ret +; 57ca + +Function57ca: ; 57ca + ld hl, $d45b + bit 5, [hl] + ret z + ld a, [$d45b] + and $3 + add a + add a + jr .asm_57db + + ld a, $0 + +.asm_57db + ld bc, $d4d6 + call $1af8 + ret +; 57e2 + +Function57e2: ; 57e2 + ld a, d + and $80 + ret z + ld bc, $0000 + ld hl, $0008 + add hl, bc + ld a, [hl] + or d + ld [hl], a + ld a, d + swap a + and $7 + ld d, a + ld bc, $d4d6 + ld hl, $0006 + add hl, bc + ld a, [hl] + and $f8 + or d + ld [hl], a + ret +; 5803 + +Function5803: ; 5803 + push bc + ld a, b + call Function5815 + pop bc + ret c + ld a, c + call Function582c + ld a, $2 + ld hl, $448a + rst FarCall + ret +; 5815 + +Function5815: ; 5815 + call $18de + ret c + ld a, [hConnectedMapWidth] + ld [$d4cd], a + ret +; 581f + +Function581f: ; 581f + call Function5826 + call Function5847 + ret +; 5826 + +Function5826: ; 5826 + ld a, $ff + ld [$d4cd], a + ret +; 582c + +Function582c: ; 582c + push af + call Function5847 + pop af + call $18de + ret c + ld hl, $0003 + add hl, bc + ld [hl], $13 + ld hl, $0009 + add hl, bc + ld [hl], $0 + ld a, [hConnectedMapWidth] + ld [$d4ce], a + ret +; 5847 + +Function5847: ; 5847 + ld a, [$d4ce] + cp $ff + ret z + call $1ae5 + callba Function58e3 + ld a, $ff + ld [$d4ce], a + ret +; 585c + +Function585c: ; 585c + ld a, c + call $18de + ret c + push bc + call Function587a + pop bc + ld hl, $0005 + add hl, bc + res 5, [hl] + xor a + ret +; 586e + +Function586e: ; 586e + call $18de + ret c + ld hl, $0005 + add hl, bc + set 5, [hl] + xor a + ret +; 587a + +Function587a: ; 587a + ld bc, $d4d6 + xor a +.asm_587e + push af + call $1af1 + jr z, .asm_588a + ld hl, $0005 + add hl, bc + set 5, [hl] + +.asm_588a + ld hl, $0028 + add hl, bc + ld b, h + ld c, l + pop af + inc a + cp $d + jr nz, .asm_587e + ret +; 5897 + +Function5897: ; 5897 + ld a, [$d4cd] + cp $ff + ret z + push bc + call $1ae5 + ld hl, $0001 + add hl, bc + ld a, [hl] + pop bc + cp c + ret nz + ld a, [$d4ce] + cp $ff + ret z + call $1ae5 + ld hl, $0005 + add hl, bc + res 5, [hl] + ret +; 58b9 + +Function58b9: ; 58b9 + push bc + ld bc, $d4d6 + xor a +.asm_58be + push af + call $1af1 + jr z, .asm_58ca + ld hl, $0005 + add hl, bc + res 5, [hl] + +.asm_58ca + ld hl, $0028 + add hl, bc + ld b, h + ld c, l + pop af + inc a + cp $d + jr nz, .asm_58be + pop bc + ret +; 58d8 + +Function58d8: ; 58d8 + call $18de + ret c + ld hl, $0005 + add hl, bc + res 5, [hl] + ret +; 58e3 + +Function58e3: ; 58e3 + ld hl, $0001 + add hl, bc + ld a, [hl] + cp $ff + jp z, Function5903 + push bc + call GetMapObject + ld hl, $0004 + add hl, bc + ld a, [hl] + pop bc + ld hl, $0003 + add hl, bc + ld [hl], a + ld hl, $0009 + add hl, bc + ld [hl], $0 + ret +; 5903 + +Function5903: ; 5903 + call GetSpriteDirection + rrca + rrca + ld e, a + ld d, $0 + ld hl, .data_591c + add hl, de + ld a, [hl] + ld hl, $0003 + add hl, bc + ld [hl], a + ld hl, $0009 + add hl, bc + ld [hl], $0 + ret + +.data_591c + db 6, 7, 8, 9 +; 5920 + +Function5920: ; 5920 + ld a, [VramState] + bit 0, a + ret z + xor a + ld [$ffbd], a + ld a, [hOAMUpdate] + push af + ld a, $1 + ld [hOAMUpdate], a + call Function5991 + call Function593a + pop af + ld [hOAMUpdate], a + ret +; 593a + +Function593a: ; 593a + ld a, [VramState] + bit 1, a + ld b, $a0 + jr z, .asm_5945 + ld b, $70 + +.asm_5945 + ld a, [$ffbd] + cp b + ret nc + ld l, a + ld h, $c4 + ld de, $0004 + ld a, b + ld c, $a0 +.asm_5952 + ld [hl], c + add hl, de + cp l + jr nz, .asm_5952 + ret +; 5958 + +Function5958: ; 5958 + push hl + push de + push bc + ld a, [$d14c] + ld d, a + ld a, [$d14d] + ld e, a + ld bc, $d4d6 + ld a, $d +.asm_5968 + push af + call $1af1 + jr z, .asm_597c + ld hl, $0017 + add hl, bc + ld a, [hl] + add d + ld [hl], a + ld hl, $0018 + add hl, bc + ld a, [hl] + add e + ld [hl], a + +.asm_597c + ld hl, $0028 + add hl, bc + ld b, h + ld c, l + pop af + dec a + jr nz, .asm_5968 + xor a + ld [$d14c], a + ld [$d14d], a + pop bc + pop de + pop hl + ret +; 5991 + +Function5991: ; 5991 + call Function59a4 + ld c, $30 + call Function59f3 + ld c, $20 + call Function59f3 + ld c, $10 + call Function59f3 + ret +; 59a4 + +Function59a4: ; 59a4 + xor a + ld hl, $c2eb + ld bc, $000d + call ByteFill + ld d, $0 + ld bc, $d4d6 + ld hl, $c2eb +.asm_59b6 + push hl + call $1af1 + jr z, .asm_59d9 + ld hl, $000d + add hl, bc + ld a, [hl] + cp $ff + jr z, .asm_59d9 + ld e, $10 + ld hl, $0005 + add hl, bc + bit 0, [hl] + jr nz, .asm_59e2 + ld e, $20 + bit 1, [hl] + jr z, .asm_59e2 + ld e, $30 + jr .asm_59e2 + +.asm_59d9 + ld hl, $0028 + add hl, bc + ld b, h + ld c, l + pop hl + jr .asm_59ec + +.asm_59e2 + ld hl, $0028 + add hl, bc + ld b, h + ld c, l + pop hl + ld a, d + or e + ld [hli], a + +.asm_59ec + inc d + ld a, d + cp $d + jr nz, .asm_59b6 + ret +; 59f3 + +Function59f3: ; 59f3 + ld hl, $c2eb +.asm_59f6 + ld a, [hli] + ld d, a + and $f0 + ret z + cp c + jr nz, .asm_59f6 + push bc + push hl + ld a, d + and $f + call Function5ac2 + call Function5a0d + pop hl + pop bc + jr .asm_59f6 +; 5a0d + +Function5a0d: ; 5a0d + ld hl, $0002 + add hl, bc + ld a, [hl] + and $7f + ld [$ffc1], a + xor a + bit 7, [hl] + jr nz, .asm_5a1d + or $8 + +.asm_5a1d + ld hl, $0005 + add hl, bc + ld e, [hl] + bit 7, e + jr z, .asm_5a28 + or $80 + +.asm_5a28 + bit 4, e + jr z, .asm_5a2e + or $10 + +.asm_5a2e + ld hl, $0006 + add hl, bc + ld d, a + ld a, [hl] + and $7 + or d + ld d, a + xor a + bit 3, e + jr z, .asm_5a3f + or $80 + +.asm_5a3f + ld [$ffc2], a + ld hl, $0017 + add hl, bc + ld a, [hl] + ld hl, $0019 + add hl, bc + add [hl] + add $8 + ld e, a + ld a, [$d14c] + add e + ld [$ffbf], a + ld hl, $0018 + add hl, bc + ld a, [hl] + ld hl, $001a + add hl, bc + add [hl] + add $c + ld e, a + ld a, [$d14d] + add e + ld [$ffc0], a + ld hl, $000d + add hl, bc + ld a, [hl] + cp $ff + jp z, .asm_5abe + + cp $20 + jp nc, .asm_5abe + ld l, a + ld h, $0 + add hl, hl + ld bc, $4049 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [$ffbd] + ld c, a + ld b, $c4 + ld a, [hli] + ld [$ffbe], a + add c + cp $a0 + jr nc, .asm_5ac0 + +.asm_5a8e + ld a, [$ffc0] + add [hl] + inc hl + ld [bc], a + inc c + ld a, [$ffbf] + add [hl] + inc hl + ld [bc], a + inc c + ld e, [hl] + inc hl + ld a, [$ffc1] + bit 2, e + jr z, .asm_5aa3 + xor a + +.asm_5aa3 + add [hl] + inc hl + ld [bc], a + inc c + ld a, e + bit 1, a + jr z, .asm_5aaf + ld a, [$ffc2] + or e + +.asm_5aaf + and $f0 + or d + ld [bc], a + inc c + ld a, [$ffbe] + dec a + ld [$ffbe], a + jr nz, .asm_5a8e + ld a, c + ld [$ffbd], a + +.asm_5abe + xor a + ret + +.asm_5ac0 + scf + ret +; 5ac2 + +Function5ac2: ; 5ac2 + ld c, a + ld b, 0 + ld hl, .Addresses + add hl, bc + add hl, bc + ld c, [hl] + inc hl + ld b, [hl] + ret +; 5ace + +.Addresses ; 5ace + dw $d4d6 + dw $d4fe + dw $d526 + dw $d54e + dw $d576 + dw $d59e + dw $d5c6 + dw $d5ee + dw $d616 + dw $d63e + dw $d666 + dw $d68e + dw $d6b6 +; 5ae8 + +Function5ae8: ; 5ae8 + ld de, MUSIC_NONE + call StartMusic + call DelayFrame + ld de, $0054 + ld a, e + ld [CurMusic], a + call StartMusic + ld a, $12 + ld hl, $5cdc + rst FarCall + jp $6219 +; 5b04 + +Function5b04: ; 5b04 + ret +; 5b05 + +Function5b05: ; 5b05 + push de + ld hl, .Days + ld a, b + call GetNthString + ld d, h + ld e, l + pop hl + call PlaceString + ld h, b + ld l, c + ld de, .Day + call PlaceString + ret +; 5b1c + +.Days ; 5b1c + db "SUN@" + db "MON@" + db "TUES@" + db "WEDNES@" + db "THURS@" + db "FRI@" + db "SATUR@" +; 5b40 + +.Day ; 5b40 + db "DAY@" +; 5b44 + +Function5b44: ; 5b44 + xor a + ld [$ffde], a + call ClearTileMap + call $0e5f + call $0e51 + call $1fbf + ret +; 5b54 + +Function5b54: ; 5b54 + call UpdateTime + ld a, $4 + ld hl, $5548 + rst FarCall + ld a, $41 + ld hl, $48ba + rst FarCall + ret +; 5b64 + +Function5b64: ; 5b64 + ld a, $39 + ld hl, $41d0 + rst FarCall + ret +; 5b6b + +Function5b6b: ; 5b6b + xor a + ld [$c2cc], a + call Function5ba7 + call Function5b44 + call Function5b8f + call OakSpeech + call Function5d23 + ld a, $1 + ld [$c2d8], a + ld a, $0 + ld [$d001], a + ld a, $f1 + ld [$ff9f], a + jp $5e5d +; 5b8f + +Function5b8f: ; 5b8f + ld a, $41 + ld hl, $632f + rst FarCall + jr c, .asm_5b9e + ld a, $12 + ld hl, $4dcb + rst FarCall + ret + +.asm_5b9e + ld c, $0 + ld a, $12 + ld hl, $402f + rst FarCall + ret +; 5ba7 + +Function5ba7: ; 5ba7 + xor a + ld [hBGMapMode], a + call Function5bae + ret +; 5bae + +Function5bae: ; 5bae + ld hl, Sprites + ld bc, $0bcc + xor a + call ByteFill + ld hl, $d000 + ld bc, $047b + xor a + call ByteFill + ld hl, PlayerID + ld bc, $0b7a + xor a + call ByteFill + ld a, [rLY] + ld [$ffe3], a + call DelayFrame + ld a, [hRandomSub] + ld [PlayerID], a + ld a, [rLY] + ld [$ffe3], a + call DelayFrame + ld a, [hRandomAdd] + ld [PlayerID + 1], a + call RNG + ld [$d84a], a + call DelayFrame + call RNG + ld [$d84b], a + ld hl, PartyCount + call Function5ca1 + xor a + ld [$db72], a + ld [$d4b4], a + call Function5ca6 + ld a, $1 + call GetSRAMBank + ld hl, $ad10 + call Function5ca1 + call CloseSRAM + ld hl, NumItems + call Function5ca1 + ld hl, NumKeyItems + call Function5ca1 + ld hl, NumBalls + call Function5ca1 + ld hl, $d8f1 + call Function5ca1 + xor a + ld [RoamMon1Species], a + ld [RoamMon2Species], a + ld [RoamMon3Species], a + ld a, $ff + ld [RoamMon1MapGroup], a + ld [RoamMon2MapGroup], a + ld [RoamMon3MapGroup], a + ld [RoamMon1MapNumber], a + ld [RoamMon2MapNumber], a + ld [RoamMon3MapNumber], a + ld a, $0 + call GetSRAMBank + ld hl, $abe2 + xor a + ld [hli], a + dec a + ld [hl], a + call CloseSRAM + call Function5d33 + call Function5cd3 + xor a + ld [MonType], a + ld [JohtoBadges], a + ld [KantoBadges], a + ld [$d855], a + ld [$d856], a + ld [Money], a + ld a, $b + ld [$d84f], a + ld a, $b8 + ld [$d850], a + xor a + ld [$dc17], a + ld hl, $dc19 + ld [hl], $0 + inc hl + ld [hl], $8 + inc hl + ld [hl], $fc + call Function5ce9 + ld a, $9 + ld hl, $6751 + rst FarCall + ld a, $11 + ld hl, $4765 + rst FarCall + ld a, $41 + ld hl, $61c0 + rst FarCall + call $208a + ret +; 5ca1 + +Function5ca1: ; 5ca1 + xor a + ld [hli], a + dec a + ld [hl], a + ret +; 5ca6 + +Function5ca6: ; 5ca6 + ld hl, Box1Name + ld c, $0 +.asm_5cab + push hl + ld de, .Box + call CopyName2 + dec hl + ld a, c + inc a + cp $a + jr c, .asm_5cbe + sub $a + ld [hl], $f7 + inc hl + +.asm_5cbe + add $f6 + ld [hli], a + ld [hl], $50 + pop hl + ld de, $0009 + add hl, de + inc c + ld a, c + cp $e + jr c, .asm_5cab + ret + +.Box + db "BOX@" +; 5cd3 + +Function5cd3: ; 5cd3 + ld hl, $dfe8 + ld a, $3 + ld [hli], a + ld a, $6 + ld [hli], a + ld de, .Ralph + call CopyName2 + ret +; 5ce3 + +.Ralph ; 5ce3 + db "RALPH@" +; 5ce9 + +Function5ce9: ; 5ce9 + ld hl, .Rival + ld de, RivalName + call .Copy + + ld hl, .Mom + ld de, MomsName + call .Copy + + ld hl, .Red + ld de, RedsName + call .Copy + + ld hl, .Green + ld de, GreensName + +.Copy + ld bc, $000b + call CopyBytes + ret + +.Rival + db "???@" +.Red + db "RED@" +.Green + db "GREEN@" +.Mom + db "MOM@" +; 5d23 + +Function5d23: ; 5d23 + call $610f + ld a, $2 + ld hl, $4029 + rst FarCall + ld a, $4 + ld hl, $53d6 + rst FarCall + ret +; 5d33 + +Function5d33: ; 5d33 + ld a, $0 + call GetSRAMBank + ld a, [CurDay] + inc a + ld b, a + ld a, [$ac68] + cp b + ld a, [$ac6a] + ld c, a + ld a, [$ac69] + jr z, .asm_5d55 + ld a, b + ld [$ac68], a + call RNG + ld c, a + call RNG + +.asm_5d55 + ld [$dc9f], a + ld [$ac69], a + ld a, c + ld [$dca0], a + ld [$ac6a], a + jp CloseSRAM +; 5d65 + +Function5d65: ; 5d65 + ld a, $5 + ld hl, $4ea5 + rst FarCall + jr c, .asm_5dd6 + ld a, $5 + ld hl, $50b9 + rst FarCall + call $1d6e + call Function5e85 + ld a, $1 + ld [hBGMapMode], a + ld c, $14 + call DelayFrames + call Function5e34 + jr nc, .asm_5d8c + call Function1c17 + jr .asm_5dd6 + +.asm_5d8c + call Function5e48 + jr nc, .asm_5d96 + call Function1c17 + jr .asm_5dd6 + +.asm_5d96 + ld a, $8 + ld [MusicFade], a + ld a, $0 + ld [MusicFadeIDLo], a + ld a, $0 + ld [MusicFadeIDHi], a + call WhiteBGMap + call Function5df0 + call Function1c17 + call ClearTileMap + ld c, $14 + call DelayFrames + ld a, $a + ld hl, $6394 + rst FarCall + ld a, $41 + ld hl, $5091 + rst FarCall + ld a, $5 + ld hl, $40ae + rst FarCall + ld a, [$d4b5] + cp $1 + jr z, .asm_5dd7 + ld a, $f2 + ld [$ff9f], a + jp $5e5d + +.asm_5dd6 + ret + +.asm_5dd7 + ld a, $e + ld [$d001], a + call Function5de7 + jp $5e5d +; 5de2 + +Function5de2: ; 5de2 + ld a, $1a + ld [$d001], a +; 5de7 + +Function5de7: ; 5de7 + xor a + ld [$d4b5], a + ld a, $f1 + ld [$ff9f], a + ret +; 5df0 + +Function5df0: ; 5df0 + ld a, $41 + ld hl, $632f + rst FarCall + ret nc + ld hl, $d479 + bit 1, [hl] + ret nz + ld a, $5 + ld [MusicFade], a + ld a, $5e + ld [MusicFadeIDLo], a + ld a, $0 + ld [MusicFadeIDHi], a + ld c, $14 + call DelayFrames + ld c, $1 + ld a, $12 + ld hl, $402f + rst FarCall + ld a, $5 + ld hl, $509a + rst FarCall + ld a, $8 + ld [MusicFade], a + ld a, $0 + ld [MusicFadeIDLo], a + ld a, $0 + ld [MusicFadeIDHi], a + ld c, $23 + call DelayFrames + ret +; 5e34 + +Function5e34: ; 5e34 +.asm_5e34 + call DelayFrame + call $0984 + ld hl, hJoyPressed + bit 0, [hl] + jr nz, .asm_5e47 + bit 1, [hl] + jr z, .asm_5e34 + scf + ret + +.asm_5e47 + ret +; 5e48 + +Function5e48: ; 5e48 + call $06e3 + and $80 + jr z, .asm_5e5b + ld a, $8 + ld hl, $4021 + rst FarCall + ld a, c + and a + jr z, .asm_5e5b + scf + ret + +.asm_5e5b + xor a + ret +; 5e5d + +Function5e5d: ; 5e5d +.asm_5e5d + xor a + ld [$c2c1], a + ld [InLinkBattle], a + ld hl, GameTimerPause + set 0, [hl] + res 7, [hl] + ld hl, $d83e + set 1, [hl] + callba Function966b0 + ld a, [$d4b5] + cp $2 + jr z, .asm_5e80 + jp $0150 + +.asm_5e80 + call Function5de2 + jr .asm_5e5d +; 5e85 + +Function5e85: ; 5e85 + call $06e3 + and $80 + jr z, .asm_5e93 + ld de, $0408 + call Function5eaf + ret + +.asm_5e93 + ld de, $0408 + call Function5e9f + ret +; 5e9a + +Function5e9a: ; 5e9a + ld de, $0400 + jr Function5e9f +; 5e9f + +Function5e9f: ; 5e9f + call Function5ebf + call Function5f1c + call Function5f40 + call $0e5f + call $1ad2 + ret +; 5eaf + +Function5eaf: ; 5eaf + call Function5ebf + call Function5f1c + call Function5f48 + call $0e5f + call $1ad2 + ret +; 5ebf + +Function5ebf: ; 5ebf + xor a + ld [hBGMapMode], a + ld hl, MenuDataHeader_0x5ed9 + ld a, [StatusFlags] + bit 0, a ; pokedex + jr nz, .asm_5ecf + ld hl, MenuDataHeader_0x5efb + +.asm_5ecf + call $1e35 + call $1cbb + call $1c89 + ret +; 5ed9 + +MenuDataHeader_0x5ed9: ; 5ed9 + db $40 ; flags + db 00, 00 ; start coords + db 09, 15 ; end coords + dw MenuData2_0x5ee1 + db 1 ; default option +; 5ee1 + +MenuData2_0x5ee1: ; 5ee1 + db $00 ; flags + db 4 ; items + db "PLAYER@" + db "BADGES@" + db "#DEX@" + db "TIME@" +; 5efb + +MenuDataHeader_0x5efb: ; 5efb + db $40 ; flags + db 00, 00 ; start coords + db 09, 15 ; end coords + dw MenuData2_0x5f03 + db 1 ; default option +; 5f03 + +MenuData2_0x5f03: ; 5f03 + db $00 ; flags + db 4 ; items + db "PLAYER ", $52, "@" + db "BADGES@" + db " @" + db "TIME@" +; 5f1c + + +Function5f1c: ; 5f1c + call $1cfd + push hl + ld de, $005d + add hl, de + call Function5f58 + pop hl + push hl + ld de, $0084 + add hl, de + call Function5f6b + pop hl + push hl + ld de, $0030 + add hl, de + ld de, .Player + call PlaceString + pop hl + ret + +.Player + db $52, "@" +; 5f40 + +Function5f40: ; 5f40 + ld de, $00a9 + add hl, de + call Function5f84 + ret +; 5f48 + +Function5f48: ; 5f48 + ld de, $00a9 + add hl, de + ld de, .text_5f53 + call PlaceString + ret + +.text_5f53 + db " ???@" +; 5f58 + +Function5f58: ; 5f58 + push hl + ld hl, JohtoBadges + ld b, $2 + call CountSetBits + pop hl + ld de, $d265 + ld bc, $0102 + jp $3198 +; 5f6b + +Function5f6b: ; 5f6b + ld a, [StatusFlags] + bit 0, a + ret z + push hl + ld hl, PokedexSeen + ld b, $20 + call CountSetBits + pop hl + ld de, $d265 + ld bc, $0103 + jp $3198 +; 5f84 + +Function5f84: ; 5f84 + ld de, GameTimeHours + ld bc, $0203 + call $3198 + ld [hl], $6d + inc hl + ld de, GameTimeMinutes + ld bc, $8102 + jp $3198 +; 5f99 OakSpeech: ; 0x5f99 @@ -6782,12 +8621,12 @@ INCBIN "baserom.gbc", $c224, $c29d - $c224 SpecialNameRival: ; 0xc29d ld b, $2 ; rival - ld de, WRivalName + ld de, RivalName ld a, BANK(Function116b7) ld hl, Function116b7 rst $8 ; default to "SILVER" - ld hl, WRivalName + ld hl, RivalName ld de, DefaultRivalName call InitString ret @@ -8131,9 +9970,7 @@ StartMenu_Option: ; 1291c ; Game options. call FadeToMenu - ld a, $1 - ld hl, $5b64 - rst FarCall + callba Function5b64 ld a, 6 ret ; 12928 @@ -18718,9 +20555,7 @@ Function967d1: ; 967d1 ; 967e1 Function967e1: ; 967e1 - ld a, $1 - ld hl, $5920 - rst FarCall + callba Function5920 ld a, $3 ld hl, $54d2 rst FarCall From 65bd235e61c8303989af86f9753c8f40488eb567 Mon Sep 17 00:00:00 2001 From: yenatch Date: Mon, 22 Jul 2013 03:00:07 -0400 Subject: [PATCH 08/84] even more bank 1 asm --- main.asm | 2788 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- wram.asm | 5 +- 2 files changed, 2736 insertions(+), 57 deletions(-) diff --git a/main.asm b/main.asm index dc70f6a89..28c28f5bb 100644 --- a/main.asm +++ b/main.asm @@ -2217,7 +2217,55 @@ GetMapObject: ; 18d2 ; 18de -INCBIN "baserom.gbc", $18de, $1b07 - $18de +INCBIN "baserom.gbc", $18de, $1a2f - $18de + + +Function1a2f: ; 1a2f + ld hl, $0003 + add hl, bc + ld a, [hl] + cp $25 + jr c, .asm_1a39 + xor a + +.asm_1a39 + ld hl, Data4273 + ld e, a + ld d, 0 + add hl, de + add hl, de + add hl, de + add hl, de + add hl, de + add hl, de + ld a, [hl] + ret +; 1a47 + +Function1a47: ; 1a47 + push bc + push de + ld e, a + ld d, 0 + ld hl, Data4273 + 1 + add hl, de + add hl, de + add hl, de + add hl, de + add hl, de + add hl, de + ld a, BANK(Data4273) + call GetFarByte + add a + add a + and $c + pop de + pop bc + ret +; 1a61 + + +INCBIN "baserom.gbc", $1a61, $1b07 - $1a61 GetSpriteDirection: ; 1b07 @@ -5581,11 +5629,2646 @@ SFXChannelsOff: ; 3e21 INCBIN "baserom.gbc", $3e32, $3fb5 - $3e32 + SECTION "bank1",DATA,BANK[$1] -INCBIN "baserom.gbc", $4000, $5000 - $4000 +Function4000: ; 4000 + hlcoord 3, 10 + ld b, 1 + ld c, 11 + ld a, [IsInBattle] + and a + jr z, .asm_4012 + + call TextBox + jr .asm_4017 + +.asm_4012 + ld a, $10 + call Predef + +.asm_4017 + hlcoord 4, 11 + ld de, .Waiting + call PlaceString + ld c, 50 + jp DelayFrames +; 4025 + +.Waiting ; 4025 + db "Waiting...!@" +; 4031 + +Function4031: ; 4031 + ld c, hPushOAM & $ff + ld b, PushOAMEnd - PushOAM + ld hl, PushOAM +.loop + ld a, [hli] + ld [$ff00+c], a + inc c + dec b + jr nz, .loop + ret +; 403f + +PushOAM: ; 403f + ld a, $c4 + ld [rDMA], a + ld a, $28 +.loop + dec a + jr nz, .loop + ret +PushOAMEnd +; 4049 + + +DataPointers4049: ; 4049 + dw Data408b + dw Data409c + dw Data408b + dw Data40ad + dw Data40be + dw Data40cf + dw Data40be + dw Data40e0 + dw Data40f1 + dw Data4113 + dw Data40f1 + dw Data4113 + dw Data4102 + dw Data4124 + dw Data4102 + dw Data4124 + dw Data4135 + dw Data414a + dw Data415f + dw Data4174 + dw Data4189 + dw Data419a + dw Data4206 + dw Data41a3 + dw Data408b + dw Data41e4 + dw Data408b + dw Data41f5 + dw Data423f + dw Data4250 + dw Data4261 + dw Data426a + dw $0000 +; 408b + +Data408b: ; 408b + db 4 ; # + db $00, $00, $00, $00 + db $00, $08, $00, $01 + db $08, $00, $02, $02 + db $08, $08, $02, $03 +; 409c + +Data409c: ; 409c + db 4 ; # + db $00, $00, $00, $80 + db $00, $08, $00, $81 + db $08, $00, $02, $82 + db $08, $08, $02, $83 +; 40ad + +Data40ad: ; 40ad + db 4 ; # + db $00, $08, $20, $80 + db $00, $00, $20, $81 + db $08, $08, $22, $82 + db $08, $00, $22, $83 +; 40be + +Data40be: ; 40be + db 4 ; # + db $00, $00, $00, $04 + db $00, $08, $00, $05 + db $08, $00, $02, $06 + db $08, $08, $02, $07 +; 40cf + +Data40cf: ; 40cf + db 4 ; # + db $00, $00, $00, $84 + db $00, $08, $00, $85 + db $08, $00, $02, $86 + db $08, $08, $02, $87 +; 40e0 + +Data40e0: ; 40e0 + db 4 ; # + db $00, $08, $20, $84 + db $00, $00, $20, $85 + db $08, $08, $22, $86 + db $08, $00, $22, $87 +; 40f1 + +Data40f1: ; 40f1 + db 4 ; # + db $00, $00, $00, $08 + db $00, $08, $00, $09 + db $08, $00, $02, $0a + db $08, $08, $02, $0b +; 4102 + +Data4102: ; 4102 + db 4 ; # + db $00, $08, $20, $08 + db $00, $00, $20, $09 + db $08, $08, $22, $0a + db $08, $00, $22, $0b +; 4113 + +Data4113: ; 4113 + db 4 ; # + db $00, $00, $00, $88 + db $00, $08, $00, $89 + db $08, $00, $02, $8a + db $08, $08, $02, $8b +; 4124 + +Data4124: ; 4124 + db 4 ; # + db $00, $08, $20, $88 + db $00, $00, $20, $89 + db $08, $08, $22, $8a + db $08, $00, $22, $8b +; 4135 + +Data4135: ; 4135 + db 5 ; # + db $00, $00, $00, $00 + db $00, $08, $00, $01 + db $08, $00, $02, $02 + db $08, $08, $02, $03 + db $10, $00, $04, $fc +; 414a + +Data414a: ; 414a + db 5 ; # + db $00, $00, $00, $04 + db $00, $08, $00, $05 + db $08, $00, $02, $06 + db $08, $08, $02, $07 + db $f8, $00, $04, $fc +; 415f + +Data415f: ; 415f + db 5 ; # + db $00, $00, $00, $08 + db $00, $08, $00, $09 + db $08, $00, $02, $0a + db $08, $08, $02, $0b + db $05, $f8, $24, $fd +; 4174 + +Data4174: ; 4174 + db 5 ; # + db $00, $08, $20, $08 + db $00, $00, $20, $09 + db $08, $08, $22, $0a + db $08, $00, $22, $0b + db $05, $10, $04, $fd +; 4189 + +Data4189: ; 4189 + db 4 ; # + db $00, $00, $04, $f8 + db $00, $08, $04, $f9 + db $08, $00, $04, $fa + db $08, $08, $04, $fb +; 419a + +Data419a: ; 419a + db 2 ; # + db $00, $00, $04, $fc + db $00, $08, $24, $fc +; 41a3 + +Data41a3: ; 41a3 + db 16 ; # + db $00, $00, $00, $00 + db $00, $08, $00, $01 + db $08, $00, $00, $02 + db $08, $08, $00, $03 + db $10, $00, $00, $04 + db $10, $08, $00, $05 + db $18, $00, $00, $06 + db $18, $08, $00, $07 + db $00, $18, $20, $00 + db $00, $10, $20, $01 + db $08, $18, $20, $02 + db $08, $10, $20, $03 + db $10, $18, $20, $04 + db $10, $10, $20, $05 + db $18, $18, $20, $06 + db $18, $10, $20, $07 +; 41e4 + +Data41e4: ; 41e4 + db 4 ; # + db $00, $00, $00, $04 + db $00, $08, $00, $05 + db $08, $00, $00, $06 + db $08, $08, $00, $07 +; 41f5 + +Data41f5: ; 41f5 + db 4 ; # + db $00, $08, $20, $04 + db $00, $00, $20, $05 + db $08, $08, $20, $06 + db $08, $00, $20, $07 +; 4206 + +Data4206: ; 4206 + db 14 ; # + db $00, $00, $00, $00 + db $00, $08, $00, $01 + db $08, $00, $00, $04 + db $08, $08, $00, $05 + db $10, $08, $00, $07 + db $18, $08, $00, $0a + db $00, $18, $00, $03 + db $00, $10, $00, $02 + db $08, $18, $20, $02 + db $08, $10, $00, $06 + db $10, $18, $00, $09 + db $10, $10, $00, $08 + db $18, $18, $20, $04 + db $18, $10, $00, $0b +; 423f + +Data423f: ; 423f + db 4 ; # + db $00, $00, $04, $fe + db $00, $08, $04, $fe + db $08, $00, $04, $fe + db $08, $08, $04, $fe +; 4250 + +Data4250: ; 4250 + db 4 ; # + db $00, $00, $04, $ff + db $00, $08, $04, $ff + db $08, $00, $04, $ff + db $08, $08, $04, $ff +; 4261 + +Data4261: ; 4261 + db 2 ; # + db $08, $00, $04, $fe + db $08, $08, $24, $fe +; 426a + +Data426a: ; 426a + db 2 ; # + db $09, $ff, $04, $fe + db $09, $09, $24, $fe +; 4273 + + +Data4273: ; 4273 +INCBIN "baserom.gbc", $4273, $4357 - $4273 +; 4357 + + +Function4357: ; 4357 + push bc + ld hl, $0001 + add hl, bc + ld a, [hl] + push af + ld h, b + ld l, c + ld bc, $0028 + xor a + call ByteFill + pop af + cp $ff + jr z, .asm_4379 + bit 7, a + jr nz, .asm_4379 + call GetMapObject + ld hl, $0000 + add hl, bc + ld [hl], $ff + +.asm_4379 + pop bc + ret +; 437b + +Function437b: ; 437b + call Function4386 + ret c + call Function43f3 + call Function4427 + ret +; 4386 + +Function4386: ; 4386 + ld hl, $0005 + add hl, bc + res 6, [hl] + ld a, [XCoord] + ld e, a + ld hl, $0010 + add hl, bc + ld a, [hl] + add $1 + sub e + jr c, .asm_43b2 + cp $c + jr nc, .asm_43b2 + ld a, [YCoord] + ld e, a + ld hl, $0011 + add hl, bc + ld a, [hl] + add $1 + sub e + jr c, .asm_43b2 + cp $b + jr nc, .asm_43b2 + jr .asm_43dc + +.asm_43b2 + ld hl, $0005 + add hl, bc + set 6, [hl] + ld a, [XCoord] + ld e, a + ld hl, $0014 + add hl, bc + ld a, [hl] + add $1 + sub e + jr c, .asm_43de + cp $c + jr nc, .asm_43de + ld a, [YCoord] + ld e, a + ld hl, $0015 + add hl, bc + ld a, [hl] + add $1 + sub e + jr c, .asm_43de + cp $b + jr nc, .asm_43de + +.asm_43dc + and a + ret + +.asm_43de + ld hl, $0004 + add hl, bc + bit 1, [hl] + jr nz, .asm_43eb + call Function4357 + scf + ret + +.asm_43eb + ld hl, $0005 + add hl, bc + set 6, [hl] + and a + ret +; 43f3 + +Function43f3: ; 43f3 + ld hl, $0009 + add hl, bc + ld a, [hl] + and a + jr z, .asm_4409 + ld hl, $0005 + add hl, bc + bit 5, [hl] + jr nz, .asm_4426 + cp $1 + jr z, .asm_4414 + jr .asm_4421 + +.asm_4409 + call Function47bc + ld hl, $0005 + add hl, bc + bit 5, [hl] + jr nz, .asm_4426 + +.asm_4414 + call Function47dd + ld hl, $0009 + add hl, bc + ld a, [hl] + and a + ret z + cp $1 + ret z + +.asm_4421 + ld hl, Pointers4b45 + rst JumpTable + ret + +.asm_4426 + ret +; 4427 + +Function4427: ; 4427 + ld hl, $0004 + add hl, bc + bit 0, [hl] + jr nz, Function44a3 + + ld hl, $0005 + add hl, bc + bit 6, [hl] + jr nz, Function44a3 + + bit 5, [hl] + jr nz, Function4448 + + ld de, Pointers445f + jr Function444d +; 4440 + +Function4440: ; 4440 + ld hl, $0004 + add hl, bc + bit 0, [hl] + jr nz, Function44a3 + ; fallthrough +; 4448 + +Function4448: ; 4448 + ld de, Pointers445f + 2 + jr Function444d +; 444d + +Function444d: ; 444d + ld hl, $000b + add hl, bc + ld a, [hl] + ld l, a + ld h, 0 + add hl, hl + add hl, hl + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + call JpHl + ret +; 445f + +Pointers445f: ; 445f + dw Function44a3 + dw Function44a3 + dw Function44b5 + dw Function44aa + dw Function44c1 + dw Function44aa + dw Function4508 + dw Function44aa + dw Function4529 + dw Function44aa + dw Function4539 + dw Function44a3 + dw Function456e + dw Function456e + dw Function457b + dw Function44a3 + dw Function4582 + dw Function4582 + dw Function4589 + dw Function4589 + dw Function4590 + dw Function45a4 + dw Function45ab + dw Function44aa + dw Function45be + dw Function45be + dw Function45c5 + dw Function45c5 + dw Function45da + dw Function44a3 + dw Function45ed + dw Function44a3 + dw Function44e4 + dw Function44aa +; 44a3 + +Function44a3: ; 44a3 + ld hl, $000d + add hl, bc + ld [hl], $ff + ret +; 44aa + +Function44aa: ; 44aa + call GetSpriteDirection + or $0 + ld hl, $000d + add hl, bc + ld [hl], a + ret +; 44b5 + +Function44b5: ; 44b5 + ld hl, $000d + add hl, bc + ld a, [hl] + and $1 + jr nz, Function44c1 + jp Function44aa +; 44c1 + +Function44c1: ; 44c1 + ld hl, $0004 + add hl, bc + bit 3, [hl] + jp nz, Function44aa + ld hl, $000c + add hl, bc + ld a, [hl] + inc a + and $f + ld [hl], a + rrca + rrca + and $3 + ld d, a + call GetSpriteDirection + or $0 + or d + ld hl, $000d + add hl, bc + ld [hl], a + ret +; 44e4 + +Function44e4: ; 44e4 + ld hl, $0004 + add hl, bc + bit 3, [hl] + jp nz, Function44aa + ld hl, $000c + add hl, bc + ld a, [hl] + add $2 + and $f + ld [hl], a + rrca + rrca + and $3 + ld d, a + call GetSpriteDirection + or $0 + or d + ld hl, $000d + add hl, bc + ld [hl], a + ret +; 4508 + +Function4508: ; 4508 + ld hl, $0004 + add hl, bc + bit 3, [hl] + jp nz, Function44aa + ld hl, $000c + add hl, bc + inc [hl] + ld a, [hl] + rrca + rrca + rrca + and $3 + ld d, a + call GetSpriteDirection + or $0 + or d + ld hl, $000d + add hl, bc + ld [hl], a + ret +; 4529 + +Function4529: ; 4529 + call Function453f + ld hl, $0008 + add hl, bc + ld a, [hl] + or $0 + ld hl, $000d + add hl, bc + ld [hl], a + ret +; 4539 + +Function4539: ; 4539 + call Function453f + jp Function44a3 +; 453f + +Function453f: ; 453f + ld hl, $000c + add hl, bc + ld a, [hl] + and $f0 + ld e, a + ld a, [hl] + inc a + and $f + ld d, a + cp $4 + jr c, .asm_4558 + ld d, 0 + ld a, e + add $10 + and $30 + ld e, a + +.asm_4558 + ld a, d + or e + ld [hl], a + swap e + ld d, 0 + ld hl, .Directions + add hl, de + ld a, [hl] + ld hl, $0008 + add hl, bc + ld [hl], a + ret +; 456a + +.Directions ; 456a + db $00, $0c, $04, $08 +; 456e + +Function456e: ; 456e + call $1b07 + rrca + rrca + add $10 + ld hl, $000d + add hl, bc + ld [hl], a + ret +; 457b + +Function457b: ; 457b + ld hl, $000d + add hl, bc + ld [hl], $15 + ret +; 4582 + +Function4582: ; 4582 + ld hl, $000d + add hl, bc + ld [hl], $14 + ret +; 4589 + +Function4589: ; 4589 + ld hl, $000d + add hl, bc + ld [hl], $17 + ret +; 4590 + +Function4590: ; 4590 + ld hl, $000c + add hl, bc + ld a, [hl] + inc a + and $f + ld [hl], a + and $8 + jr z, Function45a4 + ld hl, $000d + add hl, bc + ld [hl], $4 + ret +; 45a4 + +Function45a4: ; 45a4 + ld hl, $000d + add hl, bc + ld [hl], $0 + ret +; 45ab + +Function45ab: ; 45ab + ld hl, $000c + add hl, bc + ld a, [hl] + inc a + ld [hl], a + and $c + rrca + rrca + add $18 + ld hl, $000d + add hl, bc + ld [hl], a + ret +; 45be + +Function45be: ; 45be + ld hl, $000d + add hl, bc + ld [hl], $16 + ret +; 45c5 + +Function45c5: ; 45c5 + ld a, [$d831] + ld d, $17 + cp $33 + jr z, .asm_45d4 + cp $47 + jr z, .asm_45d4 + ld d, $16 + +.asm_45d4 + ld hl, $000d + add hl, bc + ld [hl], d + ret +; 45da + +Function45da: ; 45da + ld hl, $000c + add hl, bc + inc [hl] + ld a, [hl] + ld hl, $000d + add hl, bc + and $2 + ld a, $1c + jr z, .asm_45eb + inc a + +.asm_45eb + ld [hl], a + ret +; 45ed + +Function45ed: ; 45ed + ld hl, $000c + add hl, bc + inc [hl] + ld a, [hl] + ld hl, $000d + add hl, bc + and $4 + ld a, $1e + jr z, .asm_45fe + inc a + +.asm_45fe + ld [hl], a + ret +; 4600 + +Function4600: ; 4600 + ld hl, $0010 + add hl, bc + ld a, [hl] + ld hl, $0012 + add hl, bc + ld [hl], a + ld hl, $0011 + add hl, bc + ld a, [hl] + ld hl, $0013 + add hl, bc + ld [hl], a + ld hl, $000e + add hl, bc + ld a, [hl] + ld hl, $000f + add hl, bc + ld [hl], a + call Function4661 + ld hl, $000e + add hl, bc + ld a, [hl] + call Function4679 + ret +; 462a + +Function462a: ; 462a + ld hl, $0012 + add hl, bc + ld a, [hl] + ld hl, $0010 + add hl, bc + ld [hl], a + ld hl, $0013 + add hl, bc + ld a, [hl] + ld hl, $0011 + add hl, bc + ld [hl], a + ret +; 463f + +Function463f: ; 463f + ld hl, $0005 + add hl, bc + bit 3, [hl] + jr z, .asm_464f + ld hl, $000e + add hl, bc + ld a, [hl] + call Function4661 + +.asm_464f + ld hl, $000e + add hl, bc + ld a, [hl] + call Function4679 + ret c + ld hl, $000f + add hl, bc + ld a, [hl] + call Function4679 + ret +; 4661 + +Function4661: ; 4661 + call $188e + jr z, .asm_466b + call $1875 + jr c, .asm_4672 + +.asm_466b + ld hl, $0005 + add hl, bc + set 3, [hl] + ret + +.asm_4672 + ld hl, $0005 + add hl, bc + res 3, [hl] + ret +; 4679 + +Function4679: ; 4679 + and a + ret +; 467b + +Function467b: ; 467b + xor a + ld hl, $000c + add hl, bc + ld [hl], a + ld hl, $001b + add hl, bc + ld [hli], a + ld [hli], a + ld [hli], a + ld [hl], a + ld hl, $0007 + add hl, bc + ld [hl], $ff + ret +; 4690 + +Function4690: ; 4690 + ld hl, $0007 + add hl, bc + ld [hl], a + ld hl, $0004 + add hl, bc + bit 2, [hl] + jr nz, .asm_46a6 + + add a + add a + and $c + ld hl, $0008 + add hl, bc + ld [hl], a + +.asm_46a6 + ; fallthrough +; 46a6 + +Function46a6: ; 46a6 + call Function46e9 + ld hl, $000a + add hl, bc + ld [hl], a + ld a, d + call Function4730 + ld hl, $0012 + add hl, bc + add [hl] + ld hl, $0010 + add hl, bc + ld [hl], a + ld d, a + ld a, e + call Function4730 + ld hl, $0013 + add hl, bc + add [hl] + ld hl, $0011 + add hl, bc + ld [hl], a + ld e, a + push bc + call $2a3c + pop bc + ld hl, $000e + add hl, bc + ld [hl], a + ret +; 46d7 + +Function46d7: ; 46d7 + call Function46e9 + ld hl, $0017 + add hl, bc + ld a, [hl] + add d + ld [hl], a + ld hl, $0018 + add hl, bc + ld a, [hl] + add e + ld [hl], a + ret +; 46e9 + +Function46e9: ; 46e9 + ld hl, $0007 + add hl, bc + ld a, [hl] + and $f + add a + add a + ld l, a + ld h, 0 + ld de, .Steps + add hl, de + ld d, [hl] + inc hl + ld e, [hl] + inc hl + ld a, [hli] + ld h, [hl] + ret +; 4700 + +.Steps ; 4700 + ; x, y, duration, speed + ; slow + db 0, 1, $10, $01 + db 0, -1, $10, $01 + db -1, 0, $10, $01 + db 1, 0, $10, $01 + ; normal + db 0, 2, $08, $02 + db 0, -2, $08, $02 + db -2, 0, $08, $02 + db 2, 0, $08, $02 + ; fast + db 0, 4, $04, $04 + db 0, -4, $04, $04 + db -4, 0, $04, $04 + db 4, 0, $04, $04 +; 4730 + +Function4730: ; 4730 + add a + ret z + ld a, 1 + ret nc + ld a, -1 + ret +; 4738 + +Function4738: ; 4738 + ld hl, $0007 + add hl, bc + ld a, [hl] + and $3 + ld [$d151], a + call Function46d7 + ld a, [$d14e] + add d + ld [$d14e], a + ld a, [$d14f] + add e + ld [$d14f], a + ld hl, $d150 + set 5, [hl] + ret +; 4759 + +Function4759: ; 4759 + push bc + ld e, a + ld d, 0 + ld hl, $0001 + add hl, bc + ld a, [hl] + call GetMapObject + add hl, de + ld a, [hl] + pop bc + ret +; 4769 + +Function4769: ; 4769 + ld hl, $0001 + add hl, bc + ld a, [hl] + cp $ff + jr z, .asm_477d + push bc + call GetMapObject + ld hl, $0004 + add hl, bc + ld a, [hl] + pop bc + ret + +.asm_477d + ld a, $6 + ret +; 4780 + +Function4780: ; 4780 + ld hl, $001b + add hl, bc + ld [hl], $0 + ret +; 4787 + +Function4787: ; 4787 + ld hl, $001b + add hl, bc + inc [hl] + ret +; 478d + +Function478d: ; 478d + ld hl, $001b + add hl, bc + dec [hl] + ret +; 4793 + +Function4793: ; 4793 + ld hl, $001b + add hl, bc + ld a, [hl] + pop hl + rst JumpTable + ret +; 479b + +Function479b: ; 479b + ld hl, $001c + add hl, bc + ld [hl], $0 + ret +; 47a2 + +Function47a2: ; 47a2 + ld hl, $001c + add hl, bc + inc [hl] + ret +; 47a8 + +Function47a8: ; 47a8 + ld hl, $001c + add hl, bc + ld a, [hl] + pop hl + rst JumpTable + ret +; 47b0 + +Function47b0: ; 47b0 + ld hl, $001c + add hl, bc + ld a, [hl] + ret +; 47b6 + +Function47b6: ; 47b6 + ld hl, $001c + add hl, bc + ld [hl], a + ret +; 47bc + +Function47bc: ; 47bc + ld hl, $0010 + add hl, bc + ld d, [hl] + ld hl, $0011 + add hl, bc + ld e, [hl] + push bc + call $2a3c + pop bc + ld hl, $000e + add hl, bc + ld [hl], a + call Function4600 + call Function467b + ld hl, $0009 + add hl, bc + ld [hl], $1 + ret +; 47dd + +Function47dd: ; 47dd + call Function479b + call Function1a2f + ld a, [hl] + ld hl, .Pointers + rst JumpTable + ret +; 47e9 + +.Pointers ; 47e9 + dw Function4821 + dw Function4822 + dw Function482c + dw Function4838 + dw Function4842 + dw Function4851 + dw Function4869 + dw Function487c + dw Function4882 + dw Function4888 + dw Function488e + dw Function4891 + dw Function4894 + dw Function4897 + dw Function489d + dw Function48a0 + dw Function48a6 + dw Function48ac + dw Function48ff + dw Function49e5 + dw Function4a21 + dw Function4958 + dw Function496e + dw Function4abc + dw Function498d + dw Function4984 + dw Function4a46 + dw Function4a89 +; 4821 + +Function4821: ; 4821 + ret +; 4822 + +Function4822: ; 4822 + call RNG + ld a, [hRandomAdd] + and 1 + jp Function4af0 +; 482c + +Function482c: ; 482c + call RNG + ld a, [hRandomAdd] + and 1 + or 2 + jp Function4af0 +; 4838 + +Function4838: ; 4838 + call RNG + ld a, [hRandomAdd] + and 3 + jp Function4af0 +; 4842 + +Function4842: ; 4842 + call RNG + ld a, [hRandomAdd] + and $c + ld hl, $0008 + add hl, bc + ld [hl], a + jp Function4b1d +; 4851 + +Function4851: ; 4851 + ld hl, $0008 + add hl, bc + ld a, [hl] + and $c + ld d, a + call RNG + ld a, [hRandomAdd] + and $c + cp d + jr nz, .asm_4865 + xor $c + +.asm_4865 + ld [hl], a + jp Function4b26 +; 4869 + +Function4869: ; 4869 + call Function462a + call Function467b + ld hl, $000b + add hl, bc + ld [hl], $1 + ld hl, $0009 + add hl, bc + ld [hl], $5 + ret +; 487c + +Function487c: ; 487c + ld hl, Function5000 + jp Function5041 +; 4882 + +Function4882: ; 4882 + ld hl, Function5015 + jp Function5041 +; 4888 + +Function4888: ; 4888 + ld hl, Function5026 + jp Function5041 +; 488e + +Function488e: ; 488e + jp Function5037 +; 4891 + +Function4891: ; 4891 + jp Function5037 +; 4894 + +Function4894: ; 4894 + jp Function5037 +; 4897 + +Function4897: ; 4897 + ld hl, Function5000 + jp Function5041 +; 489d + +Function489d: ; 489d + jp Function5037 +; 48a0 + +Function48a0: ; 48a0 + ld hl, Function54e6 + jp Function5041 +; 48a6 + +Function48a6: ; 48a6 + ld hl, Function500e + jp Function5041 +; 48ac + +Function48ac: ; 48ac + call Function4793 + dw Function48b3 + dw Function48f8 +; 48b3 + +Function48b3: ; 48b3 + ld hl, $000e + add hl, bc + ld a, [hl] + call CheckPitTile + jr z, .asm_48f5 + ld hl, $0005 + add hl, bc + bit 2, [hl] + res 2, [hl] + jr z, .asm_48ee + ld hl, $0020 + add hl, bc + ld a, [hl] + and $3 + or $0 + call Function4690 + call $6ec1 + jr c, .asm_48eb + ld de, SFX_STRENGTH + call StartSFX + call Function5538 + call Function463f + ld hl, $0009 + add hl, bc + ld [hl], $f + ret + +.asm_48eb + call Function462a + +.asm_48ee + ld hl, $0007 + add hl, bc + ld [hl], $ff + ret + +.asm_48f5 + call Function4787 + ; fallthrough +; 48f8 + +Function48f8: ; 48f8 + ld hl, $0007 + add hl, bc + ld [hl], $ff + ret +; 48ff + +Function48ff: ; 48ff + ld hl, $0010 + add hl, bc + ld d, [hl] + ld hl, $0011 + add hl, bc + ld e, [hl] + ld hl, $0020 + add hl, bc + ld a, [hl] + push bc + call $1ae5 + ld hl, $0007 + add hl, bc + ld a, [hl] + cp $ff + jr z, .asm_494a + ld hl, $0012 + add hl, bc + ld a, [hl] + cp d + jr z, .asm_492d + jr c, .asm_4929 + ld a, $3 + jr .asm_493d + +.asm_4929 + ld a, $2 + jr .asm_493d + +.asm_492d + ld hl, $0013 + add hl, bc + ld a, [hl] + cp e + jr z, .asm_494a + jr c, .asm_493b + ld a, $0 + jr .asm_493d + +.asm_493b + ld a, $1 + +.asm_493d + ld d, a + ld hl, $0007 + add hl, bc + ld a, [hl] + and $c + or d + pop bc + jp Function5412 + +.asm_494a + pop bc + ld hl, $0007 + add hl, bc + ld [hl], $ff + ld hl, $000b + add hl, bc + ld [hl], $1 + ret +; 4958 + +Function4958: ; 4958 + call Function467b + ld hl, $0007 + add hl, bc + ld [hl], $ff + ld hl, $000b + add hl, bc + ld [hl], $9 + ld hl, $0009 + add hl, bc + ld [hl], $4 + ret +; 496e + +Function496e: ; 496e + call Function467b + ld hl, $0007 + add hl, bc + ld [hl], $ff + ld hl, $000b + add hl, bc + ld [hl], $a + ld hl, $0009 + add hl, bc + ld [hl], $4 + ret +; 4984 + +Function4984: ; 4984 + call Function4793 + dw Function4996 + dw Function499c + dw Function49b8 +; 498d + +Function498d: ; 498d + call Function4793 + dw Function4996 + dw Function499c + dw Function49c4 +; 4996 + +Function4996: ; 4996 + call Function467b + call Function4787 + ; fallthrough +; 499c + +Function499c: ; 499c + ld hl, $000b + add hl, bc + ld [hl], $1 + ld hl, $0020 + add hl, bc + ld a, [hl] + ld a, $10 + ld hl, $000a + add hl, bc + ld [hl], a + ld hl, $0009 + add hl, bc + ld [hl], $3 + call Function4787 + ret +; 49b8 + +Function49b8: ; 49b8 + ld de, .data_49c0 + call Function49d0 + jr Function4984 +; 49c0 + +.data_49c0 ; 49c0 + db $0c, $08, $00, $04 +; 49c4 + +Function49c4: ; 49c4 + ld de, .data_49cc + call Function49d0 + jr Function498d +; 49cc + +.data_49cc ; 49cc + db $08, $0c, $04, $00 +; 49d0 + +Function49d0: ; 49d0 + ld hl, $0008 + add hl, bc + ld a, [hl] + and $c + rrca + rrca + push hl + ld l, a + ld h, $0 + add hl, de + ld a, [hl] + pop hl + ld [hl], a + call Function478d + ret +; 49e5 + +Function49e5: ; 49e5 + call Function4aa8 + ld hl, $000b + add hl, bc + ld [hl], $7 + ld hl, $000a + add hl, de + ld a, [hl] + inc a + add a + add $0 + ld hl, $000a + add hl, bc + ld [hl], a + ld hl, $0007 + add hl, de + ld a, [hl] + and 3 + ld d, $e + cp 0 + jr z, .asm_4a0f + cp 1 + jr z, .asm_4a0f + ld d, $c + +.asm_4a0f + ld hl, $001a + add hl, bc + ld [hl], d + ld hl, $0019 + add hl, bc + ld [hl], $0 + ld hl, $0009 + add hl, bc + ld [hl], $13 + ret +; 4a21 + +Function4a21: ; 4a21 + call Function467b + call Function4aa8 + ld hl, $000b + add hl, bc + ld [hl], $8 + ld hl, $000a + add hl, bc + ld [hl], $0 + ld hl, $001a + add hl, bc + ld [hl], $f0 + ld hl, $0019 + add hl, bc + ld [hl], $0 + ld hl, $0009 + add hl, bc + ld [hl], $13 + ret +; 4a46 + +Function4a46: ; 4a46 + call Function467b + call Function4aa8 + ld hl, $000b + add hl, bc + ld [hl], $e + ld hl, $000a + add hl, de + ld a, [hl] + inc a + add a + ld hl, $000a + add hl, bc + ld [hl], a + ld hl, $0007 + add hl, de + ld a, [hl] + and 3 + ld e, a + ld d, 0 + ld hl, .data_4a81 + add hl, de + add hl, de + ld d, [hl] + inc hl + ld e, [hl] + ld hl, $0019 + add hl, bc + ld [hl], d + ld hl, $001a + add hl, bc + ld [hl], e + ld hl, $0009 + add hl, bc + ld [hl], $13 + ret +; 4a81 + +.data_4a81 ; 4a81 + ; x, y + db 0, -4 + db 0, 8 + db 6, 2 + db -6, 2 +; 4a89 + +Function4a89: ; 4a89 + call Function467b + call Function4aa8 + ld hl, $000b + add hl, bc + ld [hl], $f + ld hl, $000a + add hl, de + ld a, [hl] + add $ff + ld hl, $000a + add hl, bc + ld [hl], a + ld hl, $0009 + add hl, bc + ld [hl], $13 + ret +; 4aa8 + +Function4aa8: ; 4aa8 + ld hl, $0020 + add hl, bc + ld a, [hl] + push bc + call $1ae5 + ld d, b + ld e, c + pop bc + ld hl, $001d + add hl, bc + ld [hl], e + inc hl + ld [hl], d + ret +; 4abc + +Function4abc: ; 4abc + call Function467b + ld hl, $000b + add hl, bc + ld [hl], $0 + ld hl, $0020 + add hl, bc + ld a, [hl] + call Function4ade + ld hl, $000a + add hl, bc + ld [hl], e + ld hl, $001e + add hl, bc + ld [hl], a + ld hl, $0009 + add hl, bc + ld [hl], $15 + ret +; 4ade + +Function4ade: ; 4ade + ld d, a + and $3f + ld e, a + ld a, d + rlca + rlca + and $3 + ld d, a + inc d + ld a, $1 +.asm_4aeb + dec d + ret z + add a + jr .asm_4aeb +; 4af0 + +Function4af0: ; 4af0 + call Function4690 + call $6ec1 + jr c, Function4b17 + call Function463f + ld hl, $000b + add hl, bc + ld [hl], $2 + ld hl, $d4cf + ld a, [hConnectionStripLength] + cp [hl] + jr z, .asm_4b10 + ld hl, $0009 + add hl, bc + ld [hl], $7 + ret + +.asm_4b10 + ld hl, $0009 + add hl, bc + ld [hl], $6 + ret + +Function4b17: ; 4b17 + call Function467b + call Function462a + ; fallthrough +; 4b1d + +Function4b1d: ; 4b1d + call RNG + ld a, [hRandomAdd] + and $7f + jr Function4b2d +; 4b26 + +Function4b26: ; 4b26 + call RNG + ld a, [hRandomAdd] + and $1f + ; fallthrough +; 4b2d + +Function4b2d: ; 4b2d + ld hl, $000a + add hl, bc + ld [hl], a + ld hl, $0007 + add hl, bc + ld [hl], $ff + ld hl, $000b + add hl, bc + ld [hl], $1 + ld hl, $0009 + add hl, bc + ld [hl], $3 + ret +; 4b45 + +Pointers4b45: ; 4b45 + dw Function47bc + dw Function47dd + dw Function4e2b + dw Function4ddd + dw Function4e21 + dw Function4e0c + dw Function4e56 + dw Function4e47 + dw Function4b86 + dw Function4bbf + dw Function4e83 + dw Function4dff + dw Function4c18 + dw Function4c89 + dw Function4d14 + dw Function4ecd + dw Function4d7e + dw Function4daf + dw Function4dc8 + dw Function4f04 + dw Function4f33 + dw Function4f33 + dw Function4f77 + dw Function4f7a + dw Function4df0 + dw Function4f83 +; 4b79 + +Function4b79: ; 4b79 + ld hl, $000a + add hl, bc + dec [hl] + ret nz + ld hl, $0009 + add hl, bc + ld [hl], $1 + ret +; 4b86 + +Function4b86: ; 4b86 + call Function47a8 + dw Function4b8d + dw Function4ba9 +; 4b8d + +Function4b8d: ; 4b8d + call Function46d7 + call UpdateJumpPosition + ld hl, $000a + add hl, bc + dec [hl] + ret nz + call Function4600 + call Function46a6 + ld hl, $0005 + add hl, bc + res 3, [hl] + call Function47a2 + ret +; 4ba9 + +Function4ba9: ; 4ba9 + call Function46d7 + call UpdateJumpPosition + ld hl, $000a + add hl, bc + dec [hl] + ret nz + call Function4600 + ld hl, $0009 + add hl, bc + ld [hl], $1 + ret +; 4bbf + +Function4bbf: ; 4bbf + call Function47a8 + dw Function4bca + dw Function4bd2 + dw Function4bf2 + dw Function4bfd +; 4bca + +Function4bca: ; 4bca + ld hl, $d150 + set 7, [hl] + call Function47a2 +; fallthrough +; 4bd2 + +Function4bd2: ; 4bd2 + call UpdateJumpPosition + call Function4738 + ld hl, $000a + add hl, bc + dec [hl] + ret nz + call Function4600 + ld hl, $0005 + add hl, bc + res 3, [hl] + ld hl, $d150 + set 6, [hl] + set 4, [hl] + call Function47a2 + ret +; 4bf2 + +Function4bf2: ; 4bf2 + call Function46a6 + ld hl, $d150 + set 7, [hl] + call Function47a2 +; fallthrough +; 4bfd + +Function4bfd: ; 4bfd + call UpdateJumpPosition + call Function4738 + ld hl, $000a + add hl, bc + dec [hl] + ret nz + ld hl, $d150 + set 6, [hl] + call Function4600 + ld hl, $0009 + add hl, bc + ld [hl], $1 + ret +; 4c18 + +Function4c18: ; 4c18 + call Function47a8 + dw Function4c23 + dw Function4c32 + dw Function4c42 + dw Function4c5d +; 4c23 + +Function4c23: ; 4c23 + ld hl, $000c + add hl, bc + ld [hl], $0 + ld hl, $000a + add hl, bc + ld [hl], $10 + call Function47a2 +; fallthrough +; 4c32 + +Function4c32: ; 4c32 + ld hl, $000b + add hl, bc + ld [hl], $4 + ld hl, $000a + add hl, bc + dec [hl] + ret nz + call Function47a2 + ret +; 4c42 + +Function4c42: ; 4c42 + ld hl, $000c + add hl, bc + ld [hl], $0 + ld hl, $001f + add hl, bc + ld [hl], $10 + ld hl, $000a + add hl, bc + ld [hl], $10 + ld hl, $0005 + add hl, bc + res 3, [hl] + call Function47a2 +; fallthrough +; 4c5d + +Function4c5d: ; 4c5d + ld hl, $000b + add hl, bc + ld [hl], $4 + ld hl, $001f + add hl, bc + inc [hl] + ld a, [hl] + ld d, $60 + call $1b11 + ld a, h + sub $60 + ld hl, $001a + add hl, bc + ld [hl], a + ld hl, $000a + add hl, bc + dec [hl] + ret nz + ld hl, $000c + add hl, bc + ld [hl], $0 + ld hl, $0009 + add hl, bc + ld [hl], $1 + ret +; 4c89 + +Function4c89: ; 4c89 + call Function47a8 + dw Function4c9a + dw Function4caa + dw Function4cb3 + dw Function4cc9 + dw Function4ceb + dw Function4cf5 + dw Function4d01 +; 4c9a + +Function4c9a: ; 4c9a + ld hl, $000b + add hl, bc + ld [hl], $0 + ld hl, $000a + add hl, bc + ld [hl], $10 + call Function47a2 + ret +; 4caa + +Function4caa: ; 4caa + ld hl, $000a + add hl, bc + dec [hl] + ret nz + call Function47a2 +; fallthrough +; 4cb3 + +Function4cb3: ; 4cb3 + ld hl, $000c + add hl, bc + ld [hl], $0 + ld hl, $001f + add hl, bc + ld [hl], $0 + ld hl, $000a + add hl, bc + ld [hl], $10 + call Function47a2 + ret +; 4cc9 + +Function4cc9: ; 4cc9 + ld hl, $000b + add hl, bc + ld [hl], $4 + ld hl, $001f + add hl, bc + inc [hl] + ld a, [hl] + ld d, $60 + call $1b11 + ld a, h + sub $60 + ld hl, $001a + add hl, bc + ld [hl], a + ld hl, $000a + add hl, bc + dec [hl] + ret nz + call Function47a2 +; fallthrough +; 4ceb + +Function4ceb: ; 4ceb + ld hl, $000a + add hl, bc + ld [hl], $10 + call Function47a2 + ret +; 4cf5 + +Function4cf5: ; 4cf5 + ld hl, $000b + add hl, bc + ld [hl], $4 + ld hl, $000a + add hl, bc + dec [hl] + ret nz +; 4d01 + +Function4d01: ; 4d01 + ld hl, $000c + add hl, bc + ld [hl], $0 + ld hl, $001a + add hl, bc + ld [hl], $0 + ld hl, $0009 + add hl, bc + ld [hl], $1 + ret +; 4d14 + +Function4d14: ; 4d14 + call Function47a8 + dw Function4d1f + dw Function4d2e + dw Function4d4f + dw Function4d6b +; 4d1f + +Function4d1f: ; 4d1f + ld hl, $000b + add hl, bc + ld [hl], $0 + ld hl, $000a + add hl, bc + ld [hl], $10 + call Function47a2 +; fallthrough +; 4d2e + +Function4d2e: ; 4d2e + ld hl, $000a + add hl, bc + dec [hl] + ret nz + ld hl, $000b + add hl, bc + ld [hl], $2 + ld hl, $000c + add hl, bc + ld [hl], $0 + ld hl, $001f + add hl, bc + ld [hl], $0 + ld hl, $000a + add hl, bc + ld [hl], $10 + call Function47a2 +; fallthrough +; 4d4f + +Function4d4f: ; 4d4f + ld hl, $001f + add hl, bc + inc [hl] + ld a, [hl] + ld d, $60 + call $1b11 + ld a, h + sub $60 + ld hl, $001a + add hl, bc + ld [hl], a + ld hl, $000a + add hl, bc + dec [hl] + ret nz + call Function47a2 +; fallthrough +; 4d6b + +Function4d6b: ; 4d6b + ld hl, $000c + add hl, bc + ld [hl], $0 + ld hl, $001a + add hl, bc + ld [hl], $0 + ld hl, $0009 + add hl, bc + ld [hl], $1 + ret +; 4d7e + +Function4d7e: ; 4d7e + call Function47a8 + dw Function4d85 + dw Function4d94 +; 4d85 + +Function4d85: ; 4d85 + ld hl, $000a + add hl, bc + ld [hl], $8 + ld hl, $001a + add hl, bc + ld [hl], $0 + call Function47a2 + ; fallthrough +; 4d94 + +Function4d94: ; 4d94 + ld hl, $001a + add hl, bc + ld a, [hl] + xor 1 + ld [hl], a + ld hl, $000a + add hl, bc + dec [hl] + ret nz + ld hl, $001a + add hl, bc + ld [hl], $0 + ld hl, $0009 + add hl, bc + ld [hl], $1 + ret +; 4daf + +Function4daf: ; 4daf + call Function4db5 + jp Function4b79 +; 4db5 + +Function4db5: ; 4db5 + ld hl, $000a + add hl, bc + ld a, [hl] + and $1 + ld a, $1 + jr z, .asm_4dc2 + ld a, $0 + +.asm_4dc2 + ld hl, $000b + add hl, bc + ld [hl], a + ret +; 4dc8 + +Function4dc8: ; 4dc8 + ld hl, $000a + add hl, bc + ld a, [hl] + and $1 + ld a, $4 + jr z, .asm_4dd5 + ld a, $5 + +.asm_4dd5 + ld hl, $000b + add hl, bc + ld [hl], a + jp Function4b79 +; 4ddd + +Function4ddd: ; 4ddd + ld hl, $0007 + add hl, bc + ld [hl], $ff + ld hl, $000a + add hl, bc + dec [hl] + ret nz + ld hl, $0009 + add hl, bc + ld [hl], $1 + ret +; 4df0 + +Function4df0: ; 4df0 + ld hl, $0007 + add hl, bc + ld [hl], $ff + ld hl, $000a + add hl, bc + dec [hl] + ret nz + jp Function4357 +; 4dff + +Function4dff: ; 4dff + ld hl, $000a + add hl, bc + dec [hl] + ret nz + ld hl, $0009 + add hl, bc + ld [hl], $1 + ret +; 4e0c + +Function4e0c: ; 4e0c + call Function47a8 + dw Function4e13 + dw Function4e21 +; 4e13 + +Function4e13: ; 4e13 + call Function4769 + call Function1a47 + ld hl, $0008 + add hl, bc + ld [hl], a + call Function47a2 + ; fallthrough +; 4e21 + +Function4e21: ; 4e21 + call Function4fb2 + ld hl, $0007 + add hl, bc + ld [hl], $ff + ret +; 4e2b + +Function4e2b: ; 4e2b + call Function4fb2 + call Function46d7 + ld hl, $000a + add hl, bc + dec [hl] + ret nz + call Function4600 + ld hl, $0007 + add hl, bc + ld [hl], $ff + ld hl, $0009 + add hl, bc + ld [hl], $1 + ret +; 4e47 + +Function4e47: ; 4e47 + call Function46d7 + ld hl, $000a + add hl, bc + dec [hl] + ret nz + call Function4600 + jp Function4b1d +; 4e56 + +Function4e56: ; 4e56 +; AnimateStep? + call Function47a8 + dw Function4e5d + dw Function4e65 +; 4e5d + +Function4e5d: ; 4e5d + ld hl, $d150 + set 7, [hl] + call Function47a2 + ; fallthrough +; 4e65 + +Function4e65: ; 4e65 + call Function4738 + ld hl, $000a + add hl, bc + dec [hl] + ret nz + ld hl, $d150 + set 6, [hl] + call Function4600 + ld hl, $0007 + add hl, bc + ld [hl], $ff + ld hl, $0009 + add hl, bc + ld [hl], $1 + ret +; 4e83 + +Function4e83: ; 4e83 + call Function47a8 + dw Function4e8e + dw Function4ea4 + dw Function4ead + dw Function4ec0 +; 4e8e + +Function4e8e: ; 4e8e + ld hl, $0007 + add hl, bc + ld [hl], $ff + ld hl, $000c + add hl, bc + ld a, [hl] + ld [hl], $2 + ld hl, $000a + add hl, bc + ld [hl], $2 + call Function47a2 + ; fallthrough +; 4ea4 + +Function4ea4: ; 4ea4 + ld hl, $000a + add hl, bc + dec [hl] + ret nz + call Function47a2 + ; fallthrough +; 4ead + +Function4ead: ; 4ead + ld hl, $001d + add hl, bc + ld a, [hl] + ld hl, $0008 + add hl, bc + ld [hl], a + ld hl, $000a + add hl, bc + ld [hl], $2 + call Function47a2 + ; fallthrough +; 4ec0 + +Function4ec0: ; 4ec0 + ld hl, $000a + add hl, bc + dec [hl] + ret nz + ld hl, $0009 + add hl, bc + ld [hl], $1 + ret +; 4ecd + +Function4ecd: ; 4ecd + call Function46d7 + ld hl, $000a + add hl, bc + dec [hl] + ret nz + push bc + ld hl, $0010 + add hl, bc + ld d, [hl] + ld hl, $0011 + add hl, bc + ld e, [hl] + ld hl, $0001 + add hl, bc + ld a, [hl] + ld b, a + ld a, $2 + ld hl, $407e + rst FarCall + pop bc + ld hl, $0005 + add hl, bc + res 2, [hl] + call Function4600 + ld hl, $0007 + add hl, bc + ld [hl], $ff + ld hl, $0009 + add hl, bc + ld [hl], $1 + ret +; 4f04 + +Function4f04: ; 4f04 + ld hl, $001d + add hl, bc + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $0000 + add hl, de + ld a, [hl] + and a + jr z, .asm_4f30 + ld hl, $0017 + add hl, de + ld a, [hl] + ld hl, $0017 + add hl, bc + ld [hl], a + ld hl, $0018 + add hl, de + ld a, [hl] + ld hl, $0018 + add hl, bc + ld [hl], a + ld hl, $000a + add hl, bc + ld a, [hl] + and a + ret z + dec [hl] + ret nz + +.asm_4f30 + jp Function4357 +; 4f33 + +Function4f33: ; 4f33 + call Function47a8 + dw Function4f3a + dw Function4f43 +; 4f3a + +Function4f3a: ; 4f3a + xor a + ld hl, $001d + add hl, bc + ld [hl], a + call Function47a2 + ; fallthrough +; 4f43 + +Function4f43: ; 4f43 + ld hl, $001d + add hl, bc + ld d, [hl] + ld a, [$d14f] + sub d + ld [$d14f], a + ld hl, $000a + add hl, bc + dec [hl] + jr z, .asm_4f68 + ld a, [hl] + call Function4f6c + ld hl, $001d + add hl, bc + ld [hl], a + ld d, a + ld a, [$d14f] + add d + ld [$d14f], a + ret + +.asm_4f68 + call Function4357 + ret +; 4f6c + +Function4f6c: ; 4f6c + ld hl, $001e + add hl, bc + and 1 + ld a, [hl] + ret z + cpl + inc a + ret +; 4f77 + +Function4f77: ; 4f77 + call Function47a8 ; ???? +; 4f7a + +Function4f7a: ; 4f7a + call Function47a8 + dw Function4f83 + dw Function4f83 + dw Function4f83 +; 4f83 + +Function4f83: ; 4f83 + call Function47a8 + dw Function4f8a + dw Function4f99 +; 4f8a + +Function4f8a: ; 4f8a + ld hl, $000b + add hl, bc + ld [hl], $10 + ld hl, $000a + add hl, bc + ld [hl], $10 + call Function47a2 +; 4f99 + +Function4f99: ; 4f99 + ld hl, $000a + add hl, bc + dec [hl] + ret nz + ld hl, $001a + add hl, bc + ld [hl], $60 + ld hl, $000c + add hl, bc + ld [hl], $0 + ld hl, $0009 + add hl, bc + ld [hl], $1 + ret +; 4fb2 + +Function4fb2: ; 4fb2 + ret +; 4fb3 + +Function4fb3: ; 4fb3 + ld hl, $001d + add hl, bc + inc [hl] + ld a, [hl] + srl a + srl a + and 7 + ld l, a + ld h, 0 + ld de, .y + add hl, de + ld a, [hl] + ld hl, $001a + add hl, bc + ld [hl], a + ret +; 4fcd + +.y ; 4fcd + db 0, -1, -2, -3, -4, -3, -2, -1 +; 4fd5 + +UpdateJumpPosition: ; 4fd5 + call Function46e9 + ld a, h + ld hl, $001f + add hl, bc + ld e, [hl] + add e + ld [hl], a + nop + srl e + ld d, 0 + ld hl, .y + add hl, de + ld a, [hl] + ld hl, $001a + add hl, bc + ld [hl], a + ret +; 4ff0 + +.y ; 4ff0 + db -4, -6, -8, -10, -11, -12, -12, -12 + db -11, -10, -9, -8, -6, -4, 0, 0 +; 5000 Function5000: ; 5000 ld a, [$c2de] @@ -5608,7 +8291,7 @@ Function5015: ; 5015 add hl, bc ld e, [hl] inc [hl] - ld d, $0 + ld d, 0 ld hl, $c2e2 ld a, [hli] ld h, [hl] @@ -5623,7 +8306,7 @@ Function5026: ; 5026 add hl, bc ld e, [hl] inc [hl] - ld d, $0 + ld d, 0 ld hl, $c2e6 ld a, [hli] ld h, [hl] @@ -5634,8 +8317,8 @@ Function5026: ; 5026 ; 5037 Function5037: ; 5037 - ld hl, $503d - jp $5041 + ld hl, Function503d + jp Function5041 ; 503d Function503d: ; 503d @@ -5718,7 +8401,7 @@ Function54b8: ; 54b8 ld hl, $d4d0 inc [hl] ld e, [hl] - ld d, $0 + ld d, 0 ld hl, $d4d1 add hl, de pop af @@ -5735,7 +8418,7 @@ Function54e6: ; 54e6 jr z, .asm_5503 dec [hl] ld e, a - ld d, $0 + ld d, 0 ld hl, $d4d1 add hl, de inc e @@ -6016,9 +8699,7 @@ Function565c: ; 565c call Function56a3 jr c, Function5680 call Function5688 - ld a, $1 - ld hl, $4440 - rst FarCall + callba Function4440 xor a ret ; 5673 @@ -6026,9 +8707,7 @@ Function565c: ; 565c Function5673: ; 5673 call Function56a3 jr c, Function5680 - ld a, $1 - ld hl, $4440 - rst FarCall + callba Function4440 xor a ret ; 5680 @@ -6054,9 +8733,7 @@ Function5688: ; 5688 ld hl, $000e add hl, bc ld [hl], a - ld a, $1 - ld hl, $463f - rst FarCall + callba Function463f ret ; 56a3 @@ -6108,7 +8785,7 @@ Function56cd: ; 56cd cp $f0 jr nc, .asm_56e5 cp $a0 - jp nc, $5768 + jp nc, .asm_5768 .asm_56e5 and $7 @@ -6235,7 +8912,7 @@ Function5781: ; 5781 ld [hConnectionStripLength], a call $1af1 jr z, .asm_578f - call $437b + call Function437b .asm_578f ld hl, $0028 @@ -6260,7 +8937,7 @@ Function579d: ; 579d ld a, $5 ld hl, $49c6 rst FarCall - call c, $57d9 + call c, Function57d9 call Function57ca ret ; 57bc @@ -6285,11 +8962,15 @@ Function57ca: ; 57ca and $3 add a add a - jr .asm_57db + jr Function57db +; 57d9 +Function57d9: ; 57d9 ld a, $0 + ; fallthrough +; 57db -.asm_57db +Function57db: ; 57db ld bc, $d4d6 call $1af8 ret @@ -6510,7 +9191,7 @@ Function5903: ; 5903 rrca rrca ld e, a - ld d, $0 + ld d, 0 ld hl, .data_591c add hl, de ld a, [hl] @@ -6625,7 +9306,7 @@ Function59a4: ; 59a4 ld hl, $c2eb ld bc, $000d call ByteFill - ld d, $0 + ld d, 0 ld bc, $d4d6 ld hl, $c2eb .asm_59b6 @@ -6755,32 +9436,34 @@ Function5a0d: ; 5a0d ld a, [$d14d] add e ld [$ffc0], a + ld hl, $000d add hl, bc ld a, [hl] cp $ff jp z, .asm_5abe - cp $20 jp nc, .asm_5abe + ld l, a - ld h, $0 + ld h, 0 add hl, hl - ld bc, $4049 + ld bc, DataPointers4049 add hl, bc ld a, [hli] ld h, [hl] ld l, a + ld a, [$ffbd] ld c, a - ld b, $c4 + ld b, Sprites / $100 ld a, [hli] ld [$ffbe], a add c - cp $a0 - jr nc, .asm_5ac0 + cp SpritesEnd % $100 + jr nc, .full -.asm_5a8e +.loop ld a, [$ffc0] add [hl] inc hl @@ -6797,7 +9480,6 @@ Function5a0d: ; 5a0d bit 2, e jr z, .asm_5aa3 xor a - .asm_5aa3 add [hl] inc hl @@ -6808,7 +9490,6 @@ Function5a0d: ; 5a0d jr z, .asm_5aaf ld a, [$ffc2] or e - .asm_5aaf and $f0 or d @@ -6817,7 +9498,8 @@ Function5a0d: ; 5a0d ld a, [$ffbe] dec a ld [$ffbe], a - jr nz, .asm_5a8e + jr nz, .loop + ld a, c ld [$ffbd], a @@ -6825,7 +9507,7 @@ Function5a0d: ; 5a0d xor a ret -.asm_5ac0 +.full scf ret ; 5ac2 @@ -6862,7 +9544,7 @@ Function5ae8: ; 5ae8 ld de, MUSIC_NONE call StartMusic call DelayFrame - ld de, $0054 + ld de, MUSIC_MAIN_MENU ld a, e ld [CurMusic], a call StartMusic @@ -6948,7 +9630,7 @@ Function5b6b: ; 5b6b ld [$d001], a ld a, $f1 ld [$ff9f], a - jp $5e5d + jp Function5e5d ; 5b8f Function5b8f: ; 5b8f @@ -7230,9 +9912,9 @@ Function5d65: ; 5d65 .asm_5d96 ld a, $8 ld [MusicFade], a - ld a, $0 + ld a, MUSIC_NONE % $100 ld [MusicFadeIDLo], a - ld a, $0 + ld a, MUSIC_NONE / $100 ld [MusicFadeIDHi], a call WhiteBGMap call Function5df0 @@ -7254,7 +9936,7 @@ Function5d65: ; 5d65 jr z, .asm_5dd7 ld a, $f2 ld [$ff9f], a - jp $5e5d + jp Function5e5d .asm_5dd6 ret @@ -7263,7 +9945,7 @@ Function5d65: ; 5d65 ld a, $e ld [$d001], a call Function5de7 - jp $5e5d + jp Function5e5d ; 5de2 Function5de2: ; 5de2 @@ -7289,11 +9971,11 @@ Function5df0: ; 5df0 ret nz ld a, $5 ld [MusicFade], a - ld a, $5e + ld a, MUSIC_MOBILE_ADAPTER_MENU % $100 ld [MusicFadeIDLo], a - ld a, $0 + ld a, MUSIC_MOBILE_ADAPTER_MENU / $100 ld [MusicFadeIDHi], a - ld c, $14 + ld c, 20 call DelayFrames ld c, $1 ld a, $12 @@ -7304,11 +9986,11 @@ Function5df0: ; 5df0 rst FarCall ld a, $8 ld [MusicFade], a - ld a, $0 + ld a, MUSIC_NONE % $100 ld [MusicFadeIDLo], a - ld a, $0 + ld a, MUSIC_NONE / $100 ld [MusicFadeIDHi], a - ld c, $23 + ld c, 35 call DelayFrames ret ; 5e34 @@ -20544,9 +23226,7 @@ Function967c1: ; 967c1 ; 967d1 Function967d1: ; 967d1 - ld a, $1 - ld hl, $576a - rst FarCall + callba Function576a ld a, $3 ld hl, $5497 rst FarCall @@ -21492,9 +24172,7 @@ WaitScript: ; 96c7a dec [hl] ret nz - ld a, $1 - ld hl, $58b9 - rst FarCall + callba Function58b9 ld a, SCRIPT_READ ld [ScriptMode], a @@ -21509,9 +24187,7 @@ WaitScriptMovement: ; 96c91 bit 7, [hl] ret nz - ld a, $1 - ld hl, $58b9 - rst FarCall + callba Function58b9 ld a, SCRIPT_READ ld [ScriptMode], a diff --git a/wram.asm b/wram.asm index a4d1076f8..3cce27407 100644 --- a/wram.asm +++ b/wram.asm @@ -373,6 +373,7 @@ Sprites: ; c400 ; bit 3: vram bank (cgb only) ; bit 2-0: pal # (cgb only) ds 160 +SpritesEnd TileMap: ; c4a0 ; 20x18 grid of 8x8 tiles @@ -1622,7 +1623,9 @@ FRIDAY EQU 5 SATURDAY EQU 6 ds 1 - ds 12 + ds 10 + + ds 2 PlayerSprite: ; d4d8 ds 1 From 1518925365a8693ca5f7e921467e1f7a63b31e56 Mon Sep 17 00:00:00 2001 From: yenatch Date: Mon, 22 Jul 2013 04:27:50 -0400 Subject: [PATCH 09/84] main menu and untranslated mobile text --- main.asm | 460 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 446 insertions(+), 14 deletions(-) diff --git a/main.asm b/main.asm index 28c28f5bb..7d5acc782 100644 --- a/main.asm +++ b/main.asm @@ -9598,7 +9598,7 @@ Function5b44: ; 5b44 ret ; 5b54 -Function5b54: ; 5b54 +MysteryGift: ; 5b54 call UpdateTime ld a, $4 ld hl, $5548 @@ -9609,14 +9609,14 @@ Function5b54: ; 5b54 ret ; 5b64 -Function5b64: ; 5b64 +OptionsMenu: ; 5b64 ld a, $39 ld hl, $41d0 rst FarCall ret ; 5b6b -Function5b6b: ; 5b6b +NewGame: ; 5b6b xor a ld [$c2cc], a call Function5ba7 @@ -9884,7 +9884,7 @@ Function5d33: ; 5d33 jp CloseSRAM ; 5d65 -Function5d65: ; 5d65 +Continue: ; 5d65 ld a, $5 ld hl, $4ea5 rst FarCall @@ -12652,7 +12652,7 @@ StartMenu_Option: ; 1291c ; Game options. call FadeToMenu - callba Function5b64 + callba OptionsMenu ld a, 6 ret ; 12928 @@ -18406,8 +18406,52 @@ INCBIN "gfx/special/celebi/2.2bpp" INCBIN "gfx/special/celebi/3.2bpp" INCBIN "gfx/special/celebi/4.2bpp" -INCBIN "baserom.gbc", $49aa2, $49d24 - $49aa2 +INCBIN "baserom.gbc", $49aa2, $49cdc - $49aa2 +MainMenu: ; 49cdc + xor a + ld [$c2d7], a + call Function49ed0 + ld b, $8 + call GetSGBLayout + call $32f9 + ld hl, GameTimerPause + res 0, [hl] + call Function49da4 + ld [$cf76], a + call Function49e09 + ld hl, MenuDataHeader_0x49d14 + call Function1d35 + call Function49de4 + call Function1c17 + jr c, .quit + call ClearTileMap + ld a, [MenuSelection] + ld hl, Label49d60 + rst JumpTable + jr MainMenu + +.quit + ret +; 49d14 + +MenuDataHeader_0x49d14: ; 49d14 + db $40 ; flags + db 00, 00 ; start coords + db 07, 16 ; end coords + dw MenuData2_0x49d1c + db 1 ; default option +; 49d1c + +MenuData2_0x49d1c: ; 49d1c + db $80 ; flags + db 0 ; items + dw MainMenuItems + dw $1f79 + dw MainMenuText +; 49d20 + +MainMenuText: ContinueText: ; 0x49d24 db "CONTINUE@" NewGameText: ; 0x49d2d @@ -18422,12 +18466,13 @@ MobileStudiumText: ; 0x49d51 db "MOBILE STUDIUM@" Label49d60: ; 0x49d60 - dw $5eee ; XXX is this ContinueASM? - dw $5ee0 ; XXX is this NewGameASM? - dw $5ee7 ; XXX is this OptionASM? - dw $5ef5 ; XXX is this MysteryGiftASM? - dw $5efc ; XXX is this MobileASM? - dw $6496 ; XXX is this MobileStudiumASM? + dw MainMenu_Continue + dw MainMenu_NewGame + dw MainMenu_Options + dw MainMenu_MysteryGift + dw MainMenu_Mobile + dw MainMenu_MobileStudium +; 0x49d6c CONTINUE EQU 0 NEW_GAME EQU 1 @@ -18436,6 +18481,8 @@ MYSTERY_GIFT EQU 3 MOBILE EQU 4 MOBILE_STUDIUM EQU 5 +MainMenuItems: + NewGameMenu: ; 0x49d6c db 2 db NEW_GAME @@ -18510,7 +18557,392 @@ StudiumMenu: ; 0x49d9e db MOBILE_STUDIUM db $ff -INCBIN "baserom.gbc", $49da4, $4a6e8 - $49da4 + +Function49da4: ; 49da4 + nop + nop + nop + ld a, [$cfcd] + and a + jr nz, .asm_49db0 + ld a, $0 + ret + +.asm_49db0 + ld a, [hCGB] + cp $1 + ld a, $1 + ret nz + ld a, $0 + call GetSRAMBank + ld a, [$abe5] + cp $ff + call CloseSRAM + jr nz, .asm_49dd6 + ld a, [StatusFlags] + bit 7, a + ld a, $1 + jr z, .asm_49dd1 + jr .asm_49dd1 + +.asm_49dd1 + jr .asm_49dd3 + +.asm_49dd3 + ld a, $1 + ret + +.asm_49dd6 + ld a, [StatusFlags] + bit 7, a + jr z, .asm_49ddf + jr .asm_49ddf + +.asm_49ddf + jr .asm_49de1 + +.asm_49de1 + ld a, $6 + ret +; 49de4 + +Function49de4: ; 49de4 + call SetUpMenu +.asm_49de7 + call $5e09 + ld a, [$cfa5] + set 5, a + ld [$cfa5], a + call $1f1a + ld a, [$cf73] + cp $2 + jr z, .asm_49e07 + cp $1 + jr z, .asm_49e02 + jr .asm_49de7 + +.asm_49e02 + call PlayClickSFX + and a + ret + +.asm_49e07 + scf + ret +; 49e09 + +Function49e09: ; 49e09 + ld a, [$cfcd] + and a + ret z + xor a + ld [hBGMapMode], a + call Function49e27 + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + call $5e3d + pop af + ld [Options], a + ld a, $1 + ld [hBGMapMode], a + ret +; 49e27 + + +Function49e27: ; 49e27 + call $06e3 + and $80 + jr nz, .asm_49e39 + ld hl, $c5b8 + ld b, $2 + ld c, $12 + call TextBox + ret + +.asm_49e39 + call SpeechTextBox + ret +; 49e3d + + +Function49e3d: ; 49e3d + ld a, [$cfcd] + and a + ret z + call $06e3 + and $80 + jp nz, Function49e75 + call UpdateTime + call GetWeekday + ld b, a + decoord 1, 15 + call Function49e91 + decoord 4, 16 + ld a, [hHours] + ld c, a + ld a, $24 + ld hl, $4b3e + rst FarCall + ld [hl], $9c + inc hl + ld de, hMinutes + ld bc, $8102 + call $3198 + ret +; 49e70 + +; 49e70 + db "min.@" +; 49e75 + +Function49e75: ; 49e75 + hlcoord 1, 14 + ld de, .TimeNotSet + call PlaceString + ret +; 49e7f + +.TimeNotSet ; 49e7f + db "TIME NOT SET@" +; 49e8c + +UnknownText_0x49e8c: ; 49e8c + text_jump UnknownText_0x1c5182, BANK(UnknownText_0x1c5182) + db "@" +; 49e91 + +Function49e91: ; 49e91 + push de + ld hl, .Days + ld a, b + call GetNthString + ld d, h + ld e, l + pop hl + call PlaceString + ld h, b + ld l, c + ld de, .Day + call PlaceString + ret +; 49ea8 + +.Days + db "SUN@" + db "MON@" + db "TUES@" + db "WEDNES@" + db "THURS@" + db "FRI@" + db "SATUR@" +.Day + db "DAY@" +; 49ed0 + +Function49ed0: ; 49ed0 + xor a + ld [$ffde], a + call ClearTileMap + call $0e5f + call $0e51 + call $1fbf + ret +; 49ee0 + + +MainMenu_NewGame: ; 49ee0 + callba NewGame + ret +; 49ee7 + +MainMenu_Options: ; 49ee7 + callba OptionsMenu + ret +; 49eee + +MainMenu_Continue: ; 49eee + callba Continue + ret +; 49ef5 + +MainMenu_MysteryGift: ; 49ef5 + callba MysteryGift + ret +; 49efc + +MainMenu_Mobile: ; 49efc + call WhiteBGMap + ld a, MUSIC_MOBILE_ADAPTER_MENU + ld [CurMusic], a + ld de, MUSIC_MOBILE_ADAPTER_MENU + call $66c5 + call WhiteBGMap + call $63a7 + call $6492 + call WhiteBGMap + call $6071 + ld c, $c + call DelayFrames + ld hl, $c4a4 + ld b, $a + ld c, $a + call $4cdc + ld hl, $c4ce + ld de, MobileString1 + call PlaceString + ld hl, $c590 + ld b, $4 + ld c, $12 + call TextBox + xor a + ld de, String_0x49fe9 + ld hl, $c5b9 + call PlaceString + call Function3200 + call $32f9 + call $1bc9 + ld hl, $cfa9 + ld b, [hl] + push bc + jr .asm_49f5d + +.asm_49f55 + call $1bd3 + ld hl, $cfa9 + ld b, [hl] + push bc + +.asm_49f5d + bit 0, a + jr nz, .asm_49f67 + bit 1, a + jr nz, .asm_49f84 + jr .asm_49f97 + +.asm_49f67 + ld hl, $cfa9 + ld a, [hl] + cp $1 + jp z, $6098 + cp $2 + jp z, $60b9 + cp $3 + jp z, $60c2 + cp $4 + jp z, $6100 + ld a, $1 + call $1ff8 + +.asm_49f84 + pop bc + call WhiteBGMap + call ClearTileMap + ld a, MUSIC_MAIN_MENU + ld [CurMusic], a + ld de, MUSIC_MAIN_MENU + call $66c5 + ret + +.asm_49f97 + ld hl, $cfa9 + ld a, [hl] + dec a + ld hl, MobileStrings2 + call GetNthString + ld d, h + ld e, l + ld hl, $c5a5 + ld b, $4 + ld c, $12 + call ClearBox + ld hl, $c5b9 + call PlaceString + jp .asm_49fb7 + +.asm_49fb7 + call $6071 + pop bc + ld hl, $cfa9 + ld [hl], b + ld b, $a + ld c, $1 + ld hl, $c4b9 + call ClearBox + jp .asm_49f55 +; 49fcc + + +MobileString1: ; 49fcc + db "めいしフ,ルダー", $4e + db "あいさつ", $4e + db "プロフィール", $4e + db "せ", $1e, "い", $4e + db "もどる@" +; 49fe9 + + +MobileStrings2: + +String_0x49fe9: ; 49fe9 + db "めいし", $1f, "つくったり", $4e + db "ほぞんしておける フ,ルダーです@" +; 4a004 + +String_0x4a004: ; 4a004 + db "モバイルたいせんや じぶんのめいしで", $4e + db "つかう あいさつ", $1f, "つくります@" +; 4a026 + +String_0x4a026: ; 4a026 + db "あなた", $25, "じゅうしょや ねんれいの", $4e + db "せ", $1e, "い", $1f, "かえられます@" +; 4a042 + +String_0x4a042: ; 4a042 + db "モバイルセンター", $1d, "せつぞくするとき", $4e + db "ひつような こと", $1f, "きめます@" +; 4a062 + +String_0x4a062: ; 4a062 + db "まえ", $25, "がめん ", $1d, "もどります", $4e + db "@" +; 4a071 + + +INCBIN "baserom.gbc", $4a071, $4a496 - $4a071 + + +MainMenu_MobileStudium: ; 4a496 + ld a, [StartDay] + ld b, a + ld a, [StartHour] + ld c, a + ld a, [StartMinute] + ld d, a + ld a, [StartSecond] + ld e, a + push bc + push de + callba MobileStudium + call WhiteBGMap + pop de + pop bc + ld a, b + ld [StartDay], a + ld a, c + ld [StartHour], a + ld a, d + ld [StartMinute], a + ld a, e + ld [StartSecond], a + ret +; 4a4c4 + + +INCBIN "baserom.gbc", $4a4c4, $4a6e8 - $4a4c4 + SpecialBeastsCheck: ; 0x4a6e8 ; Check if the player owns all three legendary beasts. @@ -29665,7 +30097,7 @@ INCBIN "baserom.gbc", $114000, $117a7f - $114000 ; everything from here to the end of the bank is related to the ; Mobile Stadium option from the continue/newgame menu. ; XXX better function names -Function117a7f: ; 0x117a7f +MobileStudium: ; 0x117a7f ld a, [$ffaa] push af ld a, $1 From 83139cb7d6d349fadb3fafed9843776623b4f939 Mon Sep 17 00:00:00 2001 From: yenatch Date: Wed, 24 Jul 2013 03:47:52 -0400 Subject: [PATCH 10/84] Text_1354 is used globally --- main.asm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/main.asm b/main.asm index 7d5acc782..f00b64620 100644 --- a/main.asm +++ b/main.asm @@ -1500,7 +1500,7 @@ Char4B: ; 131f Char55: ; 1345 push de - ld de, .text_1354 + ld de, Text_1354 ld b, h ld c, l call PlaceString @@ -1508,8 +1508,9 @@ Char55: ; 1345 ld l, c pop de jp NextChar +; 1354 -.text_1354 +Text_1354: ; 1354 db $4b, "@" ; 1356 From 184a984941ec3c242de2ca087548bb48e21e418e Mon Sep 17 00:00:00 2001 From: yenatch Date: Wed, 24 Jul 2013 18:32:45 -0400 Subject: [PATCH 11/84] autogbzdisasm trial run --- main.asm | 3152 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 3113 insertions(+), 39 deletions(-) diff --git a/main.asm b/main.asm index f00b64620..505732450 100644 --- a/main.asm +++ b/main.asm @@ -56,7 +56,169 @@ Start: SECTION "start",HOME[$150] -INCBIN "baserom.gbc", $150, $283 - $150 +INCBIN "baserom.gbc", $150, $16e - $150 + + +Function16e: ; 16e + cp $11 + jr z, .asm_175 + xor a + jr .asm_177 + +.asm_175 + ld a, $1 + +.asm_177 + ld [hCGB], a + ld a, $1 + ld [$ffea], a + di + xor a + ld [rIF], a + ld [rIE], a + ld [rRP], a + ld [rSCX], a + ld [rSCY], a + ld [rSB], a + ld [rSC], a + ld [rWX], a + ld [rWY], a + ld [rBGP], a + ld [rOBP0], a + ld [rOBP1], a + ld [rTMA], a + ld [rTAC], a + ld [$d000], a + ld a, $4 + ld [rTAC], a +.asm_1a2 + ld a, [rLY] + cp $91 + jr nz, .asm_1a2 + xor a + ld [rLCDC], a + ld hl, $c000 + ld bc, $1000 +.asm_1b1 + ld [hl], $0 + inc hl + dec bc + ld a, b + or c + jr nz, .asm_1b1 + ld sp, $c0ff + ld a, [hCGB] + push af + ld a, [$ffea] + push af + xor a + ld hl, hPushOAM + ld bc, $007f + call ByteFill + pop af + ld [$ffea], a + pop af + ld [hCGB], a + call $025a + ld a, $1 + ld [rSVBK], a + call $0245 + call ClearSprites + call $0270 + ld a, $1 + rst Bankswitch + + call $4031 + xor a + ld [$ffde], a + ld [$ffcf], a + ld [$ffd0], a + ld [rJOYP], a + ld a, $8 + ld [rSTAT], a + ld a, $90 + ld [$ffd2], a + ld [rWY], a + ld a, $7 + ld [$ffd1], a + ld [rWX], a + ld a, $e3 + ld [rLCDC], a + ld a, $ff + ld [$ffcb], a + ld a, $2 + ld hl, $5890 + rst FarCall + ld a, $9c + ld [$ffd7], a + xor a + ld [hBGMapAddress], a + ld a, $5 + ld hl, $4089 + rst FarCall + xor a + ld [$6000], a + ld [$0000], a + ld a, [hCGB] + and a + jr z, .asm_22b + call $2ff7 + +.asm_22b + xor a + ld [rIF], a + ld a, $f + ld [rIE], a + ei + call DelayFrame + ld a, $30 + call Predef + call CleanSoundRestart + xor a + ld [CurMusic], a + jp $642e +; 245 + +Function245: ; 245 + ld a, $1 + ld [rVBK], a + call $024f + xor a + ld [rVBK], a + ld hl, VTiles0 + ld bc, $2000 + xor a + call ByteFill + ret +; 25a + +Function25a: ; 25a + ld a, $1 +.asm_25c + push af + ld [rSVBK], a + xor a + ld hl, $d000 + ld bc, $1000 + call ByteFill + pop af + inc a + cp $8 + jr nc, .asm_25c + ret +; 270 + +Function270: ; 270 + ld a, $0 + call GetSRAMBank + ld hl, $a000 + ld bc, $0020 + xor a + call ByteFill + call CloseSRAM + ret +; 283 + VBlank: ; 283 @@ -109,7 +271,12 @@ TimeOfDayPals: ; 47e ; 485 -INCBIN "baserom.gbc", $485, $52f - $485 +Function485: ; 485 + callab UpdateTimePals + ret +; 48c + +INCBIN "baserom.gbc", $48c, $52f - $48c IncGradGBPalTable_01: ; 52f @@ -385,7 +552,25 @@ FixTime: ; 61d ret ; 658 -INCBIN "baserom.gbc", $658, $691 - $658 +INCBIN "baserom.gbc", $658, $67e - $658 + + +Function67e: ; 67e + call $0685 + call SetClock + ret +; 685 + +Function685: ; 685 + xor a + ld [hRTCSeconds], a + ld [hRTCMinutes], a + ld [hRTCHours], a + ld [hRTCDayLo], a + ld [hRTCDayHi], a + ret +; 691 + SetClock: ; 691 ; set clock data from hram @@ -435,13 +620,126 @@ SetClock: ; 691 ret ; 6c4 -INCBIN "baserom.gbc", $6c4, $92e - $6c4 +INCBIN "baserom.gbc", $6c4, $6d3 - $6c4 + + +Function6d3: ; 6d3 + ld hl, $ac60 + push af + ld a, $0 + call GetSRAMBank + pop af + or [hl] + ld [hl], a + call CloseSRAM + ret +; 6e3 + +INCBIN "baserom.gbc", $6e3, $92e - $6e3 INCLUDE "engine/joypad.asm" -INCBIN "baserom.gbc", $a1b, $b40 - $a1b +INCBIN "baserom.gbc", $a1b, $a57 - $a1b + + +Functiona57: ; a57 + call GetJoypadPublic + ld a, [$ffaa] + and a + ld a, [hJoyPressed] + jr z, .asm_a63 + ld a, [hJoyDown] + +.asm_a63 + ld [$ffa9], a + ld a, [hJoyPressed] + and a + jr z, .asm_a70 + ld a, $f + ld [TextDelayFrames], a + ret + +.asm_a70 + ld a, [TextDelayFrames] + and a + jr z, .asm_a7a + xor a + ld [$ffa9], a + ret + +.asm_a7a + ld a, $5 + ld [TextDelayFrames], a + ret +; a80 + +INCBIN "baserom.gbc", $a80, $aaf - $a80 + + +Functionaaf: ; aaf + ld a, [InLinkBattle] + and a + jr nz, .asm_ac1 + call $0ac6 + push de + ld de, $0008 + call StartSFX + pop de + ret + +.asm_ac1 + ld c, $41 + jp DelayFrames +; ac6 + +Functionac6: ; ac6 + ld a, [hOAMUpdate] + push af + ld a, $1 + ld [hOAMUpdate], a + ld a, [InputType] + or a + jr z, .asm_ad9 + ld a, $77 + ld hl, $628a + rst FarCall + +.asm_ad9 + call $0af5 + call $0a57 + ld a, [hJoyPressed] + and $3 + jr nz, .asm_af1 + call RTC + ld a, $1 + ld [hBGMapMode], a + call DelayFrame + jr .asm_ad9 + +.asm_af1 + pop af + ld [hOAMUpdate], a + ret +; af5 + +Functionaf5: ; af5 + ld a, [$ff9b] + and $10 + jr z, .asm_aff + ld a, $ee + jr .asm_b02 + +.asm_aff + ld a, [$c605] + +.asm_b02 + ld [$c606], a + ret +; b06 + +INCBIN "baserom.gbc", $b06, $b40 - $b06 FarDecompress: ; b40 ; Decompress graphics data at a:hl to de @@ -1030,7 +1328,69 @@ CopyPals: ; d50 ; d79 -INCBIN "baserom.gbc", $d79, $e8d - $d79 +INCBIN "baserom.gbc", $d79, $dc9 - $d79 + + +Functiondc9: ; dc9 + ld a, [rLCDC] + bit 7, a + jp z, $0f89 + ld a, [hROMBank] + push af + ld a, $41 + rst Bankswitch + + call $4284 + pop af + rst Bankswitch + + ret +; ddc + +Functionddc: ; ddc + ld a, [rLCDC] + bit 7, a + jp z, $0fa4 + ld a, [hROMBank] + push af + ld a, $41 + rst Bankswitch + + call $42b2 + pop af + rst Bankswitch + + ret +; def + +Functiondef: ; def + ld [hBuffer], a + ld a, [hROMBank] + push af + ld a, [hBuffer] + rst Bankswitch + + call FarCopyBytesDouble + pop af + rst Bankswitch + + ret +; dfd + +INCBIN "baserom.gbc", $dfd, $e5f - $dfd + + +Functione5f: ; e5f + ld a, $3e + ld hl, $748a + rst FarCall + ld a, $3e + ld hl, $74b0 + rst FarCall + ret +; e6c + +INCBIN "baserom.gbc", $e6c, $e8d - $e6c FarCopyBytes: ; e8d @@ -1089,7 +1449,182 @@ FarCopyBytesDouble: ; e9b ; 0xeba -INCBIN "baserom.gbc", $eba, $fb6 - $eba +Functioneba: ; eba + ld a, [hBGMapMode] + push af + xor a + ld [hBGMapMode], a + ld a, [hROMBank] + push af + ld a, b + rst Bankswitch + + ld a, [$ffd3] + push af + ld a, $8 + ld [$ffd3], a + ld a, [InLinkBattle] + cp $4 + jr nz, .asm_edc + ld a, [$ffe9] + and a + jr nz, .asm_edc + ld a, $6 + ld [$ffd3], a + +.asm_edc + ld a, e + ld [$cf68], a + ld a, d + ld [$cf69], a + ld a, l + ld [$cf6a], a + ld a, h + ld [$cf6b], a +.asm_eec + ld a, c + ld hl, $ffd3 + cp [hl] + jr nc, .asm_f08 + ld [$cf67], a +.asm_ef6 + call DelayFrame + ld a, [$cf67] + and a + jr nz, .asm_ef6 + pop af + ld [$ffd3], a + pop af + rst Bankswitch + + pop af + ld [hBGMapMode], a + ret + +.asm_f08 + ld a, [$ffd3] + ld [$cf67], a +.asm_f0d + call DelayFrame + ld a, [$cf67] + and a + jr nz, .asm_f0d + ld a, c + ld hl, $ffd3 + sub [hl] + ld c, a + jr .asm_eec +; f1e + +Functionf1e: ; f1e + ld a, [hBGMapMode] + push af + xor a + ld [hBGMapMode], a + ld a, [hROMBank] + push af + ld a, b + rst Bankswitch + + ld a, [$ffd3] + push af + ld a, $8 + ld [$ffd3], a + ld a, [InLinkBattle] + cp $4 + jr nz, .asm_f40 + ld a, [$ffe9] + and a + jr nz, .asm_f40 + ld a, $6 + ld [$ffd3], a + +.asm_f40 + ld a, e + ld [$cf6d], a + ld a, d + ld [$cf6e], a + ld a, l + ld [$cf6f], a + ld a, h + ld [$cf70], a +.asm_f50 + ld a, c + ld hl, $ffd3 + cp [hl] + jr nc, .asm_f6c + ld [$cf6c], a +.asm_f5a + call DelayFrame + ld a, [$cf6c] + and a + jr nz, .asm_f5a + pop af + ld [$ffd3], a + pop af + rst Bankswitch + + pop af + ld [hBGMapMode], a + ret + +.asm_f6c + ld a, [$ffd3] + ld [$cf6c], a +.asm_f71 + call DelayFrame + ld a, [$cf6c] + and a + jr nz, .asm_f71 + ld a, c + ld hl, $ffd3 + sub [hl] + ld c, a + jr .asm_f50 +; f82 + +Functionf82: ; f82 + ld a, [rLCDC] + bit 7, a + jp nz, $0eba + push hl + ld h, d + ld l, e + pop de + ld a, b + push af + swap c + ld a, $f + and c + ld b, a + ld a, $f0 + and c + ld c, a + pop af + jp FarCopyBytes +; f9d + +Functionf9d: ; f9d + ld a, [rLCDC] + bit 7, a + jp nz, $0f1e + push de + ld d, h + ld e, l + ld a, b + push af + ld h, $0 + ld l, c + add hl, hl + add hl, hl + add hl, hl + ld b, h + ld c, l + pop af + pop hl + jp FarCopyBytesDouble +; fb6 + ClearBox: ; fb6 @@ -1129,7 +1664,14 @@ ClearTileMap: ; fc8 ; fdb -INCBIN "baserom.gbc", $fdb, $fe8 - $fdb +Functionfdb: ; fdb + ld a, $7 + ld hl, AttrMap + ld bc, $0168 + call ByteFill + jr ClearTileMap +; fe8 + TextBox: ; fe8 @@ -1382,7 +1924,118 @@ CheckDict: ; 1087 ; 0x117b -INCBIN "baserom.gbc", $117b, $1203 - $117b +Function117b: ; 117b + ld c, l + ld b, h + ld a, $5f + ld hl, $7036 + rst FarCall + jp PlaceNextChar +; 1186 + +Function1186: ; 1186 + push de + ld de, MomsName + jp $126a +; 118d + +Function118d: ; 118d + push de + ld de, PlayerName + jp $126a +; 1194 + +Function1194: ; 1194 + push de + ld de, RivalName + jp $126a +; 119b + +Function119b: ; 119b + push de + ld de, RedsName + jp $126a +; 11a2 + +Function11a2: ; 11a2 + push de + ld de, GreensName + jp $126a +; 11a9 + +Function11a9: ; 11a9 + push de + ld de, Char5DText + jp $126a +; 11b0 + +Function11b0: ; 11b0 + push de + ld de, Char5CText + jp $126a +; 11b7 + +Function11b7: ; 11b7 + push de + ld de, Char5BText + jp $126a +; 11be + +Function11be: ; 11be + push de + ld de, $1281 + jp $126a +; 11c5 + +Function11c5: ; 11c5 + push de + ld de, $1288 + jp $126a +; 11cc + +Function11cc: ; 11cc + push de + ld de, $128d + jp $126a +; 11d3 + +Function11d3: ; 11d3 + push de + ld de, $1292 + jp $126a +; 11da + +Function11da: ; 11da + push de + ld de, $129c + jp $126a +; 11e1 + +Function11e1: ; 11e1 + push de + ld de, $129f + jp $126a +; 11e8 + +Function11e8: ; 11e8 + push de + ld de, $12a4 + jp $126a +; 11ef + +Function11ef: ; 11ef + push de + ld de, $12a4 + jp $126a +; 11f6 + +Function11f6: ; 11f6 + push de + ld de, $12a4 + jp $126a +; 11fd + +INCBIN "baserom.gbc", $11fd, $1203 - $11fd Char5D: ; 1203 @@ -1461,7 +2114,67 @@ Char56Text: ; 0x1293 Char5AText: ; 0x1295 db "Enemy @" -INCBIN "baserom.gbc", $129c, $12ea - $129c +INCBIN "baserom.gbc", $129c, $12a7 - $129c + + +Function12a7: ; 12a7 + pop hl + ld bc, $0028 + add hl, bc + push hl + jp NextChar +; 12b0 + +Function12b0: ; 12b0 + pop hl + ld bc, $0014 + add hl, bc + push hl + jp NextChar +; 12b9 + +Function12b9: ; 12b9 + pop hl + push de + ld bc, $3b60 + add hl, bc + ld de, $ffec + ld c, $1 +.asm_12c4 + ld a, h + and a + jr nz, .asm_12cd + ld a, l + cp $14 + jr c, .asm_12d1 + +.asm_12cd + add hl, de + inc c + jr .asm_12c4 + +.asm_12d1 + ld hl, TileMap + ld de, $0014 + ld a, c +.asm_12d8 + and a + jr z, .asm_12df + add hl, de + dec a + jr .asm_12d8 + +.asm_12df + pop de + inc de + ld a, [de] + ld c, a + ld b, $0 + add hl, bc + push hl + jp NextChar +; 12ea + Char4F: ; 12ea pop hl @@ -1470,7 +2183,29 @@ Char4F: ; 12ea jp NextChar ; 0x12f2 -INCBIN "baserom.gbc", $12f2, $131f - $12f2 +Function12f2: ; 12f2 + push de + ld a, [InLinkBattle] + cp $3 + jr z, .asm_1301 + cp $4 + jr z, .asm_1301 + call $13c7 + +.asm_1301 + call $13b6 + call $0aaf + ld hl, $c5b9 + ld bc, $0312 + call ClearBox + call $13cd + ld c, $14 + call DelayFrames + ld hl, $c5b9 + pop de + jp NextChar +; 131f + Char4B: ; 131f ld a, [InLinkBattle] @@ -1522,7 +2257,100 @@ Char5F: ; 1356 ret ; 135a -INCBIN "baserom.gbc", $135a, $15d8 - $135a +Function135a: ; 135a + ld a, [InLinkBattle] + cp $3 + jr z, .asm_1368 + cp $4 + jr z, .asm_1368 + call $13c7 + +.asm_1368 + call $13b6 + call $0aaf + ld a, [InLinkBattle] + cp $3 + jr z, .asm_137c + cp $4 + jr z, .asm_137c + call $13cd + +.asm_137c + pop hl + ld de, $1382 + dec de + ret +; 1382 + +INCBIN "baserom.gbc", $1382, $1383 - $1382 + + +Function1383: ; 1383 + ld a, $e6 + ld [hli], a + call PrintLetterDelay + jp NextChar +; 138c + +Function138c: ; 138c + ld hl, $c5b9 + ld de, $c5a5 + ld a, $3 +.asm_1394 + push af + ld c, $12 +.asm_1397 + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .asm_1397 + inc de + inc de + inc hl + inc hl + pop af + dec a + jr nz, .asm_1394 + ld hl, $c5e1 + ld a, $7f + ld bc, $0012 + call ByteFill + ld c, $5 + call DelayFrames + ret +; 13b6 + +Function13b6: ; 13b6 + push bc + ld a, [hOAMUpdate] + push af + ld a, $1 + ld [hOAMUpdate], a + call WaitBGMap + pop af + ld [hOAMUpdate], a + pop bc + ret +; 13c6 + +Function13c6: ; 13c6 + ret +; 13c7 + +Function13c7: ; 13c7 + ld a, $ee + ld [$c606], a + ret +; 13cd + +Function13cd: ; 13cd + ld a, [$c605] + ld [$c606], a + ret +; 13d4 + +INCBIN "baserom.gbc", $13d4, $15d8 - $13d4 DMATransfer: ; 15d8 ; DMA transfer @@ -2160,7 +2988,39 @@ GetTileType: ; 185d ; 1875 -INCBIN "baserom.gbc", $1875, $18a0 - $1875 +Function1875: ; 1875 + ld d, a + and $f0 + cp $10 + jr z, .asm_1882 + cp $20 + jr z, .asm_1888 + scf + ret + +.asm_1882 + ld a, d + and $7 + ret z + scf + ret + +.asm_1888 + ld a, d + and $7 + ret z + scf + ret +; 188e + +Function188e: ; 188e + cp $14 + ret z + cp $1c + ret +; 1894 + +INCBIN "baserom.gbc", $1894, $18a0 - $1894 CheckCounterTile: ; 18a0 @@ -2218,7 +3078,36 @@ GetMapObject: ; 18d2 ; 18de -INCBIN "baserom.gbc", $18de, $1a2f - $18de +INCBIN "baserom.gbc", $18de, $1a13 - $18de + + +Function1a13: ; 1a13 + push bc + push de + ld hl, $d4d6 + ld de, $0028 + ld c, $d +.asm_1a1d + ld a, [hl] + and a + jr z, .asm_1a28 + add hl, de + dec c + jr nz, .asm_1a1d + xor a + jr .asm_1a2c + +.asm_1a28 + ld a, $d + sub c + scf + +.asm_1a2c + pop de + pop bc + ret +; 1a2f + Function1a2f: ; 1a2f @@ -2266,7 +3155,92 @@ Function1a47: ; 1a47 ; 1a61 -INCBIN "baserom.gbc", $1a61, $1b07 - $1a61 +Function1a61: ; 1a61 + ld l, a + ld a, [hROMBank] + push af + ld a, $1 + rst Bankswitch + + ld a, l + push bc + call $1a71 + pop bc + pop af + rst Bankswitch + + ret +; 1a71 + +Function1a71: ; 1a71 + ld hl, $0003 + add hl, de + ld [hl], a + push de + ld e, a + ld d, $0 + ld hl, $4274 + add hl, de + add hl, de + add hl, de + add hl, de + add hl, de + add hl, de + ld b, h + ld c, l + pop de + ld a, [bc] + inc bc + rlca + rlca + and $c + ld hl, $0008 + add hl, de + ld [hl], a + ld a, [bc] + inc bc + ld hl, $000b + add hl, de + ld [hl], a + ld a, [bc] + inc bc + ld hl, $0004 + add hl, de + ld [hl], a + ld a, [bc] + inc bc + ld hl, $0005 + add hl, de + ld [hl], a + ld a, [bc] + inc bc + ld hl, $0006 + add hl, de + ld [hl], a + ret +; 1aae + +INCBIN "baserom.gbc", $1aae, $1ae5 - $1aae + + +Function1ae5: ; 1ae5 + ld bc, $0028 + ld hl, $d4d6 + call AddNTimes + ld b, h + ld c, l + ret +; 1af1 + +Function1af1: ; 1af1 + ld hl, $0000 + add hl, bc + ld a, [hl] + and a + ret +; 1af8 + +INCBIN "baserom.gbc", $1af8, $1b07 - $1af8 GetSpriteDirection: ; 1b07 @@ -2453,7 +3427,43 @@ MenuWriteText: ; 0x1e8c ret ; 0x1ea6 -INCBIN "baserom.gbc", $1ea6, $2009 - $1ea6 +INCBIN "baserom.gbc", $1ea6, $1fbf - $1ea6 + + +Function1fbf: ; 1fbf + ld hl, $cf71 + call $1ff0 + ld hl, $cf81 + call $1ff0 + ld hl, $cf91 + call $1ff0 + ld hl, $cfa1 + call $1ff0 + ld a, [rSVBK] + push af + ld a, $7 + ld [rSVBK], a + xor a + ld hl, $dfff + ld [hld], a + ld [hld], a + ld a, l + ld [$cf71], a + ld a, h + ld [$cf72], a + pop af + ld [rSVBK], a + ret +; 1ff0 + +Function1ff0: ; 1ff0 + ld bc, $0010 + xor a + call ByteFill + ret +; 1ff8 + +INCBIN "baserom.gbc", $1ff8, $2009 - $1ff8 PlayClickSFX: ; $2009 push de @@ -2967,7 +3977,70 @@ GetFacingTileCoord: ; 2a07 ; 2a3c -INCBIN "baserom.gbc", $2a3c, $2a8b - $2a3c +Function2a3c: ; 2a3c + call $2a66 + ld a, [hl] + and a + jr z, .asm_2a63 + ld l, a + ld h, $0 + add hl, hl + add hl, hl + ld a, [TileSetCollisionAddress] + ld c, a + ld a, [$d1e1] + ld b, a + add hl, bc + rr d + jr nc, .asm_2a56 + inc hl + +.asm_2a56 + rr e + jr nc, .asm_2a5c + inc hl + inc hl + +.asm_2a5c + ld a, [TileSetCollisionBank] + call GetFarByte + ret + +.asm_2a63 + ld a, $ff + ret +; 2a66 + +Function2a66: ; 2a66 + ld a, [$d19f] + add $6 + ld c, a + ld b, $0 + ld hl, $c801 + add hl, bc + ld a, e + srl a + jr z, .asm_2a84 + and a +.asm_2a78 + srl a + jr nc, .asm_2a7d + add hl, bc + +.asm_2a7d + sla c + rl b + and a + jr nz, .asm_2a78 + +.asm_2a84 + ld c, d + srl c + ld b, $0 + add hl, bc + ret +; 2a8b + CheckFacingSign: ; 2a8b @@ -3634,7 +4707,23 @@ JpDe: ; 2fed ret ; 2fef -INCBIN "baserom.gbc", $2fef, $300b - $2fef +INCBIN "baserom.gbc", $2fef, $2ff7 - $2fef + + +Function2ff7: ; 2ff7 + ld hl, rKEY1 + bit 7, [hl] + ret z + set 0, [hl] + xor a + ld [rIF], a + ld [rIE], a + ld a, $30 + ld [rJOYP], a + stop ; rgbasm adds a nop after this instruction by default + ret +; 300b + ClearSprites: ; 300b ld hl, Sprites @@ -4065,7 +5154,30 @@ Function3200: ; 0x3200 ret ; 0x3218 -INCBIN "baserom.gbc", $3218, $3317 - $3218 +INCBIN "baserom.gbc", $3218, $32f9 - $3218 + + +Function32f9: ; 32f9 + ld a, [hCGB] + and a + jr nz, .asm_3309 + ld a, $e4 + ld [rBGP], a + ld a, $d0 + ld [rOBP0], a + ld [rOBP1], a + ret + +.asm_3309 + push de + ld a, $e4 + call DmgToCgbBGPals + ld de, $e4e4 + call DmgToCgbObjPals + pop de + ret +; 3317 + ClearPalettes: ; 3317 ; Make all palettes white @@ -5285,7 +6397,25 @@ FarBattleTextBox: ; 3ad5 ; 3ae1 -INCBIN "baserom.gbc", $3ae1, $3b4e - $3ae1 +INCBIN "baserom.gbc", $3ae1, $3b2a - $3ae1 + + +Function3b2a: ; 3b2a + ld [$c3b8], a + ld a, [hROMBank] + push af + ld a, $23 + rst Bankswitch + + ld a, [$c3b8] + call $4fd6 + pop af + rst Bankswitch + + ret +; 3b3c + +INCBIN "baserom.gbc", $3b3c, $3b4e - $3b3c CleanSoundRestart: ; 3b4e @@ -10394,14 +11524,104 @@ IntroFadePalettes: ; 0x617c db %11100100 ; 6182 -INCBIN "baserom.gbc", $6182, $6274 - $6182 +INCBIN "baserom.gbc", $6182, $620b - $6182 + + +Function620b: ; 620b + ld hl, $4579 + ld a, $39 + rst FarCall + jr c, .asm_6219 + ld a, $39 + ld hl, $48ac + rst FarCall + +.asm_6219 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + call FarStartTitleScreen + call DelayFrame +.asm_6226 + call $627b + jr nc, .asm_6226 + call ClearSprites + call WhiteBGMap + pop af + ld [rSVBK], a + ld hl, rLCDC + res 2, [hl] + call $0fdb + call Function3200 + xor a + ld [hLCDStatCustom], a + ld [$ffcf], a + ld [$ffd0], a + ld a, $7 + ld [$ffd1], a + ld a, $90 + ld [$ffd2], a + ld b, $8 + call GetSGBLayout + call $0485 + ld a, [$cf64] + cp $5 + jr c, .asm_625e + xor a + +.asm_625e + ld e, a + ld d, $0 + ld hl, $626a + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 626a + +INCBIN "baserom.gbc", $626a, $6274 - $626a FarStartTitleScreen: ; 6274 callba StartTitleScreen ret ; 627b -INCBIN "baserom.gbc", $627b, $62bc - $627b +Function627b: ; 627b + ld a, [$cf63] + bit 7, a + jr nz, .asm_6290 + call $62a3 + ld a, $43 + ld hl, $6ea7 + rst FarCall + call DelayFrame + and a + ret + +.asm_6290 + scf + ret +; 6292 + +INCBIN "baserom.gbc", $6292, $62a3 - $6292 + + +Function62a3: ; 62a3 + ld e, a + ld d, $0 + ld hl, $62af + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 62af + +INCBIN "baserom.gbc", $62af, $62bc - $62af TitleScreenEntrance: ; 62bc @@ -10453,7 +11673,45 @@ TitleScreenEntrance: ; 62bc ret ; 62f6 -INCBIN "baserom.gbc", $62f6, $669f - $62f6 +INCBIN "baserom.gbc", $62f6, $63e2 - $62f6 + + +Function63e2: ; 63e2 + call ClearTileMap + call $0e5f + ld de, Function4000 + ld hl, $9600 + ld bc, $391d + call $0eba + ld hl, $c52e + ld de, $63fd + jp PlaceString +; 63fd + +INCBIN "baserom.gbc", $63fd, $642e - $63fd + + +Function642e: ; 642e + ld a, $5 + ld hl, $4f1c + rst FarCall + call $1fbf + call WhiteBGMap + call ClearTileMap + ld a, $98 + ld [$ffd7], a + xor a + ld [hBGMapAddress], a + ld [hJoyDown], a + ld [$ffcf], a + ld [$ffd0], a + ld a, $90 + ld [$ffd2], a + call WaitBGMap + jp $620b +; 6454 + +INCBIN "baserom.gbc", $6454, $669f - $6454 CheckNickErrors: ; 669f ; error-check monster nick before use @@ -10767,7 +12025,165 @@ DrawGraphic: ; 6eef ; 6f07 -INCBIN "baserom.gbc", $6f07, $6fd9 - $6f07 +Function6f07: ; 6f07 + call $6f5f + ret c + ld hl, $0010 + add hl, bc + ld d, [hl] + ld hl, $0011 + add hl, bc + ld e, [hl] + ld hl, $0006 + add hl, bc + bit 7, [hl] + jp nz, $6fa1 + ld hl, $000e + add hl, bc + ld a, [hl] + ld d, a + call GetTileType + and a + jr z, .asm_6f3e + scf + ret + + call $6f5f + ret c + ld hl, $000e + add hl, bc + ld a, [hl] + call GetTileType + cp $1 + jr z, .asm_6f3e + scf + ret + +.asm_6f3e + ld hl, $000e + add hl, bc + ld a, [hl] + call $6f7f + ret nc + push af + ld hl, $0007 + add hl, bc + ld a, [hl] + and $3 + ld e, a + ld d, $0 + ld hl, $6f5b + add hl, de + pop af + and [hl] + ret z + scf + ret +; 6f5b + +INCBIN "baserom.gbc", $6f5b, $6f5f - $6f5b + + +Function6f5f: ; 6f5f + ld hl, $000f + add hl, bc + ld a, [hl] + call $6f7f + ret nc + push af + ld hl, $0007 + add hl, bc + and $3 + ld e, a + ld d, $0 + ld hl, $6f7b + add hl, de + pop af + and [hl] + ret z + scf + ret +; 6f7b + +INCBIN "baserom.gbc", $6f7b, $6f7f - $6f7b + + +Function6f7f: ; 6f7f + ld d, a + and $f0 + cp $b0 + jr z, .asm_6f8c + cp $c0 + jr z, .asm_6f8c + xor a + ret + +.asm_6f8c + ld a, d + and $7 + ld e, a + ld d, $0 + ld hl, $6f99 + add hl, de + ld a, [hl] + scf + ret +; 6f99 + +INCBIN "baserom.gbc", $6f99, $6fa1 - $6f99 + + +Function6fa1: ; 6fa1 + ld hl, $0007 + add hl, bc + ld a, [hl] + and $3 + jr z, .asm_6fb2 + dec a + jr z, .asm_6fb7 + dec a + jr z, .asm_6fbb + jr .asm_6fbf + +.asm_6fb2 + inc e + push de + inc d + jr .asm_6fc2 + +.asm_6fb7 + push de + inc d + jr .asm_6fc2 + +.asm_6fbb + push de + inc e + jr .asm_6fc2 + +.asm_6fbf + inc d + push de + inc e + +.asm_6fc2 + call $2a3c + call GetTileType + pop de + and a + jr nz, .asm_6fd7 + call $2a3c + call GetTileType + and a + jr nz, .asm_6fd7 + xor a + ret + +.asm_6fd7 + scf + ret +; 6fd9 + CheckFacingObject: ; 6fd9 @@ -10812,7 +12228,239 @@ CheckFacingObject: ; 6fd9 ; 7009 -INCBIN "baserom.gbc", $7009, $7305 - $7009 +Function7009: ; 7009 + ld hl, $0010 + add hl, bc + ld d, [hl] + ld hl, $0011 + add hl, bc + ld e, [hl] + jr .asm_7041 + + ld a, [hConnectionStripLength] + call $1ae5 + call $7021 + call $7041 + ret + + ld hl, $0010 + add hl, bc + ld d, [hl] + ld hl, $0011 + add hl, bc + ld e, [hl] + call GetSpriteDirection + and a + jr z, .asm_703b + cp $4 + jr z, .asm_703d + cp $8 + jr z, .asm_703f + inc d + ret + +.asm_703b + inc e + ret + +.asm_703d + dec e + ret + +.asm_703f + dec d + ret + +.asm_7041 + ld bc, $d4d6 + xor a +.asm_7045 + ld [hConnectedMapWidth], a + call $1af1 + jr z, .asm_7093 + ld hl, $0004 + add hl, bc + bit 7, [hl] + jr nz, .asm_7093 + ld hl, $0006 + add hl, bc + bit 7, [hl] + jr z, .asm_7063 + call $7171 + jr nc, .asm_707b + jr .asm_7073 + +.asm_7063 + ld hl, $0010 + add hl, bc + ld a, [hl] + cp d + jr nz, .asm_707b + ld hl, $0011 + add hl, bc + ld a, [hl] + cp e + jr nz, .asm_707b + +.asm_7073 + ld a, [hConnectionStripLength] + ld l, a + ld a, [hConnectedMapWidth] + cp l + jr nz, .asm_70a2 + +.asm_707b + ld hl, $0012 + add hl, bc + ld a, [hl] + cp d + jr nz, .asm_7093 + ld hl, $0013 + add hl, bc + ld a, [hl] + cp e + jr nz, .asm_7093 + ld a, [hConnectionStripLength] + ld l, a + ld a, [hConnectedMapWidth] + cp l + jr nz, .asm_70a2 + +.asm_7093 + ld hl, $0028 + add hl, bc + ld b, h + ld c, l + ld a, [hConnectedMapWidth] + inc a + cp $d + jr nz, .asm_7045 + and a + ret + +.asm_70a2 + scf + ret +; 70a4 + +Function70a4: ; 70a4 + ld hl, $0016 + add hl, bc + ld a, [hl] + and a + jr z, .asm_70e9 + and $f + jr z, .asm_70c7 + ld e, a + ld d, a + ld hl, $0014 + add hl, bc + ld a, [hl] + sub d + ld d, a + ld a, [hl] + add e + ld e, a + ld hl, $0010 + add hl, bc + ld a, [hl] + cp d + jr z, .asm_70eb + cp e + jr z, .asm_70eb + +.asm_70c7 + ld hl, $0016 + add hl, bc + ld a, [hl] + swap a + and $f + jr z, .asm_70e9 + ld e, a + ld d, a + ld hl, $0015 + add hl, bc + ld a, [hl] + sub d + ld d, a + ld a, [hl] + add e + ld e, a + ld hl, $0011 + add hl, bc + ld a, [hl] + cp d + jr z, .asm_70eb + cp e + jr z, .asm_70eb + +.asm_70e9 + xor a + ret + +.asm_70eb + scf + ret +; 70ed + +Function70ed: ; 70ed + ld hl, $0010 + add hl, bc + ld a, [XCoord] + cp [hl] + jr z, .asm_70fe + jr nc, .asm_7111 + add $9 + cp [hl] + jr c, .asm_7111 + +.asm_70fe + ld hl, $0011 + add hl, bc + ld a, [YCoord] + cp [hl] + jr z, .asm_710f + jr nc, .asm_7111 + add $8 + cp [hl] + jr c, .asm_7111 + +.asm_710f + and a + ret + +.asm_7111 + scf + ret +; 7113 + +INCBIN "baserom.gbc", $7113, $7171 - $7113 + + +Function7171: ; 7171 + ld hl, $0010 + add hl, bc + ld a, d + sub [hl] + jr c, .asm_718b + cp $2 + jr nc, .asm_718b + ld hl, $0011 + add hl, bc + ld a, e + sub [hl] + jr c, .asm_718b + cp $2 + jr nc, .asm_718b + scf + ret + +.asm_718b + and a + ret +; 718d + +INCBIN "baserom.gbc", $718d, $7305 - $718d SpecialGiveShuckle: ; 7305 @@ -10897,7 +12545,103 @@ INCBIN "baserom.gbc", $737e, $747b - $737e SECTION "bank2",DATA,BANK[$2] -INCBIN "baserom.gbc", $8000, $854b - $8000 +INCBIN "baserom.gbc", $8000, $8286 - $8000 + + +Function8286: ; 8286 + ld a, [$c2f0] + ld hl, $0001 + add hl, de + ld [hl], a + ld a, [$c2f4] + call $1a61 + ld a, [$c2f3] + ld hl, $0006 + add hl, de + or [hl] + ld [hl], a + ld a, [$c2f7] + call $42d5 + ld a, [$c2f6] + call $42f1 + ld a, [$c2f1] + ld hl, $0000 + add hl, de + ld [hl], a + ld a, [$c2f2] + ld hl, $0002 + add hl, de + ld [hl], a + ld hl, $0009 + add hl, de + ld [hl], $0 + ld hl, $000d + add hl, de + ld [hl], $ff + ld a, [$c2f8] + call $430d + ld a, [$c2f5] + ld hl, $0020 + add hl, de + ld [hl], a + and a + ret +; 82d5 + +Function82d5: ; 82d5 + ld hl, $0015 + add hl, de + ld [hl], a + ld hl, $0011 + add hl, de + ld [hl], a + ld hl, YCoord + sub [hl] + and $f + swap a + ld hl, $d14d + sub [hl] + ld hl, $0018 + add hl, de + ld [hl], a + ret +; 82f1 + +Function82f1: ; 82f1 + ld hl, $0014 + add hl, de + ld [hl], a + ld hl, $0010 + add hl, de + ld [hl], a + ld hl, XCoord + sub [hl] + and $f + swap a + ld hl, $d14c + sub [hl] + ld hl, $0017 + add hl, de + ld [hl], a + ret +; 830d + +Function830d: ; 830d + ld h, a + inc a + and $f + ld l, a + ld a, h + add $10 + and $f0 + or l + ld hl, $0016 + add hl, de + ld [hl], a + ret +; 831e + +INCBIN "baserom.gbc", $831e, $854b - $831e GetPredefFn: ; 854b ; input: @@ -11043,7 +12787,75 @@ CheckShininess: ; 0x8a68 and a ; clear carry flag ret -INCBIN "baserom.gbc", $8a88, $9a52-$8a88 +INCBIN "baserom.gbc", $8a88, $8d55 - $8a88 + + +Function8d55: ; 8d55 + ld a, [hCGB] + and a + ret +; 8d59 + +INCBIN "baserom.gbc", $8d59, $9890 - $8d59 + + +Function9890: ; 9890 + call $4d55 + ret z + ld a, $1 + ld [rVBK], a + ld hl, VTiles0 + ld bc, $2000 + xor a + call ByteFill + ld a, $0 + ld [rVBK], a + ld a, $80 + ld [rBGPI], a + ld c, $20 +.asm_98ac + ld a, $ff + ld [rBGPD], a + ld a, $7f + ld [rBGPD], a + dec c + jr nz, .asm_98ac + ld a, $80 + ld [rOBPI], a + ld c, $20 +.asm_98bd + ld a, $ff + ld [rOBPD], a + ld a, $7f + ld [rOBPD], a + dec c + jr nz, .asm_98bd + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, $d000 + call $58df + ld hl, $d080 + call $58df + pop af + ld [rSVBK], a + ret +; 98df + +Function98df: ; 98df + ld c, $40 +.asm_98e1 + ld a, $ff + ld [hli], a + ld a, $7f + ld [hli], a + dec c + jr nz, .asm_98e1 + ret +; 98eb + +INCBIN "baserom.gbc", $98eb, $9a52 - $98eb CopyData: ; 0x9a52 ; copy bc bytes of data from hl to de @@ -13445,7 +15257,22 @@ root set root+1 SECTION "bank5",DATA,BANK[$5] -INCBIN "baserom.gbc", $14000, $14032 - $14000 +INCBIN "baserom.gbc", $14000, $14019 - $14000 + + +Function14019: ; 14019 + ld a, $a + ld [$0000], a + call LatchClock + ld a, $c + ld [$4000], a + ld a, [$a000] + res 6, a + ld [$a000], a + call CloseSRAM + ret +; 14032 + GetTimeOfDay: ; 14032 @@ -13482,7 +15309,37 @@ TimesOfDay: ; 14044 ; 1404c -INCBIN "baserom.gbc", $1404c, $14183 - $1404c +INCBIN "baserom.gbc", $1404c, $14089 - $1404c + + +Function14089: ; 14089 + call GetClock + call $409b + call FixDays + jr nc, .asm_14097 + call $06d3 + +.asm_14097 + call $4019 + ret +; 1409b + +Function1409b: ; 1409b + ld hl, hRTCDayHi + bit 7, [hl] + jr nz, .asm_140a8 + bit 6, [hl] + jr nz, .asm_140a8 + xor a + ret + +.asm_140a8 + ld a, $80 + call $06d3 + ret +; 140ae + +INCBIN "baserom.gbc", $140ae, $14183 - $140ae GetPlayerSprite: ; 14183 @@ -14711,7 +16568,103 @@ INCLUDE "gfx/overworld/sprite_headers.asm" ; 1499a -INCBIN "baserom.gbc", $1499a, $152ab - $1499a +INCBIN "baserom.gbc", $1499a, $14f1c - $1499a + + +Function14f1c: ; 14f1c + xor a + ld [$cfcd], a + call $4f84 + ld a, [$cfcd] + and a + jr z, .asm_14f46 + ld a, $1 + call GetSRAMBank + ld hl, $a044 + ld de, StartDay + ld bc, $0008 + call CopyBytes + ld hl, $a3da + ld de, StatusFlags + ld a, [hl] + ld [de], a + call CloseSRAM + ret + +.asm_14f46 + call $4faf + ld a, [$cfcd] + and a + jr z, .asm_14f6c + ld a, $0 + call GetSRAMBank + ld hl, $b244 + ld de, StartDay + ld bc, $0008 + call CopyBytes + ld hl, $b5da + ld de, StatusFlags + ld a, [hl] + ld [de], a + call CloseSRAM + ret + +.asm_14f6c + ld hl, $4f7c + ld de, Options + ld bc, $0008 + call CopyBytes + call $067e + ret +; 14f7c + +INCBIN "baserom.gbc", $14f7c, $14f84 - $14f7c + + +Function14f84: ; 14f84 + ld a, $1 + call GetSRAMBank + ld a, [$a008] + cp $63 + jr nz, .asm_14fab + ld a, [$ad0f] + cp $7f + jr nz, .asm_14fab + ld hl, $a000 + ld de, Options + ld bc, $0008 + call CopyBytes + call CloseSRAM + ld a, $1 + ld [$cfcd], a + +.asm_14fab + call CloseSRAM + ret +; 14faf + +Function14faf: ; 14faf + ld a, $0 + call GetSRAMBank + ld a, [$b208] + cp $63 + jr nz, .asm_14fd3 + ld a, [$bf0f] + cp $7f + jr nz, .asm_14fd3 + ld hl, $b200 + ld de, Options + ld bc, $0008 + call CopyBytes + ld a, $2 + ld [$cfcd], a + +.asm_14fd3 + call CloseSRAM + ret +; 14fd7 + +INCBIN "baserom.gbc", $14fd7, $152ab - $14fd7 BlackoutPoints: ; 0x152ab @@ -16464,7 +18417,63 @@ AIScoring: ; 38591 INCLUDE "battle/ai/scoring.asm" -INCBIN "baserom.gbc", $3952d, $39999 - $3952d +INCBIN "baserom.gbc", $3952d, $39939 - $3952d + + +Function39939: ; 39939 + ld a, [$cfc0] + bit 0, a + ld hl, $d26b + jp nz, $5984 + ld a, [OtherTrainerID] + ld b, a + ld a, [OtherTrainerClass] + ld c, a + ld a, c + cp $c + jr nz, .asm_3996d + ld a, $0 + call GetSRAMBank + ld a, [$abfd] + and a + call CloseSRAM + jr z, .asm_3996d + ld a, $0 + call GetSRAMBank + ld hl, $abfe + call $5984 + jp CloseSRAM + +.asm_3996d + dec c + push bc + ld b, $0 + ld hl, TrainerGroups + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + pop bc +.asm_3997a + dec b + jr z, .asm_39984 +.asm_3997d + ld a, [hli] + cp $ff + jr nz, .asm_3997d + jr .asm_3997a + +.asm_39984 + ld de, StringBuffer1 + push de + ld bc, $000b + call CopyBytes + pop de + ret +; 39990 + +INCBIN "baserom.gbc", $39990, $39999 - $39990 TrainerGroups: ; 0x39999 @@ -19893,7 +21902,119 @@ EvolutionGFX: INCBIN "gfx/evo/bubble_large.2bpp" INCBIN "gfx/evo/bubble.2bpp" -INCBIN "baserom.gbc", $4e881, $4f31c - $4e881 +INCBIN "baserom.gbc", $4e881, $4ea82 - $4e881 + + +Function4ea82: ; 4ea82 + ld a, [hCGB] + and a + ret nz + ld de, $0000 + call StartMusic + call ClearTileMap + ld hl, $6b76 + ld de, $d000 + ld a, [rSVBK] + push af + ld a, $0 + ld [rSVBK], a + call Decompress + pop af + ld [rSVBK], a + ld de, $d000 + ld hl, VTiles2 + ld bc, Text_1354 + call $0f82 + ld de, $4200 + ld hl, VTiles1 + ld bc, $3e80 + call $0f9d + call $6ac5 + call WaitBGMap +.asm_4eac0 + call DelayFrame + jr .asm_4eac0 +; 4eac5 + +Function4eac5: ; 4eac5 + call $6aea + ld hl, $c4cb + ld b, $e + ld c, $4 + ld a, $8 + call $6b27 + ld hl, $c51d + ld b, $a + ld c, $2 + ld a, $40 + call $6b27 + ld de, $6b38 + ld hl, $c569 + call PlaceString + ret +; 4eaea + +Function4eaea: ; 4eaea + ld hl, TileMap + ld [hl], $0 + inc hl + ld a, $1 + call $6b15 + ld [hl], $2 + ld hl, $c4b4 + ld a, $3 + call $6b1c + ld hl, $c4c7 + ld a, $4 + call $6b1c + ld hl, $c5f4 + ld [hl], $5 + inc hl + ld a, $6 + call $6b15 + ld [hl], $7 + ret +; 4eb15 + +Function4eb15: ; 4eb15 + ld c, $12 +.asm_4eb17 + ld [hli], a + dec c + jr nz, .asm_4eb17 + ret +; 4eb1c + +Function4eb1c: ; 4eb1c + ld de, $0014 + ld c, $10 +.asm_4eb21 + ld [hl], a + add hl, de + dec c + jr nz, .asm_4eb21 + ret +; 4eb27 + +Function4eb27: ; 4eb27 + ld de, $0014 +.asm_4eb2a + push bc + push hl +.asm_4eb2c + ld [hli], a + inc a + dec b + jr nz, .asm_4eb2c + pop hl + add hl, de + pop bc + dec c + jr nz, .asm_4eb2a + ret +; 4eb38 + +INCBIN "baserom.gbc", $4eb38, $4f31c - $4eb38 SECTION "bank14",DATA,BANK[$14] @@ -22460,7 +24581,451 @@ GetTimePalFade: ; 8c17c db %00000000 ; 8c20f -INCBIN "baserom.gbc", $8c20f, $8e9ac - $8c20f +INCBIN "baserom.gbc", $8c20f, $8cf53 - $8c20f + + +Function8cf53: ; 8cf53 + ld hl, $c300 + ld bc, $00c1 +.asm_8cf59 + ld [hl], $0 + inc hl + dec bc + ld a, c + or b + jr nz, .asm_8cf59 + ret +; 8cf62 + +INCBIN "baserom.gbc", $8cf62, $8cf69 - $8cf62 + + +Function8cf69: ; 8cf69 + push hl + push de + push bc + push af + ld a, $0 + ld [$c3b5], a + call $4f7a + pop af + pop bc + pop de + pop hl + ret +; 8cf7a + +Function8cf7a: ; 8cf7a + ld hl, $c314 + ld e, $a +.asm_8cf7f + ld a, [hl] + and a + jr z, .asm_8cf91 + ld c, l + ld b, h + push hl + push de + call $524b + call $504c + pop de + pop hl + jr c, .asm_8cfa7 + +.asm_8cf91 + ld bc, $0010 + add hl, bc + dec e + jr nz, .asm_8cf7f + ld a, [$c3b5] + ld l, a + ld h, $c4 +.asm_8cf9e + ld a, l + cp $a0 + jr nc, .asm_8cfa7 + xor a + ld [hli], a + jr .asm_8cf9e + +.asm_8cfa7 + ret +; 8cfa8 + +INCBIN "baserom.gbc", $8cfa8, $8cfd6 - $8cfa8 + + +Function8cfd6: ; 8cfd6 + push de + push af + ld hl, $c314 + ld e, $a +.asm_8cfdd + ld a, [hl] + and a + jr z, .asm_8cfec + ld bc, $0010 + add hl, bc + dec e + jr nz, .asm_8cfdd + pop af + pop de + scf + ret + +.asm_8cfec + ld c, l + ld b, h + ld hl, $c3b4 + inc [hl] + ld a, [hl] + and a + jr nz, .asm_8cff7 + inc [hl] + +.asm_8cff7 + pop af + ld e, a + ld d, $0 + ld hl, $51c4 + add hl, de + add hl, de + add hl, de + ld e, l + ld d, h + ld hl, $0000 + add hl, bc + ld a, [$c3b4] + ld [hli], a + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + call $5109 + ld [hli], a + pop de + ld hl, $0004 + add hl, bc + ld a, e + ld [hli], a + ld a, d + ld [hli], a + xor a + ld [hli], a + ld [hli], a + xor a + ld [hli], a + ld [hli], a + dec a + ld [hli], a + xor a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hl], a + ld a, c + ld [$c3b8], a + ld a, b + ld [$c3b9], a + ret +; 8d036 + +Function8d036: ; 8d036 + ld hl, $0000 + add hl, bc + ld [hl], $0 + ret +; 8d03d + +INCBIN "baserom.gbc", $8d03d, $8d04c - $8d03d + + +Function8d04c: ; 8d04c + call $50ec + call $5132 + cp $fd + jr z, .asm_8d0b9 + cp $fc + jr z, .asm_8d0b6 + call $51a2 + ld a, [$c3ba] + add [hl] + ld [$c3ba], a + inc hl + ld a, [hli] + ld h, [hl] + ld l, a + push bc + ld a, [$c3b5] + ld e, a + ld d, $c4 + ld a, [hli] + ld c, a +.asm_8d071 + ld a, [$c3bc] + ld b, a + ld a, [$c3be] + add b + ld b, a + ld a, [$c3bf] + add b + ld b, a + call $50be + add b + ld [de], a + inc hl + inc de + ld a, [$c3bb] + ld b, a + ld a, [$c3bd] + add b + ld b, a + ld a, [$c3c0] + add b + ld b, a + call $50ce + add b + ld [de], a + inc hl + inc de + ld a, [$c3ba] + add [hl] + ld [de], a + inc hl + inc de + call $50de + ld [de], a + inc hl + inc de + ld a, e + ld [$c3b5], a + cp $a0 + jr nc, .asm_8d0bb + dec c + jr nz, .asm_8d071 + pop bc + jr .asm_8d0b9 + +.asm_8d0b6 + call $5036 + +.asm_8d0b9 + and a + ret + +.asm_8d0bb + pop bc + scf + ret +; 8d0be + +Function8d0be: ; 8d0be + push hl + ld a, [hl] + ld hl, $c3b8 + bit 6, [hl] + jr z, .asm_8d0cc + add $8 + xor $ff + inc a + +.asm_8d0cc + pop hl + ret +; 8d0ce + +Function8d0ce: ; 8d0ce + push hl + ld a, [hl] + ld hl, $c3b8 + bit 5, [hl] + jr z, .asm_8d0dc + add $8 + xor $ff + inc a + +.asm_8d0dc + pop hl + ret +; 8d0de + +Function8d0de: ; 8d0de + ld a, [$c3b8] + ld b, a + ld a, [hl] + xor b + and $e0 + ld b, a + ld a, [hl] + and $1f + or b + ret +; 8d0ec + +Function8d0ec: ; 8d0ec + xor a + ld [$c3b8], a + ld hl, $0003 + add hl, bc + ld a, [hli] + ld [$c3ba], a + ld a, [hli] + ld [$c3bb], a + ld a, [hli] + ld [$c3bc], a + ld a, [hli] + ld [$c3bd], a + ld a, [hli] + ld [$c3be], a + ret +; 8d109 + +Function8d109: ; 8d109 + push hl + push bc + ld hl, $c300 + ld b, a + ld c, $a +.asm_8d111 + ld a, [hli] + cp b + jr z, .asm_8d11c + inc hl + dec c + jr nz, .asm_8d111 + xor a + jr .asm_8d11d + +.asm_8d11c + ld a, [hl] + +.asm_8d11d + pop bc + pop hl + ret +; 8d120 + +INCBIN "baserom.gbc", $8d120, $8d132 - $8d120 + + +Function8d132: ; 8d132 +.asm_8d132 + ld hl, $0008 + add hl, bc + ld a, [hl] + and a + jr z, .asm_8d142 + dec [hl] + call $5189 + ld a, [hli] + push af + jr .asm_8d163 + +.asm_8d142 + ld hl, $000a + add hl, bc + inc [hl] + call $5189 + ld a, [hli] + cp $fe + jr z, .asm_8d17b + cp $ff + jr z, .asm_8d16d + push af + ld a, [hl] + push hl + and $3f + ld hl, $0009 + add hl, bc + add [hl] + ld hl, $0008 + add hl, bc + ld [hl], a + pop hl + +.asm_8d163 + ld a, [hl] + and $c0 + srl a + ld [$c3b8], a + pop af + ret + +.asm_8d16d + xor a + ld hl, $0008 + add hl, bc + ld [hl], a + ld hl, $000a + add hl, bc + dec [hl] + dec [hl] + jr .asm_8d132 + +.asm_8d17b + xor a + ld hl, $0008 + add hl, bc + ld [hl], a + dec a + ld hl, $000a + add hl, bc + ld [hl], a + jr .asm_8d132 +; 8d189 + +Function8d189: ; 8d189 + ld hl, $0001 + add hl, bc + ld e, [hl] + ld d, $0 + ld hl, $56e6 + add hl, de + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $000a + add hl, bc + ld l, [hl] + ld h, $0 + add hl, hl + add hl, de + ret +; 8d1a2 + +Function8d1a2: ; 8d1a2 + ld e, a + ld d, $0 + ld hl, $594d + add hl, de + add hl, de + add hl, de + ret +; 8d1ac + +INCBIN "baserom.gbc", $8d1ac, $8d24b - $8d1ac + + +Function8d24b: ; 8d24b + ld hl, $0002 + add hl, bc + ld e, [hl] + ld d, $0 + ld hl, $525b + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 8d25b + +INCBIN "baserom.gbc", $8d25b, $8e9ac - $8d25b GetSpeciesIcon: ; 8e9ac ; Load species icon into VRAM at tile a @@ -27576,7 +30141,144 @@ INCBIN "baserom.gbc", $e0000, $e37f9 - $e0000 SECTION "bank39",DATA,BANK[$39] -INCBIN "baserom.gbc", $e4000, $e555d - $e4000 +INCBIN "baserom.gbc", $e4000, $e4579 - $e4000 + + +Functione4579: ; e4579 + ld de, $0000 + call StartMusic + call WhiteBGMap + call ClearTileMap + ld a, $98 + ld [$ffd7], a + xor a + ld [hBGMapAddress], a + ld [hJoyDown], a + ld [$ffcf], a + ld [$ffd0], a + ld a, $90 + ld [$ffd2], a + call WaitBGMap + ld b, $19 + call GetSGBLayout + call $32f9 + ld c, $a + call DelayFrames + ld hl, $63e2 + ld a, $1 + rst FarCall + call WaitBGMap + ld c, $64 + call DelayFrames + call ClearTileMap + ld a, $13 + ld hl, $6a82 + rst FarCall + call $45e8 +.asm_e45c0 + call $0a57 + ld a, [$ffa9] + and $f + jr nz, .asm_e45de + ld a, [$cf63] + bit 7, a + jr nz, .asm_e45e3 + call $4670 + ld a, $23 + ld hl, $4f69 + rst FarCall + call DelayFrame + jr .asm_e45c0 + +.asm_e45de + call $465e + scf + ret + +.asm_e45e3 + call $465e + and a + ret +; e45e8 + +Functione45e8: ; e45e8 + ld de, $47cc + ld hl, VTiles2 + ld bc, $391c + call $0f9d + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + ld hl, $5407 + ld de, $d000 + ld a, $42 + call FarDecompress + ld hl, VTiles0 + ld de, $d000 + ld bc, $0180 + call $0eba + ld hl, VTiles1 + ld de, $d800 + ld bc, $0180 + call $0eba + pop af + ld [rSVBK], a + ld a, $23 + ld hl, $4f53 + rst FarCall + ld de, $5458 + ld a, $3 + call $3b2a + ld hl, $0007 + add hl, bc + ld [hl], $a0 + ld hl, $000c + add hl, bc + ld [hl], $60 + ld hl, $000d + add hl, bc + ld [hl], $30 + xor a + ld [$cf63], a + ld [$cf64], a + ld [$cf65], a + ld [$ffcf], a + ld [$ffd0], a + ld a, $1 + ld [hBGMapMode], a + ld a, $90 + ld [$ffd2], a + ld de, $e4e4 + call DmgToCgbObjPals + ret +; e465e + +Functione465e: ; e465e + ld a, $23 + ld hl, $4f53 + rst FarCall + call ClearTileMap + call ClearSprites + ld c, $10 + call DelayFrames + ret +; e4670 + +Functione4670: ; e4670 + ld a, [$cf63] + ld e, a + ld d, $0 + ld hl, $467f + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; e467f + +INCBIN "baserom.gbc", $e467f, $e555d - $e467f IntroSuicuneRunGFX: ; e555d INCBIN "gfx/intro/suicune_run.lz" @@ -27893,7 +30595,56 @@ TownMapGFX: ; f8ba0 INCBIN "gfx/misc/town_map.lz" ; f8ea3 -INCBIN "baserom.gbc", $f8ea3, $fbbfc - $f8ea3 +INCBIN "baserom.gbc", $f8ea3, $fb48a - $f8ea3 + + +Functionfb48a: ; fb48a + ld de, $5214 + ld hl, $9600 + ld bc, $3e01 + call $0ddc + ld de, $4f24 + ld hl, $9620 + ld bc, $3e01 + call $0dc9 + ld de, $4030 + ld hl, $9630 + ld bc, $3e16 + call $0dc9 + jr .asm_fb4cc + + ld de, $5424 + ld hl, $9610 + ld b, $3e + ld c, $1 + call $0dc9 + ret + + ld de, $4600 + ld hl, $9600 + ld bc, $3e19 + call $0dc9 + jr .asm_fb4cc + +.asm_fb4cc + ld a, [TextBoxFrame] + and $7 + ld bc, $0030 + ld hl, $4800 + call AddNTimes + ld d, h + ld e, l + ld hl, $9790 + ld bc, $3e06 + call $0ddc + ld hl, $97f0 + ld de, $5204 + ld bc, $3e01 + call $0ddc + ret +; fb4f2 + +INCBIN "baserom.gbc", $fb4f2, $fbbfc - $fb4f2 INCLUDE "battle/magikarp_length.asm" @@ -29147,7 +31898,156 @@ INCBIN "baserom.gbc", $100000, $10389d - $100000 SECTION "bank41",DATA,BANK[$41] -INCBIN "baserom.gbc", $104000, $104350 - $104000 +INCBIN "baserom.gbc", $104000, $104209 - $104000 + + +Function104209: ; 104209 + ld b, $7f + ld a, h + ld [rHDMA1], a + ld a, l + and $f0 + ld [rHDMA2], a + ld a, d + and $1f + ld [rHDMA3], a + ld a, e + and $f0 + ld [rHDMA4], a + ld a, c + dec c + or $80 + ld e, a + ld a, b + sub c + ld d, a +.asm_104225 + ld a, [rLY] + cp d + jr nc, .asm_104225 + di +.asm_10422b + ld a, [rSTAT] + and $3 + jr nz, .asm_10422b +.asm_104231 + ld a, [rSTAT] + and $3 + jr z, .asm_104231 + ld a, e + ld [rHDMA5], a + ld a, [rLY] + inc c + ld hl, rLY +.asm_104240 + cp [hl] + jr z, .asm_104240 + ld a, [hl] + dec c + jr nz, .asm_104240 + ld hl, rHDMA5 + res 7, [hl] + ei + ret +; 10424e + +INCBIN "baserom.gbc", $10424e, $104284 - $10424e + + +Function104284: ; 104284 + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + push bc + push hl + ld a, b + ld l, c + ld h, $0 + add hl, hl + add hl, hl + add hl, hl + add hl, hl + ld b, h + ld c, l + ld h, d + ld l, e + ld de, $d000 + call FarCopyBytes + pop hl + pop bc + push bc + call DelayFrame + pop bc + ld d, h + ld e, l + ld hl, $d000 + call $4209 + pop af + ld [rSVBK], a + ret +; 1042b2 + +Function1042b2: ; 1042b2 +.asm_1042b2 + ld a, c + cp $10 + jp c, $42d6 + jp z, $42d6 + push bc + push hl + push de + ld c, $10 + call $42d6 + pop de + ld hl, $0080 + add hl, de + ld d, h + ld e, l + pop hl + ld bc, Start + add hl, bc + pop bc + ld a, c + sub $10 + ld c, a + jr .asm_1042b2 +; 1042d6 + +Function1042d6: ; 1042d6 + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + push bc + push hl + ld a, b + ld l, c + ld h, $0 + add hl, hl + add hl, hl + add hl, hl + ld c, l + ld b, h + ld h, d + ld l, e + ld de, $d000 + call $0def + pop hl + pop bc + push bc + call DelayFrame + pop bc + ld d, h + ld e, l + ld hl, $d000 + call $4209 + pop af + ld [rSVBK], a + ret +; 104303 + +INCBIN "baserom.gbc", $104303, $104350 - $104303 INCBIN "gfx/ow/misc.2bpp" @@ -29946,7 +32846,122 @@ StartTitleScreen: ; 10ed67 ret ; 10eea7 -INCBIN "baserom.gbc", $10eea7, $10ef32 - $10eea7 +Function10eea7: ; 10eea7 + ld hl, DefaultFlypoint + ld a, [hl] + ld c, a + inc [hl] + and $7 + ret nz + ld a, c + and $18 + sla a + swap a + ld e, a + ld d, $0 + ld hl, $6ece + add hl, de + ld d, [hl] + xor a + ld [hBGMapMode], a + call $6ed2 + ld a, $1 + ld [hBGMapMode], a + ld a, $3 + ld [hBGMapThird], a + ret +; 10eece + +INCBIN "baserom.gbc", $10eece, $10eed2 - $10eece + + +Function10eed2: ; 10eed2 + ld hl, $c596 + ld b, $6 +.asm_10eed7 + ld c, $8 +.asm_10eed9 + ld a, d + ld [hli], a + inc d + dec c + jr nz, .asm_10eed9 + ld a, $c + add l + ld l, a + ld a, $0 + adc h + ld h, a + ld a, $8 + add d + ld d, a + dec b + jr nz, .asm_10eed7 + ret +; 10eeef + +Function10eeef: ; 10eeef +.asm_10eeef + push de + push bc + push hl +.asm_10eef2 + ld a, d + ld [hli], a + inc d + dec c + jr nz, .asm_10eef2 + pop hl + ld bc, $0014 + add hl, bc + pop bc + pop de + ld a, e + add d + ld d, a + dec b + jr nz, .asm_10eeef + ret +; 10ef06 + +Function10ef06: ; 10ef06 + ld hl, Sprites + ld d, $de + ld e, $0 + ld c, $5 +.asm_10ef0f + push bc + call $6f1c + pop bc + ld a, $10 + add d + ld d, a + dec c + jr nz, .asm_10ef0f + ret +; 10ef1c + +Function10ef1c: ; 10ef1c + ld c, $6 + ld b, $40 +.asm_10ef20 + ld a, d + ld [hli], a + ld a, b + ld [hli], a + add $8 + ld b, a + ld a, e + ld [hli], a + inc e + inc e + ld a, $80 + ld [hli], a + dec c + jr nz, .asm_10ef20 + ret +; 10ef32 + AnimateTitleCrystal: ; 10ef32 ; Move the title screen crystal downward until it's fully visible @@ -31340,7 +34355,48 @@ INCBIN "baserom.gbc", $17a68f, $17b629 - $17a68f SECTION "bank5F",DATA,BANK[$5F] -INCBIN "baserom.gbc", $17c000, $17ff6c - $17c000 +INCBIN "baserom.gbc", $17c000, $17f036 - $17c000 + + +Function17f036: ; 17f036 + ld a, $6 + call GetSRAMBank + inc de +.asm_17f03c + call $7047 + jr c, .asm_17f043 + jr .asm_17f03c + +.asm_17f043 + call CloseSRAM + ret +; 17f047 + +Function17f047: ; 17f047 + ld a, [de] + inc de + cp $50 + jr z, .asm_17f05f + cp $10 + jr nc, .asm_17f05f + dec a + push de + ld e, a + ld d, $0 + ld hl, $7061 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +.asm_17f05f + scf + ret +; 17f061 + +INCBIN "baserom.gbc", $17f061, $17ff6c - $17f061 SECTION "bank60",DATA,BANK[$60] @@ -31785,7 +34841,25 @@ Tileset26Coll: ; 0x1dd5a9 INCBIN "tilesets/26_collision.bin" ; 0x1dd6a9 -INCBIN "baserom.gbc", $1dd6a9, $1de29f - $1dd6a9 +INCBIN "baserom.gbc", $1dd6a9, $1de28a - $1dd6a9 + + +Function1de28a: ; 1de28a + ld hl, DudeAutoInput_A + jr .asm_1de299 + + ld hl, DudeAutoInput_RightA + jr .asm_1de299 + + ld hl, DudeAutoInput_DownA + jr .asm_1de299 + +.asm_1de299 + ld a, $77 + call StartAutoInput + ret +; 1de29f + DudeAutoInput_A: ; 1de29f From 4d72b06bccf62a4063e8a4c23faad2ef6e8c76c1 Mon Sep 17 00:00:00 2001 From: yenatch Date: Thu, 25 Jul 2013 21:08:30 -0400 Subject: [PATCH 12/84] replace known addresses with labels --- main.asm | 644 +++++++++++++++++++++++++++---------------------------- 1 file changed, 322 insertions(+), 322 deletions(-) diff --git a/main.asm b/main.asm index 505732450..ecf5f8034 100644 --- a/main.asm +++ b/main.asm @@ -52,7 +52,7 @@ SECTION "joypad",HOME[$60] ; joypad interrupt SECTION "romheader",HOME[$100] Start: nop - jp $016e + jp Function16e SECTION "start",HOME[$150] @@ -119,12 +119,12 @@ Function16e: ; 16e ld [$ffea], a pop af ld [hCGB], a - call $025a + call Function25a ld a, $1 ld [rSVBK], a - call $0245 + call Function245 call ClearSprites - call $0270 + call Function270 ld a, $1 rst Bankswitch @@ -162,7 +162,7 @@ Function16e: ; 16e ld a, [hCGB] and a jr z, .asm_22b - call $2ff7 + call Function2ff7 .asm_22b xor a @@ -556,7 +556,7 @@ INCBIN "baserom.gbc", $658, $67e - $658 Function67e: ; 67e - call $0685 + call Function685 call SetClock ret ; 685 @@ -682,7 +682,7 @@ Functionaaf: ; aaf ld a, [InLinkBattle] and a jr nz, .asm_ac1 - call $0ac6 + call Functionac6 push de ld de, $0008 call StartSFX @@ -707,8 +707,8 @@ Functionac6: ; ac6 rst FarCall .asm_ad9 - call $0af5 - call $0a57 + call Functionaf5 + call Functiona57 ld a, [hJoyPressed] and $3 jr nz, .asm_af1 @@ -1586,7 +1586,7 @@ Functionf1e: ; f1e Functionf82: ; f82 ld a, [rLCDC] bit 7, a - jp nz, $0eba + jp nz, Functioneba push hl ld h, d ld l, e @@ -1607,7 +1607,7 @@ Functionf82: ; f82 Functionf9d: ; f9d ld a, [rLCDC] bit 7, a - jp nz, $0f1e + jp nz, Functionf1e push de ld d, h ld e, l @@ -1811,63 +1811,63 @@ NextChar: ; 1083 CheckDict: ; 1087 cp $15 - jp z, $117b + jp z, Function117b cp $4f jp z, Char4F cp $4e - jp z, $12a7 + jp z, Function12a7 cp $16 - jp z, $12b9 + jp z, Function12b9 and a - jp z, $1383 + jp z, Function1383 cp $4c jp z, $1337 cp $4b jp z, Char4B cp $51 ; Player name - jp z, $12f2 + jp z, Function12f2 cp $49 - jp z, $1186 + jp z, Function1186 cp $52 ; Mother name - jp z, $118d + jp z, Function118d cp $53 - jp z, $1194 + jp z, Function1194 cp $35 - jp z, $11e8 + jp z, Function11e8 cp $36 - jp z, $11ef + jp z, Function11ef cp $37 - jp z, $11f6 + jp z, Function11f6 cp $38 - jp z, $119b + jp z, Function119b cp $39 - jp z, $11a2 + jp z, Function11a2 cp $54 - jp z, $11c5 + jp z, Function11c5 cp $5b - jp z, $11b7 + jp z, Function11b7 cp $5e - jp z, $11be + jp z, Function11be cp $5c - jp z, $11b0 + jp z, Function11b0 cp $5d - jp z, $11a9 + jp z, Function11a9 cp $23 - jp z, $11cc + jp z, Function11cc cp $22 - jp z, $12b0 + jp z, Function12b0 cp $55 jp z, Char55 cp $56 - jp z, $11d3 + jp z, Function11d3 cp $57 jp z, $137c cp $58 - jp z, $135a + jp z, Function135a cp $4a - jp z, $11da + jp z, Function11da cp $24 - jp z, $11e1 + jp z, Function11e1 cp $25 jp z, NextChar cp $1f @@ -1879,7 +1879,7 @@ CheckDict: ; 1087 cp $59 jp z, $11fd cp $5a - jp z, $1203 + jp z, Char5D cp $3f jp z, $121b cp $14 @@ -1890,7 +1890,7 @@ CheckDict: ; 1087 jr z, .asm_1174 ; 0x1141 $31 jr .asm_114c ; 0x1143 $7 ld b, a - call $13c6 + call Function13c6 jp NextChar .asm_114c cp $60 @@ -1905,7 +1905,7 @@ CheckDict: ; 1087 add $90 .asm_115e ld b, $e5 - call $13c6 + call Function13c6 jr .asm_1174 ; 0x1163 $f .asm_1165 cp $44 @@ -1916,7 +1916,7 @@ CheckDict: ; 1087 add $86 .asm_116f ld b, $e4 - call $13c6 + call Function13c6 .asm_1174 ld [hli], a call PrintLetterDelay @@ -2043,14 +2043,14 @@ Char5D: ; 1203 push de and a jr nz, .asm_120e ; 0x1207 $5 - ld de, $c621 + ld de, BattleMonNick jr .asm_126a ; 0x120c $5c .asm_120e ld de, Char5AText ; Enemy call PlaceString ld h, b ld l, c - ld de, $c616 + ld de, EnemyMonNick jr .asm_126a ; 0x1219 $4f push de ld a, [InLinkBattle] @@ -2075,7 +2075,7 @@ Char5D: ; 1203 ld de, StringBuffer1 jr .asm_126a ; 0x1246 $22 .asm_1248 - ld de, $d493 + ld de, RivalName jr .asm_126a ; 0x124b $1d .linkbattle ld de, $c656 @@ -2085,7 +2085,7 @@ Char5D: ; 1203 call PlaceString ld h, b ld l, c - ld a, [$d472] + ld a, [PlayerGender] bit 0, a ld de, $12a5 jr z, .asm_126a ; 0x1263 $5 @@ -2190,15 +2190,15 @@ Function12f2: ; 12f2 jr z, .asm_1301 cp $4 jr z, .asm_1301 - call $13c7 + call Function13c7 .asm_1301 - call $13b6 - call $0aaf + call Function13b6 + call Functionaaf ld hl, $c5b9 ld bc, $0312 call ClearBox - call $13cd + call Function13cd ld c, $14 call DelayFrames ld hl, $c5b9 @@ -2211,22 +2211,22 @@ Char4B: ; 131f ld a, [InLinkBattle] or a jr nz, .asm_1328 - call $13c7 + call Function13c7 .asm_1328 - call $13b6 + call Function13b6 push de - call $aaf + call Functionaaf pop de ld a, [InLinkBattle] or a - call z, $13cd + call z, Function13cd push de - call $138c - call $138c + call Function138c + call Function138c hlcoord 1, 16 pop de jp NextChar @@ -2263,17 +2263,17 @@ Function135a: ; 135a jr z, .asm_1368 cp $4 jr z, .asm_1368 - call $13c7 + call Function13c7 .asm_1368 - call $13b6 - call $0aaf + call Function13b6 + call Functionaaf ld a, [InLinkBattle] cp $3 jr z, .asm_137c cp $4 jr z, .asm_137c - call $13cd + call Function13cd .asm_137c pop hl @@ -2526,7 +2526,7 @@ UpdateBGMap: ; 164c ld h, a push hl -; bg map 1 ($9c00) +; bg map 1 (VBGMap1) xor a ld [hBGMapAddress], a ld a, $9c @@ -3164,7 +3164,7 @@ Function1a61: ; 1a61 ld a, l push bc - call $1a71 + call Function1a71 pop bc pop af rst Bankswitch @@ -3319,10 +3319,10 @@ Function1c47: ; 0x1c47 Function1c53: ; 0x1c53 ld a, [$cf82] ld b, a - ld a, [$cf84] + ld a, [TileX] sub b ld b, a - ld a, [$cf83] + ld a, [TileY] ld c, a ld a, [$cf85] sub c @@ -3341,7 +3341,7 @@ Function1d3c: ; 0x1d3c ld de, $cf81 ld bc, $0010 call CopyBytes - ld a, [$ff9d] + ld a, [hROMBank] ld [$cf8a], a ret ; 0x1d4b @@ -3350,7 +3350,7 @@ INCBIN "baserom.gbc", $1d4b, $1d81 - $1d4b Function1d81: ; 0x1d81 xor a - ld [$ffd4], a + ld [hBGMapMode], a call $1cbb call $1ad2 call $1c89 @@ -3359,7 +3359,7 @@ Function1d81: ; 0x1d81 ld a, [$cf91] bit 7, a jr z, .asm_1da7 ; 0x1d98 $d - call $1c10 + call Function1c10 call $1bc9 call $1ff8 bit 1, a @@ -3388,7 +3388,7 @@ Function1db8: ; 0x1db8 call GetNthString ld d, h ld e, l - call $30d6 + call CopyName1 pop bc pop hl ret @@ -3432,13 +3432,13 @@ INCBIN "baserom.gbc", $1ea6, $1fbf - $1ea6 Function1fbf: ; 1fbf ld hl, $cf71 - call $1ff0 + call Function1ff0 ld hl, $cf81 - call $1ff0 + call Function1ff0 ld hl, $cf91 - call $1ff0 + call Function1ff0 ld hl, $cfa1 - call $1ff0 + call Function1ff0 ld a, [rSVBK] push af ld a, $7 @@ -3465,7 +3465,7 @@ Function1ff0: ; 1ff0 INCBIN "baserom.gbc", $1ff8, $2009 - $1ff8 -PlayClickSFX: ; $2009 +PlayClickSFX: ; PlayClickSFX push de ld de, SFX_READ_TEXT_2 call StartSFX @@ -3978,7 +3978,7 @@ GetFacingTileCoord: ; 2a07 Function2a3c: ; 2a3c - call $2a66 + call Function2a66 ld a, [hl] and a jr z, .asm_2a63 @@ -4143,7 +4143,7 @@ Function2b74: ; 0x2b74 ld a, $12 ld hl, $5409 rst $8 - call $0485 + call Function485 call DelayFrame ld a, $1 ld [$ffde], a @@ -4423,7 +4423,7 @@ Predef: ; 2d83 ResetWindow: ; 2dba - call $1fbf + call Function1fbf ld a, [hROMBank] push af ld a, $1 @@ -5351,7 +5351,7 @@ NamesPointerTable: ; 33ab GetName: ; 33c3 -; Return name $cf60 from name list $cf61 in StringBuffer1. +; Return name CurSpecies from name list $cf61 in StringBuffer1. ld a, [hROMBank] push af push hl @@ -5361,7 +5361,7 @@ GetName: ; 33c3 cp 1 ; Pokemon names jr nz, .NotPokeName - ld a, [$cf60] + ld a, [CurSpecies] ld [$d265], a call GetPokemonName ld hl, $000b @@ -5385,7 +5385,7 @@ GetName: ; 33c3 ld h, [hl] ld l, a - ld a, [$cf60] + ld a, [CurSpecies] dec a call GetNthString @@ -5499,7 +5499,7 @@ GetItemName: ; 3468 cp TM_01 jr nc, .TM - ld [$cf60], a + ld [CurSpecies], a ld a, 4 ; Item names ld [$cf61], a call GetName @@ -5633,7 +5633,7 @@ GetMoveName: ; 34f8 ld [$cf61], a ; move id ld a, [$d265] - ld [$cf60], a + ld [CurSpecies], a call GetName ld de, StringBuffer1 @@ -5697,7 +5697,7 @@ CheckTrainerBattle: ; 360d jr z, .next ; Is facing the player... - call $1ae5 + call Function1ae5 call FacingPlayerDistance_bc jr nc, .next @@ -5746,13 +5746,13 @@ CheckTrainerBattle: ; 360d pop af ld [$ffe0], a ld a, b - ld [$d03f], a + ld [CurFruit], a ld a, c ld [$d040], a jr .asm_367e ld a, $1 - ld [$d03f], a + ld [CurFruit], a ld a, $ff ld [$d040], a @@ -6738,11 +6738,11 @@ INCBIN "baserom.gbc", $3dfe, $3e10 - $3dfe ChannelsOff: ; 3e10 ; Quickly turn off music channels xor a - ld [$c104], a + ld [Channel1Flags], a ld [$c136], a ld [$c168], a ld [$c19a], a - ld [$c29c], a + ld [SoundInput], a ret ; 3e21 @@ -6753,7 +6753,7 @@ SFXChannelsOff: ; 3e21 ld [$c1fe], a ld [$c230], a ld [$c262], a - ld [$c29c], a + ld [SoundInput], a ret ; 3e32 @@ -7452,7 +7452,7 @@ Function453f: ; 453f ; 456e Function456e: ; 456e - call $1b07 + call GetSpriteDirection rrca rrca add $10 @@ -7645,9 +7645,9 @@ Function463f: ; 463f ; 4661 Function4661: ; 4661 - call $188e + call Function188e jr z, .asm_466b - call $1875 + call Function1875 jr c, .asm_4672 .asm_466b @@ -7729,7 +7729,7 @@ Function46a6: ; 46a6 ld [hl], a ld e, a push bc - call $2a3c + call Function2a3c pop bc ld hl, $000e add hl, bc @@ -7926,7 +7926,7 @@ Function47bc: ; 47bc add hl, bc ld e, [hl] push bc - call $2a3c + call Function2a3c pop bc ld hl, $000e add hl, bc @@ -8157,7 +8157,7 @@ Function48ff: ; 48ff add hl, bc ld a, [hl] push bc - call $1ae5 + call Function1ae5 ld hl, $0007 add hl, bc ld a, [hl] @@ -8443,7 +8443,7 @@ Function4aa8: ; 4aa8 add hl, bc ld a, [hl] push bc - call $1ae5 + call Function1ae5 ld d, b ld e, c pop bc @@ -9574,7 +9574,7 @@ Function550a: ; 550a cp $ff jr z, .asm_5520 push bc - call $1ae5 + call Function1ae5 ld hl, $0000 add hl, bc ld a, [hl] @@ -9696,7 +9696,7 @@ Function5582: ; 5582 ; 55ac Function55ac: ; 55ac - call $1a13 + call Function1a13 ret nc ld d, h ld e, l @@ -9746,7 +9746,7 @@ Function55e0: ; 55e0 xor a .asm_55ea ld [hConnectionStripLength], a - call $1af1 + call Function1af1 jr z, .asm_55f4 call Function565c @@ -9798,8 +9798,8 @@ Function5629: ; 5629 ret z cp $d ret nc - call $1ae5 - call $1af1 + call Function1ae5 + call Function1af1 ret z call Function5673 ret @@ -9859,7 +9859,7 @@ Function5688: ; 5688 ld hl, $0011 add hl, bc ld e, [hl] - call $2a3c + call Function2a3c pop bc ld hl, $000e add hl, bc @@ -10041,7 +10041,7 @@ Function5781: ; 5781 xor a .asm_5785 ld [hConnectionStripLength], a - call $1af1 + call Function1af1 jr z, .asm_578f call Function437b @@ -10186,7 +10186,7 @@ Function5847: ; 5847 ld a, [$d4ce] cp $ff ret z - call $1ae5 + call Function1ae5 callba Function58e3 ld a, $ff ld [$d4ce], a @@ -10222,7 +10222,7 @@ Function587a: ; 587a xor a .asm_587e push af - call $1af1 + call Function1af1 jr z, .asm_588a ld hl, $0005 add hl, bc @@ -10245,7 +10245,7 @@ Function5897: ; 5897 cp $ff ret z push bc - call $1ae5 + call Function1ae5 ld hl, $0001 add hl, bc ld a, [hl] @@ -10255,7 +10255,7 @@ Function5897: ; 5897 ld a, [$d4ce] cp $ff ret z - call $1ae5 + call Function1ae5 ld hl, $0005 add hl, bc res 5, [hl] @@ -10268,7 +10268,7 @@ Function58b9: ; 58b9 xor a .asm_58be push af - call $1af1 + call Function1af1 jr z, .asm_58ca ld hl, $0005 add hl, bc @@ -10391,7 +10391,7 @@ Function5958: ; 5958 ld a, $d .asm_5968 push af - call $1af1 + call Function1af1 jr z, .asm_597c ld hl, $0017 add hl, bc @@ -10442,7 +10442,7 @@ Function59a4: ; 59a4 ld hl, $c2eb .asm_59b6 push hl - call $1af1 + call Function1af1 jr z, .asm_59d9 ld hl, $000d add hl, bc @@ -10723,9 +10723,9 @@ Function5b44: ; 5b44 xor a ld [$ffde], a call ClearTileMap - call $0e5f + call Functione5f call $0e51 - call $1fbf + call Function1fbf ret ; 5b54 @@ -11129,7 +11129,7 @@ Function5df0: ; 5df0 Function5e34: ; 5e34 .asm_5e34 call DelayFrame - call $0984 + call GetJoypadPublic ld hl, hJoyPressed bit 0, [hl] jr nz, .asm_5e47 @@ -11204,7 +11204,7 @@ Function5e9f: ; 5e9f call Function5ebf call Function5f1c call Function5f40 - call $0e5f + call Functione5f call $1ad2 ret ; 5eaf @@ -11213,7 +11213,7 @@ Function5eaf: ; 5eaf call Function5ebf call Function5f1c call Function5f48 - call $0e5f + call Functione5f call $1ad2 ret ; 5ebf @@ -11376,15 +11376,15 @@ OakSpeech: ; 0x5f99 call ClearTileMap ld a, $c2 - ld [$cf60], a + ld [CurSpecies], a ld [CurPartySpecies], a - call $3856 + call GetBaseData hlcoord 6, 4 call $3786 xor a - ld [$d123], a + ld [TempMonDVs], a ld [$d124], a ld b, $1c @@ -11437,7 +11437,7 @@ OakText2: ; 0x604a start_asm ld a,WOOPER call $37ce - call $3c55 + call WaitSFX ld hl,OakText3 ret @@ -11484,7 +11484,7 @@ NamePlayer: ; 0x6074 call $04b6 call ClearTileMap - call $0e5f + call Functione5f call WaitBGMap xor a @@ -11533,7 +11533,7 @@ Function620b: ; 620b rst FarCall jr c, .asm_6219 ld a, $39 - ld hl, $48ac + ld hl, Function48ac rst FarCall .asm_6219 @@ -11544,7 +11544,7 @@ Function620b: ; 620b call FarStartTitleScreen call DelayFrame .asm_6226 - call $627b + call Function627b jr nc, .asm_6226 call ClearSprites call WhiteBGMap @@ -11552,7 +11552,7 @@ Function620b: ; 620b ld [rSVBK], a ld hl, rLCDC res 2, [hl] - call $0fdb + call Functionfdb call Function3200 xor a ld [hLCDStatCustom], a @@ -11564,7 +11564,7 @@ Function620b: ; 620b ld [$ffd2], a ld b, $8 call GetSGBLayout - call $0485 + call Function485 ld a, [$cf64] cp $5 jr c, .asm_625e @@ -11593,7 +11593,7 @@ Function627b: ; 627b ld a, [$cf63] bit 7, a jr nz, .asm_6290 - call $62a3 + call Function62a3 ld a, $43 ld hl, $6ea7 rst FarCall @@ -11678,11 +11678,11 @@ INCBIN "baserom.gbc", $62f6, $63e2 - $62f6 Function63e2: ; 63e2 call ClearTileMap - call $0e5f + call Functione5f ld de, Function4000 ld hl, $9600 ld bc, $391d - call $0eba + call Functioneba ld hl, $c52e ld de, $63fd jp PlaceString @@ -11695,7 +11695,7 @@ Function642e: ; 642e ld a, $5 ld hl, $4f1c rst FarCall - call $1fbf + call Function1fbf call WhiteBGMap call ClearTileMap ld a, $98 @@ -11708,7 +11708,7 @@ Function642e: ; 642e ld a, $90 ld [$ffd2], a call WaitBGMap - jp $620b + jp Function620b ; 6454 INCBIN "baserom.gbc", $6454, $669f - $6454 @@ -12005,18 +12005,18 @@ DrawGraphic: ; 6eef ; c: width ; d: tile to start drawing from ; e: number of tiles to advance for each row - call $7009 + call Function7009 pop bc pop hl ret c bit 5, [hl] jr nz, .asm_6f05 push hl - call $70a4 + call Function70a4 pop hl ret c push hl - call $70ed + call Function70ed pop hl ret c .asm_6f05 @@ -12026,7 +12026,7 @@ DrawGraphic: ; 6eef Function6f07: ; 6f07 - call $6f5f + call Function6f5f ret c ld hl, $0010 add hl, bc @@ -12037,7 +12037,7 @@ Function6f07: ; 6f07 ld hl, $0006 add hl, bc bit 7, [hl] - jp nz, $6fa1 + jp nz, Function6fa1 ld hl, $000e add hl, bc ld a, [hl] @@ -12048,7 +12048,7 @@ Function6f07: ; 6f07 scf ret - call $6f5f + call Function6f5f ret c ld hl, $000e add hl, bc @@ -12063,7 +12063,7 @@ Function6f07: ; 6f07 ld hl, $000e add hl, bc ld a, [hl] - call $6f7f + call Function6f7f ret nc push af ld hl, $0007 @@ -12088,7 +12088,7 @@ Function6f5f: ; 6f5f ld hl, $000f add hl, bc ld a, [hl] - call $6f7f + call Function6f7f ret nc push af ld hl, $0007 @@ -12167,12 +12167,12 @@ Function6fa1: ; 6fa1 inc e .asm_6fc2 - call $2a3c + call Function2a3c call GetTileType pop de and a jr nz, .asm_6fd7 - call $2a3c + call Function2a3c call GetTileType and a jr nz, .asm_6fd7 @@ -12238,7 +12238,7 @@ Function7009: ; 7009 jr .asm_7041 ld a, [hConnectionStripLength] - call $1ae5 + call Function1ae5 call $7021 call $7041 ret @@ -12276,7 +12276,7 @@ Function7009: ; 7009 xor a .asm_7045 ld [hConnectedMapWidth], a - call $1af1 + call Function1af1 jr z, .asm_7093 ld hl, $0004 add hl, bc @@ -12286,7 +12286,7 @@ Function7009: ; 7009 add hl, bc bit 7, [hl] jr z, .asm_7063 - call $7171 + call Function7171 jr nc, .asm_707b jr .asm_7073 @@ -12554,16 +12554,16 @@ Function8286: ; 8286 add hl, de ld [hl], a ld a, [$c2f4] - call $1a61 + call Function1a61 ld a, [$c2f3] ld hl, $0006 add hl, de or [hl] ld [hl], a ld a, [$c2f7] - call $42d5 + call Function82d5 ld a, [$c2f6] - call $42f1 + call Function82f1 ld a, [$c2f1] ld hl, $0000 add hl, de @@ -12579,7 +12579,7 @@ Function8286: ; 8286 add hl, de ld [hl], $ff ld a, [$c2f8] - call $430d + call Function830d ld a, [$c2f5] ld hl, $0020 add hl, de @@ -12800,7 +12800,7 @@ INCBIN "baserom.gbc", $8d59, $9890 - $8d59 Function9890: ; 9890 - call $4d55 + call Function8d55 ret z ld a, $1 ld [rVBK], a @@ -12835,9 +12835,9 @@ Function9890: ; 9890 ld a, $5 ld [rSVBK], a ld hl, $d000 - call $58df + call Function98df ld hl, $d080 - call $58df + call Function98df pop af ld [rSVBK], a ret @@ -12883,7 +12883,7 @@ ClearBytes: ; 0x9a5b DrawDefaultTiles: ; 0x9a64 ; Draw 240 tiles (2/3 of the screen) from tiles in VRAM - ld hl, $9800 ; BG Map 0 + ld hl, VBGMap0 ; BG Map 0 ld de, 32 - 20 ld a, $80 ; starting tile ld c, 12 + 1 @@ -12995,7 +12995,7 @@ SpecialsPointers: ; 0xc029 dbw $23, $40ab dbw $00, $0d91 dbw BANK(WhiteBGMap), WhiteBGMap - dbw $00, $0485 + dbw $00, Function485 dbw BANK(ClearTileMap), ClearTileMap dbw $00, $1ad2 dbw $00, $0e4a @@ -13161,7 +13161,7 @@ SpecialSnorlaxAwake: ; 0xc43d ; ScriptVar is 1 if the conditions are met, otherwise 0. ; check background music - ld a, [$c2c0] + ld a, [CurMusic] cp $40 ; Poké Flute Channel jr nz, .nope @@ -13270,7 +13270,7 @@ GetPartyNick: ; c706 ; write CurPartyMon nickname to StringBuffer1-3 ld hl, PartyMon1Nickname ld a, $02 - ld [$cf5f], a + ld [MonType], a ld a, [CurPartyMon] call GetNick call CopyName1 @@ -13666,7 +13666,7 @@ ClearPCItemScreen: ; e58b ld bc, $0412 call TextBox call Function3200 - call $32f9 ; load regular palettes? + call Function32f9 ; load regular palettes? ret ; 0xe5bb @@ -13949,7 +13949,7 @@ INCBIN "baserom.gbc", $116b3, $116b7 - $116b3 Function116b7: ; 0x116b7 call Function2ed3 call $56c1 - call $2b74 + call Function2b74 ret ; 0x116c1 @@ -14013,7 +14013,7 @@ INCBIN "baserom.gbc", $12527, $125cd - $12527 StartMenu: ; 125cd - call $1fbf + call Function1fbf ld de, SFX_MENU call StartSFX @@ -14042,12 +14042,12 @@ StartMenu: ; 125cd ld hl, $64bf rst $8 call .DrawBugContestStatus - call $0485 + call Function485 jr .Select .Reopen call $1ad2 - call $0485 + call Function485 call .SetUpMenuItems ld a, [$d0d2] ld [$cf88], a @@ -14088,14 +14088,14 @@ StartMenu: ; 125cd push af ld a, 1 ld [hOAMUpdate], a - call $0e5f + call Functione5f pop af ld [hOAMUpdate], a .ReturnEnd call Function1c07 .ReturnEnd2 call $2dcf - call $0485 + call Function485 ret .GetInput @@ -14288,7 +14288,7 @@ StartMenu: ; 125cd ld [$cf76], a call .FillMenuList - ld hl, $d84c + ld hl, StatusFlags bit 0, [hl] jr z, .no_pokedex ld a, 0 ; pokedex @@ -14561,7 +14561,7 @@ StartMenu_Pokemon: ; 12976 callba WritePartyMenuTilemap callba PrintPartyMenuText call WaitBGMap - call $32f9 ; load regular palettes? + call Function32f9 ; load regular palettes? call DelayFrame callba PartyMenuSelect jr c, .return ; if cancelled or pressed B @@ -14704,7 +14704,7 @@ SwitchPartyMons: ; 12aec call AddNTimes ld [hl], "▷" call WaitBGMap - call $32f9 + call Function32f9 call DelayFrame callba PartyMenuSelect @@ -15314,13 +15314,13 @@ INCBIN "baserom.gbc", $1404c, $14089 - $1404c Function14089: ; 14089 call GetClock - call $409b + call Function1409b call FixDays jr nc, .asm_14097 - call $06d3 + call Function6d3 .asm_14097 - call $4019 + call Function14019 ret ; 1409b @@ -15335,7 +15335,7 @@ Function1409b: ; 1409b .asm_140a8 ld a, $80 - call $06d3 + call Function6d3 ret ; 140ae @@ -16574,7 +16574,7 @@ INCBIN "baserom.gbc", $1499a, $14f1c - $1499a Function14f1c: ; 14f1c xor a ld [$cfcd], a - call $4f84 + call Function14f84 ld a, [$cfcd] and a jr z, .asm_14f46 @@ -16592,7 +16592,7 @@ Function14f1c: ; 14f1c ret .asm_14f46 - call $4faf + call Function14faf ld a, [$cfcd] and a jr z, .asm_14f6c @@ -16614,7 +16614,7 @@ Function14f1c: ; 14f1c ld de, Options ld bc, $0008 call CopyBytes - call $067e + call Function67e ret ; 14f7c @@ -16990,8 +16990,8 @@ Function1590a: ; 0x1590a ld hl, $4fbf rst $8 push af - call $1c07 - call $1c07 + call Function1c07 + call Function1c07 pop af jr c, .asm_1596c @@ -17056,7 +17056,7 @@ Function15985: ; 0x15985 ld a, $0 ld [$c2ce], a ld hl, MenuData15a08 - call $1d3c + call Function1d3c hlcoord 0, 0 ld b, $a ld c, $12 @@ -17537,7 +17537,7 @@ Function26601: ; 0x26601 pop de call StartSFX call $0a36 - call $3c55 + call WaitSFX ret ; 0x26616 @@ -17792,7 +17792,7 @@ _KrisDecorationMenu: ; 0x2675c ld a, [$cf76] push af ld hl, $679a - call $1d35 + call Function1d35 xor a ld [$d1ee], a ld a, $1 @@ -17811,7 +17811,7 @@ _KrisDecorationMenu: ; 0x2675c jr nc, .asm_2676f .asm_2678e - call $1c07 + call Function1c07 pop af ld [$cf76], a ld a, [$d1ee] @@ -18241,9 +18241,9 @@ ClearBattleRAM: ; 2ef18 ld a, $f rst FarCall - call $1fbf + call Function1fbf - ld hl, $ffd6 + ld hl, hBGMapAddress xor a ld [hli], a ld [hl], $98 @@ -18542,7 +18542,7 @@ GetHalfMaxHP: ; 3cc9f GetMaxHP: ; 3ccac -; output: bc, $d1ea-b +; output: bc, MagikarpLength-b ; player ld hl, BattleMonMaxHP @@ -18557,11 +18557,11 @@ GetMaxHP: ; 3ccac .gethp ld a, [hli] - ld [$d1eb], a + ld [Buffer2], a ld b, a ld a, [hl] - ld [$d1ea], a + ld [MagikarpLength], a ld c, a ret ; 3ccc2 @@ -18683,7 +18683,7 @@ LostBattle: ; 3d38e ; Greyscale ld b, 0 call GetSGBLayout - call $32f9 + call Function32f9 jr .end .LostLinkBattle @@ -18731,7 +18731,7 @@ LostBattle: ; 3d38e INCBIN "baserom.gbc", $3d432, $3ddc2 - $3d432 ld hl, RecoveredUsingText - jp $3ad5 + jp FarBattleTextBox ; 0x3ddc8 INCBIN "baserom.gbc", $3ddc8, $3e8eb - $3ddc8 @@ -19004,7 +19004,7 @@ LoadEnemyMon: ; 3e8eb jr c, .Happiness ; Floor at length 1024 ld a, [MagikarpLength] - cp a, $04 ; $400 = 1024 + cp a, 1024 >> 8 jr c, .GenerateDVs ; try again @@ -19035,7 +19035,7 @@ LoadEnemyMon: ; 3e8eb jr z, .TreeMon ; ???? - ld a, [$c671] + ld a, [EnemySubStatus5] bit 3, a jp nz, .Moves @@ -19139,7 +19139,7 @@ LoadEnemyMon: ; 3e8eb ld [hli], a ld [hl], a ; Make sure the predef knows this isn't a partymon - ld [$d1ea], a + ld [MagikarpLength], a ; Fill moves based on level ld a, PREDEF_FILLMOVES call Predef @@ -19211,7 +19211,7 @@ LoadEnemyMon: ; 3e8eb call Predef ld hl, EnemyMonStats - ld de, $c6c1 + ld de, EnemyStats ld bc, EnemyMonStatsEnd - EnemyMonStats call CopyBytes @@ -19628,7 +19628,7 @@ BattleStartMessage ; 3fc8b .asm_3fcc2 ld a, $f - ld hl, $6b38 + ld hl, CheckSleepingTreeMon rst FarCall jr c, .asm_3fceb @@ -20116,8 +20116,8 @@ _KrisMailBoxMenu: ; 0x447a0 call InitMail jr z, .nomail call $1d6e - call $4806 - jp $1c17 + call Function44806 + jp Function1c17 .nomail ld hl, .EmptyMailboxText @@ -20190,8 +20190,8 @@ Function44806: ; 0x44806 ld [$d0f1], a .asm_4480f call InitMail - ld hl, $494c - call $1d3c + ld hl, MenuData4494c + call Function1d3c xor a ld [hBGMapMode], a call $352f @@ -20208,7 +20208,7 @@ Function44806: ; 0x44806 ld a, [$cf73] cp $2 jr z, .asm_44848 - call $484a + call Function4484a jr .asm_4480f .asm_44848 @@ -20218,9 +20218,9 @@ Function44806: ; 0x44806 Function4484a: ; 0x4484a ld hl, MenuData44964 - call $1d35 - call $1d81 - call $1c07 + call Function1d35 + call Function1d81 + call Function1c07 jr c, .asm_44860 ld a, [$cfa9] dec a @@ -20250,7 +20250,7 @@ Function4484a: ; 0x4484a ld hl, .MessageLostText call $1d4f call $1dcf - call $1c07 + call Function1c07 ret c ld a, [MenuSelection] dec a @@ -20300,8 +20300,8 @@ Function4484a: ; 0x4484a .AttachMail ; 0x448d2 call FadeToMenu xor a - ld [$d141], a - call $31f3 + ld [PartyMenuActionText], a + call WhiteBGMap .asm_448dc ld a, $14 ld hl, $404f @@ -20313,13 +20313,13 @@ Function4484a: ; 0x4484a ld hl, $43e0 rst $8 ld a, $14 - ld hl, $405f + ld hl, PickedFruitTree rst $8 ld a, $14 ld hl, $449a rst $8 - call $31f6 - call $32f9 + call WaitBGMap + call Function32f9 call DelayFrame ld a, $14 ld hl, $4457 @@ -20424,7 +20424,7 @@ MainMenu: ; 49cdc call Function49ed0 ld b, $8 call GetSGBLayout - call $32f9 + call Function32f9 ld hl, GameTimerPause res 0, [hl] call Function49da4 @@ -20619,7 +20619,7 @@ Function49da4: ; 49da4 Function49de4: ; 49de4 call SetUpMenu .asm_49de7 - call $5e09 + call Function49e09 ld a, [$cfa5] set 5, a ld [$cfa5], a @@ -20652,7 +20652,7 @@ Function49e09: ; 49e09 ld a, [hl] push af set 4, [hl] - call $5e3d + call Function49e3d pop af ld [Options], a ld a, $1 @@ -20755,9 +20755,9 @@ Function49ed0: ; 49ed0 xor a ld [$ffde], a call ClearTileMap - call $0e5f + call Functione5f call $0e51 - call $1fbf + call Function1fbf ret ; 49ee0 @@ -20811,7 +20811,7 @@ MainMenu_Mobile: ; 49efc ld hl, $c5b9 call PlaceString call Function3200 - call $32f9 + call Function32f9 call $1bc9 ld hl, $cfa9 ld b, [hl] @@ -21843,7 +21843,7 @@ EggStatsScreen: ; 4e33a ld de, FiveQMarkString hlcoord 11, 5 ; $c50f call PlaceString - ld a, [$d129] ; egg status + ld a, [TempMonHappiness] ; egg status ld de, EggSoonString cp $6 jr c, .picked @@ -21859,8 +21859,8 @@ EggStatsScreen: ; 4e33a call PlaceString ld hl, $cf64 set 5, [hl] - call $32f9 ; pals - call $045a + call Function32f9 ; pals + call DelayFrame ld hl, TileMap call $3786 ld a, $41 @@ -21924,12 +21924,12 @@ Function4ea82: ; 4ea82 ld de, $d000 ld hl, VTiles2 ld bc, Text_1354 - call $0f82 + call Functionf82 ld de, $4200 ld hl, VTiles1 ld bc, $3e80 - call $0f9d - call $6ac5 + call Functionf9d + call Function4eac5 call WaitBGMap .asm_4eac0 call DelayFrame @@ -21937,17 +21937,17 @@ Function4ea82: ; 4ea82 ; 4eac5 Function4eac5: ; 4eac5 - call $6aea + call Function4eaea ld hl, $c4cb ld b, $e ld c, $4 ld a, $8 - call $6b27 + call Function4eb27 ld hl, $c51d ld b, $a ld c, $2 ld a, $40 - call $6b27 + call Function4eb27 ld de, $6b38 ld hl, $c569 call PlaceString @@ -21959,19 +21959,19 @@ Function4eaea: ; 4eaea ld [hl], $0 inc hl ld a, $1 - call $6b15 + call Function4eb15 ld [hl], $2 ld hl, $c4b4 ld a, $3 - call $6b1c + call Function4eb1c ld hl, $c4c7 ld a, $4 - call $6b1c + call Function4eb1c ld hl, $c5f4 ld [hl], $5 inc hl ld a, $6 - call $6b15 + call Function4eb15 ld [hl], $7 ret ; 4eb15 @@ -22317,7 +22317,7 @@ GetGender: ; 50bdd jr z, .BoxMon ; 3: Unknown - ld hl, $d123 ; DVBuffer + ld hl, TempMonDVs ; DVBuffer dec a jr z, .DVs @@ -22424,7 +22424,7 @@ DecompressPredef: ; 5125d pop hl ld a, [hROMBank] ld b, a - call $f82 + call Functionf82 pop af ld [rSVBK], a @@ -23004,7 +23004,7 @@ TrySurfStep: ; 801c0 jr c, .asm_801f1 call Function80341 - ld [$d03f], a + ld [CurFruit], a and a jr z, .asm_801f1 cp 2 @@ -23851,7 +23851,7 @@ INCBIN "baserom.gbc", $8640b, $8640e - $8640b HallOfFame3: ; 0x8640e call $648e - ld a, [$d84c] + ld a, [StatusFlags] push af ld a, $1 ld [$c2cd], a @@ -23860,7 +23860,7 @@ HallOfFame3: ; 0x8640e ld [$d4b5], a ; Enable the Pokégear map to cycle through all of Kanto - ld hl, $d84c + ld hl, StatusFlags set 6, [hl] ld a, $5 @@ -23911,12 +23911,12 @@ MovePlayerPic: ; 0x88266 push hl push de xor a - ld [$ffd4], a + ld [hBGMapMode], a ld bc, $0707 ld a, $13 call Predef xor a - ld [$ffd5], a + ld [hBGMapThird], a call WaitBGMap call DelayFrame pop de @@ -24003,7 +24003,7 @@ DrawIntroPlayerPic: ; 88874 ld hl, VTiles2 ld b, BANK(ChrisPic) ld c, $31 - call $f82 + call Functionf82 ; Draw xor a @@ -24030,7 +24030,7 @@ GetKrisBackpic: ; 88ec9 ld de, KrisBackpic ld hl, $9310 ld bc, $2231 - call $f82 + call Functionf82 ret ; 88ed6 @@ -24271,7 +24271,7 @@ _TimeOfDayPals: ; 8c011 ; restore bg palette 8 - ld hl, $d03f ; last byte in Unkn1Pals + ld hl, CurFruit ; last byte in Unkn1Pals ; save wram bank ld a, [rSVBK] @@ -24607,7 +24607,7 @@ Function8cf69: ; 8cf69 push af ld a, $0 ld [$c3b5], a - call $4f7a + call Function8cf7a pop af pop bc pop de @@ -24626,8 +24626,8 @@ Function8cf7a: ; 8cf7a ld b, h push hl push de - call $524b - call $504c + call Function8d24b + call Function8d04c pop de pop hl jr c, .asm_8cfa7 @@ -24704,7 +24704,7 @@ Function8cfd6: ; 8cfd6 ld [hli], a inc de ld a, [de] - call $5109 + call Function8d109 ld [hli], a pop de ld hl, $0004 @@ -24745,13 +24745,13 @@ INCBIN "baserom.gbc", $8d03d, $8d04c - $8d03d Function8d04c: ; 8d04c - call $50ec - call $5132 + call Function8d0ec + call Function8d132 cp $fd jr z, .asm_8d0b9 cp $fc jr z, .asm_8d0b6 - call $51a2 + call Function8d1a2 ld a, [$c3ba] add [hl] ld [$c3ba], a @@ -24774,7 +24774,7 @@ Function8d04c: ; 8d04c ld a, [$c3bf] add b ld b, a - call $50be + call Function8d0be add b ld [de], a inc hl @@ -24787,7 +24787,7 @@ Function8d04c: ; 8d04c ld a, [$c3c0] add b ld b, a - call $50ce + call Function8d0ce add b ld [de], a inc hl @@ -24797,7 +24797,7 @@ Function8d04c: ; 8d04c ld [de], a inc hl inc de - call $50de + call Function8d0de ld [de], a inc hl inc de @@ -24811,7 +24811,7 @@ Function8d04c: ; 8d04c jr .asm_8d0b9 .asm_8d0b6 - call $5036 + call Function8d036 .asm_8d0b9 and a @@ -24920,7 +24920,7 @@ Function8d132: ; 8d132 and a jr z, .asm_8d142 dec [hl] - call $5189 + call Function8d189 ld a, [hli] push af jr .asm_8d163 @@ -24929,7 +24929,7 @@ Function8d132: ; 8d132 ld hl, $000a add hl, bc inc [hl] - call $5189 + call Function8d189 ld a, [hli] cp $fe jr z, .asm_8d17b @@ -25105,8 +25105,8 @@ GetIcon: ; 8ea1e GetGFXUnlessMobile: ; 8ea3f ld a, [InLinkBattle] cp 4 ; Mobile Link Battle - jp nz, $eba - jp $dc9 + jp nz, Functioneba + jp Functiondc9 ; 8ea4a INCBIN "baserom.gbc", $8ea4a, $8eab3 - $8ea4a @@ -25726,7 +25726,7 @@ FlyMap: ; 91c90 call TownMapBubble call TownMapPals - ld hl, $9800 ; BG Map 0 + ld hl, VBGMap0 ; BG Map 0 call TownMapBGUpdate call TownMapMon @@ -25873,7 +25873,7 @@ TownMapMon: ; 91f7b ; Animation/palette ld de, $0000 ld a, $0 - call $3b2a + call Function3b2a ld hl, 3 add hl, bc @@ -25893,7 +25893,7 @@ TownMapPlayerIcon: ; 91fa6 ; Standing icon ld hl, $8100 ld c, 4 ; # tiles - call $eba + call Functioneba ; Walking icon ld hl, $00c0 @@ -25903,7 +25903,7 @@ TownMapPlayerIcon: ; 91fa6 ld hl, $8140 ld c, 4 ; # tiles ld a, $30 - call $eba + call Functioneba ; Animation/palette ld de, $0000 @@ -25915,7 +25915,7 @@ TownMapPlayerIcon: ; 91fa6 .asm_91fd3 ld a, b - call $3b2a + call Function3b2a ld hl, $0003 add hl, bc @@ -26114,7 +26114,7 @@ Function96724: ; 96724 ld a, $4 ld hl, $53e5 rst FarCall - call $092f + call ClearJoypadPublic ; fallthrough ; 9673e @@ -26509,7 +26509,7 @@ Function9693a: ; 9693a bit 2, [hl] jr z, .asm_96951 ld a, $4 - ld hl, $54a4 + ld hl, Route7_SecondMapHeader rst FarCall jr c, .asm_96966 xor a @@ -26609,7 +26609,7 @@ TryObjectEvent: ; 969b5 .IsObject call PlayTalkObject ld a, [hConnectedMapWidth] - call $1ae5 + call Function1ae5 ld hl, $0001 add hl, bc ld a, [hl] @@ -27346,7 +27346,7 @@ Function97cc0: ; 97cc0 .asm_97ced ld a, $4 - ld hl, $75eb + ld hl, Script_dotrigger jr .asm_97cf4 .asm_97cf4 @@ -27440,7 +27440,7 @@ Function97d31: ; 97d31 Function97d64: ; 97d64 ld a, [StandingTile] - call $188e + call Function188e ld b, $66 jr z, .asm_97d70 ld b, $33 @@ -29263,14 +29263,14 @@ Functionb8219: ; b8219 ; deals strictly with rockmon encounter xor a ld [$d22e], a - ld [$d143], a + ld [CurPartyLevel], a ld hl, WildRockMonMapTable call GetTreeMonEncounterTable jr nc, .quit call LoadWildTreeMonData jr nc, .quit ld a, $0a - call $2fb1 + call Function2fb1 cp a, $04 jr nc, .quit call $441f @@ -29691,13 +29691,13 @@ UnknownScript_0xbcee7: ; 0xbcee7 .violet ; 0xbcf15 displaylocation $7 ; sprout tower - 3call $3, $4edf + 3call $3, UnknownScript_0xbcedf .azalea ; 0xbcf1b displaylocation $d ; slowpoke well - 3call $3, $4edf + 3call $3, UnknownScript_0xbcedf .goldenrod ; 0xbcf21 displaylocation $11 ; radio tower - 3call $3, $4edf + 3call $3, UnknownScript_0xbcedf 3writetext $6d, $411c keeptextopen 2jump UnknownScript_0xbcf37 @@ -30161,7 +30161,7 @@ Functione4579: ; e4579 call WaitBGMap ld b, $19 call GetSGBLayout - call $32f9 + call Function32f9 ld c, $a call DelayFrames ld hl, $63e2 @@ -30174,16 +30174,16 @@ Functione4579: ; e4579 ld a, $13 ld hl, $6a82 rst FarCall - call $45e8 + call Functione45e8 .asm_e45c0 - call $0a57 + call Functiona57 ld a, [$ffa9] and $f jr nz, .asm_e45de ld a, [$cf63] bit 7, a jr nz, .asm_e45e3 - call $4670 + call Functione4670 ld a, $23 ld hl, $4f69 rst FarCall @@ -30191,12 +30191,12 @@ Functione4579: ; e4579 jr .asm_e45c0 .asm_e45de - call $465e + call Functione465e scf ret .asm_e45e3 - call $465e + call Functione465e and a ret ; e45e8 @@ -30205,7 +30205,7 @@ Functione45e8: ; e45e8 ld de, $47cc ld hl, VTiles2 ld bc, $391c - call $0f9d + call Functionf9d ld a, [rSVBK] push af ld a, $6 @@ -30217,11 +30217,11 @@ Functione45e8: ; e45e8 ld hl, VTiles0 ld de, $d000 ld bc, $0180 - call $0eba + call Functioneba ld hl, VTiles1 ld de, $d800 ld bc, $0180 - call $0eba + call Functioneba pop af ld [rSVBK], a ld a, $23 @@ -30229,7 +30229,7 @@ Functione45e8: ; e45e8 rst FarCall ld de, $5458 ld a, $3 - call $3b2a + call Function3b2a ld hl, $0007 add hl, bc ld [hl], $a0 @@ -30602,28 +30602,28 @@ Functionfb48a: ; fb48a ld de, $5214 ld hl, $9600 ld bc, $3e01 - call $0ddc + call Functionddc ld de, $4f24 ld hl, $9620 ld bc, $3e01 - call $0dc9 + call Functiondc9 ld de, $4030 ld hl, $9630 ld bc, $3e16 - call $0dc9 + call Functiondc9 jr .asm_fb4cc ld de, $5424 ld hl, $9610 ld b, $3e ld c, $1 - call $0dc9 + call Functiondc9 ret ld de, $4600 ld hl, $9600 ld bc, $3e19 - call $0dc9 + call Functiondc9 jr .asm_fb4cc .asm_fb4cc @@ -30636,11 +30636,11 @@ Functionfb48a: ; fb48a ld e, l ld hl, $9790 ld bc, $3e06 - call $0ddc + call Functionddc ld hl, $97f0 ld de, $5204 ld bc, $3e01 - call $0ddc + call Functionddc ret ; fb4f2 @@ -30705,7 +30705,7 @@ DoWeatherModifiers: ; fbda4 .ApplyModifier xor a - ld [$ffb4], a + ld [hMultiplicand], a ld hl, CurDamage ld a, [hli] ld [$ffb5], a @@ -30714,16 +30714,16 @@ DoWeatherModifiers: ; fbda4 inc de ld a, [de] - ld [$ffb7], a + ld [hMultiplier], a call Multiply ld a, 10 - ld [$ffb7], a + ld [hMultiplier], a ld b, $4 call Divide - ld a, [$ffb4] + ld a, [hMultiplicand] and a ld bc, $ffff jr nz, .Update @@ -30931,13 +30931,13 @@ Tileset25Anim: ; 0xfc047 Tileset31Anim: ; 0xfc073 ; param, function - dw $0000, $445c - dw $0000, $44c4 + dw $0000, ForestTreeLeftAnimation + dw $0000, ForestTreeRightAnimation dw $0000, WaitTileAnimation dw $0000, WaitTileAnimation dw $0000, WaitTileAnimation - dw $0000, $44f2 - dw $0000, $451c + dw $0000, ForestTreeLeftAnimation2 + dw $0000, ForestTreeRightAnimation2 dw $0000, AnimateFlowerTile dw $9140, AnimateWaterTile dw $0000, TileAnimationPalette @@ -30997,46 +30997,46 @@ INCBIN "baserom.gbc", $fc17f, $fc1e7-$fc17f Tileset24Anim: ; 0xfc1e7 Tileset30Anim: ; 0xfc1e7 ; param, function - dw $9140, $46a2 + dw $9140, WriteTileToBuffer dw $0000, $471e dw $cf41, ScrollTileRightLeft dw $0000, $471e - dw $9140, $4696 + dw $9140, WriteTileFromBuffer dw $0000, $471e dw $0000, TileAnimationPalette dw $0000, $471e - dw $9400, $46a2 + dw $9400, WriteTileToBuffer dw $0000, $471e - dw $cf41, $436a + dw $cf41, ScrollTileDown dw $0000, $471e - dw $cf41, $436a + dw $cf41, ScrollTileDown dw $0000, $471e - dw $cf41, $436a + dw $cf41, ScrollTileDown dw $0000, $471e - dw $9400, $4696 + dw $9400, WriteTileFromBuffer dw $0000, $471e dw $0000, DoneTileAnimation ; 0xfc233 Tileset29Anim: ; 0xfc233 ; param, function - dw $9350, $46a2 + dw $9350, WriteTileToBuffer dw $0000, $471e dw $cf41, ScrollTileRightLeft dw $0000, $471e - dw $9350, $4696 + dw $9350, WriteTileFromBuffer dw $0000, $471e dw $0000, TileAnimationPalette dw $0000, $471e - dw $9310, $46a2 + dw $9310, WriteTileToBuffer dw $0000, $471e - dw $cf41, $436a + dw $cf41, ScrollTileDown dw $0000, $471e - dw $cf41, $436a + dw $cf41, ScrollTileDown dw $0000, $471e - dw $cf41, $436a + dw $cf41, ScrollTileDown dw $0000, $471e - dw $9310, $4696 + dw $9310, WriteTileFromBuffer dw $0000, $471e dw $0000, DoneTileAnimation ; 0xfc27f @@ -31740,7 +31740,7 @@ TileAnimationPalette: ; fc6d7 ret z ; We don't want to mess with non-standard palettes. - ld a, [$ff47] ; BGP + ld a, [rBGP] ; BGP cp %11100100 ret nz @@ -31982,7 +31982,7 @@ Function104284: ; 104284 ld d, h ld e, l ld hl, $d000 - call $4209 + call Function104209 pop af ld [rSVBK], a ret @@ -31992,13 +31992,13 @@ Function1042b2: ; 1042b2 .asm_1042b2 ld a, c cp $10 - jp c, $42d6 - jp z, $42d6 + jp c, Function1042d6 + jp z, Function1042d6 push bc push hl push de ld c, $10 - call $42d6 + call Function1042d6 pop de ld hl, $0080 add hl, de @@ -32032,7 +32032,7 @@ Function1042d6: ; 1042d6 ld h, d ld l, e ld de, $d000 - call $0def + call Functiondef pop hl pop bc push bc @@ -32041,7 +32041,7 @@ Function1042d6: ; 1042d6 ld d, h ld e, l ld hl, $d000 - call $4209 + call Function104209 pop af ld [rSVBK], a ret @@ -32274,7 +32274,7 @@ UsedMoveText: ; 105db9 ; everything except 'instead' made redundant in localization ; check obedience - ld a, [$c6f4] + ld a, [AlreadyDisobeyed] and a ld hl, UsedMove2Text ret nz @@ -32301,7 +32301,7 @@ UsedMove2Text: ; 105e0b Function105e10: ; 105e10 ; check obedience - ld a, [$c6f4] + ld a, [AlreadyDisobeyed] and a jr z, GetMoveNameText ; print "instead," @@ -32638,12 +32638,12 @@ StartTitleScreen: ; 10ed67 ; Decompress running Suicune gfx ld hl, TitleSuicuneGFX - ld de, $8800 - call $0b50 + ld de, VTiles1 + call Decompress ; Clear screen palettes - ld hl, $9800 + ld hl, VBGMap0 ld bc, $0280 xor a call ByteFill @@ -32654,7 +32654,7 @@ StartTitleScreen: ; 10ed67 ; BG Map 1: ; line 0 (copyright) - ld hl, $9c00 + ld hl, VBGMap1 ld bc, $0020 ; one row ld a, 7 ; palette call ByteFill @@ -32711,17 +32711,17 @@ StartTitleScreen: ; 10ed67 ; Decompress logo ld hl, TitleLogoGFX - ld de, $8800 - call $0b50 + ld de, VTiles1 + call Decompress ; Decompress background crystal ld hl, TitleCrystalGFX - ld de, $8000 - call $0b50 + ld de, VTiles0 + call Decompress ; Clear screen tiles - ld hl, $9800 + ld hl, VBGMap0 ld bc, $0800 ld a, $7f call ByteFill @@ -32742,10 +32742,10 @@ StartTitleScreen: ; 10ed67 ; Initialize running Suicune? ld d, $0 - call $6ed2 + call Function10eed2 ; Initialize background crystal - call $6f06 + call Function10ef06 ; Save WRAM bank ld a, [rSVBK] @@ -32812,7 +32812,7 @@ StartTitleScreen: ; 10ed67 ; Reset audio call ChannelsOff - call $058a + call EnableLCD ; Set sprite size to 8x16 ld a, [rLCDC] @@ -32836,7 +32836,7 @@ StartTitleScreen: ; 10ed67 ld [hBGMapMode], a xor a - ld [$d002], a + ld [DefaultFlypoint], a ; Play starting sound effect call SFXChannelsOff @@ -32864,7 +32864,7 @@ Function10eea7: ; 10eea7 ld d, [hl] xor a ld [hBGMapMode], a - call $6ed2 + call Function10eed2 ld a, $1 ld [hBGMapMode], a ld a, $3 @@ -32931,7 +32931,7 @@ Function10ef06: ; 10ef06 ld c, $5 .asm_10ef0f push bc - call $6f1c + call Function10ef1c pop bc ld a, $10 add d @@ -33163,7 +33163,7 @@ Function117ab4: ; 0x117ab4 ; 0x117acd Function117acd: ; 0x117acd - call $0a57 + call Functiona57 ld a, [$cf63] bit 7, a jr nz, .asm_117ae2 ; 0x117ad5 $b @@ -33360,7 +33360,7 @@ Function117bb6: ld [rSVBK], a ld a, $7 call GetSRAMBank - ld hl, $d002 + ld hl, DefaultFlypoint ld de, $b000 ld bc, $1000 call CopyBytes @@ -34363,7 +34363,7 @@ Function17f036: ; 17f036 call GetSRAMBank inc de .asm_17f03c - call $7047 + call Function17f047 jr c, .asm_17f043 jr .asm_17f03c From 45f52b0f71ee05a9d24e2acdf982a1634fefab47 Mon Sep 17 00:00:00 2001 From: yenatch Date: Thu, 25 Jul 2013 21:20:19 -0400 Subject: [PATCH 13/84] Remove erroneous TileX/Y labels --- main.asm | 4 ++-- wram.asm | 7 ------- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/main.asm b/main.asm index ecf5f8034..0cdc61695 100644 --- a/main.asm +++ b/main.asm @@ -3319,10 +3319,10 @@ Function1c47: ; 0x1c47 Function1c53: ; 0x1c53 ld a, [$cf82] ld b, a - ld a, [TileX] + ld a, [$cf84] sub b ld b, a - ld a, [TileY] + ld a, [$cf83] ld c, a ld a, [$cf85] sub c diff --git a/wram.asm b/wram.asm index 3cce27407..76bcc784d 100644 --- a/wram.asm +++ b/wram.asm @@ -837,13 +837,6 @@ CurSpecies: ; cf60 MenuSelection:; cf74 ds 1 - ds 14 - -TileY: ; cf82 - ds 1 -TileX: ; cf83 - ds 1 - SECTION "VBlank",BSS[$cfb1] From bdd31cb8c5d2b986684a1e595985773d18e82437 Mon Sep 17 00:00:00 2001 From: yenatch Date: Thu, 25 Jul 2013 21:30:48 -0400 Subject: [PATCH 14/84] fix replaced label comment --- main.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.asm b/main.asm index 0cdc61695..e7ea79f22 100644 --- a/main.asm +++ b/main.asm @@ -3465,7 +3465,7 @@ Function1ff0: ; 1ff0 INCBIN "baserom.gbc", $1ff8, $2009 - $1ff8 -PlayClickSFX: ; PlayClickSFX +PlayClickSFX: ; 2009 push de ld de, SFX_READ_TEXT_2 call StartSFX From be0af35e3f98d2d546571eca85df80cfa8133a3d Mon Sep 17 00:00:00 2001 From: yenatch Date: Fri, 26 Jul 2013 22:19:26 -0400 Subject: [PATCH 15/84] over a million hours in gedit --- main.asm | 15555 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 15437 insertions(+), 118 deletions(-) diff --git a/main.asm b/main.asm index e7ea79f22..413bd04e5 100644 --- a/main.asm +++ b/main.asm @@ -276,7 +276,39 @@ Function485: ; 485 ret ; 48c -INCBIN "baserom.gbc", $48c, $52f - $48c +INCBIN "baserom.gbc", $48c, $4b6 - $48c + + +Function4b6: ; 4b6 + ld a, [hCGB] + and a + jr z, .asm_4c2 + ld hl, $0526 + ld b, $3 + jr .asm_4c7 + +.asm_4c2 + ld hl, $053e + ld b, $3 + +.asm_4c7 + push de + ld a, [hli] + call DmgToCgbBGPals + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + call DmgToCgbObjPals + ld c, $8 + call DelayFrames + pop de + dec b + jr nz, .asm_4c7 + ret +; 4dd + +INCBIN "baserom.gbc", $4dd, $52f - $4dd IncGradGBPalTable_01: ; 52f @@ -314,7 +346,31 @@ IncGradGBPalTable_01: ; 52f ; 547 -INCBIN "baserom.gbc", $547, $568 - $547 +INCBIN "baserom.gbc", $547, $552 - $547 + + +Function552: ; 552 + push af + ld a, [hLCDStatCustom] + and a + jr z, .asm_566 + push bc + ld a, [rLY] + ld c, a + ld b, $d1 + ld a, [bc] + ld b, a + ld a, [hLCDStatCustom] + ld c, a + ld a, b + ld [$ff00+c], a + pop bc + +.asm_566 + pop af + reti +; 568 + DisableLCD: ; 568 @@ -552,7 +608,29 @@ FixTime: ; 61d ret ; 658 -INCBIN "baserom.gbc", $658, $67e - $658 +Function658: ; 658 + xor a + ld [StringBuffer2], a + ld a, $0 + ld [$d089], a + jr .asm_677 + + call UpdateTime + ld a, [hHours] + ld [$d087], a + ld a, [hMinutes] + ld [$d088], a + ld a, [hSeconds] + ld [$d089], a + jr .asm_677 + +.asm_677 + ld a, $5 + ld hl, $40ed + rst FarCall + ret +; 67e + Function67e: ; 67e @@ -635,13 +713,385 @@ Function6d3: ; 6d3 ret ; 6e3 -INCBIN "baserom.gbc", $6e3, $92e - $6e3 +Function6e3: ; 6e3 + ld a, $0 + call GetSRAMBank + ld a, [$ac60] + call CloseSRAM + ret +; 6ef + + + +Function6ef: ; 6ef + push af + push bc + push de + push hl + ld a, [$ffc9] + and a + jr nz, .asm_71c + ld a, [$c2d4] + bit 0, a + jr nz, .asm_721 + ld a, [$ffcb] + inc a + jr z, .asm_726 + ld a, [rSB] + ld [$ffce], a + ld a, [$ffcd] + ld [rSB], a + ld a, [$ffcb] + cp $2 + jr z, .asm_752 + ld a, $0 + ld [rSC], a + ld a, $80 + ld [rSC], a + jr .asm_752 + +.asm_71c + call $3e80 + jr .asm_75a + +.asm_721 + call $2057 + jr .asm_75a + +.asm_726 + ld a, [rSB] + cp $1 + jr z, .asm_730 + cp $2 + jr nz, .asm_752 + +.asm_730 + ld [$ffce], a + ld [$ffcb], a + cp $2 + jr z, .asm_74f + xor a + ld [rSB], a + ld a, $3 + ld [rDIV], a +.asm_73f + ld a, [rDIV] + bit 7, a + jr nz, .asm_73f + ld a, $0 + ld [rSC], a + ld a, $80 + ld [rSC], a + jr .asm_752 + +.asm_74f + xor a + ld [rSB], a + +.asm_752 + ld a, $1 + ld [$ffca], a + ld a, $fe + ld [$ffcd], a + +.asm_75a + pop hl + pop de + pop bc + pop af + reti +; 75f + +Function75f: ; 75f + ld a, $1 + ld [$ffcc], a +.asm_763 + ld a, [hl] + ld [$ffcd], a + call $078a + push bc + ld b, a + inc hl + ld a, $30 +.asm_76e + dec a + jr nz, .asm_76e + ld a, [$ffcc] + and a + ld a, b + pop bc + jr z, .asm_782 + dec hl + cp $fd + jr nz, .asm_763 + xor a + ld [$ffcc], a + jr .asm_763 + +.asm_782 + ld [de], a + inc de + dec bc + ld a, b + or c + jr nz, .asm_763 + ret +; 78a + +Function78a: ; 78a + xor a + ld [$ffca], a + ld a, [$ffcb] + cp $2 + jr nz, .asm_79b + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + +.asm_79b + ld a, [$ffca] + and a + jr nz, .asm_7e5 + ld a, [$ffcb] + cp $1 + jr nz, .asm_7c0 + call $082b + jr z, .asm_7c0 + call $0825 + push hl + ld hl, $cf5c + inc [hl] + jr nz, .asm_7b7 + dec hl + inc [hl] + +.asm_7b7 + pop hl + call $082b + jr nz, .asm_79b + jp $0833 + +.asm_7c0 + ld a, [rIE] + and $f + cp $8 + jr nz, .asm_79b + ld a, [$cf5d] + dec a + ld [$cf5d], a + jr nz, .asm_79b + ld a, [$cf5e] + dec a + ld [$cf5e], a + jr nz, .asm_79b + ld a, [$ffcb] + cp $1 + jr z, .asm_7e5 + ld a, $ff +.asm_7e2 + dec a + jr nz, .asm_7e2 + +.asm_7e5 + xor a + ld [$ffca], a + ld a, [rIE] + and $f + sub $8 + jr nz, .asm_7f8 + ld [$cf5d], a + ld a, $50 + ld [$cf5e], a + +.asm_7f8 + ld a, [$ffce] + cp $fe + ret nz + call $082b + jr z, .asm_813 + push hl + ld hl, $cf5c + ld a, [hl] + dec a + ld [hld], a + inc a + jr nz, .asm_80d + dec [hl] + +.asm_80d + pop hl + call $082b + jr z, .asm_833 + +.asm_813 + ld a, [rIE] + and $f + cp $8 + ld a, $fe + ret z + ld a, [hl] + ld [$ffcd], a + call DelayFrame + jp $078a + + ld a, $f +.asm_827 + dec a + jr nz, .asm_827 + ret + + push hl + ld hl, $cf5b + ld a, [hli] + or [hl] + pop hl + ret + +.asm_833 + dec a + ld [$cf5b], a + ld [$cf5c], a + ret +; 83b + +INCBIN "baserom.gbc", $83b, $87d - $83b + + +Function87d: ; 87d + ld a, $ff + ld [$cf52], a +.asm_882 + call $08c1 + call DelayFrame + call $082b + jr z, .asm_89e + push hl + ld hl, $cf5c + dec [hl] + jr nz, .asm_89d + dec hl + dec [hl] + jr nz, .asm_89d + pop hl + xor a + jp $0833 + +.asm_89d + pop hl + +.asm_89e + ld a, [$cf52] + inc a + jr z, .asm_882 + ld b, $a +.asm_8a6 + call DelayFrame + call $08c1 + dec b + jr nz, .asm_8a6 + ld b, $a +.asm_8b1 + call DelayFrame + call $0908 + dec b + jr nz, .asm_8b1 + ld a, [$cf52] + ld [$cf51], a + ret +; 8c1 + +Function8c1: ; 8c1 + push bc + ld b, $60 + ld a, [InLinkBattle] + cp $1 + jr z, .asm_8d7 + ld b, $60 + jr c, .asm_8d7 + cp $2 + ld b, $70 + jr z, .asm_8d7 + ld b, $80 + +.asm_8d7 + call $08f3 + ld a, [$cf56] + add b + ld [$ffcd], a + ld a, [$ffcb] + cp $2 + jr nz, .asm_8ee + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + +.asm_8ee + call $08f3 + pop bc + ret +; 8f3 + +Function8f3: ; 8f3 + ld a, [$ffce] + ld [$cf51], a + and $f0 + cp b + ret nz + xor a + ld [$ffce], a + ld a, [$cf51] + and $f + ld [$cf52], a + ret +; 908 + +Function908: ; 908 + xor a + ld [$ffcd], a + ld a, [$ffcb] + cp $2 + ret nz + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + ret +; 919 + +INCBIN "baserom.gbc", $919, $92e - $919 INCLUDE "engine/joypad.asm" -INCBIN "baserom.gbc", $a1b, $a57 - $a1b +INCBIN "baserom.gbc", $a1b, $a36 - $a1b + + +Functiona36: ; a36 +.asm_a36 + call DelayFrame + call GetJoypadPublic + ld a, [hJoyPressed] + and $3 + ret nz + call RTC + jr .asm_a36 +; a46 + +Functiona46: ; a46 + ld a, [hOAMUpdate] + push af + ld a, $1 + ld [hOAMUpdate], a + call WaitBGMap + call $0a36 + pop af + ld [hOAMUpdate], a + ret +; a57 + Functiona57: ; a57 @@ -1328,7 +1778,30 @@ CopyPals: ; d50 ; d79 -INCBIN "baserom.gbc", $d79, $dc9 - $d79 +INCBIN "baserom.gbc", $d79, $d90 - $d79 + + +Functiond90: ; d90 + ret +; d91 + +INCBIN "baserom.gbc", $d91, $db1 - $d91 + + +Functiondb1: ; db1 + ld a, [hROMBank] + push af + ld a, $13 + rst Bankswitch + + call $4000 + pop af + rst Bankswitch + + ret +; dbd + +INCBIN "baserom.gbc", $dbd, $dc9 - $dbd Functiondc9: ; dc9 @@ -1377,7 +1850,32 @@ Functiondef: ; def ret ; dfd -INCBIN "baserom.gbc", $dfd, $e5f - $dfd +INCBIN "baserom.gbc", $dfd, $e4a - $dfd + + +Functione4a: ; e4a + ld a, $5 + ld hl, $4135 + rst FarCall + ret +; e51 + + + +Functione51: ; e51 + ld a, $3e + ld hl, $7449 + rst FarCall + ret +; e58 + +Functione58: ; e58 + ld a, $3e + ld hl, $74be + rst FarCall + ret +; e5f + Functione5f: ; e5f @@ -1789,7 +2287,15 @@ PrintTextBoxText: ; 1065 ; 106c -INCBIN "baserom.gbc", $106c, $1078 - $106c +Function106c: ; 106c + push hl + call SpeechTextBox + call $1ad2 + call $321c + pop hl + ret +; 1078 + PlaceString: ; 1078 @@ -2350,7 +2856,47 @@ Function13cd: ; 13cd ret ; 13d4 -INCBIN "baserom.gbc", $13d4, $15d8 - $13d4 +INCBIN "baserom.gbc", $13d4, $13e5 - $13d4 + + +Function13e5: ; 13e5 + ld a, [$cfcf] + push af + set 1, a + ld [$cfcf], a + call $13f6 + pop af + ld [$cfcf], a + ret +; 13f6 + +Function13f6: ; 13f6 +.asm_13f6 + ld a, [hli] + cp $50 + ret z + call $13ff + jr .asm_13f6 +; 13ff + +Function13ff: ; 13ff + push hl + push bc + ld c, a + ld b, $0 + ld hl, $1410 + add hl, bc + add hl, bc + ld e, [hl] + inc hl + ld d, [hl] + pop bc + pop hl + push de + ret +; 1410 + +INCBIN "baserom.gbc", $1410, $15d8 - $1410 DMATransfer: ; 15d8 ; DMA transfer @@ -2961,7 +3507,56 @@ SafeTileAnimation: ; 17d3 ; 17ff -INCBIN "baserom.gbc", $17ff, $185d - $17ff +Function17ff: ; 17ff + push hl + push de + push bc + ld c, a + callba GetSpritePalette + ld a, c + pop bc + pop de + pop hl + ret +; 180e + +Function180e: ; 180e + push hl + push bc + ld hl, $d156 + ld c, $1f + ld b, a + ld a, [hConnectionStripLength] + cp $0 + jr z, .asm_182b + ld a, b +.asm_181d + cp [hl] + jr z, .asm_1830 + inc hl + inc hl + dec c + jr nz, .asm_181d + ld a, [$d155] + scf + jr .asm_1833 + +.asm_182b + ld a, [$d155] + jr .asm_1833 + +.asm_1830 + inc hl + xor a + ld a, [hl] + +.asm_1833 + pop bc + pop hl + ret +; 1836 + +INCBIN "baserom.gbc", $1836, $185d - $1836 GetTileType: ; 185d @@ -3078,7 +3673,103 @@ GetMapObject: ; 18d2 ; 18de -INCBIN "baserom.gbc", $18de, $1a13 - $18de +Function18de: ; 18de + ld [hConnectionStripLength], a + call GetMapObject + ld hl, $0000 + add hl, bc + ld a, [hl] + cp $ff + jr z, .asm_18f3 + ld [hConnectedMapWidth], a + call Function1ae5 + and a + ret + +.asm_18f3 + scf + ret +; 18f5 + +INCBIN "baserom.gbc", $18f5, $1956 - $18f5 + + +Function1956: ; 1956 + ld [hConnectionStripLength], a + call $271e + ld a, [hConnectionStripLength] + call GetMapObject + ld a, $2 + ld hl, $40e7 + rst FarCall + ret +; 1967 + +Function1967: ; 1967 + ld [hConnectionStripLength], a + call GetMapObject + ld hl, $0000 + add hl, bc + ld a, [hl] + cp $ff + ret z + ld [hl], $ff + push af + call $1985 + pop af + call Function1ae5 + callba Function4357 + ret +; 1985 + +Function1985: ; 1985 + ld hl, $d4cd + cp [hl] + jr z, .asm_1990 + ld hl, $d4ce + cp [hl] + ret nz + +.asm_1990 + callba Function581f + ld a, $ff + ld [$d4cd], a + ld [$d4ce], a + ret +; 199f + +Function199f: ; 199f + call $1967 + call $2712 + ret +; 19a6 + +INCBIN "baserom.gbc", $19a6, $19e9 - $19a6 + + +Function19e9: ; 19e9 + ld [$c2e2], a + ld a, [hROMBank] + ld [$c2e3], a + ld a, l + ld [$c2e4], a + ld a, h + ld [$c2e5], a + ld a, [$c2e2] + call $18de + ret c + ld hl, $0003 + add hl, bc + ld [hl], $14 + ld hl, $0009 + add hl, bc + ld [hl], $0 + ld hl, VramState + set 7, [hl] + and a + ret +; 1a13 + Function1a13: ; 1a13 @@ -3220,7 +3911,18 @@ Function1a71: ; 1a71 ret ; 1aae -INCBIN "baserom.gbc", $1aae, $1ae5 - $1aae +INCBIN "baserom.gbc", $1aae, $1ad2 - $1aae + + +Function1ad2: ; 1ad2 + ld a, [VramState] + bit 0, a + ret z + callba Function55e0 + callba Function5920 + ret +; 1ae5 + Function1ae5: ; 1ae5 @@ -3252,7 +3954,83 @@ GetSpriteDirection: ; 1b07 ; 1b0f -INCBIN "baserom.gbc", $1b0f, $1c07 - $1b0f +INCBIN "baserom.gbc", $1b0f, $1bb1 - $1b0f + + +Function1bb1: ; 1bb1 + push hl + push bc + ld hl, $cfa1 + ld b, $8 +.asm_1bb8 + ld a, [de] + inc de + ld [hli], a + dec b + jr nz, .asm_1bb8 + ld a, $1 + ld [hli], a + ld [hli], a + xor a + ld [hli], a + ld [hli], a + ld [hli], a + pop bc + pop hl + ret +; 1bc9 + +Function1bc9: ; 1bc9 + ld hl, $41a8 + ld a, $9 + rst FarCall + call $1bdd + ret +; 1bd3 + +Function1bd3: ; 1bd3 + ld hl, $41ab + ld a, $9 + rst FarCall + call $1bdd + ret +; 1bdd + +Function1bdd: ; 1bdd + push bc + push af + ld a, [$ffa9] + and $f0 + ld b, a + ld a, [hJoyPressed] + and $f + or b + ld b, a + pop af + ld a, b + pop bc + ret +; 1bee + +Function1bee: ; 1bee + ld hl, $cfac + ld a, [hli] + ld h, [hl] + ld l, a + ld [hl], $ec + ret +; 1bf7 + +INCBIN "baserom.gbc", $1bf7, $1c00 - $1bf7 + + +Function1c00: ; 1c00 + ld hl, $4374 + ld a, $9 + rst FarCall + ret +; 1c07 + Function1c07: ; 0x1c07 @@ -3330,7 +4108,169 @@ Function1c53: ; 0x1c53 ret ; 0x1c66 -INCBIN "baserom.gbc", $1c66, $1d35 - $1c66 +Function1c66: ; 1c66 + push hl + push de + push bc + push af + ld hl, $cf86 + ld a, [hli] + ld h, [hl] + ld l, a + ld de, $cf91 + ld bc, $0010 + call CopyBytes + pop af + pop bc + pop de + pop hl + ret +; 1c7e + +Function1c7e: ; 1c7e + ld hl, $cf71 + ld a, [hli] + ld h, [hl] + ld l, a + inc hl + ld a, [hli] + ld h, [hl] + ld l, a + ret +; 1c89 + +Function1c89: ; 1c89 + call $1c66 + ld hl, $cf86 + ld e, [hl] + inc hl + ld d, [hl] + call $1cc6 + call $1d05 + inc de + ld a, [de] + inc de + ld b, a +.asm_1c9c + push bc + call PlaceString + inc de + ld bc, $0028 + add hl, bc + pop bc + dec b + jr nz, .asm_1c9c + ld a, [$cf91] + bit 4, a + ret z + call $1cfd + ld a, [de] + ld c, a + inc de + ld b, $0 + add hl, bc + jp PlaceString +; 1cbb + +Function1cbb: ; 1cbb + call $1cfd + call Function1c53 + dec b + dec c + jp TextBox +; 1cc6 + +Function1cc6: ; 1cc6 + ld a, [$cf82] + ld b, a + inc b + ld a, [$cf83] + ld c, a + inc c + ld a, [$cf91] + bit 6, a + jr nz, .asm_1cd8 + inc b + +.asm_1cd8 + ld a, [$cf91] + bit 7, a + jr z, .asm_1ce0 + inc c + +.asm_1ce0 + ret +; 1ce1 + +Function1ce1: ; 1ce1 + call $1cfd + ld bc, $0015 + add hl, bc + call Function1c53 + dec b + dec c + call ClearBox + ret +; 1cf1 + +Function1cf1: ; 1cf1 + call $1cfd + call Function1c53 + inc c + inc b + call ClearBox + ret +; 1cfd + +INCBIN "baserom.gbc", $1cfd, $1d05 - $1cfd + + +Function1d05: ; 1d05 + xor a + ld h, a + ld l, b + ld a, c + ld b, h + ld c, l + add hl, hl + add hl, hl + add hl, bc + add hl, hl + add hl, hl + ld c, a + xor a + ld b, a + add hl, bc + ld bc, TileMap + add hl, bc + ret +; 1d19 + +Function1d19: ; 1d19 + ld a, [$cf83] + ld c, a + ld a, [$cf82] + ld b, a + xor a + ld h, a + ld l, b + ld a, c + ld b, h + ld c, l + add hl, hl + add hl, hl + add hl, bc + add hl, hl + add hl, hl + ld c, a + xor a + ld b, a + add hl, bc + ld bc, AttrMap + add hl, bc + ret +; 1d35 + Function1d35: ; 0x1d35 call Function1d3c @@ -3346,7 +4286,42 @@ Function1d3c: ; 0x1d3c ret ; 0x1d4b -INCBIN "baserom.gbc", $1d4b, $1d81 - $1d4b +INCBIN "baserom.gbc", $1d4b, $1d4f - $1d4b + + +Function1d4f: ; 1d4f + push hl + call $1d58 + pop hl + jp PrintText +; 1d57 + +INCBIN "baserom.gbc", $1d57, $1d58 - $1d57 + + +Function1d58: ; 1d58 + ld hl, $1d5f + call Function1d35 + ret +; 1d5f + +INCBIN "baserom.gbc", $1d5f, $1d6e - $1d5f + + +Function1d6e: ; 1d6e + ld hl, $1d75 + call Function1d35 + ret +; 1d75 + +INCBIN "baserom.gbc", $1d75, $1d7d - $1d75 + + +Function1d7d: ; 1d7d + call Function1c07 + ret +; 1d81 + Function1d81: ; 0x1d81 xor a @@ -3394,7 +4369,99 @@ Function1db8: ; 0x1db8 ret ; 0x1dcf -INCBIN "baserom.gbc", $1dcf, $1e70 - $1dcf +Function1dcf: ; 1dcf + ld bc, $0e07 + jr .asm_1dd9 + + call Function1d35 + jr .asm_1dfe + +.asm_1dd9 + push bc + ld hl, $1e1d + call Function1d3c + pop bc + ld a, b + cp $e + jr nz, .asm_1de9 + ld a, $e + ld b, a + +.asm_1de9 + ld a, b + ld [$cf83], a + add $5 + ld [$cf85], a + ld a, c + ld [$cf82], a + add $4 + ld [$cf84], a + call $1c00 + +.asm_1dfe + call Function1d81 + push af + ld c, $f + call DelayFrames + call Function1c17 + pop af + jr c, .asm_1e16 + ld a, [$cfa9] + cp $2 + jr z, .asm_1e16 + and a + ret + +.asm_1e16 + ld a, $2 + ld [$cfa9], a + scf + ret +; 1e1d + +INCBIN "baserom.gbc", $1e1d, $1e2e - $1e1d + + +Function1e2e: ; 1e2e + call $1e35 + call $1c00 + ret +; 1e35 + +Function1e35: ; 1e35 + push de + call Function1d3c + pop de + ld a, [$cf83] + ld h, a + ld a, [$cf85] + sub h + ld h, a + ld a, d + ld [$cf83], a + add h + ld [$cf85], a + ld a, [$cf82] + ld l, a + ld a, [$cf84] + sub l + ld l, a + ld a, e + ld [$cf82], a + add l + ld [$cf84], a + ret +; 1e5d + +INCBIN "baserom.gbc", $1e5d, $1e6b - $1e5d + + +Function1e6b: ; 1e6b + dec de + call $1ff8 + ret +; 1e70 + SetUpMenu: ; 1e70 call MenuFunc_1e7f ; ??? @@ -3463,7 +4530,20 @@ Function1ff0: ; 1ff0 ret ; 1ff8 -INCBIN "baserom.gbc", $1ff8, $2009 - $1ff8 +Function1ff8: ; 1ff8 + push af + and $3 + jr z, .asm_2007 + ld hl, $cf81 + bit 3, [hl] + jr nz, .asm_2007 + call PlayClickSFX + +.asm_2007 + pop af + ret +; 2009 + PlayClickSFX: ; 2009 push de @@ -3473,7 +4553,22 @@ PlayClickSFX: ; 2009 ret ; 0x2012 -INCBIN "baserom.gbc", $2012, $2063 - $2012 +INCBIN "baserom.gbc", $2012, $2057 - $2012 + + +Function2057: ; 2057 + ld a, [hROMBank] + push af + ld a, $21 + rst Bankswitch + + call $42db + pop af + rst Bankswitch + + ret +; 2063 + AskSerial: ; 2063 ; send out a handshake while serial int is off @@ -3644,7 +4739,356 @@ UpdateGameTimer: ; 20ad ; 210f -INCBIN "baserom.gbc", $210f, $22ee - $210f +INCBIN "baserom.gbc", $210f, $211b - $210f + + +Function211b: ; 211b + push hl + ld hl, $dbf7 + ld a, [hli] + ld h, [hl] + ld l, a + or h + ld a, [hl] + jr nz, .asm_2128 + ld a, $ff + +.asm_2128 + pop hl + ret +; 212a + +INCBIN "baserom.gbc", $212a, $2147 - $212a + + +Function2147: ; 2147 + push bc + ld a, [hROMBank] + push af + ld a, $13 + rst Bankswitch + + ld hl, $501e +.asm_2151 + push hl + ld a, [hli] + cp $ff + jr z, .asm_2167 + cp b + jr nz, .asm_2160 + ld a, [hli] + cp c + jr nz, .asm_2160 + jr .asm_216a + +.asm_2160 + pop hl + ld de, $0004 + add hl, de + jr .asm_2151 + +.asm_2167 + scf + jr .asm_216d + +.asm_216a + ld e, [hl] + inc hl + ld d, [hl] + +.asm_216d + pop hl + pop bc + ld a, b + rst Bankswitch + + pop bc + ret +; 2173 + +Function2173: ; 2173 + call $217a + call $0db1 + ret +; 217a + +Function217a: ; 217a + ld a, [hROMBank] + push af + ld a, [TileSetBlocksBank] + rst Bankswitch + + call $2198 + ld a, $60 + ld hl, TileMap + ld bc, $0168 + call ByteFill + ld a, $13 + rst Bankswitch + + call $515b + pop af + rst Bankswitch + + ret +; 2198 + +Function2198: ; 2198 + ld a, [$d194] + ld e, a + ld a, [$d195] + ld d, a + ld hl, EnemyMoveAnimation + ld b, $5 + push de + push hl + ld c, $6 + push de + push hl + ld a, [de] + and a + jr nz, .asm_21b2 + ld a, [$d19d] + +.asm_21b2 + ld e, l + ld d, h + add a + ld l, a + ld h, $0 + add hl, hl + add hl, hl + add hl, hl + ld a, [TileSetBlocksAddress] + add l + ld l, a + ld a, [$d1de] + adc h + ld h, a + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, e + add $14 + ld e, a + jr nc, .asm_21d8 + inc d + +.asm_21d8 + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, e + add $14 + ld e, a + jr nc, .asm_21eb + inc d + +.asm_21eb + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, e + add $14 + ld e, a + jr nc, .asm_21fe + inc d + +.asm_21fe + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + pop hl + ld de, $0004 + add hl, de + pop de + inc de + dec c + jp nz, $21a9 + pop hl + ld de, $0060 + add hl, de + pop de + ld a, [$d19f] + add $6 + add e + ld e, a + jr nc, .asm_2225 + inc d + +.asm_2225 + dec b + jp nz, $21a5 + ret +; 222a + +INCBIN "baserom.gbc", $222a, $224a - $222a + + +Function224a: ; 224a + call $2252 + ret nc + call $22a7 + ret +; 2252 + +Function2252: ; 2252 + ld a, $5 + ld hl, $499a + rst FarCall + ret nc + ld a, [hROMBank] + push af + call $2c52 + call $2266 + pop de + ld a, d + rst Bankswitch + + ret +; 2266 + +Function2266: ; 2266 + ld a, [MapY] + sub $4 + ld e, a + ld a, [MapX] + sub $4 + ld d, a + ld a, [$dbfb] + and a + ret z + ld c, a + ld hl, $dbfc + ld a, [hli] + ld h, [hl] + ld l, a +.asm_227e + push hl + ld a, [hli] + cp e + jr nz, .asm_2289 + ld a, [hli] + cp d + jr nz, .asm_2289 + jr .asm_2296 + +.asm_2289 + pop hl + ld a, $5 + add l + ld l, a + jr nc, .asm_2291 + inc h + +.asm_2291 + dec c + jr nz, .asm_227e + xor a + ret + +.asm_2296 + pop hl + call $22a3 + ret nc + ld a, [$dbfb] + inc a + sub c + ld c, a + scf + ret +; 22a3 + +Function22a3: ; 22a3 + inc hl + inc hl + scf + ret +; 22a7 + +Function22a7: ; 22a7 + ld a, [hROMBank] + push af + call $2c52 + call $22b4 + pop af + rst Bankswitch + + scf + ret +; 22b4 + +Function22b4: ; 22b4 + push bc + ld hl, $dbfc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, c + dec a + ld bc, $0005 + call AddNTimes + ld bc, $0002 + add hl, bc + ld a, [hli] + cp $ff + jr nz, .asm_22d0 + ld hl, $dcac + ld a, [hli] + +.asm_22d0 + pop bc + ld [$d146], a + ld a, [hli] + ld [$d147], a + ld a, [hli] + ld [$d148], a + ld a, c + ld [$d149], a + ld a, [MapGroup] + ld [$d14a], a + ld a, [MapNumber] + ld [$d14b], a + scf + ret +; 22ee + CheckOutdoorMap: ; 22ee @@ -3682,7 +5126,59 @@ GetMapConnection: ; 23a3 ; 23ac -INCBIN "baserom.gbc", $23ac, $2524 - $23ac +INCBIN "baserom.gbc", $23ac, $24e4 - $23ac + + +Function24e4: ; 24e4 + ld a, [hROMBank] + push af + ld hl, OverworldMap + ld a, [$d19f] + ld [hConnectedMapWidth], a + add $6 + ld [hConnectionStripLength], a + ld c, a + ld b, $0 + add hl, bc + add hl, bc + add hl, bc + ld c, $3 + add hl, bc + ld a, [$d1a0] + rst Bankswitch + + ld a, [$d1a1] + ld e, a + ld a, [$d1a2] + ld d, a + ld a, [$d19e] + ld b, a +.asm_250c + push hl + ld a, [hConnectedMapWidth] + ld c, a +.asm_2510 + ld a, [de] + inc de + ld [hli], a + dec c + jr nz, .asm_2510 + pop hl + ld a, [hConnectionStripLength] + add l + ld l, a + jr nc, .asm_251e + inc h + +.asm_251e + dec b + jr nz, .asm_250c + pop af + rst Bankswitch + + ret +; 2524 + FillMapConnections: ; 2524 @@ -3861,7 +5357,11 @@ FillEastConnectionStrip: ; 25f6 ; 261b -INCBIN "baserom.gbc", $261b, $261f - $261b +Function261b: ; 261b + ld [$d432], a + ret +; 261f + PushScriptPointer: ; 261f @@ -3881,7 +5381,133 @@ PushScriptPointer: ; 261f ; 2631 -INCBIN "baserom.gbc", $2631, $26d4 - $2631 +INCBIN "baserom.gbc", $2631, $263b - $2631 + + +Function263b: ; 263b + ld b, a + ld a, [hROMBank] + push af + call $2c52 + call $2653 + jr nc, .asm_2650 + call GetMapEventBank + ld b, a + ld d, h + ld e, l + call $2674 + +.asm_2650 + pop af + rst Bankswitch + + ret +; 2653 + +Function2653: ; 2653 + ld a, [$dc0a] + ld c, a + and a + ret z + ld hl, $dc0b + ld a, [hli] + ld h, [hl] + ld l, a + or h + ret z + ld de, $0003 +.asm_2664 + ld a, [hl] + cp b + jr z, .asm_266e + add hl, de + dec c + jr nz, .asm_2664 + xor a + ret + +.asm_266e + inc hl + ld a, [hli] + ld h, [hl] + ld l, a + scf + ret +; 2674 + +Function2674: ; 2674 + callba Unknown_0x974f3 + ld a, [ScriptMode] + push af + ld hl, ScriptFlags + ld a, [hl] + push af + set 1, [hl] + callba Function96c56 + callba ScriptEvents + pop af + ld [ScriptFlags], a + pop af + ld [ScriptMode], a + ret +; 269a + +Function269a: ; 269a + ld a, [hROMBank] + push af + ld a, b + rst Bankswitch + + push hl + call SpeechTextBox + call $2e31 + ld a, $1 + ld [hOAMUpdate], a + call $321c + pop hl + call PrintTextBoxText + xor a + ld [hOAMUpdate], a + pop af + rst Bankswitch + + ret +; 26b7 + +Function26b7: ; 26b7 + ld [hBuffer], a + ld a, [hROMBank] + push af + ld a, [hBuffer] + rst Bankswitch + + call $26c5 + pop af + rst Bankswitch + + ret +; 26c5 + +Function26c5: ; 26c5 + push de + ret +; 26c7 + +Function26c7: ; 26c7 + ld a, [hROMBank] + push af + ld a, b + rst Bankswitch + + ld a, c + call $19e9 + pop hl + ld a, h + rst Bankswitch + + ret +; 26d4 + GetScriptByte: ; 0x26d4 @@ -3928,7 +5554,275 @@ ObjectEventText: ; 0x26f7 -INCBIN "baserom.gbc", $26f7, $2a07 - $26f7 +INCBIN "baserom.gbc", $26f7, $2707 - $26f7 + + +Function2707: ; 2707 + ld a, [hConnectionStripLength] + ld e, a + ld d, $0 + ld hl, $d81e + add hl, de + ld a, [hl] + ret +; 2712 + +Function2712: ; 2712 + ld a, [hConnectionStripLength] + ld e, a + ld d, $0 + ld hl, $d81e + add hl, de + ld [hl], $ff + ret +; 271e + +Function271e: ; 271e + ld a, [hConnectionStripLength] + ld e, a + ld d, $0 + ld hl, $d81e + add hl, de + ld [hl], $0 + ret +; 272a + +INCBIN "baserom.gbc", $272a, $2821 - $272a + + +Function2821: ; 2821 + ld hl, TileSetAddress + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [TileSetBank] + ld e, a + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + ld a, e + ld de, $d000 + call FarDecompress + ld hl, $d000 + ld de, VTiles2 + ld bc, $0600 + call CopyBytes + ld a, [rVBK] + push af + ld a, $1 + ld [rVBK], a + ld hl, $d600 + ld de, VTiles2 + ld bc, $0600 + call CopyBytes + pop af + ld [rVBK], a + pop af + ld [rSVBK], a + ld a, [$d199] + cp $1 + jr z, .asm_286f + cp $2 + jr z, .asm_286f + cp $4 + jr z, .asm_286f + jr .asm_2875 + +.asm_286f + ld a, $7 + ld hl, $4000 + rst FarCall + +.asm_2875 + xor a + ld [hTileAnimFrame], a + ret +; 2879 + +Function2879: ; 2879 + ld hl, $d194 + ld a, [hli] + ld h, [hl] + ld l, a + ld de, $dcb9 + ld c, $5 + ld b, $6 +.asm_2886 + push bc + push hl +.asm_2888 + ld a, [hli] + ld [de], a + inc de + dec b + jr nz, .asm_2888 + pop hl + ld a, [$d19f] + add $6 + ld c, a + ld b, $0 + add hl, bc + pop bc + dec c + jr nz, .asm_2886 + ret +; 289d + +INCBIN "baserom.gbc", $289d, $2914 - $289d + + +Function2914: ; 2914 + xor a + ld [TilePermissions], a + call $296c + call $294d + ld a, [MapX] + ld d, a + ld a, [MapY] + ld e, a + call Function2a3c + ld [StandingTile], a + call $29ff + ret nz + ld a, [StandingTile] + and $7 + ld hl, $2945 + add l + ld l, a + ld a, $0 + adc h + ld h, a + ld a, [hl] + ld hl, TilePermissions + or [hl] + ld [hl], a + ret +; 2945 + +INCBIN "baserom.gbc", $2945, $294d - $2945 + + +Function294d: ; 294d + ld a, [MapX] + ld d, a + ld a, [MapY] + ld e, a + push de + inc e + call Function2a3c + ld [TileDown], a + call $298b + pop de + dec e + call Function2a3c + ld [TileUp], a + call $29a8 + ret +; 296c + +Function296c: ; 296c + ld a, [MapX] + ld d, a + ld a, [MapY] + ld e, a + push de + dec d + call Function2a3c + ld [TileLeft], a + call $29e2 + pop de + inc d + call Function2a3c + ld [TileRight], a + call $29c5 + ret +; 298b + +Function298b: ; 298b + call $29ff + ret nz + ld a, [TileDown] + and $7 + cp $2 + jr z, .asm_299f + cp $6 + jr z, .asm_299f + cp $7 + ret nz + +.asm_299f + ld a, [TilePermissions] + or $8 + ld [TilePermissions], a + ret +; 29a8 + +Function29a8: ; 29a8 + call $29ff + ret nz + ld a, [TileUp] + and $7 + cp $3 + jr z, .asm_29bc + cp $4 + jr z, .asm_29bc + cp $5 + ret nz + +.asm_29bc + ld a, [TilePermissions] + or $4 + ld [TilePermissions], a + ret +; 29c5 + +Function29c5: ; 29c5 + call $29ff + ret nz + ld a, [TileRight] + and $7 + cp $1 + jr z, .asm_29d9 + cp $5 + jr z, .asm_29d9 + cp $7 + ret nz + +.asm_29d9 + ld a, [TilePermissions] + or $1 + ld [TilePermissions], a + ret +; 29e2 + +Function29e2: ; 29e2 + call $29ff + ret nz + ld a, [TileLeft] + and $7 + cp $0 + jr z, .asm_29f6 + cp $4 + jr z, .asm_29f6 + cp $6 + ret nz + +.asm_29f6 + ld a, [TilePermissions] + or $2 + ld [TilePermissions], a + ret +; 29ff + +Function29ff: ; 29ff + and $f0 + cp $b0 + ret z + cp $c0 + ret +; 2a07 + GetFacingTileCoord: ; 2a07 @@ -4121,7 +6015,34 @@ FadeToMenu: ; 2b29 ; 2b3c -INCBIN "baserom.gbc", $2b3c, $2b74 - $2b3c +Function2b3c: ; 2b3c + call WhiteBGMap + call $2bae + call $1ad2 + call $1d7d + call $0d90 + jr .asm_2b5c + + call WhiteBGMap + call $1d7d + call $2bae + call $1ad2 + call $0d90 + +.asm_2b5c + ld b, $9 + call GetSGBLayout + ld a, $12 + ld hl, $5409 + rst FarCall + call Function3200 + ld a, $23 + ld hl, $4079 + rst FarCall + call $2ee4 + ret +; 2b74 + Function2b74: ; 0x2b74 @@ -4151,7 +6072,36 @@ Function2b74: ; 0x2b74 ret ; 0x2bae -INCBIN "baserom.gbc", $2bae, $2bed-$2bae +Function2bae: ; 2bae + call DisableLCD + call ClearSprites + ld a, $5 + ld hl, $4168 + rst FarCall + call $0e51 + call Functione5f + ld a, [hROMBank] + push af + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + call $2c24 + ld a, $23 + ld hl, $4001 + rst FarCall + call $2173 + call $2821 + ld a, $9 + call $3cb4 + pop af + rst Bankswitch + + call EnableLCD + ret +; 2be5 + +INCBIN "baserom.gbc", $2be5, $2bed - $2be5 GetMapHeaderPointer: ; 0x2bed ; Prior to calling this function, you must have switched banks so that @@ -4222,7 +6172,40 @@ GetAnyMapHeaderMember: ; 0x2c0c ; 0x2c1c -INCBIN "baserom.gbc", $2c1c, $2c57 - $2c1c +INCBIN "baserom.gbc", $2c1c, $2c24 - $2c1c + + +Function2c24: ; 2c24 + call $2c31 + rst Bankswitch + + ret +; 2c29 + +INCBIN "baserom.gbc", $2c29, $2c31 - $2c29 + + +Function2c31: ; 2c31 + push hl + push de + ld de, $0000 + call GetAnyMapHeaderMember + ld a, c + pop de + pop hl + ret +; 2c3d + +INCBIN "baserom.gbc", $2c3d, $2c52 - $2c3d + + +Function2c52: ; 2c52 + ld a, [MapEventBank] + rst Bankswitch + + ret +; 2c57 + GetMapEventBank: ; 2c57 @@ -4308,7 +6291,81 @@ GetWorldMapLocation: ; 0x2caf ; 0x2cbd -INCBIN "baserom.gbc", $2cbd, $2d63 - $2cbd +Function2cbd: ; 2cbd + push hl + push bc + ld de, $0006 + call GetMapHeaderMember + ld a, c + cp $64 + jr z, .asm_2cee + bit 7, c + jr nz, .asm_2cda + ld a, $22 + ld hl, $7342 + rst FarCall + ld e, c + ld d, $0 +.asm_2cd7 + pop bc + pop hl + ret + +.asm_2cda + ld a, [StatusFlags2] + bit 0, a + jr z, .asm_2ce6 + ld de, $0056 + jr .asm_2cd7 + +.asm_2ce6 + ld a, c + and $7f + ld e, a + ld d, $0 + jr .asm_2cd7 + +.asm_2cee + ld a, [StatusFlags2] + bit 7, a + jr z, .asm_2cfa + ld de, $0048 + jr .asm_2cd7 + +.asm_2cfa + ld de, $0026 + jr .asm_2cd7 +; 2cff + +INCBIN "baserom.gbc", $2cff, $2d05 - $2cff + + +Function2d05: ; 2d05 + call $2d0d + and $f0 + swap a + ret +; 2d0d + +Function2d0d: ; 2d0d + push hl + push bc + ld de, $0007 + call GetMapHeaderMember + ld a, c + pop bc + pop hl + ret +; 2d19 + +INCBIN "baserom.gbc", $2d19, $2d61 - $2d19 + + +Function2d61: ; 2d61 + push de + ret +; 2d63 + FarJpHl: ; 2d63 @@ -4439,7 +6496,91 @@ ResetWindow: ; 2dba ; 2dcf -INCBIN "baserom.gbc", $2dcf, $2e6f-$2dcf +Function2dcf: ; 2dcf + ld a, [hOAMUpdate] + push af + ld a, $1 + ld [hOAMUpdate], a + call $2de2 + pop af + ld [hOAMUpdate], a + ld hl, VramState + res 6, [hl] + ret +; 2de2 + +Function2de2: ; 2de2 + call Function1fbf + xor a + ld [hBGMapMode], a + call $2173 + call $2e20 + xor a + ld [hBGMapMode], a + call $2e31 + ld a, $90 + ld [$ffd2], a + call $0e4a + ld a, $2e + ld hl, $4000 + rst FarCall + ld a, $41 + ld hl, $6594 + rst FarCall + ret +; 2e08 + +Function2e08: ; 2e08 + call Function1fbf + ld a, [hROMBank] + push af + ld a, $1 + rst Bankswitch + + call $6454 + call SpeechTextBox + call $2e20 + call $64bf + pop af + rst Bankswitch + + ret +; 2e20 + +Function2e20: ; 2e20 + ld a, [hOAMUpdate] + push af + ld a, $1 + ld [hOAMUpdate], a + ld a, $41 + ld hl, $4110 + rst FarCall + pop af + ld [hOAMUpdate], a + ret +; 2e31 + +Function2e31: ; 2e31 + ld a, [hOAMUpdate] + push af + ld a, [hBGMapMode] + push af + xor a + ld [hBGMapMode], a + ld a, $1 + ld [hOAMUpdate], a + call $1ad2 + xor a + ld [hOAMUpdate], a + call DelayFrame + pop af + ld [hBGMapMode], a + pop af + ld [hOAMUpdate], a + ret +; 2e4e + +INCBIN "baserom.gbc", $2e4e, $2e6f - $2e4e BitTable1Func: ; 0x2e6f @@ -4515,7 +6656,21 @@ BitTableFunc: ; 0x2e76 ret ; 0x2ead -INCBIN "baserom.gbc", $2ead, $2ed3 - $2ead +INCBIN "baserom.gbc", $2ead, $2ec6 - $2ead + + +Function2ec6: ; 2ec6 + xor a + ret +; 2ec8 + +Function2ec8: ; 2ec8 + xor a + dec a + ret +; 2ecb + +INCBIN "baserom.gbc", $2ecb, $2ed3 - $2ecb Function2ed3: ; 0x2ed3 ; disables overworld sprite updating? @@ -4529,7 +6684,18 @@ Function2ed3: ; 0x2ed3 ret ; 0x2ee4 -INCBIN "baserom.gbc", $2ee4, $2ef9 - $2ee4 +Function2ee4: ; 2ee4 + ld a, $1 + ld [$c2ce], a + ld a, [VramState] + set 0, a + ld [VramState], a + ld a, $1 + ld [$ffde], a + ret +; 2ef6 + +INCBIN "baserom.gbc", $2ef6, $2ef9 - $2ef6 InitString: ; 0x2ef9 ; if the string pointed to by hl is empty (defined as "zero or more spaces @@ -4584,7 +6750,66 @@ CheckTossableItem: ; 2f46 ; 2f53 -INCBIN "baserom.gbc", $2f53, $2f8c - $2f53 +Function2f53: ; 2f53 + push hl + push de + push bc + ld a, [hROMBank] + push af + ld a, $3 + rst Bankswitch + + call $520d + pop bc + ld a, b + rst Bankswitch + + pop bc + pop de + pop hl + ret +; 2f66 + +Function2f66: ; 2f66 + push bc + ld a, [hROMBank] + push af + ld a, $3 + rst Bankswitch + + push hl + push de + call $51d5 + pop de + pop hl + pop bc + ld a, b + rst Bankswitch + + pop bc + ret +; 2f79 + +Function2f79: ; 2f79 + push hl + push de + push bc + ld a, [hROMBank] + push af + ld a, $3 + rst Bankswitch + + call $5244 + pop bc + ld a, b + rst Bankswitch + + pop bc + pop de + pop hl + ret +; 2f8c + RNG: ; 2f8c @@ -4844,7 +7069,19 @@ GetFarHalfword: ; 0x305d ret ; 0x306b -INCBIN "baserom.gbc", $306b, $30d6-$306b +Function306b: ; 306b + ld [hBuffer], a + ld a, [rSVBK] + push af + ld a, [hBuffer] + ld [rSVBK], a + call CopyBytes + pop af + ld [rSVBK], a + ret +; 307b + +INCBIN "baserom.gbc", $307b, $30d6 - $307b CopyName1: ; 30d6 ld hl, StringBuffer2 @@ -5085,7 +7322,54 @@ CopyDataUntil: ; 318c ret ; 0x3198 -INCBIN "baserom.gbc", $3198, $31db - $3198 +Function3198: ; 3198 + ld a, [hROMBank] + push af + ld a, $3 + rst Bankswitch + + call $44c7 + pop af + rst Bankswitch + + ret +; 31a4 + +INCBIN "baserom.gbc", $31a4, $31b0 - $31a4 + + +Function31b0: ; 31b0 + ld [hBuffer], a + ld a, [hROMBank] + push af + ld a, [hBuffer] + rst Bankswitch + + call PrintText + pop af + rst Bankswitch + + ret +; 31be + +Function31be: ; 31be + ld a, [hROMBank] + push af + ld a, [hli] + rst Bankswitch + + ld a, [hli] + ld h, [hl] + ld l, a + call JpHl + pop hl + ld a, h + rst Bankswitch + + ret +; 31cd + +INCBIN "baserom.gbc", $31cd, $31db - $31cd StringCmp: ; 31db ; Compare strings, c bytes in length, at de and hl. @@ -5154,7 +7438,188 @@ Function3200: ; 0x3200 ret ; 0x3218 -INCBIN "baserom.gbc", $3218, $32f9 - $3218 +INCBIN "baserom.gbc", $3218, $321c - $3218 + + +Function321c: ; 321c + ld a, [hCGB] + and a + jr z, .asm_322e + ld a, [$c2ce] + cp $0 + jr z, .asm_322e + ld a, $1 + ld [hBGMapMode], a + jr .asm_323d + +.asm_322e + ld a, $1 + ld [hBGMapMode], a + ld c, $4 + call DelayFrames + ret + + ld a, [hCGB] + and a + jr z, WaitBGMap + +.asm_323d + jr .asm_3246 + + ld a, $41 + ld hl, $4000 + rst FarCall + ret + +.asm_3246 + ld a, [hBGMapMode] + push af + xor a + ld [hBGMapMode], a + ld a, [$ffde] + push af + xor a + ld [$ffde], a +.asm_3252 + ld a, [rLY] + cp $7f + jr c, .asm_3252 ; 3256 $fa + di + ld a, $1 + ld [rVBK], a + ld hl, AttrMap + call $327b + ld a, $0 + ld [rVBK], a + ld hl, TileMap + call $327b +.asm_326d + ld a, [rLY] + cp $7f + jr c, .asm_326d ; 3271 $fa + ei + pop af + ld [$ffde], a + pop af + ld [hBGMapMode], a + ret +; 327b + +Function327b: ; 327b + ld [hSPBuffer], sp + ld sp, hl + ld a, [$ffd7] + ld h, a + ld l, $0 + ld a, $12 + ld [$ffd3], a + ld b, $2 + ld c, $41 +.asm_328c + pop de +.asm_328d + ld a, [$ff00+c] + and b + jr nz, .asm_328d + ld [hl], e + inc l + ld [hl], d + inc l + pop de +.asm_3296 + ld a, [$ff00+c] + and b + jr nz, .asm_3296 + ld [hl], e + inc l + ld [hl], d + inc l + pop de +.asm_329f + ld a, [$ff00+c] + and b + jr nz, .asm_329f + ld [hl], e + inc l + ld [hl], d + inc l + pop de +.asm_32a8 + ld a, [$ff00+c] + and b + jr nz, .asm_32a8 + ld [hl], e + inc l + ld [hl], d + inc l + pop de +.asm_32b1 + ld a, [$ff00+c] + and b + jr nz, .asm_32b1 + ld [hl], e + inc l + ld [hl], d + inc l + pop de +.asm_32ba + ld a, [$ff00+c] + and b + jr nz, .asm_32ba + ld [hl], e + inc l + ld [hl], d + inc l + pop de +.asm_32c3 + ld a, [$ff00+c] + and b + jr nz, .asm_32c3 + ld [hl], e + inc l + ld [hl], d + inc l + pop de +.asm_32cc + ld a, [$ff00+c] + and b + jr nz, .asm_32cc + ld [hl], e + inc l + ld [hl], d + inc l + pop de +.asm_32d5 + ld a, [$ff00+c] + and b + jr nz, .asm_32d5 + ld [hl], e + inc l + ld [hl], d + inc l + pop de +.asm_32de + ld a, [$ff00+c] + and b + jr nz, .asm_32de + ld [hl], e + inc l + ld [hl], d + inc l + ld de, $000c + add hl, de + ld a, [$ffd3] + dec a + ld [$ffd3], a + jr nz, .asm_328c + ld a, [hSPBuffer] + ld l, a + ld a, [$ffda] + ld h, a + ld sp, hl + ret +; 32f9 + Function32f9: ; 32f9 @@ -5642,7 +8107,69 @@ GetMoveName: ; 34f8 ; 350c -INCBIN "baserom.gbc", $350c, $3600 - $350c +Function350c: ; 350c + call $1c66 + ld a, [hROMBank] + push af + ld a, $9 + rst Bankswitch + + call $45af + call $3524 + call $45cb + pop af + rst Bankswitch + + ld a, [$cf73] + ret +; 3524 + +Function3524: ; 3524 + ld hl, VramState + bit 0, [hl] + jp nz, Function485 + jp Function32f9 +; 352f + +Function352f: ; 352f + ld a, [$cf82] + dec a + ld b, a + ld a, [$cf84] + sub b + ld d, a + ld a, [$cf83] + dec a + ld c, a + ld a, [$cf85] + sub c + ld e, a + push de + call $1d05 + pop bc + jp TextBox +; 354b + +Function354b: ; 354b + call DelayFrame + ld a, [$ffaa] + push af + ld a, $1 + ld [$ffaa], a + call Functiona57 + pop af + ld [$ffaa], a + ld a, [$ffa9] + and $f0 + ld c, a + ld a, [hJoyPressed] + and $f + or c + ld c, a + ret +; 3567 + +INCBIN "baserom.gbc", $3567, $3600 - $3567 CheckTrainerBattle2: ; 3600 @@ -5858,7 +8385,184 @@ FacingPlayerDistance: ; 36ad ; 36f5 -INCBIN "baserom.gbc", $36f5, $3856 - $36f5 +INCBIN "baserom.gbc", $36f5, $3741 - $36f5 + + +Function3741: ; 3741 + and a + jr z, .asm_374c + cp $fd + jr z, .asm_374e + cp $fc + jr c, .asm_374e + +.asm_374c + scf + ret + +.asm_374e + and a + ret +; 3750 + +Function3750: ; 3750 + push hl + push de + push bc + ld a, $60 + ld [hli], a + ld a, $61 + ld [hli], a + push hl + ld a, $62 +.asm_375c + ld [hli], a + dec d + jr nz, .asm_375c + ld a, $6b + add b + ld [hl], a + pop hl + ld a, e + and a + jr nz, .asm_376f + ld a, c + and a + jr z, .asm_3782 + ld e, $1 + +.asm_376f + ld a, e + sub $8 + jr c, .asm_377e + ld e, a + ld a, $6a + ld [hli], a + ld a, e + and a + jr z, .asm_3782 + jr .asm_376f + +.asm_377e + ld a, $62 + add e + ld [hl], a + +.asm_3782 + pop bc + pop de + pop hl + ret +; 3786 + + + +Function3786: ; 3786 + ld a, $1 + ld [$c2c6], a + ld a, [CurPartySpecies] + call $3741 + jr c, .asm_37ad + push hl + ld de, VTiles2 + ld a, $3c + call Predef + pop hl + xor a + ld [$ffad], a + ld bc, $0707 + ld a, $13 + call Predef + xor a + ld [$c2c6], a + ret + +.asm_37ad + xor a + ld [$c2c6], a + inc a + ld [CurPartySpecies], a + ret +; 37b6 + +INCBIN "baserom.gbc", $37b6, $37ce - $37b6 + + +Function37ce: ; 37ce + call $37d5 + call WaitSFX + ret +; 37d5 + +Function37d5: ; 37d5 + push af + xor a + ld [$c2bc], a + ld [CryTracks], a + pop af + call $37e2 + ret +; 37e2 + +Function37e2: ; 37e2 + push hl + push de + push bc + call $381e + jr c, .asm_37ef + ld e, c + ld d, b + call PlayCryHeader + +.asm_37ef + pop bc + pop de + pop hl + ret +; 37f3 + +INCBIN "baserom.gbc", $37f3, $381e - $37f3 + + +Function381e: ; 381e + and a + jr z, .asm_382b + cp $fc + jr nc, .asm_382b + dec a + ld c, a + ld b, $0 + and a + ret + +.asm_382b + scf + ret +; 382d + +Function382d: ; 382d + ld a, [TempMonLevel] + ld [hl], $6e + inc hl + ld c, $2 + cp $64 + jr c, .asm_3842 + dec hl + inc c + jr .asm_3842 + + ld [hl], $6e + inc hl + ld c, $3 + +.asm_3842 + ld [$d265], a + ld de, $d265 + ld b, $41 + jp $3198 +; 384d + +INCBIN "baserom.gbc", $384d, $3856 - $384d GetBaseData: ; 3856 @@ -6710,7 +9414,115 @@ VolumeOff: ; 3ca3 ret ; 3ca8 -INCBIN "baserom.gbc", $3ca8, $3dde - $3ca8 +INCBIN "baserom.gbc", $3ca8, $3cb4 - $3ca8 + + +Function3cb4: ; 3cb4 +.asm_3cb4 + and a + ret z + dec a + call CleanUpdateSound + jr .asm_3cb4 +; 3cbc + +INCBIN "baserom.gbc", $3cbc, $3cdf - $3cbc + + +Function3cdf: ; 3cdf + push hl + push de + push bc + push af + call $3d97 + ld a, [CurMusic] + cp e + jr z, .asm_3cfe + push de + ld de, $0000 + call StartMusic + call DelayFrame + pop de + ld a, e + ld [CurMusic], a + call StartMusic + +.asm_3cfe + pop af + pop bc + pop de + pop hl + ret +; 3d03 + +INCBIN "baserom.gbc", $3d03, $3d47 - $3d03 + + +Function3d47: ; 3d47 + push hl + push de + push bc + push af + ld de, $0000 + call StartMusic + call DelayFrame + ld a, [CurMusic] + ld e, a + ld d, $0 + call StartMusic + pop af + pop bc + pop de + pop hl + ret +; 3d62 + +Function3d62: ; 3d62 + ld a, [PlayerState] + cp $4 + jr z, .asm_3d7b + cp $8 + jr z, .asm_3d7b + ld a, [StatusFlags2] + bit 2, a + jr nz, .asm_3d80 +.asm_3d74 + and a + ret + + ld de, $0013 + scf + ret + +.asm_3d7b + ld de, $0021 + scf + ret + +.asm_3d80 + ld a, [MapGroup] + cp $a + jr nz, .asm_3d74 + ld a, [MapNumber] + cp $f + jr z, .asm_3d92 + cp $11 + jr nz, .asm_3d74 + +.asm_3d92 + ld de, $0058 + scf + ret +; 3d97 + +Function3d97: ; 3d97 + call $3d62 + ret c + call $2cbd + ret +; 3d9f + +INCBIN "baserom.gbc", $3d9f, $3dde - $3d9f CheckSFX: ; 3dde ; returns carry if sfx channels are active @@ -6757,7 +9569,77 @@ SFXChannelsOff: ; 3e21 ret ; 3e32 -INCBIN "baserom.gbc", $3e32, $3fb5 - $3e32 +INCBIN "baserom.gbc", $3e32, $3e80 - $3e32 + + +Function3e80: ; 3e80 + ld a, [hROMBank] + push af + ld a, $44 + ld [$c981], a + rst Bankswitch + + call $56c5 + pop bc + ld a, b + ld [$c981], a + rst Bankswitch + + ret +; 3e93 + + + +Function3e93: ; 3e93 + push af + push bc + push de + push hl + ld a, [$ffe9] + and a + jr z, .asm_3ed2 + xor a + ld [rTAC], a + ld a, [rIF] + and $1b + ld [rIF], a + ld a, [$c86a] + or a + jr z, .asm_3ed2 + ld a, [$c822] + bit 1, a + jr nz, .asm_3eca + ld a, [rSC] + and $80 + jr nz, .asm_3eca + ld a, [hROMBank] + push af + ld a, $44 + ld [$c981], a + rst Bankswitch + + call $58de + pop bc + ld a, b + ld [$c981], a + rst Bankswitch + + +.asm_3eca + ld a, [rTMA] + ld [rTIMA], a + ld a, $6 + ld [rTAC], a + +.asm_3ed2 + pop hl + pop de + pop bc + pop af + reti +; 3ed7 + +INCBIN "baserom.gbc", $3ed7, $3fb5 - $3ed7 @@ -11711,7 +14593,116 @@ Function642e: ; 642e jp Function620b ; 6454 -INCBIN "baserom.gbc", $6454, $669f - $6454 +Function6454: ; 6454 + call DelayFrame + ld a, [hOAMUpdate] + push af + ld a, $1 + ld [hOAMUpdate], a + ld a, [hBGMapMode] + push af + xor a + ld [hBGMapMode], a + call $6473 + pop af + ld [hBGMapMode], a + pop af + ld [hOAMUpdate], a + ld hl, VramState + set 6, [hl] + ret +; 6473 + +Function6473: ; 6473 + xor a + ld [hLCDStatCustom], a + ld [hBGMapMode], a + ld a, $90 + ld [$ffd2], a + call $2173 + ld a, $9c + call $64b9 + call $2e20 + ld a, $12 + ld hl, $5409 + rst FarCall + ld a, $2 + ld hl, $56a4 + rst FarCall + ld a, $1 + ld [hCGBPalUpdate], a + xor a + ld [hBGMapMode], a + ld [$ffd2], a + ld a, $1 + ld hl, $64db + rst FarCall + ld a, $98 + call $64b9 + xor a + ld [$d152], a + ld a, $98 + ld [$d153], a + xor a + ld [$ffcf], a + ld [$ffd0], a + call Function5958 + ret +; 64b9 + +Function64b9: ; 64b9 + ld [$ffd7], a + xor a + ld [hBGMapAddress], a + ret +; 64bf + +Function64bf: ; 64bf + ld a, [hOAMUpdate] + push af + ld a, $1 + ld [hOAMUpdate], a + call $64cd + pop af + ld [hOAMUpdate], a + ret +; 64cd + +Function64cd: ; 64cd + call Functione5f + ld a, $90 + ld [$ffd2], a + call $2e31 + call $0e51 + ret +; 64db + +Function64db: ; 64db + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + ld a, $60 + ld hl, $d000 + ld bc, VBlank5 + call ByteFill + ld a, $d0 + ld [rHDMA1], a + ld a, $0 + ld [rHDMA2], a + ld a, $18 + ld [rHDMA3], a + ld a, $0 + ld [rHDMA4], a + ld a, $3f + ld [hDMATransfer], a + call DelayFrame + pop af + ld [rSVBK], a + ret +; 6508 + +INCBIN "baserom.gbc", $6508, $669f - $6508 CheckNickErrors: ; 669f ; error-check monster nick before use @@ -12460,7 +15451,77 @@ Function7171: ; 7171 ret ; 718d -INCBIN "baserom.gbc", $718d, $7305 - $718d +INCBIN "baserom.gbc", $718d, $71c2 - $718d + + +Function71c2: ; 71c2 + ld a, [CurPartyMon] + inc a + ld e, a + ld d, $0 + ld hl, PartyCount + add hl, de + ld a, [hl] + cp $fd + ret z + push bc + ld hl, PartyMon1Happiness + ld bc, $0030 + ld a, [CurPartyMon] + call AddNTimes + pop bc + ld d, h + ld e, l + push de + ld a, [de] + cp $64 + ld e, $0 + jr c, .asm_71ef + inc e + cp $c8 + jr c, .asm_71ef + inc e + +.asm_71ef + dec c + ld b, $0 + ld hl, $7221 + add hl, bc + add hl, bc + add hl, bc + ld d, $0 + add hl, de + ld a, [hl] + cp $64 + pop de + ld a, [de] + jr nc, .asm_7209 + add [hl] + jr nc, .asm_720d + ld a, $ff + jr .asm_720d + +.asm_7209 + add [hl] + jr c, .asm_720d + xor a + +.asm_720d + ld [de], a + ld a, [IsInBattle] + and a + ret z + ld a, [CurPartyMon] + ld b, a + ld a, [$d0d8] + cp b + ret nz + ld a, [de] + ld [BattleMonHappiness], a + ret +; 7221 + +INCBIN "baserom.gbc", $7221, $7305 - $7221 SpecialGiveShuckle: ; 7305 @@ -12545,7 +15606,154 @@ INCBIN "baserom.gbc", $737e, $747b - $737e SECTION "bank2",DATA,BANK[$2] -INCBIN "baserom.gbc", $8000, $8286 - $8000 +Function8000: ; 8000 + call Function2ed3 + xor a + ld [hBGMapMode], a + call WhiteBGMap + call ClearSprites + ld hl, TileMap + ld bc, $0168 + ld a, $7f + call ByteFill + ld hl, AttrMap + ld bc, $0168 + ld a, $7 + call ByteFill + call Function3200 + call Function32f9 + ret +; 8029 + +INCBIN "baserom.gbc", $8029, $807e - $8029 + + +Function807e: ; 807e + push de + ld a, b + call GetMapObject + pop de + ld hl, $0003 + add hl, bc + ld [hl], d + ld hl, $0002 + add hl, bc + ld [hl], e + ret +; 808f + +INCBIN "baserom.gbc", $808f, $80a1 - $808f + + +Function80a1: ; 80a1 + ld a, b + call $18de + ret c + ld hl, $0010 + add hl, bc + ld d, [hl] + ld hl, $0011 + add hl, bc + ld e, [hl] + ld a, [hConnectionStripLength] + ld b, a + call $407e + and a + ret +; 80b8 + +INCBIN "baserom.gbc", $80b8, $80e7 - $80b8 + + +Function80e7: ; 80e7 + call $2707 + and a + ret nz + ld hl, $d4fe + ld a, $1 + ld de, $0028 +.asm_80f4 + ld [hConnectedMapWidth], a + ld a, [hl] + and a + jr z, .asm_8104 + add hl, de + ld a, [hConnectedMapWidth] + inc a + cp $d + jr nz, .asm_80f4 + scf + ret + +.asm_8104 + ld d, h + ld e, l + call $4116 + ld hl, VramState + bit 7, [hl] + ret z + ld hl, $0005 + add hl, de + set 5, [hl] + ret +; 8116 + +Function8116: ; 8116 + call $411d + call Function8286 + ret +; 811d + +Function811d: ; 811d + ld a, [hConnectedMapWidth] + ld hl, $0000 + add hl, bc + ld [hl], a + ld a, [hConnectionStripLength] + ld [$c2f0], a + ld hl, $0001 + add hl, bc + ld a, [hl] + ld [$c2f1], a + call $180e + ld [$c2f2], a + ld a, [hl] + call $17ff + ld [$c2f3], a + ld hl, $0008 + add hl, bc + ld a, [hl] + and $f0 + jr z, .asm_814e + swap a + and $7 + ld [$c2f3], a + +.asm_814e + ld hl, $0004 + add hl, bc + ld a, [hl] + ld [$c2f4], a + ld hl, $0009 + add hl, bc + ld a, [hl] + ld [$c2f5], a + ld hl, $0003 + add hl, bc + ld a, [hl] + ld [$c2f6], a + ld hl, $0002 + add hl, bc + ld a, [hl] + ld [$c2f7], a + ld hl, $0005 + add hl, bc + ld a, [hl] + ld [$c2f8], a + ret +; 8177 + +INCBIN "baserom.gbc", $8177, $8286 - $8177 Function8286: ; 8286 @@ -12641,7 +15849,253 @@ Function830d: ; 830d ret ; 831e -INCBIN "baserom.gbc", $831e, $854b - $831e +INCBIN "baserom.gbc", $831e, $839e - $831e + + +Function839e: ; 839e + push bc + ld a, c + call $18de + ld d, b + ld e, c + pop bc + ret c + ld a, b + call $18de + ret c + ld hl, $0010 + add hl, bc + ld a, [hl] + ld hl, $0011 + add hl, bc + ld c, [hl] + ld b, a + ld hl, $0010 + add hl, de + ld a, [hl] + cp b + jr z, .asm_83c7 + jr c, .asm_83c4 + inc b + jr .asm_83d5 + +.asm_83c4 + dec b + jr .asm_83d5 + +.asm_83c7 + ld hl, $0011 + add hl, de + ld a, [hl] + cp c + jr z, .asm_83d5 + jr c, .asm_83d4 + inc c + jr .asm_83d5 + +.asm_83d4 + dec c + +.asm_83d5 + ld hl, $0010 + add hl, de + ld [hl], b + ld a, b + ld hl, XCoord + sub [hl] + and $f + swap a + ld hl, $d14c + sub [hl] + ld hl, $0017 + add hl, de + ld [hl], a + ld hl, $0011 + add hl, de + ld [hl], c + ld a, c + ld hl, YCoord + sub [hl] + and $f + swap a + ld hl, $d14d + sub [hl] + ld hl, $0018 + add hl, de + ld [hl], a + ld a, [hConnectedMapWidth] + ld hl, $0020 + add hl, de + ld [hl], a + ld hl, $0003 + add hl, de + ld [hl], $1a + ld hl, $0009 + add hl, de + ld [hl], $0 + ret +; 8417 + +Function8417: ; 8417 + ld a, d + call GetMapObject + ld hl, $0000 + add hl, bc + ld a, [hl] + cp $d + jr nc, .asm_8437 + ld d, a + ld a, e + call GetMapObject + ld hl, $0000 + add hl, bc + ld a, [hl] + cp $d + jr nc, .asm_8437 + ld e, a + call $4439 + ret + +.asm_8437 + scf + ret +; 8439 + +Function8439: ; 8439 + ld a, d + call Function1ae5 + ld hl, $0010 + add hl, bc + ld a, [hl] + ld hl, $0011 + add hl, bc + ld c, [hl] + ld b, a + push bc + ld a, e + call Function1ae5 + ld hl, $0010 + add hl, bc + ld d, [hl] + ld hl, $0011 + add hl, bc + ld e, [hl] + pop bc + ld a, b + sub d + jr z, .asm_846c + jr nc, .asm_8460 + cpl + inc a + +.asm_8460 + ld h, a + ld a, c + sub e + jr z, .asm_847a + jr nc, .asm_8469 + cpl + inc a + +.asm_8469 + sub h + jr c, .asm_847a + +.asm_846c + ld a, c + cp e + jr z, .asm_8488 + jr c, .asm_8476 + ld d, $0 + and a + ret + +.asm_8476 + ld d, $1 + and a + ret + +.asm_847a + ld a, b + cp d + jr z, .asm_8488 + jr c, .asm_8484 + ld d, $3 + and a + ret + +.asm_8484 + ld d, $2 + and a + ret + +.asm_8488 + scf + ret +; 848a + +Function848a: ; 848a + call $449d + jr c, .asm_8497 + ld [$d4d1], a + xor a + ld [$d4d0], a + ret + +.asm_8497 + ld a, $ff + ld [$d4d0], a + ret +; 849d + +Function849d: ; 849d + ld a, [$d4cd] + call Function1ae5 + ld hl, $0010 + add hl, bc + ld d, [hl] + ld hl, $0011 + add hl, bc + ld e, [hl] + ld a, [$d4ce] + call Function1ae5 + ld hl, $0010 + add hl, bc + ld a, d + cp [hl] + jr z, .asm_84c5 + jr c, .asm_84c1 + and a + ld a, $f + ret + +.asm_84c1 + and a + ld a, $e + ret + +.asm_84c5 + ld hl, $0011 + add hl, bc + ld a, e + cp [hl] + jr z, .asm_84d7 + jr c, .asm_84d3 + and a + ld a, $c + ret + +.asm_84d3 + and a + ld a, $d + ret + +.asm_84d7 + scf + ret +; 84d9 + +INCBIN "baserom.gbc", $84d9, $854b - $84d9 GetPredefFn: ; 854b ; input: @@ -12787,7 +16241,18 @@ CheckShininess: ; 0x8a68 and a ; clear carry flag ret -INCBIN "baserom.gbc", $8a88, $8d55 - $8a88 +INCBIN "baserom.gbc", $8a88, $8ad1 - $8a88 + + +Function8ad1: ; 8ad1 + ld hl, $5c57 + call $5610 + call $571a + call $5699 + ret +; 8ade + +INCBIN "baserom.gbc", $8ade, $8d55 - $8ade Function8d55: ; 8d55 @@ -12796,7 +16261,87 @@ Function8d55: ; 8d55 ret ; 8d59 -INCBIN "baserom.gbc", $8d59, $9890 - $8d59 +INCBIN "baserom.gbc", $8d59, $9610 - $8d59 + + +Function9610: ; 9610 + ld de, $d000 + ld c, $4 +.asm_9615 + push bc + ld a, [hli] + push hl + call $5625 + call $5630 + pop hl + inc hl + pop bc + dec c + jr nz, .asm_9615 + ret +; 9625 + +Function9625: ; 9625 + ld l, a + ld h, $0 + add hl, hl + add hl, hl + add hl, hl + ld bc, $5df6 + add hl, bc + ret +; 9630 + +Function9630: ; 9630 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld c, $8 +.asm_9639 + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .asm_9639 + pop af + ld [rSVBK], a + ret +; 9643 + +INCBIN "baserom.gbc", $9643, $9699 - $9643 + + +Function9699: ; 9699 + ld hl, AttrMap + ld bc, $0168 + xor a + call ByteFill + ret +; 96a4 + +Function96a4: ; 96a4 + ld hl, $d000 + ld de, $d080 + ld bc, $0080 + ld a, $5 + call $306b + ret +; 96b3 + +INCBIN "baserom.gbc", $96b3, $971a - $96b3 + + +Function971a: ; 971a + ld hl, $7681 + ld de, $d040 + ld bc, $0010 + ld a, $5 + call $306b + ret +; 9729 + +INCBIN "baserom.gbc", $9729, $9890 - $9729 Function9890: ; 9890 @@ -12939,7 +16484,37 @@ INCBIN "baserom.gbc", $b419, $b825 - $b419 SECTION "bank3",DATA,BANK[$3] -INCBIN "baserom.gbc", $c000, $29 +Functionc000: ; c000 + ld a, [TimeOfDay] + ld hl, $4012 + ld de, $0002 + call IsInArray + inc hl + ld c, [hl] + ret c + xor a + ld c, a + ret +; c012 + +INCBIN "baserom.gbc", $c012, $c01b - $c012 + + +Functionc01b: ; c01b + ld hl, SpecialsPointers + add hl, de + add hl, de + add hl, de + ld b, [hl] + inc hl + ld a, [hli] + ld h, [hl] + ld l, a + ld a, b + rst FarCall + ret +; c029 + SpecialsPointers: ; 0xc029 dbw BANK(Function97c28), Function97c28 @@ -13143,7 +16718,27 @@ ScriptReturnCarry: ; c3e2 ret ; c3ef -INCBIN "baserom.gbc", $c3ef, $c419 - $c3ef +INCBIN "baserom.gbc", $c3ef, $c403 - $c3ef + + +Functionc403: ; c403 + ld a, c + and a + jr nz, .asm_c410 + ld a, d + ld [$dfcc], a + ld a, e + ld [$dfcd], a + ret + +.asm_c410 + ld a, d + ld [$dc5a], a + ld a, e + ld [$dc5b], a + ret +; c419 + SpecialCheckPokerus: ; c419 ; Check if a monster in your party has Pokerus @@ -13237,7 +16832,189 @@ SpecialTrainerHouse: ; 0xc4b9 ld [ScriptVar], a jp CloseSRAM -INCBIN "baserom.gbc", $c4c7, $c5d2 - $c4c7 +Functionc4c7: ; c4c7 + push bc + bit 5, b + jr z, .asm_c4d9 + bit 7, b + jr nz, .asm_c4d4 + bit 6, b + jr z, .asm_c4d9 + +.asm_c4d4 + ld a, $f0 + ld [hli], a + res 5, b + +.asm_c4d9 + xor a + ld [hProduct], a + ld [hMultiplicand], a + ld [$ffb5], a + ld a, b + and $f + cp $1 + jr z, .asm_c501 + cp $2 + jr z, .asm_c4f8 + ld a, [de] + ld [hMultiplicand], a + inc de + ld a, [de] + ld [$ffb5], a + inc de + ld a, [de] + ld [$ffb6], a + jr .asm_c504 + +.asm_c4f8 + ld a, [de] + ld [$ffb5], a + inc de + ld a, [de] + ld [$ffb6], a + jr .asm_c504 + +.asm_c501 + ld a, [de] + ld [$ffb6], a + +.asm_c504 + push de + ld d, b + ld a, c + swap a + and $f + ld e, a + ld a, c + and $f + ld b, a + ld c, $0 + cp $2 + jr z, .asm_c57c + cp $3 + jr z, .asm_c56c + cp $4 + jr z, .asm_c55b + cp $5 + jr z, .asm_c54a + cp $6 + jr z, .asm_c538 + ld a, $f + ld [hMultiplier], a + ld a, $42 + ld [hMathBuffer], a + ld a, $40 + ld [$ffb9], a + call $45cb + call PrintNumber_AdvancePointer + +.asm_c538 + ld a, $1 + ld [hMultiplier], a + ld a, $86 + ld [hMathBuffer], a + ld a, $a0 + ld [$ffb9], a + call $45cb + call PrintNumber_AdvancePointer + +.asm_c54a + xor a + ld [hMultiplier], a + ld a, $27 + ld [hMathBuffer], a + ld a, $10 + ld [$ffb9], a + call $45cb + call PrintNumber_AdvancePointer + +.asm_c55b + xor a + ld [hMultiplier], a + ld a, $3 + ld [hMathBuffer], a + ld a, $e8 + ld [$ffb9], a + call $45cb + call PrintNumber_AdvancePointer + +.asm_c56c + xor a + ld [hMultiplier], a + xor a + ld [hMathBuffer], a + ld a, $64 + ld [$ffb9], a + call $45cb + call PrintNumber_AdvancePointer + +.asm_c57c + dec e + jr nz, .asm_c583 + ld a, $f6 + ld [hProduct], a + +.asm_c583 + ld c, $0 + ld a, [$ffb6] +.asm_c587 + cp $a + jr c, .asm_c590 + sub $a + inc c + jr .asm_c587 + +.asm_c590 + ld b, a + ld a, [hProduct] + or c + jr nz, .asm_c59b + call PrintNumber_PrintLeadingZero + jr .asm_c5ad + +.asm_c59b + call $45ba + push af + ld a, $f6 + add c + ld [hl], a + pop af + ld [hProduct], a + inc e + dec e + jr nz, .asm_c5ad + inc hl + ld [hl], $f2 + +.asm_c5ad + call PrintNumber_AdvancePointer + call $45ba + ld a, $f6 + add b + ld [hli], a + pop de + pop bc + ret +; c5ba + +Functionc5ba: ; c5ba + push af + ld a, [hProduct] + and a + jr nz, .asm_c5c9 + bit 5, d + jr z, .asm_c5c9 + ld a, $f0 + ld [hli], a + res 5, d + +.asm_c5c9 + pop af + ret +; c5cb + +INCBIN "baserom.gbc", $c5cb, $c5d2 - $c5cb PrintNumber_PrintDigit: ; c5d2 INCBIN "baserom.gbc", $c5d2, $c644 - $c5d2 @@ -13517,7 +17294,389 @@ AskSurfText: ; ca36 ; ca3b -INCBIN "baserom.gbc", $ca3b, $d407 - $ca3b +INCBIN "baserom.gbc", $ca3b, $d1d5 - $ca3b + + +Functiond1d5: ; d1d5 + call $527b + jp nz, $529c + push hl + call CheckItemPocket + pop de + ld a, [$d142] + dec a + ld hl, $51e9 + rst JumpTable + ret +; d1e9 + +INCBIN "baserom.gbc", $d1e9, $d1f1 - $d1e9 + + +Functiond1f1: ; d1f1 + ld h, d + ld l, e + jp $529c +; d1f6 + +Functiond1f6: ; d1f6 + ld h, d + ld l, e + jp $535a +; d1fb + +Functiond1fb: ; d1fb + ld hl, NumBalls + jp $529c +; d201 + +Functiond201: ; d201 + ld h, d + ld l, e + ld a, [CurItem] + ld c, a + call GetTMHMNumber + jp $53c4 +; d20d + +Functiond20d: ; d20d + call $527b + jr nz, .asm_d241 + push hl + call CheckItemPocket + pop de + ld a, [$d142] + dec a + ld hl, .data_d220 + rst JumpTable + ret + +.data_d220 + db $3f + db $52 + db $3a + db $52 + db $28 + db $52 + db $2e + db $52 + db $21 + db $d7 + db $d8 + db $c3 + db $ff + db $52 + db $62 + db $6b + db $fa + db $6 + db $d1 + db $4f + db $cd + db $7 + db $54 + db $c3 + db $d8 + db $53 + db $62 + db $6b + db $c3 + db $74 + db $53 + db $62 + db $6b + +.asm_d241 + jp $52ff +; d244 + +Functiond244: ; d244 + call $527b + jr nz, .asm_d278 + push hl + call CheckItemPocket + pop de + ld a, [$d142] + dec a + ld hl, .data_d257 + rst JumpTable + ret + +.data_d257 + db $76 + db $52 + db $71 + db $52 + db $5f + db $52 + db $65 + db $52 + db $21 + db $d7 + db $d8 + db $c3 + db $49 + db $53 + db $62 + db $6b + db $fa + db $6 + db $d1 + db $4f + db $cd + db $7 + db $54 + db $c3 + db $fb + db $53 + db $62 + db $6b + db $c3 + db $b1 + db $53 + db $62 + db $6b + +.asm_d278 + jp $5349 +; d27b + +Functiond27b: ; d27b + ld a, l + cp $92 + ret nz + ld a, h + cp $d8 + ret +; d283 + +Functiond283: ; d283 + ld c, $14 + ld a, e + cp $92 + jr nz, .asm_d28e + ld a, d + cp $d8 + ret z + +.asm_d28e + ld c, $32 + ld a, e + cp $f1 + jr nz, .asm_d299 + ld a, d + cp $d8 + ret z + +.asm_d299 + ld c, $c + ret +; d29c + +Functiond29c: ; d29c + ld d, h + ld e, l + inc hl + ld a, [CurItem] + ld c, a + ld b, $0 +.asm_d2a5 + ld a, [hli] + cp $ff + jr z, .asm_d2bd + cp c + jr nz, .asm_d2ba + ld a, $63 + sub [hl] + add b + ld b, a + ld a, [$d10c] + cp b + jr z, .asm_d2c6 + jr c, .asm_d2c6 + +.asm_d2ba + inc hl + jr .asm_d2a5 + +.asm_d2bd + call $5283 + ld a, [de] + cp c + jr c, .asm_d2c6 + and a + ret + +.asm_d2c6 + ld h, d + ld l, e + ld a, [CurItem] + ld c, a + ld a, [$d10c] + ld [$d10d], a +.asm_d2d2 + inc hl + ld a, [hli] + cp $ff + jr z, .asm_d2ef + cp c + jr nz, .asm_d2d2 + ld a, [$d10d] + add [hl] + cp $64 + jr nc, .asm_d2e6 + ld [hl], a + jr .asm_d2fd + +.asm_d2e6 + ld [hl], $63 + sub $63 + ld [$d10d], a + jr .asm_d2d2 + +.asm_d2ef + dec hl + ld a, [CurItem] + ld [hli], a + ld a, [$d10d] + ld [hli], a + ld [hl], $ff + ld h, d + ld l, e + inc [hl] + +.asm_d2fd + scf + ret +; d2ff + +Functiond2ff: ; d2ff + ld d, h + ld e, l + ld a, [hli] + ld c, a + ld a, [$d107] + cp c + jr nc, .asm_d318 + ld c, a + ld b, $0 + add hl, bc + add hl, bc + ld a, [CurItem] + cp [hl] + inc hl + jr z, .asm_d327 + ld h, d + ld l, e + inc hl + +.asm_d318 + ld a, [CurItem] + ld b, a +.asm_d31c + ld a, [hli] + cp b + jr z, .asm_d327 + cp $ff + jr z, .asm_d347 + inc hl + jr .asm_d31c + +.asm_d327 + ld a, [$d10c] + ld b, a + ld a, [hl] + sub b + jr c, .asm_d347 + ld [hl], a + ld [$d10d], a + and a + jr nz, .asm_d345 + dec hl + ld b, h + ld c, l + inc hl + inc hl +.asm_d33b + ld a, [hli] + ld [bc], a + inc bc + cp $ff + jr nz, .asm_d33b + ld h, d + ld l, e + dec [hl] + +.asm_d345 + scf + ret + +.asm_d347 + and a + ret +; d349 + +Functiond349: ; d349 + ld a, [CurItem] + ld c, a +.asm_d34d + inc hl + ld a, [hli] + cp $ff + jr z, .asm_d358 + cp c + jr nz, .asm_d34d + scf + ret + +.asm_d358 + and a + ret +; d35a + +Functiond35a: ; d35a + ld hl, NumKeyItems + ld a, [hli] + cp $19 + jr nc, .asm_d372 + ld c, a + ld b, $0 + add hl, bc + ld a, [CurItem] + ld [hli], a + ld [hl], $ff + ld hl, NumKeyItems + inc [hl] + scf + ret + +.asm_d372 + and a + ret +; d374 + +INCBIN "baserom.gbc", $d374, $d3c4 - $d374 + + +Functiond3c4: ; d3c4 + dec c + ld b, $0 + ld hl, TMsHMs + add hl, bc + ld a, [$d10c] + add [hl] + cp $64 + jr nc, .asm_d3d6 + ld [hl], a + scf + ret + +.asm_d3d6 + and a + ret +; d3d8 + +INCBIN "baserom.gbc", $d3d8, $d407 - $d3d8 GetTMHMNumber: ; d407 @@ -13647,7 +17806,1338 @@ Function0xd47f: ; d47f ; d486 -INCBIN "baserom.gbc", $d486, $e58b - $d486 +Functiond486: ; d486 + push hl + push bc + ld a, $0 + call GetItemAttr + ld e, a + ld a, $1 + call GetItemAttr + ld d, a + pop bc + pop hl + ret +; d497 + +INCBIN "baserom.gbc", $d497, $d88c - $d497 + + +Functiond88c: ; d88c + ld de, PartyCount + ld a, [MonType] + and $f + jr z, .asm_d899 + ld de, OTPartyCount + +.asm_d899 + ld a, [de] + inc a + cp $7 + ret nc + ld [de], a + ld a, [de] + ld [$ffae], a + add e + ld e, a + jr nc, .asm_d8a7 + inc d + +.asm_d8a7 + ld a, [CurPartySpecies] + ld [de], a + inc de + ld a, $ff + ld [de], a + ld hl, PartyMon1OT + ld a, [MonType] + and $f + jr z, .asm_d8bc + ld hl, OTPartyMon1OT + +.asm_d8bc + ld a, [$ffae] + dec a + call SkipNames + ld d, h + ld e, l + ld hl, PlayerName + ld bc, $000b + call CopyBytes + ld a, [MonType] + and a + jr nz, .asm_d8f0 + ld a, [CurPartySpecies] + ld [$d265], a + call GetPokemonName + ld hl, PartyMon1Nickname + ld a, [$ffae] + dec a + call SkipNames + ld d, h + ld e, l + ld hl, StringBuffer1 + ld bc, $000b + call CopyBytes + +.asm_d8f0 + ld hl, PartyMon1Species + ld a, [MonType] + and $f + jr z, .asm_d8fd + ld hl, OTPartyMon1Species + +.asm_d8fd + ld a, [$ffae] + dec a + ld bc, $0030 + call AddNTimes + ld e, l + ld d, h + push hl + ld a, [CurPartySpecies] + ld [CurSpecies], a + call GetBaseData + ld a, [BaseDexNo] + ld [de], a + inc de + ld a, [IsInBattle] + and a + ld a, $0 + jr z, .asm_d922 + ld a, [EnemyMonItem] + +.asm_d922 + ld [de], a + inc de + push de + ld h, d + ld l, e + ld a, [IsInBattle] + and a + jr z, .asm_d943 + ld a, [MonType] + and a + jr nz, .asm_d943 + ld de, EnemyMonMove1 + 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] + ld [hl], a + jr .asm_d950 + +.asm_d943 + xor a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hl], a + ld [MagikarpLength], a + ld a, $1b + call Predef + +.asm_d950 + pop de + inc de + inc de + inc de + inc de + ld a, [PlayerID] + ld [de], a + inc de + ld a, [$d47c] + ld [de], a + inc de + push de + ld a, [CurPartyLevel] + ld d, a + ld hl, $4e47 + ld a, $14 + rst FarCall + pop de + ld a, [hMultiplicand] + ld [de], a + inc de + ld a, [$ffb5] + ld [de], a + inc de + ld a, [$ffb6] + ld [de], a + inc de + xor a + ld b, $a +.asm_d97a + ld [de], a + inc de + dec b + jr nz, .asm_d97a + pop hl + push hl + ld a, [MonType] + and $f + jr z, .asm_d992 + push hl + callba GetTrainerDVs + pop hl + jr .asm_d9b5 + +.asm_d992 + ld a, [CurPartySpecies] + ld [$d265], a + dec a + push de + call CheckSeenMon + ld a, [$d265] + dec a + call SetSeenAndCaughtMon + pop de + pop hl + push hl + ld a, [IsInBattle] + and a + jr nz, .asm_d9f3 + call RNG + ld b, a + call RNG + ld c, a + +.asm_d9b5 + ld a, b + ld [de], a + inc de + ld a, c + ld [de], a + inc de + push hl + push de + inc hl + inc hl + call $5a6d + pop de + pop hl + inc de + inc de + inc de + inc de + ld a, $46 + ld [de], a + inc de + xor a + ld [de], a + inc de + ld [de], a + inc de + ld [de], a + inc de + ld a, [CurPartyLevel] + ld [de], a + inc de + xor a + ld [de], a + inc de + ld [de], a + inc de + ld bc, $000a + add hl, bc + ld a, $1 + ld c, a + ld b, $0 + call $617b + ld a, [$ffb5] + ld [de], a + inc de + ld a, [$ffb6] + ld [de], a + inc de + jr .asm_da29 + +.asm_d9f3 + ld a, [EnemyMonAtkDefDV] + ld [de], a + inc de + ld a, [EnemyMonSpdSpclDV] + ld [de], a + inc de + push hl + ld hl, EnemyMonPPMove1 + ld b, $4 +.asm_da03 + ld a, [hli] + ld [de], a + inc de + dec b + jr nz, .asm_da03 + pop hl + ld a, $46 + ld [de], a + inc de + xor a + ld [de], a + inc de + ld [de], a + inc de + ld [de], a + inc de + ld a, [CurPartyLevel] + ld [de], a + inc de + ld hl, EnemyMonStatus + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + inc de + +.asm_da29 + ld a, [IsInBattle] + dec a + jr nz, .asm_da3b + ld hl, EnemyMonMaxHPHi + ld bc, $000c + call CopyBytes + pop hl + jr .asm_da45 + +.asm_da3b + pop hl + ld bc, $000a + add hl, bc + ld b, $0 + call $6167 + +.asm_da45 + ld a, [MonType] + and $f + jr nz, .asm_da6b + ld a, [CurPartySpecies] + cp $c9 + jr nz, .asm_da6b + ld hl, PartyMon1DVs + ld a, [PartyCount] + dec a + ld bc, $0030 + call AddNTimes + ld a, $2d + call Predef + ld hl, $7a18 + ld a, $3e + rst FarCall + +.asm_da6b + scf + ret +; da6d + +Functionda6d: ; da6d + push bc + ld b, $4 +.asm_da70 + ld a, [hli] + and a + jr z, .asm_da8f + dec a + push hl + push de + push bc + ld hl, $5afb + ld bc, $0007 + call AddNTimes + ld de, StringBuffer1 + ld a, $10 + call FarCopyBytes + pop bc + pop de + pop hl + ld a, [$d078] + +.asm_da8f + ld [de], a + inc de + dec b + jr nz, .asm_da70 + pop bc + ret +; da96 + +INCBIN "baserom.gbc", $da96, $dcb6 - $da96 + + +Functiondcb6: ; dcb6 + ld a, b + ld hl, $ad26 + ld bc, $0020 + call AddNTimes + ld b, h + ld c, l + ld hl, $0017 + add hl, bc + push hl + push bc + ld de, TempMonPP + ld bc, $0004 + call CopyBytes + pop bc + ld hl, $0002 + add hl, bc + push hl + ld de, TempMonMove1 + ld bc, $0004 + call CopyBytes + pop hl + pop de + ld a, [$cfa9] + push af + ld a, [MonType] + push af + ld b, $0 +.asm_dcec + ld a, [hli] + and a + jr z, .asm_dd18 + ld [TempMonMove1], a + ld a, $2 + ld [MonType], a + ld a, b + ld [$cfa9], a + push bc + push hl + push de + ld a, $3 + ld hl, $78ec + rst FarCall + pop de + pop hl + ld a, [$d265] + ld b, a + ld a, [de] + and $c0 + add b + ld [de], a + pop bc + inc de + inc b + ld a, b + cp $4 + jr c, .asm_dcec + +.asm_dd18 + pop af + ld [MonType], a + pop af + ld [$cfa9], a + ret +; dd21 + +INCBIN "baserom.gbc", $dd21, $de6e - $dd21 + + +Functionde6e: ; de6e + ld a, $1 + call GetSRAMBank + ld de, $ad10 + ld a, [de] + cp $14 + jp nc, $5f42 + inc a + ld [de], a + ld a, [CurPartySpecies] + ld [CurSpecies], a + ld c, a +.asm_de85 + inc de + ld a, [de] + ld b, a + ld a, c + ld c, b + ld [de], a + inc a + jr nz, .asm_de85 + call GetBaseData + call $5f47 + ld hl, PlayerName + ld de, $afa6 + ld bc, $000b + call CopyBytes + ld a, [CurPartySpecies] + ld [$d265], a + call GetPokemonName + ld de, $b082 + ld hl, StringBuffer1 + ld bc, $000b + call CopyBytes + ld hl, EnemyMonSpecies + ld de, $ad26 + ld bc, $0006 + call CopyBytes + ld hl, PlayerID + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + inc de + push de + ld a, [CurPartyLevel] + ld d, a + ld hl, $4e47 + ld a, $14 + rst FarCall + pop de + ld a, [hMultiplicand] + ld [de], a + inc de + ld a, [$ffb5] + ld [de], a + inc de + ld a, [$ffb6] + ld [de], a + inc de + xor a + ld b, $a +.asm_dee5 + ld [de], a + inc de + dec b + jr nz, .asm_dee5 + ld hl, EnemyMonAtkDefDV + ld b, $6 +.asm_deef + ld a, [hli] + ld [de], a + inc de + dec b + jr nz, .asm_deef + ld a, $46 + ld [de], a + inc de + xor a + ld [de], a + inc de + ld [de], a + inc de + ld [de], a + inc de + ld a, [CurPartyLevel] + ld [de], a + ld a, [CurPartySpecies] + dec a + call SetSeenAndCaughtMon + ld a, [CurPartySpecies] + cp $c9 + jr nz, .asm_df20 + ld hl, $ad3b + ld a, $2d + call Predef + ld hl, $7a18 + ld a, $3e + rst FarCall + +.asm_df20 + ld hl, $ad28 + ld de, TempMonMove1 + ld bc, $0004 + call CopyBytes + ld hl, $ad3d + ld de, TempMonPP + ld bc, $0004 + call CopyBytes + ld b, $0 + call $5cb6 + call CloseSRAM + scf + ret +; df42 + +Functiondf42: ; df42 + call CloseSRAM + and a + ret +; df47 + +Functiondf47: ; df47 + ld hl, $afa6 + ld bc, $000b + call $5f5f + ld hl, $b082 + ld bc, $000b + call $5f5f + ld hl, $ad26 + ld bc, $0020 + ld a, [$ad10] + cp $2 + ret c + push hl + call AddNTimes + dec hl + ld e, l + ld d, h + pop hl + ld a, [$ad10] + dec a + call AddNTimes + dec hl + push hl + ld a, [$ad10] + dec a + ld hl, $0000 + call AddNTimes + ld c, l + ld b, h + pop hl +.asm_df83 + ld a, [hld] + ld [de], a + dec de + dec bc + ld a, c + or b + jr nz, .asm_df83 + ret +; df8c + +Functiondf8c: ; df8c + ld a, [CurPartySpecies] + push af + ld hl, $6581 + ld a, $10 + rst FarCall + ld hl, $6581 + ld a, $10 + rst FarCall + ld a, [CurPartySpecies] + dec a + push af + call CheckSeenMon + pop af + push bc + call CheckCaughtMon + push bc + call $588c + pop bc + ld a, c + and a + jr nz, .asm_dfc3 + ld a, [CurPartySpecies] + dec a + ld c, a + ld d, $0 + ld hl, PokedexSeen + ld b, $0 + ld a, $3 + call Predef + +.asm_dfc3 + pop bc + ld a, c + and a + jr nz, .asm_dfd9 + ld a, [CurPartySpecies] + dec a + ld c, a + ld d, $0 + ld hl, PokedexCaught + ld b, $0 + ld a, $3 + call Predef + +.asm_dfd9 + pop af + ld [CurPartySpecies], a + ld a, [PartyCount] + dec a + ld bc, $0030 + ld hl, PartyMon1Species + call AddNTimes + ld a, [CurPartySpecies] + ld [hl], a + ld hl, PartyCount + ld a, [hl] + ld b, $0 + ld c, a + add hl, bc + ld a, $fd + ld [hl], a + ld a, [PartyCount] + dec a + ld hl, PartyMon1Nickname + call SkipNames + ld de, $6035 + call CopyName2 + ld a, [PartyCount] + dec a + ld hl, PartyMon1Happiness + ld bc, $0030 + call AddNTimes + ld a, [$c2cc] + bit 1, a + ld a, $1 + jr nz, .asm_e022 + ld a, [BaseEggSteps] + +.asm_e022 + ld [hl], a + ld a, [PartyCount] + dec a + ld hl, PartyMon1CurHP + ld bc, $0030 + call AddNTimes + xor a + ld [hli], a + ld [hl], a + and a + ret +; e035 + +INCBIN "baserom.gbc", $e035, $e039 - $e035 + + +Functione039: ; e039 + ld hl, PartyCount + ld a, [$d10b] + and a + jr z, .asm_e04a + ld a, $1 + call GetSRAMBank + ld hl, $ad10 + +.asm_e04a + ld a, [hl] + dec a + ld [hli], a + ld a, [CurPartyMon] + ld c, a + ld b, $0 + add hl, bc + ld e, l + ld d, h + inc de +.asm_e057 + ld a, [de] + inc de + ld [hli], a + inc a + jr nz, .asm_e057 + ld hl, PartyMon1OT + ld d, $5 + ld a, [$d10b] + and a + jr z, .asm_e06d + ld hl, $afa6 + ld d, $13 + +.asm_e06d + ld a, [CurPartyMon] + call SkipNames + ld a, [CurPartyMon] + cp d + jr nz, .asm_e07e + ld [hl], $ff + jp $60f0 + +.asm_e07e + ld d, h + ld e, l + ld bc, $000b + add hl, bc + ld bc, PartyMon1Nickname + ld a, [$d10b] + and a + jr z, .asm_e090 + ld bc, $b082 + +.asm_e090 + call CopyDataUntil + ld hl, PartyMon1Species + ld bc, $0030 + ld a, [$d10b] + and a + jr z, .asm_e0a5 + ld hl, $ad26 + ld bc, $0020 + +.asm_e0a5 + ld a, [CurPartyMon] + call AddNTimes + ld d, h + ld e, l + ld a, [$d10b] + and a + jr z, .asm_e0bc + ld bc, $0020 + add hl, bc + ld bc, $afa6 + jr .asm_e0c3 + +.asm_e0bc + ld bc, $0030 + add hl, bc + ld bc, PartyMon1OT + +.asm_e0c3 + call CopyDataUntil + ld hl, PartyMon1Nickname + ld a, [$d10b] + and a + jr z, .asm_e0d2 + ld hl, $b082 + +.asm_e0d2 + ld bc, $000b + ld a, [CurPartyMon] + call AddNTimes + ld d, h + ld e, l + ld bc, $000b + add hl, bc + ld bc, $de83 + ld a, [$d10b] + and a + jr z, .asm_e0ed + ld bc, $b15e + +.asm_e0ed + call CopyDataUntil + ld a, [$d10b] + and a + jp nz, CloseSRAM + ld a, [InLinkBattle] + and a + ret nz + ld a, $0 + call GetSRAMBank + ld hl, PartyCount + ld a, [CurPartyMon] + cp [hl] + jr z, .asm_e131 + ld hl, $a600 + ld bc, $002f + call AddNTimes + push hl + add hl, bc + pop de + ld a, [CurPartyMon] + ld b, a +.asm_e11a + push bc + push hl + ld bc, $002f + call CopyBytes + pop hl + push hl + ld bc, $002f + add hl, bc + pop de + pop bc + inc b + ld a, [PartyCount] + cp b + jr nz, .asm_e11a + +.asm_e131 + jp CloseSRAM +; e134 + +Functione134: ; e134 + ld a, $1f + call GetPartyParamLocation + ld a, [hl] + ld [$001f], a + ld a, $0 + call GetPartyParamLocation + ld a, [hl] + ld [CurSpecies], a + call GetBaseData + ld a, $24 + call GetPartyParamLocation + ld d, h + ld e, l + push de + ld a, $a + call GetPartyParamLocation + ld b, $1 + call $6167 + pop de + ld a, $22 + call GetPartyParamLocation + ld a, [de] + inc de + ld [hli], a + ld a, [de] + ld [hl], a + ret +; e167 + +Functione167: ; e167 + ld c, $0 +.asm_e169 + inc c + call $617b + ld a, [$ffb5] + ld [de], a + inc de + ld a, [$ffb6] + ld [de], a + inc de + ld a, c + cp $6 + jr nz, .asm_e169 + ret +; e17b + +Functione17b: ; e17b + push hl + push de + push bc + ld a, b + ld d, a + push hl + ld hl, BaseHP + dec hl + ld b, $0 + add hl, bc + ld a, [hl] + ld e, a + pop hl + push hl + ld a, c + cp $6 + jr nz, .asm_e193 + dec hl + dec hl + +.asm_e193 + sla c + ld a, d + and a + jr z, .asm_e1a5 + add hl, bc + push de + ld a, [hld] + ld e, a + ld d, [hl] + callba GetSquareRoot + pop de + +.asm_e1a5 + srl c + pop hl + push bc + ld bc, $000b + add hl, bc + pop bc + ld a, c + cp $2 + jr z, .asm_e1e3 + cp $3 + jr z, .asm_e1ea + cp $4 + jr z, .asm_e1ef + cp $5 + jr z, .asm_e1f7 + cp $6 + jr z, .asm_e1f7 + push bc + ld a, [hl] + swap a + and $1 + add a + add a + add a + ld b, a + ld a, [hli] + and $1 + add a + add a + add b + ld b, a + ld a, [hl] + swap a + and $1 + add a + add b + ld b, a + ld a, [hl] + and $1 + add b + pop bc + jr .asm_e1fb + +.asm_e1e3 + ld a, [hl] + swap a + and $f + jr .asm_e1fb + +.asm_e1ea + ld a, [hl] + and $f + jr .asm_e1fb + +.asm_e1ef + inc hl + ld a, [hl] + swap a + and $f + jr .asm_e1fb + +.asm_e1f7 + inc hl + ld a, [hl] + and $f + +.asm_e1fb + ld d, $0 + add e + ld e, a + jr nc, .asm_e202 + inc d + +.asm_e202 + sla e + rl d + srl b + srl b + ld a, b + add e + jr nc, .asm_e20f + inc d + +.asm_e20f + ld [$ffb6], a + ld a, d + ld [$ffb5], a + xor a + ld [hMultiplicand], a + ld a, [CurPartyLevel] + ld [hMultiplier], a + call Multiply + ld a, [hMultiplicand] + ld [hProduct], a + ld a, [$ffb5] + ld [hMultiplicand], a + ld a, [$ffb6] + ld [$ffb5], a + ld a, $64 + ld [hMultiplier], a + ld a, $3 + ld b, a + call Divide + ld a, c + cp $1 + ld a, $5 + jr nz, .asm_e24e + ld a, [CurPartyLevel] + ld b, a + ld a, [$ffb6] + add b + ld [$ffb6], a + jr nc, .asm_e24c + ld a, [$ffb5] + inc a + ld [$ffb5], a + +.asm_e24c + ld a, $a + +.asm_e24e + ld b, a + ld a, [$ffb6] + add b + ld [$ffb6], a + jr nc, .asm_e25b + ld a, [$ffb5] + inc a + ld [$ffb5], a + +.asm_e25b + ld a, [$ffb5] + cp $4 + jr nc, .asm_e26b + cp $3 + jr c, .asm_e273 + ld a, [$ffb6] + cp $e8 + jr c, .asm_e273 + +.asm_e26b + ld a, $3 + ld [$ffb5], a + ld a, $e7 + ld [$ffb6], a + +.asm_e273 + pop bc + pop de + pop hl + ret +; e277 + +Functione277: ; e277 + push de + push bc + xor a + ld [MonType], a + call $588c + jr nc, .asm_e2b0 + ld hl, PartyMon1Nickname + ld a, [PartyCount] + dec a + ld [CurPartyMon], a + call SkipNames + ld d, h + ld e, l + pop bc + ld a, b + ld b, $0 + push bc + push de + push af + ld a, [CurItem] + and a + jr z, .asm_e2e1 + ld a, [CurPartyMon] + ld hl, PartyMon1Item + ld bc, $0030 + call AddNTimes + ld a, [CurItem] + ld [hl], a + jr .asm_e2e1 + +.asm_e2b0 + ld a, [CurPartySpecies] + ld [TempEnemyMonSpecies], a + callab LoadEnemyMon + call $5e6e + jp nc, $63d4 + ld a, $2 + ld [MonType], a + xor a + ld [CurPartyMon], a + ld de, $d050 + pop bc + ld a, b + ld b, $1 + push bc + push de + push af + ld a, [CurItem] + and a + jr z, .asm_e2e1 + ld a, [CurItem] + ld [$ad27], a + +.asm_e2e1 + ld a, [CurPartySpecies] + ld [$d265], a + ld [TempEnemyMonSpecies], a + call GetPokemonName + ld hl, StringBuffer1 + ld de, $d050 + ld bc, $000b + call CopyBytes + pop af + and a + jp z, $6390 + pop de + pop bc + pop hl + push bc + push hl + ld a, [ScriptBank] + call GetFarHalfword + ld bc, $000b + ld a, [ScriptBank] + call FarCopyBytes + pop hl + inc hl + inc hl + ld a, [ScriptBank] + call GetFarHalfword + pop bc + ld a, b + and a + push de + push bc + jr nz, .asm_e35e + push hl + ld a, [CurPartyMon] + ld hl, PartyMon1OT + call SkipNames + ld d, h + ld e, l + pop hl +.asm_e32f + ld a, [ScriptBank] + call GetFarByte + ld [de], a + inc hl + inc de + cp $50 + jr nz, .asm_e32f + ld a, [ScriptBank] + call GetFarByte + ld b, a + push bc + ld a, [CurPartyMon] + ld hl, PartyMon1ID + ld bc, $0030 + call AddNTimes + ld a, $3 + ld [hli], a + ld [hl], $e9 + pop bc + ld a, $13 + ld hl, $5ba3 + rst FarCall + jr .asm_e3b2 + +.asm_e35e + ld a, $1 + call GetSRAMBank + ld de, $afa6 +.asm_e366 + ld a, [ScriptBank] + call GetFarByte + ld [de], a + inc hl + inc de + cp $50 + jr nz, .asm_e366 + ld a, [ScriptBank] + call GetFarByte + ld b, a + ld hl, $ad2c + call RNG + ld [hli], a + call RNG + ld [hl], a + call CloseSRAM + ld a, $13 + ld hl, $5b92 + rst FarCall + jr .asm_e3b2 + + pop de + pop bc + push bc + push de + ld a, b + and a + jr z, .asm_e3a0 + ld a, $13 + ld hl, $5b83 + rst FarCall + jr .asm_e3a6 + +.asm_e3a0 + ld a, $13 + ld hl, $5b49 + rst FarCall + +.asm_e3a6 + ld a, $13 + ld hl, $5b3b + rst FarCall + pop de + jr c, .asm_e3b2 + call $63de + +.asm_e3b2 + pop bc + pop de + ld a, b + and a + ret z + ld hl, $63d9 + call PrintText + ld a, $1 + call GetSRAMBank + ld hl, $d050 + ld de, $b082 + ld bc, $000b + call CopyBytes + call CloseSRAM + ld b, $1 + ret +; e3d4 + +Functione3d4: ; e3d4 + pop bc + pop de + ld b, $2 + ret +; e3d9 + +INCBIN "baserom.gbc", $e3d9, $e3de - $e3d9 + + +Functione3de: ; e3de + push de + call $1d6e + call Function2ed3 + pop de + push de + ld b, $0 + ld a, $4 + ld hl, $56c1 + rst FarCall + pop hl + ld de, StringBuffer1 + call InitString + ld a, $4 + ld hl, $2b4d + rst FarCall + ret +; e3fd + +INCBIN "baserom.gbc", $e3fd, $e538 - $e3fd + + +Functione538: ; e538 + ld hl, PartyMon1CurHP + ld de, $0030 + ld b, $0 +.asm_e540 + ld a, [CurPartyMon] + cp b + jr z, .asm_e54b + ld a, [hli] + or [hl] + jr nz, .asm_e557 + dec hl + +.asm_e54b + inc b + ld a, [PartyCount] + cp b + jr z, .asm_e555 + add hl, de + jr .asm_e540 + +.asm_e555 + scf + ret + +.asm_e557 + and a + ret +; e559 + +INCBIN "baserom.gbc", $e559, $e58b - $e559 ClearPCItemScreen: ; e58b call Function2ed3 @@ -13670,7 +19160,50 @@ ClearPCItemScreen: ; e58b ret ; 0xe5bb -INCBIN "baserom.gbc", $e5bb, $e722 - $e5bb +INCBIN "baserom.gbc", $e5bb, $e6ce - $e5bb + + +Functione6ce: ; e6ce + ld a, [$df9c] + and a + jr z, .asm_e6ea + ld [$d265], a + ld a, $33 + ld hl, $40c7 + rst FarCall + ld a, $33 + ld hl, $4000 + rst FarCall + ld bc, $0e07 + call $1dd2 + ret c + +.asm_e6ea + call $66fd + ld a, [TempEnemyMonSpecies] + ld [$d265], a + call GetPokemonName + ld hl, $671d + call PrintText + ret +; e6fd + +Functione6fd: ; e6fd + ld a, [TempEnemyMonSpecies] + ld [CurSpecies], a + ld [CurPartySpecies], a + call GetBaseData + xor a + ld bc, $0030 + ld hl, $df9c + call ByteFill + xor a + ld [MonType], a + ld hl, $df9c + jp $5906 +; e71d + +INCBIN "baserom.gbc", $e71d, $e722 - $e71d _DoItemEffect: ; e722 @@ -13873,17 +19406,481 @@ ItemEffects: ; e73c INCLUDE "items/item_effects.asm" -INCBIN "baserom.gbc", $f780, $fa0b - $f780 +INCBIN "baserom.gbc", $f780, $f881 - $f780 + + +Functionf881: ; f881 + push bc + ld a, [de] + ld [$ffb6], a + xor a + ld [hProduct], a + ld [hMultiplicand], a + ld [$ffb5], a + ld a, $5 + ld [hMultiplier], a + ld b, $4 + call Divide + ld a, [hl] + ld b, a + swap a + and $f + srl a + srl a + ld c, a + and a + jr z, .asm_f8b6 +.asm_f8a3 + ld a, [$ffb6] + cp $8 + jr c, .asm_f8ab + ld a, $7 + +.asm_f8ab + add b + ld b, a + ld a, [$d265] + dec a + jr z, .asm_f8b6 + dec c + jr nz, .asm_f8a3 + +.asm_f8b6 + ld [hl], b + pop bc + ret +; f8b9 + +INCBIN "baserom.gbc", $f8b9, $f8ec - $f8b9 + + +Functionf8ec: ; f8ec + ld a, [StringBuffer1] + push af + ld a, [$d074] + push af + ld a, [MonType] + and a + ld hl, PartyMon1Move1 + ld bc, $0030 + jr z, .asm_f91a + ld hl, OTPartyMon1Move1 + dec a + jr z, .asm_f91a + ld hl, TempMonMove1 + dec a + jr z, .asm_f915 + ld hl, TempMonMove1 + dec a + jr z, .asm_f915 + ld hl, BattleMonMove1 + +.asm_f915 + call $7969 + jr .asm_f91d + +.asm_f91a + call $7963 + +.asm_f91d + ld a, [hl] + dec a + push hl + ld hl, $5b00 + ld bc, $0007 + call AddNTimes + ld a, $10 + call GetFarByte + ld b, a + ld de, StringBuffer1 + ld [de], a + pop hl + push bc + ld bc, $0015 + ld a, [MonType] + cp $4 + jr nz, .asm_f942 + ld bc, $0006 + +.asm_f942 + add hl, bc + ld a, [hl] + and $c0 + pop bc + or b + ld hl, $d074 + ld [hl], a + xor a + ld [$d265], a + ld a, b + call $7881 + ld a, [hl] + and $3f + ld [$d265], a + pop af + ld [$d074], a + pop af + ld [StringBuffer1], a + ret +; f963 + +Functionf963: ; f963 + ld a, [CurPartyMon] + call AddNTimes + ld a, [$cfa9] + ld c, a + ld b, $0 + add hl, bc + ret +; f971 + +INCBIN "baserom.gbc", $f971, $f9ea - $f971 + + +Functionf9ea: ; f9ea + ld a, $2 + call GetPartyParamLocation + ld a, [$d262] + ld b, a + ld c, $4 +.asm_f9f5 + ld a, [hli] + cp b + jr z, .asm_f9fe + dec c + jr nz, .asm_f9f5 + and a + ret + +.asm_f9fe + ld hl, $7a06 + call PrintText + scf + ret +; fa06 + +INCBIN "baserom.gbc", $fa06, $fa0b - $fa06 SECTION "bank4",DATA,BANK[$4] -INCBIN "baserom.gbc", $10000, $10b16 - $10000 +Function10000: ; 10000 + ld hl, Options + set 4, [hl] + call $468a +.asm_10008 + call Functiona57 + ld a, [$cf63] + bit 7, a + jr nz, .asm_1001a + call $4026 + call DelayFrame + jr .asm_10008 + +.asm_1001a + ld a, [$cf65] + ld [$d0d6], a + ld hl, Options + res 4, [hl] + ret +; 10026 + +Function10026: ; 10026 + ld a, [$cf63] + ld hl, $4030 + call $486b + jp [hl] +; 10030 + +INCBIN "baserom.gbc", $10030, $1068a - $10030 + + +Function1068a: ; 1068a + xor a + ld [$cf63], a + ld a, [$d0d6] + and $3 + ld [$cf65], a + inc a + add a + dec a + ld [$cf64], a + xor a + ld [$cf66], a + xor a + ld [$d0e3], a + ret +; 106a5 + +Function106a5: ; 106a5 + xor a + ld [hBGMapMode], a + ld [$cf63], a + ld [$cf64], a + ld [$cf65], a + ld [$cf66], a + ld [$d0e3], a + call $4955 + call $4a40 + ret +; 106be + +Function106be: ; 106be +.asm_106be + call $46c7 + call $476f + jr c, .asm_106be + ret +; 106c7 + +Function106c7: ; 106c7 + ld a, [$cf63] + ld hl, $46d1 + call $486b + jp [hl] +; 106d1 + +INCBIN "baserom.gbc", $106d1, $1076f - $106d1 + + +Function1076f: ; 1076f + ld hl, $cf73 + ld a, [hl] + and $1 + jr nz, .asm_10788 + ld a, [hl] + and $2 + jr nz, .asm_1078f + ld a, [hl] + and $20 + jr nz, .asm_10795 + ld a, [hl] + and $10 + jr nz, .asm_107a8 + scf + ret + +.asm_10788 + ld a, $1 + ld [$cf66], a + and a + ret + +.asm_1078f + xor a + ld [$cf66], a + and a + ret + +.asm_10795 + ld a, [$cf63] + dec a + and $3 + ld [$cf63], a + push de + ld de, $0062 + call StartSFX + pop de + scf + ret + +.asm_107a8 + ld a, [$cf63] + inc a + and $3 + ld [$cf63], a + push de + ld de, $0062 + call StartSFX + pop de + scf + ret +; 107bb + +INCBIN "baserom.gbc", $107bb, $1086b - $107bb + + +Function1086b: ; 1086b + ld e, a + ld d, $0 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ret +; 10874 + +INCBIN "baserom.gbc", $10874, $1089d - $10874 + + +Function1089d: ; 1089d + ld a, [$cf65] + and $3 + ld e, a + ld d, $0 + ld a, [BattleType] + cp $3 + jr z, .asm_108b3 + ld a, [PlayerGender] + bit 0, a + jr nz, .asm_108c5 + +.asm_108b3 + ld hl, $48cc + add hl, de + add hl, de + ld a, [hli] + ld e, a + ld d, [hl] + ld hl, $9500 + ld bc, $040f + call Functioneba + ret + +.asm_108c5 + ld a, $12 + ld hl, $4e81 + rst FarCall + ret +; 108cc + +INCBIN "baserom.gbc", $108cc, $10955 - $108cc + + +Function10955: ; 10955 + call WhiteBGMap + call ClearTileMap + call ClearSprites + call DisableLCD + ld hl, $4b16 + ld de, VTiles2 + ld bc, $0600 + ld a, $4 + call FarCopyBytes + ld hl, $c4b4 + ld bc, $00dc + ld a, $24 + call ByteFill + ld hl, $c4b9 + ld bc, $0b0f + call ClearBox + ld hl, TileMap + ld a, $28 + ld c, $14 +.asm_1098a + ld [hli], a + inc a + dec c + jr nz, .asm_1098a + call $49bb + call $49a5 + ld hl, $c590 + ld bc, $0412 + call TextBox + call EnableLCD + call $489d + ret +; 109a5 + +Function109a5: ; 109a5 + ld hl, $c4dc + ld a, $50 + ld de, $000f + ld b, $3 +.asm_109af + ld c, $5 +.asm_109b1 + ld [hli], a + inc a + dec c + jr nz, .asm_109b1 + add hl, de + dec b + jr nz, .asm_109af + ret +; 109bb + +Function109bb: ; 109bb + ld a, [$cf65] + ld d, a + swap a + sub d + ld d, $0 + ld e, a + ld hl, $49e1 + add hl, de + ld d, h + ld e, l + ld hl, $c52c + ld c, $3 +.asm_109d0 + ld b, $5 +.asm_109d2 + ld a, [de] + inc de + ld [hli], a + dec b + jr nz, .asm_109d2 + ld a, c + ld c, $f + add hl, bc + ld c, a + dec c + jr nz, .asm_109d0 + ret +; 109e1 + +INCBIN "baserom.gbc", $109e1, $10a40 - $109e1 + + +Function10a40: ; 10a40 + call WaitBGMap + ld b, $14 + call GetSGBLayout + call Function32f9 + call DelayFrame + ret +; 10a4f + +INCBIN "baserom.gbc", $10a4f, $10b16 - $10a4f PackGFX: INCBIN "gfx/misc/pack.2bpp" -INCBIN "baserom.gbc", $113d6, $1167a - $113d6 +Function113d6: ; 113d6 + call $54dd + ret +; 113da + +Function113da: ; 113da + xor a + ld [$dc2d], a + ld [$dc3a], a + ld [$dc1c], a + ret +; 113e5 + +INCBIN "baserom.gbc", $113e5, $114dd - $113e5 + + +Function114dd: ; 114dd + call UpdateTime + ld hl, $dc23 + call $5621 + ret +; 114e7 + +INCBIN "baserom.gbc", $114e7, $11621 - $114e7 + + +Function11621: ; 11621 + ld a, [CurDay] + ld [hl], a + ret +; 11626 + +INCBIN "baserom.gbc", $11626, $1167a - $11626 TechnicalMachines: ; 0x1167a db DYNAMICPUNCH @@ -13953,7 +19950,276 @@ Function116b7: ; 0x116b7 ret ; 0x116c1 -INCBIN "baserom.gbc", $116c1, $11ce7 - $116c1 +Function116c1: ; 116c1 + ld hl, PlayerSDefLevel + ld [hl], e + inc hl + ld [hl], d + ld hl, EnemyAtkLevel + ld [hl], b + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + ld a, [$ffde] + push af + xor a + ld [$ffde], a + ld a, [$ffaa] + push af + ld a, $1 + ld [$ffaa], a + call $56f8 + call DelayFrame +.asm_116e5 + call $5915 + jr nc, .asm_116e5 + pop af + ld [$ffaa], a + pop af + ld [$ffde], a + pop af + ld [Options], a + call ClearJoypadPublic + ret +; 116f8 + +Function116f8: ; 116f8 + call WhiteBGMap + ld b, $8 + call GetSGBLayout + call DisableLCD + call $5c51 + call $58a8 + ld a, $e3 + ld [rLCDC], a + call $571d + call WaitBGMap + call WaitTop + call Function32f9 + call $5be0 + ret +; 1171d + +Function1171d: ; 1171d + ld a, [EnemyAtkLevel] + and $7 + ld e, a + ld d, $0 + ld hl, $572e + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 1172e + +INCBIN "baserom.gbc", $1172e, $1189c - $1172e + + +Function1189c: ; 1189c + push bc + push af + ld a, [EnemyAtkLevel] + sub $3 + ld b, a + pop af + dec b + pop bc + ret +; 118a8 + +Function118a8: ; 118a8 + call WaitTop + ld hl, TileMap + ld bc, $0168 + ld a, $60 + call ByteFill + ld hl, $c4b5 + ld bc, $0612 + call $589c + jr nz, .asm_118c4 + ld bc, $0412 + +.asm_118c4 + call ClearBox + ld de, $5da2 + call $589c + jr nz, .asm_118d5 + ld hl, $0055 + add hl, de + ld d, h + ld e, l + +.asm_118d5 + push de + ld hl, $c541 + ld bc, $0712 + call $589c + jr nz, .asm_118e7 + ld hl, $c519 + ld bc, $0912 + +.asm_118e7 + call ClearBox + ld hl, $c5e1 + ld bc, $0112 + call ClearBox + pop de + ld hl, $c542 + ld b, $5 + call $589c + jr nz, .asm_11903 + ld hl, $c51a + ld b, $6 + +.asm_11903 + ld c, $11 +.asm_11905 + ld a, [de] + ld [hli], a + inc de + dec c + jr nz, .asm_11905 + push de + ld de, $0017 + add hl, de + pop de + dec b + jr nz, .asm_11903 + ret +; 11915 + +Function11915: ; 11915 + call Functiona57 + ld a, [$cf63] + bit 7, a + jr nz, .asm_11930 + call $5968 + ld a, $23 + ld hl, $4f62 + rst FarCall + call $5940 + call DelayFrame + and a + ret + +.asm_11930 + callab Function8cf53 + call ClearSprites + xor a + ld [$ffcf], a + ld [$ffd0], a + scf + ret +; 11940 + +Function11940: ; 11940 + xor a + ld [hBGMapMode], a + ld hl, $c505 + call $589c + jr nz, .asm_1194e + ld hl, $c4dd + +.asm_1194e + ld bc, $0112 + call ClearBox + ld hl, PlayerSDefLevel + ld e, [hl] + inc hl + ld d, [hl] + ld hl, EnemySDefLevel + ld a, [hli] + ld h, [hl] + ld l, a + call PlaceString + ld a, $1 + ld [hBGMapMode], a + ret +; 11968 + +Function11968: ; 11968 + ld a, [$cf63] + ld e, a + ld d, $0 + ld hl, $5977 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 11977 + +INCBIN "baserom.gbc", $11977, $11be0 - $11977 + + +Function11be0: ; 11be0 + ld hl, PlayerSDefLevel + ld a, [hli] + ld h, [hl] + ld l, a + ld [hl], $f2 + inc hl + ld a, [$c6d3] + dec a + ld c, a + ld a, $eb +.asm_11bf0 + ld [hli], a + dec c + jr nz, .asm_11bf0 + ld [hl], $50 + ret +; 11bf7 + +INCBIN "baserom.gbc", $11bf7, $11c51 - $11bf7 + + +Function11c51: ; 11c51 + call ClearSprites + callab Function8cf53 + call $0e51 + call Functione5f + ld de, $5e65 + ld hl, $8eb0 + ld bc, $0401 + call Functionf9d + ld de, $5e6d + ld hl, $8f20 + ld bc, $0401 + call Functionf9d + ld de, $9600 + ld hl, $5cb7 + ld bc, $0010 + ld a, $4 + call FarCopyBytes + ld de, $87e0 + ld hl, $5cc7 + ld bc, $0020 + ld a, $4 + call FarCopyBytes + ld a, $5 + ld hl, $c312 + ld [hli], a + ld [hl], $7e + xor a + ld [$ffd0], a + ld [$c3bf], a + ld [$ffcf], a + ld [$c3c0], a + ld [$cf63], a + ld [$cf64], a + ld [hBGMapMode], a + ld [PlayerEvaLevel], a + ld a, $7 + ld [$ffd1], a + ret +; 11cb7 + +INCBIN "baserom.gbc", $11cb7, $11ce7 - $11cb7 NameInputLower: db "a b c d e f g h i" @@ -15218,7 +21484,217 @@ UseRegisteredItem: ; 133c3 ; 1342d -INCBIN "baserom.gbc", $1342d, $13b87 - $1342d +Function1342d: ; 1342d + call $744a + call $747d + jr c, .asm_13448 + ld [$d041], a + call $74dd + jr c, .asm_13448 + ld hl, $d041 + cp [hl] + jr z, .asm_13448 + call $74c0 + and a + ret + +.asm_13448 + scf + ret +; 1344a + +Function1344a: ; 1344a + ld a, b + ld [EngineBuffer1], a + ld a, e + ld [CurFruit], a + ld a, d + ld [$d040], a + call $745a + ret +; 1345a + +Function1345a: ; 1345a + ld de, $d0f0 + ld bc, $0004 + ld hl, CurFruit + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [EngineBuffer1] + call GetFarByte + inc hl + ld [de], a + inc de +.asm_1346f + ld a, [EngineBuffer1] + call GetFarByte + ld [de], a + inc de + add hl, bc + cp $ff + jr nz, .asm_1346f + ret +; 1347d + +Function1347d: ; 1347d + ld hl, CurFruit + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [EngineBuffer1] + call GetFarByte + ld c, a + inc hl + ld a, [BackupMapGroup] + ld d, a + ld a, [BackupMapNumber] + ld e, a + ld b, $0 +.asm_13495 + ld a, [EngineBuffer1] + call GetFarByte + cp $ff + jr z, .asm_134be + inc hl + inc hl + ld a, [EngineBuffer1] + call GetFarByte + inc hl + cp d + jr nz, .asm_134b7 + ld a, [EngineBuffer1] + call GetFarByte + inc hl + cp e + jr nz, .asm_134b8 + jr .asm_134bb + +.asm_134b7 + inc hl + +.asm_134b8 + inc b + jr .asm_13495 + +.asm_134bb + xor a + ld a, b + ret + +.asm_134be + scf + ret +; 134c0 + +Function134c0: ; 134c0 + push af + ld hl, CurFruit + ld a, [hli] + ld h, [hl] + ld l, a + inc hl + pop af + ld bc, $0004 + call AddNTimes + inc hl + ld de, $dcac + ld a, [EngineBuffer1] + ld bc, $0003 + call FarCopyBytes + ret +; 134dd + +Function134dd: ; 134dd + call $1d6e + ld hl, $750d + call PrintText + call $7512 + ld hl, $7550 + call Function1d3c + call $352f + call $1ad2 + xor a + ld [$d0e4], a + call $350c + call Function1c17 + ld a, [$cf73] + cp $2 + jr z, .asm_1350b + xor a + ld a, [$cf77] + ret + +.asm_1350b + scf + ret +; 1350d + +INCBIN "baserom.gbc", $1350d, $13512 - $1350d + + +Function13512: ; 13512 + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + ld hl, TileMap + ld b, $4 + ld c, $8 + call TextBox + ld hl, $c4c9 + ld de, $7537 + call PlaceString + ld hl, $c4f4 + call $753f + pop af + ld [Options], a + ret +; 13537 + +INCBIN "baserom.gbc", $13537, $1353f - $13537 + + +Function1353f: ; 1353f + push hl + ld a, [$d041] + ld e, a + ld d, $0 + ld hl, $d0f1 + add hl, de + ld a, [hl] + pop de + call $756b + ret +; 13550 + +INCBIN "baserom.gbc", $13550, $1356b - $13550 + + +Function1356b: ; 1356b + push de + call $7575 + ld d, h + ld e, l + pop hl + jp PlaceString +; 13575 + +Function13575: ; 13575 + push de + ld e, a + ld d, $0 + ld hl, $7583 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + pop de + ret +; 13583 + +INCBIN "baserom.gbc", $13583, $13b87 - $13583 GetSquareRoot: ; 13b87 @@ -15257,7 +21733,19 @@ root set root+1 SECTION "bank5",DATA,BANK[$5] -INCBIN "baserom.gbc", $14000, $14019 - $14000 +Function14000: ; 14000 + ld a, $a + ld [$0000], a + call LatchClock + ld a, $c + ld [$4000], a + ld a, [$a000] + set 6, a + ld [$a000], a + call CloseSRAM + ret +; 14019 + Function14019: ; 14019 @@ -15309,7 +21797,39 @@ TimesOfDay: ; 14044 ; 1404c -INCBIN "baserom.gbc", $1404c, $14089 - $1404c +INCBIN "baserom.gbc", $1404c, $14056 - $1404c + + +Function14056: ; 14056 + call UpdateTime + ld hl, $d4ba + ld a, [CurDay] + ld [hli], a + ld a, [hHours] + ld [hli], a + ld a, [hMinutes] + ld [hli], a + ld a, [hSeconds] + ld [hli], a + ret +; 1406a + +Function1406a: ; 1406a + ld a, $a + ld [$0000], a + call LatchClock + ld hl, $a000 + ld a, $c + ld [$4000], a + res 7, [hl] + ld a, $0 + ld [$4000], a + xor a + ld [$ac60], a + call CloseSRAM + ret +; 14089 + Function14089: ; 14089 @@ -15339,7 +21859,130 @@ Function1409b: ; 1409b ret ; 140ae -INCBIN "baserom.gbc", $140ae, $14183 - $140ae +Function140ae: ; 140ae + call $06e3 + ld c, a + and $c0 + jr nz, .asm_140c8 + ld a, c + and $20 + jr z, .asm_140eb + call UpdateTime + ld a, [$d4ba] + ld b, a + ld a, [CurDay] + cp b + jr c, .asm_140eb + +.asm_140c8 + ld a, $4 + ld hl, $53da + rst FarCall + ld a, $5c + ld hl, $4923 + rst FarCall + ld a, $5 + call GetSRAMBank + ld a, [$aa8c] + inc a + ld [$aa8c], a + ld a, [$b2fa] + inc a + ld [$b2fa], a + call CloseSRAM + ret + +.asm_140eb + xor a + ret +; 140ed + + + +Function140ed: ; 140ed + call GetClock + call FixDays + ld hl, hRTCSeconds + ld de, StartSecond + ld a, [$d089] + sub [hl] + dec hl + jr nc, .asm_14102 + add $3c + +.asm_14102 + ld [de], a + dec de + ld a, [$d088] + sbc [hl] + dec hl + jr nc, .asm_1410d + add $3c + +.asm_1410d + ld [de], a + dec de + ld a, [$d087] + sbc [hl] + dec hl + jr nc, .asm_14118 + add $18 + +.asm_14118 + ld [de], a + dec de + ld a, [StringBuffer2] + sbc [hl] + dec hl + jr nc, .asm_14128 + add $8c + ld c, $7 + call SimpleDivide + +.asm_14128 + ld [de], a + ret +; 1412a + +Function1412a: ; 1412a + ld a, $1 + ld [rVBK], a + call Functionf82 + xor a + ld [rVBK], a + ret +; 14135 + +Function14135: ; 14135 + call GetPlayerSprite + ld a, [UsedSprites] + ld [$ffbd], a + ld a, [$d155] + ld [$ffbe], a + call $43c8 + ret +; 14146 + +INCBIN "baserom.gbc", $14146, $14168 - $14146 + + +Function14168: ; 14168 + call $416f + call $4209 + ret +; 1416f + +Function1416f: ; 1416f + xor a + ld bc, $0040 + ld hl, UsedSprites + call ByteFill + call GetPlayerSprite + call AddMapSprites + call Function142db + ret +; 14183 + GetPlayerSprite: ; 14183 @@ -15448,7 +22091,35 @@ AddOutdoorSprites: ; 141ee ; 14209 -INCBIN "baserom.gbc", $14209, $14236 - $14209 +Function14209: ; 14209 + ld a, $4 + call $263b + call $439b + call $4215 + ret +; 14215 + +Function14215: ; 14215 + ld a, [$d13e] + bit 6, a + ret nz + ld c, $8 + ld a, $5 + ld hl, $442f + rst FarCall + call GetMapPermission + call CheckOutdoorMap + ld c, $b + jr z, .asm_1422f + ld c, $a + +.asm_1422f + ld a, $5 + ld hl, $442f + rst FarCall + ret +; 14236 + SafeGetSprite: ; 14236 @@ -15824,7 +22495,140 @@ GetSpriteLength: ; 14386 ; 1439b -INCBIN "baserom.gbc", $1439b, $14495 - $1439b +Function1439b: ; 1439b + ld hl, UsedSprites + ld c, $20 +.asm_143a0 + ld a, [$d13e] + res 5, a + ld [$d13e], a + ld a, [hli] + and a + jr z, .asm_143c7 + ld [$ffbd], a + ld a, [hli] + ld [$ffbe], a + bit 7, a + jr z, .asm_143bd + ld a, [$d13e] + set 5, a + ld [$d13e], a + +.asm_143bd + push bc + push hl + call $43c8 + pop hl + pop bc + dec c + jr nz, .asm_143a0 + +.asm_143c7 + ret +; 143c8 + +Function143c8: ; 143c8 + ld a, [$ffbd] + call SafeGetSprite + ld a, [$ffbe] + call $4406 + push hl + push de + push bc + ld a, [$d13e] + bit 7, a + jr nz, .asm_143df + call $4418 + +.asm_143df + pop bc + ld l, c + ld h, $0 + add hl, hl + add hl, hl + add hl, hl + add hl, hl + pop de + add hl, de + ld d, h + ld e, l + pop hl + ld a, [$d13e] + bit 5, a + jr nz, .asm_14405 + bit 6, a + jr nz, .asm_14405 + ld a, [$ffbd] + call Function142a7 + jr c, .asm_14405 + ld a, h + add $8 + ld h, a + call $4418 + +.asm_14405 + ret +; 14406 + +Function14406: ; 14406 + and $7f + ld l, a + ld h, $0 + add hl, hl + add hl, hl + add hl, hl + add hl, hl + ld a, l + add $0 + ld l, a + ld a, h + adc $80 + ld h, a + ret +; 14418 + +Function14418: ; 14418 + ld a, [rVBK] + push af + ld a, [$d13e] + bit 5, a + ld a, $1 + jr z, .asm_14426 + ld a, $0 + +.asm_14426 + ld [rVBK], a + call Functionf82 + pop af + ld [rVBK], a + ret +; 1442f + +Function1442f: ; 1442f + ld a, c + ld bc, $0006 + ld hl, $444d + call AddNTimes + ld e, [hl] + inc hl + ld d, [hl] + inc hl + ld c, [hl] + swap c + inc hl + ld b, [hl] + inc hl + ld a, [hli] + ld h, [hl] + ld l, a + ld a, c + and a + ret z + call $412a + ret +; 1444d + +INCBIN "baserom.gbc", $1444d, $14495 - $1444d SpriteMons: ; 14495 @@ -16568,7 +23372,360 @@ INCLUDE "gfx/overworld/sprite_headers.asm" ; 1499a -INCBIN "baserom.gbc", $1499a, $14f1c - $1499a +Function1499a: ; 1499a + ld a, [StandingTile] + cp $60 + jr z, .asm_149ad + cp $68 + jr z, .asm_149ad + and $f0 + cp $70 + jr z, .asm_149ad + and a + ret + +.asm_149ad + scf + ret +; 149af + +INCBIN "baserom.gbc", $149af, $14a07 - $149af + + +Function14a07: ; 14a07 + ld a, [StandingTile] + ld de, $001f + cp $71 + ret z + ld de, $0013 + cp $7c + ret z + ld de, $0023 + ret +; 14a1a + +INCBIN "baserom.gbc", $14a1a, $14b5f - $14a1a + + +Function14b5f: ; 14b5f + ld a, $1 + call GetSRAMBank + ld hl, $bdd9 + ld de, $be3b + ld bc, $0b1a +.asm_14b6d + ld a, [hld] + ld [de], a + dec de + dec bc + ld a, c + or b + jr nz, .asm_14b6d + ld hl, OverworldMap + ld de, $b2c0 + ld bc, $0062 + call CopyBytes + call CloseSRAM + ret +; 14b85 + +Function14b85: ; 14b85 + call $4c10 + ret +; 14b89 + +INCBIN "baserom.gbc", $14b89, $14c10 - $14b89 + + +Function14c10: ; 14c10 + ld a, $1 + ld [$cfcd], a + ld a, $5 + ld hl, $4056 + rst FarCall + ld a, $41 + ld hl, $50d9 + rst FarCall + call $4da9 + call $4dbb + call $4dd7 + call $4df7 + call $4e0c + call $4e13 + call $4e2d + call $4e40 + call $4e55 + call $4e76 + call $4e8b + call $4c6b + ld a, $11 + ld hl, $4725 + rst FarCall + ld a, $41 + ld hl, $6187 + rst FarCall + ld a, $5 + ld hl, $406a + rst FarCall + ld a, $1 + call GetSRAMBank + ld a, [$be45] + cp $4 + jr nz, .asm_14c67 + xor a + ld [$be45], a + +.asm_14c67 + call CloseSRAM + ret +; 14c6b + +Function14c6b: ; 14c6b + call $4c90 + ld a, $0 + call GetSRAMBank + ld a, [$bf10] + ld e, a + ld a, [$bf11] + ld d, a + or e + jr z, .asm_14c84 + ld a, e + sub l + ld a, d + sbc h + jr c, .asm_14c8c + +.asm_14c84 + ld a, l + ld [$bf10], a + ld a, h + ld [$bf11], a + +.asm_14c8c + call CloseSRAM + ret +; 14c90 + +Function14c90: ; 14c90 + ld hl, $c000 +.asm_14c93 + ld a, [hl] + or a + ret nz + inc hl + jr .asm_14c93 +; 14c99 + +INCBIN "baserom.gbc", $14c99, $14cbb - $14c99 + + +Function14cbb: ; 14cbb + call $51fb + call $4d06 + call $4ce2 + call $4cf4 + call $4d68 + call $4d5c + ld a, $0 + call GetSRAMBank + xor a + ld [$bf10], a + ld [$bf11], a + call CloseSRAM + ld a, $1 + ld [$d4b4], a + ret +; 14ce2 + +Function14ce2: ; 14ce2 + ld a, $1 + call GetSRAMBank + ld hl, $b260 + ld bc, $0060 + xor a + call ByteFill + jp CloseSRAM +; 14cf4 + +Function14cf4: ; 14cf4 + ld a, $0 + call GetSRAMBank + ld hl, $abe4 + ld bc, $004c + xor a + call ByteFill + jp CloseSRAM +; 14d06 + +Function14d06: ; 14d06 + ld a, $1 + call GetSRAMBank + ld hl, $b2c0 + ld bc, $0b7c + xor a + call ByteFill + jp CloseSRAM +; 14d18 + +INCBIN "baserom.gbc", $14d18, $14d5c - $14d18 + + +Function14d5c: ; 14d5c + ld a, $1 + call GetSRAMBank + xor a + ld [$be45], a + jp CloseSRAM +; 14d68 + +Function14d68: ; 14d68 + call $509a + ret +; 14d6c + +INCBIN "baserom.gbc", $14d6c, $14da0 - $14d6c + + +Function14da0: ; 14da0 + ld a, [$d4b4] + and a + ret nz + call $4cbb + ret +; 14da9 + +Function14da9: ; 14da9 + ld a, $1 + call GetSRAMBank + ld a, $63 + ld [$a008], a + ld a, $7f + ld [$ad0f], a + jp CloseSRAM +; 14dbb + +Function14dbb: ; 14dbb + ld a, $1 + call GetSRAMBank + ld hl, Options + ld de, $a000 + ld bc, $0008 + call CopyBytes + ld a, [Options] + and $ef + ld [$a000], a + jp CloseSRAM +; 14dd7 + +Function14dd7: ; 14dd7 + ld a, $1 + call GetSRAMBank + ld hl, PlayerID + ld de, $a009 + ld bc, $082a + call CopyBytes + ld hl, FlypointPerms + ld de, $a833 + ld bc, $0032 + call CopyBytes + jp CloseSRAM +; 14df7 + +Function14df7: ; 14df7 + ld a, $1 + call GetSRAMBank + ld hl, PartyCount + ld de, $a865 + ld bc, $031e + call CopyBytes + call CloseSRAM + ret +; 14e0c + +Function14e0c: ; 14e0c + call $50d8 + call $50f9 + ret +; 14e13 + +Function14e13: ; 14e13 + ld hl, $a009 + ld bc, $0b7a + ld a, $1 + call GetSRAMBank + call $5273 + ld a, e + ld [$ad0d], a + ld a, d + ld [$ad0e], a + call CloseSRAM + ret +; 14e2d + +Function14e2d: ; 14e2d + ld a, $0 + call GetSRAMBank + ld a, $63 + ld [$b208], a + ld a, $7f + ld [$bf0f], a + call CloseSRAM + ret +; 14e40 + +Function14e40: ; 14e40 + ld a, $0 + call GetSRAMBank + ld hl, Options + ld de, $b200 + ld bc, $0008 + call CopyBytes + call CloseSRAM + ret +; 14e55 + +Function14e55: ; 14e55 + ld a, $0 + call GetSRAMBank + ld hl, PlayerID + ld de, $b209 + ld bc, $082a + call CopyBytes + ld hl, FlypointPerms + ld de, $ba33 + ld bc, $0032 + call CopyBytes + call CloseSRAM + ret +; 14e76 + +Function14e76: ; 14e76 + ld a, $0 + call GetSRAMBank + ld hl, PartyCount + ld de, $ba65 + ld bc, $031e + call CopyBytes + call CloseSRAM + ret +; 14e8b + +Function14e8b: ; 14e8b + ld hl, $b209 + ld bc, $0b7a + ld a, $0 + call GetSRAMBank + call $5273 + ld a, e + ld [$bf0d], a + ld a, d + ld [$bf0e], a + call CloseSRAM + ret +; 14ea5 + +INCBIN "baserom.gbc", $14ea5, $14f1c - $14ea5 Function14f1c: ; 14f1c @@ -16664,7 +23821,183 @@ Function14faf: ; 14faf ret ; 14fd7 -INCBIN "baserom.gbc", $14fd7, $152ab - $14fd7 +INCBIN "baserom.gbc", $14fd7, $1509a - $14fd7 + + +Function1509a: ; 1509a + ld a, $1 + call GetSRAMBank + ld hl, PlayerGender + ld de, $be3d + ld bc, $0007 + call CopyBytes + ld hl, $d479 + ld a, [hli] + ld [$a60e], a + ld a, [hli] + ld [$a60f], a + jp CloseSRAM +; 150b9 + +INCBIN "baserom.gbc", $150b9, $150d8 - $150b9 + + +Function150d8: ; 150d8 + ld a, [$db72] + cp $e + jr c, .asm_150e3 + xor a + ld [$db72], a + +.asm_150e3 + ld e, a + ld d, $0 + ld hl, $522d + add hl, de + add hl, de + add hl, de + add hl, de + add hl, de + ld a, [hli] + push af + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld h, [hl] + ld l, a + pop af + ret +; 150f9 + +Function150f9: ; 150f9 + push hl + push af + push de + ld a, $1 + call GetSRAMBank + ld hl, $ad10 + ld de, EnemyMoveAnimation + ld bc, $01e0 + call CopyBytes + call CloseSRAM + pop de + pop af + push af + push de + call GetSRAMBank + ld hl, EnemyMoveAnimation + ld bc, $01e0 + call CopyBytes + call CloseSRAM + ld a, $1 + call GetSRAMBank + ld hl, $aef0 + ld de, EnemyMoveAnimation + ld bc, $01e0 + call CopyBytes + call CloseSRAM + pop de + pop af + ld hl, $01e0 + add hl, de + ld e, l + ld d, h + push af + push de + call GetSRAMBank + ld hl, EnemyMoveAnimation + ld bc, $01e0 + call CopyBytes + call CloseSRAM + ld a, $1 + call GetSRAMBank + ld hl, $b0d0 + ld de, EnemyMoveAnimation + ld bc, $008e + call CopyBytes + call CloseSRAM + pop de + pop af + ld hl, $01e0 + add hl, de + ld e, l + ld d, h + call GetSRAMBank + ld hl, EnemyMoveAnimation + ld bc, $008e + call CopyBytes + call CloseSRAM + pop hl + ret +; 1517d + +INCBIN "baserom.gbc", $1517d, $151fb - $1517d + + +Function151fb: ; 151fb + ld hl, $522d + ld c, $e +.asm_15200 + push bc + ld a, [hli] + call GetSRAMBank + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + xor a + ld [de], a + inc de + ld a, $ff + ld [de], a + inc de + ld bc, $044c +.asm_15213 + xor a + ld [de], a + inc de + dec bc + ld a, b + or c + jr nz, .asm_15213 + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, $ff + ld [de], a + inc de + xor a + ld [de], a + call CloseSRAM + pop bc + dec c + jr nz, .asm_15200 + ret +; 1522d + +INCBIN "baserom.gbc", $1522d, $15273 - $1522d + + +Function15273: ; 15273 + ld de, $0000 +.asm_15276 + ld a, [hli] + add e + ld e, a + ld a, $0 + adc d + ld d, a + dec bc + ld a, b + or c + jr nz, .asm_15276 + ret +; 15283 + +INCBIN "baserom.gbc", $15283, $152ab - $15283 BlackoutPoints: ; 0x152ab @@ -17139,7 +24472,872 @@ MenuData15a08: ; 0x15a08 dbw BANK(Function24ac3), Function24ac3 dbw BANK(Function244c3), Function244c3 -INCBIN "baserom.gbc", $15a20, $174ba - $15a20 +INCBIN "baserom.gbc", $15a20, $15a45 - $15a20 + + +Function15a45: ; 15a45 + call $5b31 + ld a, c + ld [EngineBuffer1], a + call $5b10 + ld a, [EngineBuffer1] + ld hl, $5a57 + rst JumpTable + ret +; 15a57 + +INCBIN "baserom.gbc", $15a57, $15a6e - $15a57 + + +Function15a6e: ; 15a6e + call $5bbb + call $1d6e + ld hl, $5e4a + call $5fcd + call $5c62 + ld hl, $5e68 + call $5fcd + ret +; 15a84 + +Function15a84: ; 15a84 + ld b, $5 + ld de, $5c51 + call $5b10 + call $5c25 + call $1d6e + ld hl, $5e6d + call $5fcd + call $5c62 + ld hl, WalkingDirection + ld a, [hli] + or [hl] + jr z, .asm_15aa7 + ld hl, $dc1e + set 6, [hl] + +.asm_15aa7 + ld hl, $5e8b + call $5fcd + ret +; 15aae + +Function15aae: ; 15aae + call $5bbb + call $1d6e + ld hl, $5e90 + call $5fcd + call $5c62 + ld hl, $5eae + call $5fcd + ret +; 15ac4 + +Function15ac4: ; 15ac4 + ld b, $5 + ld de, $5aee + ld hl, StatusFlags + bit 6, [hl] + jr z, .asm_15ad5 + ld b, $5 + ld de, $5aff + +.asm_15ad5 + call $5b10 + call $5c25 + call $1d6e + ld hl, $5f83 + call $5fcd + call $5c62 + ld hl, $5fb4 + call $5fcd + ret +; 15aee + +INCBIN "baserom.gbc", $15aee, $15b10 - $15aee + + +Function15b10: ; 15b10 + ld a, b + ld [CurFruit], a + ld a, e + ld [$d040], a + ld a, d + ld [$d041], a + ld hl, $d0f0 + xor a + ld bc, $0010 + call ByteFill + xor a + ld [MovementAnimation], a + ld [WalkingDirection], a + ld [FacingDirection], a + ret +; 15b31 + +Function15b31: ; 15b31 + ld a, e + cp $22 + jr c, .asm_15b3c + ld b, $5 + ld de, $6214 + ret + +.asm_15b3c + ld hl, $60a9 + add hl, de + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + ld b, $5 + ret +; 15b47 + +Function15b47: ; 15b47 +.asm_15b47 + ld a, [MovementAnimation] + ld hl, $5b56 + rst JumpTable + ld [MovementAnimation], a + cp $ff + jr nz, .asm_15b47 + ret +; 15b56 + +INCBIN "baserom.gbc", $15b56, $15b62 - $15b56 + + +Function15b62: ; 15b62 + call $1d6e + ld hl, $5f83 + call PrintText + ld a, $1 + ret +; 15b6e + +Function15b6e: ; 15b6e + ld hl, $5f88 + call Function1d3c + call Function1d81 + jr c, .asm_15b84 + ld a, [$cfa9] + cp $1 + jr z, .asm_15b87 + cp $2 + jr z, .asm_15b8a + +.asm_15b84 + ld a, $4 + ret + +.asm_15b87 + ld a, $2 + ret + +.asm_15b8a + ld a, $3 + ret +; 15b8d + +Function15b8d: ; 15b8d + call Function1c07 + call $5bbb + call $5c62 + and a + ld a, $5 + ret +; 15b9a + +Function15b9a: ; 15b9a + call Function1c07 + call $5eb3 + ld a, $5 + ret +; 15ba3 + +Function15ba3: ; 15ba3 + call Function1c07 + ld hl, $5fb4 + call $5fcd + ld a, $ff + ret +; 15baf + +Function15baf: ; 15baf + call $1d6e + ld hl, $5fb9 + call PrintText + ld a, $1 + ret +; 15bbb + +Function15bbb: ; 15bbb + ld hl, $d040 + ld a, [hli] + ld h, [hl] + ld l, a + ld de, $d0f0 +.asm_15bc4 + ld a, [CurFruit] + call GetFarByte + ld [de], a + inc hl + inc de + cp $ff + jr nz, .asm_15bc4 + ld hl, DefaultFlypoint + ld de, $d0f1 +.asm_15bd7 + ld a, [de] + inc de + cp $ff + jr z, .asm_15be4 + push de + call $5be5 + pop de + jr .asm_15bd7 + +.asm_15be4 + ret +; 15be5 + +Function15be5: ; 15be5 + push hl + ld [CurItem], a + ld a, $3 + ld hl, $5486 + rst FarCall + pop hl + push hl + ld a, d + ld [StringBuffer2], a + ld a, e + ld [$d087], a + ld hl, StringBuffer1 + ld de, StringBuffer2 + ld bc, $8206 + call $3198 + pop hl + ld de, StringBuffer1 + ld c, $3 +.asm_15c0b + call $5c1a + swap a + ld b, a + call $5c1a + or b + ld [hli], a + dec c + jr nz, .asm_15c0b + ret +; 15c1a + +Function15c1a: ; 15c1a + ld a, [de] + inc de + cp $7f + jr nz, .asm_15c22 + ld a, $f6 + +.asm_15c22 + sub $f6 + ret +; 15c25 + +Function15c25: ; 15c25 + ld hl, $d040 + ld a, [hli] + ld h, [hl] + ld l, a + push hl + inc hl + ld bc, DefaultFlypoint + ld de, $d0f1 +.asm_15c33 + ld a, [hli] + ld [de], a + inc de + cp $ff + jr z, .asm_15c4b + push de + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + push hl + ld h, b + ld l, c + call $5bf0 + ld b, h + ld c, l + pop hl + pop de + jr .asm_15c33 + +.asm_15c4b + pop hl + ld a, [hl] + ld [$d0f0], a + ret +; 15c51 + +INCBIN "baserom.gbc", $15c51, $15c62 - $15c51 + + +Function15c62: ; 15c62 + call FadeToMenu + ld a, $2 + ld hl, $4000 + rst FarCall + xor a + ld [WalkingY], a + ld a, $1 + ld [WalkingX], a +.asm_15c74 + call $5cef + jr nc, .asm_15c74 + call $2b3c + ret +; 15c7d + +Function15c7d: ; 15c7d + push af + call $5ca3 + ld a, [hli] + ld h, [hl] + ld l, a + pop af + ld e, a + ld d, $0 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + call PrintText + ret +; 15c91 + +Function15c91: ; 15c91 + call $5ca3 + inc hl + inc hl + ld a, [hl] + and a + jp z, $5d83 + cp $1 + jp z, $5da5 + jp $5de2 +; 15ca3 + +Function15ca3: ; 15ca3 + ld a, [EngineBuffer1] + ld e, a + ld d, $0 + ld hl, $5cb0 + add hl, de + add hl, de + add hl, de + ret +; 15cb0 + +INCBIN "baserom.gbc", $15cb0, $15cef - $15cb0 + + +Function15cef: ; 15cef + ld a, $9 + ld hl, $4ae8 + rst FarCall + call $1ad2 + ld hl, $5e18 + call Function1d3c + ld a, [WalkingX] + ld [$cf88], a + ld a, [WalkingY] + ld [$d0e4], a + call $350c + ld a, [$d0e4] + ld [WalkingY], a + ld a, [$cfa9] + ld [WalkingX], a + call SpeechTextBox + ld a, [$cf73] + cp $2 + jr z, .asm_15d6d + cp $1 + jr z, .asm_15d27 + +.asm_15d27 + call $5c91 + jr c, .asm_15d68 + call $5d97 + jr c, .asm_15d68 + ld de, Money + ld bc, $ffc3 + ld a, $3 + call $600b + jr c, .asm_15d79 + ld hl, NumItems + call $2f66 + jr nc, .asm_15d6f + ld a, [$d107] + ld e, a + ld d, $0 + ld b, $1 + ld hl, WalkingDirection + call BitTableFunc + call $5fc3 + ld de, Money + ld bc, $ffc3 + call $5ffa + ld a, $4 + call $5c7d + call $0a36 + +.asm_15d68 + call SpeechTextBox + and a + ret + +.asm_15d6d + scf + ret + +.asm_15d6f + ld a, $3 + call $5c7d + call $0a36 + and a + ret + +.asm_15d79 + ld a, $2 + call $5c7d + call $0a36 + and a + ret +; 15d83 + +Function15d83: ; 15d83 + ld a, $63 + ld [$d10d], a + ld a, $0 + call $5c7d + ld a, $9 + ld hl, $4fc9 + rst FarCall + call Function1c07 + ret +; 15d97 + +Function15d97: ; 15d97 + ld a, $3b + call Predef + ld a, $1 + call $5c7d + call $1dcf + ret +; 15da5 + +Function15da5: ; 15da5 + ld a, $1 + ld [$d10c], a + ld a, [$d107] + ld e, a + ld d, $0 + ld b, $2 + ld hl, WalkingDirection + call BitTableFunc + ld a, c + and a + jr nz, .asm_15dd8 + ld a, [$d107] + ld e, a + ld d, $0 + ld hl, $d040 + ld a, [hli] + ld h, [hl] + ld l, a + inc hl + add hl, de + add hl, de + add hl, de + inc hl + ld a, [hli] + ld [$ffc5], a + ld a, [hl] + ld [$ffc4], a + xor a + ld [$ffc3], a + and a + ret + +.asm_15dd8 + ld a, $5 + call $5c7d + call $0a36 + scf + ret +; 15de2 + +Function15de2: ; 15de2 + ld a, $0 + call $5c7d + call $5df9 + ld a, $63 + ld [$d10d], a + ld a, $9 + ld hl, $4fcf + rst FarCall + call Function1c07 + ret +; 15df9 + +Function15df9: ; 15df9 + ld a, [$d107] + ld e, a + ld d, $0 + ld hl, $d040 + ld a, [hli] + ld h, [hl] + ld l, a + inc hl + add hl, de + add hl, de + add hl, de + inc hl + ld e, [hl] + inc hl + ld d, [hl] + ret +; 15e0e + +INCBIN "baserom.gbc", $15e0e, $15eb3 - $15e0e + + +Function15eb3: ; 15eb3 + call Function2ed3 + ld a, $4 + ld hl, $46a5 + rst FarCall +.asm_15ebc + ld a, $4 + ld hl, $46be + rst FarCall + ld a, [$cf66] + and a + jp z, $5ece + call $5ee0 + jr .asm_15ebc +; 15ece + +Function15ece: ; 15ece + call Function2b74 + and a + ret +; 15ed3 + +INCBIN "baserom.gbc", $15ed3, $15ee0 - $15ed3 + + +Function15ee0: ; 15ee0 + callba CheckItemMenu + ld a, [$d142] + ld hl, $5eee + rst JumpTable + ret +; 15eee + +INCBIN "baserom.gbc", $15eee, $15efd - $15eee + + +Function15efd: ; 15efd + callba _CheckTossableItem + ld a, [$d142] + and a + jr z, .asm_15f11 + ld hl, $5faf + call PrintText + and a + ret + +.asm_15f11 + ld hl, $5f73 + call PrintText + ld a, $9 + ld hl, $4af8 + rst FarCall + ld a, $9 + ld hl, $4fe1 + rst FarCall + call Function1c07 + jr c, .asm_15f6e + ld hl, $c5b9 + ld bc, $0312 + call ClearBox + ld hl, $5f78 + call PrintTextBoxText + call $1dcf + jr c, .asm_15f6e + ld de, Money + ld bc, $ffc3 + call $5fd7 + ld a, [$d107] + ld hl, NumItems + call $2f53 + ld a, $3b + call Predef + ld hl, $c5b9 + ld bc, $0312 + call ClearBox + ld hl, $5fbe + call PrintTextBoxText + call $5fc3 + ld a, $9 + ld hl, $4af0 + rst FarCall + call $0a36 + +.asm_15f6e + call Function1c07 + and a + ret +; 15f73 + +INCBIN "baserom.gbc", $15f73, $15fc3 - $15f73 + + +Function15fc3: ; 15fc3 + call WaitSFX + ld de, $0022 + call StartSFX + ret +; 15fcd + +Function15fcd: ; 15fcd + call $1d4f + call $0a36 + call Function1c07 + ret +; 15fd7 + +Function15fd7: ; 15fd7 + ld a, $3 + call $6053 + ld bc, $5ff7 + ld a, $3 + call $600b + jr z, .asm_15ff5 + jr c, .asm_15ff5 + ld hl, $5ff7 + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + scf + ret + +.asm_15ff5 + and a + ret +; 15ff7 + +INCBIN "baserom.gbc", $15ff7, $15ffa - $15ff7 + + +Function15ffa: ; 15ffa + ld a, $3 + call $6035 + jr nc, .asm_16009 + xor a + ld [de], a + inc de + ld [de], a + inc de + ld [de], a + scf + ret + +.asm_16009 + and a + ret +; 1600b + +Function1600b: ; 1600b + ld a, $3 + push hl + push de + push bc + ld h, b + ld l, c + ld c, $0 + ld b, a +.asm_16015 + dec a + jr z, .asm_1601c + inc de + inc hl + jr .asm_16015 + +.asm_1601c + and a +.asm_1601d + ld a, [de] + sbc [hl] + jr z, .asm_16022 + inc c + +.asm_16022 + dec de + dec hl + dec b + jr nz, .asm_1601d + jr c, .asm_1602d + ld a, c + and a + jr .asm_16031 + +.asm_1602d + ld a, $1 + and a + scf + +.asm_16031 + pop bc + pop de + pop hl + ret +; 16035 + +Function16035: ; 16035 + ld a, $3 + push hl + push de + push bc + ld h, b + ld l, c + ld b, a + ld c, $0 +.asm_1603f + dec a + jr z, .asm_16046 + inc de + inc hl + jr .asm_1603f + +.asm_16046 + and a +.asm_16047 + ld a, [de] + sbc [hl] + ld [de], a + dec de + dec hl + dec b + jr nz, .asm_16047 + pop bc + pop de + pop hl + ret +; 16053 + +Function16053: ; 16053 + ld a, $3 + push hl + push de + push bc + ld h, b + ld l, c + ld b, a +.asm_1605b + dec a + jr z, .asm_16062 + inc de + inc hl + jr .asm_1605b + +.asm_16062 + and a +.asm_16063 + ld a, [de] + adc [hl] + ld [de], a + dec de + dec hl + dec b + jr nz, .asm_16063 + pop bc + pop de + pop hl + ret +; 1606f + +Function1606f: ; 1606f + ld a, $2 + ld de, $d855 + call $6055 + ld a, $2 + ld bc, $608d + call $600d + jr c, .asm_1608b + ld hl, $608d + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + scf + ret + +.asm_1608b + and a + ret +; 1608d + +INCBIN "baserom.gbc", $1608d, $1608f - $1608d + + +Function1608f: ; 1608f + ld a, $2 + ld de, $d855 + call $6037 + jr nc, .asm_1609f + xor a + ld [de], a + inc de + ld [de], a + scf + ret + +.asm_1609f + and a + ret +; 160a1 + +Function160a1: ; 160a1 + ld a, $2 + ld de, $d855 + jp $600d +; 160a9 + +INCBIN "baserom.gbc", $160a9, $16ecd - $160a9 + + +Function16ecd: ; 16ecd + rlca + ld b, a + ld a, [$df5b] + and $7 + cp b + ret +; 16ed6 + +INCBIN "baserom.gbc", $16ed6, $174ba - $16ed6 SECTION "bank6",DATA,BANK[$6] @@ -17223,7 +25421,25 @@ INCBIN "tilesets/20_collision.bin" SECTION "bank7",DATA,BANK[$7] -INCBIN "baserom.gbc", $1c000, $1c30c - $1c000 +Function1c000: ; 1c000 + ld a, [MapGroup] + ld e, a + ld d, $0 + ld hl, $4021 + add hl, de + ld a, [hl] + cp $ff + ret z + ld hl, $403c + ld bc, $0090 + call AddNTimes + ld de, $90a0 + ld bc, $0090 + call CopyBytes + ret +; 1c021 + +INCBIN "baserom.gbc", $1c021, $1c30c - $1c021 Tileset07GFX: ; 0x1c30c INCBIN "gfx/tilesets/07.lz" @@ -17449,7 +25665,527 @@ INCLUDE "stats/egg_moves.asm" SECTION "bank9",DATA,BANK[$9] -INCBIN "baserom.gbc", $24000, $244c3 - $24000 +INCBIN "baserom.gbc", $24000, $24177 - $24000 + + +Function24177: ; 24177 + rst FarCall + ret +; 24179 + +INCBIN "baserom.gbc", $24179, $241a8 - $24179 + + +Function241a8: ; 241a8 + call $4329 + ld hl, $cfa6 + res 7, [hl] + ld a, [hBGMapMode] + push af + call $4216 + pop af + ld [hBGMapMode], a + ret +; 241ba + +INCBIN "baserom.gbc", $241ba, $24216 - $241ba + + +Function24216: ; 24216 +.asm_24216 + call $431a + call $4238 + call $4249 + jr nc, .asm_24237 + call $4270 + jr c, .asm_24237 + ld a, [$cfa5] + bit 7, a + jr nz, .asm_24237 + call $1bdd + ld b, a + ld a, [$cfa8] + and b + jr z, .asm_24216 + +.asm_24237 + ret +; 24238 + +Function24238: ; 24238 + ld a, [hOAMUpdate] + push af + ld a, $1 + ld [hOAMUpdate], a + call WaitBGMap + pop af + ld [hOAMUpdate], a + xor a + ld [hBGMapMode], a + ret +; 24249 + +Function24249: ; 24249 +.asm_24249 + call RTC + call $4259 + ret c + ld a, [$cfa5] + bit 7, a + jr z, .asm_24249 + and a + ret +; 24259 + +Function24259: ; 24259 + ld a, [$cfa5] + bit 6, a + jr z, .asm_24266 + ld hl, $4f62 + ld a, $23 + rst FarCall + +.asm_24266 + call Functiona57 + call $1bdd + and a + ret z + scf + ret +; 24270 + +Function24270: ; 24270 + call $1bdd + bit 0, a + jp nz, $4318 + bit 1, a + jp nz, $4318 + bit 2, a + jp nz, $4318 + bit 3, a + jp nz, $4318 + bit 4, a + jr nz, .asm_242fa + bit 5, a + jr nz, .asm_242dc + bit 6, a + jr nz, .asm_242be + bit 7, a + jr nz, .asm_242a0 + and a + ret + + ld hl, $cfa6 + set 7, [hl] + scf + ret + +.asm_242a0 + ld hl, $cfa9 + ld a, [$cfa3] + cp [hl] + jr z, .asm_242ac + inc [hl] + xor a + ret + +.asm_242ac + ld a, [$cfa5] + bit 5, a + jr nz, .asm_242ba + bit 3, a + jp nz, $4299 + xor a + ret + +.asm_242ba + ld [hl], $1 + xor a + ret + +.asm_242be + ld hl, $cfa9 + ld a, [hl] + dec a + jr z, .asm_242c8 + ld [hl], a + xor a + ret + +.asm_242c8 + ld a, [$cfa5] + bit 5, a + jr nz, .asm_242d6 + bit 2, a + jp nz, $4299 + xor a + ret + +.asm_242d6 + ld a, [$cfa3] + ld [hl], a + xor a + ret + +.asm_242dc + ld hl, $cfaa + ld a, [hl] + dec a + jr z, .asm_242e6 + ld [hl], a + xor a + ret + +.asm_242e6 + ld a, [$cfa5] + bit 4, a + jr nz, .asm_242f4 + bit 1, a + jp nz, $4299 + xor a + ret + +.asm_242f4 + ld a, [$cfa4] + ld [hl], a + xor a + ret + +.asm_242fa + ld hl, $cfaa + ld a, [$cfa4] + cp [hl] + jr z, .asm_24306 + inc [hl] + xor a + ret + +.asm_24306 + ld a, [$cfa5] + bit 4, a + jr nz, .asm_24314 + bit 0, a + jp nz, $4299 + xor a + ret + +.asm_24314 + ld [hl], $1 + xor a + ret +; 24318 + +Function24318: ; 24318 + xor a + ret +; 2431a + +Function2431a: ; 2431a + ld hl, $cfac + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [hl] + cp $ed + jr nz, .asm_24329 + ld a, [$cfab] + ld [hl], a + +.asm_24329 + ld a, [$cfa1] + ld b, a + ld a, [$cfa2] + ld c, a + call $1d05 + ld a, [$cfa7] + swap a + and $f + ld c, a + ld a, [$cfa9] + ld b, a + xor a + dec b + jr z, .asm_24348 +.asm_24344 + add c + dec b + jr nz, .asm_24344 + +.asm_24348 + ld c, $14 + call AddNTimes + ld a, [$cfa7] + and $f + ld c, a + ld a, [$cfaa] + ld b, a + xor a + dec b + jr z, .asm_2435f +.asm_2435b + add c + dec b + jr nz, .asm_2435b + +.asm_2435f + ld c, a + add hl, bc + ld a, [hl] + cp $ed + jr z, .asm_2436b + ld [$cfab], a + ld [hl], $ed + +.asm_2436b + ld a, l + ld [$cfac], a + ld a, h + ld [$cfad], a + ret +; 24374 + +Function24374: ; 24374 + ld a, [rSVBK] + push af + ld a, $7 + ld [rSVBK], a + ld hl, $cf71 + ld e, [hl] + inc hl + ld d, [hl] + push de + ld b, $10 + ld hl, $cf81 +.asm_24387 + ld a, [hli] + ld [de], a + dec de + dec b + jr nz, .asm_24387 + ld a, [$cf81] + bit 6, a + jr nz, .asm_24398 + bit 7, a + jr z, .asm_243ae + +.asm_24398 + ld hl, $cf71 + ld a, [hli] + ld h, [hl] + ld l, a + set 0, [hl] + call $1cfd + call $43cd + call $1d19 + call $43cd + jr .asm_243b5 + +.asm_243ae + pop hl + push hl + ld a, [hld] + ld l, [hl] + ld h, a + res 0, [hl] + +.asm_243b5 + pop hl + call $43e7 + ld a, h + ld [de], a + dec de + ld a, l + ld [de], a + dec de + ld hl, $cf71 + ld [hl], e + inc hl + ld [hl], d + pop af + ld [rSVBK], a + ld hl, $cf78 + inc [hl] + ret +; 243cd + +Function243cd: ; 243cd + call Function1c53 + inc b + inc c + call $43e7 +.asm_243d5 + push bc + push hl +.asm_243d7 + ld a, [hli] + ld [de], a + dec de + dec c + jr nz, .asm_243d7 + pop hl + ld bc, $0014 + add hl, bc + pop bc + dec b + jr nz, .asm_243d5 + ret +; 243e7 + +Function243e7: ; 243e7 + ret +; 243e8 + +Function243e8: ; 243e8 + xor a + ld [hBGMapMode], a + ld a, [rSVBK] + push af + ld a, $7 + ld [rSVBK], a + call $1c7e + ld a, l + or h + jp z, $445d + ld a, l + ld [$cf71], a + ld a, h + ld [$cf72], a + call Function1c47 + ld a, [$cf81] + bit 0, a + jr z, .asm_24411 + ld d, h + ld e, l + call Function1c23 + +.asm_24411 + call $1c7e + ld a, h + or l + jr z, .asm_2441b + call Function1c47 + +.asm_2441b + pop af + ld [rSVBK], a + ld hl, $cf78 + dec [hl] + ret +; 24423 + +INCBIN "baserom.gbc", $24423, $24426 - $24423 + + +Function24426: ; 24426 + bit 0, a + ret z + xor a + call GetSRAMBank + ld hl, TileMap + ld de, $a000 + ld bc, $0168 + call CopyBytes + call CloseSRAM + call $2173 + xor a + call GetSRAMBank + ld hl, $a000 + ld de, TileMap + ld bc, $0168 +.asm_2444c + ld a, [hl] + cp $61 + jr c, .asm_24452 + ld [de], a + +.asm_24452 + inc hl + inc de + dec bc + ld a, c + or b + jr nz, .asm_2444c + call CloseSRAM + ret +; 2445d + +Function2445d: ; 2445d + ld hl, $4468 + call PrintText + call WaitBGMap +.asm_24466 + jr .asm_24466 +; 24468 + +INCBIN "baserom.gbc", $24468, $2446d - $24468 + + +Function2446d: ; 2446d + ld a, [$cf91] + ld b, a + ld hl, $cfa1 + ld a, [$cf82] + inc a + bit 6, b + jr nz, .asm_2447d + inc a + +.asm_2447d + ld [hli], a + ld a, [$cf83] + inc a + ld [hli], a + ld a, [$cf92] + ld [hli], a + ld a, $1 + ld [hli], a + ld [hl], $0 + bit 5, b + jr z, .asm_24492 + set 5, [hl] + +.asm_24492 + ld a, [$cf81] + bit 4, a + jr z, .asm_2449b + set 6, [hl] + +.asm_2449b + inc hl + xor a + ld [hli], a + ld a, $20 + ld [hli], a + ld a, $1 + bit 0, b + jr nz, .asm_244a9 + add $2 + +.asm_244a9 + ld [hli], a + ld a, [$cf88] + and a + jr z, .asm_244b7 + ld c, a + ld a, [$cf92] + cp c + jr nc, .asm_244b9 + +.asm_244b7 + ld c, $1 + +.asm_244b9 + ld [hl], c + inc hl + ld a, $1 + ld [hli], a + xor a + ld [hli], a + ld [hli], a + ld [hli], a + ret +; 244c3 + Function244c3: ; 0x244c3 ld a, [MenuSelection] @@ -17468,7 +26204,596 @@ Function244c3: ; 0x244c3 ret ; 0x244e3 -INCBIN "baserom.gbc", $244e3, $24ab4 - $244e3 +Function244e3: ; 244e3 + ld hl, $4547 + call Function1d3c + call $1cbb + call $1ad2 + call $321c + ld b, $12 + call GetSGBLayout + xor a + ld [hBGMapMode], a + ld a, [CurPartySpecies] + ld [CurSpecies], a + call GetBaseData + ld de, VTiles1 + ld a, $3c + call Predef + ld a, [$cf82] + inc a + ld b, a + ld a, [$cf83] + inc a + ld c, a + call $1d05 + ld a, $80 + ld [$ffad], a + ld bc, $0707 + ld a, $13 + call Predef + call WaitBGMap + ret +; 24528 + +Function24528: ; 24528 + ld hl, $4547 + call Function1d3c + call $1ce1 + call WaitBGMap + call ClearSGB + xor a + ld [hBGMapMode], a + call $2173 + call $321c + call $1ad2 + call $0e51 + ret +; 24547 + +INCBIN "baserom.gbc", $24547, $245af - $24547 + + +Function245af: ; 245af + xor a + ld [$cf73], a + ld [hBGMapMode], a + inc a + ld [$ffaa], a + call $471a + call $4764 + call $47dd + call $45f1 + call $321c + xor a + ld [hBGMapMode], a + ret +; 245cb + +Function245cb: ; 245cb +.asm_245cb + call $4609 + jp c, $45d6 + call z, $45e1 + jr .asm_245cb +; 245d6 + +Function245d6: ; 245d6 + call $1ff8 + ld [$cf73], a + ld a, $0 + ld [$ffaa], a + ret +; 245e1 + +Function245e1: ; 245e1 + call $45f1 + ld a, $1 + ld [hBGMapMode], a + ld c, $3 + call DelayFrames + xor a + ld [hBGMapMode], a + ret +; 245f1 + +Function245f1: ; 245f1 + xor a + ld [hBGMapMode], a + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + call $47f0 + call $488b + call $48b8 + pop af + ld [Options], a + ret +; 24609 + +Function24609: ; 24609 +.asm_24609 + call $1bd3 + ld a, [$ffa9] + and $f0 + ld b, a + ld a, [hJoyPressed] + and $f + or b + bit 0, a + jp nz, $4644 + bit 1, a + jp nz, $466f + bit 2, a + jp nz, $4673 + bit 3, a + jp nz, $4695 + bit 4, a + jp nz, $46b5 + bit 5, a + jp nz, $46a1 + bit 6, a + jp nz, $46c9 + bit 7, a + jp nz, $46df + jr .asm_24609 +; 24640 + +INCBIN "baserom.gbc", $24640, $24644 - $24640 + + +Function24644: ; 24644 + call $1bee + ld a, [$cfa9] + dec a + call $48d5 + ld a, [MenuSelection] + ld [CurItem], a + ld a, [$cf75] + ld [$d10d], a + call $46fc + dec a + ld [$cf77], a + ld [$d107], a + ld a, [MenuSelection] + cp $ff + jr z, .asm_2466f + ld a, $1 + scf + ret + +.asm_2466f + ld a, $2 + scf + ret +; 24673 + +Function24673: ; 24673 + ld a, [$cf91] + bit 7, a + jp z, $2ec8 + ld a, [$cfa9] + dec a + call $48d5 + ld a, [MenuSelection] + cp $ff + jp z, $2ec8 + call $46fc + dec a + ld [$cf77], a + ld a, $4 + scf + ret +; 24695 + +Function24695: ; 24695 + ld a, [$cf91] + bit 6, a + jp z, $2ec8 + ld a, $8 + scf + ret +; 246a1 + +Function246a1: ; 246a1 + ld hl, $cfa6 + bit 7, [hl] + jp z, $2ec8 + ld a, [$cf91] + bit 3, a + jp z, $2ec8 + ld a, $20 + scf + ret +; 246b5 + +Function246b5: ; 246b5 + ld hl, $cfa6 + bit 7, [hl] + jp z, $2ec8 + ld a, [$cf91] + bit 2, a + jp z, $2ec8 + ld a, $10 + scf + ret +; 246c9 + +Function246c9: ; 246c9 + ld hl, $cfa6 + bit 7, [hl] + jp z, $2ec6 + ld hl, $d0e4 + ld a, [hl] + and a + jr z, .asm_246dc + dec [hl] + jp $2ec6 + +.asm_246dc + jp $2ec8 +; 246df + +Function246df: ; 246df + ld hl, $cfa6 + bit 7, [hl] + jp z, $2ec6 + ld hl, $d0e4 + ld a, [$cf92] + add [hl] + ld b, a + ld a, [$d144] + cp b + jr c, .asm_246f9 + inc [hl] + jp $2ec6 + +.asm_246f9 + jp $2ec8 +; 246fc + +Function246fc: ; 246fc + ld a, [$d0e4] + ld c, a + ld a, [$cfa9] + add c + ld c, a + ret +; 24706 + +INCBIN "baserom.gbc", $24706, $2471a - $24706 + + +Function2471a: ; 2471a + ld hl, $cf96 + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [$cf95] + call GetFarByte + ld [$d144], a + ld a, [$cf92] + ld c, a + ld a, [$d0e4] + add c + ld c, a + ld a, [$d144] + inc a + cp c + jr nc, .asm_24748 + ld a, [$cf92] + ld c, a + ld a, [$d144] + inc a + sub c + jr nc, .asm_24745 + xor a + +.asm_24745 + ld [$d0e4], a + +.asm_24748 + ld a, [$d0e4] + ld c, a + ld a, [$cf88] + add c + ld b, a + ld a, [$d144] + inc a + cp b + jr c, .asm_2475a + jr nc, .asm_24763 + +.asm_2475a + xor a + ld [$d0e4], a + ld a, $1 + ld [$cf88], a + +.asm_24763 + ret +; 24764 + +Function24764: ; 24764 + ld a, [$cf91] + ld c, a + ld a, [$d144] + ld b, a + ld a, [$cf82] + add $1 + ld [$cfa1], a + ld a, [$cf83] + add $0 + ld [$cfa2], a + ld a, [$cf92] + cp b + jr c, .asm_24786 + jr z, .asm_24786 + ld a, b + inc a + +.asm_24786 + ld [$cfa3], a + ld a, $1 + ld [$cfa4], a + ld a, $8c + bit 2, c + jr z, .asm_24796 + set 0, a + +.asm_24796 + bit 3, c + jr z, .asm_2479c + set 1, a + +.asm_2479c + ld [$cfa5], a + xor a + ld [$cfa6], a + ld a, $20 + ld [$cfa7], a + ld a, $c3 + bit 7, c + jr z, .asm_247b0 + add $4 + +.asm_247b0 + bit 6, c + jr z, .asm_247b6 + add $8 + +.asm_247b6 + ld [$cfa8], a + ld a, [$cfa3] + ld b, a + ld a, [$cf88] + and a + jr z, .asm_247c8 + cp b + jr z, .asm_247ca + jr c, .asm_247ca + +.asm_247c8 + ld a, $1 + +.asm_247ca + ld [$cfa9], a + ld a, $1 + ld [$cfaa], a + xor a + ld [$cfac], a + ld [$cfad], a + ld [$cfab], a + ret +; 247dd + +Function247dd: ; 247dd + ld a, [$d144] + ld c, a + ld a, [$d0e3] + and a + jr z, .asm_247ef + dec a + cp c + jr c, .asm_247ef + xor a + ld [$d0e3], a + +.asm_247ef + ret +; 247f0 + +Function247f0: ; 247f0 + call $1cf1 + ld a, [$cf91] + bit 4, a + jr z, .asm_2480d + ld a, [$d0e4] + and a + jr z, .asm_2480d + ld a, [$cf82] + ld b, a + ld a, [$cf85] + ld c, a + call $1d05 + ld [hl], $61 + +.asm_2480d + call $1cfd + ld bc, $0015 + add hl, bc + ld a, [$cf92] + ld b, a + ld c, $0 +.asm_2481a + ld a, [$d0e4] + add c + ld [$cf77], a + ld a, c + call $48d5 + ld a, [MenuSelection] + cp $ff + jr z, .asm_24851 + push bc + push hl + call $486e + pop hl + ld bc, $0028 + add hl, bc + pop bc + inc c + ld a, c + cp b + jr nz, .asm_2481a + ld a, [$cf91] + bit 4, a + jr z, .asm_24850 + ld a, [$cf84] + ld b, a + ld a, [$cf85] + ld c, a + call $1d05 + ld [hl], $ee + +.asm_24850 + ret + +.asm_24851 + ld a, [$cf91] + bit 0, a + jr nz, .asm_24866 + ld de, .data_2485f + call PlaceString + ret + +.data_2485f + db $82 + db $80 + db $8d + db $82 + db $84 + db $8b + db $50 + +.asm_24866 + ld d, h + ld e, l + ld hl, $cf98 + jp $31be +; 2486e + +Function2486e: ; 2486e + push hl + ld d, h + ld e, l + ld hl, $cf98 + call $31be + pop hl + ld a, [$cf93] + and a + jr z, .asm_2488a + ld e, a + ld d, $0 + add hl, de + ld d, h + ld e, l + ld hl, $cf9b + call $31be + +.asm_2488a + ret +; 2488b + +Function2488b: ; 2488b + ld a, [$d0e3] + and a + jr z, .asm_248b7 + ld b, a + ld a, [$d0e4] + cp b + jr nc, .asm_248b7 + ld c, a + ld a, [$cf92] + add c + cp b + jr c, .asm_248b7 + ld a, b + sub c + dec a + add a + add $1 + ld c, a + ld a, [$cf82] + add c + ld b, a + ld a, [$cf83] + add $0 + ld c, a + call $1d05 + ld [hl], $ec + +.asm_248b7 + ret +; 248b8 + +Function248b8: ; 248b8 + ld a, [$cf91] + bit 5, a + ret z + bit 1, a + jr z, .asm_248c7 + ld a, [$d0e3] + and a + ret nz + +.asm_248c7 + ld a, [$cfa9] + dec a + call $48d5 + ld hl, $cf9e + call $31be + ret +; 248d5 + +Function248d5: ; 248d5 + push de + push hl + ld e, a + ld a, [$d0e4] + add e + ld e, a + ld d, $0 + ld hl, $cf96 + ld a, [hli] + ld h, [hl] + ld l, a + inc hl + ld a, [$cf94] + cp $1 + jr z, .asm_248f2 + cp $2 + jr z, .asm_248f1 + +.asm_248f1 + add hl, de + +.asm_248f2 + add hl, de + ld a, [$cf95] + call GetFarByte + ld [MenuSelection], a + ld [CurItem], a + inc hl + ld a, [$cf95] + call GetFarByte + ld [$cf75], a + pop hl + pop de + ret +; 2490c + +INCBIN "baserom.gbc", $2490c, $24ab4 - $2490c Function24ab4: ; 0x24ab4 push de @@ -17503,7 +26828,235 @@ Function24ac3: ; 0x24ac3 ret ; 0x24ae8 -INCBIN "baserom.gbc", $24ae8, $265d3 - $24ae8 +Function24ae8: ; 24ae8 + ld hl, $4b15 + call Function1d3c + jr .asm_24b01 + + ld hl, $4b1d + call Function1d3c + jr .asm_24b01 + + ld hl, $4b15 + ld de, $000b + call $1e2e + +.asm_24b01 + call $1cbb + call $1cfd + ld de, $0015 + add hl, de + ld de, Money + ld bc, $2306 + call $3198 + ret +; 24b15 + +INCBIN "baserom.gbc", $24b15, $24b25 - $24b15 + + +Function24b25: ; 24b25 + ld hl, $c4ab + ld b, $1 + ld c, $7 + call TextBox + ld hl, $c4ac + ld de, $4b89 + call PlaceString + ld hl, $c4c5 + ld de, $4b8e + call PlaceString + ld de, $d855 + ld bc, $0204 + ld hl, $c4c1 + call $3198 + ret +; 24b4e + +INCBIN "baserom.gbc", $24b4e, $24ef2 - $24b4e + + +Function24ef2: ; 4ef2 + ld hl, $4f2c + call Function1d35 + ld a, [$d0d2] + ld [$cf88], a + call $2039 + ld a, [$cf88] + ld [$d0d2], a + call Function1c07 + ret +; 24f0b + + +Function24f0b: ; 24f0b + ld hl, $4f4e + call Function1d35 + jr .asm_24f19 + + ld hl, $4f89 + call Function1d35 + +.asm_24f19 + ld a, [$d0d2] + ld [$cf88], a + call $202a + ld a, [$cf88] + ld [$d0d2], a + call Function1c07 + ret +; 24f2c + + +INCBIN "baserom.gbc", $24f2c, $24fc9 - $24f2c + + +Function24fc9: ; 24fc9 + ld a, $3 + ld hl, $5486 + rst FarCall + ld a, d + ld [MagikarpLength], a + ld a, e + ld [Buffer2], a + ld hl, $50f5 + call Function1d35 + call $4ff9 + ret +; 24fe1 + +Function24fe1: ; 24fe1 + ld a, $3 + ld hl, $5486 + rst FarCall + ld a, d + ld [MagikarpLength], a + ld a, e + ld [Buffer2], a + ld hl, $50fd + call Function1d35 + call $4ff9 + ret +; 24ff9 + +Function24ff9: ; 24ff9 + ld a, $1 + ld [$d10c], a +.asm_24ffe + call $5072 + call $500e + jr nc, .asm_24ffe + cp $ff + jr nz, .asm_2500c + scf + ret + +.asm_2500c + and a + ret +; 2500e + +Function2500e: ; 2500e + call $354b + bit 1, c + jr nz, .asm_2502b + bit 0, c + jr nz, .asm_2502f + bit 7, c + jr nz, .asm_25033 + bit 6, c + jr nz, .asm_2503f + bit 5, c + jr nz, .asm_2504d + bit 4, c + jr nz, .asm_2505f + and a + ret + +.asm_2502b + ld a, $ff + scf + ret + +.asm_2502f + ld a, $0 + scf + ret + +.asm_25033 + ld hl, $d10c + dec [hl] + jr nz, .asm_2503d + ld a, [$d10d] + ld [hl], a + +.asm_2503d + and a + ret + +.asm_2503f + ld hl, $d10c + inc [hl] + ld a, [$d10d] + cp [hl] + jr nc, .asm_2504b + ld [hl], $1 + +.asm_2504b + and a + ret + +.asm_2504d + ld a, [$d10c] + sub $a + jr c, .asm_25058 + jr z, .asm_25058 + jr .asm_2505a + +.asm_25058 + ld a, $1 + +.asm_2505a + ld [$d10c], a + and a + ret + +.asm_2505f + ld a, [$d10c] + add $a + ld b, a + ld a, [$d10d] + cp b + jr nc, .asm_2506c + ld b, a + +.asm_2506c + ld a, b + ld [$d10c], a + and a + ret +; 25072 + +Function25072: ; 25072 + call $1cbb + call $1cfd + ld de, $0015 + add hl, de + ld [hl], $f1 + inc hl + ld de, $d10c + ld bc, $8102 + call $3198 + ld a, [$cf86] + ld e, a + ld a, [$cf87] + ld d, a + ld a, [$cf8a] + call $2d54 + ret +; 25097 + +INCBIN "baserom.gbc", $25097, $265d3 - $25097 ProfOaksPC: ; 0x265d3 ld hl, OakPCText1 @@ -17819,7 +27372,189 @@ _KrisDecorationMenu: ; 0x2675c ret ; 0x2679a -INCBIN "baserom.gbc", $2679a, $270c4 - $2679a +INCBIN "baserom.gbc", $2679a, $269dd - $2679a + + +Function269dd: ; 269dd + ld hl, $6a4f + ld bc, $0006 + call AddNTimes + ret +; 269e7 + +Function269e7: ; 269e7 + push hl + call $69dd + call $6c72 + pop hl + call CopyName2 + ret +; 269f3 + +INCBIN "baserom.gbc", $269f3, $26a30 - $269f3 + + +Function26a30: ; 26a30 + call $69dd + ld de, $0003 + add hl, de + ld a, [hli] + ld d, [hl] + ld e, a + ret +; 26a3b + +Function26a3b: ; 26a3b + push bc + call $6a30 + pop bc + call BitTable1Func + ret +; 26a44 + +INCBIN "baserom.gbc", $26a44, $26c72 - $26a44 + + +Function26c72: ; 26c72 + ld a, [hli] + ld e, [hl] + ld bc, StringBuffer2 + push bc + ld hl, $6c7e + rst JumpTable + pop de + ret +; 26c7e + +INCBIN "baserom.gbc", $26c7e, $26c8c - $26c7e + + +Function26c8c: ; 26c8c + ret +; 26c8d + +Function26c8d: ; 26c8d + ld a, e + jr .asm_26cca + + call $6c8d + ld a, $d + jr .asm_26cca + + call $6c8d + ld a, $e + jr .asm_26cca + + ld a, e + call $6cc0 + ld a, $f + jr .asm_26cca + + ld a, e + call $6cc0 + ld a, $10 + jr .asm_26cca + + push de + ld a, $11 + call $6cca + pop de + ld a, e + jr .asm_26cc0 + + push de + call $6cca + pop de + ld a, e + jr .asm_26cca + +.asm_26cc0 + push bc + ld [$d265], a + call GetPokemonName + pop bc + jr .asm_26cda + +.asm_26cca + call $6ccf + jr .asm_26cda + + push bc + ld hl, $6b8d + call GetNthString + ld d, h + ld e, l + pop bc + ret + +.asm_26cda + ld h, b + ld l, c + call CopyName2 + dec hl + ld b, h + ld c, l + ret +; 26ce3 + +INCBIN "baserom.gbc", $26ce3, $26eea - $26ce3 + + +Function26eea: ; 26eea + ld a, c + ld h, d + ld l, e + call $69e7 + ret +; 26ef1 + +Function26ef1: ; 26ef1 + ld a, c + jp $6a3b +; 26ef5 + +INCBIN "baserom.gbc", $26ef5, $26f59 - $26ef5 + + +Function26f59: ; 26f59 + ld a, b + ld hl, $6f5f + rst JumpTable + ret +; 26f5f + +INCBIN "baserom.gbc", $26f5f, $26fb9 - $26f5f + + +Function26fb9: ; 26fb9 + ld a, [LeftOrnament] + jr .asm_26fc8 + + ld a, [RightOrnament] + jr .asm_26fc8 + + ld a, [Console] + jr .asm_26fc8 + +.asm_26fc8 + ld c, a + ld de, StringBuffer3 + call $6eea + ld b, $9 + ld de, $6fd5 + ret +; 26fd5 + +INCBIN "baserom.gbc", $26fd5, $26fdd - $26fd5 + + +Function26fdd: ; 26fdd + ld b, $9 + ld de, $6fe3 + ret +; 26fe3 + +INCBIN "baserom.gbc", $26fe3, $270c4 - $26fe3 GetTrainerDVs: ; 270c4 ; get dvs based on trainer class @@ -18083,7 +27818,62 @@ TrainerClassNames: ; 2c1ef db "MYSTICALMAN@" -INCBIN "baserom.gbc", $2c41a, $2ee6c - $2c41a +INCBIN "baserom.gbc", $2c41a, $2c7fb - $2c41a + + +Function2c7fb: ; 2c7fb + ld hl, StringBuffer2 + ld de, $d066 + ld bc, $000c + call CopyBytes + call WhiteBGMap + ld a, $14 + ld hl, $404f + rst FarCall + ld a, $14 + ld hl, $4405 + rst FarCall + ld a, $14 + ld hl, $43e0 + rst FarCall + ld a, $3 + ld [PartyMenuActionText], a +.asm_2c821 + callba WritePartyMenuTilemap + callba PrintPartyMenuText + call WaitBGMap + call Function32f9 + call DelayFrame + callba PartyMenuSelect + push af + ld a, [CurPartySpecies] + cp $fd + pop bc + jr z, .asm_2c854 + push bc + ld hl, $d066 + ld de, StringBuffer2 + ld bc, $000c + call CopyBytes + pop af + ret + +.asm_2c854 + push hl + push de + push bc + push af + ld de, $0019 + call StartSFX + call WaitSFX + pop af + pop bc + pop de + pop hl + jr .asm_2c821 +; 2c867 + +INCBIN "baserom.gbc", $2c867, $2ee6c - $2c867 PlayBattleMusic: ; 2ee6c @@ -18728,7 +28518,63 @@ LostBattle: ; 3d38e ; 3d432 -INCBIN "baserom.gbc", $3d432, $3ddc2 - $3d432 +INCBIN "baserom.gbc", $3d432, $3dabd - $3d432 + + +Function3dabd: ; 3dabd + ld a, [CurPartyMon] + ld hl, OTPartyMon1Species + call GetPartyLocation + ld de, EnemyMonSpecies + ld bc, $0006 + call CopyBytes + ld bc, $000f + add hl, bc + ld de, EnemyMonAtkDefDV + ld bc, $0007 + call CopyBytes + inc hl + inc hl + inc hl + ld de, EnemyMonLevel + ld bc, $0011 + call CopyBytes + ld a, [EnemyMonSpecies] + ld [CurSpecies], a + call GetBaseData + ld hl, OTPartyMon1Nickname + ld a, [CurPartyMon] + call SkipNames + ld de, EnemyMonNick + ld bc, $000b + call CopyBytes + ld hl, EnemyMonAtk + ld de, EnemyStats + ld bc, $000a + call CopyBytes + call $6c30 + ld hl, BaseType1 + ld de, EnemyMonType1 + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + ld hl, BaseHP + ld de, EnemyMonBaseStats + ld b, $5 +.asm_3db25 + ld a, [hli] + ld [de], a + inc de + dec b + jr nz, .asm_3db25 + ld a, [CurPartyMon] + ld [CurOTMon], a + ret +; 3db32 + +INCBIN "baserom.gbc", $3db32, $3ddc2 - $3db32 ld hl, RecoveredUsingText jp FarBattleTextBox @@ -19349,7 +29195,105 @@ CheckUnownLetter: ; 3eb75 ; 3ebc7 -INCBIN "baserom.gbc", $3ebc7, $3ed4a - $3ebc7 +INCBIN "baserom.gbc", $3ebc7, $3ec30 - $3ebc7 + + +Function3ec30: ; 3ec30 + xor a + ld [hBattleTurn], a + call $6c39 + jp $6c76 +; 3ec39 + +Function3ec39: ; 3ec39 + ld a, [hBattleTurn] + and a + jr z, .asm_3ec5a + ld a, [BattleMonStatus] + and $40 + ret z + ld hl, $c645 + ld a, [hld] + ld b, a + ld a, [hl] + srl a + rr b + srl a + rr b + ld [hli], a + or b + jr nz, .asm_3ec58 + ld b, $1 + +.asm_3ec58 + ld [hl], b + ret + +.asm_3ec5a + ld a, [EnemyMonStatus] + and $40 + ret z + ld hl, $d21f + ld a, [hld] + ld b, a + ld a, [hl] + srl a + rr b + srl a + rr b + ld [hli], a + or b + jr nz, .asm_3ec74 + ld b, $1 + +.asm_3ec74 + ld [hl], b + ret +; 3ec76 + +Function3ec76: ; 3ec76 + ld a, [hBattleTurn] + and a + jr z, .asm_3ec93 + ld a, [BattleMonStatus] + and $10 + ret z + ld hl, $c641 + ld a, [hld] + ld b, a + ld a, [hl] + srl a + rr b + ld [hli], a + or b + jr nz, .asm_3ec91 + ld b, $1 + +.asm_3ec91 + ld [hl], b + ret + +.asm_3ec93 + ld a, [EnemyMonStatus] + and $10 + ret z + ld hl, $d21b + ld a, [hld] + ld b, a + ld a, [hl] + srl a + rr b + ld [hli], a + or b + jr nz, .asm_3eca9 + ld b, $1 + +.asm_3eca9 + ld [hl], b + ret +; 3ecab + +INCBIN "baserom.gbc", $3ecab, $3ed4a - $3ecab BadgeStatBoosts: ; 3ed4a @@ -19704,7 +29648,262 @@ INCLUDE "battle/effect_command_pointers.asm" SECTION "bank10",DATA,BANK[$10] -INCBIN "baserom.gbc", $40000, $40c65-$40000 +Function40000: ; 40000 + ld a, [$ffd1] + ld l, a + ld a, [$ffd2] + ld h, a + push hl + ld a, [$ffcf] + push af + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + ld a, [VramState] + push af + xor a + ld [VramState], a + ld a, [$ffaa] + push af + ld a, $1 + ld [$ffaa], a + xor a + ld [$ffde], a + call $4063 + call DelayFrame +.asm_40029 + call Functiona57 + ld a, [$cf63] + bit 7, a + jr nz, .asm_4003b + call $410b + call DelayFrame + jr .asm_40029 + +.asm_4003b + ld de, $0008 + call StartSFX + call WaitSFX + call ClearSprites + ld a, [$c7d4] + ld [$d959], a + pop af + ld [$ffaa], a + pop af + ld [VramState], a + pop af + ld [Options], a + pop af + ld [$ffcf], a + pop hl + ld a, l + ld [$ffd1], a + ld a, h + ld [$ffd2], a + ret +; 40063 + +Function40063: ; 40063 + call WhiteBGMap + call ClearSprites + call ClearTileMap + call $54b7 + ld hl, PlayerSDefLevel + ld bc, $0115 + xor a + call ByteFill + xor a + ld [$cf63], a + ld [$cf64], a + ld [$cf65], a + ld [$cf66], a + call $40a2 + ld a, [$d959] + ld [$c7d4], a + call $4bdc + call $40b4 + call $40ed + ld a, $77 + ld hl, $6247 + rst FarCall + call $5af7 + ret +; 400a2 + +Function400a2: ; 400a2 + ld a, [StatusFlags] + bit 1, a + jr nz, .asm_400ae + xor a + ld [$c7dc], a + ret + +.asm_400ae + ld a, $1 + ld [$c7dc], a + ret +; 400b4 + +Function400b4: ; 400b4 + ld hl, PlayerSDefLevel + ld a, [$c2d6] + and a + jr z, .asm_400ec + cp $fc + jr nc, .asm_400ec + ld b, a + ld a, [$c7d2] + cp $8 + jr c, .asm_400db + sub $7 + ld c, a +.asm_400cc + ld a, b + cp [hl] + jr z, .asm_400ec + inc hl + ld a, [$c7d0] + inc a + ld [$c7d0], a + dec c + jr nz, .asm_400cc + +.asm_400db + ld c, $7 +.asm_400dd + ld a, b + cp [hl] + jr z, .asm_400ec + inc hl + ld a, [$c7d1] + inc a + ld [$c7d1], a + dec c + jr nz, .asm_400dd + +.asm_400ec + ret +; 400ed + +Function400ed: ; 400ed + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + call GetWorldMapLocation + cp $0 + jr nz, .asm_40107 + ld a, [BackupMapGroup] + ld b, a + ld a, [BackupMapNumber] + ld c, a + call GetWorldMapLocation + +.asm_40107 + ld [$c7e4], a + ret +; 4010b + +Function4010b: ; 4010b + ld a, [$cf63] + ld hl, $4115 + call $5432 + jp [hl] +; 40115 + +INCBIN "baserom.gbc", $40115, $40ad5 - $40115 + + +Function40ad5: ; 40ad5 + push hl + ld a, $33 + ld [hli], a + ld d, $34 + call $4b06 + ld a, $35 + ld [hl], a + pop hl + ld de, $0014 + add hl, de +.asm_40ae6 + push hl + ld a, $36 + ld [hli], a + ld d, $7f + call $4b06 + ld a, $37 + ld [hl], a + pop hl + ld de, $0014 + add hl, de + dec b + jr nz, .asm_40ae6 + ld a, $38 + ld [hli], a + ld d, $39 + call $4b06 + ld a, $3a + ld [hl], a + ret +; 40b06 + +Function40b06: ; 40b06 + ld e, c +.asm_40b07 + ld a, e + and a + ret z + ld a, d + ld [hli], a + dec e + jr .asm_40b07 +; 40b0f + +INCBIN "baserom.gbc", $40b0f, $40bb1 - $40b0f + + +Function40bb1: ; 40bb1 + ld a, [$c7d1] + ld hl, $c7d0 + add [hl] + ld e, a + ld d, $0 + ld hl, PlayerSDefLevel + add hl, de + ld a, [hl] + ld [$d265], a + ret +; 40bc4 + +INCBIN "baserom.gbc", $40bc4, $40bd0 - $40bc4 + + +Function40bd0: ; 40bd0 + push de + push hl + ld a, [$d265] + dec a + call CheckCaughtMon + pop hl + pop de + ret +; 40bdc + + + +Function40bdc: ; 40bdc + ld hl, PlayerSDefLevel + ld bc, Start + xor a + call ByteFill + ld a, [$c7d4] + ld hl, $4bf0 + call $5432 + jp [hl] +; 40bf0 + +INCBIN "baserom.gbc", $40bf0, $40c65 - $40bf0 AlphabeticalPokedexOrder: ; 0x40c65 INCLUDE "stats/pokedex/order_alpha.asm" @@ -19712,12 +29911,637 @@ INCLUDE "stats/pokedex/order_alpha.asm" NewPokedexOrder: ; 0x40d60 INCLUDE "stats/pokedex/order_new.asm" -INCBIN "baserom.gbc", $40e5b, $41afb-$40e5b +Function40e5b: ; 40e5b + xor a + ld [hBGMapMode], a + ld hl, $c590 + ld bc, $0412 + call $4ad5 + ld a, [$c7d8] + ld hl, $4e7d + call $5432 + ld e, l + ld d, h + ld hl, $c5b9 + call PlaceString + ld a, $1 + ld [hBGMapMode], a + ret +; 40e7d + +INCBIN "baserom.gbc", $40e7d, $41432 - $40e7d + + +Function41432: ; 41432 + ld e, a + ld d, $0 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ret +; 4143b + +Function4143b: ; 4143b + call $4bb1 + call $4bd0 + jr z, .asm_4145b + ld a, [$def4] + ld [UnownLetter], a + ld a, [$d265] + ld [CurPartySpecies], a + call GetBaseData + ld de, VTiles2 + ld a, $3c + call Predef + ret + +.asm_4145b + ld a, $0 + call GetSRAMBank + ld a, $77 + ld hl, $60d7 + rst FarCall + ld hl, VTiles2 + ld de, $a000 + ld c, $31 + ld a, [hROMBank] + ld b, a + call Functionf82 + call CloseSRAM + ret +; 41478 + +INCBIN "baserom.gbc", $41478, $414b7 - $41478 + + +Function414b7: ; 414b7 + call DisableLCD + ld hl, VTiles2 + ld bc, $0310 + xor a + call ByteFill + call $54fb + call Functione5f + ld hl, $9600 + ld bc, $0200 + call $5504 + call $5a24 + jr nz, .asm_414e0 + ld a, $77 + ld hl, $5f1c + rst FarCall + jr .asm_414e9 + +.asm_414e0 + ld hl, $550e + ld de, $9310 + call Decompress + +.asm_414e9 + ld hl, $56b0 + ld de, VTiles0 + call Decompress + ld a, $6 + call $3cb4 + call EnableLCD + ret +; 414fb + +Function414fb: ; 414fb + call $0e51 + ld hl, VTiles1 + ld bc, $0800 +.asm_41504 + ld a, [hl] + xor $ff + ld [hli], a + dec bc + ld a, b + or c + jr nz, .asm_41504 + ret +; 4150e + +INCBIN "baserom.gbc", $4150e, $41a24 - $4150e + + +Function41a24: ; 41a24 + ld a, [hCGB] + or a + ret nz + ld a, [hSGB] + dec a + ret +; 41a2c + +Function41a2c: ; 41a2c + ld a, $0 + call GetSRAMBank + ld hl, $4000 + ld de, $a188 + ld bc, Function270 + ld a, $77 + call FarCopyBytes + ld hl, $a188 + ld bc, $01b0 + call $5504 + ld de, $a188 + ld hl, $9400 + ld bc, $101b + call Functioneba + call CloseSRAM + ret +; 41a58 + +INCBIN "baserom.gbc", $41a58, $41af7 - $41a58 + + +Function41af7: ; 41af7 + xor a + ld [hBGMapMode], a + ret +; 41afb + Moves: ; 0x41afb INCLUDE "battle/moves/moves.asm" -INCBIN "baserom.gbc", $421d8, $425b1-$421d8 +Function421d8: ; 421d8 + ld hl, EvolvableFlags + xor a + ld [hl], a + ld a, [CurPartyMon] + ld c, a + ld b, $1 + call $6577 + xor a + ld [$d268], a + dec a + ld [CurPartyMon], a + push hl + push bc + push de + ld hl, PartyCount + push hl +.asm_421f5 + ld hl, CurPartyMon + inc [hl] + pop hl + inc hl + ld a, [hl] + cp $ff + jp z, $63ff + ld [MagikarpLength], a + push hl + ld a, [CurPartyMon] + ld c, a + ld hl, EvolvableFlags + ld b, $2 + call $6577 + ld a, c + and a + jp z, $61f5 + ld a, [MagikarpLength] + dec a + ld b, $0 + ld c, a + ld hl, EvosAttacksPointers + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + push hl + xor a + ld [MonType], a + ld a, $1f + call Predef + pop hl + ld a, [hli] + and a + jr z, .asm_421f5 + ld b, a + cp $3 + jr z, .asm_422ae + ld a, [InLinkBattle] + and a + jp nz, $63f9 + ld a, b + cp $2 + jp z, $62d5 + ld a, [$d1e9] + and a + jp nz, $63f9 + ld a, b + cp $1 + jp z, $62ee + cp $4 + jr z, .asm_42283 + ld a, [TempMonLevel] + cp [hl] + jp c, $63f8 + call $6461 + jp z, $63f8 + push hl + ld de, TempMonAtk + ld hl, TempMonDef + ld c, $2 + call StringCmp + ld a, $3 + jr z, .asm_4227a + ld a, $2 + jr c, .asm_4227a + ld a, $1 + +.asm_4227a + pop hl + inc hl + cp [hl] + jp nz, $63f9 + inc hl + jr .asm_422fd + +.asm_42283 + ld a, [TempMonHappiness] + cp $dc + jp c, $63f9 + call $6461 + jp z, $63f9 + ld a, [hli] + cp $1 + jr z, .asm_422fd + cp $2 + jr z, .asm_422a4 + ld a, [TimeOfDay] + cp $2 + jp nz, $63fa + jr .asm_422fd + +.asm_422a4 + ld a, [TimeOfDay] + cp $2 + jp z, $63fa + jr .asm_422fd + +.asm_422ae + ld a, [InLinkBattle] + and a + jp z, $63f9 + call $6461 + jp z, $63f9 + ld a, [hli] + ld b, a + inc a + jr z, .asm_422fd + ld a, [InLinkBattle] + cp $1 + jp z, $63fa + ld a, [TempMonItem] + cp b + jp nz, $63fa + xor a + ld [TempMonItem], a + jr .asm_422fd + + ld a, [hli] + ld b, a + ld a, [CurItem] + cp b + jp nz, $63fa + ld a, [$d1e9] + and a + jp z, $63fa + ld a, [InLinkBattle] + and a + jp nz, $63fa + jr .asm_422fd + + ld a, [hli] + ld b, a + ld a, [TempMonLevel] + cp b + jp c, $63fa + call $6461 + jp z, $63fa + +.asm_422fd + ld a, [TempMonLevel] + ld [CurPartyLevel], a + ld a, $1 + ld [$d268], a + push hl + ld a, [hl] + ld [Buffer2], a + ld a, [CurPartyMon] + ld hl, PartyMon1Nickname + call GetNick + call CopyName1 + ld hl, $6482 + call PrintText + ld c, $32 + call DelayFrames + xor a + ld [hBGMapMode], a + ld hl, TileMap + ld bc, $0c14 + call ClearBox + ld a, $1 + ld [hBGMapMode], a + call ClearSprites + ld a, $13 + ld hl, $65e1 + rst FarCall + push af + call ClearSprites + pop af + jp c, $6454 + ld hl, $6473 + call PrintText + pop hl + ld a, [hl] + ld [CurSpecies], a + ld [TempMonSpecies], a + ld [Buffer2], a + ld [$d265], a + call GetPokemonName + push hl + ld hl, $6478 + call PrintTextBoxText + ld a, $41 + ld hl, $6094 + rst FarCall + ld de, $0000 + call StartMusic + ld de, $0002 + call StartSFX + call WaitSFX + ld c, $28 + call DelayFrames + call ClearTileMap + call $6414 + call GetBaseData + ld hl, $d118 + ld de, TempMonMaxHP + ld b, $1 + ld a, $c + call Predef + ld a, [CurPartyMon] + ld hl, PartyMon1Species + ld bc, $0030 + call AddNTimes + ld e, l + ld d, h + ld bc, $0024 + add hl, bc + ld a, [hli] + ld b, a + ld c, [hl] + ld hl, $d133 + ld a, [hld] + sub c + ld c, a + ld a, [hl] + sbc b + ld b, a + ld hl, $d131 + ld a, [hl] + add c + ld [hld], a + ld a, [hl] + adc b + ld [hl], a + ld hl, TempMonSpecies + ld bc, $0030 + call CopyBytes + ld a, [CurSpecies] + ld [$d265], a + xor a + ld [MonType], a + call $6487 + ld a, [$d265] + dec a + call SetSeenAndCaughtMon + ld a, [$d265] + cp $c9 + jr nz, .asm_423ec + ld hl, TempMonDVs + ld a, $2d + call Predef + ld hl, $7a18 + ld a, $3e + rst FarCall + +.asm_423ec + pop de + pop hl + ld a, [TempMonSpecies] + ld [hl], a + push hl + ld l, e + ld h, d + jp $61f5 +; 423f8 + +Function423f8: ; 423f8 + inc hl + inc hl + inc hl + jp $6230 +; 423fe + +INCBIN "baserom.gbc", $423fe, $423ff - $423fe + + +Function423ff: ; 423ff + pop de + pop bc + pop hl + ld a, [InLinkBattle] + and a + ret nz + ld a, [IsInBattle] + and a + ret nz + ld a, [$d268] + and a + call nz, $3d47 + ret +; 42414 + +Function42414: ; 42414 + ld a, [CurSpecies] + push af + ld a, [BaseDexNo] + ld [$d265], a + call GetPokemonName + pop af + ld [CurSpecies], a + ld hl, StringBuffer1 + ld de, StringBuffer2 +.asm_4242b + ld a, [de] + inc de + cp [hl] + inc hl + ret nz + cp $50 + jr nz, .asm_4242b + ld a, [CurPartyMon] + ld bc, $000b + ld hl, PartyMon1Nickname + call AddNTimes + push hl + ld a, [CurSpecies] + ld [$d265], a + call GetPokemonName + ld hl, StringBuffer1 + pop de + ld bc, $000b + jp CopyBytes +; 42454 + +Function42454: ; 42454 + ld hl, $647d + call PrintText + call ClearTileMap + pop hl + jp $61f5 +; 42461 + +Function42461: ; 42461 + push hl + ld a, [CurPartyMon] + ld hl, PartyMon1Item + ld bc, $0030 + call AddNTimes + ld a, [hl] + cp $70 + pop hl + ret +; 42473 + +INCBIN "baserom.gbc", $42473, $42487 - $42473 + + +Function42487: ; 42487 + ld a, [$d265] + ld [CurPartySpecies], a + dec a + ld b, $0 + ld c, a + ld hl, EvosAttacksPointers + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a +.asm_42499 + ld a, [hli] + and a + jr nz, .asm_42499 +.asm_4249d + ld a, [hli] + and a + jr z, .asm_424da + ld b, a + ld a, [CurPartyLevel] + cp b + ld a, [hli] + jr nz, .asm_4249d + push hl + ld d, a + ld hl, PartyMon1Move1 + ld a, [CurPartyMon] + ld bc, $0030 + call AddNTimes + ld b, $4 +.asm_424b9 + ld a, [hli] + cp d + jr z, .asm_424c2 + dec b + jr nz, .asm_424b9 + jr .asm_424c5 + +.asm_424c2 + pop hl + jr .asm_4249d + +.asm_424c5 + ld a, d + ld [$d262], a + ld [$d265], a + call GetMoveName + call CopyName1 + ld a, $0 + call Predef + pop hl + jr .asm_4249d + +.asm_424da + ld a, [CurPartySpecies] + ld [$d265], a + ret +; 424e1 + +INCBIN "baserom.gbc", $424e1, $42577 - $424e1 + + +Function42577: ; 42577 + push de + ld d, $0 + ld a, $3 + call Predef + pop de + ret +; 42581 + +Function42581: ; 42581 + ld c, $0 +.asm_42583 + ld hl, EvosAttacksPointers + ld b, $0 + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a +.asm_4258d + ld a, [hli] + and a + jr z, .asm_425a2 + cp $5 + jr nz, .asm_42596 + inc hl + +.asm_42596 + inc hl + ld a, [CurPartySpecies] + cp [hl] + jr z, .asm_425aa + inc hl + ld a, [hl] + and a + jr nz, .asm_4258d + +.asm_425a2 + inc c + ld a, c + cp $fb + jr c, .asm_42583 + and a + ret + +.asm_425aa + inc c + ld a, c + ld [CurPartySpecies], a + scf + ret +; 425b1 + EvosAttacksPointers: ; 0x425b1 INCLUDE "stats/evos_attacks_pointers.asm" @@ -20103,14 +30927,264 @@ AIScoringPointers: ; 441af ; 441cf -INCBIN "baserom.gbc", $441cf, $44378 - $441cf +Function441cf: ; 441cf + ld hl, $41fc + ld b, $19 +.asm_441d4 + ld a, [hli] + cp $fe + jr nz, .asm_441dd + ld hl, $41fc + ld a, [hli] + +.asm_441dd + ld [$c7db], a + ld a, [hli] + ld c, a + push bc + push hl + call $4207 + pop hl + pop bc + call DelayFrames + dec b + jr nz, .asm_441d4 + xor a + ld [$c7db], a + call $4207 + ld c, $20 + call DelayFrames + ret +; 441fc + +INCBIN "baserom.gbc", $441fc, $44207 - $441fc + + +Function44207: ; 44207 + ld a, [$c7db] + ld hl, $4228 + ld de, Sprites +.asm_44210 + ld a, [hli] + cp $ff + ret z + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [$c7db] + ld b, a + add a + add b + add [hl] + inc hl + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + jr .asm_44210 +; 44228 + +INCBIN "baserom.gbc", $44228, $44378 - $44228 PokedexDataPointerTable: ; 0x44378 INCLUDE "stats/pokedex/entry_pointers.asm" -INCBIN "baserom.gbc", $4456e, $447a0 - $4456e +Function4456e: ; 4456e + ld a, $1 + call GetPartyParamLocation + ld d, [hl] + ld a, $2e + ld hl, $5e76 + rst FarCall + jr nc, .asm_445be + call $4648 + cp $a + jr nc, .asm_445be + ld bc, $002f + ld hl, $a835 + call AddNTimes + ld d, h + ld e, l + ld a, [CurPartyMon] + ld bc, $002f + ld hl, $a600 + call AddNTimes + push hl + ld a, $0 + call GetSRAMBank + ld bc, $002f + call CopyBytes + pop hl + xor a + ld bc, $002f + call ByteFill + ld a, $1 + call GetPartyParamLocation + ld [hl], $0 + ld hl, $a834 + inc [hl] + call CloseSRAM + xor a + ret + +.asm_445be + scf + ret +; 445c0 + +INCBIN "baserom.gbc", $445c0, $44648 - $445c0 + + +Function44648: ; 44648 + ld a, $0 + call GetSRAMBank + ld a, [$a834] + ld c, a + jp CloseSRAM +; 44654 + +Function44654: ; 44654 + push bc + push de + ld a, $14 + ld hl, $4000 + rst FarCall + ld a, $2 + jr c, .asm_446c6 + ld a, [CurPartyMon] + ld hl, PartyMon1Item + ld bc, $0030 + call AddNTimes + ld d, [hl] + ld a, $2e + ld hl, $5e76 + rst FarCall + ld a, $3 + jr nc, .asm_446c6 + ld a, $0 + call GetSRAMBank + ld a, [CurPartyMon] + ld hl, $a600 + ld bc, $002f + call AddNTimes + ld d, h + ld e, l + pop hl + pop bc + ld a, $20 + ld [$d265], a +.asm_44691 + ld a, [de] + ld c, a + ld a, b + call GetFarByte + cp $50 + jr z, .asm_446ab + cp c + ld a, $0 + jr nz, .asm_446c1 + inc hl + inc de + ld a, [$d265] + dec a + ld [$d265], a + jr nz, .asm_44691 + +.asm_446ab + ld a, $3 + ld hl, $6538 + rst FarCall + ld a, $4 + jr c, .asm_446c1 + xor a + ld [$d10b], a + ld a, $3 + ld hl, $6039 + rst FarCall + ld a, $1 + +.asm_446c1 + call CloseSRAM + jr .asm_446c8 + +.asm_446c6 + pop de + pop bc + +.asm_446c8 + ld [ScriptVar], a + ret +; 446cc + +Function446cc: ; 446cc + ld a, [PartyCount] + dec a + push af + push bc + ld hl, PartyMon1Item + ld bc, $0030 + call AddNTimes + pop bc + ld [hl], b + pop af + push bc + push af + ld hl, $a600 + ld bc, $002f + call AddNTimes + ld d, h + ld e, l + ld hl, DefaultFlypoint + ld bc, $0021 + ld a, $0 + call GetSRAMBank + call CopyBytes + pop af + push af + ld hl, PartyMon1OT + ld bc, $000b + call AddNTimes + ld bc, $000a + call CopyBytes + pop af + ld hl, PartyMon1ID + ld bc, $0030 + call AddNTimes + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + inc de + ld a, [CurPartySpecies] + ld [de], a + inc de + pop bc + ld a, b + ld [de], a + jp CloseSRAM +; 44725 + +Function44725: ; 44725 + ld a, $0 + call GetSRAMBank + ld hl, $a600 + ld de, $a71a + ld bc, $011a + call CopyBytes + ld hl, $a834 + ld de, $aa0b + ld bc, $01d7 + call CopyBytes + jp CloseSRAM +; 44745 + +INCBIN "baserom.gbc", $44745, $447a0 - $44745 _KrisMailBoxMenu: ; 0x447a0 call InitMail @@ -20402,12 +31476,170 @@ MenuData44964: ; 0x44964 SECTION "bank12",DATA,BANK[$12] -INCBIN "baserom.gbc", $48000, $48e9b - $48000 +Function48000: ; 48000 + ld a, $1 + ld [$d474], a + xor a + ld [$d473], a + ld [PlayerGender], a + ld [$d475], a + ld [$d476], a + ld [$d477], a + ld [$d478], a + ld [DefaultFlypoint], a + ld [$d003], a + ld a, [$d479] + res 0, a + ld [$d479], a + ld a, [$d479] + res 1, a + ld [$d479], a + ret +; 4802f + +INCBIN "baserom.gbc", $4802f, $48e81 - $4802f + + +Function48e81: ; 48e81 + ld hl, $4e93 + add hl, de + add hl, de + ld a, [hli] + ld e, a + ld d, [hl] + ld hl, $9500 + ld bc, $120f + call Functioneba + ret +; 48e93 + +INCBIN "baserom.gbc", $48e93, $48e9b - $48e93 PackFGFX: INCBIN "gfx/misc/pack_f.2bpp" -INCBIN "baserom.gbc", $4925b, $49962 - $4925b +Function4925b: ; 4925b + call FadeToMenu + call WhiteBGMap + call Functionfdb + call DelayFrame + ld b, $14 + call GetSGBLayout + xor a + ld [$d142], a + call $52a5 + ld [$d265], a + ld [$d262], a + call GetMoveName + call CopyName1 + ld a, $b + ld hl, $47fb + rst FarCall + jr c, .asm_4929c + jr .asm_49291 + +.asm_49289 + ld a, $b + ld hl, $480a + rst FarCall + jr c, .asm_4929c + +.asm_49291 + call $52b9 + jr nc, .asm_49289 + xor a + ld [ScriptVar], a + jr .asm_492a1 + +.asm_4929c + ld a, $ff + ld [ScriptVar], a + +.asm_492a1 + call $2b3c + ret +; 492a5 + +Function492a5: ; 492a5 + ld a, [ScriptVar] + cp $1 + jr z, .asm_492b3 + cp $2 + jr z, .asm_492b6 + ld a, $3a + ret + +.asm_492b3 + ld a, $35 + ret + +.asm_492b6 + ld a, $55 + ret +; 492b9 + +Function492b9: ; 492b9 + ld hl, $530a + call Function1d35 + ld a, $e + call Predef + push bc + ld a, [CurPartyMon] + ld hl, PartyMon1Nickname + call GetNick + pop bc + ld a, c + and a + jr nz, .asm_492e5 + push de + ld de, $0019 + call StartSFX + pop de + ld a, $b + ld hl, $48ce + call $31b0 + jr .asm_49300 + +.asm_492e5 + ld hl, $79ea + ld a, $3 + rst FarCall + jr c, .asm_49300 + ld a, $0 + call Predef + ld a, b + and a + jr z, .asm_49300 + ld c, $5 + ld hl, $71c2 + ld a, $1 + rst FarCall + jr .asm_49305 + +.asm_49300 + call Function1c07 + and a + ret + +.asm_49305 + call Function1c07 + scf + ret +; 4930a + +INCBIN "baserom.gbc", $4930a, $49409 - $4930a + + +Function49409: ; 49409 + ld hl, $5418 + ld de, $d038 + ld bc, $0008 + ld a, $5 + call $306b + ret +; 49418 + +INCBIN "baserom.gbc", $49418, $49962 - $49418 SpecialCelebiGFX: INCBIN "gfx/special/celebi/leaf.2bpp" @@ -21217,7 +32449,54 @@ INCBIN "baserom.gbc", $4a843, $4ae78 - $4a843 SECTION "bank13",DATA,BANK[$13] -INCBIN "baserom.gbc", $4c000, $4c075 - $4c000 +Function4c000: ; 4c000 + ld hl, TileMap + ld de, AttrMap + ld b, $12 +.asm_4c008 + push bc + ld c, $14 +.asm_4c00b + ld a, [hl] + push hl + srl a + jr c, .asm_4c021 + ld hl, TileSetPalettes + add [hl] + ld l, a + ld a, [$d1e7] + adc $0 + ld h, a + ld a, [hl] + and $f + jr .asm_4c031 + +.asm_4c021 + ld hl, TileSetPalettes + add [hl] + ld l, a + ld a, [$d1e7] + adc $0 + ld h, a + ld a, [hl] + swap a + and $f + +.asm_4c031 + pop hl + ld [de], a + res 7, [hl] + inc hl + inc de + dec c + jr nz, .asm_4c00b + pop bc + dec b + jr nz, .asm_4c008 + ret +; 4c03f + +INCBIN "baserom.gbc", $4c03f, $4c075 - $4c03f Tileset03PalMap: ; 0x4c075 INCBIN "tilesets/03_palette_map.bin" @@ -21391,7 +32670,302 @@ TileTypeTable: ; 4ce1f db $00, $00, $00, $00, $00, $00, $00, $0f ; 4cf1f -INCBIN "baserom.gbc", $4cf1f, $4d596 - $4cf1f +INCBIN "baserom.gbc", $4cf1f, $4cffe - $4cf1f + + +Function4cffe: ; 4cffe + ld a, $1 + call GetSRAMBank + ld a, [$a008] + ld b, a + ld a, [$ad0f] + ld c, a + call CloseSRAM + ld a, b + cp $63 + jr nz, .asm_4d01b + ld a, c + cp $7f + jr nz, .asm_4d01b + ld c, $1 + ret + +.asm_4d01b + ld c, $0 + ret +; 4d01e + +INCBIN "baserom.gbc", $4d01e, $4d15b - $4d01e + + +Function4d15b: ; 4d15b + ld hl, EnemyMoveAnimation + ld a, [$d196] + and a + jr z, .asm_4d168 + ld bc, $0030 + add hl, bc + +.asm_4d168 + ld a, [$d197] + and a + jr z, .asm_4d170 + inc hl + inc hl + +.asm_4d170 + ld de, TileMap + ld b, $12 +.asm_4d175 + ld c, $14 +.asm_4d177 + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .asm_4d177 + ld a, l + add $4 + ld l, a + jr nc, .asm_4d184 + inc h + +.asm_4d184 + dec b + jr nz, .asm_4d175 + ret +; 4d188 + +Function4d188: ; 4d188 + ld a, [hCGB] + and a + jp z, WaitBGMap + ld a, [$c2ce] + cp $0 + jp z, WaitBGMap + ld a, [hBGMapMode] + push af + xor a + ld [hBGMapMode], a + ld a, [$ffde] + push af + xor a + ld [$ffde], a +.asm_4d1a2 + ld a, [rLY] + cp $8f + jr c, .asm_4d1a2 + di + ld a, $1 + ld [rVBK], a + ld hl, AttrMap + call $51cb + ld a, $0 + ld [rVBK], a + ld hl, TileMap + call $51cb +.asm_4d1bd + ld a, [rLY] + cp $8f + jr c, .asm_4d1bd + ei + pop af + ld [$ffde], a + pop af + ld [hBGMapMode], a + ret +; 4d1cb + +Function4d1cb: ; 4d1cb + ld [hSPBuffer], sp + ld sp, hl + ld a, [$ffd7] + ld h, a + ld l, $0 + ld a, $12 + ld [$ffd3], a + ld b, $2 + ld c, $41 +.asm_4d1dc + pop de +.asm_4d1dd + ld a, [$ff00+c] + and b + jr nz, .asm_4d1dd + ld [hl], e + inc l + ld [hl], d + inc l + pop de +.asm_4d1e6 + ld a, [$ff00+c] + and b + jr nz, .asm_4d1e6 + ld [hl], e + inc l + ld [hl], d + inc l + pop de +.asm_4d1ef + ld a, [$ff00+c] + and b + jr nz, .asm_4d1ef + ld [hl], e + inc l + ld [hl], d + inc l + pop de +.asm_4d1f8 + ld a, [$ff00+c] + and b + jr nz, .asm_4d1f8 + ld [hl], e + inc l + ld [hl], d + inc l + pop de +.asm_4d201 + ld a, [$ff00+c] + and b + jr nz, .asm_4d201 + ld [hl], e + inc l + ld [hl], d + inc l + pop de +.asm_4d20a + ld a, [$ff00+c] + and b + jr nz, .asm_4d20a + ld [hl], e + inc l + ld [hl], d + inc l + pop de +.asm_4d213 + ld a, [$ff00+c] + and b + jr nz, .asm_4d213 + ld [hl], e + inc l + ld [hl], d + inc l + pop de +.asm_4d21c + ld a, [$ff00+c] + and b + jr nz, .asm_4d21c + ld [hl], e + inc l + ld [hl], d + inc l + pop de +.asm_4d225 + ld a, [$ff00+c] + and b + jr nz, .asm_4d225 + ld [hl], e + inc l + ld [hl], d + inc l + pop de +.asm_4d22e + ld a, [$ff00+c] + and b + jr nz, .asm_4d22e + ld [hl], e + inc l + ld [hl], d + inc l + ld de, $000c + add hl, de + ld a, [$ffd3] + dec a + ld [$ffd3], a + jr nz, .asm_4d1dc + ld a, [hSPBuffer] + ld l, a + ld a, [$ffda] + ld h, a + ld sp, hl + ret +; 4d249 + +INCBIN "baserom.gbc", $4d249, $4d35b - $4d249 + + +Function4d35b: ; 4d35b + ld h, d + ld l, e + push bc + push hl + call $537e + pop hl + pop bc + ld de, $0939 + add hl, de + inc b + inc b + inc c + inc c + ld a, $7 +.asm_4d36e + push bc + push hl +.asm_4d370 + ld [hli], a + dec c + jr nz, .asm_4d370 + pop hl + ld de, $0014 + add hl, de + pop bc + dec b + jr nz, .asm_4d36e + ret +; 4d37e + +Function4d37e: ; 4d37e + push hl + ld a, $76 + ld [hli], a + inc a + call $53ab + inc a + ld [hl], a + pop hl + ld de, $0014 + add hl, de +.asm_4d38d + push hl + ld a, $79 + ld [hli], a + ld a, $7f + call $53ab + ld [hl], $7a + pop hl + ld de, $0014 + add hl, de + dec b + jr nz, .asm_4d38d + ld a, $7b + ld [hli], a + ld a, $7c + call $53ab + ld [hl], $7d + ret +; 4d3ab + +Function4d3ab: ; 4d3ab + ld d, c +.asm_4d3ac + ld [hli], a + dec d + jr nz, .asm_4d3ac + ret +; 4d3b1 + +INCBIN "baserom.gbc", $4d3b1, $4d596 - $4d3b1 Tilesets: @@ -21722,7 +33296,92 @@ CheckPokerus: ; 4d860 ret ; 4d87a -INCBIN "baserom.gbc", $4d87a, $4dc8a - $4d87a +INCBIN "baserom.gbc", $4d87a, $4db3b - $4d87a + + +Function4db3b: ; 4db3b + ld hl, $5b44 + call PrintText + jp $1dcf +; 4db44 + +INCBIN "baserom.gbc", $4db44, $4db49 - $4db44 + + +Function4db49: ; 4db49 + ld a, [PartyCount] + dec a + ld hl, PartyMon1CaughtLevel + call GetPartyLocation + ld a, [TimeOfDay] + inc a + rrca + rrca + ld b, a + ld a, [CurPartyLevel] + or b + ld [hli], a + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + cp $1 + jr nz, .asm_4db78 + ld a, b + cp $14 + jr nz, .asm_4db78 + ld a, [BackupMapGroup] + ld b, a + ld a, [BackupMapNumber] + ld c, a + +.asm_4db78 + call GetWorldMapLocation + ld b, a + ld a, [PlayerGender] + rrca + or b + ld [hl], a + ret +; 4db83 + +Function4db83: ; 4db83 + ld a, $1 + call GetSRAMBank + ld hl, $ad43 + call $5b53 + call CloseSRAM + ret +; 4db92 + +Function4db92: ; 4db92 + push bc + ld a, $1 + call GetSRAMBank + ld hl, $ad43 + pop bc + call $5baf + call CloseSRAM + ret +; 4dba3 + +Function4dba3: ; 4dba3 + ld a, [PartyCount] + dec a + ld hl, PartyMon1CaughtLevel + push bc + call GetPartyLocation + pop bc + xor a + ld [hli], a + ld a, $7e + rrc b + or b + ld [hl], a + ret +; 4dbb8 + +INCBIN "baserom.gbc", $4dbb8, $4dc8a - $4dbb8 StatsScreenInit: ; 4dc8a ld hl, StatsScreenMain @@ -21896,13 +33555,463 @@ EggALotMoreTimeString: ; 0x4e46e ; 0x4e497 -INCBIN "baserom.gbc", $4e497, $4e831 - $4e497 +INCBIN "baserom.gbc", $4e497, $4e53f - $4e497 + + +Function4e53f: ; 4e53f + ld hl, $0022 + add hl, bc + ld a, [hli] + or [hl] + jr z, .asm_4e552 + ld hl, $0020 + add hl, bc + ld a, [hl] + and $27 + jr nz, .asm_4e552 + and a + ret + +.asm_4e552 + scf + ret +; 4e554 + +INCBIN "baserom.gbc", $4e554, $4e5e1 - $4e554 + + +Function4e5e1: ; 4e5e1 + push hl + push de + push bc + ld a, [CurSpecies] + push af + ld a, [rOBP0] + push af + ld a, [BaseDexNo] + push af + call $6607 + pop af + ld [BaseDexNo], a + pop af + ld [rOBP0], a + pop af + ld [CurSpecies], a + pop bc + pop de + pop hl + ld a, [$d1ed] + and a + ret z + scf + ret +; 4e607 + +Function4e607: ; 4e607 + ld a, $e4 + ld [rOBP0], a + ld de, $0000 + call StartMusic + callba Function8cf53 + ld de, $6831 + ld hl, VTiles0 + ld bc, $1308 + call Functioneba + xor a + ld [Danger], a + call WaitBGMap + xor a + ld [hBGMapMode], a + ld a, [MagikarpLength] + ld [PlayerHPPal], a + ld c, $0 + call $6703 + ld a, [MagikarpLength] + ld [CurPartySpecies], a + ld [CurSpecies], a + call $6708 + ld de, VTiles2 + ld hl, $9310 + ld bc, $0031 + call Functioneba + ld a, $31 + ld [$d1ec], a + call $6755 + ld a, [Buffer2] + ld [CurPartySpecies], a + ld [CurSpecies], a + call $6711 + ld a, [MagikarpLength] + ld [CurPartySpecies], a + ld [CurSpecies], a + ld a, $1 + ld [hBGMapMode], a + call $6794 + jr c, .asm_4e67c + ld a, [MagikarpLength] + call $37ce + +.asm_4e67c + ld de, $0022 + call StartMusic + ld c, $50 + call DelayFrames + ld c, $1 + call $6703 + call $6726 + jr c, .asm_4e6df + ld a, $cf + ld [$d1ec], a + call $6755 + xor a + ld [$d1ed], a + ld a, [Buffer2] + ld [PlayerHPPal], a + ld c, $0 + call $6703 + call $67a6 + callba Function8cf53 + call $6794 + jr c, .asm_4e6de + ld a, [$c2c6] + push af + ld a, $1 + ld [$c2c6], a + ld a, [CurPartySpecies] + push af + ld a, [PlayerHPPal] + ld [CurPartySpecies], a + ld hl, $c4cf + ld d, $0 + ld e, $4 + ld a, $47 + call Predef + pop af + ld [CurPartySpecies], a + pop af + ld [$c2c6], a + ret + +.asm_4e6de + ret + +.asm_4e6df + ld a, $1 + ld [$d1ed], a + ld a, [MagikarpLength] + ld [PlayerHPPal], a + ld c, $0 + call $6703 + call $67a6 + callba Function8cf53 + call $6794 + ret c + ld a, [PlayerHPPal] + call $37ce + ret +; 4e703 + +Function4e703: ; 4e703 + ld b, $b + jp GetSGBLayout +; 4e708 + +Function4e708: ; 4e708 + call GetBaseData + ld hl, $c4cf + jp $3786 +; 4e711 + +Function4e711: ; 4e711 + call GetBaseData + ld a, $1 + ld [$c2c6], a + ld de, VTiles2 + ld a, $3e + call Predef + xor a + ld [$c2c6], a + ret +; 4e726 + +Function4e726: ; 4e726 + call ClearJoypadPublic + ld bc, $010e +.asm_4e72c + push bc + call $6779 + pop bc + jr c, .asm_4e73f + push bc + call $6741 + pop bc + inc b + dec c + dec c + jr nz, .asm_4e72c + and a + ret + +.asm_4e73f + scf + ret +; 4e741 + +Function4e741: ; 4e741 +.asm_4e741 + ld a, $cf + ld [$d1ec], a + call $6755 + ld a, $31 + ld [$d1ec], a + call $6755 + dec b + jr nz, .asm_4e741 + ret +; 4e755 + +Function4e755: ; 4e755 + push bc + xor a + ld [hBGMapMode], a + ld hl, $c4cf + ld bc, $0707 + ld de, $000d +.asm_4e762 + push bc +.asm_4e763 + ld a, [$d1ec] + add [hl] + ld [hli], a + dec c + jr nz, .asm_4e763 + pop bc + add hl, de + dec b + jr nz, .asm_4e762 + ld a, $1 + ld [hBGMapMode], a + call WaitBGMap + pop bc + ret +; 4e779 + +Function4e779: ; 4e779 +.asm_4e779 + call DelayFrame + push bc + call Functiona57 + ld a, [hJoyDown] + pop bc + and $2 + jr nz, .asm_4e78c +.asm_4e787 + dec c + jr nz, .asm_4e779 + and a + ret + +.asm_4e78c + ld a, [$d1e9] + and a + jr nz, .asm_4e787 + scf + ret +; 4e794 + +Function4e794: ; 4e794 + ld a, [CurPartyMon] + ld hl, PartyMon1Species + call GetPartyLocation + ld b, h + ld c, l + ld a, $13 + ld hl, $653f + rst FarCall + ret +; 4e7a6 + +Function4e7a6: ; 4e7a6 + ld a, [$d1ed] + and a + ret nz + ld de, $00a4 + call StartSFX + ld hl, $cf63 + ld a, [hl] + push af + ld [hl], $0 +.asm_4e7b8 + call $67cf + jr nc, .asm_4e7c2 + call $680c + jr .asm_4e7b8 + +.asm_4e7c2 + ld c, $20 +.asm_4e7c4 + call $680c + dec c + jr nz, .asm_4e7c4 + pop af + ld [$cf63], a + ret +; 4e7cf + +Function4e7cf: ; 4e7cf + ld hl, $cf63 + ld a, [hl] + cp $20 + ret nc + ld d, a + inc [hl] + and $1 + jr nz, .asm_4e7e6 + ld e, $0 + call $67e8 + ld e, $10 + call $67e8 + +.asm_4e7e6 + scf + ret +; 4e7e8 + +Function4e7e8: ; 4e7e8 + push de + ld de, $4858 + ld a, $13 + call Function3b2a + ld hl, $000b + add hl, bc + ld a, [$cf63] + and $e + sla a + pop de + add e + ld [hl], a + ld hl, $0003 + add hl, bc + ld [hl], $0 + ld hl, $000c + add hl, bc + ld [hl], $10 + ret +; 4e80c + +Function4e80c: ; 4e80c + push bc + callab Function8cf69 + ld a, [$ff9b] + and $e + srl a + inc a + inc a + and $7 + ld b, a + ld hl, $c403 + ld c, $28 +.asm_4e823 + ld a, [hl] + or b + ld [hli], a + inc hl + inc hl + inc hl + dec c + jr nz, .asm_4e823 + pop bc + call DelayFrame + ret +; 4e831 + EvolutionGFX: INCBIN "gfx/evo/bubble_large.2bpp" INCBIN "gfx/evo/bubble.2bpp" -INCBIN "baserom.gbc", $4e881, $4ea82 - $4e881 +Function4e881: ; 4e881 + call WhiteBGMap + call ClearTileMap + call ClearSprites + call DisableLCD + call $0e51 + call $0e58 + ld hl, VBGMap0 + ld bc, VBlank5 + ld a, $7f + call ByteFill + ld hl, AttrMap + ld bc, $0168 + xor a + call ByteFill + xor a + ld [$ffd0], a + ld [$ffcf], a + call EnableLCD + ld hl, $68bd + call PrintText + call Function3200 + call Function32f9 + ret +; 4e8bd + +INCBIN "baserom.gbc", $4e8bd, $4e8c2 - $4e8bd + + +Function4e8c2: ; 4e8c2 + call WhiteBGMap + call ClearTileMap + call ClearSprites + call DisableLCD + call $0e51 + call $0e58 + ld hl, VBGMap0 + ld bc, VBlank5 + ld a, $7f + call ByteFill + ld hl, AttrMap + ld bc, $0168 + xor a + call ByteFill + ld hl, $d000 + ld c, $40 +.asm_4e8ee + ld a, $ff + ld [hli], a + ld a, $7f + ld [hli], a + dec c + jr nz, .asm_4e8ee + xor a + ld [$ffd0], a + ld [$ffcf], a + call EnableLCD + call Function3200 + call Function32f9 + ret +; 4e906 + +Function4e906: ; 4e906 + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + ld hl, $d000 + ld bc, VBlank5 + ld a, $7f + call ByteFill + ld hl, VBGMap0 + ld de, $d000 + ld b, $0 + ld c, $40 + call Functioneba + pop af + ld [rSVBK], a + ret +; 4e929 + +INCBIN "baserom.gbc", $4e929, $4ea82 - $4e929 Function4ea82: ; 4ea82 @@ -22014,12 +34123,75 @@ Function4eb27: ; 4eb27 ret ; 4eb38 -INCBIN "baserom.gbc", $4eb38, $4f31c - $4eb38 +INCBIN "baserom.gbc", $4eb38, $4f301 - $4eb38 + + +Function4f301: ; 4f301 + ld hl, $001e + add hl, bc + ld a, [hl] + and $7f + jr z, .asm_4f319 + cp $7f + jr z, .asm_4f319 + ld a, [hl] + and $80 + jr nz, .asm_4f316 + ld c, $1 + ret + +.asm_4f316 + ld c, $2 + ret + +.asm_4f319 + ld c, $0 + ret +; 4f31c + SECTION "bank14",DATA,BANK[$14] -INCBIN "baserom.gbc", $50000, $5005f-$50000 +INCBIN "baserom.gbc", $50000, $5001d - $50000 + + +Function5001d: ; 5001d + ld a, b + ld [PartyMenuActionText], a + call Function2ed3 + call WhiteBGMap + call $403f + call WaitBGMap + ld b, $a + call GetSGBLayout + call Function32f9 + call DelayFrame + call PartyMenuSelect + call Function2b74 + ret +; 5003f + +Function5003f: ; 5003f + call $404f + call $4405 + call $43e0 + call WritePartyMenuTilemap + call PrintPartyMenuText + ret +; 5004f + +Function5004f: ; 5004f + call $0e58 + ld hl, $4ad1 + ld a, $2 + rst FarCall + ld hl, $6814 + ld a, $23 + rst FarCall + ret +; 5005f + WritePartyMenuTilemap: ; 0x5005f ld hl, Options @@ -22048,7 +34220,533 @@ WritePartyMenuTilemap: ; 0x5005f ret ; 0x50089 -INCBIN "baserom.gbc", $50089, $50457-$50089 +INCBIN "baserom.gbc", $50089, $500cf - $50089 + + +Function500cf: ; 500cf + xor a + ld [$cda9], a + ld a, [PartyCount] + and a + ret z + ld c, a + ld b, $0 + ld hl, $c4d3 +.asm_500de + push bc + push hl + call $4389 + jr z, .asm_50103 + push hl + call $4117 + pop hl + ld d, $6 + ld b, $0 + call $3750 + ld hl, $cd9b + ld a, [$cda9] + ld c, a + ld b, $0 + add hl, bc + call SetHPPal + ld b, $fc + call GetSGBLayout + +.asm_50103 + ld hl, $cda9 + inc [hl] + pop hl + ld de, $0028 + add hl, de + pop bc + inc b + dec c + jr nz, .asm_500de + ld b, $a + call GetSGBLayout + ret +; 50117 + +Function50117: ; 50117 + ld a, b + ld bc, $0030 + ld hl, PartyMon1CurHP + call AddNTimes + ld a, [hli] + or [hl] + jr nz, .asm_50129 + xor a + ld e, a + ld c, a + ret + +.asm_50129 + dec hl + ld a, [hli] + ld b, a + ld a, [hli] + ld c, a + ld a, [hli] + ld d, a + ld a, [hli] + ld e, a + ld a, $4 + call Predef + ret +; 50138 + +Function50138: ; 50138 + ld a, [PartyCount] + and a + ret z + ld c, a + ld b, $0 + ld hl, $c4c1 +.asm_50143 + push bc + push hl + call $4389 + jr z, .asm_5016b + push hl + ld a, b + ld bc, $0030 + ld hl, PartyMon1CurHP + call AddNTimes + ld e, l + ld d, h + pop hl + push de + ld bc, $0203 + call $3198 + pop de + ld a, $f3 + ld [hli], a + inc de + inc de + ld bc, $0203 + call $3198 + +.asm_5016b + pop hl + ld de, $0028 + add hl, de + pop bc + inc b + dec c + jr nz, .asm_50143 + ret +; 50176 + +Function50176: ; 50176 + ld a, [PartyCount] + and a + ret z + ld c, a + ld b, $0 + ld hl, $c4d0 +.asm_50181 + push bc + push hl + call $4389 + jr z, .asm_501a7 + push hl + ld a, b + ld bc, $0030 + ld hl, PartyMon1Level + call AddNTimes + ld e, l + ld d, h + pop hl + ld a, [de] + cp $64 + jr nc, .asm_501a1 + ld a, $6e + ld [hli], a + ld bc, $4102 + +.asm_501a1 + ld bc, $4103 + call $3198 + +.asm_501a7 + pop hl + ld de, $0028 + add hl, de + pop bc + inc b + dec c + jr nz, .asm_50181 + ret +; 501b2 + +Function501b2: ; 501b2 + ld a, [PartyCount] + and a + ret z + ld c, a + ld b, $0 + ld hl, $c4cd +.asm_501bd + push bc + push hl + call $4389 + jr z, .asm_501d5 + push hl + ld a, b + ld bc, $0030 + ld hl, PartyMon1Status + call AddNTimes + ld e, l + ld d, h + pop hl + call $4d0a + +.asm_501d5 + pop hl + ld de, $0028 + add hl, de + pop bc + inc b + dec c + jr nz, .asm_501bd + ret +; 501e0 + +Function501e0: ; 501e0 + ld a, [PartyCount] + and a + ret z + ld c, a + ld b, $0 + ld hl, $c4d4 +.asm_501eb + push bc + push hl + call $4389 + jr z, .asm_5020a + push hl + ld hl, PartySpecies + ld e, b + ld d, $0 + add hl, de + ld a, [hl] + ld [CurPartySpecies], a + ld a, $e + call Predef + pop hl + call $4215 + call PlaceString + +.asm_5020a + pop hl + ld de, $0028 + add hl, de + pop bc + inc b + dec c + jr nz, .asm_501eb + ret +; 50215 + +Function50215: ; 50215 + ld a, c + and a + jr nz, .asm_5021d + ld de, $4226 + ret + +.asm_5021d + ld de, $4221 + ret +; 50221 + +INCBIN "baserom.gbc", $50221, $5022f - $50221 + + +Function5022f: ; 5022f + ld a, [PartyCount] + and a + ret z + ld c, a + ld b, $0 + ld hl, $c4d4 +.asm_5023a + push bc + push hl + call $4389 + jr z, .asm_5025d + push hl + ld a, b + ld bc, $0030 + ld hl, PartyMon1Species + call AddNTimes + ld a, [hl] + dec a + ld e, a + ld d, $0 + ld hl, $65b1 + add hl, de + add hl, de + call $4268 + pop hl + call PlaceString + +.asm_5025d + pop hl + ld de, $0028 + add hl, de + pop bc + inc b + dec c + jr nz, .asm_5023a + ret +; 50268 + +Function50268: ; 50268 + ld de, StringBuffer1 + ld a, $10 + ld bc, $0002 + call FarCopyBytes + ld hl, StringBuffer1 + ld a, [hli] + ld h, [hl] + ld l, a + ld de, StringBuffer1 + ld a, $10 + ld bc, $000a + call FarCopyBytes + ld hl, StringBuffer1 +.asm_50287 + ld a, [hli] + and a + jr z, .asm_5029f + inc hl + inc hl + cp $2 + jr nz, .asm_50287 + dec hl + dec hl + ld a, [CurItem] + cp [hl] + inc hl + inc hl + jr nz, .asm_50287 + ld de, $42a3 + ret + +.asm_5029f + ld de, $42a8 + ret +; 502a3 + +INCBIN "baserom.gbc", $502a3, $502b1 - $502a3 + + +Function502b1: ; 502b1 + ld a, [PartyCount] + and a + ret z + ld c, a + ld b, $0 + ld hl, $c4d4 +.asm_502bc + push bc + push hl + call $4389 + jr z, .asm_502e3 + ld [CurPartySpecies], a + push hl + ld a, b + ld [CurPartyMon], a + xor a + ld [MonType], a + call GetGender + ld de, $42fe + jr c, .asm_502df + ld de, $42ee + jr nz, .asm_502df + ld de, $42f5 + +.asm_502df + pop hl + call PlaceString + +.asm_502e3 + pop hl + ld de, $0028 + add hl, de + pop bc + inc b + dec c + jr nz, .asm_502bc + ret +; 502ee + +INCBIN "baserom.gbc", $502ee, $50307 - $502ee + + +Function50307: ; 50307 + ld a, [PartyCount] + and a + ret z + ld c, a + ld b, $0 + ld hl, $c4c0 +.asm_50312 + push bc + push hl + ld de, $4372 + call PlaceString + pop hl + ld de, $0028 + add hl, de + pop bc + inc b + dec c + jr nz, .asm_50312 + ld a, l + ld e, $b + sub e + ld l, a + ld a, h + sbc $0 + ld h, a + ld de, $4379 + call PlaceString + ld b, $3 + ld c, $0 + ld hl, DefaultFlypoint + ld a, [hl] +.asm_5033b + push hl + push bc + ld hl, $c4c0 +.asm_50340 + and a + jr z, .asm_5034a + ld de, $0028 + add hl, de + dec a + jr .asm_50340 + +.asm_5034a + ld de, $436b + push hl + call PlaceString + pop hl + pop bc + push bc + push hl + ld a, c + ld hl, $4383 + call GetNthString + ld d, h + ld e, l + pop hl + call PlaceString + pop bc + pop hl + inc hl + ld a, [hl] + inc c + dec b + ret z + jr .asm_5033b +; 5036b + +INCBIN "baserom.gbc", $5036b, $50389 - $5036b + + +Function50389: ; 50389 + ld a, $d8 + add b + ld e, a + ld a, $dc + adc $0 + ld d, a + ld a, [de] + cp $fd + ret +; 50396 + +Function50396: ; 50396 + ld a, [PartyMenuActionText] + and $f0 + jr nz, .asm_503ae + ld a, [PartyMenuActionText] + and $f + ld e, a + ld d, $0 + ld hl, $43b2 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ret + +.asm_503ae + ld hl, $43c6 + ret +; 503b2 + +INCBIN "baserom.gbc", $503b2, $503e0 - $503b2 + + +Function503e0: ; 503e0 + ld hl, PartyCount + ld a, [hli] + and a + ret z + ld c, a + xor a + ld [hConnectedMapWidth], a +.asm_503ea + push bc + push hl + ld hl, $683f + ld a, $23 + ld e, $0 + rst FarCall + ld a, [hConnectedMapWidth] + inc a + ld [hConnectedMapWidth], a + pop hl + pop bc + dec c + jr nz, .asm_503ea + callab Function8cf69 + ret +; 50405 + +Function50405: ; 50405 + xor a + ld [$d0e3], a + ld de, $444f + call $1bb1 + ld a, [PartyCount] + inc a + ld [$cfa3], a + dec a + ld b, a + ld a, [$d0d8] + and a + jr z, .asm_50422 + inc b + cp b + jr c, .asm_50424 + +.asm_50422 + ld a, $1 + +.asm_50424 + ld [$cfa9], a + ld a, $3 + ld [$cfa8], a + ret +; 5042d + +INCBIN "baserom.gbc", $5042d, $50457 - $5042d PartyMenuSelect: ; 0x50457 ; sets carry if exitted menu. @@ -22403,7 +35101,193 @@ GetGender: ; 50bdd ret ; 50c50 -INCBIN "baserom.gbc", $50c50, $5125d - $50c50 +INCBIN "baserom.gbc", $50c50, $50d0a - $50c50 + + +Function50d0a: ; 50d0a + push de + inc de + inc de + ld a, [de] + ld b, a + inc de + ld a, [de] + or b + pop de + jr nz, .asm_50d2e + push de + ld de, .data_50d21 + call $4d25 + pop de + ld a, $1 + and a + ret + +.data_50d21 + db $85 + db $8d + db $93 + db $50 + db $1a + db $13 + db $22 + db $1a + db $13 + db $22 + db $1a + db $77 + db $c9 + +.asm_50d2e + push de + ld a, [de] + ld de, $4d5f + bit 3, a + jr nz, .asm_50d53 + ld de, $4d63 + bit 4, a + jr nz, .asm_50d53 + ld de, $4d67 + bit 5, a + jr nz, .asm_50d53 + ld de, $4d6b + bit 6, a + jr nz, .asm_50d53 + ld de, $4d5b + and $7 + jr z, .asm_50d59 + +.asm_50d53 + call $4d25 + ld a, $1 + and a + +.asm_50d59 + pop de + ret +; 50d5b + +INCBIN "baserom.gbc", $50d5b, $50e47 - $50d5b + + +Function50e47: ; 50e47 + ld a, [BaseGrowthRate] + add a + add a + ld c, a + ld b, $0 + ld hl, $4efa + add hl, bc + call $4eed + ld a, d + ld [hMultiplier], a + call Multiply + ld a, [hl] + and $f0 + swap a + ld [hMultiplier], a + call Multiply + ld a, [hli] + and $f + ld [hMultiplier], a + ld b, $4 + call Divide + ld a, [hMultiplicand] + push af + ld a, [$ffb5] + push af + ld a, [$ffb6] + push af + call $4eed + ld a, [hl] + and $7f + ld [hMultiplier], a + call Multiply + ld a, [hMultiplicand] + push af + ld a, [$ffb5] + push af + ld a, [$ffb6] + push af + ld a, [hli] + push af + xor a + ld [hMultiplicand], a + ld [$ffb5], a + ld a, d + ld [$ffb6], a + ld a, [hli] + ld [hMultiplier], a + call Multiply + ld b, [hl] + ld a, [$ffb6] + sub b + ld [$ffb6], a + ld b, $0 + ld a, [$ffb5] + sbc b + ld [$ffb5], a + ld a, [hMultiplicand] + sbc b + ld [hMultiplicand], a + pop af + and $80 + jr nz, .asm_50ec8 + pop bc + ld a, [$ffb6] + add b + ld [$ffb6], a + pop bc + ld a, [$ffb5] + adc b + ld [$ffb5], a + pop bc + ld a, [hMultiplicand] + adc b + ld [hMultiplicand], a + jr .asm_50eda + +.asm_50ec8 + pop bc + ld a, [$ffb6] + sub b + ld [$ffb6], a + pop bc + ld a, [$ffb5] + sbc b + ld [$ffb5], a + pop bc + ld a, [hMultiplicand] + sbc b + ld [hMultiplicand], a + +.asm_50eda + pop bc + ld a, [$ffb6] + add b + ld [$ffb6], a + pop bc + ld a, [$ffb5] + adc b + ld [$ffb5], a + pop bc + ld a, [hMultiplicand] + adc b + ld [hMultiplicand], a + ret +; 50eed + +Function50eed: ; 50eed + xor a + ld [hMultiplicand], a + ld [$ffb5], a + ld a, d + ld [$ffb6], a + ld [hMultiplier], a + jp Multiply +; 50efa + +INCBIN "baserom.gbc", $50efa, $5125d - $50efa DecompressPredef: ; 5125d @@ -23612,7 +36496,23 @@ INCBIN "baserom.gbc", $82153, $823c8-$82153 SECTION "bank21",DATA,BANK[$21] -INCBIN "baserom.gbc", $84000, $84a2e - $84000 +INCBIN "baserom.gbc", $84000, $842db - $84000 + + +Function842db: ; 842db + ld a, [$c2d5] + add a + ld e, a + ld d, $0 + ld hl, $42ea + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 842ea + +INCBIN "baserom.gbc", $842ea, $84a2e - $842ea FX00GFX: FX01GFX: ; 84a2e @@ -23890,7 +36790,494 @@ HallOfFame3: ; 0x8640e ret ; 0x86455 -INCBIN "baserom.gbc", $86455, $88000 - $86455 +Function86455: ; 86455 + ld a, $0 + ld [MusicFadeIDLo], a + ld a, $0 + ld [MusicFadeIDHi], a + ld a, $a + ld [MusicFade], a + ld a, $23 + ld hl, $4084 + rst FarCall + xor a + ld [VramState], a + ld [$ffde], a + ld a, $13 + ld hl, $68c2 + rst FarCall + ld c, $8 + call DelayFrames + call Function2ed3 + ld a, $2 + ld [$d4b5], a + ld a, [StatusFlags] + ld b, a + ld a, $42 + ld hl, $5847 + rst FarCall + ret +; 8648e + +Function8648e: ; 8648e + ld a, $0 + ld [MusicFadeIDLo], a + ld a, $0 + ld [MusicFadeIDHi], a + ld a, $a + ld [MusicFade], a + ld a, $23 + ld hl, $4084 + rst FarCall + xor a + ld [VramState], a + ld [$ffde], a + ld a, $13 + ld hl, $6881 + rst FarCall + ld c, $64 + jp DelayFrames +; 864b4 + +Function864b4: ; 864b4 + push de + ld de, $0000 + call StartMusic + call DelayFrame + pop de + call StartMusic + ret +; 864c3 + +Function864c3: ; 864c3 + xor a + ld [$cf63], a + call $671c + jr c, .asm_864fb + ld de, $0014 + call $64b4 + xor a + ld [$cf64], a +.asm_864d6 + ld a, [$cf64] + cp $6 + jr nc, .asm_864fb + ld hl, EnemyMoveEffect + ld bc, $0010 + call AddNTimes + ld a, [hl] + cp $ff + jr z, .asm_864fb + push hl + call $65b5 + pop hl + call $650c + jr c, .asm_864fb + ld hl, $cf64 + inc [hl] + jr .asm_864d6 + +.asm_864fb + call $6810 + ld a, $4 + ld [MusicFade], a + call $04b6 + ld c, $8 + call DelayFrames + ret +; 8650c + +Function8650c: ; 8650c + call $6748 + ld de, $652c + ld hl, $c4c9 + call PlaceString + call WaitBGMap + ld de, $c50a + ld c, $6 + ld a, $49 + call Predef + ld c, $3c + call DelayFrames + and a + ret +; 8652c + +INCBIN "baserom.gbc", $8652c, $8653f - $8652c + + +Function8653f: ; 8653f + ld hl, OverworldMap + ld bc, $0062 + xor a + call ByteFill + ld a, [$d95e] + ld de, OverworldMap + ld [de], a + inc de + ld hl, PartySpecies + ld c, $0 +.asm_86556 + ld a, [hli] + cp $ff + jr z, .asm_865b1 + cp $fd + jr nz, .asm_86562 + inc c + jr .asm_86556 + +.asm_86562 + push hl + push de + push bc + ld a, c + ld hl, PartyMon1Species + ld bc, $0030 + call AddNTimes + ld c, l + ld b, h + ld hl, $0000 + add hl, bc + ld a, [hl] + ld [de], a + inc de + ld hl, $0006 + add hl, bc + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + inc de + ld hl, $0015 + add hl, bc + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + inc de + ld hl, $001f + add hl, bc + ld a, [hl] + ld [de], a + inc de + pop bc + push bc + ld a, c + ld hl, PartyMon1Nickname + ld bc, $000b + call AddNTimes + ld bc, $000a + call CopyBytes + pop bc + inc c + pop de + ld hl, $0010 + add hl, de + ld e, l + ld d, h + pop hl + jr .asm_86556 + +.asm_865b1 + ld a, $ff + ld [de], a + ret +; 865b5 + +Function865b5: ; 865b5 + push hl + call WhiteBGMap + ld a, $13 + ld hl, $6906 + rst FarCall + pop hl + ld a, [hli] + ld [TempMonSpecies], a + ld [CurPartySpecies], a + inc hl + inc hl + ld a, [hli] + ld [TempMonDVs], a + ld a, [hli] + ld [$d124], a + ld hl, TempMonDVs + ld a, $2d + call Predef + ld hl, TileMap + ld bc, $0168 + ld a, $7f + call ByteFill + ld de, $9310 + ld a, $3d + call Predef + ld a, $31 + ld [$ffad], a + ld hl, $c51e + ld bc, $0606 + ld a, $13 + call Predef + ld a, $d0 + ld [$ffd0], a + ld a, $90 + ld [$ffcf], a + call WaitBGMap + xor a + ld [hBGMapMode], a + ld b, $1a + call GetSGBLayout + call Function32f9 + call $6635 + xor a + ld [$c2c6], a + ld hl, TileMap + ld bc, $0168 + ld a, $7f + call ByteFill + ld hl, $c50a + call $378b + call WaitBGMap + xor a + ld [hBGMapMode], a + ld [$ffd0], a + call $6643 + ret +; 86635 + +Function86635: ; 86635 +.asm_86635 + ld a, [$ffcf] + cp $70 + ret z + add $4 + ld [$ffcf], a + call DelayFrame + jr .asm_86635 +; 86643 + +Function86643: ; 86643 +.asm_86643 + ld a, [$ffcf] + and a + ret z + dec a + dec a + ld [$ffcf], a + call DelayFrame + jr .asm_86643 +; 86650 + +INCBIN "baserom.gbc", $86650, $8671c - $86650 + + +Function8671c: ; 8671c + ld a, [$cf63] + cp $1e + jr nc, .asm_86746 + ld hl, $b2c0 + ld bc, $0062 + call AddNTimes + ld a, $1 + call GetSRAMBank + ld a, [hl] + and a + jr z, .asm_86743 + ld de, EnemyMoveAnimation + ld bc, $0062 + call CopyBytes + call CloseSRAM + and a + ret + +.asm_86743 + call CloseSRAM + +.asm_86746 + scf + ret +; 86748 + +Function86748: ; 86748 + xor a + ld [hBGMapMode], a + ld a, [hli] + ld [TempMonSpecies], a + ld a, [hli] + ld [TempMonID], a + ld a, [hli] + ld [$d115], a + ld a, [hli] + ld [TempMonDVs], a + ld a, [hli] + ld [$d124], a + ld a, [hli] + ld [TempMonLevel], a + ld de, StringBuffer2 + ld bc, $000a + call CopyBytes + ld a, $50 + ld [$d090], a + ld hl, TileMap + ld bc, $0168 + ld a, $7f + call ByteFill + ld hl, TileMap + ld bc, $0312 + call TextBox + ld hl, $c590 + ld bc, $0412 + call TextBox + ld a, [TempMonSpecies] + ld [CurPartySpecies], a + ld [$d265], a + ld hl, TempMonDVs + ld a, $2d + call Predef + xor a + ld [$c2c6], a + ld hl, $c50a + call $378b + ld a, [CurPartySpecies] + cp $fd + jr z, .asm_867f8 + ld hl, $c5a5 + ld a, $74 + ld [hli], a + ld [hl], $f2 + ld hl, $c5a7 + ld de, $d265 + ld bc, $8103 + call $3198 + call GetBasePokemonName + ld hl, $c5ab + call PlaceString + ld a, $3 + ld [MonType], a + callba GetGender + ld a, $7f + jr c, .asm_867e2 + ld a, $ef + jr nz, .asm_867e2 + ld a, $f5 + +.asm_867e2 + ld hl, $c5b6 + ld [hli], a + ld hl, $c5c0 + ld a, $f3 + ld [hli], a + ld de, StringBuffer2 + call PlaceString + ld hl, $c5e1 + call $382d + +.asm_867f8 + ld hl, $c5e7 + ld a, $73 + ld [hli], a + ld a, $74 + ld [hli], a + ld [hl], $f3 + ld hl, $c5ea + ld de, TempMonID + ld bc, $8205 + call $3198 + ret +; 86810 + +Function86810: ; 86810 + call WhiteBGMap + ld hl, $9630 + ld de, $40d0 + ld bc, $3e01 + call Functioneba + ld hl, TileMap + ld bc, $0168 + ld a, $7f + call ByteFill + ld a, $22 + ld hl, $4825 + rst FarCall + ld a, $31 + ld [$ffad], a + ld hl, $c51e + ld bc, $0606 + ld a, $13 + call Predef + ld a, $d0 + ld [$ffd0], a + ld a, $90 + ld [$ffcf], a + call WaitBGMap + xor a + ld [hBGMapMode], a + ld [CurPartySpecies], a + ld b, $1a + call GetSGBLayout + call Function32f9 + call $6635 + xor a + ld [$c2c6], a + ld hl, TileMap + ld bc, $0168 + ld a, $7f + call ByteFill + ld a, $22 + ld hl, $4840 + rst FarCall + xor a + ld [$ffad], a + ld hl, $c510 + ld bc, $0707 + ld a, $13 + call Predef + ld a, $c0 + ld [$ffcf], a + call WaitBGMap + xor a + ld [hBGMapMode], a + ld [$ffd0], a + call $6643 + xor a + ld [hBGMapMode], a + ld hl, $c4c8 + ld bc, $0809 + call TextBox + ld hl, $c590 + ld bc, $0412 + call TextBox + ld hl, $c4f2 + ld de, PlayerName + call PlaceString + ld hl, $c519 + ld a, $73 + ld [hli], a + ld a, $74 + ld [hli], a + ld [hl], $f3 + ld hl, $c51c + ld de, PlayerID + ld bc, $8205 + call $3198 + ld hl, $c541 + ld de, $68ed + call PlaceString + ld hl, $c557 + ld de, GameTimeHours + ld bc, $0203 + call $3198 + ld [hl], $63 + inc hl + ld de, GameTimeMinutes + ld bc, $8102 + call $3198 + call WaitBGMap + callba Function26601 + ret +; 868ed + +INCBIN "baserom.gbc", $868ed, $88000 - $868ed SECTION "bank22",DATA,BANK[$22] @@ -23977,7 +37364,56 @@ GetPlayerIcon: ; 8832c ; 8833e -INCBIN "baserom.gbc", $8833e, $88874 - $8833e +INCBIN "baserom.gbc", $8833e, $88825 - $8833e + + +Function88825: ; 88825 + ld a, [PlayerGender] + bit 0, a + jr z, .asm_88830 + call GetKrisBackpic + ret + +.asm_88830 + ld hl, $7a1a + ld b, $a + ld de, $9310 + ld c, $31 + ld a, $40 + call Predef + ret +; 88840 + +Function88840: ; 88840 + call WaitBGMap + xor a + ld [hBGMapMode], a + ld e, $0 + ld a, [PlayerGender] + bit 0, a + jr z, .asm_88851 + ld e, $1 + +.asm_88851 + ld a, e + ld [TrainerClass], a + ld de, ChrisPic + ld a, [PlayerGender] + bit 0, a + jr z, .asm_88862 + ld de, KrisPic + +.asm_88862 + ld hl, VTiles2 + ld b, $22 + ld c, $31 + call Functionf82 + call WaitBGMap + ld a, $1 + ld [hBGMapMode], a + ret +; 88874 + DrawIntroPlayerPic: ; 88874 @@ -24202,12 +37638,53 @@ GetNthPartyMon: ; 0x8b1ce scf ret -INCBIN "baserom.gbc", $8b1e1, $8ba24-$8b1e1 +INCBIN "baserom.gbc", $8b1e1, $8b342 - $8b1e1 + + +Function8b342: ; 8b342 + call GetSecondaryMapHeaderPointer + ld d, h + ld e, l + xor a +.asm_8b348 + push af + ld hl, $7354 + rst JumpTable + pop af + inc a + cp $3 + jr nz, .asm_8b348 + ret +; 8b354 + +INCBIN "baserom.gbc", $8b354, $8b35b - $8b354 + + +Function8b35b: ; 8b35b + ret +; 8b35c + +Function8b35c: ; 8b35c + ret +; 8b35d + +INCBIN "baserom.gbc", $8b35d, $8ba24 - $8b35d SECTION "bank23",DATA,BANK[$23] -INCBIN "baserom.gbc", $8c000, $8c011 - $8c000 +INCBIN "baserom.gbc", $8c000, $8c001 - $8c000 + + +Function8c001: ; 8c001 + call UpdateTime + ld a, [TimeOfDay] + ld [CurTimeOfDay], a + call GetTimePalette + ld [TimeOfDayPal], a + ret +; 8c011 + _TimeOfDayPals: ; 8c011 ; return carry if pals are changed @@ -24317,7 +37794,57 @@ UpdateTimePals: ; 8c070 ret ; 8c079 -INCBIN "baserom.gbc", $8c079, $8c117 - $8c079 +Function8c079: ; 8c079 + ld c, $12 + call GetTimePalFade + ld b, $4 + call $416d + ret +; 8c084 + +Function8c084: ; 8c084 + call $40c1 + ld c, $9 + call GetTimePalFade + ld b, $4 + call $415e + ret +; 8c092 + +INCBIN "baserom.gbc", $8c092, $8c0c1 - $8c092 + + +Function8c0c1: ; 8c0c1 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, $d000 + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld hl, $d008 + ld c, $6 +.asm_8c0d4 + ld a, e + ld [hli], a + ld a, d + ld [hli], a + inc hl + inc hl + inc hl + inc hl + inc hl + inc hl + dec c + jr nz, .asm_8c0d4 + pop af + ld [rSVBK], a + ret +; 8c0e5 + +INCBIN "baserom.gbc", $8c0e5, $8c117 - $8c0e5 GetTimePalette: ; 8c117 ; get time of day @@ -24386,7 +37913,32 @@ DmgToCgbTimePals: ; 8c14e ret ; 8c15e -INCBIN "baserom.gbc", $8c15e, $8c17c - $8c15e +Function8c15e: ; 8c15e +.asm_8c15e + call DmgToCgbTimePals + inc hl + inc hl + inc hl + ld c, $2 + call DelayFrames + dec b + jr nz, .asm_8c15e + ret +; 8c16d + +Function8c16d: ; 8c16d +.asm_8c16d + call DmgToCgbTimePals + dec hl + dec hl + dec hl + ld c, $2 + call DelayFrames + dec b + jr nz, .asm_8c16d + ret +; 8c17c + GetTimePalFade: ; 8c17c ; check cgb @@ -24597,7 +38149,12 @@ Function8cf53: ; 8cf53 ret ; 8cf62 -INCBIN "baserom.gbc", $8cf62, $8cf69 - $8cf62 +Function8cf62: ; 8cf62 + call Function8cf69 + call DelayFrame + ret +; 8cf69 + Function8cf69: ; 8cf69 @@ -25025,7 +38582,47 @@ Function8d24b: ; 8d24b jp [hl] ; 8d25b -INCBIN "baserom.gbc", $8d25b, $8e9ac - $8d25b +INCBIN "baserom.gbc", $8d25b, $8e814 - $8d25b + + +Function8e814: ; 8e814 + push hl + push de + push bc + push af + ld hl, $c300 + ld bc, $00c1 +.asm_8e81e + ld [hl], $0 + inc hl + dec bc + ld a, c + or b + jr nz, .asm_8e81e + pop af + pop bc + pop de + pop hl + ret +; 8e82b + +Function8e82b: ; 8e82b + ld a, e + call ReadMonMenuIcon + ld l, a + ld h, $0 + add hl, hl + ld de, IconPointers + add hl, de + ld a, [hli] + ld e, a + ld d, [hl] + ld b, $23 + ld c, $8 + ret +; 8e83f + +INCBIN "baserom.gbc", $8e83f, $8e9ac - $8e83f GetSpeciesIcon: ; 8e9ac ; Load species icon into VRAM at tile a @@ -25463,7 +39060,189 @@ BigmonIcon: INCBIN "gfx/icon/bigmon.2bpp" ; 0x8fe8d SECTION "bank24",DATA,BANK[$24] -INCBIN "baserom.gbc", $90000, $909F2-$90000 +INCBIN "baserom.gbc", $90000, $9000f - $90000 + + +Function9000f: ; 9000f + call $401c + jr nc, .asm_90017 + xor a + ld [hl], a + ret + +.asm_90017 + scf + ret +; 90019 + +Function90019: ; 90019 + jp $401c +; 9001c + +Function9001c: ; 9001c + ld hl, $dc7c + ld b, $a +.asm_90021 + ld a, [hli] + cp c + jr z, .asm_9002a + dec b + jr nz, .asm_90021 + xor a + ret + +.asm_9002a + dec hl + scf + ret +; 9002d + +INCBIN "baserom.gbc", $9002d, $90069 - $9002d + + +Function90069: ; 90069 + ld a, [hROMBank] + push af + ld a, b + rst Bankswitch + + call PlaceString + pop af + rst Bankswitch + + ret +; 90074 + +INCBIN "baserom.gbc", $90074, $9029a - $90074 + + +Function9029a: ; 9029a + ld a, b + ld [DefaultFlypoint], a + ld a, e + ld [$d003], a + ld a, d + ld [$d004], a + call $42b3 + call $42b3 + ld a, $41 + ld hl, $60d3 + rst FarCall + ret +; 902b3 + +Function902b3: ; 902b3 + call $433f + call $4357 + call $42c9 + call $4357 + call $4375 + call $4357 + call $42c9 + ret +; 902c9 + +Function902c9: ; 902c9 + call $4375 + ld hl, $c4c9 + ld [hl], $62 + inc hl + inc hl + ld a, [DefaultFlypoint] + ld b, a + ld a, [$d003] + ld e, a + ld a, [$d004] + ld d, a + call $4069 + ret +; 902e3 + +INCBIN "baserom.gbc", $902e3, $902eb - $902e3 + + +Function902eb: ; 902eb + call $431d + call $4355 + call $432f + call $4355 + call $433b + call $4355 + call $432f + call $4355 + call $433b + call $4355 + call $432f + call $4355 + call $433b + call $4355 + ret +; 90316 + +INCBIN "baserom.gbc", $90316, $9031d - $90316 + + +Function9031d: ; 9031d + ld hl, $432a + call PrintText + ld de, $006b + call StartSFX + ret +; 9032a + +INCBIN "baserom.gbc", $9032a, $9032f - $9032a + + +Function9032f: ; 9032f + ld hl, $4336 + call PrintText + ret +; 90336 + +INCBIN "baserom.gbc", $90336, $9033b - $90336 + + +Function9033b: ; 9033b + call SpeechTextBox + ret +; 9033f + +Function9033f: ; 9033f + call WaitSFX + ld de, $006a + call StartSFX + call $4375 + call $1ad2 + ld a, $13 + ld hl, $5188 + rst FarCall + ret +; 90355 + +Function90355: ; 90355 + jr .asm_90357 + +.asm_90357 + ld c, $14 + call DelayFrames + ld a, $13 + ld hl, $5188 + rst FarCall + ret +; 90363 + +INCBIN "baserom.gbc", $90363, $90375 - $90363 + + +Function90375: ; 90375 + ld hl, TileMap + ld b, $2 + ld c, $12 + call TextBox + ret +; 90380 + +INCBIN "baserom.gbc", $90380, $909f2 - $90380 dw Sunday dw Monday @@ -29257,7 +43036,207 @@ INCBIN "tilesets/16_collision.bin" SECTION "bank2E",DATA,BANK[$2E] -INCBIN "baserom.gbc", $B8000, $b8219 - $b8000 +Functionb8000: ; b8000 + xor a + ld [hBGMapMode], a + ld a, $2e + ld hl, $400a + rst FarCall + ret +; b800a + +Functionb800a: ; b800a + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + call GetWorldMapLocation + ld [$c2d9], a + call $4089 + jr z, .asm_b8024 + call GetMapPermission + cp $6 + jr nz, .asm_b8029 + +.asm_b8024 + ld a, $ff + ld [$c2d9], a + +.asm_b8029 + ld hl, $d83e + bit 1, [hl] + res 1, [hl] + jr nz, .asm_b8054 + call $4064 + jr z, .asm_b8054 + ld a, [$c2d9] + ld [$c2d8], a + call $4070 + jr z, .asm_b8054 + ld a, $3c + ld [$c2da], a + call $40c6 + call $40d3 + ld a, $41 + ld hl, $4303 + rst FarCall + ret + +.asm_b8054 + ld a, [$c2d9] + ld [$c2d8], a + ld a, $90 + ld [rWY], a + ld [$ffd2], a + xor a + ld [hLCDStatCustom], a + ret +; b8064 + +Functionb8064: ; b8064 + ld a, [$c2d9] + ld c, a + ld a, [$c2d8] + cp c + ret z + cp $0 + ret +; b8070 + +Functionb8070: ; b8070 + cp $ff + ret z + cp $0 + ret z + cp $11 + ret z + cp $46 + ret z + cp $3b + ret z + cp $5a + ret z + cp $44 + ret z + ld a, $1 + and a + ret +; b8089 + +Functionb8089: ; b8089 + ld a, [MapGroup] + cp $a + ret nz + ld a, [MapNumber] + cp $f + ret z + cp $11 + ret +; b8098 + +INCBIN "baserom.gbc", $b8098, $b80c6 - $b8098 + + +Functionb80c6: ; b80c6 + ld de, $5344 + ld hl, $9600 + ld bc, $3e0e + call Functionf82 + ret +; b80d3 + +Functionb80d3: ; b80d3 + ld hl, TileMap + ld b, $2 + ld c, $12 + call $4115 + call $412f + ret +; b80e1 + +INCBIN "baserom.gbc", $b80e1, $b8115 - $b80e1 + + +Functionb8115: ; b8115 + ld de, $0939 + add hl, de + inc b + inc b + inc c + inc c + ld a, $87 +.asm_b811f + push bc + push hl +.asm_b8121 + ld [hli], a + dec c + jr nz, .asm_b8121 + pop hl + ld de, $0014 + add hl, de + pop bc + dec b + jr nz, .asm_b811f + ret +; b812f + +Functionb812f: ; b812f + ld hl, TileMap + ld a, $61 + ld [hli], a + ld a, $62 + call $4164 + ld a, $64 + ld [hli], a + ld a, $65 + ld [hli], a + call $415b + ld a, $6b + ld [hli], a + ld a, $66 + ld [hli], a + call $415b + ld a, $6c + ld [hli], a + ld a, $67 + ld [hli], a + ld a, $68 + call $4164 + ld a, $6a + ld [hl], a + ret +; b815b + +Functionb815b: ; b815b + ld c, $12 + ld a, $6d +.asm_b815f + ld [hli], a + dec c + jr nz, .asm_b815f + ret +; b8164 + +Functionb8164: ; b8164 + ld c, $5 + jr .asm_b816a + +.asm_b8168 + ld [hli], a + ld [hli], a + +.asm_b816a + inc a + ld [hli], a + ld [hli], a + dec a + dec c + jr nz, .asm_b8168 + ret +; b8172 + +INCBIN "baserom.gbc", $b8172, $b8219 - $b8172 Functionb8219: ; b8219 ; deals strictly with rockmon encounter @@ -29497,7 +43476,17 @@ WildRockMonTable: ; b83de db $ff ; end ; b83e5 -INCBIN "baserom.gbc", $b83e5, $b9e8b - $b83e5 +INCBIN "baserom.gbc", $b83e5, $b9e76 - $b83e5 + + +Functionb9e76: ; b9e76 + ld a, d + ld hl, $5e80 + ld de, $0001 + jp IsInArray +; b9e80 + +INCBIN "baserom.gbc", $b9e80, $b9e8b - $b9e80 SECTION "bank2F",DATA,BANK[$2F] @@ -29944,7 +43933,82 @@ INCBIN "baserom.gbc", $c8000, $cbe2b - $c8000 SECTION "bank33",DATA,BANK[$33] -INCBIN "baserom.gbc", $cc000, $cfd9e - $cc000 +Functioncc000: ; cc000 + call WhiteBGMap + call ClearTileMap + call ClearSprites + call $0e58 + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + ld hl, TileMap + ld b, $4 + ld c, $d + call TextBox + ld hl, $c518 + ld b, $4 + ld c, $d + call TextBox + ld hl, $c4a2 + ld de, $40ae + call PlaceString + ld hl, $c51a + ld de, $40b8 + call PlaceString + ld hl, $c4f5 + ld de, $40a7 + call PlaceString + ld hl, $c56d + ld de, $40a7 + call PlaceString + ld a, [$df9c] + ld [$d265], a + call GetPokemonName + ld de, StringBuffer1 + ld hl, $c4c9 + call PlaceString + ld h, b + ld l, c + ld a, [$dfbb] + ld [TempMonLevel], a + call $382d + ld de, EnemyMonNick + ld hl, $c541 + call PlaceString + ld h, b + ld l, c + ld a, [EnemyMonLevel] + ld [TempMonLevel], a + call $382d + ld hl, $c4fb + ld de, $dfc0 + ld bc, $0203 + call $3198 + ld hl, $c573 + ld de, EnemyMonMaxHPHi + call $3198 + ld hl, $40c2 + call PrintText + pop af + ld [Options], a + call WaitBGMap + ld b, $8 + call GetSGBLayout + call Function32f9 + ret +; cc0a7 + +INCBIN "baserom.gbc", $cc0a7, $cc0c7 - $cc0a7 + + +Functioncc0c7: ; cc0c7 + call GetPokemonName + ld hl, $40d0 + jp PrintText +; cc0d0 + +INCBIN "baserom.gbc", $cc0d0, $cfd9e - $cc0d0 ; Songs iii @@ -30278,7 +44342,80 @@ Functione4670: ; e4670 jp [hl] ; e467f -INCBIN "baserom.gbc", $e467f, $e555d - $e467f +INCBIN "baserom.gbc", $e467f, $e48ac - $e467f + + +Functione48ac: ; e48ac + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld a, [$ffaa] + push af + ld a, [$ff9e] + push af + call $4901 + call Functiona57 + ld a, [$ffa9] + and $f + jr nz, .asm_e48db + ld a, [$cf63] + bit 7, a + jr nz, .asm_e48e1 + call $490f + callba Function8cf69 + call DelayFrame + jp $48bc + +.asm_e48db + ld de, $0000 + call StartMusic + +.asm_e48e1 + call WhiteBGMap + call ClearSprites + call ClearTileMap + xor a + ld [$ffcf], a + ld [$ffd0], a + ld a, $7 + ld [$ffd1], a + ld a, $90 + ld [$ffd2], a + pop af + ld [$ff9e], a + pop af + ld [$ffaa], a + pop af + ld [rSVBK], a + ret +; e4901 + +Functione4901: ; e4901 + xor a + ld [$ff9e], a + ld a, $1 + ld [$ffaa], a + xor a + ld [$ffde], a + ld [$cf63], a + ret +; e490f + +Functione490f: ; e490f + ld a, [$cf63] + ld e, a + ld d, $0 + ld hl, $491e + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; e491e + +INCBIN "baserom.gbc", $e491e, $e555d - $e491e IntroSuicuneRunGFX: ; e555d INCBIN "gfx/intro/suicune_run.lz" @@ -30595,7 +44732,35 @@ TownMapGFX: ; f8ba0 INCBIN "gfx/misc/town_map.lz" ; f8ea3 -INCBIN "baserom.gbc", $f8ea3, $fb48a - $f8ea3 +INCBIN "baserom.gbc", $f8ea3, $fb449 - $f8ea3 + + +Functionfb449: ; fb449 + ld de, $4200 + ld hl, VTiles1 + ld bc, $3e80 + ld a, [rLCDC] + bit 7, a + jp z, $0fa4 + ld de, $4200 + ld hl, VTiles1 + ld bc, $3e20 + call Functionddc + ld de, $4300 + ld hl, $8a00 + ld bc, $3e20 + call Functionddc + ld de, $4400 + ld hl, $8c00 + ld bc, $3e20 + call Functionddc + ld de, $4500 + ld hl, $8e00 + ld bc, $3e20 + call Functionddc + ret +; fb48a + Functionfb48a: ; fb48a @@ -30644,7 +44809,31 @@ Functionfb48a: ; fb48a ret ; fb4f2 -INCBIN "baserom.gbc", $fb4f2, $fbbfc - $fb4f2 +INCBIN "baserom.gbc", $fb4f2, $fba18 - $fb4f2 + + +Functionfba18: ; fba18 + ld a, [UnownLetter] + ld c, a + ld b, $1a + ld hl, UnownDex +.asm_fba21 + ld a, [hli] + and a + jr z, .asm_fba2b + cp c + ret z + dec b + jr nz, .asm_fba21 + ret + +.asm_fba2b + dec hl + ld [hl], c + ret +; fba2e + +INCBIN "baserom.gbc", $fba2e, $fbbfc - $fba2e INCLUDE "battle/magikarp_length.asm" @@ -31847,7 +46036,268 @@ SproutPillarTile10: ; fca98 -INCBIN "baserom.gbc", $fca98, $fcdc2 - $fca98 +INCBIN "baserom.gbc", $fca98, $fcba8 - $fca98 + + +Functionfcba8: ; fcba8 + ld a, e + ld [$cf63], a + call $4c59 + ld b, $2 + call $4c4a + ld a, $4 + jr nz, .asm_fcc03 + ld a, $0 + call $4f38 + call $1dcf + ld a, $1 + jr c, .asm_fcc03 + ld b, $6 + ld a, $14 + ld hl, $401d + rst FarCall + ld a, $1 + jr c, .asm_fcc03 + ld e, $1 + call LoadTradesPointer + ld a, [CurPartySpecies] + cp [hl] + ld a, $2 + jr nz, .asm_fcc03 + call $4c23 + ld a, $2 + jr c, .asm_fcc03 + ld b, $1 + call $4c4a + ld hl, $4f7b + call PrintText + call $4c63 + call $4c07 + call $4e1b + ld hl, $4f80 + call PrintText + call $3d47 + ld a, $3 + +.asm_fcc03 + call $4f38 + ret +; fcc07 + +Functionfcc07: ; fcc07 + call Function2ed3 + ld a, [$cf63] + push af + ld a, [$cf64] + push af + ld a, $1e + call Predef + pop af + ld [$cf64], a + pop af + ld [$cf63], a + call Function2b74 + ret +; fcc23 + +Functionfcc23: ; fcc23 + xor a + ld [MonType], a + ld e, $1e + call LoadTradesPointer + ld a, [hl] + and a + jr z, .asm_fcc46 + cp $1 + jr z, .asm_fcc3e + callba GetGender + jr nz, .asm_fcc48 + jr .asm_fcc46 + +.asm_fcc3e + callba GetGender + jr z, .asm_fcc48 + +.asm_fcc46 + and a + ret + +.asm_fcc48 + scf + ret +; fcc4a + +Functionfcc4a: ; fcc4a + ld hl, $d960 + ld a, [$cf63] + ld c, a + ld a, $3 + call Predef + ld a, c + and a + ret +; fcc59 + +Functionfcc59: ; fcc59 + ld e, $0 + call LoadTradesPointer + ld a, [hl] + ld [$cf64], a + ret +; fcc63 + +Functionfcc63: ; fcc63 + ld e, $1 + call LoadTradesPointer + ld a, [hl] + ld [PlayerSDefLevel], a + ld e, $2 + call LoadTradesPointer + ld a, [hl] + ld [PlayerLightScreenCount], a + ld a, [PlayerSDefLevel] + ld de, PlayerAccLevel + call $4de8 + call $4df4 + ld a, [PlayerLightScreenCount] + ld de, PlayerReflectCount + call $4de8 + call $4df4 + ld hl, PartyMon1OT + ld bc, $000b + call $4dd7 + ld de, $c6f2 + call $4df4 + ld hl, PlayerName + ld de, $c6e7 + call $4df4 + ld hl, PartyMon1ID + ld bc, $0030 + call $4dd7 + ld de, PlayerScreens + call $4e0f + ld hl, PartyMon1DVs + ld bc, $0030 + call $4dd7 + ld de, $c6fd + call $4e0f + ld hl, PartyMon1Species + ld bc, $0030 + call $4dd7 + ld b, h + ld c, l + ld a, $13 + ld hl, $7301 + rst FarCall + ld a, c + ld [$c701], a + ld e, $0 + call LoadTradesPointer + ld a, [hl] + cp $3 + ld a, $1 + jr c, .asm_fcce6 + ld a, $2 + +.asm_fcce6 + ld [$c733], a + ld hl, PartyMon1Level + ld bc, $0030 + call $4dd7 + ld a, [hl] + ld [CurPartyLevel], a + ld a, [PlayerLightScreenCount] + ld [CurPartySpecies], a + xor a + ld [MonType], a + ld [$d10b], a + ld hl, $6039 + ld a, $3 + rst FarCall + ld a, $6 + call Predef + ld e, $0 + call LoadTradesPointer + ld a, [hl] + cp $3 + ld b, $0 + jr c, .asm_fcd1c + ld b, $1 + +.asm_fcd1c + ld a, $13 + ld hl, $5ba3 + rst FarCall + ld e, $3 + call LoadTradesPointer + ld de, FailedMessage + call $4df4 + ld hl, PartyMon1Nickname + ld bc, $000b + call $4dde + ld hl, FailedMessage + call $4df4 + ld e, $13 + call LoadTradesPointer + push hl + ld de, $c724 + call $4df4 + pop hl + ld de, $c719 + call $4df4 + ld hl, PartyMon1OT + ld bc, $000b + call $4dde + ld hl, $c724 + call $4df4 + ld e, $e + call LoadTradesPointer + ld de, $c72f + call $4e0f + ld hl, PartyMon1DVs + ld bc, $0030 + call $4dde + ld hl, $c72f + call $4e0f + ld e, $11 + call LoadTradesPointer + ld de, $c732 + call $4e15 + ld hl, PartyMon1ID + ld bc, $0030 + call $4dde + ld hl, $c731 + call $4e0f + ld e, $10 + call LoadTradesPointer + push hl + ld hl, PartyMon1Item + ld bc, $0030 + call $4dde + pop hl + ld a, [hl] + ld [de], a + push af + push bc + push de + push hl + ld a, [CurPartyMon] + push af + ld a, [PartyCount] + dec a + ld [CurPartyMon], a + ld a, $3 + ld hl, $6134 + rst FarCall + pop af + ld [CurPartyMon], a + pop hl + pop de + pop bc + pop af + ret +; fcdc2 + LoadTradesPointer: ; 0xfcdc2 @@ -31866,7 +46316,94 @@ LoadTradesPointer: ; 0xfcdc2 ret ; 0xfcdd7 -INCBIN "baserom.gbc", $fcdd7, $fce58-$fcdd7 +Functionfcdd7: ; fcdd7 + ld a, [CurPartyMon] + call AddNTimes + ret +; fcdde + +Functionfcdde: ; fcdde + ld a, [PartyCount] + dec a + call AddNTimes + ld e, l + ld d, h + ret +; fcde8 + +Functionfcde8: ; fcde8 + push de + ld [$d265], a + call GetBasePokemonName + ld hl, StringBuffer1 + pop de + ret +; fcdf4 + +Functionfcdf4: ; fcdf4 + ld bc, $000b + call CopyBytes + ret +; fcdfb + +INCBIN "baserom.gbc", $fcdfb, $fce0f - $fcdfb + + +Functionfce0f: ; fce0f + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + ret +; fce15 + +Functionfce15: ; fce15 + ld a, [hli] + ld [de], a + dec de + ld a, [hl] + ld [de], a + ret +; fce1b + +Functionfce1b: ; fce1b + ld e, $2 + call LoadTradesPointer + ld a, [hl] + call $4de8 + ld de, StringBuffer2 + call $4df4 + ld e, $1 + call LoadTradesPointer + ld a, [hl] + call $4de8 + ld de, $d050 + call $4df4 + ld hl, StringBuffer1 +.asm_fce3c + ld a, [hli] + cp $50 + jr nz, .asm_fce3c + dec hl + push hl + ld e, $1e + call LoadTradesPointer + ld a, [hl] + pop hl + and a + ret z + cp $1 + ld a, $ef + jr z, .asm_fce54 + ld a, $f5 + +.asm_fce54 + ld [hli], a + ld [hl], $50 + ret +; fce58 + Trades: ; 0xfce58 ; byte 1: dialog @@ -31888,7 +46425,176 @@ Trades: ; 0xfce58 db 3,CHANSEY,AERODACTYL,"AEROY@@@@@@", $96, $66,GOLD_BERRY, $7b, $67,"KIM@@@@@@@@",0,0 db 0,DUGTRIO,MAGNETON,"MAGGIE@@@@@", $96, $66,METAL_COAT, $a2, $c3,"FOREST@@@@@",0,0 -INCBIN "baserom.gbc", $fcf38, $fd1d2-$fcf38 +Functionfcf38: ; fcf38 + push af + call $4e1b + pop af + ld bc, $0008 + ld hl, $4f53 + call AddNTimes + ld a, [$cf64] + ld c, a + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + call PrintText + ret +; fcf53 + +INCBIN "baserom.gbc", $fcf53, $fcfec - $fcf53 + + +Functionfcfec: ; fcfec + ld a, [$d45c] + and a + ret nz + call $2d05 + and a + ret nz + xor a + ld [$dc18], a + call $5044 + ret nc + call $50c3 + ret nc + ld b, $3f + ld de, $500f + callba Function97c4f + scf + ret +; fd00f + +INCBIN "baserom.gbc", $fd00f, $fd044 - $fd00f + + +Functionfd044: ; fd044 + ld a, [$dc17] + cp $a + jr nc, .asm_fd065 + call $5117 + ld a, [hli] + ld [$ffc3], a + ld a, [hli] + ld [$ffc4], a + ld a, [hli] + ld [$ffc5], a + ld de, $d851 + ld bc, $ffc3 + ld a, $5 + ld hl, $600b + rst FarCall + jr nc, .asm_fd067 + +.asm_fd065 + jr .asm_fd069 + +.asm_fd067 + scf + ret + +.asm_fd069 + ld hl, $ffc3 + ld [hl], $0 + inc hl + ld [hl], $8 + inc hl + ld [hl], $fc +.asm_fd074 + ld de, $dc19 + ld bc, $d851 + ld a, $5 + ld hl, $600b + rst FarCall + jr z, .asm_fd08b + jr nc, .asm_fd089 + call $5099 + jr .asm_fd074 + +.asm_fd089 + xor a + ret + +.asm_fd08b + call $5099 + ld a, $5 + call Function2fb1 + inc a + ld [$dc18], a + scf + ret +; fd099 + +Functionfd099: ; fd099 + ld de, $dc19 + ld bc, $ffc3 + ld a, $5 + ld hl, $6053 + rst FarCall + ret +; fd0a6 + +INCBIN "baserom.gbc", $fd0a6, $fd0c3 - $fd0a6 + + +Functionfd0c3: ; fd0c3 + call $5117 + ld de, $0006 + add hl, de + ld a, [hli] + cp $1 + jr z, .asm_fd0db + ld a, [hl] + ld c, a + ld b, $1 + ld a, $9 + ld hl, $6ef1 + rst FarCall + scf + ret + +.asm_fd0db + ld a, [hl] + ld [CurItem], a + ld a, $1 + ld [$d10c], a + ld hl, $d8f1 + call $2f66 + ret +; fd0eb + +INCBIN "baserom.gbc", $fd0eb, $fd117 - $fd0eb + + +Functionfd117: ; fd117 + ld a, [$dc18] + and a + jr z, .asm_fd123 + dec a + ld de, $5136 + jr .asm_fd12e + +.asm_fd123 + ld a, [$dc17] + cp $a + jr c, .asm_fd12b + xor a + +.asm_fd12b + ld de, $515e + +.asm_fd12e + ld l, a + ld h, $0 + add hl, hl + add hl, hl + add hl, hl + add hl, de + ret +; fd136 + +INCBIN "baserom.gbc", $fd136, $fd1d2 - $fd136 SECTION "bank40",DATA,BANK[$40] @@ -31898,7 +46604,61 @@ INCBIN "baserom.gbc", $100000, $10389d - $100000 SECTION "bank41",DATA,BANK[$41] -INCBIN "baserom.gbc", $104000, $104209 - $104000 +Function104000: ; 104000 + ld hl, $4006 + jp $4177 +; 104006 + +INCBIN "baserom.gbc", $104006, $104061 - $104006 + + +Function104061: ; 104061 + ld hl, $4067 + jp $4177 +; 104067 + +INCBIN "baserom.gbc", $104067, $104110 - $104067 + + +Function104110: ; 104110 + ld hl, $4116 + jp $4177 +; 104116 + +INCBIN "baserom.gbc", $104116, $104177 - $104116 + + +Function104177: ; 104177 + ld a, [hBGMapMode] + push af + ld a, [$ffde] + push af + xor a + ld [hBGMapMode], a + ld [$ffde], a + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + ld a, [rVBK] + push af + call $419c + pop af + ld [rVBK], a + pop af + ld [rSVBK], a + pop af + ld [$ffde], a + pop af + ld [hBGMapMode], a + ret +; 10419c + +Function10419c: ; 10419c + jp [hl] +; 10419d + +INCBIN "baserom.gbc", $10419d, $104209 - $10419d Function104209: ; 104209 @@ -32047,7 +46807,12 @@ Function1042d6: ; 1042d6 ret ; 104303 -INCBIN "baserom.gbc", $104303, $104350 - $104303 +Function104303: ; 104303 + ld hl, $4309 + jp $4177 +; 104309 + +INCBIN "baserom.gbc", $104309, $104350 - $104309 INCBIN "gfx/ow/misc.2bpp" @@ -32203,7 +46968,30 @@ EnteredConnection: ; 1046c4 ; 1046c6 -INCBIN "baserom.gbc", $1046c6, $105258 - $1046c6 +INCBIN "baserom.gbc", $1046c6, $1050d9 - $1046c6 + + +Function1050d9: ; 1050d9 + call $5106 + ld hl, $abe2 + ld de, $abe4 + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + jp CloseSRAM +; 1050ea + +INCBIN "baserom.gbc", $1050ea, $105106 - $1050ea + + +Function105106: ; 105106 + ld a, $0 + jp GetSRAMBank +; 10510b + +INCBIN "baserom.gbc", $10510b, $105258 - $10510b MysteryGiftGFX: INCBIN "gfx/misc/mystery_gift.2bpp" @@ -32582,14 +47370,59 @@ INCBIN "baserom.gbc", $105ef7, $106078 - $105ef7 HallOfFame1: ; 0x106078 ret -INCBIN "baserom.gbc", $106079, $1060bb - $106079 +INCBIN "baserom.gbc", $106079, $106094 - $106079 + + +Function106094: ; 106094 + ret +; 106095 + +INCBIN "baserom.gbc", $106095, $1060bb - $106095 Function1060bb: ; 1060bb ; commented out ret ; 1060bc -INCBIN "baserom.gbc", $1060bc, $106dbc - $1060bc +INCBIN "baserom.gbc", $1060bc, $1060d3 - $1060bc + + +Function1060d3: ; 1060d3 + ret +; 1060d4 + +INCBIN "baserom.gbc", $1060d4, $106187 - $1060d4 + + +Function106187: ; 106187 + ld a, $1 + call GetSRAMBank + ld a, [$be3c] + push af + ld a, $1 + call GetSRAMBank + pop af + ld [$be44], a + call CloseSRAM + ret +; 10619d + +INCBIN "baserom.gbc", $10619d, $106594 - $10619d + + +Function106594: ; 106594 + ld de, $65ad + ld hl, VTiles1 + ld bc, $4180 + call Functionf82 + ld de, $6dad + ld hl, $97f0 + ld bc, $4101 + call Functionf82 + ret +; 1065ad + +INCBIN "baserom.gbc", $1065ad, $106dbc - $1065ad SECTION "bank42",DATA,BANK[$42] @@ -32600,7 +47433,146 @@ IntroLogoGFX: ; 109407 INCBIN "gfx/intro/logo.lz" ; 10983f -INCBIN "baserom.gbc", $10983f, $1099aa - $10983f +INCBIN "baserom.gbc", $10983f, $109847 - $10983f + + +Function109847: ; 109847 + bit 6, b + ld a, $0 + jr z, .asm_10984f + ld a, $40 + +.asm_10984f + ld [$cf63], a + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + call WhiteBGMap + call ClearTileMap + call ClearSprites + ld hl, $ca00 + ld c, $80 + ld de, rJOYP +.asm_10986a + ld a, e + ld [hli], a + ld a, d + ld [hli], a + dec c + jr nz, .asm_10986a + ld de, $5c24 + ld hl, $9200 + ld bc, $4209 + call Functioneba + ld de, $4000 + ld hl, $9600 + ld bc, $391d + call Functioneba + ld de, $7d2e + ld hl, $9400 + ld bc, $3210 + call Functioneba + ld a, $ff + ld [$cf64], a + xor a + ld [$cf65], a + call $5bca + ld e, l + ld d, h + ld hl, VTiles2 + ld bc, $4210 + call Functioneba + call $5a95 + xor a + ld [$cf66], a + ld hl, $d100 + ld bc, Start + xor a + call ByteFill + ld a, $43 + ld [hLCDStatCustom], a + call GetCreditsPalette + call Function32f9 + ld a, [$ff9e] + push af + ld a, $5 + ld [$ff9e], a + ld a, $1 + ld [$ffaa], a + xor a + ld [hBGMapMode], a + ld [CreditsPos], a + ld [$cd21], a + ld [CreditsTimer], a +.asm_1098de + call $5908 + call $58fd + jr nz, .asm_1098ee + call $5926 + call DelayFrame + jr .asm_1098de + +.asm_1098ee + call WhiteBGMap + xor a + ld [hLCDStatCustom], a + ld [hBGMapAddress], a + pop af + ld [$ff9e], a + pop af + ld [rSVBK], a + ret +; 1098fd + +Function1098fd: ; 1098fd + ld a, [hJoypadDown] + and $1 + ret z + ld a, [$cf63] + bit 7, a + ret +; 109908 + +Function109908: ; 109908 + ld a, [hJoypadDown] + and $2 + ret z + ld a, [$cf63] + bit 6, a + ret z + ld hl, CreditsPos + ld a, [hli] + cp $d + jr nc, .asm_10991e + ld a, [hli] + and a + ret z + +.asm_10991e + ld hl, CreditsTimer + ld a, [hl] + and a + ret z + dec [hl] + ret +; 109926 + +Function109926: ; 109926 + ld a, [$cf63] + and $f + ld e, a + ld d, $0 + ld hl, $5937 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 109937 + +INCBIN "baserom.gbc", $109937, $1099aa - $109937 ; Credits INCLUDE "engine/credits.asm" @@ -34317,12 +49289,39 @@ INCBIN "gfx/pics/201r/back.lz" SECTION "bank5B",DATA,BANK[$5B] -INCBIN "baserom.gbc", $16c000, $16d7fe - $16c000 +INCBIN "baserom.gbc", $16c000, $16d69a - $16c000 + + +Function16d69a: ; 16d69a + ld de, $52c1 + ld hl, $9760 + ld bc, $5b08 + call Functionf82 + ret +; 16d6a7 + +INCBIN "baserom.gbc", $16d6a7, $16d7fe - $16d6a7 SECTION "bank5C",DATA,BANK[$5C] -INCBIN "baserom.gbc", $170000, $17367f - $170000 +INCBIN "baserom.gbc", $170000, $170923 - $170000 + + +Function170923: ; 170923 + ld a, $5 + call GetSRAMBank + xor a + ld [$aa48], a + ld [$aa47], a + ld hl, $aa5d + ld bc, $0011 + call ByteFill + call CloseSRAM + ret +; 17093c + +INCBIN "baserom.gbc", $17093c, $17367f - $17093c SECTION "bank5D",DATA,BANK[$5D] @@ -34355,7 +49354,75 @@ INCBIN "baserom.gbc", $17a68f, $17b629 - $17a68f SECTION "bank5F",DATA,BANK[$5F] -INCBIN "baserom.gbc", $17c000, $17f036 - $17c000 +Function17c000: ; 17c000 + call DisableLCD + ld hl, VTiles2 + ld bc, $0310 + xor a + call ByteFill + call $0e51 + call Functione5f + ld hl, $4b83 + ld de, TileMap + ld bc, AttrMap + ld a, $12 +.asm_17c01e + push af + ld a, $14 + push hl +.asm_17c022 + push af + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [bc], a + inc bc + pop af + dec a + jr nz, .asm_17c022 + pop hl + push bc + ld bc, $0040 + add hl, bc + pop bc + pop af + dec a + jr nz, .asm_17c01e + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, $4ff3 + ld de, $d000 + ld bc, $0080 + call CopyBytes + pop af + ld [rSVBK], a + ld hl, $4983 + ld de, $8300 + ld bc, $0200 + call CopyBytes + ld a, $1 + ld [rVBK], a + ld hl, $4083 + ld de, VTiles2 + ld bc, $0800 + call CopyBytes + ld hl, $4883 + ld de, VTiles1 + ld bc, Start + call CopyBytes + xor a + ld [rVBK], a + call EnableLCD + ld a, $41 + ld hl, $4061 + rst FarCall + ret +; 17c083 + +INCBIN "baserom.gbc", $17c083, $17f036 - $17c083 Function17f036: ; 17f036 @@ -34841,7 +49908,74 @@ Tileset26Coll: ; 0x1dd5a9 INCBIN "tilesets/26_collision.bin" ; 0x1dd6a9 -INCBIN "baserom.gbc", $1dd6a9, $1de28a - $1dd6a9 +INCBIN "baserom.gbc", $1dd6a9, $1ddf1c - $1dd6a9 + + +Function1ddf1c: ; 1ddf1c + ld hl, $5f33 + ld de, $9310 + call Decompress + ret +; 1ddf26 + +INCBIN "baserom.gbc", $1ddf26, $1de0d7 - $1ddf26 + + +Function1de0d7: ; 1de0d7 + ld hl, $60e1 + ld de, $a000 + call Decompress + ret +; 1de0e1 + +INCBIN "baserom.gbc", $1de0e1, $1de247 - $1de0e1 + + +Function1de247: ; 1de247 + ld a, [hBGMapAddress] + ld l, a + ld a, [$ffd7] + ld h, a + push hl + inc hl + ld a, l + ld [hBGMapAddress], a + ld a, h + ld [$ffd7], a + ld hl, $c4b3 + ld [hl], $66 + ld hl, $c4c7 + ld a, $67 + ld b, $f + call $627f + ld [hl], $68 + ld hl, $c607 + ld [hl], $3c + xor a + ld b, $12 + ld hl, $cdec + call $627f + call Function3200 + pop hl + ld a, l + ld [hBGMapAddress], a + ld a, h + ld [$ffd7], a + ret +; 1de27f + +Function1de27f: ; 1de27f + push de + ld de, $0014 +.asm_1de283 + ld [hl], a + add hl, de + dec b + jr nz, .asm_1de283 + pop de + ret +; 1de28a + Function1de28a: ; 1de28a @@ -34937,12 +50071,197 @@ INCBIN "baserom.gbc", $1f0000, $1f09d8 - $1f0000 SECTION "bank7D",DATA,BANK[$7D] -INCBIN "baserom.gbc", $1f4000, $1f636a - $1f4000 +Function1f4000: ; 1f4000 + call z, $1e6b + ld a, $6 + call GetSRAMBank + ld hl, $4018 + ld de, $a000 + ld bc, $1000 + call CopyBytes + call CloseSRAM + ret +; 1f4018 + +INCBIN "baserom.gbc", $1f4018, $1f636a - $1f4018 SECTION "bank7E",DATA,BANK[$7E] -INCBIN "baserom.gbc", $1f8000, $1fb8a8 - $1f8000 +Function1f8000: ; 1f8000 + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + xor a + ld hl, $d100 + ld bc, $00e0 + call ByteFill + ld a, $ff + ld [$d10c], a + ld [$d147], a + ld [$d182], a + ld de, $d100 + ld a, [hRandomAdd] + ld b, a +.asm_1f8022 + call RNG + ld a, [hRandomAdd] + add b + ld b, a + and $1f + cp $15 + jr nc, .asm_1f8022 + ld b, a + ld a, $1 + call GetSRAMBank + ld c, $7 + ld hl, $be48 +.asm_1f803a + ld a, [hli] + cp b + jr z, .asm_1f8022 + dec c + jr nz, .asm_1f803a + ld hl, $be48 + ld a, [$be46] + ld c, a + ld a, b + ld b, $0 + add hl, bc + ld [hl], a + call CloseSRAM + push af + ld hl, $414e + ld bc, $000b + call AddNTimes + ld bc, $000b + call CopyBytes + call $4081 + pop af + ld hl, $4000 + ld bc, $0024 + call AddNTimes + ld bc, $0024 +.asm_1f8070 + ld a, $7c + call GetFarByte + ld [de], a + inc hl + inc de + dec bc + ld a, b + or c + jr nz, .asm_1f8070 + pop af + ld [rSVBK], a + ret +; 1f8081 + +Function1f8081: ; 1f8081 + ld c, $3 + push bc + ld a, $1 + call GetSRAMBank +.asm_1f8089 + ld a, [$d800] + dec a + ld hl, $4450 + ld bc, $04d7 + call AddNTimes + ld a, [hRandomAdd] + ld b, a +.asm_1f8099 + call RNG + ld a, [hRandomAdd] + add b + ld b, a + and $1f + cp $15 + jr nc, .asm_1f8099 + ld bc, $003b + call AddNTimes + ld a, [hli] + ld b, a + ld a, [hld] + ld c, a + ld a, [$d10b] + cp b + jr z, .asm_1f8089 + ld a, [$d10c] + cp c + jr z, .asm_1f8089 + ld a, [$d146] + cp b + jr z, .asm_1f8089 + ld a, [$d147] + cp c + jr z, .asm_1f8089 + ld a, [$d181] + cp b + jr z, .asm_1f8089 + ld a, [$d182] + cp c + jr z, .asm_1f8089 + ld a, [$be51] + cp b + jr z, .asm_1f8089 + ld a, [$be52] + cp b + jr z, .asm_1f8089 + ld a, [$be53] + cp b + jr z, .asm_1f8089 + ld a, [$be54] + cp b + jr z, .asm_1f8089 + ld a, [$be55] + cp b + jr z, .asm_1f8089 + ld a, [$be56] + cp b + jr z, .asm_1f8089 + ld bc, $003b + call CopyBytes + ld a, [$d265] + push af + push de + ld hl, $ffc5 + add hl, de + ld a, [hl] + ld [$d265], a + ld bc, $0030 + add hl, bc + push hl + call GetPokemonName + ld h, d + ld l, e + pop de + ld bc, $000b + call CopyBytes + pop de + pop af + ld [$d265], a + pop bc + dec c + jp nz, $4083 + ld a, [$be51] + ld [$be54], a + ld a, [$be52] + ld [$be55], a + ld a, [$be53] + ld [$be56], a + ld a, [$d10b] + ld [$be51], a + ld a, [$d146] + ld [$be52], a + ld a, [$d181] + ld [$be53], a + call CloseSRAM + ret +; 1f814e + +INCBIN "baserom.gbc", $1f814e, $1fb8a8 - $1f814e SECTION "bank7F",DATA,BANK[$7F] From 6343e2ddaf96b2dcc2cc0c70c951c379907b33ff Mon Sep 17 00:00:00 2001 From: yenatch Date: Fri, 26 Jul 2013 23:49:33 -0400 Subject: [PATCH 16/84] Reset --- engine/joypad.asm | 2 +- main.asm | 26 ++++++++++++++++++++++---- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/engine/joypad.asm b/engine/joypad.asm index b9702d33a..5266ef8a8 100644 --- a/engine/joypad.asm +++ b/engine/joypad.asm @@ -103,7 +103,7 @@ Joypad: ; 935 ; For example, soft reset: and BUTTON_A | BUTTON_B | SELECT | START cp BUTTON_A | BUTTON_B | SELECT | START - jp z, $0150 ; reset + jp z, Reset ret ; 984 diff --git a/main.asm b/main.asm index 413bd04e5..c7f2dd07b 100644 --- a/main.asm +++ b/main.asm @@ -56,8 +56,23 @@ Start: SECTION "start",HOME[$150] -INCBIN "baserom.gbc", $150, $16e - $150 - +Reset: ; 150 + di + call CleanSoundRestart + xor a + ld [$ffde], a + call ClearPalettes + xor a + ld [rIF], a + ld a, $1 + ld [rIE], a + ei + ld hl, $cfbe + set 7, [hl] + ld c, $20 + call DelayFrames + jr Function17d +; 16e Function16e: ; 16e cp $11 @@ -72,6 +87,9 @@ Function16e: ; 16e ld [hCGB], a ld a, $1 ld [$ffea], a +; 17d + +Function17d: ; 17d di xor a ld [rIF], a @@ -14056,7 +14074,7 @@ Function5e5d: ; 5e5d ld a, [$d4b5] cp $2 jr z, .asm_5e80 - jp $0150 + jp Reset .asm_5e80 call Function5de2 @@ -16643,7 +16661,7 @@ SpecialsPointers: ; 0xc029 dbw $46, $7a38 dbw $5c, $4bd3 dbw $45, $7656 - dbw $00, $0150 + dbw BANK(Reset), Reset dbw $40, $51f1 dbw $40, $5220 dbw $40, $5225 From 5ecf9f10817aecc877c4d6c1a31fd9c87c9e4fe1 Mon Sep 17 00:00:00 2001 From: yenatch Date: Sat, 27 Jul 2013 05:43:15 -0400 Subject: [PATCH 17/84] were gonna get bank 0 done!! --- main.asm | 2555 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 2494 insertions(+), 61 deletions(-) diff --git a/main.asm b/main.asm index c7f2dd07b..63f1dbbbf 100644 --- a/main.asm +++ b/main.asm @@ -294,8 +294,40 @@ Function485: ; 485 ret ; 48c -INCBIN "baserom.gbc", $48c, $4b6 - $48c +Function48c: ; 48c + ld a, [TimeOfDayPal] + ld b, a + ld hl, $0538 + ld a, l + sub b + ld l, a + jr nc, .asm_499 + dec h +.asm_499 + ld a, [hli] + ld [rBGP], a + ld a, [hli] + ld [rOBP0], a + ld a, [hli] + ld [rOBP1], a + ret +; 4a3 + + +Function4a3: ; 4a3 + ld a, [hCGB] + and a + jr z, .asm_4af + ld hl, $0517 + ld b, $4 + jr Function4c7 + +.asm_4af + ld hl, IncGradGBPalTable_01 + ld b, $4 + jr Function4c7 +; 4b6 Function4b6: ; 4b6 ld a, [hCGB] @@ -303,12 +335,14 @@ Function4b6: ; 4b6 jr z, .asm_4c2 ld hl, $0526 ld b, $3 - jr .asm_4c7 + jr Function4c7 .asm_4c2 ld hl, $053e ld b, $3 +; 4c7 +Function4c7: ; 4c7 .asm_4c7 push de ld a, [hli] @@ -364,8 +398,15 @@ IncGradGBPalTable_01: ; 52f ; 547 -INCBIN "baserom.gbc", $547, $552 - $547 - +Function547: ; 547 + ld a, [hLCDStatCustom] + cp $43 + ret nz + ld c, a + ld a, [$d100] + ld [$ff00+c], a + ret +; 552 Function552: ; 552 push af @@ -443,7 +484,15 @@ EnableLCD: ; 58a AskTimer: ; 591 - INCBIN "baserom.gbc", $591, $59c - $591 + push af + ld a, [$ffe9] + and a + jr z, .asm_59a + call Function3e93 + +.asm_59a + pop af + reti ; 59c @@ -716,8 +765,17 @@ SetClock: ; 691 ret ; 6c4 -INCBIN "baserom.gbc", $6c4, $6d3 - $6c4 +Function6c4: ; 6c4 + xor a + push af + ld a, $0 + call GetSRAMBank + pop af + ld [$ac60], a + call CloseSRAM + ret +; 6d3 Function6d3: ; 6d3 ld hl, $ac60 @@ -973,7 +1031,46 @@ Function78a: ; 78a ret ; 83b -INCBIN "baserom.gbc", $83b, $87d - $83b +Function83b: ; 83b + ld hl, $cf56 + ld de, $cf51 + ld c, $2 + ld a, $1 + ld [$ffcc], a +.asm_847 + call DelayFrame + ld a, [hl] + ld [$ffcd], a + call Function78a + ld b, a + inc hl + ld a, [$ffcc] + and a + ld a, $0 + ld [$ffcc], a + jr nz, .asm_847 + ld a, b + ld [de], a + inc de + dec c + jr nz, .asm_847 + ret +; 862 + +Function862: ; 862 + call $309d + callab Function4000 + call Function87d + jp $30b4 +; 871 + + +Function871: ; 871 + call $309d + callab Function4000 + jp Function87d +; 87d + Function87d: ; 87d @@ -1078,13 +1175,48 @@ Function908: ; 908 ret ; 919 -INCBIN "baserom.gbc", $919, $92e - $919 +Function919: ; 919 + ld a, [InLinkBattle] + and a + ret nz + ld a, $2 + ld [rSB], a + xor a + ld [$ffce], a + ld a, $0 + ld [rSC], a + ld a, $80 + ld [rSC], a + ret +; 92e + INCLUDE "engine/joypad.asm" -INCBIN "baserom.gbc", $a1b, $a36 - $a1b +Functiona1b: ; a1b +.asm_a1b + call DelayFrame + push bc + call Functiona57 + pop bc + ld a, [hJoyDown] + cp $46 + jr z, .asm_a34 + ld a, [$ffa9] + and $9 + jr nz, .asm_a34 + dec c + jr nz, .asm_a1b + and a + ret + +.asm_a34 + scf + ret +; a36 + Functiona36: ; a36 @@ -1143,7 +1275,40 @@ Functiona57: ; a57 ret ; a80 -INCBIN "baserom.gbc", $a80, $aaf - $a80 +Functiona80: ; a80 + ld a, [hConnectionStripLength] + push af + ld a, [hConnectedMapWidth] + push af + xor a + ld [hConnectionStripLength], a + ld a, $6 + ld [hConnectedMapWidth], a +.asm_a8d + push hl + ld hl, $c606 + call $0b06 + pop hl + call Functiona57 + ld a, [$ffa9] + and $3 + jr z, .asm_a8d + pop af + ld [hConnectedMapWidth], a + pop af + ld [hConnectionStripLength], a + ret +; aa5 + +Functionaa5: ; aa5 +.asm_aa5 + call Functiona57 + ld a, [$ffa9] + and $3 + jr z, .asm_aa5 + ret +; aaf + Functionaaf: ; aaf @@ -1207,7 +1372,50 @@ Functionaf5: ; af5 ret ; b06 -INCBIN "baserom.gbc", $b06, $b40 - $b06 +Functionb06: ; b06 + push bc + ld a, [hl] + ld b, a + ld a, $ee + cp b + pop bc + jr nz, .asm_b27 + ld a, [hConnectionStripLength] + dec a + ld [hConnectionStripLength], a + ret nz + ld a, [hConnectedMapWidth] + dec a + ld [hConnectedMapWidth], a + ret nz + ld a, $7a + ld [hl], a + ld a, $ff + ld [hConnectionStripLength], a + ld a, $6 + ld [hConnectedMapWidth], a + ret + +.asm_b27 + ld a, [hConnectionStripLength] + and a + ret z + dec a + ld [hConnectionStripLength], a + ret nz + dec a + ld [hConnectionStripLength], a + ld a, [hConnectedMapWidth] + dec a + ld [hConnectedMapWidth], a + ret nz + ld a, $6 + ld [hConnectedMapWidth], a + ld a, $ee + ld [hl], a + ret +; b40 + FarDecompress: ; b40 ; Decompress graphics data at a:hl to de @@ -1740,7 +1948,70 @@ DmgToCgbObjPals: ; ccb ; cf8 -INCBIN "baserom.gbc", $cf8, $d50 - $cf8 +Functioncf8: ; cf8 + ld [rOBP0], a + push af + ld a, [hCGB] + and a + jr z, .asm_d22 + push hl + push de + push bc + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, $d0c0 + ld de, $d040 + ld a, [rOBP0] + ld b, a + ld c, $1 + call CopyPals + ld a, $1 + ld [hCGBPalUpdate], a + pop af + ld [rSVBK], a + pop bc + pop de + pop hl + +.asm_d22 + pop af + ret +; d24 + +Functiond24: ; d24 + ld [rOBP1], a + push af + ld a, [hCGB] + and a + jr z, .asm_d4e + push hl + push de + push bc + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, $d0c8 + ld de, $d048 + ld a, [rOBP1] + ld b, a + ld c, $1 + call CopyPals + ld a, $1 + ld [hCGBPalUpdate], a + pop af + ld [rSVBK], a + pop bc + pop de + pop hl + +.asm_d4e + pop af + ret +; d50 + CopyPals: ; d50 @@ -1796,14 +2067,47 @@ CopyPals: ; d50 ; d79 -INCBIN "baserom.gbc", $d79, $d90 - $d79 +Functiond79: ; d79 + ld a, [hCGB] + and a + ret z + ld a, $1 + ld [rVBK], a + ld hl, VTiles0 + ld bc, $2000 + xor a + call ByteFill + ld a, $0 + ld [rVBK], a + ret +; d90 + Functiond90: ; d90 ret ; d91 -INCBIN "baserom.gbc", $d91, $db1 - $d91 +Functiond91: ; d91 + ld a, [hCGB] + and a + ret z + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, $d080 + ld bc, $0050 + xor a + call ByteFill + pop af + ld [rSVBK], a + ld a, $1 + ld [hCGBPalUpdate], a + call DelayFrame + ret +; db1 + Functiondb1: ; db1 @@ -1819,7 +2123,19 @@ Functiondb1: ; db1 ret ; dbd -INCBIN "baserom.gbc", $dbd, $dc9 - $dbd +Functiondbd: ; dbd + ld a, [hROMBank] + push af + ld a, $13 + rst Bankswitch + + call $403f + pop af + rst Bankswitch + + ret +; dc9 + Functiondc9: ; dc9 @@ -1868,7 +2184,64 @@ Functiondef: ; def ret ; dfd -INCBIN "baserom.gbc", $dfd, $e4a - $dfd +Functiondfd: ; dfd + dec c + ld a, [hBGMapMode] + push af + xor a + ld [hBGMapMode], a + ld a, [hROMBank] + push af + ld a, b + rst Bankswitch + +.asm_e09 + ld a, d + ld [rHDMA1], a + ld a, e + and $f0 + ld [rHDMA2], a + ld a, h + and $1f + ld [rHDMA3], a + ld a, l + and $f0 + ld [rHDMA4], a + ld a, c + cp $8 + jr c, .asm_e3c + sub $8 + ld c, a + ld a, $f + ld [hDMATransfer], a + call DelayFrame + ld a, l + add $0 + ld l, a + ld a, h + adc $1 + ld h, a + ld a, e + add $0 + ld e, a + ld a, d + adc $1 + ld d, a + jr .asm_e09 + +.asm_e3c + ld a, c + and $7f + ld [hDMATransfer], a + call DelayFrame + pop af + rst Bankswitch + + pop af + ld [hBGMapMode], a + ret +; e4a + Functione4a: ; e4a @@ -1906,7 +2279,29 @@ Functione5f: ; e5f ret ; e6c -INCBIN "baserom.gbc", $e6c, $e8d - $e6c +Functione6c: ; e6c + ld a, $3e + ld hl, $74b0 + rst FarCall + ret +; e73 + +Functione73: ; e73 + push de + ld a, $0 + call GetSRAMBank + push bc + ld de, $a000 + ld a, b + call FarDecompress + pop bc + pop hl + ld de, $a000 + call Functioneba + call CloseSRAM + ret +; e8d + FarCopyBytes: ; e8d @@ -2287,7 +2682,15 @@ SpeechTextBox: ; 103e ; 1048 -INCBIN "baserom.gbc", $1048, $1057 - $1048 +INCBIN "baserom.gbc", $1048, $1052 - $1048 + + +Function1052: ; 1052 + ld hl, $1056 + ret +; 1056 + +INCBIN "baserom.gbc", $1056, $1057 - $1056 PrintText: ; 1057 @@ -2559,11 +2962,18 @@ Function11f6: ; 11f6 jp $126a ; 11fd -INCBIN "baserom.gbc", $11fd, $1203 - $11fd +Function11fd: ; 11fd + ld a, [hBattleTurn] + xor $1 + jr Function1205 +; 1203 Char5D: ; 1203 ld a, [hBattleTurn] +; 1205 + +Function1205: ; 1205 push de and a jr nz, .asm_120e ; 0x1207 $5 @@ -2874,7 +3284,26 @@ Function13cd: ; 13cd ret ; 13d4 -INCBIN "baserom.gbc", $13d4, $13e5 - $13d4 +Function13d4: ; 13d4 + ld b, a + ld a, [hROMBank] + push af + ld a, b + rst Bankswitch + + call PlaceString + pop af + rst Bankswitch + + ret +; 13e0 + +Function13e0: ; 13e0 + ld hl, $13e4 + ret +; 13e4 + +INCBIN "baserom.gbc", $13e4, $13e5 - $13e4 Function13e5: ; 13e5 @@ -2914,7 +3343,324 @@ Function13ff: ; 13ff ret ; 1410 -INCBIN "baserom.gbc", $1410, $15d8 - $1410 +INCBIN "baserom.gbc", $1410, $143e - $1410 + + +Function143e: ; 143e + ld d, h + ld e, l + ld h, b + ld l, c + call PlaceString + ld h, d + ld l, e + inc hl + ret +; 1449 + +Function1449: ; 1449 + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + push hl + ld h, b + ld l, c + call PlaceString + pop hl + ret +; 1455 + +Function1455: ; 1455 + ld a, [hROMBank] + push af + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld [hROMBank], a + ld [$2000], a + push hl + ld h, d + ld l, e + call Function13f6 + pop hl + pop af + ld [hROMBank], a + ld [$2000], a + ret +; 1470 + +Function1470: ; 1470 + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + push hl + ld h, b + ld l, c + ld c, a + call PrintBCDNumber + ld b, h + ld c, l + pop hl + ret +; 1480 + +Function1480: ; 1480 + ld a, [hli] + ld [$d0e6], a + ld c, a + ld a, [hli] + ld [$d0e7], a + ld b, a + ret +; 148b + +Function148b: ; 148b + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld b, a + ld a, [hli] + ld c, a + push hl + ld h, d + ld l, e + call TextBox + pop hl + ret +; 149b + +Function149b: ; 149b + ld bc, $c5e1 + ret +; 149f + +Function149f: ; 149f + ld a, [InLinkBattle] + cp $3 + jp z, $1562 + cp $4 + jp z, $1562 + push hl + call Function13c7 + push bc + call Functionaaf + pop bc + call Function13cd + pop hl + ret +; 14ba + +Function14ba: ; 14ba + push hl + call Function13cd + call Function138c + call Function138c + pop hl + ld bc, $c5e1 + ret +; 14c9 + +Function14c9: ; 14c9 + bit 7, h + jr nz, .asm_14ce + jp [hl] + +.asm_14ce + ld a, $50 + ld [hl], a + ret +; 14d2 + +Function14d2: ; 14d2 + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + push hl + ld h, b + ld l, c + ld b, a + and $f + ld c, a + ld a, b + and $f0 + swap a + set 6, a + ld b, a + call Function3198 + ld b, h + ld c, l + pop hl + ret +; 14ed + +Function14ed: ; 14ed + push hl + push bc + call GetJoypadPublic + ld a, [hJoyDown] + and $3 + jr nz, .asm_14fd + ld c, $1e + call DelayFrames + +.asm_14fd + pop bc + pop hl + ret +; 1500 + +Function1500: ; 1500 + push bc + dec hl + ld a, [hli] + ld b, a + push hl + ld hl, $152d +.asm_1508 + ld a, [hli] + cp $ff + jr z, .asm_151f + cp b + jr z, .asm_1514 + inc hl + inc hl + jr .asm_1508 + +.asm_1514 + push de + ld e, [hl] + inc hl + ld d, [hl] + call StartSFX + call WaitSFX + pop de + +.asm_151f + pop hl + pop bc + ret +; 1522 + +Function1522: ; 1522 + push de + ld e, [hl] + inc hl + ld d, [hl] + call Function37ce + pop de + pop hl + pop bc + ret +; 152d + +Function152d: ; 152d + dec bc + nop + nop + ld [de], a + dec l + nop + ld c, $9 + nop + rrca + ld bc, $1000 + ld [bc], a + nop + ld de, $000a + inc de + inc l + nop + rst $38 + ld a, [hli] + ld d, a + push hl + ld h, b + ld l, c +.asm_1548 + push de + ld a, $75 + ld [hli], a + call GetJoypadPublic + ld a, [hJoyDown] + and $3 + jr nz, .asm_155a + ld c, $a + call DelayFrames + +.asm_155a + pop de + dec d + jr nz, .asm_1548 + ld b, h + ld c, l + pop hl + ret +; 1562 + + + +Function1562: ; 1562 + push hl + push bc + call Functionaaf + pop bc + pop hl + ret +; 156a + +Function156a: ; 156a + ld a, [hli] + push hl + ld e, a + ld d, $0 + ld hl, $4000 + add hl, de + add hl, de + ld a, $9 + call GetFarHalfword + ld d, h + ld e, l + ld h, b + ld l, c + call PlaceString + pop hl + ret +; 1582 + +Function1582: ; 1582 + call GetWeekday + push hl + push bc + ld c, a + ld b, $0 + ld hl, $15a2 + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld d, h + ld e, l + pop hl + call PlaceString + ld h, b + ld l, c + ld de, $15d4 + call PlaceString + pop hl + ret +; 15a2 + +INCBIN "baserom.gbc", $15a2, $15d8 - $15a2 DMATransfer: ; 15d8 ; DMA transfer @@ -3574,7 +4320,43 @@ Function180e: ; 180e ret ; 1836 -INCBIN "baserom.gbc", $1836, $185d - $1836 +Function1836: ; 1836 + push de + push hl + ld b, a + ld a, [hROMBank] + push af + ld a, $5 + rst Bankswitch + + ld a, b + call $42a7 + ld c, a + pop de + ld a, d + rst Bankswitch + + pop hl + pop de + ret +; 184a + +Function184a: ; 184a + ld a, [StandingTile] + call GetTileType + ld b, a + ret +; 1852 + +Function1852: ; 1852 + ld a, [StandingTile] + call GetTileType + sub $1 + ret z + and a + ret +; 185d + GetTileType: ; 185d @@ -3633,7 +4415,20 @@ Function188e: ; 188e ret ; 1894 -INCBIN "baserom.gbc", $1894, $18a0 - $1894 +Function1894: ; 1894 + cp $12 + ret z + cp $1a + ret +; 189a + +Function189a: ; 189a + cp $15 + ret z + cp $1d + ret +; 18a0 + CheckCounterTile: ; 18a0 @@ -3677,7 +4472,18 @@ CheckWaterfallTile: ; 18bd ; 18c3 -INCBIN "baserom.gbc", $18c3, $18d2 - $18c3 +Function18c3: ; 18c3 + ld a, [StandingTile] + cp $71 + ret z + cp $79 + ret z + cp $7a + ret z + cp $7b + ret +; 18d2 + GetMapObject: ; 18d2 @@ -3709,7 +4515,87 @@ Function18de: ; 18de ret ; 18f5 -INCBIN "baserom.gbc", $18f5, $1956 - $18f5 +Function18f5: ; 18f5 + ld hl, $0006 + add hl, bc + ld a, [hl] + cp $ff + jr nz, .asm_1921 + ld hl, $0007 + add hl, bc + ld a, [hl] + cp $ff + jr z, .asm_191c + ld hl, .data_191e + ld a, [TimeOfDay] + add l + ld l, a + jr nc, .asm_1912 + inc h + +.asm_1912 + ld a, [hl] + ld hl, $0007 + add hl, bc + and [hl] + jr nz, .asm_191c + scf + ret + +.asm_191c + and a + ret + +.data_191e + db $1 + db $2 + db $4 + +.asm_1921 + ld hl, $0006 + add hl, bc + ld d, [hl] + ld hl, $0007 + add hl, bc + ld e, [hl] + ld hl, hHours + ld a, d + cp e + jr z, .asm_1949 + jr c, .asm_193f + ld a, [hl] + cp d + jr nc, .asm_1949 + cp e + jr c, .asm_1949 + jr z, .asm_1949 + jr .asm_194b + +.asm_193f + ld a, e + cp [hl] + jr c, .asm_194b + ld a, [hl] + cp d + jr nc, .asm_1949 + jr .asm_194b + +.asm_1949 + and a + ret + +.asm_194b + scf + ret +; 194d + +Function194d: ; 194d + ld [hConnectionStripLength], a + call GetMapObject + call $40e7 + ret +; 1956 + Function1956: ; 1956 @@ -3762,7 +4648,50 @@ Function199f: ; 199f ret ; 19a6 -INCBIN "baserom.gbc", $19a6, $19e9 - $19a6 +Function19a6: ; 19a6 + push hl + call GetMapObject + ld d, b + ld e, c + ld a, $ff + ld [de], a + inc de + pop hl + ld bc, $000f + call CopyBytes + ret +; 19b8 + +Function19b8: ; 19b8 + call GetMapObject + ld hl, $0000 + add hl, bc + ld a, [hl] + push af + ld [hl], $ff + inc hl + ld bc, $000f + xor a + call ByteFill + pop af + cp $ff + ret z + cp $d + ret nc + ld b, a + ld a, [$d4cd] + cp b + jr nz, .asm_19de + ld a, $ff + ld [$d4cd], a + +.asm_19de + ld a, b + call Function1ae5 + callba Function4357 + ret +; 19e9 + Function19e9: ; 19e9 @@ -3929,7 +4858,43 @@ Function1a71: ; 1a71 ret ; 1aae -INCBIN "baserom.gbc", $1aae, $1ad2 - $1aae +Function1aae: ; 1aae + ld a, [hROMBank] + push af + ld a, [hli] + rst Bankswitch + + ld a, [hli] + ld d, [hl] + ld hl, $001b + add hl, bc + add [hl] + ld e, a + ld a, d + adc $0 + ld d, a + inc [hl] + ld a, [de] + ld h, a + pop af + rst Bankswitch + + ld a, h + ret +; 1ac6 + +Function1ac6: ; 1ac6 + ld hl, VramState + set 0, [hl] + ret +; 1acc + +Function1acc: ; 1acc + ld hl, VramState + res 0, [hl] + ret +; 1ad2 + Function1ad2: ; 1ad2 @@ -3960,7 +4925,20 @@ Function1af1: ; 1af1 ret ; 1af8 -INCBIN "baserom.gbc", $1af8, $1b07 - $1af8 +Function1af8: ; 1af8 + push af + ld hl, $0008 + add hl, bc + ld a, [hl] + and $f3 + ld e, a + pop af + and $c + or e + ld [hl], a + ret +; 1b07 + GetSpriteDirection: ; 1b07 @@ -3972,7 +4950,139 @@ GetSpriteDirection: ; 1b07 ; 1b0f -INCBIN "baserom.gbc", $1b0f, $1bb1 - $1b0f +Function1b0f: ; 1b0f + add $10 + ld e, a + ld a, [hROMBank] + push af + ld a, $2 + rst Bankswitch + + call $44d9 + pop af + rst Bankswitch + + ret +; 1b1e + +Function1b1e: ; 1b1e + ld [$d003], a + xor a + ld [DefaultFlypoint], a + ld a, $0 + ld [$d004], a + ld a, $7 + ld [StartFlypoint], a + ld a, $d0 + ld [EndFlypoint], a + ret +; 1b35 + +Function1b35: ; 1b35 + ld a, [DefaultFlypoint] + and a + ret z + dec a + ld [DefaultFlypoint], a + ret +; 1b3f + +Function1b3f: ; 1b3f + push hl + push de + ld hl, DefaultFlypoint + ld e, [hl] + inc [hl] + ld d, $0 + ld hl, MovementBuffer + add hl, de + ld [hl], a + pop de + pop hl + ret +; 1b50 + +Function1b50: ; 1b50 + push af + ld a, c + and a + jr nz, .asm_1b57 + pop af + ret + +.asm_1b57 + pop af +.asm_1b58 + call $1b3f + dec c + jr nz, .asm_1b58 + ret +; 1b5f + +Function1b5f: ; 1b5f + push af + ld a, b + sub d + ld h, $2 + jr nc, .asm_1b6a + dec a + cpl + ld h, $3 + +.asm_1b6a + ld d, a + ld a, c + sub e + ld l, $1 + jr nc, .asm_1b75 + dec a + cpl + ld l, $0 + +.asm_1b75 + ld e, a + cp d + jr nc, .asm_1b7f + ld a, h + ld h, l + ld l, a + ld a, d + ld d, e + ld e, a + +.asm_1b7f + pop af + ld b, a + ld a, h + call $1b92 + ld c, d + call $1b50 + ld a, l + call $1b92 + ld c, e + call $1b50 + ret +; 1b92 + +Function1b92: ; 1b92 + push de + push hl + ld l, b + ld h, $0 + add hl, hl + add hl, hl + ld e, a + ld d, $0 + add hl, de + ld de, $1ba5 + add hl, de + ld a, [hl] + pop hl + pop de + ret +; 1ba5 + +INCBIN "baserom.gbc", $1ba5, $1bb1 - $1ba5 Function1bb1: ; 1bb1 @@ -4039,7 +5149,15 @@ Function1bee: ; 1bee ret ; 1bf7 -INCBIN "baserom.gbc", $1bf7, $1c00 - $1bf7 +Function1bf7: ; 1bf7 + ld hl, $cfac + ld a, [hli] + ld h, [hl] + ld l, a + ld [hl], $7f + ret +; 1c00 + Function1c00: ; 1c00 @@ -4240,7 +5358,13 @@ Function1cf1: ; 1cf1 ret ; 1cfd -INCBIN "baserom.gbc", $1cfd, $1d05 - $1cfd + +Function1cfd: ; 1cfd + ld a, [$cf83] + ld c, a + ld a, [$cf82] + ld b, a +; 1d05 Function1d05: ; 1d05 @@ -4304,7 +5428,11 @@ Function1d3c: ; 0x1d3c ret ; 0x1d4b -INCBIN "baserom.gbc", $1d4b, $1d4f - $1d4b +Function1d4b: ; 1d4b + ld [$cf88], a + ret +; 1d4f + Function1d4f: ; 1d4f @@ -4365,7 +5493,14 @@ Function1d81: ; 0x1d81 ret ; 0x1dab -INCBIN "baserom.gbc", $1dab, $1db8 - $1dab +Function1dab: ; 1dab + call Function1d35 + call Function1d81 + call Function1c17 + ld a, [$cfa9] + ret +; 1db8 + Function1db8: ; 0x1db8 push hl @@ -4471,16 +5606,19 @@ Function1e35: ; 1e35 ret ; 1e5d -INCBIN "baserom.gbc", $1e5d, $1e6b - $1e5d - -Function1e6b: ; 1e6b - dec de - call $1ff8 +Function1e5d: ; 1e5d + call MenuFunc_1e7f + call MenuWriteText + call $1eff + call $1f23 + call Function1bdd + call Function1ff8 ret ; 1e70 + SetUpMenu: ; 1e70 call MenuFunc_1e7f ; ??? call MenuWriteText @@ -4512,7 +5650,225 @@ MenuWriteText: ; 0x1e8c ret ; 0x1ea6 -INCBIN "baserom.gbc", $1ea6, $1fbf - $1ea6 +Function1ea6: ; 1ea6 + ld a, [$cf83] + ld c, a + ld a, [$cf85] + sub c + ld c, a + ld a, [$cf92] + add a + inc a + ld b, a + ld a, [$cf82] + add b + ld [$cf84], a + ret +; 1ebd + +Function1ebd: ; 1ebd + ld hl, $cf93 + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [$cf76] + and a + jr z, .asm_1ed3 + ld b, a + ld c, $ff +.asm_1ecc + ld a, [hli] + cp c + jr nz, .asm_1ecc + dec b + jr nz, .asm_1ecc + +.asm_1ed3 + ld d, h + ld e, l + ld a, [hl] + ld [$cf92], a + ret +; 1eda + +Function1eda: ; 1eda + call $1cfd + ld bc, $002a + add hl, bc +.asm_1ee1 + inc de + ld a, [de] + cp $ff + ret z + ld [MenuSelection], a + push de + push hl + ld d, h + ld e, l + ld hl, $cf95 + call $1efb + pop hl + ld de, $0028 + add hl, de + pop de + jr .asm_1ee1 +; 1efb + +Function1efb: ; 1efb + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 1eff + +Function1eff: ; 1eff + call Function1c10 + ld hl, $cfa8 + ld a, [$cf91] + bit 3, a + jr z, .asm_1f0e + set 3, [hl] + +.asm_1f0e + ld a, [$cf91] + bit 2, a + jr z, .asm_1f19 + set 5, [hl] + set 4, [hl] + +.asm_1f19 + ret +; 1f1a + + +Function1f1a: ; 1f1a + call Function1bd3 + ld hl, $cfa8 + and [hl] + jr Function1f2a +; 1f23 + +Function1f23: ; 1f23 + xor a + ld [$cf73], a + call Function1bc9 +; 1f2a + +Function1f2a: ; 1f2a + bit 0, a + jr nz, .asm_1f52 + bit 1, a + jr nz, .asm_1f6d + bit 3, a + jr nz, .asm_1f6d + bit 4, a + jr nz, .asm_1f44 + bit 5, a + jr nz, .asm_1f4b + xor a + ld [$cf73], a + jr .asm_1f57 + +.asm_1f44 + ld a, $10 + ld [$cf73], a + jr .asm_1f57 + +.asm_1f4b + ld a, $20 + ld [$cf73], a + jr .asm_1f57 + +.asm_1f52 + ld a, $1 + ld [$cf73], a + +.asm_1f57 + call $1ebd + ld a, [$cfa9] + ld l, a + ld h, $0 + add hl, de + ld a, [hl] + ld [MenuSelection], a + ld a, [$cfa9] + ld [$cf88], a + and a + ret + +.asm_1f6d + ld a, $2 + ld [$cf73], a + ld a, $ff + ld [MenuSelection], a + scf + ret +; 1f79 + +Function1f79: ; 1f79 + push de + ld hl, $cf97 + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [MenuSelection] + call GetNthString + ld d, h + ld e, l + pop hl + call PlaceString + ret +; 1f8d + +Function1f8d: ; 1f8d + push de + ld a, [MenuSelection] + call $1fb1 + inc hl + inc hl + ld a, [hli] + ld d, [hl] + ld e, a + pop hl + call PlaceString + ret +; 1f9e + +Function1f9e: ; 1f9e + call $1fb1 + inc hl + inc hl + ld a, [hli] + ld d, [hl] + ld e, a + ret +; 1fa7 + +Function1fa7: ; 1fa7 + ld a, [MenuSelection] + call $1fb1 + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 1fb1 + + + +Function1fb1: ; 1fb1 + ld e, a + ld d, $0 + ld hl, $cf97 + ld a, [hli] + ld h, [hl] + ld l, a + add hl, de + add hl, de + add hl, de + add hl, de + ret +; 1fbf + Function1fbf: ; 1fbf @@ -4571,7 +5927,57 @@ PlayClickSFX: ; 2009 ret ; 0x2012 -INCBIN "baserom.gbc", $2012, $2057 - $2012 +Function2012: ; 2012 + call Function1d4f + call Functiona46 + call Function1c07 + ret +; 201c + +Function201c: ; 201c + ld [hBuffer], a + ld a, [hROMBank] + push af + ld a, [hBuffer] + rst Bankswitch + + call PlaceString + pop af + rst Bankswitch + + ret +; 202a + +Function202a: ; 202a + ld a, [hROMBank] + ld [$cf94], a + ld a, $9 + ld hl, $400e + rst FarCall + ld a, [$cf88] + ret +; 2039 + +Function2039: ; 2039 + ld a, [hROMBank] + ld [$cf94], a + ld a, $9 + ld hl, $4022 + rst FarCall + ld a, [$cf88] + ret +; 2048 + +Function2048: ; 2048 + ld a, [hROMBank] + ld [$cf94], a + ld a, $9 + ld hl, $403c + rst FarCall + ld a, [$cf88] + ret +; 2057 + Function2057: ; 2057 @@ -4626,7 +6032,17 @@ AskSerial: ; 2063 ret ; 208a -INCBIN "baserom.gbc", $208a, $209e - $208a +Function208a: ; 208a + xor a + ld [GameTimeCap], a + ld [GameTimeHours], a + ld [$d4c5], a + ld [GameTimeMinutes], a + ld [GameTimeSeconds], a + ld [GameTimeFrames], a + ret +; 209e + GameTimer: ; 209e ; precautionary @@ -4757,7 +6173,14 @@ UpdateGameTimer: ; 20ad ; 210f -INCBIN "baserom.gbc", $210f, $211b - $210f +Function210f: ; 210f + ld hl, $c7e8 + ld bc, $0018 + ld a, $0 + call ByteFill + ret +; 211b + Function211b: ; 211b @@ -4776,7 +6199,24 @@ Function211b: ; 211b ret ; 212a -INCBIN "baserom.gbc", $212a, $2147 - $212a +Function212a: ; 212a + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + xor a + ld [$dbf7], a + ld [$dbf8], a + call Function2147 + ret c + ld a, e + ld [$dbf7], a + ld a, d + ld [$dbf8], a + xor a + ret +; 2147 + Function2147: ; 2147 @@ -4976,7 +6416,18 @@ Function2198: ; 2198 ret ; 222a -INCBIN "baserom.gbc", $222a, $224a - $222a +Function222a: ; 222a + ld a, $fa + ld [$ff9f], a + ld a, $5 + ld hl, $5363 + rst FarCall + xor a + ld [$ff9f], a + ret +; 2238 + +INCBIN "baserom.gbc", $2238, $224a - $2238 Function224a: ; 224a @@ -5128,7 +6579,119 @@ CheckIndoorMap: ; 22f4 ; 2300 -INCBIN "baserom.gbc", $2300, $23a3 - $2300 +Function2300: ; 2300 + cp $3 + ret z + cp $6 + ret z + cp $5 + ret +; 2309 + +Function2309: ; 2309 + call $2326 + call Function2c52 + call $234f + xor a + call $2336 + ret +; 2317 + +Function2317: ; 2317 + call $2326 + call Function2c52 + call $234f + ld a, $1 + call $2336 + ret +; 2326 + + + +Function2326: ; 2326 + call $2c3d + call $2c1c + call GetSecondaryMapHeaderPointer + call $235c + call $2368 + ret +; 2336 + +Function2336: ; 2336 + push af + ld hl, $d1a6 + ld a, [hli] + ld h, [hl] + ld l, a + inc hl + inc hl + call $23da + call $23f1 + call $2408 + pop af + and a + ret nz + call $241f + ret +; 234f + +Function234f: ; 234f + ld hl, $d1a4 + ld a, [hli] + ld h, [hl] + ld l, a + call $23ac + call $23c3 + ret +; 235c + +Function235c: ; 235c + ld de, $d19d + ld c, $c +.asm_2361 + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .asm_2361 + ret +; 2368 + +Function2368: ; 2368 + ld a, $ff + ld [NorthConnectedMapGroup], a + ld [SouthConnectedMapGroup], a + ld [WestConnectedMapGroup], a + ld [EastConnectedMapGroup], a + ld a, [$d1a8] + ld b, a + bit 3, b + jr z, .asm_2384 + ld de, NorthConnectedMapGroup + call GetMapConnection + +.asm_2384 + bit 2, b + jr z, .asm_238e + ld de, SouthConnectedMapGroup + call GetMapConnection + +.asm_238e + bit 1, b + jr z, .asm_2398 + ld de, WestConnectedMapGroup + call GetMapConnection + +.asm_2398 + bit 0, b + jr z, .asm_23a2 + ld de, EastConnectedMapGroup + call GetMapConnection + +.asm_23a2 + ret +; 23a3 + GetMapConnection: ; 23a3 @@ -5144,7 +6707,220 @@ GetMapConnection: ; 23a3 ; 23ac -INCBIN "baserom.gbc", $23ac, $24e4 - $23ac +Function23ac: ; 23ac + ld a, [hli] + ld c, a + ld [$dc07], a + ld a, l + ld [$dc08], a + ld a, h + ld [$dc09], a + ld a, c + and a + ret z + ld bc, $0004 + call AddNTimes + ret +; 23c3 + +Function23c3: ; 23c3 + ld a, [hli] + ld c, a + ld [$dc0a], a + ld a, l + ld [$dc0b], a + ld a, h + ld [$dc0c], a + ld a, c + and a + ret z + ld bc, $0003 + call AddNTimes + ret +; 23da + +Function23da: ; 23da + ld a, [hli] + ld c, a + ld [$dbfb], a + ld a, l + ld [$dbfc], a + ld a, h + ld [$dbfd], a + ld a, c + and a + ret z + ld bc, $0005 + call AddNTimes + ret +; 23f1 + +Function23f1: ; 23f1 + ld a, [hli] + ld c, a + ld [$dbfe], a + ld a, l + ld [$dbff], a + ld a, h + ld [$dc00], a + ld a, c + and a + ret z + ld bc, $0008 + call AddNTimes + ret +; 2408 + +Function2408: ; 2408 + ld a, [hli] + ld c, a + ld [$dc01], a + ld a, l + ld [$dc02], a + ld a, h + ld [$dc03], a + ld a, c + and a + ret z + ld bc, $0005 + call AddNTimes + ret +; 241f + +Function241f: ; 241f + push hl + call $2471 + pop de + ld hl, $d72e + ld a, [de] + inc de + ld [$dc04], a + ld a, e + ld [$dc05], a + ld a, d + ld [$dc06], a + ld a, [$dc04] + call $2457 + ld a, [$dc04] + ld c, a + ld a, $10 + sub c + jr z, .asm_2454 + ld bc, $0001 + add hl, bc + ld bc, $0010 +.asm_244a + ld [hl], $0 + inc hl + ld [hl], $ff + dec hl + add hl, bc + dec a + jr nz, .asm_244a + +.asm_2454 + ld h, d + ld l, e + ret +; 2457 + +Function2457: ; 2457 + and a + ret z + ld c, a +.asm_245a + push bc + push hl + ld a, $ff + ld [hli], a + ld b, $d +.asm_2461 + ld a, [de] + inc de + ld [hli], a + dec b + jr nz, .asm_2461 + pop hl + ld bc, $0010 + add hl, bc + pop bc + dec c + jr nz, .asm_245a + ret +; 2471 + +Function2471: ; 2471 + ld hl, $d4fe + ld bc, $01e0 + xor a + call ByteFill + ld hl, $d4fe + ld de, $0028 + ld c, $c + xor a +.asm_2484 + ld [hl], a + add hl, de + dec c + jr nz, .asm_2484 + ret +; 248a + +Function248a: ; 248a + call GetMapEventBank + rst Bankswitch + + ld hl, $d1a6 + ld a, [hli] + ld h, [hl] + ld l, a + inc hl + inc hl + inc hl + ld a, [WarpNumber] + dec a + ld c, a + ld b, $0 + ld a, $5 + call AddNTimes + ld a, [hli] + ld [YCoord], a + ld a, [hli] + ld [XCoord], a + ld a, [hli] + cp $ff + jr nz, .asm_24b3 + call $24ba + +.asm_24b3 + ld a, $41 + ld hl, $486d + rst FarCall + ret +; 24ba + +Function24ba: ; 24ba + ld a, [$d149] + ld [$dcac], a + ld a, [$d14a] + ld [BackupMapGroup], a + ld a, [$d14b] + ld [BackupMapNumber], a + ret +; 24cd + +Function24cd: ; 24cd + ld hl, OverworldMap + ld bc, $0514 + ld a, $0 + call ByteFill + call Function24e4 + call FillMapConnections + ld a, $1 + call Function263b + ret +; 24e4 + Function24e4: ; 24e4 @@ -6214,7 +7990,22 @@ Function2c31: ; 2c31 ret ; 2c3d -INCBIN "baserom.gbc", $2c3d, $2c52 - $2c3d +Function2c3d: ; 2c3d + ld a, [hROMBank] + push af + ld a, $25 + rst Bankswitch + + call $2be5 + ld de, $d198 + ld bc, $0005 + call CopyBytes + pop af + rst Bankswitch + + ret +; 2c52 + Function2c52: ; 2c52 @@ -7099,7 +8890,46 @@ Function306b: ; 306b ret ; 307b -INCBIN "baserom.gbc", $307b, $30d6 - $307b +INCBIN "baserom.gbc", $307b, $309d - $307b + + +Function309d: ; 309d + ld a, [rSVBK] + push af + ld a, $2 + ld [rSVBK], a + ld hl, TileMap + ld de, $d000 + ld bc, $0168 + call CopyBytes + pop af + ld [rSVBK], a + ret +; 30b4 + +Function30b4: ; 30b4 + xor a + ld [hBGMapMode], a + call $30bf + ld a, $1 + ld [hBGMapMode], a + ret +; 30bf + +Function30bf: ; 30bf + ld a, [rSVBK] + push af + ld a, $2 + ld [rSVBK], a + ld hl, $d000 + ld de, TileMap + ld bc, $0168 + call CopyBytes + pop af + ld [rSVBK], a + ret +; 30d6 + CopyName1: ; 30d6 ld hl, StringBuffer2 @@ -9587,7 +11417,36 @@ SFXChannelsOff: ; 3e21 ret ; 3e32 -INCBIN "baserom.gbc", $3e32, $3e80 - $3e32 +Function3e32: ; 3e32 + cp $2 + ld [$c988], a + ld a, l + ld [$c986], a + ld a, h + ld [$c987], a + jr nz, .asm_3e4f + ld [$c982], a + ld a, l + ld [$c981], a + ld hl, $c983 + ld a, c + ld [hli], a + ld a, b + ld [hl], a + +.asm_3e4f + ld hl, $c822 + set 6, [hl] + ld a, [hROMBank] + push af + ld a, $44 + ld [$c981], a + rst Bankswitch + + jp $4030 +; 3e60 + +INCBIN "baserom.gbc", $3e60, $3e80 - $3e60 Function3e80: ; 3e80 @@ -16113,7 +17972,49 @@ Function849d: ; 849d ret ; 84d9 -INCBIN "baserom.gbc", $84d9, $854b - $84d9 +Function84d9: ; 84d9 + ld a, e + and $3f + cp $20 + jr nc, .asm_84e5 + call $44ef + ld a, h + ret + +.asm_84e5 + and $1f + call $44ef + ld a, h + xor $ff + inc a + ret +; 84ef + +Function84ef: ; 84ef + ld e, a + ld a, d + ld d, $0 + ld hl, $450b + add hl, de + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $0000 +.asm_84fe + srl a + jr nc, .asm_8503 + add hl, de + +.asm_8503 + sla e + rl d + and a + jr nz, .asm_84fe + ret +; 850b + +INCBIN "baserom.gbc", $850b, $854b - $850b GetPredefFn: ; 854b ; input: @@ -17673,7 +19574,77 @@ Functiond35a: ; d35a ret ; d374 -INCBIN "baserom.gbc", $d374, $d3c4 - $d374 +Functiond374: ; d374 + ld a, [$d107] + ld e, a + ld d, $0 + ld hl, NumKeyItems + ld a, [hl] + cp e + jr nc, .asm_d387 + call $5396 + ret nc + jr .asm_d38a + +.asm_d387 + dec [hl] + inc hl + add hl, de + +.asm_d38a + ld d, h + ld e, l + inc hl +.asm_d38d + ld a, [hli] + ld [de], a + inc de + cp $ff + jr nz, .asm_d38d + scf + ret +; d396 + +Functiond396: ; d396 + ld hl, NumKeyItems + ld a, [CurItem] + ld c, a +.asm_d39d + inc hl + ld a, [hl] + cp c + jr z, .asm_d3a8 + cp $ff + jr nz, .asm_d39d + xor a + ret + +.asm_d3a8 + ld a, [NumKeyItems] + dec a + ld [NumKeyItems], a + scf + ret +; d3b1 + +Functiond3b1: ; d3b1 + ld a, [CurItem] + ld c, a + ld hl, KeyItems +.asm_d3b8 + ld a, [hli] + cp c + jr z, .asm_d3c2 + cp $ff + jr nz, .asm_d3b8 + and a + ret + +.asm_d3c2 + scf + ret +; d3c4 + Functiond3c4: ; d3c4 @@ -17694,7 +19665,46 @@ Functiond3c4: ; d3c4 ret ; d3d8 -INCBIN "baserom.gbc", $d3d8, $d407 - $d3d8 +Functiond3d8: ; d3d8 + dec c + ld b, $0 + ld hl, TMsHMs + add hl, bc + ld a, [$d10c] + ld b, a + ld a, [hl] + sub b + jr c, .asm_d3f9 + ld [hl], a + ld [$d10d], a + jr nz, .asm_d3f7 + ld a, [$d0e2] + and a + jr z, .asm_d3f7 + dec a + ld [$d0e2], a + +.asm_d3f7 + scf + ret + +.asm_d3f9 + and a + ret +; d3fb + +Functiond3fb: ; d3fb + dec c + ld b, $0 + ld hl, TMsHMs + add hl, bc + ld a, [hl] + and a + ret z + scf + ret +; d407 + GetTMHMNumber: ; d407 @@ -24049,7 +26059,62 @@ BlackoutPoints: ; 0x152ab db GROUP_FAST_SHIP_CABINS_SW_SSW_NW, MAP_FAST_SHIP_CABINS_SW_SSW_NW, 6, 2 db $ff, $ff, $ff, $ff -INCBIN "baserom.gbc", $1531f, $15736 - $1531f +INCBIN "baserom.gbc", $1531f, $15363 - $1531f + + +Function15363: ; 15363 + ld a, [$ff9f] + and $f + dec a + ld c, a + ld b, $0 + ld hl, $5377 + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + call $541d + ret +; 15377 + +INCBIN "baserom.gbc", $15377, $1541d - $15377 + + +Function1541d: ; 1541d +.asm_1541d + ld a, [hli] + cp $ff + ret z + push hl + ld c, a + ld b, $0 + ld hl, $5440 + add hl, bc + add hl, bc + add hl, bc + ld b, [hl] + inc hl + ld a, [hli] + ld h, [hl] + ld l, a + bit 7, b + jr z, .asm_15439 + pop de + ld a, [de] + ld c, a + inc de + push de + +.asm_15439 + ld a, b + and $7f + rst FarCall + pop hl + jr .asm_1541d +; 15440 + +INCBIN "baserom.gbc", $15440, $15736 - $15440 KrissPCMenuData: ; 0x15736 db %01000000 @@ -25683,7 +27748,176 @@ INCLUDE "stats/egg_moves.asm" SECTION "bank9",DATA,BANK[$9] -INCBIN "baserom.gbc", $24000, $24177 - $24000 +INCBIN "baserom.gbc", $24000, $2400e - $24000 + + +Function2400e: ; 2400e + ld hl, Function1c66 + ld a, [$cf94] + rst FarCall + call $4085 + call Function1ad2 + call Function321c + call $408f + ret +; 24022 + +Function24022: ; 24022 + ld hl, Function1c66 + ld a, [$cf94] + rst FarCall + call $4085 + callba MobileTextBorder + call Function1ad2 + call Function321c + call $408f + ret +; 2403c + +Function2403c: ; 2403c + ld hl, Function1c66 + ld a, [$cf94] + rst FarCall + call $4085 + callba MobileTextBorder + call Function1ad2 + call Function321c + call $411a + ld hl, $cfa5 + set 7, [hl] +.asm_2405a + call DelayFrame + ld a, $40 + ld hl, $432e + rst FarCall + ld a, [$cd2b] + and a + jr nz, .asm_24076 + call $41ba + ld a, [$cfa8] + and c + jr z, .asm_2405a + call $4098 + ret + +.asm_24076 + ld a, [$cfa4] + ld c, a + ld a, [$cfa3] + call SimpleMultiply + ld [$cf88], a + and a + ret +; 24085 + + + +Function24085: ; 24085 + xor a + ld [hBGMapMode], a + call Function1cbb + call $40db + ret +; 2408f + +Function2408f: ; 2408f + call $411a + call Function1bc9 + call Function1ff8 + ld a, [$cf91] + bit 1, a + jr z, .asm_240a6 + call Function1bdd + bit 2, a + jr nz, .asm_240c9 + +.asm_240a6 + ld a, [$cf91] + bit 0, a + jr nz, .asm_240b4 + call Function1bdd + bit 1, a + jr nz, .asm_240cb + +.asm_240b4 + ld a, [$cfa4] + ld c, a + ld a, [$cfa9] + dec a + call SimpleMultiply + ld c, a + ld a, [$cfaa] + add c + ld [$cf88], a + and a + ret + +.asm_240c9 + scf + ret + +.asm_240cb + scf + ret +; 240cd + +Function240cd: ; 240cd + ld a, [$cf92] + and $f + ret +; 240d3 + +Function240d3: ; 240d3 + ld a, [$cf92] + swap a + and $f + ret +; 240db + +Function240db: ; 240db + ld hl, $cf95 + ld e, [hl] + inc hl + ld d, [hl] + call Function1cc6 + call Function1d05 + call $40d3 + ld b, a +.asm_240eb + push bc + push hl + call $40cd + ld c, a +.asm_240f1 + push bc + ld a, [$cf94] + call $201c + inc de + ld a, [$cf93] + ld c, a + ld b, $0 + add hl, bc + pop bc + dec c + jr nz, .asm_240f1 + pop hl + ld bc, $0028 + add hl, bc + pop bc + dec b + jr nz, .asm_240eb + ld hl, $cf98 + ld a, [hli] + ld h, [hl] + ld l, a + or h + ret z + ld a, [$cf97] + rst FarCall + ret +; 2411a + +INCBIN "baserom.gbc", $2411a, $24177 - $2411a Function24177: ; 24177 @@ -25691,7 +27925,43 @@ Function24177: ; 24177 ret ; 24179 -INCBIN "baserom.gbc", $24179, $241a8 - $24179 +Function24179: ; 24179 + xor a + ld hl, $cfa5 + ld [hli], a + ld [hld], a + ld a, [$cf91] + bit 5, a + ret z + set 5, [hl] + set 4, [hl] + ret +; 2418a + +Function2418a: ; 2418a + ld a, [$cf93] + or $20 + ld [$cfa7], a + ret +; 24193 + +Function24193: ; 24193 + ld hl, $cf91 + ld a, $1 + bit 0, [hl] + jr nz, .asm_2419e + or $2 + +.asm_2419e + bit 1, [hl] + jr z, .asm_241a4 + or $4 + +.asm_241a4 + ld [$cfa8], a + ret +; 241a8 + Function241a8: ; 241a8 @@ -25706,7 +27976,25 @@ Function241a8: ; 241a8 ret ; 241ba -INCBIN "baserom.gbc", $241ba, $24216 - $241ba +Function241ba: ; 241ba + ld hl, $cfa6 + res 7, [hl] + ld a, [hBGMapMode] + push af + call Function2431a + call Function24249 + jr nc, .asm_241cd + call Function24270 + +.asm_241cd + pop af + ld [hBGMapMode], a + call Function1bdd + ld c, a + ret +; 241d5 + +INCBIN "baserom.gbc", $241d5, $24216 - $241d5 Function24216: ; 24216 @@ -32514,7 +34802,46 @@ Function4c000: ; 4c000 ret ; 4c03f -INCBIN "baserom.gbc", $4c03f, $4c075 - $4c03f +Function4c03f: ; 4c03f + ld hl, CreditsPos + ld de, BGMapPalBuffer +.asm_4c045 + ld a, [hl] + push hl + srl a + jr c, .asm_4c05b + ld hl, TileSetPalettes + add [hl] + ld l, a + ld a, [$d1e7] + adc $0 + ld h, a + ld a, [hl] + and $f + jr .asm_4c06b + +.asm_4c05b + ld hl, TileSetPalettes + add [hl] + ld l, a + ld a, [$d1e7] + adc $0 + ld h, a + ld a, [hl] + swap a + and $f + +.asm_4c06b + pop hl + ld [de], a + res 7, [hl] + inc hl + inc de + dec c + jr nz, .asm_4c045 + ret +; 4c075 + Tileset03PalMap: ; 0x4c075 INCBIN "tilesets/03_palette_map.bin" @@ -46617,7 +48944,62 @@ INCBIN "baserom.gbc", $fd136, $fd1d2 - $fd136 SECTION "bank40",DATA,BANK[$40] -INCBIN "baserom.gbc", $100000, $10389d - $100000 +INCBIN "baserom.gbc", $100000, $10032e - $100000 + + +Function10032e: ; 10032e + call $434d + ld e, a + ret nc + ld [$cd2b], a + ret +; 100337 + +INCBIN "baserom.gbc", $100337, $10034d - $100337 + + +Function10034d: ; 10034d + ld a, [$c821] + bit 1, a + jr nz, .asm_10036a + bit 2, a + jr nz, .asm_10037e + bit 3, a + jr nz, .asm_100366 + bit 0, a + jr nz, .asm_100364 + ld a, $1 + and a + ret + +.asm_100364 + xor a + ret + +.asm_100366 + ld a, $2 + and a + ret + +.asm_10036a + ld a, $0 + call $3e32 + ld [$cd2c], a + ld a, h + ld [$cd2d], a + ld a, l + ld [$cd2e], a + ld a, $ff + scf + ret + +.asm_10037e + ld a, $fe + scf + ret +; 100382 + +INCBIN "baserom.gbc", $100382, $10389d - $100382 SECTION "bank41",DATA,BANK[$41] @@ -46986,7 +49368,57 @@ EnteredConnection: ; 1046c4 ; 1046c6 -INCBIN "baserom.gbc", $1046c6, $1050d9 - $1046c6 +INCBIN "baserom.gbc", $1046c6, $10486d - $1046c6 + + +Function10486d: ; 10486d + ld hl, OverworldMap + ld a, [XCoord] + bit 0, a + jr nz, .asm_10487d + srl a + add $1 + jr .asm_104881 + +.asm_10487d + add $1 + srl a + +.asm_104881 + ld c, a + ld b, $0 + add hl, bc + ld a, [$d19f] + add $6 + ld c, a + ld b, $0 + ld a, [YCoord] + bit 0, a + jr nz, .asm_10489a + srl a + add $1 + jr .asm_10489e + +.asm_10489a + add $1 + srl a + +.asm_10489e + call AddNTimes + ld a, l + ld [$d194], a + ld a, h + ld [$d195], a + ld a, [YCoord] + and $1 + ld [$d196], a + ld a, [XCoord] + and $1 + ld [$d197], a + ret +; 1048ba + +INCBIN "baserom.gbc", $1048ba, $1050d9 - $1048ba Function1050d9: ; 1050d9 @@ -50089,8 +52521,9 @@ INCBIN "baserom.gbc", $1f0000, $1f09d8 - $1f0000 SECTION "bank7D",DATA,BANK[$7D] -Function1f4000: ; 1f4000 - call z, $1e6b +INCBIN "baserom.gbc", $1f4000, $1f4003 - $1f4000 + +Function1f4003: ; 1f4003 ld a, $6 call GetSRAMBank ld hl, $4018 From 0d0066a0dab6108976f147e00a81495575e5cdea Mon Sep 17 00:00:00 2001 From: yenatch Date: Sat, 27 Jul 2013 15:19:35 -0400 Subject: [PATCH 18/84] picking at bank 0 incbins --- main.asm | 38 ++++++++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/main.asm b/main.asm index 63f1dbbbf..f7ff80f5e 100644 --- a/main.asm +++ b/main.asm @@ -3636,13 +3636,13 @@ Function156a: ; 156a ret ; 1582 -Function1582: ; 1582 +Text_15: ; 1582 call GetWeekday push hl push bc ld c, a - ld b, $0 - ld hl, $15a2 + ld b, 0 + ld hl, .Days add hl, bc add hl, bc ld a, [hli] @@ -3654,13 +3654,31 @@ Function1582: ; 1582 call PlaceString ld h, b ld l, c - ld de, $15d4 + ld de, .Day call PlaceString pop hl ret ; 15a2 -INCBIN "baserom.gbc", $15a2, $15d8 - $15a2 +.Days ; 15a2 + dw .Sun + dw .Mon + dw .Tues + dw .Wednes + dw .Thurs + dw .Fri + dw .Satur + +.Sun db "SUN@" +.Mon db "MON@" +.Tues db "TUES@" +.Wednes db "WEDNES@" +.Thurs db "THURS@" +.Fri db "FRI@" +.Satur db "SATUR@" +.Day db "DAY@" +; 15d8 + DMATransfer: ; 15d8 ; DMA transfer @@ -5451,7 +5469,15 @@ Function1d58: ; 1d58 ret ; 1d5f -INCBIN "baserom.gbc", $1d5f, $1d6e - $1d5f +INCBIN "baserom.gbc", $1d5f, $1d67 - $1d5f + + +Function1d67: ; 1d67 + call Function1d4f + call Function1c17 + ret +; 1d6e + Function1d6e: ; 1d6e From 5b07ea19d0a8cb38d8e1d76999688ebaa50e6e18 Mon Sep 17 00:00:00 2001 From: yenatch Date: Sat, 27 Jul 2013 16:31:29 -0400 Subject: [PATCH 19/84] move descriptions --- battle/moves/move_descriptions.asm | 519 +++++++++++++++++++++++++++++ main.asm | 27 +- 2 files changed, 545 insertions(+), 1 deletion(-) create mode 100644 battle/moves/move_descriptions.asm diff --git a/battle/moves/move_descriptions.asm b/battle/moves/move_descriptions.asm new file mode 100644 index 000000000..e7e01fc68 --- /dev/null +++ b/battle/moves/move_descriptions.asm @@ -0,0 +1,519 @@ +; MoveDescriptions: ; 2cb52 + dw PoundDescription + dw KarateChopDescription + dw DoubleslapDescription + dw CometPunchDescription + dw MegaPunchDescription + dw PayDayDescription + dw FirePunchDescription + dw IcePunchDescription + dw ThunderpunchDescription + dw ScratchDescription + dw VicegripDescription + dw GuillotineDescription + dw RazorWindDescription + dw SwordsDanceDescription + dw CutDescription + dw GustDescription + dw WingAttackDescription + dw WhirlwindDescription + dw FlyDescription + dw BindDescription + dw SlamDescription + dw VineWhipDescription + dw StompDescription + dw DoubleKickDescription + dw MegaKickDescription + dw JumpKickDescription + dw RollingKickDescription + dw SandAttackDescription + dw HeadbuttDescription + dw HornAttackDescription + dw FuryAttackDescription + dw HornDrillDescription + dw TackleDescription + dw BodySlamDescription + dw WrapDescription + dw TakeDownDescription + dw ThrashDescription + dw DoubleEdgeDescription + dw TailWhipDescription + dw PoisonStingDescription + dw TwineedleDescription + dw PinMissileDescription + dw LeerDescription + dw BiteDescription + dw GrowlDescription + dw RoarDescription + dw SingDescription + dw SupersonicDescription + dw SonicboomDescription + dw DisableDescription + dw AcidDescription + dw EmberDescription + dw FlamethrowerDescription + dw MistDescription + dw WaterGunDescription + dw HydroPumpDescription + dw SurfDescription + dw IceBeamDescription + dw BlizzardDescription + dw PsybeamDescription + dw BubblebeamDescription + dw AuroraBeamDescription + dw HyperBeamDescription + dw PeckDescription + dw DrillPeckDescription + dw SubmissionDescription + dw LowKickDescription + dw CounterDescription + dw SeismicTossDescription + dw StrengthDescription + dw AbsorbDescription + dw MegaDrainDescription + dw LeechSeedDescription + dw GrowthDescription + dw RazorLeafDescription + dw SolarbeamDescription + dw PoisonpowderDescription + dw StunSporeDescription + dw SleepPowderDescription + dw PetalDanceDescription + dw StringShotDescription + dw DragonRageDescription + dw FireSpinDescription + dw ThundershockDescription + dw ThunderboltDescription + dw ThunderWaveDescription + dw ThunderDescription + dw RockThrowDescription + dw EarthquakeDescription + dw FissureDescription + dw DigDescription + dw ToxicDescription + dw ConfusionDescription + dw PsychicMDescription + dw HypnosisDescription + dw MeditateDescription + dw AgilityDescription + dw QuickAttackDescription + dw RageDescription + dw TeleportDescription + dw NightShadeDescription + dw MimicDescription + dw ScreechDescription + dw DoubleTeamDescription + dw RecoverDescription + dw HardenDescription + dw MinimizeDescription + dw SmokescreenDescription + dw ConfuseRayDescription + dw WithdrawDescription + dw DefenseCurlDescription + dw BarrierDescription + dw LightScreenDescription + dw HazeDescription + dw ReflectDescription + dw FocusEnergyDescription + dw BideDescription + dw MetronomeDescription + dw MirrorMoveDescription + dw SelfdestructDescription + dw EggBombDescription + dw LickDescription + dw SmogDescription + dw SludgeDescription + dw BoneClubDescription + dw FireBlastDescription + dw WaterfallDescription + dw ClampDescription + dw SwiftDescription + dw SkullBashDescription + dw SpikeCannonDescription + dw ConstrictDescription + dw AmnesiaDescription + dw KinesisDescription + dw SoftboiledDescription + dw HiJumpKickDescription + dw GlareDescription + dw DreamEaterDescription + dw PoisonGasDescription + dw BarrageDescription + dw LeechLifeDescription + dw LovelyKissDescription + dw SkyAttackDescription + dw TransformDescription + dw BubbleDescription + dw DizzyPunchDescription + dw SporeDescription + dw FlashDescription + dw PsywaveDescription + dw SplashDescription + dw AcidArmorDescription + dw CrabhammerDescription + dw ExplosionDescription + dw FurySwipesDescription + dw BonemerangDescription + dw RestDescription + dw RockSlideDescription + dw HyperFangDescription + dw SharpenDescription + dw ConversionDescription + dw TriAttackDescription + dw SuperFangDescription + dw SlashDescription + dw SubstituteDescription + dw StruggleDescription + dw SketchDescription + dw TripleKickDescription + dw ThiefDescription + dw SpiderWebDescription + dw MindReaderDescription + dw NightmareDescription + dw FlameWheelDescription + dw SnoreDescription + dw CurseDescription + dw FlailDescription + dw Conversion2Description + dw AeroblastDescription + dw CottonSporeDescription + dw ReversalDescription + dw SpiteDescription + dw PowderSnowDescription + dw ProtectDescription + dw MachPunchDescription + dw ScaryFaceDescription + dw FaintAttackDescription + dw SweetKissDescription + dw BellyDrumDescription + dw SludgeBombDescription + dw MudSlapDescription + dw OctazookaDescription + dw SpikesDescription + dw ZapCannonDescription + dw ForesightDescription + dw DestinyBondDescription + dw PerishSongDescription + dw IcyWindDescription + dw DetectDescription + dw BoneRushDescription + dw LockOnDescription + dw OutrageDescription + dw SandstormDescription + dw GigaDrainDescription + dw EndureDescription + dw CharmDescription + dw RolloutDescription + dw FalseSwipeDescription + dw SwaggerDescription + dw MilkDrinkDescription + dw SparkDescription + dw FuryCutterDescription + dw SteelWingDescription + dw MeanLookDescription + dw AttractDescription + dw SleepTalkDescription + dw HealBellDescription + dw ReturnDescription + dw PresentDescription + dw FrustrationDescription + dw SafeguardDescription + dw PainSplitDescription + dw SacredFireDescription + dw MagnitudeDescription + dw DynamicpunchDescription + dw MegahornDescription + dw DragonbreathDescription + dw BatonPassDescription + dw EncoreDescription + dw PursuitDescription + dw RapidSpinDescription + dw SweetScentDescription + dw IronTailDescription + dw MetalClawDescription + dw VitalThrowDescription + dw MorningSunDescription + dw SynthesisDescription + dw MoonlightDescription + dw HiddenPowerDescription + dw CrossChopDescription + dw TwisterDescription + dw RainDanceDescription + dw SunnyDayDescription + dw CrunchDescription + dw MirrorCoatDescription + dw PsychUpDescription + dw ExtremespeedDescription + dw AncientpowerDescription + dw ShadowBallDescription + dw FutureSightDescription + dw RockSmashDescription + dw WhirlpoolDescription + dw BeatUpDescription + dw MoveFCDescription + dw MoveFDDescription + dw MoveFEDescription + dw MoveFFDescription + dw Move00Description +; 2cd52 + +MoveFCDescription: +MoveFDDescription: +MoveFEDescription: +MoveFFDescription: +Move00Description: +UnknownMoveDescription: + db "?@" + +PoundDescription: db "Pounds with fore-", $4e, "legs or tail.@" +KarateChopDescription: db "Has a high criti-", $4e, "cal hit ratio.@" +DoubleslapDescription: db "Repeatedly slaps", $4e, "2-5 times.@" +CometPunchDescription: db "Repeatedly punches", $4e, "2-5 times.@" +MegaPunchDescription: db "A powerful punch", $4e, "thrown very hard.@" +PayDayDescription: db "Throws coins. Gets", $4e, "them back later.@" +FirePunchDescription: db "A fiery punch. May", $4e, "cause a burn.@" +IcePunchDescription: db "An icy punch. May", $4e, "cause freezing.@" +ThunderpunchDescription: db "An electric punch.", $4e, "It may paralyze.@" +ScratchDescription: db "Scratches with", $4e, "sharp claws.@" +VicegripDescription: db "Grips with power-", $4e, "ful pincers.@" +GuillotineDescription: db "A one-hit KO,", $4e, "pincer attack.@" +RazorWindDescription: db "1st turn: Prepare", $4e, "2nd turn: Attack@" +SwordsDanceDescription: db "A dance that in-", $4e, "creases ATTACK.@" +CutDescription: db "Cuts using claws,", $4e, "scythes, etc.@" +GustDescription: db "Whips up a strong", $4e, "gust of wind.@" +WingAttackDescription: db "Strikes the target", $4e, "with wings.@" +WhirlwindDescription: db "Blows away the foe", $4e, "& ends battle.@" +FlyDescription: db "1st turn: Fly", $4e, "2nd turn: Attack@" +BindDescription: db "Binds the target", $4e, "for 2-5 turns.@" +SlamDescription: db "Slams the foe with", $4e, "a tail, vine, etc.@" +VineWhipDescription: db "Whips the foe with", $4e, "slender vines.@" +StompDescription: db "An attack that may", $4e, "cause flinching.@" +DoubleKickDescription: db "A double kicking", $4e, "attack.@" +MegaKickDescription: db "A powerful kicking", $4e, "attack.@" +JumpKickDescription: db "May miss, damaging", $4e, "the user.@" +RollingKickDescription: db "A fast, spinning", $4e, "kick.@" +SandAttackDescription: db "Reduces accuracy", $4e, "by throwing sand.@" +HeadbuttDescription: db "An attack that may", $4e, "make foe flinch.@" +HornAttackDescription: db "An attack using a", $4e, "horn to jab.@" +FuryAttackDescription: db "Jabs the target", $4e, "2-5 times.@" +HornDrillDescription: db "A one-hit KO,", $4e, "drill attack.@" +TackleDescription: db "A full-body charge", $4e, "attack.@" +BodySlamDescription: db "An attack that may", $4e, "cause paralysis.@" +WrapDescription: db "Squeezes the foe", $4e, "for 2-5 turns.@" +TakeDownDescription: db "A tackle that also", $4e, "hurts the user.@" +ThrashDescription: db "Works 2-3 turns", $4e, "and confuses user.@" +DoubleEdgeDescription: db "A tackle that also", $4e, "hurts the user.@" +TailWhipDescription: db "Lowers the foe's", $4e, "DEFENSE.@" +PoisonStingDescription: db "An attack that may", $4e, "poison the target.@" +TwineedleDescription: db "Jabs the foe twice", $4e, "using stingers.@" +PinMissileDescription: db "Fires pins that", $4e, "strike 2-5 times.@" +LeerDescription: db "Reduces the foe's", $4e, "DEFENSE.@" +BiteDescription: db "An attack that may", $4e, "cause flinching.@" +GrowlDescription: db "Reduces the foe's", $4e, "ATTACK.@" +RoarDescription: db "Scares wild foes", $4e, "to end battle.@" +SingDescription: db "May cause the foe", $4e, "to fall asleep.@" +SupersonicDescription: db "Sound waves that", $4e, "cause confusion.@" +SonicboomDescription: db "Always inflicts", $4e, "20HP damage.@" +DisableDescription: db "Disables the foe's", $4e, "most recent move.@" +AcidDescription: db "An attack that may", $4e, "lower DEFENSE.@" +EmberDescription: db "An attack that may", $4e, "inflict a burn.@" +FlamethrowerDescription: db "An attack that may", $4e, "inflict a burn.@" +MistDescription: db "Prevents stat", $4e, "reduction.@" +WaterGunDescription: db "Squirts water to", $4e, "attack.@" +HydroPumpDescription: db "A powerful water-", $4e, "type attack.@" +SurfDescription: db "A strong water-", $4e, "type attack.@" +IceBeamDescription: db "An attack that may", $4e, "freeze the foe.@" +BlizzardDescription: db "An attack that may", $4e, "freeze the foe.@" +PsybeamDescription: db "An attack that may", $4e, "confuse the foe.@" +BubblebeamDescription: db "An attack that may", $4e, "lower SPEED.@" +AuroraBeamDescription: db "An attack that may", $4e, "lower ATTACK.@" +HyperBeamDescription: db "1st turn: Attack", $4e, "2nd turn: Rest@" +PeckDescription: db "Jabs the foe with", $4e, "a beak, etc.@" +DrillPeckDescription: db "A strong, spin-", $4e, "ning-peck attack.@" +SubmissionDescription: db "An attack that al-", $4e, "so hurts the user.@" +LowKickDescription: db "An attack that may", $4e, "cause flinching.@" +CounterDescription: db "Returns a physical", $4e, "blow double.@" +SeismicTossDescription: db "The user's level", $4e, "equals damage HP.@" +StrengthDescription: db "A powerful physi-", $4e, "cal attack.@" +AbsorbDescription: db "Steals 1/2 of the", $4e, "damage inflicted.@" +MegaDrainDescription: db "Steals 1/2 of the", $4e, "damage inflicted.@" +LeechSeedDescription: db "Steals HP from the", $4e, "foe on every turn.@" +GrowthDescription: db "Raises the SPCL.", $4e, "ATK rating.@" +RazorLeafDescription: db "Has a high criti-", $4e, "cal hit ratio.@" +SolarbeamDescription: db "1st turn: Prepare", $4e, "2nd turn: Attack@" +PoisonpowderDescription: db "A move that may", $4e, "poison the foe.@" +StunSporeDescription: db "A move that may", $4e, "paralyze the foe.@" +SleepPowderDescription: db "May cause the foe", $4e, "to fall asleep.@" +PetalDanceDescription: db "Works 2-3 turns", $4e, "and confuses user.@" +StringShotDescription: db "A move that lowers", $4e, "the foe's SPEED.@" +DragonRageDescription: db "Always inflicts", $4e, "40HP damage.@" +FireSpinDescription: db "Traps foe in fire", $4e, "for 2-5 turns.@" +ThundershockDescription: db "An attack that may", $4e, "cause paralysis.@" +ThunderboltDescription: db "An attack that may", $4e, "cause paralysis.@" +ThunderWaveDescription: db "A move that may", $4e, "cause paralysis.@" +ThunderDescription: db "An attack that may", $4e, "cause paralysis.@" +RockThrowDescription: db "Drops rocks on the", $4e, "enemy.@" +EarthquakeDescription: db "Tough but useless", $4e, "vs. flying foes.@" +FissureDescription: db "A ground-type,", $4e, "one-hit KO attack.@" +DigDescription: db "1st turn: Burrow", $4e, "2nd turn: Attack@" +ToxicDescription: db "A poison move with", $4e, "increasing damage.@" +ConfusionDescription: db "An attack that may", $4e, "cause confusion.@" +PsychicMDescription: db "An attack that may", $4e, "lower SPCL.DEF.@" +HypnosisDescription: db "May put the foe to", $4e, "sleep.@" +MeditateDescription: db "Raises the user's", $4e, "ATTACK.@" +AgilityDescription: db "Sharply increases", $4e, "the user's SPEED.@" +QuickAttackDescription: db "Lets the user get", $4e, "in the first hit.@" +RageDescription: db "Raises ATTACK if", $4e, "the user is hit.@" +TeleportDescription: db "A move for fleeing", $4e, "from battle.@" +NightShadeDescription: db "The user's level", $4e, "equals damage HP.@" +MimicDescription: db "Copies a move used", $4e, "by the foe.@" +ScreechDescription: db "Sharply reduces", $4e, "the foe's DEFENSE.@" +DoubleTeamDescription: db "Heightens evasive-", $4e, "ness.@" +RecoverDescription: db "Restores HP by 1/2", $4e, "the max HP.@" +HardenDescription: db "Raises the user's", $4e, "DEFENSE.@" +MinimizeDescription: db "Heightens evasive-", $4e, "ness.@" +SmokescreenDescription: db "Lowers the foe's", $4e, "accuracy.@" +ConfuseRayDescription: db "A move that causes", $4e, "confusion.@" +WithdrawDescription: db "Heightens the", $4e, "user's DEFENSE.@" +DefenseCurlDescription: db "Heightens the", $4e, "user's DEFENSE.@" +BarrierDescription: db "Sharply increases", $4e, "user's DEFENSE.@" +LightScreenDescription: db "Ups SPCL.DEF with", $4e, "a wall of light.@" +HazeDescription: db "Eliminates all", $4e, "stat changes.@" +ReflectDescription: db "Raises DEFENSE", $4e, "with a barrier.@" +FocusEnergyDescription: db "Raises the criti-", $4e, "cal hit ratio.@" +BideDescription: db "Waits 2-3 turns &", $4e, "hits back double.@" +MetronomeDescription: db "Randomly uses any", $4e, "#MON move.@" +MirrorMoveDescription: db "Counters with the", $4e, "same move.@" +SelfdestructDescription: db "Powerful but makes", $4e, "the user faint.@" +EggBombDescription: db "Eggs are hurled at", $4e, "the foe.@" +LickDescription: db "An attack that may", $4e, "cause paralysis.@" +SmogDescription: db "An attack that may", $4e, "poison the foe.@" +SludgeDescription: db "An attack that may", $4e, "poison the foe.@" +BoneClubDescription: db "An attack that may", $4e, "cause flinching.@" +FireBlastDescription: db "An attack that", $4e, "may cause a burn.@" +WaterfallDescription: db "An aquatic charge", $4e, "attack.@" +ClampDescription: db "Traps the foe for", $4e, "2-5 turns.@" +SwiftDescription: db "An attack that", $4e, "never misses.@" +SkullBashDescription: db "1st turn: Prepare", $4e, "2nd turn: Attack@" +SpikeCannonDescription: db "Fires spikes to", $4e, "hit 2-5 times.@" +ConstrictDescription: db "An attack that may", $4e, "lower SPEED.@" +AmnesiaDescription: db "Sharply raises the", $4e, "user's SPCL.DEF.@" +KinesisDescription: db "Reduces the foe's", $4e, "accuracy.@" +SoftboiledDescription: db "Restores HP by 1/2", $4e, "the user's max HP.@" +HiJumpKickDescription: db "May miss and hurt", $4e, "the user.@" +GlareDescription: db "A move that may", $4e, "cause paralysis.@" +DreamEaterDescription: db "Steals HP from a", $4e, "sleeping victim.@" +PoisonGasDescription: db "A move that may", $4e, "poison the foe.@" +BarrageDescription: db "Throws orbs to hit", $4e, "2-5 times.@" +LeechLifeDescription: db "Steals 1/2 of the", $4e, "damage inflicted.@" +LovelyKissDescription: db "May cause the foe", $4e, "to fall asleep.@" +SkyAttackDescription: db "1st turn: Prepare", $4e, "2nd turn: Attack@" +TransformDescription: db "The user assumes", $4e, "the foe's guise.@" +BubbleDescription: db "An attack that may", $4e, "reduce SPEED.@" +DizzyPunchDescription: db "An attack that may", $4e, "cause confusion.@" +SporeDescription: db "A move that", $4e, "induces sleep.@" +FlashDescription: db "Blinds the foe to", $4e, "reduce accuracy.@" +PsywaveDescription: db "An attack with", $4e, "variable power.@" +SplashDescription: db "Has no effect", $4e, "whatsoever.@" +AcidArmorDescription: db "Sharply raises the", $4e, "user's DEFENSE.@" +CrabhammerDescription: db "Has a high criti-", $4e, "cal hit ratio.@" +ExplosionDescription: db "Very powerful but", $4e, "makes user faint.@" +FurySwipesDescription: db "Quickly scratches", $4e, "2-5 times.@" +BonemerangDescription: db "An attack that", $4e, "strikes twice.@" +RestDescription: db "Sleep for 2 turns", $4e, "to fully recover.@" +RockSlideDescription: db "An attack that may", $4e, "cause flinching.@" +HyperFangDescription: db "An attack that may", $4e, "cause flinching.@" +SharpenDescription: db "A move that raises", $4e, "the user's ATTACK.@" +ConversionDescription: db "Change user's type", $4e, "to a move's type.@" +TriAttackDescription: db "Fires three kinds", $4e, "of beams at once.@" +SuperFangDescription: db "Cuts the foe's HP", $4e, "by 1/2.@" +SlashDescription: db "Has a high criti-", $4e, "cal hit ratio.@" +SubstituteDescription: db "Makes a decoy with", $4e, "1/4 user's max HP.@" +StruggleDescription: db "Used only if all", $4e, "PP are exhausted.@" +SketchDescription: db "Copies the foe's", $4e, "move permanently.@" +TripleKickDescription: db "Hits three times", $4e, "with rising power.@" +ThiefDescription: db "An attack that may", $4e, "steal a held item.@" +SpiderWebDescription: db "Prevents fleeing", $4e, "or switching.@" +MindReaderDescription: db "Ensures the next", $4e, "attack will hit.@" +NightmareDescription: db "A sleeper loses", $4e, "1/4 HP every turn.@" +FlameWheelDescription: db "An attack that may", $4e, "cause a burn.@" +SnoreDescription: db "An attack useable", $4e, "only while asleep.@" +CurseDescription: db "Works differently", $4e, "for ghost-types.@" +FlailDescription: db "Stronger if the", $4e, "user's HP is low.@" +Conversion2Description: db "The user's type is", $4e, "made resistant.@" +AeroblastDescription: db "Has a high criti-", $4e, "cal hit ratio.@" +CottonSporeDescription: db "Sharply reduces", $4e, "the foe's SPEED.@" +ReversalDescription: db "Stronger if the", $4e, "user's HP is low.@" +SpiteDescription: db "Cuts the PP of the", $4e, "foe's last move.@" +PowderSnowDescription: db "An attack that may", $4e, "cause freezing.@" +ProtectDescription: db "Foils attack that", $4e, "turn. It may fail.@" +MachPunchDescription: db "A fast punch that", $4e, "lands first.@" +ScaryFaceDescription: db "Sharply reduces", $4e, "the foe's SPEED.@" +FaintAttackDescription: db "An attack that", $4e, "never misses.@" +SweetKissDescription: db "A move that causes", $4e, "confusion.@" +BellyDrumDescription: db "Reduces own HP to", $4e, "maximize ATTACK.@" +SludgeBombDescription: db "An attack that may", $4e, "poison the foe.@" +MudSlapDescription: db "Reduces the foe's", $4e, "accuracy.@" +OctazookaDescription: db "An attack that may", $4e, "reduce accuracy.@" +SpikesDescription: db "Hurts foes when", $4e, "they switch out.@" +ZapCannonDescription: db "An attack that", $4e, "always paralyzes.@" +ForesightDescription: db "Negates accuracy", $4e, "reduction moves.@" +DestinyBondDescription: db "The foe faints if", $4e, "the user does.@" +PerishSongDescription: db "Both user and foe", $4e, "faint in 3 turns.@" +IcyWindDescription: db "An icy attack that", $4e, "lowers SPEED.@" +DetectDescription: db "Evades attack that", $4e, "turn. It may fail.@" +BoneRushDescription: db "An attack that", $4e, "hits 2-5 times.@" +LockOnDescription: db "Ensures the next", $4e, "attack will hit.@" +OutrageDescription: db "Works 2-3 turns", $4e, "and confuses user.@" +SandstormDescription: db "Inflicts damage", $4e, "every turn.@" +GigaDrainDescription: db "Steals 1/2 of the", $4e, "damage inflicted.@" +EndureDescription: db "Always leaves at", $4e, "least 1HP.@" +CharmDescription: db "Sharply lowers the", $4e, "foe's ATTACK.@" +RolloutDescription: db "Attacks 5 turns", $4e, "with rising power.@" +FalseSwipeDescription: db "Leaves the foe", $4e, "with at least 1HP.@" +SwaggerDescription: db "Causes confusion", $4e, "and raises ATTACK.@" +MilkDrinkDescription: db "Restores HP by 1/2", $4e, "the max HP.@" +SparkDescription: db "An attack that may", $4e, "cause paralysis.@" +FuryCutterDescription: db "Successive hits", $4e, "raise power.@" +SteelWingDescription: db "Stiff wings strike", $4e, "the foe.@" +MeanLookDescription: db "Prevents fleeing", $4e, "or switching.@" +AttractDescription: db "Makes the opposite", $4e, "gender infatuated.@" +SleepTalkDescription: db "Randomly attacks", $4e, "while asleep.@" +HealBellDescription: db "Eliminates all", $4e, "status problems.@" +ReturnDescription: db "An attack that is", $4e, "based on loyalty.@" +PresentDescription: db "A bomb that may", $4e, "restore HP.@" +FrustrationDescription: db "An attack based on", $4e, "lack of loyalty.@" +SafeguardDescription: db "Prevents all", $4e, "status problems.@" +PainSplitDescription: db "Adds user & foe's", $4e, "HPs. Shares total.@" +SacredFireDescription: db "An attack that may", $4e, "inflict a burn.@" +MagnitudeDescription: db "A ground attack", $4e, "with random power.@" +DynamicpunchDescription: db "An attack that", $4e, "always confuses.@" +MegahornDescription: db "A powerful charge", $4e, "attack.@" +DragonbreathDescription: db "A strong breath", $4e, "attack.@" +BatonPassDescription: db "Switches while", $4e, "keeping effects.@" +EncoreDescription: db "Makes the foe re-", $4e, "peat 2-6 times.@" +PursuitDescription: db "Heavily strikes", $4e, "switching #MON.@" +RapidSpinDescription: db "A high-speed", $4e, "spinning attack.@" +SweetScentDescription: db "Reduces the foe's", $4e, "evasiveness.@" +IronTailDescription: db "An attack that may", $4e, "reduce DEFENSE.@" +MetalClawDescription: db "An attack that may", $4e, "up user's ATTACK.@" +VitalThrowDescription: db "A 2nd-strike move", $4e, "that never misses.@" +MorningSunDescription: db "Restores HP", $4e, "(varies by time).@" +SynthesisDescription: db "Restores HP", $4e, "(varies by time).@" +MoonlightDescription: db "Restores HP", $4e, "(varies by time).@" +HiddenPowerDescription: db "The power varies", $4e, "with the #MON.@" +CrossChopDescription: db "Has a high criti-", $4e, "cal hit ratio.@" +TwisterDescription: db "Whips up a tornado", $4e, "to attack.@" +RainDanceDescription: db "Boosts water-type", $4e, "moves for 5 turns.@" +SunnyDayDescription: db "Boosts fire-type", $4e, "moves for 5 turns.@" +CrunchDescription: db "An attack that may", $4e, "lower SPCL.DEF.@" +MirrorCoatDescription: db "Counters a SPCL.", $4e, "ATK move double.@" +PsychUpDescription: db "Copies the foe's", $4e, "stat changes.@" +ExtremespeedDescription: db "A powerful first-", $4e, "strike move.@" +AncientpowerDescription: db "An attack that may", $4e, "raise all stats.@" +ShadowBallDescription: db "An attack that may", $4e, "lower SPCL.DEF.@" +FutureSightDescription: db "An attack that", $4e, "hits on 3rd turn.@" +RockSmashDescription: db "An attack that may", $4e, "lower DEFENSE.@" +WhirlpoolDescription: db "Traps the foe for", $4e, "2-5 turns.@" +BeatUpDescription: db "Party #MON join", $4e, "in the attack.@" +; 2ed44 diff --git a/main.asm b/main.asm index f7ff80f5e..90b1b96f7 100644 --- a/main.asm +++ b/main.asm @@ -30205,7 +30205,32 @@ Function2c7fb: ; 2c7fb jr .asm_2c821 ; 2c867 -INCBIN "baserom.gbc", $2c867, $2ee6c - $2c867 + +INCBIN "baserom.gbc", $2c867, $2cb3e - $2c867 + + +PrintMoveDescription: ; 2cb3e + push hl + ld hl, MoveDescriptions + ld a, [CurSpecies] + dec a + ld c, a + ld b, 0 + add hl, bc + add hl, bc + ld a, [hli] + ld e, a + ld d, [hl] + pop hl + jp PlaceString +; 2cb52 + +MoveDescriptions: ; 2cb52 +INCLUDE "battle/moves/move_descriptions.asm" +; 2ed44 + + +INCBIN "baserom.gbc", $2ed44, $2ee6c - $2ed44 PlayBattleMusic: ; 2ee6c From a0d54cce5156abf3c4b77dc57303e384b8756792 Mon Sep 17 00:00:00 2001 From: yenatch Date: Sun, 28 Jul 2013 03:12:03 -0400 Subject: [PATCH 20/84] couple bank e functions --- main.asm | 3971 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 3951 insertions(+), 20 deletions(-) diff --git a/main.asm b/main.asm index 90b1b96f7..701be7c05 100644 --- a/main.asm +++ b/main.asm @@ -8916,7 +8916,21 @@ Function306b: ; 306b ret ; 307b -INCBIN "baserom.gbc", $307b, $309d - $307b +Function307b: ; 307b + ld [hBuffer], a + ld a, [rSVBK] + push af + ld a, [hBuffer] + ld [rSVBK], a + ld a, [hl] + ld [hBuffer], a + pop af + ld [rSVBK], a + ld a, [hBuffer] + ret +; 308d + +INCBIN "baserom.gbc", $308d, $309d - $308d Function309d: ; 309d @@ -10359,7 +10373,17 @@ Function3786: ; 3786 ret ; 37b6 -INCBIN "baserom.gbc", $37b6, $37ce - $37b6 +Function37b6: ; 37b6 + push af + ld a, $1 + ld [$c2bc], a + pop af + call Function37e2 + call WaitSFX + ret +; 37c4 + +INCBIN "baserom.gbc", $37c4, $37ce - $37c4 Function37ce: ; 37ce @@ -18206,7 +18230,26 @@ Function8d55: ; 8d55 ret ; 8d59 -INCBIN "baserom.gbc", $8d59, $9610 - $8d59 +INCBIN "baserom.gbc", $8d59, $8e85 - $8d59 + + +Function8e85: ; 8e85 + ld a, $40 + ld hl, $4dc0 + rst FarCall + ld hl, $7311 + jr nc, .asm_8e93 + ld hl, $7309 + +.asm_8e93 + ld de, $d038 + ld bc, $0008 + ld a, $5 + call Function306b + ret +; 8e9f + +INCBIN "baserom.gbc", $8e9f, $9610 - $8e9f Function9610: ; 9610 @@ -30078,7 +30121,256 @@ INCBIN "gfx/misc/dude.lz" SECTION "bankB",DATA,BANK[$B] -INCBIN "baserom.gbc", $2C000, $2c1ef - $2C000 +INCBIN "baserom.gbc", $2c000, $2c059 - $2c000 + + +Function2c059: ; 2c059 + ld a, [de] + push af + ld de, MagikarpLength + ld c, $6 + ld a, $34 +.asm_2c062 + ld [de], a + inc de + dec c + jr nz, .asm_2c062 + pop af + ld de, MagikarpLength +.asm_2c06b + push af + call $4075 + inc de + pop af + dec a + jr nz, .asm_2c06b + ret +; 2c075 + +Function2c075: ; 2c075 + ld a, [hli] + and a + jr nz, .asm_2c07f + ld a, [hl] + and a + ld b, $33 + jr z, .asm_2c08b + +.asm_2c07f + dec hl + dec hl + dec hl + ld a, [hl] + and a + ld b, $32 + jr nz, .asm_2c08e + dec b + jr .asm_2c08e + +.asm_2c08b + dec hl + dec hl + dec hl + +.asm_2c08e + ld a, b + ld [de], a + ld bc, $0032 + add hl, bc + ret +; 2c095 + +Function2c095: ; 2c095 + ld hl, .data_2c0a9 + ld de, $d004 + ld bc, $0004 + call CopyBytes + ld hl, $c57a + ld de, rIE + jr .asm_2c0f1 + +.data_2c0a9 + db $73 + db $77 + db $6f + db $76 + db $21 + db $c1 + db $40 + db $11 + db $4 + db $d0 + db $1 + db $4 + db $0 + db $cd + db $26 + db $30 + db $21 + db $7a + db $c5 + db $11 + db $ff + db $ff + db $18 + db $30 + db $73 + db $5c + db $6f + db $76 + db $21 + db $ed + db $40 + db $11 + db $4 + db $d0 + db $1 + db $4 + db $0 + db $cd + db $26 + db $30 + db $21 + db $c9 + db $c4 + db $11 + db $1 + db $0 + db $cd + db $f1 + db $40 + db $fa + db $2d + db $d2 + db $3d + db $c0 + db $fa + db $4 + db $d2 + db $3d + db $cd + db $93 + db $33 + db $c8 + db $21 + db $b5 + db $c4 + db $36 + db $5d + db $c9 + db $6d + db $74 + db $78 + db $76 + +.asm_2c0f1 + ld a, [$d004] + ld [hl], a + ld bc, $0014 + add hl, bc + ld a, [StartFlypoint] + ld [hl], a + ld b, $8 +.asm_2c0ff + add hl, de + ld a, [MovementBuffer] + ld [hl], a + dec b + jr nz, .asm_2c0ff + add hl, de + ld a, [EndFlypoint] + ld [hl], a + ret +; 2c10d + + + +Function2c10d: ; 2c10d + call $4165 + ld hl, PartyMon1CurHP + ld de, PartyCount + call $4059 + ld hl, $cfc4 + ld a, $50 + ld [hli], a + ld [hl], $40 + ld a, $8 + ld [$d003], a + ld hl, Sprites + call $4143 + ld hl, OTPartyMon1CurHP + ld de, OTPartyCount + call $4059 + ld hl, $cfc4 + ld a, $50 + ld [hli], a + ld [hl], $68 + ld hl, $c418 + jp $4143 +; 2c143 + +Function2c143: ; 2c143 + ld de, MagikarpLength + ld c, $6 +.asm_2c148 + ld a, [$cfc5] + ld [hli], a + ld a, [$cfc4] + ld [hli], a + ld a, [de] + ld [hli], a + ld a, $3 + ld [hli], a + ld a, [$cfc4] + ld b, a + ld a, [$d003] + add b + ld [$cfc4], a + inc de + dec c + jr nz, .asm_2c148 + ret +; 2c165 + +Function2c165: ; 2c165 + ld de, $4172 + ld hl, $8310 + ld bc, $0b04 + call Functiondc9 + ret +; 2c172 + +INCBIN "baserom.gbc", $2c172, $2c1b2 - $2c172 + + +Function2c1b2: ; 2c1b2 + call WhiteBGMap + call Functione5f + ld hl, $c4de + ld b, $9 + ld c, $e + call TextBox + ld hl, $c508 + ld de, PlayerName + call PlaceString + ld hl, $c56c + ld de, $d26b + call PlaceString + ld hl, $c549 + ld a, $69 + ld [hli], a + ld [hl], $6a + ld a, $b + ld hl, $410d + rst FarCall + ld b, $8 + call GetSGBLayout + call Function32f9 + ld a, $e4 + ld [rOBP0], a + ret +; 2c1ef + TrainerClassNames: ; 2c1ef db "LEADER@" @@ -30230,7 +30522,210 @@ INCLUDE "battle/moves/move_descriptions.asm" ; 2ed44 -INCBIN "baserom.gbc", $2ed44, $2ee6c - $2ed44 +Function2ed44: ; 2ed44 + call Function2ede6 + ld hl, PartyMon1PokerusStatus + ld a, [PartyCount] + ld b, a + ld de, $0030 +.asm_2ed51 + ld a, [hl] + and $f + jr nz, .asm_2ed9a + add hl, de + dec b + jr nz, .asm_2ed51 + ld hl, StatusFlags2 + bit 6, [hl] + ret z + call RNG + ld a, [hRandomAdd] + and a + ret nz + ld a, [hRandomSub] + cp $3 + ret nc + ld a, [PartyCount] + ld b, a +.asm_2ed70 + call RNG + and $7 + cp b + jr nc, .asm_2ed70 + ld hl, PartyMon1PokerusStatus + call GetPartyLocation + ld a, [hl] + and $f0 + ret nz +.asm_2ed82 + call RNG + and a + jr z, .asm_2ed82 + ld b, a + and $f0 + jr z, .asm_2ed91 + ld a, b + and $7 + inc a + +.asm_2ed91 + ld b, a + swap b + and $3 + inc a + add b + ld [hl], a + ret + +.asm_2ed9a + call RNG + cp $55 + ret nc + ld a, [PartyCount] + cp $1 + ret z + ld c, [hl] + ld a, b + cp $2 + jr c, .asm_2edc3 + call RNG + cp $80 + jr c, .asm_2edc3 +.asm_2edb3 + add hl, de + ld a, [hl] + and a + jr z, .asm_2edd9 + ld c, a + and $3 + ret z + dec b + ld a, b + cp $1 + jr nz, .asm_2edb3 + ret + +.asm_2edc3 + ld a, [PartyCount] + cp b + ret z + ld a, l + sub e + ld l, a + ld a, h + sbc d + ld h, a + ld a, [hl] + and a + jr z, .asm_2edd9 + ld c, a + and $3 + ret z + inc b + jr .asm_2edc3 + +.asm_2edd9 + ld a, c + and $f0 + ld b, a + ld a, c + swap a + and $3 + inc a + add b + ld [hl], a + ret +; 2ede6 + +Function2ede6: ; 2ede6 + ld hl, StatusFlags2 + bit 6, [hl] + ret z + call RNG + cp $10 + ret nc + ld hl, PartyMons + ld a, [PartyCount] +.asm_2edf8 + push af + push hl + ld a, [hl] + cp SHUCKLE + jr nz, .asm_2ee08 + ld bc, PartyMon1Item - PartyMon1Species + add hl, bc + ld a, [hl] + cp BERRY + jr z, .asm_2ee12 + +.asm_2ee08 + pop hl + ld bc, PartyMon2 - PartyMon1 + add hl, bc + pop af + dec a + jr nz, .asm_2edf8 + ret + +.asm_2ee12 + ld a, BERRY_JUICE + ld [hl], a + pop hl + pop af + ret +; 2ee18 + +Function2ee18: ; 2ee18 + ld a, [InLinkBattle] + and a + ret z + ld a, $b + ld hl, $41b2 + rst FarCall + ld c, 150 + call DelayFrames + call ClearTileMap + call ClearSprites + ret +; 2ee2f + +Function2ee2f: ; 2ee2f + xor a + ld [$ffde], a + call DelayFrame + ld b, $6 + ld hl, PartyMon1CurHP + ld de, $002f +.asm_2ee3d + ld a, [hli] + or [hl] + jr nz, .asm_2ee45 + add hl, de + dec b + jr nz, .asm_2ee3d + +.asm_2ee45 + ld de, $fffd + add hl, de + ld a, [hl] + ld [BattleMonLevel], a + ld a, $34 + call Predef + ld a, $f + ld hl, $6d9f + rst FarCall + ld a, $1 + ld [hBGMapMode], a + call ClearSprites + call ClearTileMap + xor a + ld [hBGMapMode], a + ld [$ffd2], a + ld [rWY], a + ld [$ffde], a + ret +; 2ee6c + PlayBattleMusic: ; 2ee6c @@ -30557,7 +31052,319 @@ INCLUDE "battle/effect_commands.asm" SECTION "bankE",DATA,BANK[$E] -INCBIN "baserom.gbc", $38000, $38591 - $38000 +Function38000: ; 38000 + and a + ld a, [IsInBattle] + dec a + ret z + ld a, [InLinkBattle] + and a + ret nz + ld a, $f + ld hl, $68d1 + rst FarCall + ret nz + ld a, [PlayerSubStatus5] + bit 7, a + jr nz, .asm_38041 + ld a, [$c731] + and a + jr nz, .asm_38041 + ld hl, $55a1 + ld a, [$cfc0] + and a + jr nz, .asm_38032 + ld a, [TrainerClass] + dec a + ld bc, $0007 + call AddNTimes + +.asm_38032 + bit 0, [hl] + jp nz, $4045 + bit 1, [hl] + jp nz, $4083 + bit 2, [hl] + jp nz, $40c1 + +.asm_38041 + call $4105 + ret +; 38045 + +Function38045: ; 38045 + callab Function34941 + ld a, [$c717] + and $f0 + jp z, $4041 + cp $10 + jr nz, .asm_38061 + call RNG + cp $80 + jr c, .asm_38077 + jp $4041 + +.asm_38061 + cp $20 + jr nz, .asm_3806f + call RNG + cp $c8 + jr c, .asm_38077 + jp $4041 + +.asm_3806f + call RNG + cp $a + jp c, $4041 + +.asm_38077 + ld a, [$c717] + and $f + inc a + ld [$c718], a + jp $444b +; 38083 + +Function38083: ; 38083 + callab Function34941 + ld a, [$c717] + and $f0 + jp z, $4041 + cp $10 + jr nz, .asm_3809f + call RNG + cp $14 + jr c, .asm_380b5 + jp $4041 + +.asm_3809f + cp $20 + jr nz, .asm_380ad + call RNG + cp $1e + jr c, .asm_380b5 + jp $4041 + +.asm_380ad + call RNG + cp $c8 + jp c, $4041 + +.asm_380b5 + ld a, [$c717] + and $f + inc a + ld [$c718], a + jp $444b +; 380c1 + +Function380c1: ; 380c1 + callab Function34941 + ld a, [$c717] + and $f0 + jp z, $4041 + cp $10 + jr nz, .asm_380dd + call RNG + cp $32 + jr c, .asm_380f3 + jp $4041 + +.asm_380dd + cp $20 + jr nz, .asm_380eb + call RNG + cp $80 + jr c, .asm_380f3 + jp $4041 + +.asm_380eb + call RNG + cp $32 + jp c, $4041 + +.asm_380f3 + ld a, [$c717] + and $f + inc a + ld [$c718], a + jp $444b +; 380ff + + +Function380ff: ; 380ff + ld a, [EnemySubStatus5] + bit 7, a + ret +; 38105 + + +Function38105: ; 38105 + ld a, [$cfc0] + and a + ret nz + ld a, [$c650] + ld b, a + ld a, [$c651] + or b + ret z + call Function38170 + ret nc + ld a, [TrainerClass] + dec a + ld hl, $55a1 + ld bc, $0007 + call AddNTimes + ld b, h + ld c, l + ld hl, $4196 + ld de, $c650 +.asm_3812c + ld a, [hl] + and a + inc a + ret z + ld a, [de] + cp [hl] + jr z, .asm_3813f + inc de + ld a, [de] + cp [hl] + jr z, .asm_3813f + dec de + inc hl + inc hl + inc hl + jr .asm_3812c + +.asm_3813f + inc hl + push hl + push de + ld de, $414a + push de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 3814a + +INCBIN "baserom.gbc", $3814a, $38170 - $3814a + + +Function38170: ; 38170 + ld a, [OTPartyCount] + ld d, a + ld e, $0 + ld hl, OTPartyMon1Level + ld bc, $0030 +.asm_3817c + ld a, [hl] + cp e + jr c, .asm_38181 + ld e, a +.asm_38181 + add hl, bc + dec d + jr nz, .asm_3817c + + ld a, [CurOTMon] + ld hl, OTPartyMon1Level + call AddNTimes + ld a, [hl] + cp e + jr nc, .asm_38194 + and a + ret + +.asm_38194 + scf + ret +; 38196 + +INCBIN "baserom.gbc", $38196, $3844b - $38196 + + +Function3844b: ; 3844b + ld a, [OTPartyCount] + ld c, a + ld hl, OTPartyMon1CurHP + ld d, 0 +.asm_38454 + ld a, [hli] + ld b, a + ld a, [hld] + or b + jr z, .asm_3845b + inc d + +.asm_3845b + push bc + ld bc, $0030 + add hl, bc + pop bc + dec c + jr nz, .asm_38454 + ld a, d + cp $2 + jp nc, $446c + and a + ret +; 3846c + +Function3846c: ; 3846c + ld a, $1 + ld [$c711], a + ld [$c70f], a + ld hl, EnemySubStatus4 + res 6, [hl] + xor a + ld [hBattleTurn], a + ld hl, $5c5b + ld a, $f + rst FarCall + push af + ld a, [CurOTMon] + ld hl, OTPartyMon1Status + ld bc, $0030 + call AddNTimes + ld d, h + ld e, l + ld hl, EnemyMonStatus + ld bc, $0004 + call CopyBytes + pop af + jr c, .asm_384a3 + ld hl, $44d0 + call PrintText + +.asm_384a3 + ld a, $1 + ld [$d264], a + ld hl, $5834 + ld a, $f + rst FarCall + ld hl, $5867 + ld a, $f + rst FarCall + ld hl, PlayerSubStatus1 + res 7, [hl] + ld a, $f + ld hl, $54e1 + rst FarCall + ld a, $f + ld hl, $557a + rst FarCall + xor a + ld [$d264], a + ld a, [InLinkBattle] + and a + ret nz + scf + ret +; 384d0 + +INCBIN "baserom.gbc", $384d0, $38591 - $384d0 AIScoring: ; 38591 @@ -30594,7 +31401,7 @@ Function39939: ; 39939 .asm_3996d dec c push bc - ld b, $0 + ld b, 0 ld hl, TrainerGroups add hl, bc add hl, bc @@ -30631,7 +31438,106 @@ INCLUDE "trainers/trainers.asm" SECTION "bankF",DATA,BANK[$F] -INCBIN "baserom.gbc", $3c000, $3cc83 - $3c000 +INCBIN "baserom.gbc", $3c000, $3c0e5 - $3c000 + + +Function3c0e5: ; 3c0e5 + call $30b4 + ld a, [$d0ee] + and $c0 + add $2 + ld [$d0ee], a + ld a, [InLinkBattle] + and a + ld hl, $47bd + jr z, .asm_3c115 + ld a, [$d0ee] + and $c0 + ld [$d0ee], a + ld hl, $47cf + call $52e0 + jr nc, .asm_3c115 + ld hl, $cd2a + bit 4, [hl] + jr nz, .asm_3c118 + ld hl, $5863 + +.asm_3c115 + call FarBattleTextBox + +.asm_3c118 + call $4eec + call $52e0 + jr c, .asm_3c126 + ld de, $002b + call StartSFX + +.asm_3c126 + call SetPlayerTurn + ld a, $1 + ld [BattleEnded], a + ret +; 3c12f + +INCBIN "baserom.gbc", $3c12f, $3c5ec - $3c12f + + +Function3c5ec: ; 3c5ec + ld a, b + dec a + ld hl, $5afc + ld bc, $0007 + call AddNTimes + ld a, $10 + call GetFarByte + ld b, a + ret +; 3c5fe + +INCBIN "baserom.gbc", $3c5fe, $3cc39 - $3c5fe + + +Function3cc39: ; 3cc39 + call $4c45 + jp $4d3c +; 3cc3f + +INCBIN "baserom.gbc", $3cc3f, $3cc45 - $3cc3f + + +Function3cc45: ; 3cc45 + ld hl, BattleMonHP + ld a, [hBattleTurn] + and a + jr z, .asm_3cc50 + ld hl, EnemyMonHPHi + +.asm_3cc50 + inc hl + ld a, [hl] + ld [$d1ec], a + sub c + ld [hld], a + ld [$d1ee], a + ld a, [hl] + ld [$d1ed], a + sbc b + ld [hl], a + ld [$d1ef], a + ret nc + ld a, [$d1ec] + ld c, a + ld a, [$d1ed] + ld b, a + xor a + ld [hli], a + ld [hl], a + ld [$d1ee], a + ld [$d1ef], a + ret +; 3cc76 + +INCBIN "baserom.gbc", $3cc76, $3cc83 - $3cc76 GetEighthMaxHP: ; 3cc83 ; output: bc @@ -30714,7 +31620,37 @@ GetMaxHP: ; 3ccac ; 3ccc2 -INCBIN "baserom.gbc", $3ccc2, $3d123 - $3ccc2 +INCBIN "baserom.gbc", $3ccc2, $3cd3c - $3ccc2 + + +Function3cd3c: ; 3cd3c + ld hl, $c55e + ld a, [hBattleTurn] + and a + ld a, $1 + jr z, .asm_3cd4a + ld hl, $c4ca + xor a + +.asm_3cd4a + push bc + ld [$d10a], a + ld a, $b + call Predef + pop bc + ret +; 3cd55 + +INCBIN "baserom.gbc", $3cd55, $3ceec - $3cd55 + + +Function3ceec: ; 3ceec + xor a + ld [Danger], a + ret +; 3cef1 + +INCBIN "baserom.gbc", $3cef1, $3d123 - $3cef1 ; These functions check if the current opponent is a gym leader or one of a @@ -30771,7 +31707,105 @@ KantoGymLeaders: db $ff -INCBIN "baserom.gbc", $3d14e, $3d38e - $3d14e +INCBIN "baserom.gbc", $3d14e, $3d2e0 - $3d14e + + +Function3d2e0: ; 3d2e0 + ld a, [InLinkBattle] + cp $4 + jr nz, .asm_3d2ef + ld a, [$cd2b] + and a + jr z, .asm_3d2ef + scf + ret + +.asm_3d2ef + xor a + ret +; 3d2f1 + +Function3d2f1: ; 3d2f1 + ld a, [InLinkBattle] + cp $4 + ret +; 3d2f7 + +Function3d2f7: ; 3d2f7 + call WhiteBGMap + callba Function5004f + callba Function50405 + ld a, $2 + ld hl, $4e85 + rst FarCall + callba Function503e0 + ret +; 3d313 + +Function3d313: ; 3d313 + callba WritePartyMenuTilemap + callba PrintPartyMenuText + call WaitBGMap + call Function32f9 + call DelayFrame + ret +; 3d329 + +Function3d329: ; 3d329 + call $52f1 + jr z, .asm_3d335 + callba PartyMenuSelect + ret + +.asm_3d335 + ld a, $40 + ld hl, $4cb5 + rst FarCall + ret +; 3d33c + +Function3d33c: ; 3d33c +.asm_3d33c + ld a, $2 + ld [PartyMenuActionText], a + call $5313 + call $5329 + ret c + call $5887 + jr z, .asm_3d33c + xor a + ret +; 3d34f + +Function3d34f: ; 3d34f + ld hl, CurBattleMon + ld a, [CurPartyMon] + cp [hl] + jr nz, .asm_3d360 + ld hl, $4c0d + call FarBattleTextBox + scf + ret + +.asm_3d360 + xor a + ret +; 3d362 + +INCBIN "baserom.gbc", $3d362, $3d375 - $3d362 + + +Function3d375: ; 3d375 +.asm_3d375 + call $533c + ret c + call $534f + jr c, .asm_3d375 + xor a + ret +; 3d380 + +INCBIN "baserom.gbc", $3d380, $3d38e - $3d380 LostBattle: ; 3d38e @@ -30875,7 +31909,749 @@ LostBattle: ; 3d38e ; 3d432 -INCBIN "baserom.gbc", $3d432, $3dabd - $3d432 +Function3d432: ; 3d432 + ld hl, $c510 + ld de, $c524 + jp $5444 +; 3d43b + +Function3d43b: ; 3d43b + ld hl, $c569 + ld de, $c57d + jp $5444 +; 3d444 + +Function3d444: ; 3d444 + ld a, [$cfbe] + push af + set 6, a + ld [$cfbe], a + ld b, $7 +.asm_3d44f + push bc + push de + push hl + ld b, $6 +.asm_3d454 + push bc + push hl + push de + ld bc, $0007 + call CopyBytes + pop de + pop hl + ld bc, $ffec + add hl, bc + push hl + ld h, d + ld l, e + add hl, bc + ld d, h + ld e, l + pop hl + pop bc + dec b + jr nz, .asm_3d454 + ld bc, $0014 + add hl, bc + ld de, $5488 + call PlaceString + ld c, $2 + call DelayFrames + pop hl + pop de + pop bc + dec b + jr nz, .asm_3d44f + pop af + ld [$cfbe], a + ret +; 3d488 + +INCBIN "baserom.gbc", $3d488, $3d490 - $3d488 + + +Function3d490: ; 3d490 + ld [hConnectionStripLength], a + ld c, a +.asm_3d493 + push bc + push hl + ld b, $7 +.asm_3d497 + push hl + call $54ae + pop hl + ld de, $0014 + add hl, de + dec b + jr nz, .asm_3d497 + ld c, $2 + call DelayFrames + pop hl + pop bc + dec c + jr nz, .asm_3d493 + ret +; 3d4ae + +Function3d4ae: ; 3d4ae + ld a, [hConnectionStripLength] + ld c, a + cp $8 + jr nz, .asm_3d4bc +.asm_3d4b5 + ld a, [hli] + ld [hld], a + dec hl + dec c + jr nz, .asm_3d4b5 + ret + +.asm_3d4bc + ld a, [hld] + ld [hli], a + inc hl + dec c + jr nz, .asm_3d4bc + ret +; 3d4c3 + +INCBIN "baserom.gbc", $3d4c3, $3d4e1 - $3d4c3 + + +Function3d4e1: ; 3d4e1 + call $5714 + jr nc, .asm_3d517 + call $5557 + call $5533 + jr c, .asm_3d4f1 + call $5599 + +.asm_3d4f1 + call $56ca + call $574b + push af + call $57a0 + call $57b8 + call $57c7 + pop af + ret c + xor a + ld [$c664], a + ld [$c6fc], a + ld [$d0ec], a + inc a + ld [$c711], a + call $309d + jp $63ad + +.asm_3d517 + call $5557 + call $5533 + jr c, .asm_3d522 + call $5599 + +.asm_3d522 + call $56ca + ld a, $1 + ld [$c711], a + call $57a0 + call $57b8 + jp $57c7 +; 3d533 + +Function3d533: ; 3d533 + ld a, [InLinkBattle] + and a + jr z, .asm_3d541 + ld a, [$d430] + sub $4 + ld b, a + jr .asm_3d555 + +.asm_3d541 + ld a, [$c718] + and a + jr z, .asm_3d54b + dec a + ld b, a + jr .asm_3d555 + +.asm_3d54b + ld a, [$d264] + and a + ld b, $0 + jr nz, .asm_3d555 + and a + ret + +.asm_3d555 + scf + ret +; 3d557 + +Function3d557: ; 3d557 + xor a + ld [LastEnemyCounterMove], a + ld [LastPlayerCounterMove], a + ld [LastEnemyMove], a + ld [CurEnemyMove], a + dec a + ld [$c6e6], a + xor a + ld [$c730], a + ld hl, $c4b2 + ld a, $8 + call $5490 + call $6dd1 + jp Function1d6e +; 3d57a + +Function3d57a: ; 3d57a + xor a + ld [$c664], a + ld [$c6fc], a + ld a, [CurBattleMon] + ld c, a + ld hl, $c664 + ld b, $1 + push bc + ld a, $3 + call Predef + pop bc + ld hl, $c6fc + ld a, $3 + jp Predef +; 3d599 + +Function3d599: ; 3d599 + ld b, $ff + ld a, $1 + ld [MagikarpLength], a + ld [Buffer2], a +.asm_3d5a3 + ld hl, MagikarpLength + sla [hl] + inc hl + sla [hl] + inc b + ld a, [OTPartyCount] + cp b + jp z, $5672 + ld a, [CurOTMon] + cp b + jr z, .asm_3d5d0 + ld hl, OTPartyMon1CurHP + push bc + ld a, b + call GetPartyLocation + ld a, [hli] + ld c, a + ld a, [hl] + or c + pop bc + jr z, .asm_3d5d0 + call $55d7 + call $5618 + jr .asm_3d5a3 + +.asm_3d5d0 + ld hl, Buffer2 + set 0, [hl] + jr .asm_3d5a3 +; 3d5d7 + +Function3d5d7: ; 3d5d7 + push bc + ld hl, OTPartyMon1Move1 + ld a, b + call GetPartyLocation + pop bc + ld e, $5 +.asm_3d5e2 + dec e + jr z, .asm_3d617 + ld a, [hli] + and a + jr z, .asm_3d617 + push hl + push de + push bc + dec a + ld hl, $5afb + ld bc, $0007 + call AddNTimes + ld de, EnemyMoveAnimation + ld a, $10 + call FarCopyBytes + call SetEnemyTurn + callab Function347c8 + pop bc + pop de + pop hl + ld a, [$d265] + cp $b + jr c, .asm_3d5e2 + ld hl, MagikarpLength + set 0, [hl] + ret + +.asm_3d617 + ret +; 3d618 + +Function3d618: ; 3d618 + push bc + ld hl, OTPartyCount + ld a, b + inc a + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + dec a + ld hl, $542b + ld bc, $0020 + call AddNTimes + ld de, EnemyMonType1 + ld bc, $0002 + ld a, $14 + call FarCopyBytes + ld a, [BattleMonType1] + ld [PlayerMoveType], a + call SetPlayerTurn + callab Function347c8 + ld a, [$d265] + cp $b + jr nc, .asm_3d663 + ld a, [BattleMonType2] + ld [PlayerMoveType], a + callab Function347c8 + ld a, [$d265] + cp $b + jr nc, .asm_3d663 + pop bc + ret + +.asm_3d663 + pop bc + ld hl, MagikarpLength + bit 0, [hl] + jr nz, .asm_3d66f + inc hl + set 0, [hl] + ret + +.asm_3d66f + res 0, [hl] + ret +; 3d672 + +Function3d672: ; 3d672 +.asm_3d672 + ld hl, MagikarpLength + sla [hl] + inc hl + sla [hl] + jr nc, .asm_3d672 + ld a, [OTPartyCount] + ld b, a + ld c, [hl] +.asm_3d681 + sla c + jr nc, .asm_3d68a + dec b + jr z, .asm_3d6a7 + jr .asm_3d681 + +.asm_3d68a + ld a, [MagikarpLength] + and a + jr z, .asm_3d69a + ld b, $ff + ld c, a +.asm_3d693 + inc b + sla c + jr nc, .asm_3d693 + jr .asm_3d6c9 + +.asm_3d69a + ld b, $ff + ld a, [Buffer2] + ld c, a +.asm_3d6a0 + inc b + sla c + jr c, .asm_3d6a0 + jr .asm_3d6c9 + +.asm_3d6a7 + ld a, [OTPartyCount] + ld b, a + call FarBattleRNG + and $7 + cp b + jr nc, .asm_3d6a7 + ld b, a + ld a, [CurOTMon] + cp b + jr z, .asm_3d6a7 + ld hl, OTPartyMon1CurHP + push bc + ld a, b + call GetPartyLocation + pop bc + ld a, [hli] + ld c, a + ld a, [hl] + or c + jr z, .asm_3d6a7 + +.asm_3d6c9 + ret +; 3d6ca + +Function3d6ca: ; 3d6ca + ld a, b + ld [CurPartyMon], a + ld hl, OTPartyMon1Level + call GetPartyLocation + ld a, [hl] + ld [CurPartyLevel], a + ld a, [CurPartyMon] + inc a + ld hl, OTPartyCount + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + ld [TempEnemyMonSpecies], a + ld [CurPartySpecies], a + call LoadEnemyMon + ld a, [CurPartySpecies] + cp $c9 + jr nz, .asm_3d708 + ld a, [$def4] + and a + jr nz, .asm_3d708 + ld hl, EnemyMonAtkDefDV + ld a, $2d + call Predef + ld a, [UnownLetter] + ld [$def4], a + +.asm_3d708 + ld hl, EnemyMonHPHi + ld a, [hli] + ld [$c6ea], a + ld a, [hl] + ld [$c6eb], a + ret +; 3d714 + +Function3d714: ; 3d714 + ld a, [$d264] + dec a + jp z, $5749 + ld a, [PartyCount] + dec a + jp z, $5749 + ld a, [InLinkBattle] + and a + jp nz, $5749 + ld a, [Options] + bit 6, a + jr nz, .asm_3d749 + ld a, [CurPartyMon] + push af + ld a, [CurBattleMon] + ld [CurPartyMon], a + callba Functione538 + pop bc + ld a, b + ld [CurPartyMon], a + jr c, .asm_3d749 + scf + ret + +.asm_3d749 + and a + ret +; 3d74b + +Function3d74b: ; 3d74b + ld a, [CurPartyMon] + push af + callab Function39939 + ld hl, $4aca + call FarBattleTextBox + ld bc, $0107 + call $1dd2 + ld a, [$cfa9] + dec a + jr nz, .asm_3d79a + call $52f7 + call $5375 + jr c, .asm_3d791 + ld a, [CurBattleMon] + ld [$c71a], a + ld a, [CurPartyMon] + ld [CurBattleMon], a + call ClearPalettes + call DelayFrame + call $6da6 + pop af + ld [CurPartyMon], a + xor a + ld [CurEnemyMove], a + ld [CurPlayerMove], a + and a + ret + +.asm_3d791 + call ClearPalettes + call DelayFrame + call $6da6 + +.asm_3d79a + pop af + ld [CurPartyMon], a + scf + ret +; 3d7a0 + +Function3d7a0: ; 3d7a0 + xor a + ld [hBGMapMode], a + call Function1c07 + call ClearSprites + ld hl, $c4a1 + ld bc, $040a + call ClearBox + call WaitBGMap + jp $6e27 +; 3d7b8 + +Function3d7b8: ; 3d7b8 + callab Function39939 + ld hl, $4af8 + call FarBattleTextBox + jp WaitBGMap +; 3d7c7 + +Function3d7c7: ; 3d7c7 + ld a, [TempEnemyMonSpecies] + ld [CurPartySpecies], a + ld [CurSpecies], a + call GetBaseData + ld a, $1 + ld [MonType], a + ld a, $1f + call Predef + call $747c + xor a + ld [$cfca], a + ld [$c689], a + call SetEnemyTurn + ld de, $0101 + call $6e17 + call $5a79 + jr nc, .asm_3d800 + ld a, $1 + ld [$c689], a + ld de, $0101 + call $6e17 + +.asm_3d800 + ld bc, TempMonSpecies + callba Function4e53f + jr c, .asm_3d82c + ld a, $13 + ld hl, $6a44 + rst FarCall + jr c, .asm_3d821 + ld hl, $c4ac + ld d, $0 + ld e, $0 + ld a, $47 + call Predef + jr .asm_3d82c + +.asm_3d821 + ld a, $f + ld [CryTracks], a + ld a, [TempEnemyMonSpecies] + call $37b6 + +.asm_3d82c + call $6036 + ld a, $1 + ld [hBGMapMode], a + ret +; 3d834 + +Function3d834: ; 3d834 + xor a + ld [LastEnemyCounterMove], a + ld [LastPlayerCounterMove], a + ld [LastEnemyMove], a + ld hl, EnemySubStatus1 + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hl], a + ld [EnemyDisableCount], a + ld [EnemyFuryCutterCount], a + ld [$c681], a + ld [$c72c], a + ld [EnemyDisabledMove], a + ld [$c6fa], a + ld [$c730], a + ld [$c731], a + ld [EnemyTurnsTaken], a + ld hl, PlayerSubStatus5 + res 7, [hl] + ret +; 3d867 + +Function3d867: ; 3d867 + ld a, $7 + ld b, $8 + ld hl, EnemyAtkLevel +.asm_3d86e + ld [hli], a + dec b + jr nz, .asm_3d86e + ret +; 3d873 + +INCBIN "baserom.gbc", $3d873, $3d887 - $3d873 + + +Function3d887: ; 3d887 + ld a, [CurPartyMon] + ld hl, PartyMon1CurHP + call GetPartyLocation + ld a, [hli] + or [hl] + ret nz + ld a, [$d264] + and a + jr nz, .asm_3d8b1 + ld hl, PartySpecies + ld a, [CurPartyMon] + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + cp $fd + ld hl, $4b26 + jr z, .asm_3d8ae + ld hl, $4b0b + +.asm_3d8ae + call FarBattleTextBox + +.asm_3d8b1 + xor a + ret +; 3d8b3 + +INCBIN "baserom.gbc", $3d8b3, $3da0d - $3d8b3 + + +Function3da0d: ; 3da0d + ld a, $0 + call GetPartyParamLocation + ld de, BattleMonSpecies + ld bc, $0006 + call CopyBytes + ld bc, $000f + add hl, bc + ld de, BattleMonAtkDefDV + ld bc, $0007 + call CopyBytes + inc hl + inc hl + inc hl + ld de, BattleMonLevel + ld bc, $0011 + call CopyBytes + ld a, [BattleMonSpecies] + ld [TempBattleMonSpecies], a + ld [CurPartySpecies], a + ld [CurSpecies], a + call GetBaseData + ld a, [BaseType1] + ld [BattleMonType1], a + ld a, [BaseType2] + ld [BattleMonType2], a + ld hl, PartyMon1Nickname + ld a, [CurBattleMon] + call SkipNames + ld de, BattleMonNick + ld bc, $000b + call CopyBytes + ld hl, BattleMonAtk + ld de, PlayerStats + ld bc, $000a + call CopyBytes + call $6c2c + call $6d45 + ret +; 3da74 + +Function3da74: ; 3da74 + call $5a85 + jr .asm_3da7c + + call $5a97 + +.asm_3da7c + ld b, h + ld c, l + callab CheckShininess + ret +; 3da85 + +Function3da85: ; 3da85 + ld hl, BattleMonAtkDefDV + ld a, [PlayerSubStatus5] + bit 3, a + ret z + ld hl, PartyMon1DVs + ld a, [CurBattleMon] + jp GetPartyLocation +; 3da97 + +Function3da97: ; 3da97 + ld hl, EnemyMonAtkDefDV + ld a, [EnemySubStatus5] + bit 3, a + ret z + ld hl, $c6f2 + ld a, [IsInBattle] + dec a + ret z + ld hl, OTPartyMon1AtkDefDV + ld a, [CurOTMon] + jp GetPartyLocation +; 3dab1 + +Function3dab1: ; 3dab1 + ld a, $7 + ld b, $8 + ld hl, PlayerAtkLevel +.asm_3dab8 + ld [hli], a + dec b + jr nz, .asm_3dab8 + ret +; 3dabd + Function3dabd: ; 3dabd @@ -30931,13 +32707,817 @@ Function3dabd: ; 3dabd ret ; 3db32 -INCBIN "baserom.gbc", $3db32, $3ddc2 - $3db32 +INCBIN "baserom.gbc", $3db32, $3db5f - $3db32 + + +Function3db5f: ; 3db5f + ld hl, BattleMonAtkDefDV + ld a, $2d + call Predef + ld hl, $c505 + ld b, $7 + ld c, $8 + call ClearBox + call WaitBGMap + xor a + ld [hBGMapMode], a + call $743d + xor a + ld [$ffad], a + ld [$d0d2], a + ld [CurMoveNum], a + ld [TypeModifier], a + ld [PlayerMoveAnimation], a + ld [LastEnemyCounterMove], a + ld [LastPlayerCounterMove], a + ld [LastPlayerMove], a + call $64a8 + call $6e27 + xor a + ld [$c731], a + call SetPlayerTurn + xor a + ld [$cfca], a + ld [$c689], a + ld de, $0101 + call $6e17 + call $5a74 + jr nc, .asm_3dbbc + ld a, $1 + ld [$c689], a + ld de, $0101 + call $6e17 + +.asm_3dbbc + ld a, $0 + call GetPartyParamLocation + ld b, h + ld c, l + callba Function4e53f + jr c, .asm_3dbd6 + ld a, $f0 + ld [CryTracks], a + ld a, [CurPartySpecies] + call $37b6 + +.asm_3dbd6 + call $5f48 + ld a, $1 + ld [hBGMapMode], a + ret +; 3dbde + +Function3dbde: ; 3dbde + xor a + ld [LastEnemyCounterMove], a + ld [LastPlayerCounterMove], a + ld [LastPlayerMove], a + ld hl, PlayerSubStatus1 + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hl], a + ld hl, PlayerUsedMoves + ld [hli], a + ld [hli], a + ld [hli], a + ld [hl], a + ld [PlayerDisableCount], a + ld [PlayerFuryCutterCount], a + ld [$c679], a + ld [$c72b], a + ld [DisabledMove], a + ld [$c6fe], a + ld [$c731], a + ld [$c730], a + ld [PlayerTurnsTaken], a + ld hl, EnemySubStatus5 + res 7, [hl] + ret +; 3dc18 + +Function3dc18: ; 3dc18 + ld hl, PlayerSubStatus1 + res 7, [hl] + ld hl, EnemySubStatus1 + res 7, [hl] + ret +; 3dc23 + +Function3dc23: ; 3dc23 + ld hl, PlayerScreens + ld de, BattleMonType1 + ld bc, $5f48 + ld a, [hBattleTurn] + and a + jr z, .asm_3dc3a + ld hl, EnemyScreens + ld de, EnemyMonType1 + ld bc, $6036 + +.asm_3dc3a + bit 0, [hl] + ret z + ld a, [de] + cp $2 + ret z + inc de + ld a, [de] + cp $2 + ret z + push bc + ld hl, $4bae + call FarBattleTextBox + call GetEighthMaxHP + call $4c39 + pop hl + call $5c5a + jp WaitBGMap +; 3dc5a + +Function3dc5a: ; 3dc5a + jp [hl] +; 3dc5b + +Function3dc5b: ; 3dc5b + ld a, $10 + call CleanGetBattleVarPair + ld b, a + call $45ec + ld a, b + cp $80 + jr nz, .asm_3dce4 + ld a, [CurBattleMon] + push af + ld hl, $4000 + ld a, [hBattleTurn] + and a + jr z, .asm_3dc7e + ld hl, $400a + ld a, [$c71a] + ld [CurBattleMon], a + +.asm_3dc7e + ld a, $d + rst FarCall + ld a, $10 + call GetBattleVarPair + ld a, $ff + ld [hl], a + pop af + ld [CurBattleMon], a + ld a, [hBattleTurn] + and a + jr z, .asm_3dcc0 + ld a, [$c71a] + call $399f + ld hl, BattleMonHP + ld a, [hli] + or [hl] + jr nz, .asm_3dce4 + ld a, $f0 + ld [CryTracks], a + ld a, [BattleMonSpecies] + call $37b6 + ld a, [$c71a] + ld c, a + ld hl, $c664 + ld b, $0 + ld a, $3 + call Predef + call $543b + ld hl, $4a75 + jr .asm_3dcdf + +.asm_3dcc0 + ld hl, EnemyMonHPHi + ld a, [hli] + or [hl] + jr nz, .asm_3dce4 + ld de, $002f + call StartSFX + call WaitSFX + ld de, $002a + call StartSFX + call WaitSFX + call $5432 + ld hl, $49a8 + +.asm_3dcdf + call FarBattleTextBox + scf + ret + +.asm_3dce4 + and a + ret +; 3dce6 + +Function3dce6: ; 3dce6 + ld a, [hBattleTurn] + push af + xor a + ld [hBattleTurn], a + ld [$cfca], a + ld de, $0102 + call $6e17 + pop af + ld [hBattleTurn], a + ret +; 3dcf9 + +INCBIN "baserom.gbc", $3dcf9, $3ddc2 - $3dcf9 ld hl, RecoveredUsingText jp FarBattleTextBox ; 0x3ddc8 -INCBIN "baserom.gbc", $3ddc8, $3e8eb - $3ddc8 +INCBIN "baserom.gbc", $3ddc8, $3df48 - $3ddc8 + + +Function3df48: ; 3df48 + push hl + push de + push bc + call $5f58 + call $5f98 + call $5f9e + pop bc + pop de + pop hl + ret +; 3df58 + +Function3df58: ; 3df58 + xor a + ld [hBGMapMode], a + ld hl, $c535 + ld bc, $050b + call ClearBox + ld a, $b + ld hl, $4095 + rst FarCall + ld hl, $c566 + ld [hl], $73 + call $5fbf + ld hl, $c55e + ld b, $1 + xor a + ld [MonType], a + ld a, $26 + call Predef + push de + ld a, [CurBattleMon] + ld hl, $dce9 + call GetPartyLocation + ld d, h + ld e, l + ld hl, $c586 + ld a, [TempMonLevel] + ld b, a + call $7390 + pop de + ret +; 3df98 + +Function3df98: ; 3df98 + ld hl, PlayerHPPal + jp $612e +; 3df9e + +Function3df9e: ; 3df9e + ld hl, BattleMonHP + ld a, [hli] + or [hl] + jr z, .asm_3dfb2 + ld a, [$c6fd] + and a + jr nz, .asm_3dfbe + ld a, [PlayerHPPal] + cp $2 + jr z, .asm_3dfb9 + +.asm_3dfb2 + ld hl, Danger + res 7, [hl] + jr .asm_3dfbe + +.asm_3dfb9 + ld hl, Danger + set 7, [hl] + +.asm_3dfbe + ret +; 3dfbf + +Function3dfbf: ; 3dfbf + ld de, BattleMonNick + ld hl, $c536 + call $6138 + call PlaceString + push bc + ld a, [CurBattleMon] + ld hl, PartyMon1DVs + call GetPartyLocation + ld de, TempMonDVs + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + ld hl, BattleMonLevel + ld de, TempMonLevel + ld bc, $0011 + call CopyBytes + ld a, [CurBattleMon] + ld hl, PartyMon1Species + call GetPartyLocation + ld a, [hl] + ld [CurPartySpecies], a + ld [CurSpecies], a + call GetBaseData + pop hl + dec hl + ld a, $3 + ld [MonType], a + callab GetGender + ld a, $7f + jr c, .asm_3e013 + ld a, $ef + jr nz, .asm_3e013 + ld a, $f5 + +.asm_3e013 + ld hl, $c551 + ld [hl], a + ld hl, $c54e + push af + push hl + ld de, BattleMonStatus + ld a, $21 + call Predef + pop hl + pop bc + ret nz + ld a, b + cp $7f + jr nz, .asm_3e02d + dec hl + +.asm_3e02d + ld a, [BattleMonLevel] + ld [TempMonLevel], a + jp Function382d +; 3e036 + +Function3e036: ; 3e036 + push hl + push de + push bc + call $6043 + call $6127 + pop bc + pop de + pop hl + ret +; 3e043 + +Function3e043: ; 3e043 + xor a + ld [hBGMapMode], a + ld hl, $c4a1 + ld bc, $040b + call ClearBox + ld a, $b + ld hl, $40c5 + rst FarCall + ld a, [TempEnemyMonSpecies] + ld [CurSpecies], a + ld [CurPartySpecies], a + call GetBaseData + ld de, EnemyMonNick + ld hl, $c4a1 + call $6138 + call PlaceString + ld h, b + ld l, c + dec hl + ld hl, EnemyMonAtkDefDV + ld de, TempMonDVs + ld a, [EnemySubStatus5] + bit 3, a + jr z, .asm_3e080 + ld hl, $c6f2 + +.asm_3e080 + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + ld a, $3 + ld [MonType], a + callab GetGender + ld a, $7f + jr c, .asm_3e09a + ld a, $ef + jr nz, .asm_3e09a + ld a, $f5 + +.asm_3e09a + ld hl, $c4bd + ld [hl], a + ld hl, $c4ba + push af + push hl + ld de, EnemyMonStatus + ld a, $21 + call Predef + pop hl + pop bc + jr nz, .asm_3e0be + ld a, b + cp $7f + jr nz, .asm_3e0b5 + dec hl + +.asm_3e0b5 + ld a, [EnemyMonLevel] + ld [TempMonLevel], a + call Function382d + +.asm_3e0be + ld hl, EnemyMonHPHi + ld a, [hli] + ld [$ffb5], a + ld a, [hld] + ld [$ffb6], a + or [hl] + jr nz, .asm_3e0d1 + ld c, a + ld e, a + ld d, $6 + jp $611a + +.asm_3e0d1 + xor a + ld [hMultiplicand], a + ld a, $30 + ld [hMultiplier], a + call Multiply + ld hl, EnemyMonMaxHPHi + ld a, [hli] + ld b, a + ld a, [hl] + ld [hMultiplier], a + ld a, b + and a + jr z, .asm_3e105 + ld a, [hMultiplier] + srl b + rr a + srl b + rr a + ld [hMultiplier], a + ld a, [$ffb5] + ld b, a + srl b + ld a, [$ffb6] + rr a + srl b + rr a + ld [$ffb6], a + ld a, b + ld [$ffb5], a + +.asm_3e105 + ld a, [$ffb5] + ld [hProduct], a + ld a, [$ffb6] + ld [hMultiplicand], a + ld a, $2 + ld b, a + call Divide + ld a, [$ffb6] + ld e, a + ld a, $6 + ld d, a + ld c, a + xor a + ld [$d10a], a + ld hl, $c4ca + ld b, $0 + call Function3750 + ret +; 3e127 + +Function3e127: ; 3e127 + ld hl, EnemyHPPal + call $612e + ret +; 3e12e + +Function3e12e: ; 3e12e + ld b, [hl] + call SetHPPal + ld a, [hl] + cp b + ret z + jp $6e27 +; 3e138 + +Function3e138: ; 3e138 + ret +; 3e139 + +INCBIN "baserom.gbc", $3e139, $3e3ad - $3e139 + + +Function3e3ad: ; 3e3ad + ld a, $1 + ld [$c710], a + ld a, [InLinkBattle] + and a + jr z, .asm_3e3c1 + call Function1d6e + call $68e4 + call Function1c17 + +.asm_3e3c1 + call $67c1 + ld a, [InLinkBattle] + and a + jr nz, .asm_3e3cf + call $640b + and a + ret + +.asm_3e3cf + ld a, [$d430] + cp $e + jp z, $63ca + cp $d + jp z, $63ca + cp $4 + jp c, $63ca + cp $f + jr nz, .asm_3e3e9 + call $40e5 + ret + +.asm_3e3e9 + ld a, [$ffcb] + cp $1 + jr z, .asm_3e3f7 + call $640b + call $63ff + and a + ret + +.asm_3e3f7 + call $63ff + call $640b + and a + ret +; 3e3ff + +Function3e3ff: ; 3e3ff + ld hl, $446c + ld a, $e + rst FarCall + call SetEnemyTurn + jp $5c23 +; 3e40b + +Function3e40b: ; 3e40b + call $72f4 + ld c, $32 + call DelayFrames + ld hl, PlayerSubStatus4 + res 6, [hl] + call SetEnemyTurn + call $5c5b + jr c, .asm_3e423 + call $5ce6 + +.asm_3e423 + ld hl, $c535 + ld bc, $050b + call ClearBox + ld a, [CurBattleMon] + ld [CurPartyMon], a + call $5581 + call $5a0d + call $5ab1 + call $726d + call $5bde + call $5c18 + call $5b5f + call $6dd1 + call $309d + call SetPlayerTurn + call $5c23 + ld a, $2 + ld [$cfa9], a + ret +; 3e459 + +INCBIN "baserom.gbc", $3e459, $3e4a8 - $3e459 + + +Function3e4a8: ; 3e4a8 + ld a, [BattleMonItem] + ld b, a + callab GetItem + ld a, b + cp $4c + ret nz + ld a, $1 + ld [$c73d], a + ret +; 3e4bc + +INCBIN "baserom.gbc", $3e4bc, $3e7c1 - $3e4bc + + +Function3e7c1: ; 3e7c1 + ld a, [$c711] + and a + ret nz + ld a, [InLinkBattle] + and a + jr z, .asm_3e817 + call $6dd1 + call $309d + ld a, [$d0ec] + and a + call z, $68e4 + call $30b4 + ld a, [$d430] + cp $e + jp z, $68bd + cp $d + jp z, $682c + cp $4 + jp nc, $68c1 + ld [CurEnemyMoveNum], a + ld c, a + ld a, [EnemySubStatus1] + bit 6, a + jp nz, $6882 + ld a, [EnemySubStatus3] + and $13 + jp nz, $6882 + ld hl, EnemySubStatus5 + bit 4, [hl] + ld a, [LastEnemyMove] + jp nz, $687f + ld hl, EnemyMonMove1 + ld b, $0 + add hl, bc + ld a, [hl] + jp $687f + +.asm_3e817 + ld hl, EnemySubStatus5 + bit 4, [hl] + jr z, .asm_3e824 + ld a, [LastEnemyMove] + jp $687f + +.asm_3e824 + call $68d1 + jp nz, $68c1 + jr .asm_3e830 + + ld a, $ff + jr .asm_3e87f + +.asm_3e830 + ld hl, EnemyMonMove1 + ld de, EnemyMonPPMove1 + ld b, $4 +.asm_3e838 + ld a, [hl] + and a + jp z, $68bd + ld a, [EnemyDisabledMove] + cp [hl] + jr z, .asm_3e848 + ld a, [de] + and $3f + jr nz, .asm_3e84f + +.asm_3e848 + inc hl + inc de + dec b + jr nz, .asm_3e838 + jr .asm_3e8bd + +.asm_3e84f + ld a, [IsInBattle] + dec a + jr nz, .asm_3e882 +.asm_3e855 + ld hl, EnemyMonMove1 + call FarBattleRNG + and $3 + ld c, a + ld b, $0 + add hl, bc + ld a, [EnemyDisableCount] + swap a + and $f + dec a + cp c + jr z, .asm_3e855 + ld a, [hl] + and a + jr z, .asm_3e855 + ld hl, EnemyMonPPMove1 + add hl, bc + ld b, a + ld a, [hl] + and $3f + jr z, .asm_3e855 + ld a, c + ld [CurEnemyMoveNum], a + ld a, b + +.asm_3e87f + ld [CurEnemyMove], a + +.asm_3e882 + call SetEnemyTurn + callab UpdateMoveData + call $68d1 + jr nz, .asm_3e894 + xor a + ld [$c733], a + +.asm_3e894 + ld a, [EnemyMoveEffect] + cp $77 + jr z, .asm_3e89f + xor a + ld [EnemyFuryCutterCount], a + +.asm_3e89f + ld a, [EnemyMoveEffect] + cp $51 + jr z, .asm_3e8af + ld hl, EnemySubStatus4 + res 6, [hl] + xor a + ld [$c72c], a + +.asm_3e8af + ld a, [EnemyMoveEffect] + cp $6f + ret z + cp $74 + ret z + xor a + ld [$c681], a + ret + +.asm_3e8bd + ld a, $a5 + jr .asm_3e87f +; 3e8c1 + +Function3e8c1: ; 3e8c1 + xor a + ld [EnemyFuryCutterCount], a + ld [$c681], a + ld [$c72c], a + ld hl, EnemySubStatus4 + res 6, [hl] + ret +; 3e8d1 + +Function3e8d1: ; 3e8d1 + ld a, [EnemySubStatus4] + and $20 + ret nz + ld hl, EnemySubStatus3 + ld a, [hl] + and $13 + ret nz + ld hl, EnemySubStatus1 + bit 6, [hl] + ret +; 3e8e4 + +Function3e8e4: ; 3e8e4 + ld a, $40 + ld hl, $4a09 + rst FarCall + ret +; 3e8eb + LoadEnemyMon: ; 3e8eb ; Initialize enemy monster parameters @@ -31741,7 +34321,29 @@ BoostStat: ; 3ed7c ; 3ed9f -INCBIN "baserom.gbc", $3ed9f, $3edd8 - $3ed9f +Function3ed9f: ; 3ed9f + ld hl, $74f2 + ld a, $3e + rst FarCall + ret +; 3eda6 + +Function3eda6: ; 3eda6 + ld hl, $750d + ld a, $3e + rst FarCall + ret +; 3edad + +INCBIN "baserom.gbc", $3edad, $3edd1 - $3edad + + +Function3edd1: ; 3edd1 + ld hl, $6dd7 + jp BattleTextBox +; 3edd7 + +INCBIN "baserom.gbc", $3edd7, $3edd8 - $3edd7 BattleRNG: ; 3edd8 @@ -31814,7 +34416,308 @@ BattleRNG: ; 3edd8 ret ; 3ee0f -INCBIN "baserom.gbc", $3ee0f, $3fa01 - $3ee0f +INCBIN "baserom.gbc", $3ee0f, $3ee17 - $3ee0f + + +Function3ee17: ; 3ee17 + ld a, e + ld [FXAnimIDLo], a + ld a, d + ld [FXAnimIDHi], a + call WaitBGMap + ld a, $37 + jp Predef +; 3ee27 + +Function3ee27: ; 3ee27 + push af + push bc + push de + push hl + ld b, $1 + call GetSGBLayout + call Function32f9 + call DelayFrame + pop hl + pop de + pop bc + pop af + ret +; 3ee3b + +INCBIN "baserom.gbc", $3ee3b, $3f26d - $3ee3b + + +Function3f26d: ; 3f26d + ld a, [InLinkBattle] + and a + jr z, .asm_3f27c + ld hl, $72d1 + ld a, [$d264] + and a + jr nz, .asm_3f2ce + +.asm_3f27c + ld hl, EnemyMonHPHi + ld a, [hli] + or [hl] + ld hl, $72d1 + jr z, .asm_3f2ce + xor a + ld [hMultiplicand], a + ld hl, EnemyMonHPHi + ld a, [hli] + ld [$c6ea], a + ld [$ffb5], a + ld a, [hl] + ld [$c6eb], a + ld [$ffb6], a + ld a, $19 + ld [hMultiplier], a + call Multiply + ld hl, EnemyMonMaxHPHi + ld a, [hli] + ld b, [hl] + srl a + rr b + srl a + rr b + ld a, b + ld b, $4 + ld [hMultiplier], a + call Divide + ld a, [$ffb6] + ld hl, $72d1 + cp $46 + jr nc, .asm_3f2ce + ld hl, $72d8 + cp $28 + jr nc, .asm_3f2ce + ld hl, $72df + cp $a + jr nc, .asm_3f2ce + ld hl, $72e6 + +.asm_3f2ce + jp BattleTextBox +; 3f2d1 + +INCBIN "baserom.gbc", $3f2d1, $3f2f4 - $3f2d1 + + +Function3f2f4: ; 3f2f4 + ld hl, $72fa + jp BattleTextBox +; 3f2fa + +INCBIN "baserom.gbc", $3f2fa, $3f390 - $3f2fa + + +Function3f390: ; 3f390 + push hl + call $739c + pop hl + ld de, $0007 + add hl, de + jp $741c +; 3f39c + +Function3f39c: ; 3f39c + push de + ld d, b + push de + callab Function50e47 + pop de + ld hl, hMultiplicand + ld a, [hli] + push af + ld a, [hli] + push af + ld a, [hl] + push af + inc d + callab Function50e47 + ld hl, $ffb6 + ld a, [hl] + ld [$ffba], a + pop bc + sub b + ld [hld], a + ld a, [hl] + ld [$ffb9], a + pop bc + sbc b + ld [hld], a + ld a, [hl] + ld [hMathBuffer], a + pop bc + sbc b + ld [hl], a + pop de + ld hl, $ffb5 + ld a, [hli] + push af + ld a, [hl] + push af + ld a, [de] + dec de + ld c, a + ld a, [$ffba] + sub c + ld [hld], a + ld a, [de] + dec de + ld b, a + ld a, [$ffb9] + sbc b + ld [hld], a + ld a, [de] + ld c, a + ld a, [hMathBuffer] + sbc c + ld [hld], a + xor a + ld [hl], a + ld a, $40 + ld [hMultiplier], a + call Multiply + pop af + ld c, a + pop af + ld b, a +.asm_3f3f4 + ld a, b + and a + jr z, .asm_3f40c + srl b + rr c + ld hl, hProduct + srl [hl] + inc hl + rr [hl] + inc hl + rr [hl] + inc hl + rr [hl] + jr .asm_3f3f4 + +.asm_3f40c + ld a, c + ld [hMultiplier], a + ld b, $4 + call Divide + ld a, [$ffb6] + ld b, a + ld a, $40 + sub b + ld b, a + ret +; 3f41c + +Function3f41c: ; 3f41c + ld c, $8 +.asm_3f41e + ld a, b + sub $8 + jr c, .asm_3f42c + ld b, a + ld a, $6a + ld [hld], a + dec c + jr z, .asm_3f43c + jr .asm_3f41e + +.asm_3f42c + add $8 + jr z, .asm_3f434 + add $54 + jr .asm_3f436 + +.asm_3f434 + ld a, $62 + +.asm_3f436 + ld [hld], a + ld a, $62 + dec c + jr nz, .asm_3f434 + +.asm_3f43c + ret +; 3f43d + +Function3f43d: ; 3f43d + ld a, [PlayerSubStatus4] + bit 4, a + ld hl, $4640 + jr nz, .asm_3f46f + ld a, [$c6fe] + and a + ld hl, $46cf + jr nz, .asm_3f46f + ld a, [CurPartySpecies] + push af + ld a, [BattleMonSpecies] + ld [CurPartySpecies], a + ld hl, BattleMonAtkDefDV + ld a, $2d + call Predef + ld de, $9310 + ld a, $3d + call Predef + pop af + ld [CurPartySpecies], a + ret + +.asm_3f46f + ld a, [hBattleTurn] + push af + xor a + ld [hBattleTurn], a + ld a, $33 + rst FarCall + pop af + ld [hBattleTurn], a + ret +; 3f47c + +Function3f47c: ; 3f47c + ld a, [EnemySubStatus4] + bit 4, a + ld hl, $4640 + jr nz, .asm_3f4b4 + ld a, [$c6fa] + and a + ld hl, $46cf + jr nz, .asm_3f4b4 + ld a, [CurPartySpecies] + push af + ld a, [EnemyMonSpecies] + ld [CurSpecies], a + ld [CurPartySpecies], a + call GetBaseData + ld hl, EnemyMonAtkDefDV + ld a, $2d + call Predef + ld de, VTiles2 + ld a, $3e + call Predef + pop af + ld [CurPartySpecies], a + ret + +.asm_3f4b4 + ld a, [hBattleTurn] + push af + call SetEnemyTurn + ld a, $33 + rst FarCall + pop af + ld [hBattleTurn], a + ret +; 3f4c1 + +INCBIN "baserom.gbc", $3f4c1, $3fa01 - $3f4c1 GetRoamMonHP: ; 3fa01 ; output: hl = RoamMonCurHP @@ -36407,7 +39310,50 @@ Function4e906: ; 4e906 ret ; 4e929 -INCBIN "baserom.gbc", $4e929, $4ea82 - $4e929 +INCBIN "baserom.gbc", $4e929, $4ea44 - $4e929 + + +Function4ea44: ; 4ea44 + ld a, $0 + ld hl, InLinkBattle + call $307b + cp $4 + jr z, .asm_4ea59 + ld a, [Options] + bit 7, a + jr nz, .asm_4ea80 + and a + ret + +.asm_4ea59 + ld a, [$cd2f] + and a + jr nz, .asm_4ea72 + ld a, $4 + call GetSRAMBank + ld a, [$a60c] + ld c, a + call CloseSRAM + ld a, c + bit 0, c + jr z, .asm_4ea80 + and a + ret + +.asm_4ea72 + ld a, $5 + ld hl, $dc00 + call $307b + bit 0, a + jr z, .asm_4ea80 + and a + ret + +.asm_4ea80 + scf + ret +; 4ea82 + Function4ea82: ; 4ea82 @@ -47205,7 +50151,36 @@ Functionfb48a: ; fb48a ret ; fb4f2 -INCBIN "baserom.gbc", $fb4f2, $fba18 - $fb4f2 +Functionfb4f2: ; fb4f2 + ld de, $4600 + ld hl, $9600 + ld bc, $3e0c + call Functiondc9 + ld hl, $9700 + ld de, $4700 + ld bc, $3e03 + call Functiondc9 + call $74cc + ld de, $4ac0 + ld hl, $96c0 + ld bc, $3e04 + call Functionddc + ld de, $4ae0 + ld hl, $9730 + ld bc, $3e06 + call Functionddc + ld de, $4b10 + ld hl, $9550 + ld bc, $3e09 + call Functiondc9 + ld de, $52a4 + ld hl, $95e0 + ld bc, $3e02 + call Functiondc9 + ret +; fb53e + +INCBIN "baserom.gbc", $fb53e, $fba18 - $fb53e Functionfba18: ; fba18 @@ -49006,7 +51981,24 @@ Function10032e: ; 10032e ret ; 100337 -INCBIN "baserom.gbc", $100337, $10034d - $100337 +Function100337: ; 100337 + call $432e + ret c + ld a, [$c821] + bit 4, a + jr z, .asm_100345 + ld a, e + and a + ret + +.asm_100345 + ld a, $f9 + ld e, a + ld [$cd2b], a + scf + ret +; 10034d + Function10034d: ; 10034d @@ -49050,7 +52042,938 @@ Function10034d: ; 10034d ret ; 100382 -INCBIN "baserom.gbc", $100382, $10389d - $100382 +Function100382: ; 100382 + ld a, [$cd27] + ld hl, $444e + rst JumpTable + ret +; 10038a + +Function10038a: ; 10038a + ld hl, $ccb4 + ld a, $2e + call $3e32 + ret +; 100393 + +Function100393: ; 100393 + ld hl, $cc60 + ld a, $3a + call $3e32 + ret +; 10039c + +Function10039c: ; 10039c + ld hl, $cc60 + ld de, $d000 + ld bc, $0054 + ld a, $3 + call Function306b + ret +; 1003ab + +INCBIN "baserom.gbc", $1003ab, $1003ba - $1003ab + + +Function1003ba: ; 1003ba + ld hl, $ccb4 + ld de, $d080 + ld bc, $0054 + ld a, $3 + call Function306b + ret +; 1003c9 + +Function1003c9: ; 1003c9 + ld hl, $d080 + ld de, $ccb4 + ld bc, $0054 + ld a, $3 + call Function306b + ret +; 1003d8 + +Function1003d8: ; 1003d8 + ld hl, $ccb4 + ld a, [hli] + ld c, a + ld b, $0 + push hl + add hl, bc + ld a, [BGMapPalBuffer] + ld [hl], a + pop hl + inc bc + call $443a + add hl, bc + ld [hl], e + inc hl + ld [hl], d + ld a, c + add $2 + ld [$ccb4], a + ret +; 1003f5 + +Function1003f5: ; 1003f5 + ld a, [$cc60] + sub $3 + ld [$cc60], a + ld a, [$ccb4] + sub $3 + ld [$ccb4], a + ret +; 100406 + +Function100406: ; 100406 + ld a, [$cc60] + sub $2 + ld c, a + ld b, $0 + ld hl, $cc61 + call $443a + add hl, bc + ld a, [hli] + cp e + jr nz, .asm_100426 + ld a, [hld] + cp d + jr nz, .asm_100426 + dec hl + ld a, [BGMapPalBuffer] + cp [hl] + jr nz, .asm_10042d + xor a + ret + +.asm_100426 + ld a, $f4 + ld [$cd2b], a + jr .asm_100432 + +.asm_10042d + ld a, $f3 + ld [$cd2b], a + +.asm_100432 + push hl + ld hl, $cd7c + inc [hl] + pop hl + scf + ret +; 10043a + +Function10043a: ; 10043a + push hl + push bc + ld de, $0000 +.asm_10043f + ld a, [hli] + add e + ld e, a + ld a, d + adc $0 + ld d, a + dec bc + ld a, b + or c + jr nz, .asm_10043f + pop bc + pop hl + ret +; 10044e + +INCBIN "baserom.gbc", $10044e, $10046a - $10044e + + +Function10046a: ; 10046a + ld hl, BGMapPalBuffer + inc [hl] + call $43d8 + call $43ba + ld a, [$cd27] + inc a + ld [$cd27], a + ret +; 10047c + +Function10047c: ; 10047c + call $4337 + ret c + ret z + cp $2 + jr z, .asm_100487 + jr .asm_10048d + +.asm_100487 + ld a, $8 + ld [$cd27], a + ret + +.asm_10048d + ld a, $2 + ld [$cd27], a + ret +; 100493 + +Function100493: ; 100493 + jr .asm_100497 + + jr .asm_100497 + +.asm_100497 + call $4337 + ret c + ret z + ld a, [$cd27] + inc a + ld [$cd27], a + ret +; 1004a4 + +Function1004a4: ; 1004a4 + call $4406 + jr c, .asm_1004b8 + call $43c9 + call $43f5 + ld a, [$cd27] + set 7, a + ld [$cd27], a + ret + +.asm_1004b8 + scf + ret +; 1004ba + +Function1004ba: ; 1004ba + call $438a + and a + jr nz, .asm_1004c8 + ld a, [$cd27] + inc a + ld [$cd27], a + ret + +.asm_1004c8 + ld a, $8 + ld [$cd27], a + ret +; 1004ce + +Function1004ce: ; 1004ce + call $4337 + ret c + ret z + cp $2 + ret nz + ld a, [$cd27] + inc a + ld [$cd27], a + ret +; 1004de + +Function1004de: ; 1004de + call $4393 + ld a, [$cd27] + inc a + ld [$cd27], a + ret +; 1004e9 + +Function1004e9: ; 1004e9 + call $438a + ld a, [$cd27] + inc a + ld [$cd27], a + ret +; 1004f4 + +Function1004f4: ; 1004f4 + call $4337 + ret c + ret z + ld a, [$cd27] + inc a + ld [$cd27], a + call $439c + ret +; 100504 + +INCBIN "baserom.gbc", $100504, $10062d - $100504 + + +Function10062d: ; 10062d + push bc + call $464e + pop bc + ld a, [$cd44] + cp b + jr nc, .asm_10063a + and a + ret + +.asm_10063a + ld a, $fa + ld [$cd2b], a + scf + ret +; 100641 + +Function100641: ; 100641 + xor a + ld [$cd44], a + ld [$cd45], a + ld [$cd46], a + ret +; 10064c + +INCBIN "baserom.gbc", $10064c, $10064e - $10064c + + +Function10064e: ; 10064e + ld hl, $cd46 + ld a, [hl] + add c + cp $3c + jr c, .asm_100658 + xor a + +.asm_100658 + ld [hld], a + ret c + ld a, [hl] + inc a + cp $3c + jr c, .asm_100661 + xor a + +.asm_100661 + ld [hld], a + ret c + inc [hl] + ret +; 100665 + +INCBIN "baserom.gbc", $100665, $1006dc - $100665 + + +Function1006dc: ; 1006dc + ld a, [hld] + ld c, a + ld a, [hSeconds] + sub c + jr nc, .asm_1006e5 + add $3c + +.asm_1006e5 + ld [de], a + dec de + ld a, [hld] + ld c, a + ld a, [hMinutes] + sbc c + jr nc, .asm_1006f0 + add $3c + +.asm_1006f0 + ld [de], a + dec de + ld a, [hl] + ld c, a + ld a, [hHours] + sbc c + jr nc, .asm_1006fb + add $18 + +.asm_1006fb + ld [de], a + ret +; 1006fd + +INCBIN "baserom.gbc", $1006fd, $10079c - $1006fd + + +Function10079c: ; 10079c + ld a, [$cd21] + cp $1 + jr nz, .asm_1007f4 + ld hl, $cd2a + bit 5, [hl] + jr nz, .asm_1007f4 + ld hl, $cd2a + bit 6, [hl] + jr nz, .asm_1007f4 + ld a, [$cd6a] + add c + cp $3c + jr nc, .asm_1007be + ld [$cd6a], a + and a + ret + +.asm_1007be + sub $3c + ld [$cd6a], a + ld d, b + push de + call $47f6 + pop de + jr c, .asm_1007e5 + ld a, c + and a + jr nz, .asm_1007e5 + ld a, b + cp $a + jr nc, .asm_1007e5 + ld a, d + and a + ret z + ld a, [$cd6b] + cp b + ret z + ld a, b + ld [$cd6b], a + call $48e0 + and a + ret + +.asm_1007e5 + call $48e0 + ld hl, $cd2a + set 4, [hl] + ld a, $fc + ld [$cd2b], a + scf + ret + +.asm_1007f4 + and a + ret +; 1007f6 + +Function1007f6: ; 1007f6 + call UpdateTime + ld hl, $cd74 + ld de, $cd71 + call $46dc + ld a, $4 + call GetSRAMBank + ld hl, $a802 + call $4826 + call CloseSRAM + ld hl, $cd6e + call $4826 + ld a, [hHours] + ld [$cd72], a + ld a, [hMinutes] + ld [$cd73], a + ld a, [hSeconds] + ld [$cd74], a + ret +; 100826 + +Function100826: ; 100826 + ld a, [$cd71] + add [hl] + sub $3c + jr nc, .asm_100830 + add $3c + +.asm_100830 + ld [hld], a + ccf + ld a, [BGMapBufferPtrs] + adc [hl] + sub $3c + jr nc, .asm_10083c + add $3c + +.asm_10083c + ld [hld], a + ld b, a + ccf + ld a, [$cd6f] + adc [hl] + ld [hl], a + ld c, a + ret +; 100846 + +INCBIN "baserom.gbc", $100846, $1008e0 - $100846 + + +Function1008e0: ; 1008e0 + ld a, [hBGMapMode] + ld b, a + ld a, [$ff9e] + ld c, a + push bc + xor a + ld [hBGMapMode], a + ld a, $3 + ld [$ff9e], a + call $4970 + call $4902 + call $4989 + call DelayFrame + pop bc + ld a, c + ld [$ff9e], a + ld a, b + ld [hBGMapMode], a + ret +; 100902 + +Function100902: ; 100902 + ld hl, $c56b + ld b, $1 + ld c, $b + call TextBox + ld a, [$cd6d] + ld c, a + ld a, $a + sub c + ld [StringBuffer2], a + jr z, .asm_10093f + ld de, $4966 + ld hl, $c580 + call PlaceString + ld hl, $c584 + ld bc, $0102 + ld de, StringBuffer2 + call Function3198 + ld de, $00cc + call StartSFX + callba Function104061 + ld c, $3c + call DelayFrames + ret + +.asm_10093f + ld de, $495a + ld hl, $c580 + call PlaceString + ld de, $00cd + call StartSFX + callba Function104061 + ld c, $78 + call DelayFrames + ret +; 10095a + +INCBIN "baserom.gbc", $10095a, $100970 - $10095a + + +Function100970: ; 100970 + ld hl, TileMap + ld de, $dc00 + call $49a5 + ld hl, AttrMap + ld de, $dd68 + call $49a5 + call $49d2 + call $49ae + ret +; 100989 + +Function100989: ; 100989 + ld hl, $dc00 + ld de, TileMap + call $49a5 + call $49ae + callba Function104061 + ld hl, $dd68 + ld de, AttrMap + call $49a5 + ret +; 1009a5 + +Function1009a5: ; 1009a5 + ld bc, $0168 + ld a, $3 + call Function306b + ret +; 1009ae + +Function1009ae: ; 1009ae + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + ld hl, $d800 + ld de, AttrMap + ld c, $14 + ld b, $12 +.asm_1009bf + push bc +.asm_1009c0 + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .asm_1009c0 + ld bc, $000c + add hl, bc + pop bc + dec b + jr nz, .asm_1009bf + pop af + ld [rSVBK], a + ret +; 1009d2 + +Function1009d2: ; 1009d2 + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + ld a, [rVBK] + push af + ld a, $1 + ld [rVBK], a + ld hl, $d800 + ld de, VBGMap0 + ld bc, $0324 + call Functionf82 + pop af + ld [rVBK], a + pop af + ld [rSVBK], a + ret +; 1009f3 + +Function1009f3: ; 1009f3 + ld a, [hJoyDown] + and $5 + cp $5 + jr nz, .asm_100a07 + ld hl, $cd2a + set 4, [hl] + ld a, $f8 + ld [$cd2b], a + scf + ret + +.asm_100a07 + xor a + ret +; 100a09 + +Function100a09: ; 100a09 + call $4a2e + ld [$d431], a + callba Function4000 + ld a, [InLinkBattle] + cp $4 + jr nz, .asm_100a2a + call $4a87 + call $4da5 + ld a, $f + ld hl, $6e27 + rst FarCall + jr .asm_100a2d + +.asm_100a2a + call $4a53 + +.asm_100a2d + ret +; 100a2e + +Function100a2e: ; 100a2e + ld a, [$d0ec] + and a + jr nz, .asm_100a48 + ld a, [CurPlayerMove] + ld b, $e + cp $a5 + jr z, .asm_100a4f + ld b, $d + cp $ff + jr z, .asm_100a4f + ld a, [CurMoveNum] + jr .asm_100a50 + +.asm_100a48 + ld a, [CurPartyMon] + add $4 + jr .asm_100a50 + +.asm_100a4f + ld a, b + +.asm_100a50 + and $f + ret +; 100a53 + +Function100a53: ; 100a53 + ld a, [$d431] + ld [$cf56], a + ld a, $ff + ld [$cf52], a +.asm_100a5e + call Function8c1 + call DelayFrame + ld a, [$cf52] + inc a + jr z, .asm_100a5e + ld b, $a +.asm_100a6c + call DelayFrame + call Function8c1 + dec b + jr nz, .asm_100a6c + ld b, $a +.asm_100a77 + call DelayFrame + call Function908 + dec b + jr nz, .asm_100a77 + ld a, [$cf52] + ld [$d430], a + ret +; 100a87 + +Function100a87: ; 100a87 + call $4acf + call $4641 + ld a, $0 + ld [$cd27], a +.asm_100a92 + call DelayFrame + call GetJoypadPublic + ld a, $40 + ld hl, $4382 + rst FarCall + ld c, $1 + ld b, $3 + push bc + call $462d + pop bc + jr c, .asm_100ac7 + ld b, $1 + call $479c + jr c, .asm_100ac7 + call $49f3 + jr c, .asm_100ac7 + ld a, [$cd2b] + and a + jr nz, .asm_100ac7 + ld a, [$cd27] + bit 7, a + jr z, .asm_100a92 + call $4ae7 + jr .asm_100ace + +.asm_100ac7 + ld a, $f + ld [$d430], a + jr .asm_100ace + +.asm_100ace + ret +; 100acf + +Function100acf: ; 100acf + ld de, $4b0a + ld hl, $ccb5 + ld a, [$d431] + ld [hli], a + ld c, $1 +.asm_100adb + ld a, [de] + inc de + ld [hli], a + inc c + and a + jr nz, .asm_100adb + ld a, c + ld [$ccb4], a + ret +; 100ae7 + +Function100ae7: ; 100ae7 + ld de, $4b0a + ld hl, $cc62 +.asm_100aed + ld a, [de] + inc de + and a + jr z, .asm_100af8 + cp [hl] + jr nz, .asm_100aff + inc hl + jr .asm_100aed + +.asm_100af8 + ld a, [$cc61] + ld [$d430], a + ret + +.asm_100aff + ld a, $f + ld [$d430], a + ld a, $f1 + ld [$cd2b], a + ret +; 100b0a + +INCBIN "baserom.gbc", $100b0a, $100cb5 - $100b0a + + +Function100cb5: ; 100cb5 + call $4dd8 + ret c + ld hl, $cfa5 + set 7, [hl] + res 6, [hl] +.asm_100cc0 + call $4dd2 + ld a, $9 + ld hl, $41ba + rst FarCall + push bc + callba Function8cf69 + ld a, $41 + ld hl, $402d + rst FarCall + call $4dfd + pop bc + jr c, .asm_100d17 + ld a, [$cfa8] + and c + jr z, .asm_100cc0 + call Function1bee + ld a, [PartyCount] + inc a + ld b, a + ld a, [$cfa9] + cp b + jr z, .asm_100d17 + ld [$d0d8], a + ld a, [$ffa9] + ld b, a + bit 1, b + jr nz, .asm_100d17 + ld a, [$cfa9] + dec a + ld [CurPartyMon], a + ld c, a + ld b, $0 + ld hl, PartySpecies + add hl, bc + ld a, [hl] + ld [CurPartySpecies], a + ld de, $0008 + call StartSFX + call WaitSFX + and a + ret + +.asm_100d17 + ld de, $0008 + call StartSFX + call WaitSFX + scf + ret +; 100d22 + +INCBIN "baserom.gbc", $100d22, $100da5 - $100d22 + + +Function100da5: ; 100da5 + ld hl, $cd2a + res 3, [hl] + ld hl, $cd29 + res 0, [hl] + ret +; 100db0 + +INCBIN "baserom.gbc", $100db0, $100dc0 - $100db0 + + +Function100dc0: ; 100dc0 + ld a, [InLinkBattle] + cp $4 + jr nz, .asm_100dd0 + ld hl, $cd2a + bit 3, [hl] + jr z, .asm_100dd0 + scf + ret + +.asm_100dd0 + xor a + ret +; 100dd2 + +Function100dd2: ; 100dd2 + ld a, $1e + ld [OverworldDelay], a + ret +; 100dd8 + +Function100dd8: ; 100dd8 + ld c, $1 + ld b, $3 + ld a, $40 + ld hl, $462d + rst FarCall + jr c, .asm_100dfb + ld c, $3c + ld b, $1 + call $479c + jr c, .asm_100dfb + ld a, $40 + ld hl, $432e + rst FarCall + ld a, [$cd2b] + and a + jr nz, .asm_100dfb + xor a + ret + +.asm_100dfb + scf + ret +; 100dfd + +Function100dfd: ; 100dfd + ld a, [OverworldDelay] + ld c, a + ld a, $1e + sub c + ld c, a + ld b, $3 + push bc + ld a, $40 + ld hl, $462d + rst FarCall + pop bc + jr c, .asm_100e2b + ld b, $1 + call $479c + jr c, .asm_100e2b + call $49f3 + jr c, .asm_100e2b + ld a, $40 + ld hl, $432e + rst FarCall + ld a, [$cd2b] + and a + jr nz, .asm_100e2b + xor a + ret + +.asm_100e2b + scf + ret +; 100e2d + +INCBIN "baserom.gbc", $100e2d, $10389d - $100e2d SECTION "bank41",DATA,BANK[$41] @@ -49060,7 +52983,15 @@ Function104000: ; 104000 jp $4177 ; 104006 -INCBIN "baserom.gbc", $104006, $104061 - $104006 +INCBIN "baserom.gbc", $104006, $10402d - $104006 + + +Function10402d: ; 10402d + ld hl, $4033 + jp Function104177 +; 104033 + +INCBIN "baserom.gbc", $104033, $104061 - $104033 Function104061: ; 104061 From 5001d9b0230530fc8b94aeac0a0b6513983c31d8 Mon Sep 17 00:00:00 2001 From: yenatch Date: Sun, 28 Jul 2013 03:32:25 -0400 Subject: [PATCH 21/84] bank 6f is common text --- main.asm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/main.asm b/main.asm index 701be7c05..d29ffa3ed 100644 --- a/main.asm +++ b/main.asm @@ -31335,7 +31335,7 @@ Function3846c: ; 3846c call CopyBytes pop af jr c, .asm_384a3 - ld hl, $44d0 + ld hl, UnknownText_0x384d0 call PrintText .asm_384a3 @@ -31364,7 +31364,12 @@ Function3846c: ; 3846c ret ; 384d0 -INCBIN "baserom.gbc", $384d0, $38591 - $384d0 +UnknownText_0x384d0: ; 384d0 + text_jump UnknownText_0x1bcf9c, BANK(UnknownText_0x1bcf9c) + db "@" +; 384d5 + +INCBIN "baserom.gbc", $384d5, $38591 - $384d5 AIScoring: ; 38591 From 3070aeb91578c196db2c35ac9b08496032975d62 Mon Sep 17 00:00:00 2001 From: yenatch Date: Sun, 28 Jul 2013 03:39:05 -0400 Subject: [PATCH 22/84] make way for bank 6f --- main.asm | 10 +- text/common_2.asm | 1553 ------------------------ text/common_3.asm | 2876 +++++++++++++++++++++++---------------------- text/common_4.asm | 1455 +++++++++++++++++++++++ 4 files changed, 2948 insertions(+), 2946 deletions(-) delete mode 100644 text/common_2.asm create mode 100644 text/common_4.asm diff --git a/main.asm b/main.asm index d29ffa3ed..d7d8e1a56 100644 --- a/main.asm +++ b/main.asm @@ -56204,6 +56204,8 @@ INCLUDE "stats/pokedex/entries_2.asm" SECTION "bank6F",DATA,BANK[$6F] +; Common text II + _FruitBearingTreeText: ; 0x1bc000 db $0, "It's a fruit-", $4f db "bearing tree.", $57 @@ -56238,16 +56240,16 @@ INCBIN "baserom.gbc", $1bc06b, $1be08d - $1bc06b SECTION "bank70",DATA,BANK[$70] -; Common text II +; Common text III -INCLUDE "text/common_2.tx" +INCLUDE "text/common_3.tx" SECTION "bank71",DATA,BANK[$71] -; Common text III +; Common text IV -INCLUDE "text/common_3.tx" +INCLUDE "text/common_4.tx" SECTION "bank72",DATA,BANK[$72] diff --git a/text/common_2.asm b/text/common_2.asm deleted file mode 100644 index ed4d8e01f..000000000 --- a/text/common_2.asm +++ /dev/null @@ -1,1553 +0,0 @@ -UnknownText_0x1c0000: ; 1c0000 - db $0, "Oh, no picture?", $4f - db "Come again, OK?", $57 -; 1c0021 - -UnknownText_0x1c0021: ; 1c0021 - db $0, "An EGG? My talent", $4f - db "is worth more…", $57 -; 1c0043 - -UnknownText_0x1c0043: ; 1c0043 - db $0, "Hello, hello! I'm", $4f - db "the NAME RATER.", $51 - db "I rate the names", $4f - db "of #MON.", $51 - db "Would you like me", $4f - db "to rate names?", $57 -; 1c00a0 - -UnknownText_0x1c00a0: ; 1c00a0 - db $0, "Which #MON's", $4f - db "nickname should I", $55 - db "rate for you?", $58 -; 1c00cd - -UnknownText_0x1c00cd: ; 1c00cd - db $0, "Hm… @" - text_from_ram $d073 - db $0, "…", $4f - db "That's a fairly", $55 - db "decent name.", $51 - db "But, how about a", $4f - db "slightly better", $55 - db "nickname?", $51 - db "Want me to give it", $4f - db "a better name?", $57 -; 1c0142 - -UnknownText_0x1c0142: ; 1c0142 - db $0, "All right. What", $4f - db "name should we", $55 - db "give it, then?", $58 -; 1c0171 - -UnknownText_0x1c0171: ; 1c0171 - db $0, "That's a better", $4f - db "name than before!", $51 - db "Well done!", $57 -; 1c019e - -UnknownText_0x1c019e: ; 1c019e - db $0, "OK, then. Come", $4f - db "again sometime.", $57 -; 1c01be - -UnknownText_0x1c01be: ; 1c01be - db $0, "Hm… @" - text_from_ram $d073 - db $0, "?", $4f - db "What a great name!", $55 - db "It's perfect.", $51 - db "Treat @" - text_from_ram $d073 - db $0, $4f - db "with loving care.", $57 -; 1c0208 - -UnknownText_0x1c0208: ; 1c0208 - db $0, "Whoa… That's just", $4f - db "an EGG.", $57 -; 1c0222 - -UnknownText_0x1c0222: ; 1c0222 - db $0, "It might look the", $4f - db "same as before,", $51 - db "but this new name", $4f - db "is much better!", $51 - db "Well done!", $57 -; 1c0272 - -UnknownText_0x1c0272: ; 1c0272 - db $0, "All right. This", $4f - db "#MON is now", $55 - db "named @" - text_from_ram $d073 - db $0, ".", $58 -; 1c029c - -UnknownText_0x1c029c: ; 1c029c - text_from_ram $d073 - db $0, " gained@" - db "@" -; 1c02a9 - -UnknownText_0x1c02a9: ; 1c02a9 - db $0, $4f - db "a boosted", $55 - db "@" - deciram $d086, $24 - db $0, " EXP. Points!", $58 -; 1c02c9 - -UnknownText_0x1c02c9: ; 1c02c9 - db $0, $4f - db "@" - deciram $d086, $24 - db $0, " EXP. Points!", $58 -; 1c02df - -UnknownText_0x1c02df: ; 1c02df - db $0, "Go! @" - db "@" -; 1c02e6 - -UnknownText_0x1c02e6: ; 1c02e6 - db $0, "Do it! @" - db "@" -; 1c02f0 - -UnknownText_0x1c02f0: ; 1c02f0 - db $0, "Go for it,", $4f - db "@" - db "@" -; 1c02fe - -UnknownText_0x1c02fe: ; 1c02fe - db $0, "Your foe's weak!", $4f - db "Get'm, @" - db "@" -; 1c0317 - -UnknownText_0x1c0317: ; 1c0317 - text_from_ram $c621 - db $0, "!", $57 -; 1c031d - -UnknownText_0x1c031d: ; 1c031d - text_from_ram $c621 - db $0, ",@" - db "@" -; 1c0324 - -UnknownText_0x1c0324: ; 1c0324 - db $0, " that's", $4f - db "enough! Come back!@" - db "@" -; 1c0340 - -UnknownText_0x1c0340: ; 1c0340 - db $0, " OK!", $4f - db "Come back!@" - db "@" -; 1c0352 - -UnknownText_0x1c0352: ; 1c0352 - db $0, " good!", $4f - db "Come back!@" - db "@" -; 1c0366 - -UnknownText_0x1c0366: ; 1c0366 - db $0, " come", $4f - db "back!", $57 -; 1c0373 - -UnknownText_0x1c0373: ; 1c0373 - db $0, "Booted up a TM.", $58 -; 1c0384 - -UnknownText_0x1c0384: ; 1c0384 - db $0, "Booted up an HM.", $58 -; 1c0396 - -UnknownText_0x1c0396: ; 1c0396 - db $0, "It contained", $4f - db "@" - text_from_ram $d086 - db $0, ".", $51 - db "Teach @" - text_from_ram $d086 - db $0, $4f - db "to a #MON?", $57 -; 1c03c2 - -UnknownText_0x1c03c2: ; 1c03c2 - text_from_ram $d086 - db $0, " is", $4f - db "not compatible", $55 - db "with @" - text_from_ram $d073 - db $0, ".", $51 - db "It can't learn", $4f - db "@" - text_from_ram $d086 - db $0, ".", $58 -; 1c03fa - -UnknownText_0x1c03fa: ; 1c03fa - db $0, "You have no room", $4f - db "for any more", $55 - db "@" - text_from_ram $d073 - db $0, "S.", $58 -; 1c0421 - -UnknownText_0x1c0421: ; 1c0421 - db $0, "You received", $4f - db "@" - text_from_ram $d073 - db $0, "!", $58 -; 1c0436 - -UnknownText_0x1c0436: ; 1c0436 - db $0, "The link has been", $4f - db "cancelled.", $58 -; 1c0454 - -UnknownText_0x1c0454: ; 1c0454 - db $0, "Communication", $4f - db "error.", $58 -; 1c046a - -UnknownText_0x1c046a: ; 1c046a - db $0, "Must retrieve GIFT", $4f - db "at #MON CENTER.", $58 -; 1c048e - -UnknownText_0x1c048e: ; 1c048e - db $0, "Your friend isn't", $4f - db "ready.", $58 -; 1c04a7 - -UnknownText_0x1c04a7: ; 1c04a7 - db $0, "Sorry--only five", $4f - db "GIFTS a day.", $58 -; 1c04c6 - -UnknownText_0x1c04c6: ; 1c04c6 - db $0, "Sorry. One GIFT", $4f - db "a day per person.", $58 -; 1c04e9 - -UnknownText_0x1c04e9: ; 1c04e9 - text_from_ram $c903 - db $0, " sent", $4f - db "@" - text_from_ram $d073 - db $0, ".", $58 -; 1c04fa - -UnknownText_0x1c04fa: ; 1c04fa - text_from_ram $c903 - db $0, " sent", $4f - db "@" - text_from_ram $d073 - db $0, $55 - db "to @" - text_from_ram $c953 - db $0, "'s home.", $58 -; 1c051a - -UnknownText_0x1c051a: ; 1c051a - db $0, "Received", $4f - db "@" - text_from_ram $c850 - db $0, "'s CARD.", $58 -; 1c0531 - -UnknownText_0x1c0531: ; 1c0531 - text_from_ram $c850 - db $0, "'s CARD was", $4f - db "listed as no.@" - deciram $d265, $12 - db $0, ".", $58 -; 1c0555 - -UnknownText_0x1c0555: ; 1c0555 - db $0, "The CARD was not", $4f - db "registered.", $58 -; 1c0573 - -UnknownText_0x1c0573: ; 1c0573 - db $0, "The link has been", $4f - db "cancelled.", $58 -; 1c0591 - -UnknownText_0x1c0591: ; 1c0591 - db $0, "Communication", $4f - db "error.", $58 -; 1c05a7 - -_BadgeRequiredText: ; 1c05a7 - db $0, "Sorry! A new BADGE", $4f - db "is required.", $58 -; 1c05c8 - -UnknownText_0x1c05c8: ; 1c05c8 - db $0, "Can't use that", $4f - db "here.", $58 -; 1c05dd - -UnknownText_0x1c05dd: ; 1c05dd - text_from_ram $d086 - db $0, " used", $4f - db "CUT!", $58 -; 1c05ec - -UnknownText_0x1c05ec: ; 1c05ec - db $0, "There's nothing to", $4f - db "CUT here.", $58 -; 1c0609 - -UnknownText_0x1c0609: ; 1c0609 - db $0, "A blinding FLASH", $4f - db "lights the area!@" - text_waitbutton - db "@" -; 1c062e - -UnknownText_0x1c062e: ; 1c062e - db "@" -; 1c062f - -_UsedSurfText: ; 1c062f - text_from_ram $d086 - db $0, " used", $4f - db "SURF!", $57 -; 1c063f - -_CantSurfText: ; 1c063f - db $0, "You can't SURF", $4f - db "here.", $58 -; 1c0654 - -_AlreadySurfingText: ; 1c0654 - db $0, "You're already", $4f - db "SURFING.", $58 -; 1c066c - -_AskSurfText: ; 1c066c - db $0, "The water is calm.", $4f - db "Want to SURF?", $57 -; 1c068e - -UnknownText_0x1c068e: ; 1c068e - text_from_ram $d086 - db $0, " used", $4f - db "WATERFALL!", $57 -; 1c06a3 - -UnknownText_0x1c06a3: ; 1c06a3 - db $0, "Wow, it's a huge", $4f - db "waterfall.", $57 -; 1c06bf - -UnknownText_0x1c06bf: ; 1c06bf - db $0, "Do you want to use", $4f - db "WATERFALL?", $57 -; 1c06de - -UnknownText_0x1c06de: ; 1c06de - text_from_ram $d086 - db $0, " used", $4f - db "DIG!", $57 -; 1c06ed - -UnknownText_0x1c06ed: ; 1c06ed - db $0, $52, " used an", $4f - db "ESCAPE ROPE.", $57 -; 1c0705 - -UnknownText_0x1c0705: ; 1c0705 - db $0, "Can't use that", $4f - db "here.", $57 -; 1c071a - -UnknownText_0x1c071a: ; 1c071a - db $0, "Return to the last", $4f - db "#MON CENTER.", $57 -; 1c073b - -UnknownText_0x1c073b: ; 1c073b - db $0, "Can't use that", $4f - db "here.", $51 - db $57 -; 1c0751 - -UnknownText_0x1c0751: ; 1c0751 - db $0, "A #MON is using", $4f - db "STRENGTH already.", $58 -; 1c0774 - -UnknownText_0x1c0774: ; 1c0774 - text_from_ram $d086 - db $0, " used", $4f - db "STRENGTH!", $57 -; 1c0788 - -UnknownText_0x1c0788: ; 1c0788 - text_from_ram $d073 - db $0, " can", $4f - db "move boulders.", $58 -; 1c07a0 - -UnknownText_0x1c07a0: ; 1c07a0 - db $0, "A #MON may be", $4f - db "able to move this.", $51 - db "Want to use", $4f - db "STRENGTH?", $57 -; 1c07d8 - -UnknownText_0x1c07d8: ; 1c07d8 - db $0, "Boulders may now", $4f - db "be moved!", $57 -; 1c07f4 - -UnknownText_0x1c07f4: ; 1c07f4 - db $0, "A #MON may be", $4f - db "able to move this.", $57 -; 1c0816 - -UnknownText_0x1c0816: ; 1c0816 - text_from_ram $d086 - db $0, " used", $4f - db "WHIRLPOOL!", $58 -; 1c082b - -UnknownText_0x1c082b: ; 1c082b - db $0, "It's a vicious", $4f - db "whirlpool!", $51 - db "A #MON may be", $4f - db "able to pass it.", $57 -; 1c0864 - -UnknownText_0x1c0864: ; 1c0864 - db $0, "A whirlpool is in", $4f - db "the way.", $51 - db "Want to use", $4f - db "WHIRLPOOL?", $57 -; 1c0897 - -UnknownText_0x1c0897: ; 1c0897 - text_from_ram $d086 - db $0, " did a", $4f - db "HEADBUTT!", $58 -; 1c08ac - -UnknownText_0x1c08ac: ; 1c08ac - db $0, "Nope. Nothing…", $57 -; 1c08bc - -UnknownText_0x1c08bc: ; 1c08bc - db $0, "A #MON could be", $4f - db "in this tree.", $51 - db "Want to HEADBUTT", $4f - db "it?", $57 -; 1c08f0 - -UnknownText_0x1c08f0: ; 1c08f0 - text_from_ram $d086 - db $0, " used", $4f - db "ROCK SMASH!", $58 -; 1c0906 - -UnknownText_0x1c0906: ; 1c0906 - db $0, "Maybe a #MON", $4f - db "can break this.", $57 -; 1c0924 - -UnknownText_0x1c0924: ; 1c0924 - db $0, "This rock looks", $4f - db "breakable.", $51 - db "Want to use ROCK", $4f - db "SMASH?", $57 -; 1c0958 - -UnknownText_0x1c0958: ; 1c0958 - db $0, "Oh!", $4f - db "A bite!", $58 -; 1c0965 - -UnknownText_0x1c0965: ; 1c0965 - db $0, "Not even a nibble!", $58 -; 1c0979 - -UnknownText_0x1c0979: ; 1c0979 - db $0, "Looks like there's", $4f - db "nothing here.", $58 -; 1c099a - -UnknownText_0x1c099a: ; 1c099a - db $0, "You can't get off", $4f - db "here!", $57 -; 1c09b2 - -UnknownText_0x1c09b2: ; 1c09b2 - db $0, $52, " got on the", $4f - db "@" - text_from_ram $d086 - db $0, ".", $57 -; 1c09c7 - -UnknownText_0x1c09c7: ; 1c09c7 - db $0, $52, " got off", $4f - db "the @" - text_from_ram $d086 - db $0, ".", $57 -; 1c09dd - -UnknownText_0x1c09dd: ; 1c09dd - db $0, "This tree can be", $4f - db "CUT!", $51 - db "Want to use CUT?", $57 -; 1c0a05 - -UnknownText_0x1c0a05: ; 1c0a05 - db $0, "This tree can be", $4f - db "CUT!", $57 -; 1c0a1c - -UnknownText_0x1c0a1c: ; 1c0a1c - db $0, $52, " found", $4f - db "@" - text_from_ram $d099 - db $0, "!", $57 -; 1c0a2c - -UnknownText_0x1c0a2c: ; 1c0a2c - db $0, "But ", $52, " can't", $4f - db "carry any more", $55 - db "items.", $57 -; 1c0a4e - -UnknownText_0x1c0a4e: ; 1c0a4e - db $0, $52, " is out of", $4f - db "useable #MON!", $51 - db $52, " whited", $4f - db "out!", $57 -; 1c0a77 - -UnknownText_0x1c0a77: ; 1c0a77 - db $0, "Yes! ITEMFINDER", $4f - db "indicates there's", $55 - db "an item nearby.", $58 -; 1c0aa9 - -UnknownText_0x1c0aa9: ; 1c0aa9 - db $0, "Nope! ITEMFINDER", $4f - db "isn't responding.", $58 -; 1c0acc - -UnknownText_0x1c0acc: ; 1c0acc - text_from_ram $d099 - db $0, $4f - db "fainted!", $58 -; 1c0ada - -UnknownText_0x1c0ada: ; 1c0ada - db $0, $52, " is out of", $4f - db "useable #MON!", $51 - db $52, " whited", $4f - db "out!", $58 -; 1c0b03 - -UnknownText_0x1c0b03: ; 1c0b03 - text_from_ram $d099 - db $0, " used", $4f - db "SWEET SCENT!", $57 -; 1c0b1a - -UnknownText_0x1c0b1a: ; 1c0b1a - db $0, "Looks like there's", $4f - db "nothing here…", $57 -; 1c0b3b - -UnknownText_0x1c0b3b: ; 1c0b3b - db $0, $52, " sprinkled", $4f - db "water.", $51 - db "But nothing", $4f - db "happened…", $57 -; 1c0b65 - -UnknownText_0x1c0b65: ; 1c0b65 - db $0, $52, "'s #MON", $4f - db "were all healed!", $57 -; 1c0b7f - -UnknownText_0x1c0b7f: ; 1c0b7f - db $0, "An EGG can't hold", $4f - db "an item.", $58 -; 1c0b9a - -UnknownText_0x1c0b9a: ; 1c0b9a - db $0, "No items.", $57 -; 1c0ba5 - -UnknownText_0x1c0ba5: ; 1c0ba5 - db $0, "Throw away how", $4f - db "many?", $57 -; 1c0bbb - -UnknownText_0x1c0bbb: ; 1c0bbb - db $0, "Throw away @" - deciram $d10c, $12 - db $0, $4f - db "@" - text_from_ram $d086 - db $0, "(S)?", $57 -; 1c0bd8 - -UnknownText_0x1c0bd8: ; 1c0bd8 - db $0, "Threw away", $4f - db "@" - text_from_ram $d086 - db $0, "(S).", $58 -; 1c0bee - -UnknownText_0x1c0bee: ; 1c0bee - db $0, "OAK: ", $52, "!", $4f - db "This isn't the", $55 - db "time to use that!", $58 -; 1c0c17 - -UnknownText_0x1c0c17: ; 1c0c17 - db $0, "You don't have a", $4f - db "#MON!", $58 -; 1c0c2e - -UnknownText_0x1c0c2e: ; 1c0c2e - db $0, "Registered the", $4f - db "@" - text_from_ram $d086 - db $0, ".", $58 -; 1c0c45 - -UnknownText_0x1c0c45: ; 1c0c45 - db $0, "You can't register", $4f - db "that item.", $58 -; 1c0c63 - -UnknownText_0x1c0c63: ; 1c0c63 - db $0, "Where should this", $4f - db "be moved to?", $57 -; 1c0c83 - -UnknownText_0x1c0c83: ; 1c0c83 - db $0, $57 -; 1c0c85 - -UnknownText_0x1c0c85: ; 1c0c85 - db $0, "You can't use it", $4f - db "in a battle.", $58 -; 1c0ca3 - -UnknownText_0x1c0ca3: ; 1c0ca3 - db $0, "Are you a boy?", $4f - db "Or are you a girl?", $57 -; 1c0cc6 - -UnknownText_0x1c0cc6: ; 1c0cc6 - db $0, $5a, "'s", $4f - db "@" - text_from_ram $d086 - db "@" -; 1c0ccf - -UnknownText_0x1c0ccf: ; 1c0ccf - db "@" -; 1c0cd0 - -UnknownText_0x1c0cd0: ; 1c0cd0 - interpret_data - db $0, $4c, "went way up!", $58 -; 1c0ce0 - -UnknownText_0x1c0ce0: ; 1c0ce0 - db $0, " went up!", $58 -; 1c0ceb - -UnknownText_0x1c0ceb: ; 1c0ceb - db $0, $59, "'s", $4f - db "@" - text_from_ram $d086 - db "@" -; 1c0cf4 - -UnknownText_0x1c0cf4: ; 1c0cf4 - db "@" -; 1c0cf5 - -UnknownText_0x1c0cf5: ; 1c0cf5 - interpret_data - db $0, $4c, "sharply fell!", $58 -; 1c0d06 - -UnknownText_0x1c0d06: ; 1c0d06 - db $0, " fell!", $58 -; 1c0d0e - -UnknownText_0x1c0d0e: ; 1c0d0e - db $0, $5a, "@" - db "@" -; 1c0d12 - -UnknownText_0x1c0d12: ; 1c0d12 - db $0, $4f - db "made a whirlwind!", $58 -; 1c0d26 - -UnknownText_0x1c0d26: ; 1c0d26 - db $0, $4f - db "took in sunlight!", $58 -; 1c0d3a - -UnknownText_0x1c0d3a: ; 1c0d3a - db $0, $4f - db "lowered its head!", $58 -; 1c0d4e - -UnknownText_0x1c0d4e: ; 1c0d4e - db $0, $4f - db "is glowing!", $58 -; 1c0d5c - -UnknownText_0x1c0d5c: ; 1c0d5c - db $0, $4f - db "flew up high!", $58 -; 1c0d6c - -UnknownText_0x1c0d6c: ; 1c0d6c - db $0, $4f - db "dug a hole!", $58 -; 1c0d7a - -_ActorNameText: ; 1c0d7a - db $0, $5a, "@" - db "@" -; 1c0d7e - -_UsedMove1Text: ; 1c0d7e - db $0, $4f - db "used @" - db "@" -; 1c0d87 - -_UsedMove2Text: ; 1c0d87 - db $0, $4f - db "used @" - db "@" -; 1c0d90 - -_UsedInsteadText: ; 1c0d90 - db $0, "instead,", $55 - db "@" - db "@" -; 1c0d9c - -_MoveNameText: ; 1c0d9c - text_from_ram StringBuffer2 - db "@" -; 1c0da0 - -UnknownText_0x1c0da0: ; 1c0da0 - db "@" -; 1c0da1 - -_EndUsedMove1Text: ; 1c0da1 - db $0, "!", $57 -; 1c0da4 - -_EndUsedMove2Text: ; 1c0da4 - db $0, "!", $57 -; 1c0da7 - -_EndUsedMove3Text: ; 1c0da7 - db $0, "!", $57 -; 1c0daa - -_EndUsedMove4Text: ; 1c0daa - db $0, "!", $57 -; 1c0dad - -_EndUsedMove5Text: ; 1c0dad - db $0, "!", $57 -; 1c0db0 - -UnknownText_0x1c0db0: ; 1c0db0 - db $0, "Huh?", $51 - db "@" - db "@" -; 1c0db8 - -UnknownText_0x1c0db8: ; 1c0db8 - db $0, $57 -; 1c0dba - -UnknownText_0x1c0dba: ; 1c0dba - text_from_ram StringBuffer1 - db $0, " came", $4f - db "out of its EGG!@" - sound0x02 - text_waitbutton - db "@" -; 1c0dd7 - -UnknownText_0x1c0dd7: ; 1c0dd7 - db "@" -; 1c0dd8 - -UnknownText_0x1c0dd8: ; 1c0dd8 - db $0, "Give a nickname to", $4f - db "@" - text_from_ram StringBuffer1 - db $0, "?", $57 -; 1c0df3 - -UnknownText_0x1c0df3: ; 1c0df3 - db $0, "It's @" - text_from_ram $df2f - db $0, $4f - db "that was left with", $55 - db "the DAY-CARE LADY.", $57 -; 1c0e24 - -UnknownText_0x1c0e24: ; 1c0e24 - db $0, "It's @" - text_from_ram $def6 - db $0, $4f - db "that was left with", $55 - db "the DAY-CARE MAN.", $57 -; 1c0e54 - -UnknownText_0x1c0e54: ; 1c0e54 - db $0, "It's brimming with", $4f - db "energy.", $58 -; 1c0e6f - -UnknownText_0x1c0e6f: ; 1c0e6f - db $0, "It has no interest", $4f - db "in @" - text_from_ram $d073 - db $0, ".", $58 -; 1c0e8d - -UnknownText_0x1c0e8d: ; 1c0e8d - db $0, "It appears to care", $4f - db "for @" - text_from_ram $d073 - db $0, ".", $58 -; 1c0eac - -UnknownText_0x1c0eac: ; 1c0eac - db $0, "It's friendly with", $4f - db "@" - text_from_ram $d073 - db $0, ".", $58 -; 1c0ec6 - -UnknownText_0x1c0ec6: ; 1c0ec6 - db $0, "It shows interest", $4f - db "in @" - text_from_ram $d073 - db $0, ".", $58 -; 1c0ee3 - -_EmptyMailboxText: ; 1c0ee3 - db $0, "There's no MAIL", $4f - db "here.", $58 -; 1c0ef9 - -ClearedMailPutAwayText: ; 1c0ef9 - db $0, "The cleared MAIL", $4f - db "was put away.", $58 -; 1c0f19 - -MailPackFullText: ; 1c0f19 - db $0, "The PACK is full.", $58 -; 1c0f2c - -MailMessageLostText: ; 1c0f2c - db $0, "The MAIL's message", $4f - db "will be lost. OK?", $57 -; 1c0f51 - -MailAlreadyHoldingItemText: ; 1c0f51 - db $0, "It's already hold-", $4f - db "ing an item.", $58 -; 1c0f71 - -MailEggText: ; 1c0f71 - db $0, "An EGG can't hold", $4f - db "any MAIL.", $58 -; 1c0f8d - -MailMovedFromBoxText: ; 1c0f8d - db $0, "The MAIL was moved", $4f - db "from the MAILBOX.", $58 -; 1c0fb3 - -UnknownText_0x1c0fb3: ; 1c0fb3 - db $0, "Yes", $58 -; 1c0fb8 - -UnknownText_0x1c0fb8: ; 1c0fb8 - db $0, "No", $58 -; 1c0fbc - -UnknownText_0x1c0fbc: ; 1c0fbc - deciram $cf64, $13 - db $0, " @" - text_from_ram $d073 - db $0, $4f - db "Animation type @" - text_from_ram $d086 - db "@" -; 1c0fdc - -UnknownText_0x1c0fdc: ; 1c0fdc - db "@" -; 1c0fdd - -UnknownText_0x1c0fdd: ; 1c0fdd - db $0, "#MON number?", $57 -; 1c0feb - -UnknownText_0x1c0feb: ; 1c0feb - text_from_ram $d073 - db $0, " was", $4f - db "sent to BILL's PC.", $58 -; 1c1006 - -UnknownText_0x1c1006: ; 1c1006 - db $0, "You gotta have", $4f - db "#MON to call!", $58 -; 1c1024 - -UnknownText_0x1c1024: ; 1c1024 - db $0, "What?", $57 -; 1c102b - -UnknownText_0x1c102b: ; 1c102b - db $0, "There is a #MON", $4f - db "holding MAIL.", $51 - db "Please remove the", $4f - db "MAIL.", $58 -; 1c1062 - -UnknownText_0x1c1062: ; 1c1062 - db $0, "You don't have a", $4f - db "single #MON!", $58 -; 1c1080 - -UnknownText_0x1c1080: ; 1c1080 - db $0, "You can't deposit", $4f - db "your last #MON!", $58 -; 1c10a2 - -UnknownText_0x1c10a2: ; 1c10a2 - db $0, "You can't take any", $4f - db "more #MON.", $58 -; 1c10c0 - -UnknownText_0x1c10c0: ; 1c10c0 - db $0, "Caught @" - text_from_ram $d073 - db $0, "!", $58 -; 1c10cf - -UnknownText_0x1c10cf: ; 1c10cf - db $0, "Switch #MON?", $57 -; 1c10dd - -UnknownText_0x1c10dd: ; 1c10dd - db $0, "You already caught", $4f - db "a @" - text_from_ram $d073 - db $0, ".", $58 -; 1c10fa - -UnknownText_0x1c10fa: ; 1c10fa - db $0, "This Bug-Catching", $4f - db "Contest winner is@" - interpret_data - db $0, "…", $51 - db "@" - text_from_ram $d016 - db $0, ",", $4f - db "who caught a", $55 - db "@" - text_from_ram $d073 - db $0, "!@" - db "@" -; 1c113f - -UnknownText_0x1c113f: ; 1c113f - db $0, $51 - db "The winning score", $4f - db "was @" - deciram $d004, $23 - db $0, " points!", $58 -; 1c1166 - -UnknownText_0x1c1166: ; 1c1166 - db $0, "Placing second was", $4f - db "@" - text_from_ram $d016 - db $0, ",", $51 - db "who caught a", $4f - db "@" - text_from_ram $d073 - db $0, "!@" - db "@" -; 1c1196 - -UnknownText_0x1c1196: ; 1c1196 - db $0, $51 - db "The score was", $4f - db "@" - deciram $d008, $23 - db $0, " points!", $58 -; 1c11b5 - -UnknownText_0x1c11b5: ; 1c11b5 - db $0, "Placing third was", $4f - db "@" - text_from_ram $d016 - db $0, ",", $51 - db "who caught a", $4f - db "@" - text_from_ram $d073 - db $0, "!@" - db "@" -; 1c11e4 - -UnknownText_0x1c11e4: ; 1c11e4 - db $0, $51 - db "The score was", $4f - db "@" - deciram $d00c, $23 - db $0, " points!", $58 -; 1c1203 - -UnknownText_0x1c1203: ; 1c1203 - db $0, "Let me measure", $4f - db "that MAGIKARP.", $51 - db "…Hm, it measures", $4f - db "@" - text_from_ram $d073 - db $0, ".", $58 -; 1c123a - -UnknownText_0x1c123a: ; 1c123a - db $0, "CURRENT RECORD", $51 - db "@" - text_from_ram $d073 - db $0, " caught by", $4f - db "@" - text_from_ram $dfea - text_waitbutton - db "@" -; 1c1260 - -UnknownText_0x1c1260: ; 1c1260 - db "@" -; 1c1261 - -UnknownText_0x1c1261: ; 1c1261 - db $0, "Congratulations!", $51 - db "We have a match", $4f - db "with the ID number", $51 - db "of @" - text_from_ram $d073 - db $0, " in", $4f - db "your party.", $58 -; 1c12ae - -UnknownText_0x1c12ae: ; 1c12ae - db $0, "Congratulations!", $51 - db "We have a match", $4f - db "with the ID number", $51 - db "of @" - text_from_ram $d073 - db $0, " in", $4f - db "your PC BOX.", $58 -; 1c12fc - -UnknownText_0x1c12fc: ; 1c12fc - db $0, "Give a nickname to", $4f - db "the @" - text_from_ram $d073 - db $0, " you", $55 - db "received?", $57 -; 1c1328 - -UnknownText_0x1c1328: ; 1c1328 - db $0, "Bzzzzt! You must", $4f - db "have a #MON to", $55 - db "use this!", $58 -; 1c1353 - -UnknownText_0x1c1353: ; 1c1353 - db $0, $52, " turned on", $4f - db "the PC.", $58 -; 1c1368 - -UnknownText_0x1c1368: ; 1c1368 - db $0, "What do you want", $4f - db "to do?", $57 -; 1c1381 - -_KrissPCHowManyWithdrawText: ; 1c1381 - db $0, "How many do you", $4f - db "want to withdraw?", $57 -; 1c13a4 - -_KrissPCWithdrewItemsText: ; 1c13a4 - db $0, "Withdrew @" - deciram $d10c, $12 - db $0, $4f - db "@" - text_from_ram $d086 - db $0, "(S).", $58 -; 1c13bf - -_KrissPCNoRoomWithdrawText: ; 1c13bf - db $0, "There's no room", $4f - db "for more items.", $58 -; 1c13df - -UnknownText_0x1c13df: ; 1c13df - db $0, "No items here!", $58 -; 1c13ef - -_KrissPCHowManyDepositText: ; 1c13ef - db $0, "How many do you", $4f - db "want to deposit?", $57 -; 1c1411 - -_KrissPCDepositItemsText: ; 1c1411 - db $0, "Deposited @" - deciram $d10c, $12 - db $0, $4f - db "@" - text_from_ram $d086 - db $0, "(S).", $58 -; 1c142d - -_KrissPCNoRoomDepositText: ; 1c142d - db $0, "There's no room to", $4f - db "store items.", $58 -; 1c144d - -UnknownText_0x1c144d: ; 1c144d - db $0, $52, " turned on", $4f - db "the PC.", $58 -; 1c1462 - -UnknownText_0x1c1462: ; 1c1462 - db $0, "Access whose PC?", $57 -; 1c1474 - -UnknownText_0x1c1474: ; 1c1474 - db $0, "BILL's PC", $4f - db "accessed.", $51 - db "#MON Storage", $4f - db "System opened.", $58 -; 1c14a4 - -UnknownText_0x1c14a4: ; 1c14a4 - db $0, "Accessed own PC.", $51 - db "Item Storage", $4f - db "System opened.", $58 -; 1c14d2 - -UnknownText_0x1c14d2: ; 1c14d2 - db $0, "PROF.OAK's PC", $4f - db "accessed.", $51 - db "#DEX Rating", $4f - db "System opened.", $58 -; 1c1505 - -UnknownText_0x1c1505: ; 1c1505 - db $0, "…", $4f - db "Link closed…", $57 -; 1c1515 - -_OakPCText1: ; 1c1515 - db $0, "Want to get your", $4f - db "#DEX rated?", $57 -; 1c1533 - -_OakPCText2: ; 1c1533 - db $0, "Current #DEX", $4f - db "completion level:", $58 -; 1c1553 - -_OakPCText3: ; 1c1553 - text_from_ram $d099 - db $0, " #MON seen", $4f - db "@" - text_from_ram $d0ac - db $0, " #MON owned", $51 - db "PROF.OAK's", $4f - db "Rating:", $57 -; 1c1585 - -_OakRating01: ; 1c1585 - db $0, "Look for #MON", $4f - db "in grassy areas!", $57 -; 1c15a5 - -_OakRating02: ; 1c15a5 - db $0, "Good. I see you", $4f - db "understand how to", $55 - db "use # BALLS.", $57 -; 1c15d5 - -_OakRating03: ; 1c15d5 - db $0, "You're getting", $4f - db "good at this.", $51 - db "But you have a", $4f - db "long way to go.", $57 -; 1c1611 - -_OakRating04: ; 1c1611 - db $0, "You need to fill", $4f - db "up the #DEX.", $51 - db "Catch different", $4f - db "kinds of #MON!", $57 -; 1c164f - -_OakRating05: ; 1c164f - db $0, "You're trying--I", $4f - db "can see that.", $51 - db "Your #DEX is", $4f - db "coming together.", $57 -; 1c168c - -_OakRating06: ; 1c168c - db $0, "To evolve, some", $4f - db "#MON grow,", $51 - db "others use the", $4f - db "effects of STONES.", $57 -; 1c16ca - -_OakRating07: ; 1c16ca - db $0, "Have you gotten a", $4f - db "fishing ROD? You", $51 - db "can catch #MON", $4f - db "by fishing.", $57 -; 1c1709 - -_OakRating08: ; 1c1709 - db $0, "Excellent! You", $4f - db "seem to like col-", $55 - db "lecting things!", $57 -; 1c173b - -_OakRating09: ; 1c173b - db $0, "Some #MON only", $4f - db "appear during", $51 - db "certain times of", $4f - db "the day.", $57 -; 1c1773 - -_OakRating10: ; 1c1773 - db $0, "Your #DEX is", $4f - db "filling up. Keep", $55 - db "up the good work!", $57 -; 1c17a4 - -_OakRating11: ; 1c17a4 - db $0, "I'm impressed.", $4f - db "You're evolving", $51 - db "#MON, not just", $4f - db "catching them.", $57 -; 1c17e0 - -_OakRating12: ; 1c17e0 - db $0, "Have you met KURT?", $4f - db "His custom BALLS", $55 - db "should help.", $57 -; 1c1812 - -_OakRating13: ; 1c1812 - db $0, "Wow. You've found", $4f - db "more #MON than", $51 - db "the last #DEX", $4f - db "research project.", $57 -; 1c1853 - -_OakRating14: ; 1c1853 - db $0, "Are you trading", $4f - db "your #MON?", $51 - db "It's tough to do", $4f - db "this alone!", $57 -; 1c188b - -_OakRating15: ; 1c188b - db $0, "Wow! You've hit", $4f - db "200! Your #DEX", $55 - db "is looking great!", $57 -; 1c18bc - -_OakRating16: ; 1c18bc - db $0, "You've found so", $4f - db "many #MON!", $51 - db "You've really", $4f - db "helped my studies!", $57 -; 1c18f7 - -_OakRating17: ; 1c18f7 - db $0, "Magnificent! You", $4f - db "could become a", $51 - db "#MON professor", $4f - db "right now!", $57 -; 1c1932 - -_OakRating18: ; 1c1932 - db $0, "Your #DEX is", $4f - db "amazing! You're", $51 - db "ready to turn", $4f - db "professional!", $57 -; 1c196b - -_OakRating19: ; 1c196b - db $0, "Whoa! A perfect", $4f - db "#DEX! I've", $51 - db "dreamt about this!", $4f - db "Congratulations!", $57 -; 1c19aa - -_OakPCText4: ; 1c19aa - db $0, "The link to PROF.", $4f - db "OAK's PC closed.", $57 -; 1c19cd - -UnknownText_0x1c19cd: ; 1c19cd - db $0, "Triple-theme", $4f - db "trainer ranking!", $51 - db "The SAVE file you", $4f - db "just sent might", $55 - db "make the rankings!", $51 - db $57 -; 1c1a22 - -UnknownText_0x1c1a22: ; 1c1a22 - db $0, "There is no", $4f - db "ranking data.", $51 - db "Link to obtain", $4f - db "ranking data.", $51 - db $57 -; 1c1a5b - -UnknownText_0x1c1a5b: ; 1c1a5b - db $0, " , yeah!", $57 -; 1c1a65 - -UnknownText_0x1c1a65: ; 1c1a65 - db $0, "Darn…", $57 -; 1c1a6c - -UnknownText_0x1c1a6c: ; 1c1a6c - db $0, "Would you like to", $4f - db "end the Contest?", $57 -; 1c1a90 - -UnknownText_0x1c1a90: ; 1c1a90 - db $0, "Toss out how many", $4f - db "@" - text_from_ram $d086 - db $0, "(S)?", $57 -; 1c1aad - -UnknownText_0x1c1aad: ; 1c1aad - db $0, "Throw away @" - deciram $d10c, $12 - db $0, $4f - db "@" - text_from_ram $d086 - db $0, "(S)?", $57 -; 1c1aca - -UnknownText_0x1c1aca: ; 1c1aca - db $0, "Discarded", $4f - db "@" - text_from_ram $d073 - db $0, "(S).", $58 -; 1c1adf - -UnknownText_0x1c1adf: ; 1c1adf - db $0, "That's too impor-", $4f - db "tant to toss out!", $58 -; 1c1b03 - -UnknownText_0x1c1b03: ; 1c1b03 - db $0, "OAK: ", $52, "!", $4f - db "This isn't the", $55 - db "time to use that!", $57 -; 1c1b2c - -UnknownText_0x1c1b2c: ; 1c1b2c - db $0, "Took @" - text_from_ram $d050 - db $0, "'s", $4f - db "@" - text_from_ram $d073 - db $0, " and", $51 - db "made it hold", $4f - db "@" - text_from_ram $d086 - db $0, ".", $58 -; 1c1b57 - -UnknownText_0x1c1b57: ; 1c1b57 - db $0, "Made @" - text_from_ram $d050 - db $0, $4f - db "hold @" - text_from_ram $d086 - db $0, ".", $58 -; 1c1b6f - -UnknownText_0x1c1b6f: ; 1c1b6f - db $0, "Please remove the", $4f - db "MAIL first.", $58 -; 1c1b8e - -UnknownText_0x1c1b8e: ; 1c1b8e - text_from_ram $d050 - db $0, " isn't", $4f - db "holding anything.", $58 -; 1c1baa - -UnknownText_0x1c1baa: ; 1c1baa - db $0, "Item storage space", $4f - db "full.", $58 -; 1c1bc4 - -UnknownText_0x1c1bc4: ; 1c1bc4 - db $0, "Took @" - text_from_ram $d073 - db $0, $4f - db "from @" - text_from_ram $d050 - db $0, ".", $58 -; 1c1bdc - -UnknownText_0x1c1bdc: ; 1c1bdc - text_from_ram $d050 - db $0, " is", $4f - db "already holding", $51 - db "@" - text_from_ram $d073 - db $0, ".", $4f - db "Switch items?", $57 -; 1c1c09 - -UnknownText_0x1c1c09: ; 1c1c09 - db $0, "This item can't be", $4f - db "held.", $58 -; 1c1c22 - -UnknownText_0x1c1c22: ; 1c1c22 - db $0, "The MAIL will lose", $4f - db "its message. OK?", $57 -; 1c1c47 - -UnknownText_0x1c1c47: ; 1c1c47 - db $0, "MAIL detached from", $4f - db "@" - text_from_ram $d073 - db $0, ".", $58 -; 1c1c62 - -UnknownText_0x1c1c62: ; 1c1c62 - db $0, "There's no space", $4f - db "for removing MAIL.", $58 -; 1c1c86 - -UnknownText_0x1c1c86: ; 1c1c86 - db $0, "Send the removed", $4f - db "MAIL to your PC?", $57 -; 1c1ca9 - -UnknownText_0x1c1ca9: ; 1c1ca9 - db $0, "Your PC's MAILBOX", $4f - db "is full.", $58 -; 1c1cc4 - -UnknownText_0x1c1cc4: ; 1c1cc4 - db $0, "The MAIL was sent", $4f - db "to your PC.", $58 -; 1c1ce3 - -UnknownText_0x1c1ce3: ; 1c1ce3 - db $0, "Not enough HP!", $58 -; 1c1cf3 - -UnknownText_0x1c1cf3: ; 1c1cf3 - db $0, "An item in your", $4f - db "PACK may be", $51 - db "registered for use", $4f - db "on SELECT Button.", $57 -; 1c1d35 - -_OakText1: ; 1c1d35 - db $0, "Hello! Sorry to", $4f - db "keep you waiting!", $51 - db "Welcome to the", $4f - db "world of #MON!", $51 - db "My name is OAK.", $51 - db "People call me the", $4f - db "#MON PROF.", $58 -; 1c1da4 - -_OakText2: ; 1c1da4 - db $0, "This world is in-", $4f - db "habited by crea-", $55 - db "tures that we call", $55 - db "#MON.@" - db "@" -; 1c1de2 - -_OakText3: ; 1c1de2 - text_waitbutton - db "@" -; 1c1de4 - -UnknownText_0x1c1de4: ; 1c1de4 - db "@" -; 1c1de5 - -_OakText4: ; 1c1de5 - db $0, "People and #MON", $4f - db "live together by", $51 - db "supporting each", $4f - db "other.", $51 - db "Some people play", $4f - db "with #MON, some", $55 - db "battle with them.", $58 -; 1c1e51 - -_OakText5: ; 1c1e51 - db $0, "But we don't know", $4f - db "everything about", $55 - db "#MON yet.", $51 - db "There are still", $4f - db "many mysteries to", $55 - db "solve.", $51 - db "That's why I study", $4f - db "#MON every day.", $58 -; 1c1ec9 diff --git a/text/common_3.asm b/text/common_3.asm index 38a532e4a..ed4d8e01f 100644 --- a/text/common_3.asm +++ b/text/common_3.asm @@ -1,1455 +1,1553 @@ -_OakText6: ; 0x1c4000 - db $0, "Now, what did you", $4f - db "say your name was?", $58 -; 0x1c4026 +UnknownText_0x1c0000: ; 1c0000 + db $0, "Oh, no picture?", $4f + db "Come again, OK?", $57 +; 1c0021 -_OakText7: ; 0x1c4026 - db $0, $52, ", are you", $4f - db "ready?", $51 - db "Your very own", $4f - db "#MON story is", $55 - db "about to unfold.", $51 - db "You'll face fun", $4f - db "times and tough", $55 - db "challenges.", $51 - db "A world of dreams", $4f - db "and adventures", $51 - db "with #MON", $4f - db "awaits! Let's go!", $51 - db "I'll be seeing you", $4f - db "later!", $57 -; 0x1c40e6 +UnknownText_0x1c0021: ; 1c0021 + db $0, "An EGG? My talent", $4f + db "is worth more…", $57 +; 1c0043 -UnknownText_0x1c40e6: ; 0x1c40e6 - db $0, "The clock's time", $4f - db "may be wrong.", $51 - db "Please reset the", $4f - db "time.", $58 -; 0x1c411c +UnknownText_0x1c0043: ; 1c0043 + db $0, "Hello, hello! I'm", $4f + db "the NAME RATER.", $51 + db "I rate the names", $4f + db "of #MON.", $51 + db "Would you like me", $4f + db "to rate names?", $57 +; 1c00a0 -UnknownText_0x1c411c: ; 0x1c411c - db $0, "Set with the", $4f - db "Control Pad.", $51 - db "Confirm: A Button", $4f - db "Cancel: B Button", $57 -; 0x1c415b +UnknownText_0x1c00a0: ; 1c00a0 + db $0, "Which #MON's", $4f + db "nickname should I", $55 + db "rate for you?", $58 +; 1c00cd -UnknownText_0x1c415b: ; 0x1c415b - db $0, "Is this OK?", $57 -; 0x1c4168 - -UnknownText_0x1c4168: ; 0x1c4168 - db $0, "The clock has been", $4f - db "reset.", $57 -; 0x1c4183 - -UnknownText_0x1c4183: ; 0x1c4183 - db $0, "Too much time has", $4f - db "elapsed. Please", $55 - db "try again.", $58 -; 0x1c41b1 - -UnknownText_0x1c41b1: ; 0x1c41b1 - db $0, "If you trade that", $4f - db "#MON, you won't", $55 - db "be able to battle.", $58 -; 0x1c41e6 - -UnknownText_0x1c41e6: ; 0x1c41e6 - db $0, "Your friend's", $4f - db "@" - text_from_ram $d073 - db $0, " appears", $55 - db "to be abnormal!", $58 -; 0x1c4212 - -UnknownText_0x1c4212: ; 0x1c4212 - db $0, "Trade @" - text_from_ram $d004 - db $0, $4f - db "for @" - text_from_ram $d073 - db $0, "?", $57 -; 0x1c422a - -UnknownText_0x1c422a: ; 0x1c422a - db $0, "To enter a mobile", $4f - db "battle, you must", $51 - db "pick a team of", $4f - db "three #MON.", $51 - db "Is that OK?", $57 -; 0x1c4275 - -UnknownText_0x1c4275: ; 0x1c4275 - db $0, "Need more info on", $4f - db "mobile battles?", $57 -; 0x1c4298 - -UnknownText_0x1c4298: ; 0x1c4298 - db $0, "For a mobile", $4f - db "battle, choose", $55 - db "three #MON.", $51 - db "The maximum daily", $4f - db "play time is ten", $51 - db "minutes for each", $4f - db "linked player.", $51 - db "If a battle isn't", $4f - db "finished within", $51 - db "the time limit,", $4f - db "the player with", $51 - db "the fewest fainted", $4f - db "#MON wins.", $51 - db "If tied, the team", $4f - db "that lost the", $51 - db "least amount of HP", $4f - db "wins.", $57 -; 0x1c439c - -UnknownText_0x1c439c: ; 0x1c439c - db $0, "Today's remaining", $4f - db "time is @" - deciram $d086, $12 - db $0, " min.", $51 - db "Would you like to", $4f - db "battle?", $57 -; 0x1c43dc - -UnknownText_0x1c43dc: ; 0x1c43dc - db $0, "There are only @" - deciram $d086, $12 - db $0, $4f - db "min. left today.", $51 - db "Want a quick", $4f - db "battle?", $57 -; 0x1c4419 - -UnknownText_0x1c4419: ; 0x1c4419 - db $0, "There is only", $4f - db "1 min. left today!", $51 - db "Want to rush", $4f - db "through a battle?", $57 -; 0x1c445a - -UnknownText_0x1c445a: ; 0x1c445a - db $0, "There is less than", $4f - db "1 min. left today!", $51 - db "Please try again", $4f - db "tomorrow.", $57 -; 0x1c449c - -UnknownText_0x1c449c: ; 0x1c449c - db $0, "Try again using", $4f - db "the same settings?", $57 -; 0x1c44c0 - -UnknownText_0x1c44c0: ; 0x1c44c0 - db $0, "There is less than", $4f - db "1 min. left today!", $57 -; 0x1c44e7 - -UnknownText_0x1c44e7: ; 0x1c44e7 - db $0, "No time left for", $4f - db "linking today.", $57 -; 0x1c4508 - -UnknownText_0x1c4508: ; 0x1c4508 - db $0, "Pick three #MON", $4f - db "for battle.", $57 -; 0x1c4525 - -UnknownText_0x1c4525: ; 0x1c4525 - db $0, "Today's remaining", $4f - db "time is @" - deciram $d086, $12 - db $0, " min.", $57 -; 0x1c454b - -UnknownText_0x1c454b: ; 0x1c454b - db $0, "Would you like to", $4f - db "save the game?", $57 -; 0x1c456d - -UnknownText_0x1c456d: ; 0x1c456d - db $0, "SAVING… DON'T TURN", $4f - db "OFF THE POWER.", $57 -; 0x1c4590 - -UnknownText_0x1c4590: ; 0x1c4590 - db $0, $52, " saved", $4f - db "the game.", $57 -; 0x1c45a3 - -UnknownText_0x1c45a3: ; 0x1c45a3 - db $0, "There is already a", $4f - db "save file. Is it", $55 - db "OK to overwrite?", $57 -; 0x1c45d9 - -UnknownText_0x1c45d9: ; 0x1c45d9 - db $0, "There is another", $4f - db "save file. Is it", $55 - db "OK to overwrite?", $57 -; 0x1c460d - -UnknownText_0x1c460d: ; 0x1c460d - db $0, "The save file is", $4f - db "corrupted!", $58 -; 0x1c462a - -UnknownText_0x1c462a: ; 0x1c462a - db $0, "When you change a", $4f - db "#MON BOX, data", $55 - db "will be saved. OK?", $57 -; 0x1c465f - -UnknownText_0x1c465f: ; 0x1c465f - db $0, "Each time you move", $4f - db "a #MON, data", $55 - db "will be saved. OK?", $57 -; 0x1c4693 - -UnknownText_0x1c4693: ; 0x1c4693 - db $0, "The window save", $4f - db "area was exceeded.", $57 -; 0x1c46b7 - -UnknownText_0x1c46b7: ; 0x1c46b7 - db $0, "No windows avail-", $4f - db "able for popping.", $57 -; 0x1c46dc - -UnknownText_0x1c46dc: ; 0x1c46dc - db $0, "Corrupted event!", $58 -; 0x1c46ee - -_ObjectEventText: ; 0x1c46ee - db $0, "Object event", $57 -; 0x1c46fc - -UnknownText_0x1c46fc: ; 0x1c46fc - db $0, "BG event", $57 -; 0x1c4706 - -UnknownText_0x1c4706: ; 0x1c4706 - db $0, "Coordinates event", $57 -; 0x1c4719 - -UnknownText_0x1c4719: ; 0x1c4719 - db $0, $52, " received", $4f - db "@" - text_from_ram $d0ac - db $0, ".", $57 -; 0x1c472c - -UnknownText_0x1c472c: ; 0x1c472c - db $0, $52, " put the", $4f - db "@" - text_from_ram $d073 - db $0, " in", $55 - db "the @" - text_from_ram $d099 - db $0, ".", $58 -; 0x1c474b - -UnknownText_0x1c474b: ; 0x1c474b - db $0, "The @" - text_from_ram $d099 - db $0, $4f - db "is full…", $58 -; 0x1c475f - -UnknownText_0x1c475f: ; 0x1c475f - db $0, "I see all.", $4f - db "I know all…", $51 - db "Certainly, I know", $4f - db "of your #MON!", $57 -; 0x1c4797 - -UnknownText_0x1c4797: ; 0x1c4797 - db $0, "Whaaaat? I can't", $4f - db "tell a thing!", $51 - db "How could I not", $4f - db "know of this?", $57 -; 0x1c47d4 - -UnknownText_0x1c47d4: ; 0x1c47d4 - db $0, "Hm… I see you met", $4f - db "@" - text_from_ram $d003 - db $0, " here:", $55 - db "@" - text_from_ram $d00e - db $0, "!", $58 -; 0x1c47fa - -UnknownText_0x1c47fa: ; 0x1c47fa - db $0, "The time was", $4f - db "@" - text_from_ram $d01f - db $0, "!", $51 - db "Its level was @" - text_from_ram $d036 - db $0, "!", $51 - db "Am I good or what?", $58 -; 0x1c4837 - -UnknownText_0x1c4837: ; 0x1c4837 +UnknownText_0x1c00cd: ; 1c00cd db $0, "Hm… @" - text_from_ram $d003 - db $0, $4f - db "came from @" - text_from_ram $d02a - db $0, $55 - db "in a trade?", $51 - db "@" - text_from_ram $d00e - db $0, $4f - db "was where @" - text_from_ram $d02a - db $0, $55 - db "met @" - text_from_ram $d003 - db $0, "!", $58 -; 0x1c487f - -UnknownText_0x1c487f: ; 0x1c487f - db $0, "What!? Incredible!", $51 - db "I don't understand", $4f - db "how, but it is", $51 - db "incredible!", $4f - db "You are special.", $51 - db "I can't tell where", $4f - db "you met it, but it", $55 - db "was at level @" - text_from_ram $d036 - db $0, ".", $51 - db "Am I good or what?", $58 -; 0x1c491d - -UnknownText_0x1c491d: ; 0x1c491d - db $0, "Hey!", $51 - db "That's an EGG!", $51 - db "You can't say that", $4f - db "you've met it yet…", $57 -; 0x1c4955 - -UnknownText_0x1c4955: ; 0x1c4955 - db $0, "Fufufu! I saw that", $4f - db "you'd do nothing!", $57 -; 0x1c497a - -UnknownText_0x1c497a: ; 0x1c497a - db $0, "Incidentally…", $51 - db "It would be wise", $4f - db "to raise your", $51 - db "#MON with a", $4f - db "little more care.", $57 -; 0x1c49c6 - -UnknownText_0x1c49c6: ; 0x1c49c6 - db $0, "Incidentally…", $51 - db "It seems to have", $4f - db "grown a little.", $51 - db "@" - text_from_ram $d003 - db $0, " seems", $4f - db "to be becoming", $55 - db "more confident.", $57 -; 0x1c4a21 - -UnknownText_0x1c4a21: ; 0x1c4a21 - db $0, "Incidentally…", $51 - db "@" - text_from_ram $d003 - db $0, " has", $4f - db "grown. It's gained", $55 - db "much strength.", $57 -; 0x1c4a5b - -UnknownText_0x1c4a5b: ; 0x1c4a5b - db $0, "Incidentally…", $51 - db "It certainly has", $4f - db "grown mighty!", $51 - db "This @" - text_from_ram $d003 - db $0, $4f - db "must have come", $51 - db "through numerous", $4f - db "#MON battles.", $51 - db "It looks brimming", $4f - db "with confidence.", $57 -; 0x1c4ae5 - -UnknownText_0x1c4ae5: ; 0x1c4ae5 - db $0, "Incidentally…", $51 - db "I'm impressed by", $4f - db "your dedication.", $51 - db "It's been a long", $4f - db "time since I've", $51 - db "seen a #MON as", $4f - db "mighty as this", $55 - db "@" - text_from_ram $d003 - db $0, ".", $51 - db "I'm sure that", $4f - db "seeing @" - text_from_ram $d003 - db $0, $51 - db "in battle would", $4f - db "excite anyone.", $57 -; 0x1c4b92 - -UnknownText_0x1c4b92: ; 0x1c4b92 - db $0, "Congratulations!", $4f - db "Your @" - text_from_ram $d086 - db $50 -; 0x1c4bae - -UnknownText_0x1c4bae: ; 0x1c4bae - db $50 -; 0x1c4baf - -UnknownText_0x1c4baf: ; 0x1c4baf - db $0, $51 - db "evolved into", $4f - db "@" text_from_ram $d073 - db $0, "!", $57 -; 0x1c4bc5 - -UnknownText_0x1c4bc5: ; 0x1c4bc5 - db $0, "Huh? @" - text_from_ram $d086 - db $0, $4f - db "stopped evolving!", $58 -; 0x1c4be3 - -UnknownText_0x1c4be3: ; 0x1c4be3 - db $0, "What? @" - text_from_ram $d086 - db $0, $4f - db "is evolving!", $57 -; 0x1c4bfd - -UnknownText_0x1c4bfd: ; 0x1c4bfd - db $0, "How many?", $57 -; 0x1c4c08 - -UnknownText_0x1c4c08: ; 0x1c4c08 - deciram $d10c, $12 - db $0, " @" - text_from_ram $d086 - db $0, "(S)", $4f - db "will be ¥@" - deciram $ffc3, $36 - db $0, ".", $57 -; 0x1c4c28 - -UnknownText_0x1c4c28: ; 0x1c4c28 - db $0, "Hello, dear.", $51 - db "I sell inexpensive", $4f - db "herbal medicine.", $51 - db "They're good, but", $4f - db "a trifle bitter.", $51 - db "Your #MON may", $4f - db "not like them.", $51 - db "Hehehehe…", $57 -; 0x1c4ca3 - -UnknownText_0x1c4ca3: ; 0x1c4ca3 - db $0, "How many?", $57 -; 0x1c4cae - -UnknownText_0x1c4cae: ; 0x1c4cae - deciram $d10c, $12 - db $0, " @" - text_from_ram $d086 - db $0, "(S)", $4f - db "will be ¥@" - deciram $ffc3, $36 - db $0, ".", $57 -; 0x1c4cce - -UnknownText_0x1c4cce: ; 0x1c4cce - db $0, "Thank you, dear.", $4f - db "Hehehehe…", $57 -; 0x1c4cea - -UnknownText_0x1c4cea: ; 0x1c4cea - db $0, "Oh? Your PACK is", $4f - db "full, dear.", $57 -; 0x1c4d08 - -UnknownText_0x1c4d08: ; 0x1c4d08 - db $0, "Hehehe… You don't", $4f - db "have the money.", $57 -; 0x1c4d2a - -UnknownText_0x1c4d2a: ; 0x1c4d2a - db $0, "Come again, dear.", $4f - db "Hehehehe…", $57 -; 0x1c4d47 - -UnknownText_0x1c4d47: ; 0x1c4d47 - db $0, "Hiya! Care to see", $4f - db "some bargains?", $51 - db "I sell rare items", $4f - db "that nobody else", $51 - db "carries--but only", $4f - db "one of each item.", $57 -; 0x1c4db0 - -UnknownText_0x1c4db0: ; 0x1c4db0 - text_from_ram $d086 - db $0, " costs", $4f - db "¥@" - deciram $ffc3, $36 - db $0, ". Want it?", $57 -; 0x1c4dcd - -UnknownText_0x1c4dcd: ; 0x1c4dcd - db $0, "Thanks.", $57 -; 0x1c4dd6 - -UnknownText_0x1c4dd6: ; 0x1c4dd6 - db $0, "Uh-oh, your PACK", $4f - db "is chock-full.", $57 -; 0x1c4df7 - -UnknownText_0x1c4df7: ; 0x1c4df7 - db $0, "You bought that", $4f - db "already. I'm all", $55 - db "sold out of it.", $57 -; 0x1c4e28 - -UnknownText_0x1c4e28: ; 0x1c4e28 - db $0, "Uh-oh, you're", $4f - db "short on funds.", $57 -; 0x1c4e46 - -UnknownText_0x1c4e46: ; 0x1c4e46 - db $0, "Come by again", $4f - db "sometime.", $57 -; 0x1c4e5f - -UnknownText_0x1c4e5f: ; 0x1c4e5f - db $0, "What's up? Need", $4f - db "some medicine?", $57 -; 0x1c4e7e - -UnknownText_0x1c4e7e: ; 0x1c4e7e - db $0, "How many?", $57 -; 0x1c4e89 - -UnknownText_0x1c4e89: ; 0x1c4e89 - deciram $d10c, $12 - db $0, " @" - text_from_ram $d086 - db $0, "(S)", $4f - db "will cost ¥@" - deciram $ffc3, $36 - db $0, ".", $57 -; 0x1c4eab - -UnknownText_0x1c4eab: ; 0x1c4eab - db $0, "Thanks much!", $57 -; 0x1c4eb9 - -UnknownText_0x1c4eb9: ; 0x1c4eb9 - db $0, "You don't have any", $4f - db "more space.", $57 -; 0x1c4ed8 - -UnknownText_0x1c4ed8: ; 0x1c4ed8 - db $0, "Huh? That's not", $4f - db "enough money.", $57 -; 0x1c4ef6 - -UnknownText_0x1c4ef6: ; 0x1c4ef6 - db $0, "All right.", $4f - db "See you around.", $57 -; 0x1c4f12 - -UnknownText_0x1c4f12: ; 0x1c4f12 - db $0, "You don't have", $4f - db "anything to sell.", $58 -; 0x1c4f33 - -UnknownText_0x1c4f33: ; 0x1c4f33 - db $0, "How many?", $57 -; 0x1c4f3e - -UnknownText_0x1c4f3e: ; 0x1c4f3e - db $0, "I can pay you", $4f - db "¥@" - deciram $ffc3, $36 - db $0, ".", $51 - db "Is that OK?", $57 -; 0x1c4f62 - -UnknownText_0x1c4f62: ; 0x1c4f62 - db $0, "Welcome! How may I", $4f - db "help you?", $57 -; 0x1c4f80 - -UnknownText_0x1c4f80: ; 0x1c4f80 - db $0, "Here you are.", $4f - db "Thank you!", $57 -; 0x1c4f9a - -UnknownText_0x1c4f9a: ; 0x1c4f9a - db $0, "You don't have", $4f - db "enough money.", $57 -; 0x1c4fb7 - -UnknownText_0x1c4fb7: ; 0x1c4fb7 - db $0, "You can't carry", $4f - db "any more items.", $57 -; 0x1c4fd7 - -UnknownText_0x1c4fd7: ; 0x1c4fd7 - db $0, "Sorry, I can't buy", $4f - db "that from you.", $58 -; 0x1c4ff9 - -UnknownText_0x1c4ff9: ; 0x1c4ff9 - db $0, "Please come again!", $57 -; 0x1c500d - -UnknownText_0x1c500d: ; 0x1c500d - db $0, "Can I do anything", $4f - db "else for you?", $57 -; 0x1c502e - -UnknownText_0x1c502e: ; 0x1c502e - db $0, "Got ¥@" - deciram $ffc3, $36 - db $0, " for", $4f - db "@" - text_from_ram $d086 - db $0, "(S).", $57 -; 0x1c5049 - -UnknownText_0x1c5049: ; 0x1c5049 - db $0, "Bet how many", $4f - db "coins?", $57 -; 0x1c505e - -UnknownText_0x1c505e: ; 0x1c505e - db $0, "Start!", $57 -; 0x1c5066 - -UnknownText_0x1c5066: ; 0x1c5066 - db $0, "Not enough", $4f - db "coins.", $58 -; 0x1c5079 - -UnknownText_0x1c5079: ; 0x1c5079 - db $0, "Darn… Ran out of", $4f - db "coins…", $57 -; 0x1c5092 - -UnknownText_0x1c5092: ; 0x1c5092 - db $0, "Play again?", $57 -; 0x1c509f - -UnknownText_0x1c509f: ; 0x1c509f - db $0, "lined up!", $4f - db "Won @" - text_from_ram $d086 - db $0, " coins!", $57 -; 0x1c50bb - -UnknownText_0x1c50bb: ; 0x1c50bb - db $0, "Darn!", $57 -; 0x1c50c2 - -_MobileStadiumEntryText: ; 0x1c50c2 - db $0, "Data for use in", $4f - db "the MOBILE STADIUM", $51 - db "of the N64 #MON", $4f - db "STADIUM 2 can be", $55 - db "read here.", $51 - db "Read the data?", $57 -; 0x1c5121 - -_MobileStadiumSuccessText: ; 0x1c5121 - db $0, "Data transfer is", $4f - db "complete.", $51 - db "We hope you enjoy", $4f - db "MOBILE STADIUM", $51 - db "battles in the N64", $4f - db "#MON STADIUM 2.", $51 - db $57 -; 0x1c5182 - -UnknownText_0x1c5182: ; 0x1c5182 - db $0, "Clock time unknown", $57 -; 0x1c5196 - -UnknownText_0x1c5196: ; 0x1c5196 - db $0, "Delete the saved", $4f - db "LOG-IN PASSWORD?", $57 -; 0x1c51b9 - -UnknownText_0x1c51b9: ; 0x1c51b9 - db $0, "Deleted the LOG-IN", $4f - db "PASSWORD.", $57 -; 0x1c51d7 - -UnknownText_0x1c51d7: ; 0x1c51d7 - db $0, "Pick three #MON", $4f - db "for battle.", $58 -; 0x1c51f4 - -UnknownText_0x1c51f4: ; 0x1c51f4 - text_from_ram $d006 - db $0, ",", $4f - db "@" - text_from_ram $d00c - db $0, " and", $55 - db "@" - text_from_ram $d012 - db $0, ".", $51 - db "Use these three?", $57 -; 0x1c521c - -UnknownText_0x1c521c: ; 0x1c521c - db $0, "Only three #MON", $4f - db "may enter.", $58 -; 0x1c5238 - -UnknownText_0x1c5238: ; 0x1c5238 - db $0, "The CARD FOLDER", $4f - db "stores your and", $51 - db "your friends'", $4f - db "CARDS.", $51 - db "A CARD contains", $4f - db "information like", $51 - db "the person's name,", $4f - db "phone number and", $55 - db "profile.", $51 - db $57 -; 0x1c52bc - -UnknownText_0x1c52bc: ; 0x1c52bc - db $0, "This is your CARD.", $51 - db "Once you've", $4f - db "entered your phone", $51 - db "number, you can", $4f - db "trade CARDS with", $55 - db "your friends.", $51 - db $57 -; 0x1c531e - -UnknownText_0x1c531e: ; 0x1c531e - db $0, "If you have your", $4f - db "friend's CARD, you", $51 - db "can use it to make", $4f - db "a call from a", $51 - db "mobile phone on", $4f - db "the 2nd floor of a", $55 - db "#MON CENTER.", $51 - db $57 -; 0x1c5394 - -UnknownText_0x1c5394: ; 0x1c5394 - db $0, "To safely store", $4f - db "your collection of", $51 - db "CARDS, you must", $4f - db "set a PASSCODE for", $55 - db "your CARD FOLDER.", $51 - db $57 -; 0x1c53ee - -UnknownText_0x1c53ee: ; 0x1c53ee - db $0, "If the CARD FOLDER", $4f - db "is deleted, all", $51 - db "its CARDS and the", $4f - db "PASSCODE will also", $55 - db "be deleted.", $51 - db "Beware--a deleted", $4f - db "CARD FOLDER can't", $55 - db "be restored.", $51 - db "Want to delete", $4f - db "your CARD FOLDER?", $57 -; 0x1c5494 - -UnknownText_0x1c5494: ; 0x1c5494 - db $0, "Are you sure you", $4f - db "want to delete it?", $57 -; 0x1c54b9 - -UnknownText_0x1c54b9: ; 0x1c54b9 - db $0, "The CARD FOLDER", $4f - db "has been deleted.", $51 - db $57 -; 0x1c54dd - -UnknownText_0x1c54dd: ; 0x1c54dd - db $0, "There is an older", $4f - db "CARD FOLDER from a", $55 - db "previous journey.", $51 - db "Do you want to", $4f - db "open it?", $57 -; 0x1c552d - -UnknownText_0x1c552d: ; 0x1c552d - db $0, "Delete the old", $4f - db "CARD FOLDER?", $57 -; 0x1c554a - -UnknownText_0x1c554a: ; 0x1c554a - db $0, "Finish registering", $4f - db "CARDS?", $57 -; 0x1c5565 - -UnknownText_0x1c5565: ; 0x1c5565 - db $0, "Huh? Sorry, wrong", $4f - db "number!", $57 -; 0x1c5580 - -UnknownText_0x1c5580: ; 0x1c5580 - db $0, "Click!", $57 -; 0x1c5588 - -UnknownText_0x1c5588: ; 0x1c5588 - db $0, $56, $57 -; 0x1c558b - -UnknownText_0x1c558b: ; 0x1c558b - db $0, "That number is out", $4f - db "of the area.", $57 -; 0x1c55ac - -UnknownText_0x1c55ac: ; 0x1c55ac - db $0, "Just go talk to", $4f - db "that person!", $57 -; 0x1c55ca - -UnknownText_0x1c55ca: ; 0x1c55ca - db $0, "Thank you!", $57 -; 0x1c55d6 - -UnknownText_0x1c55d6: ; 0x1c55d6 - db $0, " :", $57 -; 0x1c55db - -UnknownText_0x1c55db: ; 0x1c55db - db $0, "Password OK.", $4f - db "Select CONTINUE &", $55 - db "reset settings.", $58 -; 0x1c560b - -UnknownText_0x1c560b: ; 0x1c560b - db $0, "Wrong password!", $58 -; 0x1c561c - -UnknownText_0x1c561c: ; 0x1c561c - db $0, "Reset the clock?", $57 -; 0x1c562e - -UnknownText_0x1c562e: ; 0x1c562e - db $0, "Please enter the", $4f - db "password.", $57 -; 0x1c564a - -UnknownText_0x1c564a: ; 0x1c564a - db $0, "Clear all save", $4f - db "data?", $57 -; 0x1c5660 - -UnknownText_0x1c5660: ; 0x1c5660 - text_from_ram $d050 - db $0, " learned", $4f - db "@" - text_from_ram $d086 - db $0, "!@" - sound0 - text_waitbutton - db $50 -; 0x1c5677 - -UnknownText_0x1c5677: ; 0x1c5677 - db $50 -; 0x1c5678 - -UnknownText_0x1c5678: ; 0x1c5678 - db $0, "Which move should", $4e, "be forgotten?", $57 -; 0x1c5699 - -UnknownText_0x1c5699: ; 0x1c5699 - db $0, "Stop learning", $4f - db "@" - text_from_ram $d086 - db $0, "?", $57 -; 0x1c56af - -UnknownText_0x1c56af: ; 0x1c56af - text_from_ram $d050 - db $0, $4f - db "did not learn", $55 - db "@" - text_from_ram $d086 - db $0, ".", $58 -; 0x1c56c9 - -UnknownText_0x1c56c9: ; 0x1c56c9 - text_from_ram $d050 - db $0, " is", $4f - db "trying to learn", $55 - db "@" - text_from_ram $d086 - db $0, ".", $51 - db "But @" - text_from_ram $d050 - db $0, $4f - db "can't learn more", $55 - db "than four moves.", $51 - db "Delete an older", $4f - db "move to make room", $55 - db "for @" - text_from_ram $d086 - db $0, "?", $57 -; 0x1c5740 - -UnknownText_0x1c5740: ; 0x1c5740 - db $0, "1, 2 and…@" - interpret_data - db $50 -; 0x1c574d - -UnknownText_0x1c574d: ; 0x1c574d - db $50 -; 0x1c574e - -UnknownText_0x1c574e: ; 0x1c574e - db $0, " Poof!@" - interpret_data - db $0, $51 - db "@" - text_from_ram $d050 - db $0, " forgot", $4f - db "@" - text_from_ram $d073 - db $0, ".", $51 - db "And…", $58 -; 0x1c5772 - -UnknownText_0x1c5772: ; 0x1c5772 - db $0, "HM moves can't be", $4f - db "forgotten now.", $58 -; 0x1c5793 - -UnknownText_0x1c5793: ; 0x1c5793 - db $0, "Play with three", $4f - db "coins?", $57 -; 0x1c57ab - -UnknownText_0x1c57ab: ; 0x1c57ab - db $0, "Not enough coins…", $58 -; 0x1c57be - -UnknownText_0x1c57be: ; 0x1c57be - db $0, "Choose a card.", $57 -; 0x1c57ce - -UnknownText_0x1c57ce: ; 0x1c57ce - db $0, "Place your bet.", $57 -; 0x1c57df - -UnknownText_0x1c57df: ; 0x1c57df - db $0, "Want to play", $4f - db "again?", $57 -; 0x1c57f4 - -UnknownText_0x1c57f4: ; 0x1c57f4 - db $0, "The cards have", $4f - db "been shuffled.", $58 -; 0x1c5813 - -UnknownText_0x1c5813: ; 0x1c5813 - db $0, "Yeah!", $57 -; 0x1c581a - -UnknownText_0x1c581a: ; 0x1c581a - db $0, "Darn…", $57 -; 0x1c5821 - -UnknownText_0x1c5821: ; 0x1c5821 - current_day - db $50 -; 0x1c5823 - -UnknownText_0x1c5823: ; 0x1c5823 - db $50 -; 0x1c5824 - -UnknownText_0x1c5824: ; 0x1c5824 - db $0, $56, $57 -; 0x1c5827 - -UnknownText_0x1c5827: ; 0x1c5827 - db $0, "You're out of the", $4f - db "service area.", $58 -; 0x1c5847 - -UnknownText_0x1c5847: ; 0x1c5847 - db $0, "Whom do you want", $4f - db "to call?", $57 -; 0x1c5862 - -UnknownText_0x1c5862: ; 0x1c5862 - db $0, "Press any button", $4f - db "to exit.", $57 -; 0x1c587d - -UnknownText_0x1c587d: ; 0x1c587d - db $0, "Delete this stored", $4f - db "phone number?", $57 -; 0x1c589f - -UnknownText_0x1c589f: ; 0x1c589f - db $0, "Which prize would", $4f - db "you like?", $57 -; 0x1c58bc - -UnknownText_0x1c58bc: ; 0x1c58bc + db $0, "…", $4f + db "That's a fairly", $55 + db "decent name.", $51 + db "But, how about a", $4f + db "slightly better", $55 + db "nickname?", $51 + db "Want me to give it", $4f + db "a better name?", $57 +; 1c0142 + +UnknownText_0x1c0142: ; 1c0142 + db $0, "All right. What", $4f + db "name should we", $55 + db "give it, then?", $58 +; 1c0171 + +UnknownText_0x1c0171: ; 1c0171 + db $0, "That's a better", $4f + db "name than before!", $51 + db "Well done!", $57 +; 1c019e + +UnknownText_0x1c019e: ; 1c019e + db $0, "OK, then. Come", $4f + db "again sometime.", $57 +; 1c01be + +UnknownText_0x1c01be: ; 1c01be + db $0, "Hm… @" text_from_ram $d073 db $0, "?", $4f - db "Is that right?", $57 -; 0x1c58d1 - -UnknownText_0x1c58d1: ; 0x1c58d1 - db $0, "Here you go!", $51 - db $57 -; 0x1c58e0 - -UnknownText_0x1c58e0: ; 0x1c58e0 - db $0, "You don't have", $4f - db "enough points.", $51 - db $57 -; 0x1c58ff - -UnknownText_0x1c58ff: ; 0x1c58ff - db $0, "You have no room", $4f - db "for it.", $51 - db $57 -; 0x1c591a - -UnknownText_0x1c591a: ; 0x1c591a - db $0, "Oh. Please come", $4f - db "back again!", $57 -; 0x1c5937 - -UnknownText_0x1c5937: ; 0x1c5937 - db $0, "Excuse me!", $51 - db $57 -; 0x1c5944 - -UnknownText_0x1c5944: ; 0x1c5944 - db $0, "Excuse me.", $4f - db "You're not ready.", $51 - db $57 -; 0x1c5962 - -UnknownText_0x1c5962: ; 0x1c5962 - db $0, "Please return when", $4f - db "you're ready.", $57 -; 0x1c5983 - -UnknownText_0x1c5983: ; 0x1c5983 - db $0, "You need at least", $4f - db "three #MON.", $51 - db $57 -; 0x1c59a3 - -UnknownText_0x1c59a3: ; 0x1c59a3 - db $0, "Sorry, an EGG", $4f - db "doesn't qualify.", $51 - db $57 -; 0x1c59c3 - -UnknownText_0x1c59c3: ; 0x1c59c3 - db $0, "Only three #MON", $4f - db "may be entered.", $51 - db $57 -; 0x1c59e5 - -UnknownText_0x1c59e5: ; 0x1c59e5 - db $0, "The @" - text_from_ram $d086 - db $0, " #MON", $4f - db "must all be", $55 - db "different kinds.", $51 - db $57 -; 0x1c5a13 - -UnknownText_0x1c5a13: ; 0x1c5a13 - db $0, "The @" - text_from_ram $d086 - db $0, " #MON", $4f - db "must not hold the", $55 - db "same items.", $51 - db $57 -; 0x1c5a42 - -UnknownText_0x1c5a42: ; 0x1c5a42 - db $0, "You can't take an", $4f - db "EGG!", $51 - db $57 -; 0x1c5a5a - -UnknownText_0x1c5a5a: ; 0x1c5a5a - db $0, "It dodged the", $4f - db "thrown BALL!", $51 - db "This #MON", $4f - db "can't be caught!", $58 -; 0x1c5a90 - -UnknownText_0x1c5a90: ; 0x1c5a90 - db $0, "You missed the", $4f - db "#MON!", $58 -; 0x1c5aa6 - -UnknownText_0x1c5aa6: ; 0x1c5aa6 - db $0, "Oh no! The #MON", $4f - db "broke free!", $58 -; 0x1c5ac3 - -UnknownText_0x1c5ac3: ; 0x1c5ac3 - db $0, "Aww! It appeared", $4f - db "to be caught!", $58 -; 0x1c5ae3 - -UnknownText_0x1c5ae3: ; 0x1c5ae3 - db $0, "Aargh!", $4f - db "Almost had it!", $58 -; 0x1c5afa - -UnknownText_0x1c5afa: ; 0x1c5afa - db $0, "Shoot! It was so", $4f - db "close too!", $58 -; 0x1c5b17 - -UnknownText_0x1c5b17: ; 0x1c5b17 - db $0, "Gotcha! @" - text_from_ram $c616 + db "What a great name!", $55 + db "It's perfect.", $51 + db "Treat @" + text_from_ram $d073 db $0, $4f - db "was caught!@" - sound0x02 - db $50 -; 0x1c5b34 + db "with loving care.", $57 +; 1c0208 -UnknownText_0x1c5b34: ; 0x1c5b34 - db $50 -; 0x1c5b35 +UnknownText_0x1c0208: ; 1c0208 + db $0, "Whoa… That's just", $4f + db "an EGG.", $57 +; 1c0222 -UnknownText_0x1c5b35: ; 0x1c5b35 - text_waitbutton - db $50 -; 0x1c5b37 +UnknownText_0x1c0222: ; 1c0222 + db $0, "It might look the", $4f + db "same as before,", $51 + db "but this new name", $4f + db "is much better!", $51 + db "Well done!", $57 +; 1c0272 -UnknownText_0x1c5b37: ; 0x1c5b37 - db $50 -; 0x1c5b38 +UnknownText_0x1c0272: ; 1c0272 + db $0, "All right. This", $4f + db "#MON is now", $55 + db "named @" + text_from_ram $d073 + db $0, ".", $58 +; 1c029c -UnknownText_0x1c5b38: ; 0x1c5b38 - text_from_ram $d050 - db $0, " was", $4f - db "sent to BILL's PC.", $58 -; 0x1c5b53 +UnknownText_0x1c029c: ; 1c029c + text_from_ram $d073 + db $0, " gained@" + db "@" +; 1c02a9 -UnknownText_0x1c5b53: ; 0x1c5b53 - text_from_ram $c616 - db $0, "'s data", $4f - db "was newly added to", $55 - db "the #DEX.@" - sound0x2C - text_waitbutton - db $50 -; 0x1c5b7e +UnknownText_0x1c02a9: ; 1c02a9 + db $0, $4f + db "a boosted", $55 + db "@" + deciram $d086, $24 + db $0, " EXP. Points!", $58 +; 1c02c9 -UnknownText_0x1c5b7e: ; 0x1c5b7e - db $50 -; 0x1c5b7f +UnknownText_0x1c02c9: ; 1c02c9 + db $0, $4f + db "@" + deciram $d086, $24 + db $0, " EXP. Points!", $58 +; 1c02df -UnknownText_0x1c5b7f: ; 0x1c5b7f - db $0, "Give a nickname to", $4f +UnknownText_0x1c02df: ; 1c02df + db $0, "Go! @" + db "@" +; 1c02e6 + +UnknownText_0x1c02e6: ; 1c02e6 + db $0, "Do it! @" + db "@" +; 1c02f0 + +UnknownText_0x1c02f0: ; 1c02f0 + db $0, "Go for it,", $4f + db "@" + db "@" +; 1c02fe + +UnknownText_0x1c02fe: ; 1c02fe + db $0, "Your foe's weak!", $4f + db "Get'm, @" + db "@" +; 1c0317 + +UnknownText_0x1c0317: ; 1c0317 + text_from_ram $c621 + db $0, "!", $57 +; 1c031d + +UnknownText_0x1c031d: ; 1c031d + text_from_ram $c621 + db $0, ",@" + db "@" +; 1c0324 + +UnknownText_0x1c0324: ; 1c0324 + db $0, " that's", $4f + db "enough! Come back!@" + db "@" +; 1c0340 + +UnknownText_0x1c0340: ; 1c0340 + db $0, " OK!", $4f + db "Come back!@" + db "@" +; 1c0352 + +UnknownText_0x1c0352: ; 1c0352 + db $0, " good!", $4f + db "Come back!@" + db "@" +; 1c0366 + +UnknownText_0x1c0366: ; 1c0366 + db $0, " come", $4f + db "back!", $57 +; 1c0373 + +UnknownText_0x1c0373: ; 1c0373 + db $0, "Booted up a TM.", $58 +; 1c0384 + +UnknownText_0x1c0384: ; 1c0384 + db $0, "Booted up an HM.", $58 +; 1c0396 + +UnknownText_0x1c0396: ; 1c0396 + db $0, "It contained", $4f + db "@" + text_from_ram $d086 + db $0, ".", $51 + db "Teach @" + text_from_ram $d086 + db $0, $4f + db "to a #MON?", $57 +; 1c03c2 + +UnknownText_0x1c03c2: ; 1c03c2 + text_from_ram $d086 + db $0, " is", $4f + db "not compatible", $55 + db "with @" + text_from_ram $d073 + db $0, ".", $51 + db "It can't learn", $4f + db "@" + text_from_ram $d086 + db $0, ".", $58 +; 1c03fa + +UnknownText_0x1c03fa: ; 1c03fa + db $0, "You have no room", $4f + db "for any more", $55 db "@" text_from_ram $d073 - db $0, "?", $57 -; 0x1c5b9a + db $0, "S.", $58 +; 1c0421 -UnknownText_0x1c5b9a: ; 0x1c5b9a +UnknownText_0x1c0421: ; 1c0421 + db $0, "You received", $4f + db "@" text_from_ram $d073 - db $0, "'s", $4f + db $0, "!", $58 +; 1c0436 + +UnknownText_0x1c0436: ; 1c0436 + db $0, "The link has been", $4f + db "cancelled.", $58 +; 1c0454 + +UnknownText_0x1c0454: ; 1c0454 + db $0, "Communication", $4f + db "error.", $58 +; 1c046a + +UnknownText_0x1c046a: ; 1c046a + db $0, "Must retrieve GIFT", $4f + db "at #MON CENTER.", $58 +; 1c048e + +UnknownText_0x1c048e: ; 1c048e + db $0, "Your friend isn't", $4f + db "ready.", $58 +; 1c04a7 + +UnknownText_0x1c04a7: ; 1c04a7 + db $0, "Sorry--only five", $4f + db "GIFTS a day.", $58 +; 1c04c6 + +UnknownText_0x1c04c6: ; 1c04c6 + db $0, "Sorry. One GIFT", $4f + db "a day per person.", $58 +; 1c04e9 + +UnknownText_0x1c04e9: ; 1c04e9 + text_from_ram $c903 + db $0, " sent", $4f db "@" + text_from_ram $d073 + db $0, ".", $58 +; 1c04fa + +UnknownText_0x1c04fa: ; 1c04fa + text_from_ram $c903 + db $0, " sent", $4f + db "@" + text_from_ram $d073 + db $0, $55 + db "to @" + text_from_ram $c953 + db $0, "'s home.", $58 +; 1c051a + +UnknownText_0x1c051a: ; 1c051a + db $0, "Received", $4f + db "@" + text_from_ram $c850 + db $0, "'s CARD.", $58 +; 1c0531 + +UnknownText_0x1c0531: ; 1c0531 + text_from_ram $c850 + db $0, "'s CARD was", $4f + db "listed as no.@" + deciram $d265, $12 + db $0, ".", $58 +; 1c0555 + +UnknownText_0x1c0555: ; 1c0555 + db $0, "The CARD was not", $4f + db "registered.", $58 +; 1c0573 + +UnknownText_0x1c0573: ; 1c0573 + db $0, "The link has been", $4f + db "cancelled.", $58 +; 1c0591 + +UnknownText_0x1c0591: ; 1c0591 + db $0, "Communication", $4f + db "error.", $58 +; 1c05a7 + +_BadgeRequiredText: ; 1c05a7 + db $0, "Sorry! A new BADGE", $4f + db "is required.", $58 +; 1c05c8 + +UnknownText_0x1c05c8: ; 1c05c8 + db $0, "Can't use that", $4f + db "here.", $58 +; 1c05dd + +UnknownText_0x1c05dd: ; 1c05dd text_from_ram $d086 - db $0, " rose.", $58 -; 0x1c5bac + db $0, " used", $4f + db "CUT!", $58 +; 1c05ec -UnknownText_0x1c5bac: ; 0x1c5bac - db $0, "That can't be used", $4f - db "on this #MON.", $58 -; 0x1c5bcd +UnknownText_0x1c05ec: ; 1c05ec + db $0, "There's nothing to", $4f + db "CUT here.", $58 +; 1c0609 -UnknownText_0x1c5bcd: ; 0x1c5bcd - db $0, "The REPEL used", $4f - db "earlier is still", $55 - db "in effect.", $58 -; 0x1c5bf9 - -UnknownText_0x1c5bf9: ; 0x1c5bf9 - db $0, "Played the #", $4f - db "FLUTE.", $51 - db "Now, that's a", $4f - db "catchy tune!", $58 -; 0x1c5c28 - -UnknownText_0x1c5c28: ; 0x1c5c28 - db $0, "All sleeping", $4f - db "#MON woke up.", $58 -; 0x1c5c44 - -UnknownText_0x1c5c44: ; 0x1c5c44 - db $0, $52, " played the", $4f - db "# FLUTE.@" +UnknownText_0x1c0609: ; 1c0609 + db $0, "A blinding FLASH", $4f + db "lights the area!@" text_waitbutton - db $50 -; 0x1c5c5d - -UnknownText_0x1c5c5d: ; 0x1c5c5d - db $50 -; 0x1c5c5e - -UnknownText_0x1c5c5e: ; 0x1c5c5e - db $0, "You now have", $4f db "@" - deciram $dc4b, $12 - db $0, " points.", $57 -; 0x1c5c7b +; 1c062e -UnknownText_0x1c5c7b: ; 0x1c5c7b - db $0, "Coins:", $4f +UnknownText_0x1c062e: ; 1c062e db "@" - deciram $d855, $24 - db $50 -; 0x1c5c89 +; 1c062f -UnknownText_0x1c5c89: ; 0x1c5c89 - db $50 -; 0x1c5c8a - -UnknownText_0x1c5c8a: ; 0x1c5c8a - db $0, "Raise the PP of", $4f - db "which move?", $57 -; 0x1c5ca7 - -UnknownText_0x1c5ca7: ; 0x1c5ca7 - db $0, "Restore the PP of", $4f - db "which move?", $57 -; 0x1c5cc6 - -UnknownText_0x1c5cc6: ; 0x1c5cc6 +_UsedSurfText: ; 1c062f text_from_ram $d086 - db $0, "'s PP", $4f - db "is maxed out.", $58 -; 0x1c5cdd + db $0, " used", $4f + db "SURF!", $57 +; 1c063f -UnknownText_0x1c5cdd: ; 0x1c5cdd +_CantSurfText: ; 1c063f + db $0, "You can't SURF", $4f + db "here.", $58 +; 1c0654 + +_AlreadySurfingText: ; 1c0654 + db $0, "You're already", $4f + db "SURFING.", $58 +; 1c066c + +_AskSurfText: ; 1c066c + db $0, "The water is calm.", $4f + db "Want to SURF?", $57 +; 1c068e + +UnknownText_0x1c068e: ; 1c068e text_from_ram $d086 - db $0, "'s PP", $4f - db "increased.", $58 -; 0x1c5cf1 + db $0, " used", $4f + db "WATERFALL!", $57 +; 1c06a3 -UnknownText_0x1c5cf1: ; 0x1c5cf1 - db $0, "PP was restored.", $58 -; 0x1c5d03 +UnknownText_0x1c06a3: ; 1c06a3 + db $0, "Wow, it's a huge", $4f + db "waterfall.", $57 +; 1c06bf -UnknownText_0x1c5d03: ; 0x1c5d03 - db $0, "There was a trophy", $4f - db "inside!@" - sound0 - db $0, $51 +UnknownText_0x1c06bf: ; 1c06bf + db $0, "Do you want to use", $4f + db "WATERFALL?", $57 +; 1c06de + +UnknownText_0x1c06de: ; 1c06de + text_from_ram $d086 + db $0, " used", $4f + db "DIG!", $57 +; 1c06ed + +UnknownText_0x1c06ed: ; 1c06ed + db $0, $52, " used an", $4f + db "ESCAPE ROPE.", $57 +; 1c0705 + +UnknownText_0x1c0705: ; 1c0705 + db $0, "Can't use that", $4f + db "here.", $57 +; 1c071a + +UnknownText_0x1c071a: ; 1c071a + db $0, "Return to the last", $4f + db "#MON CENTER.", $57 +; 1c073b + +UnknownText_0x1c073b: ; 1c073b + db $0, "Can't use that", $4f + db "here.", $51 + db $57 +; 1c0751 + +UnknownText_0x1c0751: ; 1c0751 + db $0, "A #MON is using", $4f + db "STRENGTH already.", $58 +; 1c0774 + +UnknownText_0x1c0774: ; 1c0774 + text_from_ram $d086 + db $0, " used", $4f + db "STRENGTH!", $57 +; 1c0788 + +UnknownText_0x1c0788: ; 1c0788 + text_from_ram $d073 + db $0, " can", $4f + db "move boulders.", $58 +; 1c07a0 + +UnknownText_0x1c07a0: ; 1c07a0 + db $0, "A #MON may be", $4f + db "able to move this.", $51 + db "Want to use", $4f + db "STRENGTH?", $57 +; 1c07d8 + +UnknownText_0x1c07d8: ; 1c07d8 + db $0, "Boulders may now", $4f + db "be moved!", $57 +; 1c07f4 + +UnknownText_0x1c07f4: ; 1c07f4 + db $0, "A #MON may be", $4f + db "able to move this.", $57 +; 1c0816 + +UnknownText_0x1c0816: ; 1c0816 + text_from_ram $d086 + db $0, " used", $4f + db "WHIRLPOOL!", $58 +; 1c082b + +UnknownText_0x1c082b: ; 1c082b + db $0, "It's a vicious", $4f + db "whirlpool!", $51 + db "A #MON may be", $4f + db "able to pass it.", $57 +; 1c0864 + +UnknownText_0x1c0864: ; 1c0864 + db $0, "A whirlpool is in", $4f + db "the way.", $51 + db "Want to use", $4f + db "WHIRLPOOL?", $57 +; 1c0897 + +UnknownText_0x1c0897: ; 1c0897 + text_from_ram $d086 + db $0, " did a", $4f + db "HEADBUTT!", $58 +; 1c08ac + +UnknownText_0x1c08ac: ; 1c08ac + db $0, "Nope. Nothing…", $57 +; 1c08bc + +UnknownText_0x1c08bc: ; 1c08bc + db $0, "A #MON could be", $4f + db "in this tree.", $51 + db "Want to HEADBUTT", $4f + db "it?", $57 +; 1c08f0 + +UnknownText_0x1c08f0: ; 1c08f0 + text_from_ram $d086 + db $0, " used", $4f + db "ROCK SMASH!", $58 +; 1c0906 + +UnknownText_0x1c0906: ; 1c0906 + db $0, "Maybe a #MON", $4f + db "can break this.", $57 +; 1c0924 + +UnknownText_0x1c0924: ; 1c0924 + db $0, "This rock looks", $4f + db "breakable.", $51 + db "Want to use ROCK", $4f + db "SMASH?", $57 +; 1c0958 + +UnknownText_0x1c0958: ; 1c0958 + db $0, "Oh!", $4f + db "A bite!", $58 +; 1c0965 + +UnknownText_0x1c0965: ; 1c0965 + db $0, "Not even a nibble!", $58 +; 1c0979 + +UnknownText_0x1c0979: ; 1c0979 + db $0, "Looks like there's", $4f + db "nothing here.", $58 +; 1c099a + +UnknownText_0x1c099a: ; 1c099a + db $0, "You can't get off", $4f + db "here!", $57 +; 1c09b2 + +UnknownText_0x1c09b2: ; 1c09b2 + db $0, $52, " got on the", $4f db "@" - text_from_ram PlayerName - db $0, " sent the", $4f - db "trophy home.", $58 -; 0x1c5d3e + text_from_ram $d086 + db $0, ".", $57 +; 1c09c7 -UnknownText_0x1c5d3e: ; 0x1c5d3e - db $0, "It looks bitter…", $58 -; 0x1c5d50 +UnknownText_0x1c09c7: ; 1c09c7 + db $0, $52, " got off", $4f + db "the @" + text_from_ram $d086 + db $0, ".", $57 +; 1c09dd -UnknownText_0x1c5d50: ; 0x1c5d50 - db $0, "That can't be used", $4f - db "on an EGG.", $58 -; 0x1c5d6e +UnknownText_0x1c09dd: ; 1c09dd + db $0, "This tree can be", $4f + db "CUT!", $51 + db "Want to use CUT?", $57 +; 1c0a05 -UnknownText_0x1c5d6e: ; 0x1c5d6e +UnknownText_0x1c0a05: ; 1c0a05 + db $0, "This tree can be", $4f + db "CUT!", $57 +; 1c0a1c + +UnknownText_0x1c0a1c: ; 1c0a1c + db $0, $52, " found", $4f + db "@" + text_from_ram $d099 + db $0, "!", $57 +; 1c0a2c + +UnknownText_0x1c0a2c: ; 1c0a2c + db $0, "But ", $52, " can't", $4f + db "carry any more", $55 + db "items.", $57 +; 1c0a4e + +UnknownText_0x1c0a4e: ; 1c0a4e + db $0, $52, " is out of", $4f + db "useable #MON!", $51 + db $52, " whited", $4f + db "out!", $57 +; 1c0a77 + +UnknownText_0x1c0a77: ; 1c0a77 + db $0, "Yes! ITEMFINDER", $4f + db "indicates there's", $55 + db "an item nearby.", $58 +; 1c0aa9 + +UnknownText_0x1c0aa9: ; 1c0aa9 + db $0, "Nope! ITEMFINDER", $4f + db "isn't responding.", $58 +; 1c0acc + +UnknownText_0x1c0acc: ; 1c0acc + text_from_ram $d099 + db $0, $4f + db "fainted!", $58 +; 1c0ada + +UnknownText_0x1c0ada: ; 1c0ada + db $0, $52, " is out of", $4f + db "useable #MON!", $51 + db $52, " whited", $4f + db "out!", $58 +; 1c0b03 + +UnknownText_0x1c0b03: ; 1c0b03 + text_from_ram $d099 + db $0, " used", $4f + db "SWEET SCENT!", $57 +; 1c0b1a + +UnknownText_0x1c0b1a: ; 1c0b1a + db $0, "Looks like there's", $4f + db "nothing here…", $57 +; 1c0b3b + +UnknownText_0x1c0b3b: ; 1c0b3b + db $0, $52, " sprinkled", $4f + db "water.", $51 + db "But nothing", $4f + db "happened…", $57 +; 1c0b65 + +UnknownText_0x1c0b65: ; 1c0b65 + db $0, $52, "'s #MON", $4f + db "were all healed!", $57 +; 1c0b7f + +UnknownText_0x1c0b7f: ; 1c0b7f + db $0, "An EGG can't hold", $4f + db "an item.", $58 +; 1c0b9a + +UnknownText_0x1c0b9a: ; 1c0b9a + db $0, "No items.", $57 +; 1c0ba5 + +UnknownText_0x1c0ba5: ; 1c0ba5 + db $0, "Throw away how", $4f + db "many?", $57 +; 1c0bbb + +UnknownText_0x1c0bbb: ; 1c0bbb + db $0, "Throw away @" + deciram $d10c, $12 + db $0, $4f + db "@" + text_from_ram $d086 + db $0, "(S)?", $57 +; 1c0bd8 + +UnknownText_0x1c0bd8: ; 1c0bd8 + db $0, "Threw away", $4f + db "@" + text_from_ram $d086 + db $0, "(S).", $58 +; 1c0bee + +UnknownText_0x1c0bee: ; 1c0bee db $0, "OAK: ", $52, "!", $4f db "This isn't the", $55 db "time to use that!", $58 -; 0x1c5d97 +; 1c0c17 -UnknownText_0x1c5d97: ; 0x1c5d97 - db $0, "That belongs to", $4f - db "someone else!", $58 -; 0x1c5db6 +UnknownText_0x1c0c17: ; 1c0c17 + db $0, "You don't have a", $4f + db "#MON!", $58 +; 1c0c2e -UnknownText_0x1c5db6: ; 0x1c5db6 - db $0, "It won't have any", $4f - db "effect.", $58 -; 0x1c5dd0 - -UnknownText_0x1c5dd0: ; 0x1c5dd0 - db $0, "The trainer", $4f - db "blocked the BALL!", $58 -; 0x1c5def - -UnknownText_0x1c5def: ; 0x1c5def - db $0, "Don't be a thief!", $58 -; 0x1c5e01 - -UnknownText_0x1c5e01: ; 0x1c5e01 - db $0, "Cycling isn't", $4f - db "allowed here.", $58 -; 0x1c5e1d - -UnknownText_0x1c5e1d: ; 0x1c5e1d - db $0, "Can't get on your", $4f - db "@" - text_from_ram $d073 - db $0, " now.", $58 -; 0x1c5e3a - -UnknownText_0x1c5e3a: ; 0x1c5e3a - db $0, "The #MON BOX", $4f - db "is full. That", $55 - db "can't be used now.", $58 -; 0x1c5e68 - -UnknownText_0x1c5e68: ; 0x1c5e68 - db $0, $52, " used the@" - text_dunno1 - text_from_ram $d086 - db $0, ".", $57 -; 0x1c5e7b - -UnknownText_0x1c5e7b: ; 0x1c5e7b - db $0, $52, " got on the@" - text_dunno1 - text_from_ram $d086 - db $0, ".", $58 -; 0x1c5e90 - -UnknownText_0x1c5e90: ; 0x1c5e90 - db $0, $52, " got off@" - text_dunno1 - db $0, "the @" - text_from_ram $d086 - db $0, ".", $58 -; 0x1c5ea8 - -UnknownText_0x1c5ea8: ; 0x1c5ea8 - text_from_ram $d073 - db $0, " knows", $4f +UnknownText_0x1c0c2e: ; 1c0c2e + db $0, "Registered the", $4f db "@" text_from_ram $d086 db $0, ".", $58 -; 0x1c5eba +; 1c0c45 -UnknownText_0x1c5eba: ; 0x1c5eba - db $0, "That #MON knows", $4f - db "only one move.", $57 -; 0x1c5eda +UnknownText_0x1c0c45: ; 1c0c45 + db $0, "You can't register", $4f + db "that item.", $58 +; 1c0c63 -UnknownText_0x1c5eda: ; 0x1c5eda - db $0, "Oh, make it forget", $4f +UnknownText_0x1c0c63: ; 1c0c63 + db $0, "Where should this", $4f + db "be moved to?", $57 +; 1c0c83 + +UnknownText_0x1c0c83: ; 1c0c83 + db $0, $57 +; 1c0c85 + +UnknownText_0x1c0c85: ; 1c0c85 + db $0, "You can't use it", $4f + db "in a battle.", $58 +; 1c0ca3 + +UnknownText_0x1c0ca3: ; 1c0ca3 + db $0, "Are you a boy?", $4f + db "Or are you a girl?", $57 +; 1c0cc6 + +UnknownText_0x1c0cc6: ; 1c0cc6 + db $0, $5a, "'s", $4f db "@" - text_from_ram $d073 + text_from_ram $d086 + db "@" +; 1c0ccf + +UnknownText_0x1c0ccf: ; 1c0ccf + db "@" +; 1c0cd0 + +UnknownText_0x1c0cd0: ; 1c0cd0 + interpret_data + db $0, $4c, "went way up!", $58 +; 1c0ce0 + +UnknownText_0x1c0ce0: ; 1c0ce0 + db $0, " went up!", $58 +; 1c0ceb + +UnknownText_0x1c0ceb: ; 1c0ceb + db $0, $59, "'s", $4f + db "@" + text_from_ram $d086 + db "@" +; 1c0cf4 + +UnknownText_0x1c0cf4: ; 1c0cf4 + db "@" +; 1c0cf5 + +UnknownText_0x1c0cf5: ; 1c0cf5 + interpret_data + db $0, $4c, "sharply fell!", $58 +; 1c0d06 + +UnknownText_0x1c0d06: ; 1c0d06 + db $0, " fell!", $58 +; 1c0d0e + +UnknownText_0x1c0d0e: ; 1c0d0e + db $0, $5a, "@" + db "@" +; 1c0d12 + +UnknownText_0x1c0d12: ; 1c0d12 + db $0, $4f + db "made a whirlwind!", $58 +; 1c0d26 + +UnknownText_0x1c0d26: ; 1c0d26 + db $0, $4f + db "took in sunlight!", $58 +; 1c0d3a + +UnknownText_0x1c0d3a: ; 1c0d3a + db $0, $4f + db "lowered its head!", $58 +; 1c0d4e + +UnknownText_0x1c0d4e: ; 1c0d4e + db $0, $4f + db "is glowing!", $58 +; 1c0d5c + +UnknownText_0x1c0d5c: ; 1c0d5c + db $0, $4f + db "flew up high!", $58 +; 1c0d6c + +UnknownText_0x1c0d6c: ; 1c0d6c + db $0, $4f + db "dug a hole!", $58 +; 1c0d7a + +_ActorNameText: ; 1c0d7a + db $0, $5a, "@" + db "@" +; 1c0d7e + +_UsedMove1Text: ; 1c0d7e + db $0, $4f + db "used @" + db "@" +; 1c0d87 + +_UsedMove2Text: ; 1c0d87 + db $0, $4f + db "used @" + db "@" +; 1c0d90 + +_UsedInsteadText: ; 1c0d90 + db $0, "instead,", $55 + db "@" + db "@" +; 1c0d9c + +_MoveNameText: ; 1c0d9c + text_from_ram StringBuffer2 + db "@" +; 1c0da0 + +UnknownText_0x1c0da0: ; 1c0da0 + db "@" +; 1c0da1 + +_EndUsedMove1Text: ; 1c0da1 + db $0, "!", $57 +; 1c0da4 + +_EndUsedMove2Text: ; 1c0da4 + db $0, "!", $57 +; 1c0da7 + +_EndUsedMove3Text: ; 1c0da7 + db $0, "!", $57 +; 1c0daa + +_EndUsedMove4Text: ; 1c0daa + db $0, "!", $57 +; 1c0dad + +_EndUsedMove5Text: ; 1c0dad + db $0, "!", $57 +; 1c0db0 + +UnknownText_0x1c0db0: ; 1c0db0 + db $0, "Huh?", $51 + db "@" + db "@" +; 1c0db8 + +UnknownText_0x1c0db8: ; 1c0db8 + db $0, $57 +; 1c0dba + +UnknownText_0x1c0dba: ; 1c0dba + text_from_ram StringBuffer1 + db $0, " came", $4f + db "out of its EGG!@" + sound0x02 + text_waitbutton + db "@" +; 1c0dd7 + +UnknownText_0x1c0dd7: ; 1c0dd7 + db "@" +; 1c0dd8 + +UnknownText_0x1c0dd8: ; 1c0dd8 + db $0, "Give a nickname to", $4f + db "@" + text_from_ram StringBuffer1 db $0, "?", $57 -; 0x1c5ef5 +; 1c0df3 -UnknownText_0x1c5ef5: ; 0x1c5ef5 - db $0, "Done! Your #MON", $4f - db "forgot the move.", $57 -; 0x1c5f17 +UnknownText_0x1c0df3: ; 1c0df3 + db $0, "It's @" + text_from_ram $df2f + db $0, $4f + db "that was left with", $55 + db "the DAY-CARE LADY.", $57 +; 1c0e24 -UnknownText_0x1c5f17: ; 0x1c5f17 - db $0, "An EGG doesn't", $4f - db "know any moves!", $57 -; 0x1c5f36 +UnknownText_0x1c0e24: ; 1c0e24 + db $0, "It's @" + text_from_ram $def6 + db $0, $4f + db "that was left with", $55 + db "the DAY-CARE MAN.", $57 +; 1c0e54 -UnknownText_0x1c5f36: ; 0x1c5f36 - db $0, "No? Come visit me", $4f - db "again.", $57 -; 0x1c5f50 +UnknownText_0x1c0e54: ; 1c0e54 + db $0, "It's brimming with", $4f + db "energy.", $58 +; 1c0e6f -UnknownText_0x1c5f50: ; 0x1c5f50 - db $0, "Which move should", $4f - db "it forget, then?", $58 -; 0x1c5f74 +UnknownText_0x1c0e6f: ; 1c0e6f + db $0, "It has no interest", $4f + db "in @" + text_from_ram $d073 + db $0, ".", $58 +; 1c0e8d -UnknownText_0x1c5f74: ; 0x1c5f74 - db $0, "Um… Oh, yes, I'm", $4f - db "the MOVE DELETER.", $51 - db "I can make #MON", $4f - db "forget moves.", $51 - db "Shall I make a", $4f - db "#MON forget?", $57 -; 0x1c5fd1 +UnknownText_0x1c0e8d: ; 1c0e8d + db $0, "It appears to care", $4f + db "for @" + text_from_ram $d073 + db $0, ".", $58 +; 1c0eac -UnknownText_0x1c5fd1: ; 0x1c5fd1 - db $0, "Which #MON?", $58 -; 0x1c5fde +UnknownText_0x1c0eac: ; 1c0eac + db $0, "It's friendly with", $4f + db "@" + text_from_ram $d073 + db $0, ".", $58 +; 1c0ec6 -UnknownText_0x1c5fde: ; 0x1c5fde - db $0, " DST,", $4f - db "is that OK?", $57 -; 0x1c5ff1 +UnknownText_0x1c0ec6: ; 1c0ec6 + db $0, "It shows interest", $4f + db "in @" + text_from_ram $d073 + db $0, ".", $58 +; 1c0ee3 -UnknownText_0x1c5ff1: ; 0x1c5ff1 +_EmptyMailboxText: ; 1c0ee3 + db $0, "There's no MAIL", $4f + db "here.", $58 +; 1c0ef9 + +ClearedMailPutAwayText: ; 1c0ef9 + db $0, "The cleared MAIL", $4f + db "was put away.", $58 +; 1c0f19 + +MailPackFullText: ; 1c0f19 + db $0, "The PACK is full.", $58 +; 1c0f2c + +MailMessageLostText: ; 1c0f2c + db $0, "The MAIL's message", $4f + db "will be lost. OK?", $57 +; 1c0f51 + +MailAlreadyHoldingItemText: ; 1c0f51 + db $0, "It's already hold-", $4f + db "ing an item.", $58 +; 1c0f71 + +MailEggText: ; 1c0f71 + db $0, "An EGG can't hold", $4f + db "any MAIL.", $58 +; 1c0f8d + +MailMovedFromBoxText: ; 1c0f8d + db $0, "The MAIL was moved", $4f + db "from the MAILBOX.", $58 +; 1c0fb3 + +UnknownText_0x1c0fb3: ; 1c0fb3 + db $0, "Yes", $58 +; 1c0fb8 + +UnknownText_0x1c0fb8: ; 1c0fb8 + db $0, "No", $58 +; 1c0fbc + +UnknownText_0x1c0fbc: ; 1c0fbc + deciram $cf64, $13 + db $0, " @" + text_from_ram $d073 + db $0, $4f + db "Animation type @" + text_from_ram $d086 + db "@" +; 1c0fdc + +UnknownText_0x1c0fdc: ; 1c0fdc + db "@" +; 1c0fdd + +UnknownText_0x1c0fdd: ; 1c0fdd + db $0, "#MON number?", $57 +; 1c0feb + +UnknownText_0x1c0feb: ; 1c0feb + text_from_ram $d073 + db $0, " was", $4f + db "sent to BILL's PC.", $58 +; 1c1006 + +UnknownText_0x1c1006: ; 1c1006 + db $0, "You gotta have", $4f + db "#MON to call!", $58 +; 1c1024 + +UnknownText_0x1c1024: ; 1c1024 + db $0, "What?", $57 +; 1c102b + +UnknownText_0x1c102b: ; 1c102b + db $0, "There is a #MON", $4f + db "holding MAIL.", $51 + db "Please remove the", $4f + db "MAIL.", $58 +; 1c1062 + +UnknownText_0x1c1062: ; 1c1062 + db $0, "You don't have a", $4f + db "single #MON!", $58 +; 1c1080 + +UnknownText_0x1c1080: ; 1c1080 + db $0, "You can't deposit", $4f + db "your last #MON!", $58 +; 1c10a2 + +UnknownText_0x1c10a2: ; 1c10a2 + db $0, "You can't take any", $4f + db "more #MON.", $58 +; 1c10c0 + +UnknownText_0x1c10c0: ; 1c10c0 + db $0, "Caught @" + text_from_ram $d073 + db $0, "!", $58 +; 1c10cf + +UnknownText_0x1c10cf: ; 1c10cf + db $0, "Switch #MON?", $57 +; 1c10dd + +UnknownText_0x1c10dd: ; 1c10dd + db $0, "You already caught", $4f + db "a @" + text_from_ram $d073 + db $0, ".", $58 +; 1c10fa + +UnknownText_0x1c10fa: ; 1c10fa + db $0, "This Bug-Catching", $4f + db "Contest winner is@" + interpret_data + db $0, "…", $51 + db "@" + text_from_ram $d016 db $0, ",", $4f - db "is that OK?", $57 -; 0x1c6000 + db "who caught a", $55 + db "@" + text_from_ram $d073 + db $0, "!@" + db "@" +; 1c113f -UnknownText_0x1c6000: ; 0x1c6000 - db $0, "Do you want to", $4f - db "switch to Daylight", $55 - db "Saving Time?", $57 -; 0x1c6030 +UnknownText_0x1c113f: ; 1c113f + db $0, $51 + db "The winning score", $4f + db "was @" + deciram $d004, $23 + db $0, " points!", $58 +; 1c1166 -UnknownText_0x1c6030: ; 0x1c6030 - db $0, "I set the clock", $4f - db "forward by one", $55 - db "hour.", $58 -; 0x1c6056 +UnknownText_0x1c1166: ; 1c1166 + db $0, "Placing second was", $4f + db "@" + text_from_ram $d016 + db $0, ",", $51 + db "who caught a", $4f + db "@" + text_from_ram $d073 + db $0, "!@" + db "@" +; 1c1196 -UnknownText_0x1c6056: ; 0x1c6056 - db $0, "Is Daylight Saving", $4f - db "Time over?", $57 -; 0x1c6075 +UnknownText_0x1c1196: ; 1c1196 + db $0, $51 + db "The score was", $4f + db "@" + deciram $d008, $23 + db $0, " points!", $58 +; 1c11b5 -UnknownText_0x1c6075: ; 0x1c6075 - db $0, "I put the clock", $4f - db "back one hour.", $58 -; 0x1c6095 +UnknownText_0x1c11b5: ; 1c11b5 + db $0, "Placing third was", $4f + db "@" + text_from_ram $d016 + db $0, ",", $51 + db "who caught a", $4f + db "@" + text_from_ram $d073 + db $0, "!@" + db "@" +; 1c11e4 -UnknownText_0x1c6095: ; 0x1c6095 - db $0, "Do you want to", $4f - db "adjust your clock", $51 - db "for Daylight", $4f - db "Saving Time?", $57 -; 0x1c60d1 +UnknownText_0x1c11e4: ; 1c11e4 + db $0, $51 + db "The score was", $4f + db "@" + deciram $d00c, $23 + db $0, " points!", $58 +; 1c1203 -UnknownText_0x1c60d1: ; 0x1c60d1 - db $0, "I lost the in-", $4f - db "struction booklet", $55 - db "for the #GEAR.", $51 - db "Come back again in", $4f - db "a while.", $58 -; 0x1c611e +UnknownText_0x1c1203: ; 1c1203 + db $0, "Let me measure", $4f + db "that MAGIKARP.", $51 + db "…Hm, it measures", $4f + db "@" + text_from_ram $d073 + db $0, ".", $58 +; 1c123a +UnknownText_0x1c123a: ; 1c123a + db $0, "CURRENT RECORD", $51 + db "@" + text_from_ram $d073 + db $0, " caught by", $4f + db "@" + text_from_ram $dfea + text_waitbutton + db "@" +; 1c1260 + +UnknownText_0x1c1260: ; 1c1260 + db "@" +; 1c1261 + +UnknownText_0x1c1261: ; 1c1261 + db $0, "Congratulations!", $51 + db "We have a match", $4f + db "with the ID number", $51 + db "of @" + text_from_ram $d073 + db $0, " in", $4f + db "your party.", $58 +; 1c12ae + +UnknownText_0x1c12ae: ; 1c12ae + db $0, "Congratulations!", $51 + db "We have a match", $4f + db "with the ID number", $51 + db "of @" + text_from_ram $d073 + db $0, " in", $4f + db "your PC BOX.", $58 +; 1c12fc + +UnknownText_0x1c12fc: ; 1c12fc + db $0, "Give a nickname to", $4f + db "the @" + text_from_ram $d073 + db $0, " you", $55 + db "received?", $57 +; 1c1328 + +UnknownText_0x1c1328: ; 1c1328 + db $0, "Bzzzzt! You must", $4f + db "have a #MON to", $55 + db "use this!", $58 +; 1c1353 + +UnknownText_0x1c1353: ; 1c1353 + db $0, $52, " turned on", $4f + db "the PC.", $58 +; 1c1368 + +UnknownText_0x1c1368: ; 1c1368 + db $0, "What do you want", $4f + db "to do?", $57 +; 1c1381 + +_KrissPCHowManyWithdrawText: ; 1c1381 + db $0, "How many do you", $4f + db "want to withdraw?", $57 +; 1c13a4 + +_KrissPCWithdrewItemsText: ; 1c13a4 + db $0, "Withdrew @" + deciram $d10c, $12 + db $0, $4f + db "@" + text_from_ram $d086 + db $0, "(S).", $58 +; 1c13bf + +_KrissPCNoRoomWithdrawText: ; 1c13bf + db $0, "There's no room", $4f + db "for more items.", $58 +; 1c13df + +UnknownText_0x1c13df: ; 1c13df + db $0, "No items here!", $58 +; 1c13ef + +_KrissPCHowManyDepositText: ; 1c13ef + db $0, "How many do you", $4f + db "want to deposit?", $57 +; 1c1411 + +_KrissPCDepositItemsText: ; 1c1411 + db $0, "Deposited @" + deciram $d10c, $12 + db $0, $4f + db "@" + text_from_ram $d086 + db $0, "(S).", $58 +; 1c142d + +_KrissPCNoRoomDepositText: ; 1c142d + db $0, "There's no room to", $4f + db "store items.", $58 +; 1c144d + +UnknownText_0x1c144d: ; 1c144d + db $0, $52, " turned on", $4f + db "the PC.", $58 +; 1c1462 + +UnknownText_0x1c1462: ; 1c1462 + db $0, "Access whose PC?", $57 +; 1c1474 + +UnknownText_0x1c1474: ; 1c1474 + db $0, "BILL's PC", $4f + db "accessed.", $51 + db "#MON Storage", $4f + db "System opened.", $58 +; 1c14a4 + +UnknownText_0x1c14a4: ; 1c14a4 + db $0, "Accessed own PC.", $51 + db "Item Storage", $4f + db "System opened.", $58 +; 1c14d2 + +UnknownText_0x1c14d2: ; 1c14d2 + db $0, "PROF.OAK's PC", $4f + db "accessed.", $51 + db "#DEX Rating", $4f + db "System opened.", $58 +; 1c1505 + +UnknownText_0x1c1505: ; 1c1505 + db $0, "…", $4f + db "Link closed…", $57 +; 1c1515 + +_OakPCText1: ; 1c1515 + db $0, "Want to get your", $4f + db "#DEX rated?", $57 +; 1c1533 + +_OakPCText2: ; 1c1533 + db $0, "Current #DEX", $4f + db "completion level:", $58 +; 1c1553 + +_OakPCText3: ; 1c1553 + text_from_ram $d099 + db $0, " #MON seen", $4f + db "@" + text_from_ram $d0ac + db $0, " #MON owned", $51 + db "PROF.OAK's", $4f + db "Rating:", $57 +; 1c1585 + +_OakRating01: ; 1c1585 + db $0, "Look for #MON", $4f + db "in grassy areas!", $57 +; 1c15a5 + +_OakRating02: ; 1c15a5 + db $0, "Good. I see you", $4f + db "understand how to", $55 + db "use # BALLS.", $57 +; 1c15d5 + +_OakRating03: ; 1c15d5 + db $0, "You're getting", $4f + db "good at this.", $51 + db "But you have a", $4f + db "long way to go.", $57 +; 1c1611 + +_OakRating04: ; 1c1611 + db $0, "You need to fill", $4f + db "up the #DEX.", $51 + db "Catch different", $4f + db "kinds of #MON!", $57 +; 1c164f + +_OakRating05: ; 1c164f + db $0, "You're trying--I", $4f + db "can see that.", $51 + db "Your #DEX is", $4f + db "coming together.", $57 +; 1c168c + +_OakRating06: ; 1c168c + db $0, "To evolve, some", $4f + db "#MON grow,", $51 + db "others use the", $4f + db "effects of STONES.", $57 +; 1c16ca + +_OakRating07: ; 1c16ca + db $0, "Have you gotten a", $4f + db "fishing ROD? You", $51 + db "can catch #MON", $4f + db "by fishing.", $57 +; 1c1709 + +_OakRating08: ; 1c1709 + db $0, "Excellent! You", $4f + db "seem to like col-", $55 + db "lecting things!", $57 +; 1c173b + +_OakRating09: ; 1c173b + db $0, "Some #MON only", $4f + db "appear during", $51 + db "certain times of", $4f + db "the day.", $57 +; 1c1773 + +_OakRating10: ; 1c1773 + db $0, "Your #DEX is", $4f + db "filling up. Keep", $55 + db "up the good work!", $57 +; 1c17a4 + +_OakRating11: ; 1c17a4 + db $0, "I'm impressed.", $4f + db "You're evolving", $51 + db "#MON, not just", $4f + db "catching them.", $57 +; 1c17e0 + +_OakRating12: ; 1c17e0 + db $0, "Have you met KURT?", $4f + db "His custom BALLS", $55 + db "should help.", $57 +; 1c1812 + +_OakRating13: ; 1c1812 + db $0, "Wow. You've found", $4f + db "more #MON than", $51 + db "the last #DEX", $4f + db "research project.", $57 +; 1c1853 + +_OakRating14: ; 1c1853 + db $0, "Are you trading", $4f + db "your #MON?", $51 + db "It's tough to do", $4f + db "this alone!", $57 +; 1c188b + +_OakRating15: ; 1c188b + db $0, "Wow! You've hit", $4f + db "200! Your #DEX", $55 + db "is looking great!", $57 +; 1c18bc + +_OakRating16: ; 1c18bc + db $0, "You've found so", $4f + db "many #MON!", $51 + db "You've really", $4f + db "helped my studies!", $57 +; 1c18f7 + +_OakRating17: ; 1c18f7 + db $0, "Magnificent! You", $4f + db "could become a", $51 + db "#MON professor", $4f + db "right now!", $57 +; 1c1932 + +_OakRating18: ; 1c1932 + db $0, "Your #DEX is", $4f + db "amazing! You're", $51 + db "ready to turn", $4f + db "professional!", $57 +; 1c196b + +_OakRating19: ; 1c196b + db $0, "Whoa! A perfect", $4f + db "#DEX! I've", $51 + db "dreamt about this!", $4f + db "Congratulations!", $57 +; 1c19aa + +_OakPCText4: ; 1c19aa + db $0, "The link to PROF.", $4f + db "OAK's PC closed.", $57 +; 1c19cd + +UnknownText_0x1c19cd: ; 1c19cd + db $0, "Triple-theme", $4f + db "trainer ranking!", $51 + db "The SAVE file you", $4f + db "just sent might", $55 + db "make the rankings!", $51 + db $57 +; 1c1a22 + +UnknownText_0x1c1a22: ; 1c1a22 + db $0, "There is no", $4f + db "ranking data.", $51 + db "Link to obtain", $4f + db "ranking data.", $51 + db $57 +; 1c1a5b + +UnknownText_0x1c1a5b: ; 1c1a5b + db $0, " , yeah!", $57 +; 1c1a65 + +UnknownText_0x1c1a65: ; 1c1a65 + db $0, "Darn…", $57 +; 1c1a6c + +UnknownText_0x1c1a6c: ; 1c1a6c + db $0, "Would you like to", $4f + db "end the Contest?", $57 +; 1c1a90 + +UnknownText_0x1c1a90: ; 1c1a90 + db $0, "Toss out how many", $4f + db "@" + text_from_ram $d086 + db $0, "(S)?", $57 +; 1c1aad + +UnknownText_0x1c1aad: ; 1c1aad + db $0, "Throw away @" + deciram $d10c, $12 + db $0, $4f + db "@" + text_from_ram $d086 + db $0, "(S)?", $57 +; 1c1aca + +UnknownText_0x1c1aca: ; 1c1aca + db $0, "Discarded", $4f + db "@" + text_from_ram $d073 + db $0, "(S).", $58 +; 1c1adf + +UnknownText_0x1c1adf: ; 1c1adf + db $0, "That's too impor-", $4f + db "tant to toss out!", $58 +; 1c1b03 + +UnknownText_0x1c1b03: ; 1c1b03 + db $0, "OAK: ", $52, "!", $4f + db "This isn't the", $55 + db "time to use that!", $57 +; 1c1b2c + +UnknownText_0x1c1b2c: ; 1c1b2c + db $0, "Took @" + text_from_ram $d050 + db $0, "'s", $4f + db "@" + text_from_ram $d073 + db $0, " and", $51 + db "made it hold", $4f + db "@" + text_from_ram $d086 + db $0, ".", $58 +; 1c1b57 + +UnknownText_0x1c1b57: ; 1c1b57 + db $0, "Made @" + text_from_ram $d050 + db $0, $4f + db "hold @" + text_from_ram $d086 + db $0, ".", $58 +; 1c1b6f + +UnknownText_0x1c1b6f: ; 1c1b6f + db $0, "Please remove the", $4f + db "MAIL first.", $58 +; 1c1b8e + +UnknownText_0x1c1b8e: ; 1c1b8e + text_from_ram $d050 + db $0, " isn't", $4f + db "holding anything.", $58 +; 1c1baa + +UnknownText_0x1c1baa: ; 1c1baa + db $0, "Item storage space", $4f + db "full.", $58 +; 1c1bc4 + +UnknownText_0x1c1bc4: ; 1c1bc4 + db $0, "Took @" + text_from_ram $d073 + db $0, $4f + db "from @" + text_from_ram $d050 + db $0, ".", $58 +; 1c1bdc + +UnknownText_0x1c1bdc: ; 1c1bdc + text_from_ram $d050 + db $0, " is", $4f + db "already holding", $51 + db "@" + text_from_ram $d073 + db $0, ".", $4f + db "Switch items?", $57 +; 1c1c09 + +UnknownText_0x1c1c09: ; 1c1c09 + db $0, "This item can't be", $4f + db "held.", $58 +; 1c1c22 + +UnknownText_0x1c1c22: ; 1c1c22 + db $0, "The MAIL will lose", $4f + db "its message. OK?", $57 +; 1c1c47 + +UnknownText_0x1c1c47: ; 1c1c47 + db $0, "MAIL detached from", $4f + db "@" + text_from_ram $d073 + db $0, ".", $58 +; 1c1c62 + +UnknownText_0x1c1c62: ; 1c1c62 + db $0, "There's no space", $4f + db "for removing MAIL.", $58 +; 1c1c86 + +UnknownText_0x1c1c86: ; 1c1c86 + db $0, "Send the removed", $4f + db "MAIL to your PC?", $57 +; 1c1ca9 + +UnknownText_0x1c1ca9: ; 1c1ca9 + db $0, "Your PC's MAILBOX", $4f + db "is full.", $58 +; 1c1cc4 + +UnknownText_0x1c1cc4: ; 1c1cc4 + db $0, "The MAIL was sent", $4f + db "to your PC.", $58 +; 1c1ce3 + +UnknownText_0x1c1ce3: ; 1c1ce3 + db $0, "Not enough HP!", $58 +; 1c1cf3 + +UnknownText_0x1c1cf3: ; 1c1cf3 + db $0, "An item in your", $4f + db "PACK may be", $51 + db "registered for use", $4f + db "on SELECT Button.", $57 +; 1c1d35 + +_OakText1: ; 1c1d35 + db $0, "Hello! Sorry to", $4f + db "keep you waiting!", $51 + db "Welcome to the", $4f + db "world of #MON!", $51 + db "My name is OAK.", $51 + db "People call me the", $4f + db "#MON PROF.", $58 +; 1c1da4 + +_OakText2: ; 1c1da4 + db $0, "This world is in-", $4f + db "habited by crea-", $55 + db "tures that we call", $55 + db "#MON.@" + db "@" +; 1c1de2 + +_OakText3: ; 1c1de2 + text_waitbutton + db "@" +; 1c1de4 + +UnknownText_0x1c1de4: ; 1c1de4 + db "@" +; 1c1de5 + +_OakText4: ; 1c1de5 + db $0, "People and #MON", $4f + db "live together by", $51 + db "supporting each", $4f + db "other.", $51 + db "Some people play", $4f + db "with #MON, some", $55 + db "battle with them.", $58 +; 1c1e51 + +_OakText5: ; 1c1e51 + db $0, "But we don't know", $4f + db "everything about", $55 + db "#MON yet.", $51 + db "There are still", $4f + db "many mysteries to", $55 + db "solve.", $51 + db "That's why I study", $4f + db "#MON every day.", $58 +; 1c1ec9 diff --git a/text/common_4.asm b/text/common_4.asm new file mode 100644 index 000000000..38a532e4a --- /dev/null +++ b/text/common_4.asm @@ -0,0 +1,1455 @@ +_OakText6: ; 0x1c4000 + db $0, "Now, what did you", $4f + db "say your name was?", $58 +; 0x1c4026 + +_OakText7: ; 0x1c4026 + db $0, $52, ", are you", $4f + db "ready?", $51 + db "Your very own", $4f + db "#MON story is", $55 + db "about to unfold.", $51 + db "You'll face fun", $4f + db "times and tough", $55 + db "challenges.", $51 + db "A world of dreams", $4f + db "and adventures", $51 + db "with #MON", $4f + db "awaits! Let's go!", $51 + db "I'll be seeing you", $4f + db "later!", $57 +; 0x1c40e6 + +UnknownText_0x1c40e6: ; 0x1c40e6 + db $0, "The clock's time", $4f + db "may be wrong.", $51 + db "Please reset the", $4f + db "time.", $58 +; 0x1c411c + +UnknownText_0x1c411c: ; 0x1c411c + db $0, "Set with the", $4f + db "Control Pad.", $51 + db "Confirm: A Button", $4f + db "Cancel: B Button", $57 +; 0x1c415b + +UnknownText_0x1c415b: ; 0x1c415b + db $0, "Is this OK?", $57 +; 0x1c4168 + +UnknownText_0x1c4168: ; 0x1c4168 + db $0, "The clock has been", $4f + db "reset.", $57 +; 0x1c4183 + +UnknownText_0x1c4183: ; 0x1c4183 + db $0, "Too much time has", $4f + db "elapsed. Please", $55 + db "try again.", $58 +; 0x1c41b1 + +UnknownText_0x1c41b1: ; 0x1c41b1 + db $0, "If you trade that", $4f + db "#MON, you won't", $55 + db "be able to battle.", $58 +; 0x1c41e6 + +UnknownText_0x1c41e6: ; 0x1c41e6 + db $0, "Your friend's", $4f + db "@" + text_from_ram $d073 + db $0, " appears", $55 + db "to be abnormal!", $58 +; 0x1c4212 + +UnknownText_0x1c4212: ; 0x1c4212 + db $0, "Trade @" + text_from_ram $d004 + db $0, $4f + db "for @" + text_from_ram $d073 + db $0, "?", $57 +; 0x1c422a + +UnknownText_0x1c422a: ; 0x1c422a + db $0, "To enter a mobile", $4f + db "battle, you must", $51 + db "pick a team of", $4f + db "three #MON.", $51 + db "Is that OK?", $57 +; 0x1c4275 + +UnknownText_0x1c4275: ; 0x1c4275 + db $0, "Need more info on", $4f + db "mobile battles?", $57 +; 0x1c4298 + +UnknownText_0x1c4298: ; 0x1c4298 + db $0, "For a mobile", $4f + db "battle, choose", $55 + db "three #MON.", $51 + db "The maximum daily", $4f + db "play time is ten", $51 + db "minutes for each", $4f + db "linked player.", $51 + db "If a battle isn't", $4f + db "finished within", $51 + db "the time limit,", $4f + db "the player with", $51 + db "the fewest fainted", $4f + db "#MON wins.", $51 + db "If tied, the team", $4f + db "that lost the", $51 + db "least amount of HP", $4f + db "wins.", $57 +; 0x1c439c + +UnknownText_0x1c439c: ; 0x1c439c + db $0, "Today's remaining", $4f + db "time is @" + deciram $d086, $12 + db $0, " min.", $51 + db "Would you like to", $4f + db "battle?", $57 +; 0x1c43dc + +UnknownText_0x1c43dc: ; 0x1c43dc + db $0, "There are only @" + deciram $d086, $12 + db $0, $4f + db "min. left today.", $51 + db "Want a quick", $4f + db "battle?", $57 +; 0x1c4419 + +UnknownText_0x1c4419: ; 0x1c4419 + db $0, "There is only", $4f + db "1 min. left today!", $51 + db "Want to rush", $4f + db "through a battle?", $57 +; 0x1c445a + +UnknownText_0x1c445a: ; 0x1c445a + db $0, "There is less than", $4f + db "1 min. left today!", $51 + db "Please try again", $4f + db "tomorrow.", $57 +; 0x1c449c + +UnknownText_0x1c449c: ; 0x1c449c + db $0, "Try again using", $4f + db "the same settings?", $57 +; 0x1c44c0 + +UnknownText_0x1c44c0: ; 0x1c44c0 + db $0, "There is less than", $4f + db "1 min. left today!", $57 +; 0x1c44e7 + +UnknownText_0x1c44e7: ; 0x1c44e7 + db $0, "No time left for", $4f + db "linking today.", $57 +; 0x1c4508 + +UnknownText_0x1c4508: ; 0x1c4508 + db $0, "Pick three #MON", $4f + db "for battle.", $57 +; 0x1c4525 + +UnknownText_0x1c4525: ; 0x1c4525 + db $0, "Today's remaining", $4f + db "time is @" + deciram $d086, $12 + db $0, " min.", $57 +; 0x1c454b + +UnknownText_0x1c454b: ; 0x1c454b + db $0, "Would you like to", $4f + db "save the game?", $57 +; 0x1c456d + +UnknownText_0x1c456d: ; 0x1c456d + db $0, "SAVING… DON'T TURN", $4f + db "OFF THE POWER.", $57 +; 0x1c4590 + +UnknownText_0x1c4590: ; 0x1c4590 + db $0, $52, " saved", $4f + db "the game.", $57 +; 0x1c45a3 + +UnknownText_0x1c45a3: ; 0x1c45a3 + db $0, "There is already a", $4f + db "save file. Is it", $55 + db "OK to overwrite?", $57 +; 0x1c45d9 + +UnknownText_0x1c45d9: ; 0x1c45d9 + db $0, "There is another", $4f + db "save file. Is it", $55 + db "OK to overwrite?", $57 +; 0x1c460d + +UnknownText_0x1c460d: ; 0x1c460d + db $0, "The save file is", $4f + db "corrupted!", $58 +; 0x1c462a + +UnknownText_0x1c462a: ; 0x1c462a + db $0, "When you change a", $4f + db "#MON BOX, data", $55 + db "will be saved. OK?", $57 +; 0x1c465f + +UnknownText_0x1c465f: ; 0x1c465f + db $0, "Each time you move", $4f + db "a #MON, data", $55 + db "will be saved. OK?", $57 +; 0x1c4693 + +UnknownText_0x1c4693: ; 0x1c4693 + db $0, "The window save", $4f + db "area was exceeded.", $57 +; 0x1c46b7 + +UnknownText_0x1c46b7: ; 0x1c46b7 + db $0, "No windows avail-", $4f + db "able for popping.", $57 +; 0x1c46dc + +UnknownText_0x1c46dc: ; 0x1c46dc + db $0, "Corrupted event!", $58 +; 0x1c46ee + +_ObjectEventText: ; 0x1c46ee + db $0, "Object event", $57 +; 0x1c46fc + +UnknownText_0x1c46fc: ; 0x1c46fc + db $0, "BG event", $57 +; 0x1c4706 + +UnknownText_0x1c4706: ; 0x1c4706 + db $0, "Coordinates event", $57 +; 0x1c4719 + +UnknownText_0x1c4719: ; 0x1c4719 + db $0, $52, " received", $4f + db "@" + text_from_ram $d0ac + db $0, ".", $57 +; 0x1c472c + +UnknownText_0x1c472c: ; 0x1c472c + db $0, $52, " put the", $4f + db "@" + text_from_ram $d073 + db $0, " in", $55 + db "the @" + text_from_ram $d099 + db $0, ".", $58 +; 0x1c474b + +UnknownText_0x1c474b: ; 0x1c474b + db $0, "The @" + text_from_ram $d099 + db $0, $4f + db "is full…", $58 +; 0x1c475f + +UnknownText_0x1c475f: ; 0x1c475f + db $0, "I see all.", $4f + db "I know all…", $51 + db "Certainly, I know", $4f + db "of your #MON!", $57 +; 0x1c4797 + +UnknownText_0x1c4797: ; 0x1c4797 + db $0, "Whaaaat? I can't", $4f + db "tell a thing!", $51 + db "How could I not", $4f + db "know of this?", $57 +; 0x1c47d4 + +UnknownText_0x1c47d4: ; 0x1c47d4 + db $0, "Hm… I see you met", $4f + db "@" + text_from_ram $d003 + db $0, " here:", $55 + db "@" + text_from_ram $d00e + db $0, "!", $58 +; 0x1c47fa + +UnknownText_0x1c47fa: ; 0x1c47fa + db $0, "The time was", $4f + db "@" + text_from_ram $d01f + db $0, "!", $51 + db "Its level was @" + text_from_ram $d036 + db $0, "!", $51 + db "Am I good or what?", $58 +; 0x1c4837 + +UnknownText_0x1c4837: ; 0x1c4837 + db $0, "Hm… @" + text_from_ram $d003 + db $0, $4f + db "came from @" + text_from_ram $d02a + db $0, $55 + db "in a trade?", $51 + db "@" + text_from_ram $d00e + db $0, $4f + db "was where @" + text_from_ram $d02a + db $0, $55 + db "met @" + text_from_ram $d003 + db $0, "!", $58 +; 0x1c487f + +UnknownText_0x1c487f: ; 0x1c487f + db $0, "What!? Incredible!", $51 + db "I don't understand", $4f + db "how, but it is", $51 + db "incredible!", $4f + db "You are special.", $51 + db "I can't tell where", $4f + db "you met it, but it", $55 + db "was at level @" + text_from_ram $d036 + db $0, ".", $51 + db "Am I good or what?", $58 +; 0x1c491d + +UnknownText_0x1c491d: ; 0x1c491d + db $0, "Hey!", $51 + db "That's an EGG!", $51 + db "You can't say that", $4f + db "you've met it yet…", $57 +; 0x1c4955 + +UnknownText_0x1c4955: ; 0x1c4955 + db $0, "Fufufu! I saw that", $4f + db "you'd do nothing!", $57 +; 0x1c497a + +UnknownText_0x1c497a: ; 0x1c497a + db $0, "Incidentally…", $51 + db "It would be wise", $4f + db "to raise your", $51 + db "#MON with a", $4f + db "little more care.", $57 +; 0x1c49c6 + +UnknownText_0x1c49c6: ; 0x1c49c6 + db $0, "Incidentally…", $51 + db "It seems to have", $4f + db "grown a little.", $51 + db "@" + text_from_ram $d003 + db $0, " seems", $4f + db "to be becoming", $55 + db "more confident.", $57 +; 0x1c4a21 + +UnknownText_0x1c4a21: ; 0x1c4a21 + db $0, "Incidentally…", $51 + db "@" + text_from_ram $d003 + db $0, " has", $4f + db "grown. It's gained", $55 + db "much strength.", $57 +; 0x1c4a5b + +UnknownText_0x1c4a5b: ; 0x1c4a5b + db $0, "Incidentally…", $51 + db "It certainly has", $4f + db "grown mighty!", $51 + db "This @" + text_from_ram $d003 + db $0, $4f + db "must have come", $51 + db "through numerous", $4f + db "#MON battles.", $51 + db "It looks brimming", $4f + db "with confidence.", $57 +; 0x1c4ae5 + +UnknownText_0x1c4ae5: ; 0x1c4ae5 + db $0, "Incidentally…", $51 + db "I'm impressed by", $4f + db "your dedication.", $51 + db "It's been a long", $4f + db "time since I've", $51 + db "seen a #MON as", $4f + db "mighty as this", $55 + db "@" + text_from_ram $d003 + db $0, ".", $51 + db "I'm sure that", $4f + db "seeing @" + text_from_ram $d003 + db $0, $51 + db "in battle would", $4f + db "excite anyone.", $57 +; 0x1c4b92 + +UnknownText_0x1c4b92: ; 0x1c4b92 + db $0, "Congratulations!", $4f + db "Your @" + text_from_ram $d086 + db $50 +; 0x1c4bae + +UnknownText_0x1c4bae: ; 0x1c4bae + db $50 +; 0x1c4baf + +UnknownText_0x1c4baf: ; 0x1c4baf + db $0, $51 + db "evolved into", $4f + db "@" + text_from_ram $d073 + db $0, "!", $57 +; 0x1c4bc5 + +UnknownText_0x1c4bc5: ; 0x1c4bc5 + db $0, "Huh? @" + text_from_ram $d086 + db $0, $4f + db "stopped evolving!", $58 +; 0x1c4be3 + +UnknownText_0x1c4be3: ; 0x1c4be3 + db $0, "What? @" + text_from_ram $d086 + db $0, $4f + db "is evolving!", $57 +; 0x1c4bfd + +UnknownText_0x1c4bfd: ; 0x1c4bfd + db $0, "How many?", $57 +; 0x1c4c08 + +UnknownText_0x1c4c08: ; 0x1c4c08 + deciram $d10c, $12 + db $0, " @" + text_from_ram $d086 + db $0, "(S)", $4f + db "will be ¥@" + deciram $ffc3, $36 + db $0, ".", $57 +; 0x1c4c28 + +UnknownText_0x1c4c28: ; 0x1c4c28 + db $0, "Hello, dear.", $51 + db "I sell inexpensive", $4f + db "herbal medicine.", $51 + db "They're good, but", $4f + db "a trifle bitter.", $51 + db "Your #MON may", $4f + db "not like them.", $51 + db "Hehehehe…", $57 +; 0x1c4ca3 + +UnknownText_0x1c4ca3: ; 0x1c4ca3 + db $0, "How many?", $57 +; 0x1c4cae + +UnknownText_0x1c4cae: ; 0x1c4cae + deciram $d10c, $12 + db $0, " @" + text_from_ram $d086 + db $0, "(S)", $4f + db "will be ¥@" + deciram $ffc3, $36 + db $0, ".", $57 +; 0x1c4cce + +UnknownText_0x1c4cce: ; 0x1c4cce + db $0, "Thank you, dear.", $4f + db "Hehehehe…", $57 +; 0x1c4cea + +UnknownText_0x1c4cea: ; 0x1c4cea + db $0, "Oh? Your PACK is", $4f + db "full, dear.", $57 +; 0x1c4d08 + +UnknownText_0x1c4d08: ; 0x1c4d08 + db $0, "Hehehe… You don't", $4f + db "have the money.", $57 +; 0x1c4d2a + +UnknownText_0x1c4d2a: ; 0x1c4d2a + db $0, "Come again, dear.", $4f + db "Hehehehe…", $57 +; 0x1c4d47 + +UnknownText_0x1c4d47: ; 0x1c4d47 + db $0, "Hiya! Care to see", $4f + db "some bargains?", $51 + db "I sell rare items", $4f + db "that nobody else", $51 + db "carries--but only", $4f + db "one of each item.", $57 +; 0x1c4db0 + +UnknownText_0x1c4db0: ; 0x1c4db0 + text_from_ram $d086 + db $0, " costs", $4f + db "¥@" + deciram $ffc3, $36 + db $0, ". Want it?", $57 +; 0x1c4dcd + +UnknownText_0x1c4dcd: ; 0x1c4dcd + db $0, "Thanks.", $57 +; 0x1c4dd6 + +UnknownText_0x1c4dd6: ; 0x1c4dd6 + db $0, "Uh-oh, your PACK", $4f + db "is chock-full.", $57 +; 0x1c4df7 + +UnknownText_0x1c4df7: ; 0x1c4df7 + db $0, "You bought that", $4f + db "already. I'm all", $55 + db "sold out of it.", $57 +; 0x1c4e28 + +UnknownText_0x1c4e28: ; 0x1c4e28 + db $0, "Uh-oh, you're", $4f + db "short on funds.", $57 +; 0x1c4e46 + +UnknownText_0x1c4e46: ; 0x1c4e46 + db $0, "Come by again", $4f + db "sometime.", $57 +; 0x1c4e5f + +UnknownText_0x1c4e5f: ; 0x1c4e5f + db $0, "What's up? Need", $4f + db "some medicine?", $57 +; 0x1c4e7e + +UnknownText_0x1c4e7e: ; 0x1c4e7e + db $0, "How many?", $57 +; 0x1c4e89 + +UnknownText_0x1c4e89: ; 0x1c4e89 + deciram $d10c, $12 + db $0, " @" + text_from_ram $d086 + db $0, "(S)", $4f + db "will cost ¥@" + deciram $ffc3, $36 + db $0, ".", $57 +; 0x1c4eab + +UnknownText_0x1c4eab: ; 0x1c4eab + db $0, "Thanks much!", $57 +; 0x1c4eb9 + +UnknownText_0x1c4eb9: ; 0x1c4eb9 + db $0, "You don't have any", $4f + db "more space.", $57 +; 0x1c4ed8 + +UnknownText_0x1c4ed8: ; 0x1c4ed8 + db $0, "Huh? That's not", $4f + db "enough money.", $57 +; 0x1c4ef6 + +UnknownText_0x1c4ef6: ; 0x1c4ef6 + db $0, "All right.", $4f + db "See you around.", $57 +; 0x1c4f12 + +UnknownText_0x1c4f12: ; 0x1c4f12 + db $0, "You don't have", $4f + db "anything to sell.", $58 +; 0x1c4f33 + +UnknownText_0x1c4f33: ; 0x1c4f33 + db $0, "How many?", $57 +; 0x1c4f3e + +UnknownText_0x1c4f3e: ; 0x1c4f3e + db $0, "I can pay you", $4f + db "¥@" + deciram $ffc3, $36 + db $0, ".", $51 + db "Is that OK?", $57 +; 0x1c4f62 + +UnknownText_0x1c4f62: ; 0x1c4f62 + db $0, "Welcome! How may I", $4f + db "help you?", $57 +; 0x1c4f80 + +UnknownText_0x1c4f80: ; 0x1c4f80 + db $0, "Here you are.", $4f + db "Thank you!", $57 +; 0x1c4f9a + +UnknownText_0x1c4f9a: ; 0x1c4f9a + db $0, "You don't have", $4f + db "enough money.", $57 +; 0x1c4fb7 + +UnknownText_0x1c4fb7: ; 0x1c4fb7 + db $0, "You can't carry", $4f + db "any more items.", $57 +; 0x1c4fd7 + +UnknownText_0x1c4fd7: ; 0x1c4fd7 + db $0, "Sorry, I can't buy", $4f + db "that from you.", $58 +; 0x1c4ff9 + +UnknownText_0x1c4ff9: ; 0x1c4ff9 + db $0, "Please come again!", $57 +; 0x1c500d + +UnknownText_0x1c500d: ; 0x1c500d + db $0, "Can I do anything", $4f + db "else for you?", $57 +; 0x1c502e + +UnknownText_0x1c502e: ; 0x1c502e + db $0, "Got ¥@" + deciram $ffc3, $36 + db $0, " for", $4f + db "@" + text_from_ram $d086 + db $0, "(S).", $57 +; 0x1c5049 + +UnknownText_0x1c5049: ; 0x1c5049 + db $0, "Bet how many", $4f + db "coins?", $57 +; 0x1c505e + +UnknownText_0x1c505e: ; 0x1c505e + db $0, "Start!", $57 +; 0x1c5066 + +UnknownText_0x1c5066: ; 0x1c5066 + db $0, "Not enough", $4f + db "coins.", $58 +; 0x1c5079 + +UnknownText_0x1c5079: ; 0x1c5079 + db $0, "Darn… Ran out of", $4f + db "coins…", $57 +; 0x1c5092 + +UnknownText_0x1c5092: ; 0x1c5092 + db $0, "Play again?", $57 +; 0x1c509f + +UnknownText_0x1c509f: ; 0x1c509f + db $0, "lined up!", $4f + db "Won @" + text_from_ram $d086 + db $0, " coins!", $57 +; 0x1c50bb + +UnknownText_0x1c50bb: ; 0x1c50bb + db $0, "Darn!", $57 +; 0x1c50c2 + +_MobileStadiumEntryText: ; 0x1c50c2 + db $0, "Data for use in", $4f + db "the MOBILE STADIUM", $51 + db "of the N64 #MON", $4f + db "STADIUM 2 can be", $55 + db "read here.", $51 + db "Read the data?", $57 +; 0x1c5121 + +_MobileStadiumSuccessText: ; 0x1c5121 + db $0, "Data transfer is", $4f + db "complete.", $51 + db "We hope you enjoy", $4f + db "MOBILE STADIUM", $51 + db "battles in the N64", $4f + db "#MON STADIUM 2.", $51 + db $57 +; 0x1c5182 + +UnknownText_0x1c5182: ; 0x1c5182 + db $0, "Clock time unknown", $57 +; 0x1c5196 + +UnknownText_0x1c5196: ; 0x1c5196 + db $0, "Delete the saved", $4f + db "LOG-IN PASSWORD?", $57 +; 0x1c51b9 + +UnknownText_0x1c51b9: ; 0x1c51b9 + db $0, "Deleted the LOG-IN", $4f + db "PASSWORD.", $57 +; 0x1c51d7 + +UnknownText_0x1c51d7: ; 0x1c51d7 + db $0, "Pick three #MON", $4f + db "for battle.", $58 +; 0x1c51f4 + +UnknownText_0x1c51f4: ; 0x1c51f4 + text_from_ram $d006 + db $0, ",", $4f + db "@" + text_from_ram $d00c + db $0, " and", $55 + db "@" + text_from_ram $d012 + db $0, ".", $51 + db "Use these three?", $57 +; 0x1c521c + +UnknownText_0x1c521c: ; 0x1c521c + db $0, "Only three #MON", $4f + db "may enter.", $58 +; 0x1c5238 + +UnknownText_0x1c5238: ; 0x1c5238 + db $0, "The CARD FOLDER", $4f + db "stores your and", $51 + db "your friends'", $4f + db "CARDS.", $51 + db "A CARD contains", $4f + db "information like", $51 + db "the person's name,", $4f + db "phone number and", $55 + db "profile.", $51 + db $57 +; 0x1c52bc + +UnknownText_0x1c52bc: ; 0x1c52bc + db $0, "This is your CARD.", $51 + db "Once you've", $4f + db "entered your phone", $51 + db "number, you can", $4f + db "trade CARDS with", $55 + db "your friends.", $51 + db $57 +; 0x1c531e + +UnknownText_0x1c531e: ; 0x1c531e + db $0, "If you have your", $4f + db "friend's CARD, you", $51 + db "can use it to make", $4f + db "a call from a", $51 + db "mobile phone on", $4f + db "the 2nd floor of a", $55 + db "#MON CENTER.", $51 + db $57 +; 0x1c5394 + +UnknownText_0x1c5394: ; 0x1c5394 + db $0, "To safely store", $4f + db "your collection of", $51 + db "CARDS, you must", $4f + db "set a PASSCODE for", $55 + db "your CARD FOLDER.", $51 + db $57 +; 0x1c53ee + +UnknownText_0x1c53ee: ; 0x1c53ee + db $0, "If the CARD FOLDER", $4f + db "is deleted, all", $51 + db "its CARDS and the", $4f + db "PASSCODE will also", $55 + db "be deleted.", $51 + db "Beware--a deleted", $4f + db "CARD FOLDER can't", $55 + db "be restored.", $51 + db "Want to delete", $4f + db "your CARD FOLDER?", $57 +; 0x1c5494 + +UnknownText_0x1c5494: ; 0x1c5494 + db $0, "Are you sure you", $4f + db "want to delete it?", $57 +; 0x1c54b9 + +UnknownText_0x1c54b9: ; 0x1c54b9 + db $0, "The CARD FOLDER", $4f + db "has been deleted.", $51 + db $57 +; 0x1c54dd + +UnknownText_0x1c54dd: ; 0x1c54dd + db $0, "There is an older", $4f + db "CARD FOLDER from a", $55 + db "previous journey.", $51 + db "Do you want to", $4f + db "open it?", $57 +; 0x1c552d + +UnknownText_0x1c552d: ; 0x1c552d + db $0, "Delete the old", $4f + db "CARD FOLDER?", $57 +; 0x1c554a + +UnknownText_0x1c554a: ; 0x1c554a + db $0, "Finish registering", $4f + db "CARDS?", $57 +; 0x1c5565 + +UnknownText_0x1c5565: ; 0x1c5565 + db $0, "Huh? Sorry, wrong", $4f + db "number!", $57 +; 0x1c5580 + +UnknownText_0x1c5580: ; 0x1c5580 + db $0, "Click!", $57 +; 0x1c5588 + +UnknownText_0x1c5588: ; 0x1c5588 + db $0, $56, $57 +; 0x1c558b + +UnknownText_0x1c558b: ; 0x1c558b + db $0, "That number is out", $4f + db "of the area.", $57 +; 0x1c55ac + +UnknownText_0x1c55ac: ; 0x1c55ac + db $0, "Just go talk to", $4f + db "that person!", $57 +; 0x1c55ca + +UnknownText_0x1c55ca: ; 0x1c55ca + db $0, "Thank you!", $57 +; 0x1c55d6 + +UnknownText_0x1c55d6: ; 0x1c55d6 + db $0, " :", $57 +; 0x1c55db + +UnknownText_0x1c55db: ; 0x1c55db + db $0, "Password OK.", $4f + db "Select CONTINUE &", $55 + db "reset settings.", $58 +; 0x1c560b + +UnknownText_0x1c560b: ; 0x1c560b + db $0, "Wrong password!", $58 +; 0x1c561c + +UnknownText_0x1c561c: ; 0x1c561c + db $0, "Reset the clock?", $57 +; 0x1c562e + +UnknownText_0x1c562e: ; 0x1c562e + db $0, "Please enter the", $4f + db "password.", $57 +; 0x1c564a + +UnknownText_0x1c564a: ; 0x1c564a + db $0, "Clear all save", $4f + db "data?", $57 +; 0x1c5660 + +UnknownText_0x1c5660: ; 0x1c5660 + text_from_ram $d050 + db $0, " learned", $4f + db "@" + text_from_ram $d086 + db $0, "!@" + sound0 + text_waitbutton + db $50 +; 0x1c5677 + +UnknownText_0x1c5677: ; 0x1c5677 + db $50 +; 0x1c5678 + +UnknownText_0x1c5678: ; 0x1c5678 + db $0, "Which move should", $4e, "be forgotten?", $57 +; 0x1c5699 + +UnknownText_0x1c5699: ; 0x1c5699 + db $0, "Stop learning", $4f + db "@" + text_from_ram $d086 + db $0, "?", $57 +; 0x1c56af + +UnknownText_0x1c56af: ; 0x1c56af + text_from_ram $d050 + db $0, $4f + db "did not learn", $55 + db "@" + text_from_ram $d086 + db $0, ".", $58 +; 0x1c56c9 + +UnknownText_0x1c56c9: ; 0x1c56c9 + text_from_ram $d050 + db $0, " is", $4f + db "trying to learn", $55 + db "@" + text_from_ram $d086 + db $0, ".", $51 + db "But @" + text_from_ram $d050 + db $0, $4f + db "can't learn more", $55 + db "than four moves.", $51 + db "Delete an older", $4f + db "move to make room", $55 + db "for @" + text_from_ram $d086 + db $0, "?", $57 +; 0x1c5740 + +UnknownText_0x1c5740: ; 0x1c5740 + db $0, "1, 2 and…@" + interpret_data + db $50 +; 0x1c574d + +UnknownText_0x1c574d: ; 0x1c574d + db $50 +; 0x1c574e + +UnknownText_0x1c574e: ; 0x1c574e + db $0, " Poof!@" + interpret_data + db $0, $51 + db "@" + text_from_ram $d050 + db $0, " forgot", $4f + db "@" + text_from_ram $d073 + db $0, ".", $51 + db "And…", $58 +; 0x1c5772 + +UnknownText_0x1c5772: ; 0x1c5772 + db $0, "HM moves can't be", $4f + db "forgotten now.", $58 +; 0x1c5793 + +UnknownText_0x1c5793: ; 0x1c5793 + db $0, "Play with three", $4f + db "coins?", $57 +; 0x1c57ab + +UnknownText_0x1c57ab: ; 0x1c57ab + db $0, "Not enough coins…", $58 +; 0x1c57be + +UnknownText_0x1c57be: ; 0x1c57be + db $0, "Choose a card.", $57 +; 0x1c57ce + +UnknownText_0x1c57ce: ; 0x1c57ce + db $0, "Place your bet.", $57 +; 0x1c57df + +UnknownText_0x1c57df: ; 0x1c57df + db $0, "Want to play", $4f + db "again?", $57 +; 0x1c57f4 + +UnknownText_0x1c57f4: ; 0x1c57f4 + db $0, "The cards have", $4f + db "been shuffled.", $58 +; 0x1c5813 + +UnknownText_0x1c5813: ; 0x1c5813 + db $0, "Yeah!", $57 +; 0x1c581a + +UnknownText_0x1c581a: ; 0x1c581a + db $0, "Darn…", $57 +; 0x1c5821 + +UnknownText_0x1c5821: ; 0x1c5821 + current_day + db $50 +; 0x1c5823 + +UnknownText_0x1c5823: ; 0x1c5823 + db $50 +; 0x1c5824 + +UnknownText_0x1c5824: ; 0x1c5824 + db $0, $56, $57 +; 0x1c5827 + +UnknownText_0x1c5827: ; 0x1c5827 + db $0, "You're out of the", $4f + db "service area.", $58 +; 0x1c5847 + +UnknownText_0x1c5847: ; 0x1c5847 + db $0, "Whom do you want", $4f + db "to call?", $57 +; 0x1c5862 + +UnknownText_0x1c5862: ; 0x1c5862 + db $0, "Press any button", $4f + db "to exit.", $57 +; 0x1c587d + +UnknownText_0x1c587d: ; 0x1c587d + db $0, "Delete this stored", $4f + db "phone number?", $57 +; 0x1c589f + +UnknownText_0x1c589f: ; 0x1c589f + db $0, "Which prize would", $4f + db "you like?", $57 +; 0x1c58bc + +UnknownText_0x1c58bc: ; 0x1c58bc + text_from_ram $d073 + db $0, "?", $4f + db "Is that right?", $57 +; 0x1c58d1 + +UnknownText_0x1c58d1: ; 0x1c58d1 + db $0, "Here you go!", $51 + db $57 +; 0x1c58e0 + +UnknownText_0x1c58e0: ; 0x1c58e0 + db $0, "You don't have", $4f + db "enough points.", $51 + db $57 +; 0x1c58ff + +UnknownText_0x1c58ff: ; 0x1c58ff + db $0, "You have no room", $4f + db "for it.", $51 + db $57 +; 0x1c591a + +UnknownText_0x1c591a: ; 0x1c591a + db $0, "Oh. Please come", $4f + db "back again!", $57 +; 0x1c5937 + +UnknownText_0x1c5937: ; 0x1c5937 + db $0, "Excuse me!", $51 + db $57 +; 0x1c5944 + +UnknownText_0x1c5944: ; 0x1c5944 + db $0, "Excuse me.", $4f + db "You're not ready.", $51 + db $57 +; 0x1c5962 + +UnknownText_0x1c5962: ; 0x1c5962 + db $0, "Please return when", $4f + db "you're ready.", $57 +; 0x1c5983 + +UnknownText_0x1c5983: ; 0x1c5983 + db $0, "You need at least", $4f + db "three #MON.", $51 + db $57 +; 0x1c59a3 + +UnknownText_0x1c59a3: ; 0x1c59a3 + db $0, "Sorry, an EGG", $4f + db "doesn't qualify.", $51 + db $57 +; 0x1c59c3 + +UnknownText_0x1c59c3: ; 0x1c59c3 + db $0, "Only three #MON", $4f + db "may be entered.", $51 + db $57 +; 0x1c59e5 + +UnknownText_0x1c59e5: ; 0x1c59e5 + db $0, "The @" + text_from_ram $d086 + db $0, " #MON", $4f + db "must all be", $55 + db "different kinds.", $51 + db $57 +; 0x1c5a13 + +UnknownText_0x1c5a13: ; 0x1c5a13 + db $0, "The @" + text_from_ram $d086 + db $0, " #MON", $4f + db "must not hold the", $55 + db "same items.", $51 + db $57 +; 0x1c5a42 + +UnknownText_0x1c5a42: ; 0x1c5a42 + db $0, "You can't take an", $4f + db "EGG!", $51 + db $57 +; 0x1c5a5a + +UnknownText_0x1c5a5a: ; 0x1c5a5a + db $0, "It dodged the", $4f + db "thrown BALL!", $51 + db "This #MON", $4f + db "can't be caught!", $58 +; 0x1c5a90 + +UnknownText_0x1c5a90: ; 0x1c5a90 + db $0, "You missed the", $4f + db "#MON!", $58 +; 0x1c5aa6 + +UnknownText_0x1c5aa6: ; 0x1c5aa6 + db $0, "Oh no! The #MON", $4f + db "broke free!", $58 +; 0x1c5ac3 + +UnknownText_0x1c5ac3: ; 0x1c5ac3 + db $0, "Aww! It appeared", $4f + db "to be caught!", $58 +; 0x1c5ae3 + +UnknownText_0x1c5ae3: ; 0x1c5ae3 + db $0, "Aargh!", $4f + db "Almost had it!", $58 +; 0x1c5afa + +UnknownText_0x1c5afa: ; 0x1c5afa + db $0, "Shoot! It was so", $4f + db "close too!", $58 +; 0x1c5b17 + +UnknownText_0x1c5b17: ; 0x1c5b17 + db $0, "Gotcha! @" + text_from_ram $c616 + db $0, $4f + db "was caught!@" + sound0x02 + db $50 +; 0x1c5b34 + +UnknownText_0x1c5b34: ; 0x1c5b34 + db $50 +; 0x1c5b35 + +UnknownText_0x1c5b35: ; 0x1c5b35 + text_waitbutton + db $50 +; 0x1c5b37 + +UnknownText_0x1c5b37: ; 0x1c5b37 + db $50 +; 0x1c5b38 + +UnknownText_0x1c5b38: ; 0x1c5b38 + text_from_ram $d050 + db $0, " was", $4f + db "sent to BILL's PC.", $58 +; 0x1c5b53 + +UnknownText_0x1c5b53: ; 0x1c5b53 + text_from_ram $c616 + db $0, "'s data", $4f + db "was newly added to", $55 + db "the #DEX.@" + sound0x2C + text_waitbutton + db $50 +; 0x1c5b7e + +UnknownText_0x1c5b7e: ; 0x1c5b7e + db $50 +; 0x1c5b7f + +UnknownText_0x1c5b7f: ; 0x1c5b7f + db $0, "Give a nickname to", $4f + db "@" + text_from_ram $d073 + db $0, "?", $57 +; 0x1c5b9a + +UnknownText_0x1c5b9a: ; 0x1c5b9a + text_from_ram $d073 + db $0, "'s", $4f + db "@" + text_from_ram $d086 + db $0, " rose.", $58 +; 0x1c5bac + +UnknownText_0x1c5bac: ; 0x1c5bac + db $0, "That can't be used", $4f + db "on this #MON.", $58 +; 0x1c5bcd + +UnknownText_0x1c5bcd: ; 0x1c5bcd + db $0, "The REPEL used", $4f + db "earlier is still", $55 + db "in effect.", $58 +; 0x1c5bf9 + +UnknownText_0x1c5bf9: ; 0x1c5bf9 + db $0, "Played the #", $4f + db "FLUTE.", $51 + db "Now, that's a", $4f + db "catchy tune!", $58 +; 0x1c5c28 + +UnknownText_0x1c5c28: ; 0x1c5c28 + db $0, "All sleeping", $4f + db "#MON woke up.", $58 +; 0x1c5c44 + +UnknownText_0x1c5c44: ; 0x1c5c44 + db $0, $52, " played the", $4f + db "# FLUTE.@" + text_waitbutton + db $50 +; 0x1c5c5d + +UnknownText_0x1c5c5d: ; 0x1c5c5d + db $50 +; 0x1c5c5e + +UnknownText_0x1c5c5e: ; 0x1c5c5e + db $0, "You now have", $4f + db "@" + deciram $dc4b, $12 + db $0, " points.", $57 +; 0x1c5c7b + +UnknownText_0x1c5c7b: ; 0x1c5c7b + db $0, "Coins:", $4f + db "@" + deciram $d855, $24 + db $50 +; 0x1c5c89 + +UnknownText_0x1c5c89: ; 0x1c5c89 + db $50 +; 0x1c5c8a + +UnknownText_0x1c5c8a: ; 0x1c5c8a + db $0, "Raise the PP of", $4f + db "which move?", $57 +; 0x1c5ca7 + +UnknownText_0x1c5ca7: ; 0x1c5ca7 + db $0, "Restore the PP of", $4f + db "which move?", $57 +; 0x1c5cc6 + +UnknownText_0x1c5cc6: ; 0x1c5cc6 + text_from_ram $d086 + db $0, "'s PP", $4f + db "is maxed out.", $58 +; 0x1c5cdd + +UnknownText_0x1c5cdd: ; 0x1c5cdd + text_from_ram $d086 + db $0, "'s PP", $4f + db "increased.", $58 +; 0x1c5cf1 + +UnknownText_0x1c5cf1: ; 0x1c5cf1 + db $0, "PP was restored.", $58 +; 0x1c5d03 + +UnknownText_0x1c5d03: ; 0x1c5d03 + db $0, "There was a trophy", $4f + db "inside!@" + sound0 + db $0, $51 + db "@" + text_from_ram PlayerName + db $0, " sent the", $4f + db "trophy home.", $58 +; 0x1c5d3e + +UnknownText_0x1c5d3e: ; 0x1c5d3e + db $0, "It looks bitter…", $58 +; 0x1c5d50 + +UnknownText_0x1c5d50: ; 0x1c5d50 + db $0, "That can't be used", $4f + db "on an EGG.", $58 +; 0x1c5d6e + +UnknownText_0x1c5d6e: ; 0x1c5d6e + db $0, "OAK: ", $52, "!", $4f + db "This isn't the", $55 + db "time to use that!", $58 +; 0x1c5d97 + +UnknownText_0x1c5d97: ; 0x1c5d97 + db $0, "That belongs to", $4f + db "someone else!", $58 +; 0x1c5db6 + +UnknownText_0x1c5db6: ; 0x1c5db6 + db $0, "It won't have any", $4f + db "effect.", $58 +; 0x1c5dd0 + +UnknownText_0x1c5dd0: ; 0x1c5dd0 + db $0, "The trainer", $4f + db "blocked the BALL!", $58 +; 0x1c5def + +UnknownText_0x1c5def: ; 0x1c5def + db $0, "Don't be a thief!", $58 +; 0x1c5e01 + +UnknownText_0x1c5e01: ; 0x1c5e01 + db $0, "Cycling isn't", $4f + db "allowed here.", $58 +; 0x1c5e1d + +UnknownText_0x1c5e1d: ; 0x1c5e1d + db $0, "Can't get on your", $4f + db "@" + text_from_ram $d073 + db $0, " now.", $58 +; 0x1c5e3a + +UnknownText_0x1c5e3a: ; 0x1c5e3a + db $0, "The #MON BOX", $4f + db "is full. That", $55 + db "can't be used now.", $58 +; 0x1c5e68 + +UnknownText_0x1c5e68: ; 0x1c5e68 + db $0, $52, " used the@" + text_dunno1 + text_from_ram $d086 + db $0, ".", $57 +; 0x1c5e7b + +UnknownText_0x1c5e7b: ; 0x1c5e7b + db $0, $52, " got on the@" + text_dunno1 + text_from_ram $d086 + db $0, ".", $58 +; 0x1c5e90 + +UnknownText_0x1c5e90: ; 0x1c5e90 + db $0, $52, " got off@" + text_dunno1 + db $0, "the @" + text_from_ram $d086 + db $0, ".", $58 +; 0x1c5ea8 + +UnknownText_0x1c5ea8: ; 0x1c5ea8 + text_from_ram $d073 + db $0, " knows", $4f + db "@" + text_from_ram $d086 + db $0, ".", $58 +; 0x1c5eba + +UnknownText_0x1c5eba: ; 0x1c5eba + db $0, "That #MON knows", $4f + db "only one move.", $57 +; 0x1c5eda + +UnknownText_0x1c5eda: ; 0x1c5eda + db $0, "Oh, make it forget", $4f + db "@" + text_from_ram $d073 + db $0, "?", $57 +; 0x1c5ef5 + +UnknownText_0x1c5ef5: ; 0x1c5ef5 + db $0, "Done! Your #MON", $4f + db "forgot the move.", $57 +; 0x1c5f17 + +UnknownText_0x1c5f17: ; 0x1c5f17 + db $0, "An EGG doesn't", $4f + db "know any moves!", $57 +; 0x1c5f36 + +UnknownText_0x1c5f36: ; 0x1c5f36 + db $0, "No? Come visit me", $4f + db "again.", $57 +; 0x1c5f50 + +UnknownText_0x1c5f50: ; 0x1c5f50 + db $0, "Which move should", $4f + db "it forget, then?", $58 +; 0x1c5f74 + +UnknownText_0x1c5f74: ; 0x1c5f74 + db $0, "Um… Oh, yes, I'm", $4f + db "the MOVE DELETER.", $51 + db "I can make #MON", $4f + db "forget moves.", $51 + db "Shall I make a", $4f + db "#MON forget?", $57 +; 0x1c5fd1 + +UnknownText_0x1c5fd1: ; 0x1c5fd1 + db $0, "Which #MON?", $58 +; 0x1c5fde + +UnknownText_0x1c5fde: ; 0x1c5fde + db $0, " DST,", $4f + db "is that OK?", $57 +; 0x1c5ff1 + +UnknownText_0x1c5ff1: ; 0x1c5ff1 + db $0, ",", $4f + db "is that OK?", $57 +; 0x1c6000 + +UnknownText_0x1c6000: ; 0x1c6000 + db $0, "Do you want to", $4f + db "switch to Daylight", $55 + db "Saving Time?", $57 +; 0x1c6030 + +UnknownText_0x1c6030: ; 0x1c6030 + db $0, "I set the clock", $4f + db "forward by one", $55 + db "hour.", $58 +; 0x1c6056 + +UnknownText_0x1c6056: ; 0x1c6056 + db $0, "Is Daylight Saving", $4f + db "Time over?", $57 +; 0x1c6075 + +UnknownText_0x1c6075: ; 0x1c6075 + db $0, "I put the clock", $4f + db "back one hour.", $58 +; 0x1c6095 + +UnknownText_0x1c6095: ; 0x1c6095 + db $0, "Do you want to", $4f + db "adjust your clock", $51 + db "for Daylight", $4f + db "Saving Time?", $57 +; 0x1c60d1 + +UnknownText_0x1c60d1: ; 0x1c60d1 + db $0, "I lost the in-", $4f + db "struction booklet", $55 + db "for the #GEAR.", $51 + db "Come back again in", $4f + db "a while.", $58 +; 0x1c611e + From 03413c9f438d27d3e4dda7cc5a7d19d8bca3a617 Mon Sep 17 00:00:00 2001 From: yenatch Date: Sun, 28 Jul 2013 17:16:51 -0400 Subject: [PATCH 23/84] common text 2 and some fixes to compile --- main.asm | 55 +- text/common_2.asm | 1842 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1856 insertions(+), 41 deletions(-) create mode 100644 text/common_2.asm diff --git a/main.asm b/main.asm index d7d8e1a56..0a01a6c0c 100644 --- a/main.asm +++ b/main.asm @@ -31066,10 +31066,10 @@ Function38000: ; 38000 ret nz ld a, [PlayerSubStatus5] bit 7, a - jr nz, .asm_38041 + jr nz, Function38041 ld a, [$c731] and a - jr nz, .asm_38041 + jr nz, Function38041 ld hl, $55a1 ld a, [$cfc0] and a @@ -31086,23 +31086,25 @@ Function38000: ; 38000 jp nz, $4083 bit 2, [hl] jp nz, $40c1 + ; fallthrough +; 38041 -.asm_38041 +Function38041: ; 38041 call $4105 ret ; 38045 Function38045: ; 38045 - callab Function34941 + callab Function0x34941 ld a, [$c717] and $f0 - jp z, $4041 + jp z, Function38041 cp $10 jr nz, .asm_38061 call RNG cp $80 jr c, .asm_38077 - jp $4041 + jp Function38041 .asm_38061 cp $20 @@ -31126,7 +31128,7 @@ Function38045: ; 38045 ; 38083 Function38083: ; 38083 - callab Function34941 + callab Function0x34941 ld a, [$c717] and $f0 jp z, $4041 @@ -31159,7 +31161,7 @@ Function38083: ; 38083 ; 380c1 Function380c1: ; 380c1 - callab Function34941 + callab Function0x34941 ld a, [$c717] and $f0 jp z, $4041 @@ -32191,7 +32193,7 @@ Function3d5d7: ; 3d5d7 ld a, $10 call FarCopyBytes call SetEnemyTurn - callab Function347c8 + callab Function0x347c8 pop bc pop de pop hl @@ -32226,13 +32228,13 @@ Function3d618: ; 3d618 ld a, [BattleMonType1] ld [PlayerMoveType], a call SetPlayerTurn - callab Function347c8 + callab Function0x347c8 ld a, [$d265] cp $b jr nc, .asm_3d663 ld a, [BattleMonType2] ld [PlayerMoveType], a - callab Function347c8 + callab Function0x347c8 ld a, [$d265] cp $b jr nc, .asm_3d663 @@ -56206,36 +56208,7 @@ SECTION "bank6F",DATA,BANK[$6F] ; Common text II -_FruitBearingTreeText: ; 0x1bc000 - db $0, "It's a fruit-", $4f - db "bearing tree.", $57 -; 0x1bc01c - -_HeyItsFruitText: ; 0x1bc01c - db $0, "Hey! It's", $4f - db "@" - text_from_ram StringBuffer3 - db $0, "!", $57 -; 0x1bc02d - -_ObtainedFruitText: ; 0x1bc02d - db $0, "Obtained", $4f - db "@" - text_from_ram StringBuffer3 - db $0, "!", $57 -; 0x1bc03e - -_FruitPackIsFullText: ; 0x1bc03e - db $0, "But the PACK is", $4f - db "full…", $57 -; 0x1bc055 - -_NothingHereText: ; 0x1bc055 - db $0, "There's nothing", $4f - db "here…", $57 -; 0x1bc06b - -INCBIN "baserom.gbc", $1bc06b, $1be08d - $1bc06b +INCLUDE "text/common_2.tx" SECTION "bank70",DATA,BANK[$70] diff --git a/text/common_2.asm b/text/common_2.asm new file mode 100644 index 000000000..5686d2cb5 --- /dev/null +++ b/text/common_2.asm @@ -0,0 +1,1842 @@ +_FruitBearingTreeText: ; 0x1bc000 + db $0, "It's a fruit-", $4f + db "bearing tree.", $57 +; 0x1bc01c + +_HeyItsFruitText: ; 0x1bc01c + db $0, "Hey! It's", $4f + db "@" + text_from_ram StringBuffer3 + db $0, "!", $57 +; 0x1bc02d + +_ObtainedFruitText: ; 0x1bc02d + db $0, "Obtained", $4f + db "@" + text_from_ram StringBuffer3 + db $0, "!", $57 +; 0x1bc03e + +_FruitPackIsFullText: ; 0x1bc03e + db $0, "But the PACK is", $4f + db "full…", $57 +; 0x1bc055 + +_NothingHereText: ; 0x1bc055 + db $0, "There's nothing", $4f + db "here…", $57 +; 0x1bc06b + +UnknownText_0x1bc06b: ; 0x1bc06b + db $0, "Which APRICORN", $4f + db "should I use?", $57 +; 0x1bc089 + +UnknownText_0x1bc089: ; 0x1bc089 + db $0, "How many should I", $4f + db "make?", $57 +; 0x1bc0a2 + +UnknownText_0x1bc0a2: ; 0x1bc0a2 + text_from_ram $d073 + db $0, $4f + db "recovered @" + deciram $d1f3, $23 + db $0, "HP!", $57 +; 0x1bc0bb + +UnknownText_0x1bc0bb: ; 0x1bc0bb + text_from_ram $d073 + db $0, "'s", $4f + db "cured of poison.", $57 +; 0x1bc0d2 + +UnknownText_0x1bc0d2: ; 0x1bc0d2 + text_from_ram $d073 + db $0, "'s", $4f + db "rid of paralysis.", $57 +; 0x1bc0ea + +UnknownText_0x1bc0ea: ; 0x1bc0ea + text_from_ram $d073 + db $0, "'s", $4f + db "burn was healed.", $57 +; 0x1bc101 + +UnknownText_0x1bc101: ; 0x1bc101 + text_from_ram $d073 + db $0, $4f + db "was defrosted.", $57 +; 0x1bc115 + +UnknownText_0x1bc115: ; 0x1bc115 + text_from_ram $d073 + db $0, $4f + db "woke up.", $57 +; 0x1bc123 + +UnknownText_0x1bc123: ; 0x1bc123 + text_from_ram $d073 + db $0, "'s", $4f + db "health returned.", $57 +; 0x1bc13a + +UnknownText_0x1bc13a: ; 0x1bc13a + text_from_ram $d073 + db $0, $4f + db "is revitalized.", $57 +; 0x1bc14f + +UnknownText_0x1bc14f: ; 0x1bc14f + text_from_ram $d073 + db $0, " grew to", $4f + db "level @" + deciram $d143, $13 + db $0, "!@" + sound0 + text_waitbutton + db "@" +; 0x1bc16d + +UnknownText_0x1bc16d: ; 0x1bc16d + db "@" +; 0x1bc16e + +UnknownText_0x1bc16e: ; 0x1bc16e + text_from_ram $d073 + db $0, " came", $4f + db "to its senses.", $57 +; 0x1bc187 + +UnknownText_0x1bc187: ; 0x1bc187 + db $0, "Please enter any", $4f + db "four-digit number.", $57 +; 0x1bc1ac + +UnknownText_0x1bc1ac: ; 0x1bc1ac + db $0, "Enter the same", $4f + db "number to confirm.", $57 +; 0x1bc1cf + +UnknownText_0x1bc1cf: ; 0x1bc1cf + db $0, "That's not the", $4f + db "same number.", $57 +; 0x1bc1eb + +UnknownText_0x1bc1eb: ; 0x1bc1eb + db $0, "Your PASSCODE has", $4f + db "been set.", $51 + db "Enter this number", $4f + db "next time to open", $55 + db "the CARD FOLDER.", $51 + db $57 +; 0x1bc23e + +UnknownText_0x1bc23e: ; 0x1bc23e + db $0, "0000 is invalid!", $51 + db $57 +; 0x1bc251 + +UnknownText_0x1bc251: ; 0x1bc251 + db $0, "Enter the CARD", $4e, "FOLDER PASSCODE.", $57 +; 0x1bc272 + +UnknownText_0x1bc272: ; 0x1bc272 + db $0, "Incorrect", $4f + db "PASSCODE!", $51 + db $57 +; 0x1bc288 + +UnknownText_0x1bc288: ; 0x1bc288 + db $0, "CARD FOLDER open.@" + db "@" +; 0x1bc29c + +UnknownText_0x1bc29c: ; 0x1bc29c + db $0, $56, $56, $56, $56, $56, $56, $4f + db $56, $56, $56, $56, $56, $56, $51 + db "Zzz… Hm? Wha…?", $4f + db "You woke me up!", $51 + db "Will you check the", $4f + db "clock for me?", $58 +; 0x1bc2eb + +UnknownText_0x1bc2eb: ; 0x1bc2eb + db $0, "What time is it?", $57 +; 0x1bc2fd + +UnknownText_0x1bc2fd: ; 0x1bc2fd + db $0, "What?@" + db "@" +; 0x1bc305 + +UnknownText_0x1bc305: ; 0x1bc305 + db $0, "?", $57 +; 0x1bc308 + +UnknownText_0x1bc308: ; 0x1bc308 + db $0, "How many minutes?", $57 +; 0x1bc31b + +UnknownText_0x1bc31b: ; 0x1bc31b + db $0, "Whoa!@" + db "@" +; 0x1bc323 + +UnknownText_0x1bc323: ; 0x1bc323 + db $0, "?", $57 +; 0x1bc326 + +UnknownText_0x1bc326: ; 0x1bc326 + db $0, "!", $4f + db "I overslept!", $57 +; 0x1bc336 + +UnknownText_0x1bc336: ; 0x1bc336 + db $0, "!", $4f + db "Yikes! I over-", $55 + db "slept!", $57 +; 0x1bc34f + +UnknownText_0x1bc34f: ; 0x1bc34f + db $0, "!", $4f + db "No wonder it's so", $55 + db "dark!", $57 +; 0x1bc369 + +UnknownText_0x1bc369: ; 0x1bc369 + db $0, "What day is it?", $57 +; 0x1bc37a + +UnknownText_0x1bc37a: ; 0x1bc37a + db $0, ", is it?", $57 +; 0x1bc384 + +UnknownText_0x1bc384: ; 0x1bc384 + db $0, "There is nothing", $4f + db "connected.", $57 +; 0x1bc3a1 + +UnknownText_0x1bc3a1: ; 0x1bc3a1 + db $0, "Check cell phone", $4f + db "adapter.", $57 +; 0x1bc3bc + +UnknownText_0x1bc3bc: ; 0x1bc3bc + db $0, "Check CDMA", $4f + db "adapter.", $57 +; 0x1bc3d1 + +UnknownText_0x1bc3d1: ; 0x1bc3d1 + db $0, "Check DOCOMO PHS", $4f + db "adapter.", $57 +; 0x1bc3ec + +UnknownText_0x1bc3ec: ; 0x1bc3ec + db $0, "Check DDI PHS", $4f + db "adapter.", $57 +; 0x1bc404 + +UnknownText_0x1bc404: ; 0x1bc404 + db $0, "Check unlimited", $4f + db "battle mobile", $55 + db "adapter.", $57 +; 0x1bc42c + +UnknownText_0x1bc42c: ; 0x1bc42c + db $0, "The password is:", $4f + db $57 +; 0x1bc43f + +UnknownText_0x1bc43f: ; 0x1bc43f + db $0, "Is this OK?", $57 +; 0x1bc44c + +UnknownText_0x1bc44c: ; 0x1bc44c + db $0, "Enter the", $4f + db "ID no.", $57 +; 0x1bc45e + +UnknownText_0x1bc45e: ; 0x1bc45e + db $0, "Enter the", $4f + db "amount.", $57 +; 0x1bc471 + +UnknownText_0x1bc471: ; 0x1bc471 + db $0, "There's nothing to", $4f + db "choose.", $58 +; 0x1bc48c + +UnknownText_0x1bc48c: ; 0x1bc48c + db $0, "Which side do you", $4f + db "want to put it on?", $57 +; 0x1bc4b2 + +UnknownText_0x1bc4b2: ; 0x1bc4b2 + db $0, "Which side do you", $4f + db "want to put away?", $57 +; 0x1bc4d7 + +UnknownText_0x1bc4d7: ; 0x1bc4d7 + db $0, "Put away the", $4f + db "@" + text_from_ram $d099 + db $0, ".", $58 +; 0x1bc4ec + +UnknownText_0x1bc4ec: ; 0x1bc4ec + db $0, "There's nothing to", $4f + db "put away.", $58 +; 0x1bc509 + +UnknownText_0x1bc509: ; 0x1bc509 + db $0, "Set up the", $4f + db "@" + text_from_ram $d099 + db $0, ".", $58 +; 0x1bc51c + +UnknownText_0x1bc51c: ; 0x1bc51c + db $0, "Put away the", $4f + db "@" + text_from_ram $d099 + db $0, $51 + db "and set up the", $4f + db "@" + text_from_ram $d0ac + db $0, ".", $58 +; 0x1bc546 + +UnknownText_0x1bc546: ; 0x1bc546 + db $0, "That's already set", $4f + db "up.", $58 +; 0x1bc55d + +UnknownText_0x1bc55d: ; 0x1bc55d + db $0, "It's the TOWN MAP.", $57 +; 0x1bc570 + +UnknownText_0x1bc570: ; 0x1bc570 + db $0, "It's a poster of a", $4f + db "cute PIKACHU.", $57 +; 0x1bc591 + +UnknownText_0x1bc591: ; 0x1bc591 + db $0, "It's a poster of a", $4f + db "cute CLEFAIRY.", $57 +; 0x1bc5b3 + +UnknownText_0x1bc5b3: ; 0x1bc5b3 + db $0, "It's a poster of a", $4f + db "cute JIGGLYPUFF.", $57 +; 0x1bc5d7 + +UnknownText_0x1bc5d7: ; 0x1bc5d7 + db $0, "It's an adorable", $4f + db "@" + text_from_ram $d099 + db $0, ".", $57 +; 0x1bc5ef + +UnknownText_0x1bc5ef: ; 0x1bc5ef + db $0, "A giant doll! It's", $4f + db "fluffy and cuddly.", $57 +; 0x1bc615 + +UnknownText_0x1bc615: ; 0x1bc615 + db $0, "Hi, ", $52, "!", $4f + db "How are you?", $58 +; 0x1bc62a + +UnknownText_0x1bc62a: ; 0x1bc62a + db $0, "I found a useful", $4f + db "item shopping, so", $58 +; 0x1bc64e + +UnknownText_0x1bc64e: ; 0x1bc64e + db $0, "I bought it with", $4f + db "your money. Sorry!", $58 +; 0x1bc673 + +UnknownText_0x1bc673: ; 0x1bc673 + db $0, "It's in your PC.", $4f + db "You'll like it!", $57 +; 0x1bc693 + +UnknownText_0x1bc693: ; 0x1bc693 + db $0, "While shopping", $4f + db "today, I saw this", $55 + db "adorable doll, so", $58 +; 0x1bc6c7 + +UnknownText_0x1bc6c7: ; 0x1bc6c7 + db $0, "It's in your room.", $4f + db "You'll love it!", $57 +; 0x1bc6e9 + +UnknownText_0x1bc6e9: ; 0x1bc6e9 + text_from_ram $c6d1 + db $0, " was", $4f + db "sent to @" + text_from_ram $c719 + db $0, ".", $57 +; 0x1bc701 + +UnknownText_0x1bc701: ; 0x1bc701 + db $0, $57 +; 0x1bc703 + +UnknownText_0x1bc703: ; 0x1bc703 + text_from_ram $c719 + db $0, " bids", $4f + db "farewell to", $57 +; 0x1bc719 + +UnknownText_0x1bc719: ; 0x1bc719 + text_from_ram $c703 + db $0, ".", $57 +; 0x1bc71f + +UnknownText_0x1bc71f: ; 0x1bc71f + db $0, "Take good care of", $4f + db "@" + text_from_ram $c703 + db $0, ".", $57 +; 0x1bc739 + +UnknownText_0x1bc739: ; 0x1bc739 + db $0, "For @" + text_from_ram $c6e7 + db $0, "'s", $4f + db "@" + text_from_ram $c6d1 + db $0, ",", $57 +; 0x1bc74c + +UnknownText_0x1bc74c: ; 0x1bc74c + text_from_ram $c719 + db $0, " sends", $4f + db "@" + text_from_ram $c703 + db $0, ".", $57 +; 0x1bc75e + +UnknownText_0x1bc75e: ; 0x1bc75e + text_from_ram $c719 + db $0, " will", $4f + db "trade @" + text_from_ram $c703 + db "@" +; 0x1bc773 + +UnknownText_0x1bc773: ; 0x1bc773 + db "@" +; 0x1bc774 + +UnknownText_0x1bc774: ; 0x1bc774 + db $0, "for @" + text_from_ram $c6e7 + db $0, "'s", $4f + db "@" + text_from_ram $c6d1 + db $0, ".", $57 +; 0x1bc787 + +UnknownText_0x1bc787: ; 0x1bc787 + text_from_ram $c6e7 + db $0, " will", $4f + db "trade @" + text_from_ram $c6d1 + db "@" +; 0x1bc79c + +UnknownText_0x1bc79c: ; 0x1bc79c + db "@" +; 0x1bc79d + +UnknownText_0x1bc79d: ; 0x1bc79d + db $0, "for @" + text_from_ram $c719 + db $0, "'s", $4f + db "@" + text_from_ram $c703 + db $0, ".", $57 +; 0x1bc7b0 + +UnknownText_0x1bc7b0: ; 0x1bc7b0 + text_from_ram $c6e7 + db $0, "'s", $4f + db "@" + text_from_ram $c6d1 + db $0, " trade…", $57 +; 0x1bc7c3 + +UnknownText_0x1bc7c3: ; 0x1bc7c3 + db $0, "Take good care of", $4f + db "@" + text_from_ram $c703 + db $0, ".", $57 +; 0x1bc7dd + +UnknownText_0x1bc7dd: ; 0x1bc7dd + text_from_ram $c6e7 + db $0, "'s", $4f + db "@" + text_from_ram $c6d1 + db $0, " trade…", $57 +; 0x1bc7f0 + +UnknownText_0x1bc7f0: ; 0x1bc7f0 + db $0, "Take good care of", $4f + db "@" + text_from_ram $c703 + db $0, ".", $57 +; 0x1bc80a + +UnknownText_0x1bc80a: ; 0x1bc80a + text_from_ram $c703 + db $0, " came", $4f + db "back!", $57 +; 0x1bc81a + +UnknownText_0x1bc81a: ; 0x1bc81a + db $0, $4f + db "MARY: PROF.OAK'S", $57 +; 0x1bc82d + +UnknownText_0x1bc82d: ; 0x1bc82d + db $0, $4f + db "#MON TALK!", $57 +; 0x1bc83a + +UnknownText_0x1bc83a: ; 0x1bc83a + db $0, $4f + db "With me, MARY!", $57 +; 0x1bc84b + +UnknownText_0x1bc84b: ; 0x1bc84b + db $0, $4f + db "OAK: @" + text_from_ram $d050 + db "@" +; 0x1bc857 + +UnknownText_0x1bc857: ; 0x1bc857 + db "@" +; 0x1bc858 + +UnknownText_0x1bc858: ; 0x1bc858 + db $0, $4f + db "may be seen around", $57 +; 0x1bc86d + +UnknownText_0x1bc86d: ; 0x1bc86d + db $0, $4f + db "@" + text_from_ram $d073 + db $0, ".", $57 +; 0x1bc876 + +UnknownText_0x1bc876: ; 0x1bc876 + db $0, $4f + db "MARY: @" + text_from_ram $d073 + db $0, "'s", $57 +; 0x1bc885 + +UnknownText_0x1bc885: ; 0x1bc885 + db $0, $4f + db "sweet and adorably", $57 +; 0x1bc89a + +UnknownText_0x1bc89a: ; 0x1bc89a + db $0, $4f + db "wiggly and slickly", $57 +; 0x1bc8af + +UnknownText_0x1bc8af: ; 0x1bc8af + db $0, $4f + db "aptly named and", $57 +; 0x1bc8c1 + +UnknownText_0x1bc8c1: ; 0x1bc8c1 + db $0, $4f + db "undeniably kind of", $57 +; 0x1bc8d6 + +UnknownText_0x1bc8d6: ; 0x1bc8d6 + db $0, $4f + db "so, so unbearably", $57 +; 0x1bc8ea + +UnknownText_0x1bc8ea: ; 0x1bc8ea + db $0, $4f + db "wow, impressively", $57 +; 0x1bc8fe + +UnknownText_0x1bc8fe: ; 0x1bc8fe + db $0, $4f + db "almost poisonously", $57 +; 0x1bc913 + +UnknownText_0x1bc913: ; 0x1bc913 + db $0, $4f + db "ooh, so sensually", $57 +; 0x1bc927 + +UnknownText_0x1bc927: ; 0x1bc927 + db $0, $4f + db "so mischievously", $57 +; 0x1bc93a + +UnknownText_0x1bc93a: ; 0x1bc93a + db $0, $4f + db "so very topically", $57 +; 0x1bc94e + +UnknownText_0x1bc94e: ; 0x1bc94e + db $0, $4f + db "sure addictively", $57 +; 0x1bc961 + +UnknownText_0x1bc961: ; 0x1bc961 + db $0, $4f + db "looks in water is", $57 +; 0x1bc975 + +UnknownText_0x1bc975: ; 0x1bc975 + db $0, $4f + db "evolution must be", $57 +; 0x1bc989 + +UnknownText_0x1bc989: ; 0x1bc989 + db $0, $4f + db "provocatively", $57 +; 0x1bc999 + +UnknownText_0x1bc999: ; 0x1bc999 + db $0, $4f + db "so flipped out and", $57 +; 0x1bc9ae + +UnknownText_0x1bc9ae: ; 0x1bc9ae + db $0, $4f + db "heart-meltingly", $57 +; 0x1bc9c0 + +UnknownText_0x1bc9c0: ; 0x1bc9c0 + db $0, $4f + db "cute.", $57 +; 0x1bc9c8 + +UnknownText_0x1bc9c8: ; 0x1bc9c8 + db $0, $4f + db "weird.", $57 +; 0x1bc9d1 + +UnknownText_0x1bc9d1: ; 0x1bc9d1 + db $0, $4f + db "pleasant.", $57 +; 0x1bc9dd + +UnknownText_0x1bc9dd: ; 0x1bc9dd + db $0, $4f + db "bold, sort of.", $57 +; 0x1bc9ee + +UnknownText_0x1bc9ee: ; 0x1bc9ee + db $0, $4f + db "frightening.", $57 +; 0x1bc9fd + +UnknownText_0x1bc9fd: ; 0x1bc9fd + db $0, $4f + db "suave & debonair!", $57 +; 0x1bca11 + +UnknownText_0x1bca11: ; 0x1bca11 + db $0, $4f + db "powerful.", $57 +; 0x1bca1d + +UnknownText_0x1bca1d: ; 0x1bca1d + db $0, $4f + db "exciting.", $57 +; 0x1bca29 + +UnknownText_0x1bca29: ; 0x1bca29 + db $0, $4f + db "groovy!", $57 +; 0x1bca33 + +UnknownText_0x1bca33: ; 0x1bca33 + db $0, $4f + db "inspiring.", $57 +; 0x1bca40 + +UnknownText_0x1bca40: ; 0x1bca40 + db $0, $4f + db "friendly.", $57 +; 0x1bca4c + +UnknownText_0x1bca4c: ; 0x1bca4c + db $0, $4f + db "hot, hot, hot!", $57 +; 0x1bca5d + +UnknownText_0x1bca5d: ; 0x1bca5d + db $0, $4f + db "stimulating.", $57 +; 0x1bca6c + +UnknownText_0x1bca6c: ; 0x1bca6c + db $0, $4f + db "guarded.", $57 +; 0x1bca77 + +UnknownText_0x1bca77: ; 0x1bca77 + db $0, $4f + db "lovely.", $57 +; 0x1bca81 + +UnknownText_0x1bca81: ; 0x1bca81 + db $0, $4f + db "speedy.", $57 +; 0x1bca8b + +UnknownText_0x1bca8b: ; 0x1bca8b + db $0, "#MON", $57 +; 0x1bca91 + +UnknownText_0x1bca91: ; 0x1bca91 + db $0, $4f + db "@" + text_from_ram $d073 + db "@" +; 0x1bca98 + +UnknownText_0x1bca98: ; 0x1bca98 + db "@" +; 0x1bca99 + +UnknownText_0x1bca99: ; 0x1bca99 + db $0, $4f + db "BEN: #MON MUSIC", $57 +; 0x1bcaab + +UnknownText_0x1bcaab: ; 0x1bcaab + db $0, $4f + db "CHANNEL!", $57 +; 0x1bcab6 + +UnknownText_0x1bcab6: ; 0x1bcab6 + db $0, $4f + db "It's me, DJ BEN!", $57 +; 0x1bcac8 + +UnknownText_0x1bcac8: ; 0x1bcac8 + db $0, $4f + db "FERN: #MUSIC!", $57 +; 0x1bcad8 + +UnknownText_0x1bcad8: ; 0x1bcad8 + db $0, $4f + db "With DJ FERN!", $57 +; 0x1bcae8 + +UnknownText_0x1bcae8: ; 0x1bcae8 + db $0, $4f + db "Today's @" + current_day + db $0, ",", $57 +; 0x1bcaf6 + +UnknownText_0x1bcaf6: ; 0x1bcaf6 + db $0, $4f + db "so let us jam to", $57 +; 0x1bcb09 + +UnknownText_0x1bcb09: ; 0x1bcb09 + db $0, $4f + db "so chill out to", $57 +; 0x1bcb1b + +UnknownText_0x1bcb1b: ; 0x1bcb1b + db $0, $4f + db "#MON March!", $57 +; 0x1bcb29 + +UnknownText_0x1bcb29: ; 0x1bcb29 + db $0, $4f + db "#MON Lullaby!", $57 +; 0x1bcb39 + +UnknownText_0x1bcb39: ; 0x1bcb39 + db $0, $4f + db "REED: Yeehaw! How", $57 +; 0x1bcb4d + +UnknownText_0x1bcb4d: ; 0x1bcb4d + db $0, $4f + db "y'all doin' now?", $57 +; 0x1bcb60 + +UnknownText_0x1bcb60: ; 0x1bcb60 + db $0, $4f + db "Whether you're up", $57 +; 0x1bcb73 + +UnknownText_0x1bcb73: ; 0x1bcb73 + db $0, $4f + db "or way down low,", $57 +; 0x1bcb86 + +UnknownText_0x1bcb86: ; 0x1bcb86 + db $0, $4f + db "don't you miss the", $57 +; 0x1bcb9a + +UnknownText_0x1bcb9a: ; 0x1bcb9a + db $0, $4f + db "LUCKY NUMBER SHOW!", $57 +; 0x1bcbaf + +UnknownText_0x1bcbaf: ; 0x1bcbaf + db $0, $4f + db "This week's Lucky", $57 +; 0x1bcbc2 + +UnknownText_0x1bcbc2: ; 0x1bcbc2 + db $0, $4f + db "Number is @" + interpret_data + text_from_ram $d073 + db $0, "!", $57 +; 0x1bcbd6 + +UnknownText_0x1bcbd6: ; 0x1bcbd6 + db $0, $4f + db "I'll repeat that!", $57 +; 0x1bcbe9 + +UnknownText_0x1bcbe9: ; 0x1bcbe9 + db $0, $4f + db "Match it and go to", $57 +; 0x1bcbfe + +UnknownText_0x1bcbfe: ; 0x1bcbfe + db $0, $4f + db "the RADIO TOWER!", $57 +; 0x1bcc11 + +UnknownText_0x1bcc11: ; 0x1bcc11 + db $0, $4f + db "…Repeating myself", $57 +; 0x1bcc25 + +UnknownText_0x1bcc25: ; 0x1bcc25 + db $0, $4f + db "gets to be a drag…", $57 +; 0x1bcc3a + +UnknownText_0x1bcc3a: ; 0x1bcc3a + db $0, $4f + db "PLACES AND PEOPLE!", $57 +; 0x1bcc4f + +UnknownText_0x1bcc4f: ; 0x1bcc4f + db $0, $4f + db "Brought to you by", $57 +; 0x1bcc63 + +UnknownText_0x1bcc63: ; 0x1bcc63 + db $0, $4f + db "me, DJ LILY!", $57 +; 0x1bcc72 + +UnknownText_0x1bcc72: ; 0x1bcc72 + db $0, $4f + db "@" + text_from_ram $d086 + db $0, " @" + text_from_ram $d073 + db "@" +; 0x1bcc7f + +UnknownText_0x1bcc7f: ; 0x1bcc7f + db "@" +; 0x1bcc80 + +UnknownText_0x1bcc80: ; 0x1bcc80 + db $0, $4f + db "is cute.", $57 +; 0x1bcc8b + +UnknownText_0x1bcc8b: ; 0x1bcc8b + db $0, $4f + db "is sort of lazy.", $57 +; 0x1bcc9e + +UnknownText_0x1bcc9e: ; 0x1bcc9e + db $0, $4f + db "is always happy.", $57 +; 0x1bccb1 + +UnknownText_0x1bccb1: ; 0x1bccb1 + db $0, $4f + db "is quite noisy.", $57 +; 0x1bccc3 + +UnknownText_0x1bccc3: ; 0x1bccc3 + db $0, $4f + db "is precocious.", $57 +; 0x1bccd4 + +UnknownText_0x1bccd4: ; 0x1bccd4 + db $0, $4f + db "is somewhat bold.", $57 +; 0x1bcce8 + +UnknownText_0x1bcce8: ; 0x1bcce8 + db $0, $4f + db "is too picky!", $57 +; 0x1bccf8 + +UnknownText_0x1bccf8: ; 0x1bccf8 + db $0, $4f + db "is sort of OK.", $57 +; 0x1bcd09 + +UnknownText_0x1bcd09: ; 0x1bcd09 + db $0, $4f + db "is just so-so.", $57 +; 0x1bcd1a + +UnknownText_0x1bcd1a: ; 0x1bcd1a + db $0, $4f + db "is actually great.", $57 +; 0x1bcd2f + +UnknownText_0x1bcd2f: ; 0x1bcd2f + db $0, $4f + db "is just my type.", $57 +; 0x1bcd42 + +UnknownText_0x1bcd42: ; 0x1bcd42 + db $0, $4f + db "is so cool, no?", $57 +; 0x1bcd54 + +UnknownText_0x1bcd54: ; 0x1bcd54 + db $0, $4f + db "is inspiring!", $57 +; 0x1bcd64 + +UnknownText_0x1bcd64: ; 0x1bcd64 + db $0, $4f + db "is kind of weird.", $57 +; 0x1bcd78 + +UnknownText_0x1bcd78: ; 0x1bcd78 + db $0, $4f + db "is right for me?", $57 +; 0x1bcd8b + +UnknownText_0x1bcd8b: ; 0x1bcd8b + db $0, $4f + db "is definitely odd!", $57 +; 0x1bcda0 + +UnknownText_0x1bcda0: ; 0x1bcda0 + db $0, $4f + db "@" + text_from_ram $d073 + db "@" +; 0x1bcda7 + +UnknownText_0x1bcda7: ; 0x1bcda7 + db "@" +; 0x1bcda8 + +UnknownText_0x1bcda8: ; 0x1bcda8 + db $0, $4f + db "… …Ahem, we are", $57 +; 0x1bcdba + +UnknownText_0x1bcdba: ; 0x1bcdba + db $0, $4f + db "TEAM ROCKET!", $57 +; 0x1bcdc9 + +UnknownText_0x1bcdc9: ; 0x1bcdc9 + db $0, $4f + db "After three years", $57 +; 0x1bcddd + +UnknownText_0x1bcddd: ; 0x1bcddd + db $0, $4f + db "of preparation, we", $57 +; 0x1bcdf2 + +UnknownText_0x1bcdf2: ; 0x1bcdf2 + db $0, $4f + db "have risen again", $57 +; 0x1bce05 + +UnknownText_0x1bce05: ; 0x1bce05 + db $0, $4f + db "from the ashes!", $57 +; 0x1bce17 + +UnknownText_0x1bce17: ; 0x1bce17 + db $0, $4f + db "GIOVANNI! @" + interpret_data + db $0, "Can you", $57 +; 0x1bce2e + +UnknownText_0x1bce2e: ; 0x1bce2e + db $0, $4f + db "hear?@" + interpret_data + db $0, " We did it!", $57 +; 0x1bce44 + +UnknownText_0x1bce44: ; 0x1bce44 + db $0, $4f + db "@" + interpret_data + db $0, "Where is our boss?", $57 +; 0x1bce5c + +UnknownText_0x1bce5c: ; 0x1bce5c + db $0, $4f + db "@" + interpret_data + db $0, "Is he listening?", $57 +; 0x1bce72 + +UnknownText_0x1bce72: ; 0x1bce72 + db $0, $4f + db "BUENA: BUENA here!", $57 +; 0x1bce87 + +UnknownText_0x1bce87: ; 0x1bce87 + db $0, $4f + db "Today's password!", $57 +; 0x1bce9a + +UnknownText_0x1bce9a: ; 0x1bce9a + db $0, $4f + db "Let me think… It's", $57 +; 0x1bceae + +UnknownText_0x1bceae: ; 0x1bceae + db $0, $4f + db "@" + text_from_ram $d073 + db $0, "!", $57 +; 0x1bceb7 + +UnknownText_0x1bceb7: ; 0x1bceb7 + db $0, $4f + db "Don't forget it!", $57 +; 0x1bcec9 + +UnknownText_0x1bcec9: ; 0x1bcec9 + db $0, $4f + db "I'm in GOLDENROD's", $57 +; 0x1bcedc + +UnknownText_0x1bcedc: ; 0x1bcedc + db $0, $4f + db "RADIO TOWER!", $57 +; 0x1bceeb + +UnknownText_0x1bceeb: ; 0x1bceeb + db $0, $4f + db "BUENA: Oh my…", $57 +; 0x1bcefb + +UnknownText_0x1bcefb: ; 0x1bcefb + db $0, $4f + db "It's midnight! I", $57 +; 0x1bcf0d + +UnknownText_0x1bcf0d: ; 0x1bcf0d + db $0, $4f + db "have to shut down!", $57 +; 0x1bcf22 + +UnknownText_0x1bcf22: ; 0x1bcf22 + db $0, $4f + db "Thanks for tuning", $57 +; 0x1bcf36 + +UnknownText_0x1bcf36: ; 0x1bcf36 + db $0, $4f + db "in to the end! But", $57 +; 0x1bcf4b + +UnknownText_0x1bcf4b: ; 0x1bcf4b + db $0, $4f + db "don't stay up too", $57 +; 0x1bcf5e + +UnknownText_0x1bcf5e: ; 0x1bcf5e + db $0, $4f + db "late! Presented to", $57 +; 0x1bcf73 + +UnknownText_0x1bcf73: ; 0x1bcf73 + db $0, $4f + db "you by DJ BUENA!", $57 +; 0x1bcf86 + +UnknownText_0x1bcf86: ; 0x1bcf86 + db $0, "I'm outta here!", $57 +; 0x1bcf96 + +UnknownText_0x1bcf96: ; 0x1bcf96 + db $0, "…", $57 +; 0x1bcf99 + +UnknownText_0x1bcf99: ; 0x1bcf99 + db $0, $4f + db $57 +; 0x1bcf9c + +UnknownText_0x1bcf9c: ; 0x1bcf9c + db $0, $3f, $4f + db "withdrew", $55 + db "@" + text_from_ram $c616 + db $0, "!", $58 +; 0x1bcfaf + +UnknownText_0x1bcfaf: ; 0x1bcfaf + db $0, $3f, $4f + db "used @" + text_from_ram $d050 + db $0, $55 + db "on @" + text_from_ram $c616 + db $0, "!", $58 +; 0x1bcfc7 + +UnknownText_0x1bcfc7: ; 0x1bcfc7 + db $0, "That can't be used", $4f + db "right now.", $58 +; 0x1bcfe5 + +UnknownText_0x1bcfe5: ; 0x1bcfe5 + db $0, "That item can't be", $4f + db "put in the PACK.", $57 +; 0x1bd009 + +UnknownText_0x1bd009: ; 0x1bd009 + db $0, "The @" + text_from_ram $d073 + db $0, $4f + db "was put in the", $55 + db "PACK.", $57 +; 0x1bd029 + +UnknownText_0x1bd029: ; 0x1bd029 + db $0, "Remaining Time", $57 +; 0x1bd039 + +UnknownText_0x1bd039: ; 0x1bd039 + db $0, "Your #MON's HP", $4f + db "was healed.", $58 +; 0x1bd054 + +UnknownText_0x1bd054: ; 0x1bd054 + db $0, "Warping…", $57 +; 0x1bd05e + +UnknownText_0x1bd05e: ; 0x1bd05e + db $0, "Which number", $4f + db "should be changed?", $57 +; 0x1bd07f + +UnknownText_0x1bd07f: ; 0x1bd07f + db $0, "Will you play with", $4f + db "@" + text_from_ram $d086 + db $0, "?", $57 +; 0x1bd09a + +UnknownText_0x1bd09a: ; 0x1bd09a + db $0, "You need two #-", $4f + db "MON for breeding.", $58 +; 0x1bd0bd + +UnknownText_0x1bd0bd: ; 0x1bd0bd + db $0, "Breeding is not", $4f + db "possible.", $58 +; 0x1bd0d8 + +UnknownText_0x1bd0d8: ; 0x1bd0d8 + db $0, "The compatibility", $4f + db "is @" + deciram $d265, $13 + db $0, ".", $55 + db "Should they breed?", $57 +; 0x1bd109 + +UnknownText_0x1bd109: ; 0x1bd109 + db $0, "There is no EGG.", $4f + db $58 +; 0x1bd11c + +UnknownText_0x1bd11c: ; 0x1bd11c + db $0, "It's going to", $4f + db "hatch!", $58 +; 0x1bd131 + +UnknownText_0x1bd131: ; 0x1bd131 + db $0, "Test event", $4f + db "@" + deciram $d086, $12 + db $0, "?", $57 +; 0x1bd145 + +UnknownText_0x1bd145: ; 0x1bd145 + db $0, "Start!", $57 +; 0x1bd14d + +UnknownText_0x1bd14d: ; 0x1bd14d + db $0, "End!", $57 +; 0x1bd153 + +UnknownText_0x1bd153: ; 0x1bd153 + db $0, "For a boy!", $57 +; 0x1bd15f + +UnknownText_0x1bd15f: ; 0x1bd15f + db $0, "For a girl!", $57 +; 0x1bd16c + +UnknownText_0x1bd16c: ; 0x1bd16c + db $0, "This doesn't", $4f + db "concern a boy!", $57 +; 0x1bd188 + +UnknownText_0x1bd188: ; 0x1bd188 + db $0, "The BOX is full!", $57 +; 0x1bd19a + +UnknownText_0x1bd19a: ; 0x1bd19a + db $0, "A new CARD arrived", $4f + db "from @" + text_from_ram $d086 + db $0, ".", $57 +; 0x1bd1ba + +UnknownText_0x1bd1ba: ; 0x1bd1ba + db $0, "Put this CARD in", $4f + db "the CARD FOLDER?", $57 +; 0x1bd1dd + +UnknownText_0x1bd1dd: ; 0x1bd1dd + text_from_ram $d086 + db $0, "'s CARD was", $4f + db "listed as no.@" + deciram $d073, $12 + db $0, ".", $58 +; 0x1bd201 + +UnknownText_0x1bd201: ; 0x1bd201 + db $0, "Starting link.", $57 +; 0x1bd211 + +UnknownText_0x1bd211: ; 0x1bd211 + db $0, "Link terminated.", $57 +; 0x1bd223 + +UnknownText_0x1bd223: ; 0x1bd223 + db $0, "Closing link.", $57 +; 0x1bd232 + +UnknownText_0x1bd232: ; 0x1bd232 + db $0, "Clear the time", $4f + db "limit?", $57 +; 0x1bd249 + +UnknownText_0x1bd249: ; 0x1bd249 + db $0, "The time limit was", $4f + db "cleared.", $57 +; 0x1bd266 + +UnknownText_0x1bd266: ; 0x1bd266 + db $0, "Pick which packet", $4f + db "as an error?", $57 +; 0x1bd286 + +UnknownText_0x1bd286: ; 0x1bd286 + db $0, "Trading @" + text_from_ram $d086 + db $0, $4f + db "for @" + text_from_ram $d073 + db $0, "…", $57 +; 0x1bd2a0 + +UnknownText_0x1bd2a0: ; 0x1bd2a0 + db $0, "Obtained the", $4f + db "VOLTORBBADGE!", $57 +; 0x1bd2bc + +UnknownText_0x1bd2bc: ; 0x1bd2bc + db $0, "Which floor?", $57 +; 0x1bd2ca + +UnknownText_0x1bd2ca: ; 0x1bd2ca + db $0, "ANNOUNCER: BEEEP!", $51 + db "Time's up!", $57 +; 0x1bd2e7 + +UnknownText_0x1bd2e7: ; 0x1bd2e7 + db $0, "ANNOUNCER: The", $4f + db "Contest is over!", $57 +; 0x1bd308 + +UnknownText_0x1bd308: ; 0x1bd308 + db $0, "REPEL's effect", $4f + db "wore off.", $57 +; 0x1bd321 + +UnknownText_0x1bd321: ; 0x1bd321 + db $0, $52, " found", $4f + db "@" + text_from_ram $d099 + db $0, "!", $57 +; 0x1bd331 + +UnknownText_0x1bd331: ; 0x1bd331 + db $0, "But ", $52, " has", $4f + db "no space left…", $57 +; 0x1bd34b + +UnknownText_0x1bd34b: ; 0x1bd34b + db $0, "I just saw some", $4f + db "rare @" + text_from_ram $d073 + db $0, " in", $55 + db "@" + text_from_ram $d086 + db $0, ".", $51 + db "I'll call you if I", $4f + db "see another rare", $55 + db "#MON, OK?", $58 +; 0x1bd39e + +UnknownText_0x1bd39e: ; 0x1bd39e + db $0, "SAVING RECORD…", $4f + db "DON'T TURN OFF!", $57 +; 0x1bd3be + +UnknownText_0x1bd3be: ; 0x1bd3be + text_from_ram $d47d + db $0, " received", $4f + db "@" + text_from_ram $d073 + db $0, "!@" + sound0x0F + text_waitbutton + db "@" +; 0x1bd3d6 + +UnknownText_0x1bd3d6: ; 0x1bd3d6 + db "@" +; 0x1bd3d7 + +UnknownText_0x1bd3d7: ; 0x1bd3d7 + db $0, "You have no coins.", $58 +; 0x1bd3eb + +UnknownText_0x1bd3eb: ; 0x1bd3eb + db $0, "You don't have a", $4f + db "COIN CASE.", $58 +; 0x1bd407 + +UnknownText_0x1bd407: ; 0x1bd407 + db $0, "OK, connect the", $4f + db "Game Link Cable.", $58 +; 0x1bd429 + +UnknownText_0x1bd429: ; 0x1bd429 + db $0, $52, " traded", $4f + db "@" + text_from_ram $d050 + db $0, " for", $55 + db "@" + text_from_ram $d086 + db $0, ".@" + db "@" +; 0x1bd445 + +UnknownText_0x1bd445: ; 0x1bd445 + sound0x0A + interpret_data + db "@" +; 0x1bd448 + +UnknownText_0x1bd448: ; 0x1bd448 + db "@" +; 0x1bd449 + +UnknownText_0x1bd449: ; 0x1bd449 + db $0, "I collect #MON.", $4f + db "Do you have", $55 + db "@" + text_from_ram $d073 + db $0, "?", $51 + db "Want to trade it", $4f + db "for my @" + text_from_ram $d086 + db $0, "?", $57 +; 0x1bd48c + +UnknownText_0x1bd48c: ; 0x1bd48c + db $0, "You don't want to", $4f + db "trade? Aww…", $57 +; 0x1bd4aa + +UnknownText_0x1bd4aa: ; 0x1bd4aa + db $0, "Huh? That's not", $4f + db "@" + text_from_ram $d073 + db $0, ". ", $55 + db "What a letdown…", $57 +; 0x1bd4d2 + +UnknownText_0x1bd4d2: ; 0x1bd4d2 + db $0, "Yay! I got myself", $4f + db "@" + text_from_ram $d073 + db $0, "!", $55 + db "Thanks!", $57 +; 0x1bd4f4 + +UnknownText_0x1bd4f4: ; 0x1bd4f4 + db $0, "Hi, how's my old", $4f + db "@" + text_from_ram $d086 + db $0, " doing?", $57 +; 0x1bd512 + +UnknownText_0x1bd512: ; 0x1bd512 + db $0, "Hi, I'm looking", $4f + db "for this #MON.", $51 + db "If you have", $4f + db "@" + text_from_ram $d073 + db $0, ", would", $51 + db "you trade it for", $4f + db "my @" + text_from_ram $d086 + db $0, "?", $57 +; 0x1bd565 + +UnknownText_0x1bd565: ; 0x1bd565 + db $0, "You don't have", $4f + db "one either?", $51 + db "Gee, that's really", $4f + db "disappointing…", $57 +; 0x1bd5a1 + +UnknownText_0x1bd5a1: ; 0x1bd5a1 + db $0, "You don't have", $4f + db "@" + text_from_ram $d073 + db $0, "? That's", $55 + db "too bad, then.", $57 +; 0x1bd5cc + +UnknownText_0x1bd5cc: ; 0x1bd5cc + db $0, "Great! Thank you!", $51 + db "I finally got", $4f + db "@" + text_from_ram $d073 + db $0, ".", $57 +; 0x1bd5f4 + +UnknownText_0x1bd5f4: ; 0x1bd5f4 + db $0, "Hi! The @" + text_from_ram $d050 + db $0, $4f + db "you traded me is", $55 + db "doing great!", $57 +; 0x1bd621 + +UnknownText_0x1bd621: ; 0x1bd621 + text_from_ram $d050 + db $0, "'s cute,", $4f + db "but I don't have", $51 + db "it. Do you have", $4f + db "@" + text_from_ram $d073 + db $0, "?", $51 + db "Want to trade it", $4f + db "for my @" + text_from_ram $d086 + db $0, "?", $57 +; 0x1bd673 + +UnknownText_0x1bd673: ; 0x1bd673 + db $0, "You don't want to", $4f + db "trade? Oh, darn…", $57 +; 0x1bd696 + +UnknownText_0x1bd696: ; 0x1bd696 + db $0, "That's not", $4f + db "@" + text_from_ram $d073 + db $0, ".", $51 + db "Please trade with", $4f + db "me if you get one.", $57 +; 0x1bd6cd + +UnknownText_0x1bd6cd: ; 0x1bd6cd + db $0, "Wow! Thank you!", $4f + db "I always wanted", $55 + db "@" + text_from_ram $d050 + db $0, "!", $57 +; 0x1bd6f5 + +UnknownText_0x1bd6f5: ; 0x1bd6f5 + db $0, "How is that", $4f + db "@" + text_from_ram $d086 + db $0, " I", $55 + db "traded you doing?", $51 + db "Your @" + text_from_ram $d050 + db $0, "'s", $4f + db "so cute!", $57 +; 0x1bd731 + +UnknownText_0x1bd731: ; 0x1bd731 + db $0, "Uh? What happened?", $57 +; 0x1bd745 + +UnknownText_0x1bd745: ; 0x1bd745 + db $0, "Trading is so odd…", $51 + db "I still have a lot", $4f + db "to learn about it.", $57 +; 0x1bd77f + +UnknownText_0x1bd77f: ; 0x1bd77f + db $0, "Wow, that's a cute", $4f + db "#MON.", $51 + db "Where did you get", $4f + db "it?", $51 + db "…", $51 + db "So, you're leaving", $4f + db "on an adventure…", $51 + db "OK!", $4f + db "I'll help too.", $51 + db "But what can I do", $4f + db "for you?", $51 + db "I know! I'll save", $4f + db "money for you.", $51 + db "On a long journey,", $4f + db "money's important.", $51 + db "Do you want me to", $4f + db "save your money?", $57 +; 0x1bd868 + +UnknownText_0x1bd868: ; 0x1bd868 + db $0, "OK, I'll take care", $4f + db "of your money.", $51 + db $56, $56, $56, $58 +; 0x1bd88e + +UnknownText_0x1bd88e: ; 0x1bd88e + db $0, "Be careful.", $51 + db "#MON are your", $4f + db "friends. You need", $55 + db "to work as a team.", $51 + db "Now, go on!", $57 +; 0x1bd8da + +UnknownText_0x1bd8da: ; 0x1bd8da + db $0, "Hi! Welcome home!", $4f + db "You're trying very", $55 + db "hard, I see.", $51 + db "I've kept your", $4f + db "room tidy.", $51 + db "Or is this about", $4f + db "your money?", $57 +; 0x1bd942 + +UnknownText_0x1bd942: ; 0x1bd942 + db $0, "What do you want", $4f + db "to do?", $57 +; 0x1bd95b + +UnknownText_0x1bd95b: ; 0x1bd95b + db $0, "How much do you", $4f + db "want to save?", $57 +; 0x1bd97a + +UnknownText_0x1bd97a: ; 0x1bd97a + db $0, "How much do you", $4f + db "want to take?", $57 +; 0x1bd999 + +UnknownText_0x1bd999: ; 0x1bd999 + db $0, "Do you want to", $4f + db "save some money?", $57 +; 0x1bd9ba + +UnknownText_0x1bd9ba: ; 0x1bd9ba + db $0, "You haven't saved", $4f + db "that much.", $58 +; 0x1bd9d7 + +UnknownText_0x1bd9d7: ; 0x1bd9d7 + db $0, "You can't take", $4f + db "that much.", $58 +; 0x1bd9f1 + +UnknownText_0x1bd9f1: ; 0x1bd9f1 + db $0, "You don't have", $4f + db "that much.", $58 +; 0x1bda0b + +UnknownText_0x1bda0b: ; 0x1bda0b + db $0, "You can't save", $4f + db "that much.", $58 +; 0x1bda25 + +UnknownText_0x1bda25: ; 0x1bda25 + db $0, "OK, I'll save your", $4f + db "money. Trust me!", $51 + db $52, ", stick", $4f + db "with it!", $57 +; 0x1bda5b + +UnknownText_0x1bda5b: ; 0x1bda5b + db $0, "Your money's safe", $4f + db "here! Get going!", $57 +; 0x1bda7e + +UnknownText_0x1bda7e: ; 0x1bda7e + db $0, $52, ", don't", $4f + db "give up!", $57 +; 0x1bda90 + +UnknownText_0x1bda90: ; 0x1bda90 + db $0, "Just do what", $4f + db "you can.", $57 +; 0x1bdaa7 + +UnknownText_0x1bdaa7: ; 0x1bdaa7 + db $0, $57 +; 0x1bdaa9 + +UnknownText_0x1bdaa9: ; 0x1bdaa9 + db $0, "I'm the DAY-CARE", $4f + db "MAN. Want me to", $55 + db "raise a #MON?", $57 +; 0x1bdad8 + +UnknownText_0x1bdad8: ; 0x1bdad8 + db $0, "I'm the DAY-CARE", $4f + db "MAN. Do you know", $55 + db "about EGGS?", $51 + db "I was raising", $4f + db "#MON with my", $55 + db "wife, you see.", $51 + db "We were shocked to", $4f + db "find an EGG!", $51 + db "How incredible is", $4f + db "that?", $51 + db "So, want me to", $4f + db "raise a #MON?", $57 +; 0x1bdb85 + +UnknownText_0x1bdb85: ; 0x1bdb85 + db $0, "I'm the DAY-CARE", $4f + db "LADY.", $51 + db "Should I raise a", $4f + db "#MON for you?", $57 +; 0x1bdbbb + +UnknownText_0x1bdbbb: ; 0x1bdbbb + db $0, "I'm the DAY-CARE", $4f + db "LADY. Do you know", $55 + db "about EGGS?", $51 + db "My husband and I", $4f + db "were raising some", $55 + db "#MON, you see.", $51 + db "We were shocked to", $4f + db "find an EGG!", $51 + db "How incredible", $4f + db "could that be?", $51 + db "Should I raise a", $4f + db "#MON for you?", $57 +; 0x1bdc79 + +UnknownText_0x1bdc79: ; 0x1bdc79 + db $0, "What should I", $4f + db "raise for you?", $58 +; 0x1bdc97 + +UnknownText_0x1bdc97: ; 0x1bdc97 + db $0, "Oh? But you have", $4f + db "just one #MON.", $58 +; 0x1bdcb8 + +UnknownText_0x1bdcb8: ; 0x1bdcb8 + db $0, "Sorry, but I can't", $4f + db "accept an EGG.", $58 +; 0x1bdcda + +UnknownText_0x1bdcda: ; 0x1bdcda + db $0, "Remove MAIL before", $4f + db "you come see me.", $58 +; 0x1bdcff + +UnknownText_0x1bdcff: ; 0x1bdcff + db $0, "If you give me", $4f + db "that, what will", $55 + db "you battle with?", $58 +; 0x1bdd30 + +UnknownText_0x1bdd30: ; 0x1bdd30 + db $0, "OK. I'll raise", $4f + db "your @" + text_from_ram $d073 + db $0, ".", $58 +; 0x1bdd4b + +UnknownText_0x1bdd4b: ; 0x1bdd4b + db $0, "Come back for it", $4f + db "later.", $57 +; 0x1bdd64 + +UnknownText_0x1bdd64: ; 0x1bdd64 + db $0, "Are we geniuses or", $4f + db "what? Want to see", $55 + db "your @" + text_from_ram $d073 + db $0, "?", $57 +; 0x1bdd96 + +UnknownText_0x1bdd96: ; 0x1bdd96 + db $0, "Your @" + text_from_ram $d073 + db $0, $4f + db "has grown a lot.", $51 + db "By level, it's", $4f + db "grown by @" + deciram $d087, $13 + db $0, ".", $51 + db "If you want your", $4f + db "#MON back, it", $55 + db "will cost ¥@" + deciram $d088, $34 + db $0, ".", $57 +; 0x1bde04 + +UnknownText_0x1bde04: ; 0x1bde04 + db $0, "Perfect! Here's", $4f + db "your #MON.", $58 +; 0x1bde1f + +UnknownText_0x1bde1f: ; 0x1bde1f + db $0, $52, " got back", $4f + db "@" + text_from_ram $d073 + db $0, ".", $58 +; 0x1bde32 + +UnknownText_0x1bde32: ; 0x1bde32 + db $0, "Huh? Back already?", $4f + db "Your @" + text_from_ram $d073 + db $0, $51 + db "needs a little", $4f + db "more time with us.", $51 + db "If you want your", $4f + db "#MON back, it", $55 + db "will cost ¥100.", $57 +; 0x1bdea2 + +UnknownText_0x1bdea2: ; 0x1bdea2 + db $0, "You have no room", $4f + db "for it.", $58 +; 0x1bdebc + +UnknownText_0x1bdebc: ; 0x1bdebc + db $0, "You don't have", $4f + db "enough money.", $58 +; 0x1bded9 + +UnknownText_0x1bded9: ; 0x1bded9 + db $0, "Oh, fine then.", $58 +; 0x1bdee9 + +UnknownText_0x1bdee9: ; 0x1bdee9 + db $0, "Come again.", $57 +; 0x1bdef6 + +UnknownText_0x1bdef6: ; 0x1bdef6 + db $0, "Not yet…", $57 +; 0x1bdf00 + +UnknownText_0x1bdf00: ; 0x1bdf00 + db $0, "Ah, it's you!", $51 + db "We were raising", $4f + db "your #MON, and", $51 + db "my goodness, were", $4f + db "we surprised!", $51 + db "Your #MON had", $4f + db "an EGG!", $51 + db "We don't know how", $4f + db "it got there, but", $51 + db "your #MON had", $4f + db "it. You want it?", $57 +; 0x1bdfa5 + +UnknownText_0x1bdfa5: ; 0x1bdfa5 + db $0, $52, " received", $4f + db "the EGG!", $57 +; 0x1bdfba + +UnknownText_0x1bdfba: ; 0x1bdfba + db $0, "Take good care of", $4f + db "it.", $57 +; 0x1bdfd1 + +UnknownText_0x1bdfd1: ; 0x1bdfd1 + db $0, "Well then, I'll", $4f + db "keep it. Thanks!", $57 +; 0x1bdff2 + +UnknownText_0x1bdff2: ; 0x1bdff2 + db $0, "You have no room", $4f + db "in your party.", $55 + db "Come back later.", $57 +; 0x1be024 + +UnknownText_0x1be024: ; 0x1be024 + db $0, "Which #MON", $4f + db "should I photo-", $55 + db "graph?", $58 +; 0x1be047 + +UnknownText_0x1be047: ; 0x1be047 + db $0, "All righty. Hold", $4f + db "still for a bit.", $58 +; 0x1be06a + +UnknownText_0x1be06a: ; 0x1be06a + db $0, "Presto! All done.", $4f + db "Come again, OK?", $57 +; 0x1be08d From 39d84d4491d79d565289248dcc9d7e2a2b68c671 Mon Sep 17 00:00:00 2001 From: yenatch Date: Sun, 28 Jul 2013 18:20:08 -0400 Subject: [PATCH 24/84] bank f --- main.asm | 7073 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 7017 insertions(+), 56 deletions(-) diff --git a/main.asm b/main.asm index 0a01a6c0c..abfe539c3 100644 --- a/main.asm +++ b/main.asm @@ -9257,7 +9257,16 @@ Function31be: ; 31be ret ; 31cd -INCBIN "baserom.gbc", $31cd, $31db - $31cd +Function31cd: ; 31cd + ld a, [hROMBank] + ld [$d0e8], a + ld a, l + ld [$d0e9], a + ld a, h + ld [$d0ea], a + ret +; 31db + StringCmp: ; 31db ; Compare strings, c bytes in length, at de and hl. @@ -10273,7 +10282,35 @@ FacingPlayerDistance: ; 36ad ; 36f5 -INCBIN "baserom.gbc", $36f5, $3741 - $36f5 +INCBIN "baserom.gbc", $36f5, $3718 - $36f5 + + +Function3718: ; 3718 + ld a, [BattleType] + cp $1 + jr .asm_3724 + + ld hl, WalkingTile + jr .asm_3731 + +.asm_3724 + ld a, [$d0ee] + ld hl, WalkingTile + and $f + jr z, .asm_3731 + ld hl, $d049 + +.asm_3731 + ld a, [hli] + ld h, [hl] + ld l, a + call GetMapEventBank + call Function31b0 + call WaitBGMap + call Functiona80 + ret +; 3741 + Function3741: ; 3741 @@ -10999,7 +11036,62 @@ FarBattleTextBox: ; 3ad5 ; 3ae1 -INCBIN "baserom.gbc", $3ae1, $3b2a - $3ae1 +Function3ae1: ; 3ae1 + ld a, $32 + rst Bankswitch + + ld a, [hli] + ld [$d410], a + ld a, [hl] + ld [$d411], a + ld a, $33 + rst Bankswitch + + ret +; 3af0 + +Function3af0: ; 3af0 + push hl + push de + ld hl, $d410 + ld e, [hl] + inc hl + ld d, [hl] + ld a, $32 + rst Bankswitch + + ld a, [de] + ld [$d417], a + inc de + ld a, $33 + rst Bankswitch + + ld [hl], d + dec hl + ld [hl], e + pop de + pop hl + ld a, [$d417] + ret +; 3b0c + +Function3b0c: ; 3b0c + ld a, [hLCDStatCustom] + and a + ret z + ld a, $0 + ld [$cf68], a + ld a, $d2 + ld [$cf69], a + ld a, $0 + ld [$cf6a], a + ld a, $d1 + ld [$cf6b], a + ld a, $9 + ld [$cf67], a + ret +; 3b2a + Function3b2a: ; 3b2a @@ -11443,7 +11535,18 @@ CheckSFX: ; 3dde ret ; 3dfe -INCBIN "baserom.gbc", $3dfe, $3e10 - $3dfe +Function3dfe: ; 3dfe + xor a + ld [$c1cc], a + ld [SoundInput], a + ld [rNR10], a + ld [rNR11], a + ld [rNR12], a + ld [rNR13], a + ld [rNR14], a + ret +; 3e10 + ChannelsOff: ; 3e10 ; Quickly turn off music channels @@ -19029,7 +19132,32 @@ PrintNumber_AdvancePointer: ; c64a ret ; 0xc658 -INCBIN "baserom.gbc", $c658, $c706 - $c658 +INCBIN "baserom.gbc", $c658, $c6ea - $c658 + + +Functionc6ea: ; c6ea + xor a + ld hl, MagikarpLength + ld bc, $0007 + call ByteFill + ret +; c6f5 + +Functionc6f5: ; c6f5 + ld a, [MagikarpLength] + rst JumpTable + ld [MagikarpLength], a + bit 7, a + jr nz, .asm_c702 + and a + ret + +.asm_c702 + and $7f + scf + ret +; c706 + GetPartyNick: ; c706 ; write CurPartyMon nickname to StringBuffer1-3 @@ -19282,7 +19410,140 @@ AskSurfText: ; ca36 ; ca3b -INCBIN "baserom.gbc", $ca3b, $d1d5 - $ca3b +INCBIN "baserom.gbc", $ca3b, $cb95 - $ca3b + + +Functioncb95: ; cb95 + call $46ea + ld a, $1 + jr .asm_cba1 + + call $46ea + ld a, $2 + +.asm_cba1 + ld [Buffer2], a +.asm_cba4 + ld hl, $4bb2 + call $46f5 + jr nc, .asm_cba4 + and $7f + ld [$d0ec], a + ret +; cbb2 + +INCBIN "baserom.gbc", $cbb2, $cf8e - $cbb2 + + +Functioncf8e: ; cf8e + ld a, e + push af + call $46ea + pop af + ld [Buffer2], a +.asm_cf97 + ld hl, $4fa5 + call $46f5 + jr nc, .asm_cf97 + and $7f + ld [$d0ec], a + ret +; cfa5 + +INCBIN "baserom.gbc", $cfa5, $d0b3 - $cfa5 + + +Functiond0b3: ; d0b3 + call $50bc + and $7f + ld [$d0ec], a + ret +; d0bc + +Functiond0bc: ; d0bc + call $5121 + jr c, .asm_d110 + ld a, [PlayerState] + cp $0 + jr z, .asm_d0ce + cp $1 + jr z, .asm_d0f7 + jr .asm_d110 + +.asm_d0ce + ld hl, $513e + ld de, $514e + call $5119 + call $31cd + xor a + ld [MusicFade], a + ld de, $0000 + call StartMusic + call DelayFrame + call MaxVolume + ld de, $0013 + ld a, e + ld [CurMusic], a + call StartMusic + ld a, $1 + ret + +.asm_d0f7 + ld hl, BikeFlags + bit 1, [hl] + jr nz, .asm_d10b + ld hl, $5158 + ld de, $516b + call $5119 + ld a, $3 + jr .asm_d113 + +.asm_d10b + ld hl, $5171 + jr .asm_d113 + +.asm_d110 + ld a, $0 + ret + +.asm_d113 + call $31cd + ld a, $1 + ret +; d119 + +Functiond119: ; d119 + ld a, [$d0ef] + and a + ret z + ld h, d + ld l, e + ret +; d121 + +Functiond121: ; d121 + call GetMapPermission + call CheckOutdoorMap + jr z, .asm_d133 + cp $4 + jr z, .asm_d133 + cp $6 + jr z, .asm_d133 + jr .asm_d13c + +.asm_d133 + call Function184a + and $f + jr nz, .asm_d13c + xor a + ret + +.asm_d13c + scf + ret +; d13e + +INCBIN "baserom.gbc", $d13e, $d1d5 - $d13e Functiond1d5: ; d1d5 @@ -21503,7 +21764,134 @@ ItemEffects: ; e73c INCLUDE "items/item_effects.asm" -INCBIN "baserom.gbc", $f780, $f881 - $f780 +Functionf780: ; f780 + push de + ld de, $0005 + call WaitPlaySFX + pop de + ret +; f789 + +Functionf789: ; f789 + ld hl, $783d + call PrintText + call $7780 + call Functiona80 + ; fallthrough +; f795 + +Functionf795: ; f795 + ld hl, NumItems + ld a, $1 + ld [$d10c], a + jp Function2f53 +; f7a0 + +Functionf7a0: ; f7a0 + call $6dfa + ld de, Start + ld a, e + ld [FXAnimIDLo], a + ld a, d + ld [FXAnimIDHi], a + xor a + ld [$c689], a + ld [hBattleTurn], a + ld [$cfca], a + ld a, $37 + call Predef + ld hl, $7824 + call PrintText + ld hl, $7829 + call PrintText + jr Functionf795 +; f7ca + +Functionf7ca: ; f7ca + ld hl, $781f + call PrintText + ld a, $2 + ld [$d0ec], a + ret +; f7d6 + +Functionf7d6: ; f7d6 + ld hl, $780b + jp PrintText +; f7dc + +Functionf7dc: ; f7dc + ld hl, $7838 + call PrintText + ld a, $2 + ld [$d0ec], a + ret +; f7e8 + +Functionf7e8: ; f7e8 + ld hl, $7810 + jr .asm_f804 + + ld hl, $7815 + jr .asm_f804 + + ld hl, $781f + jr .asm_f804 + + ld hl, $781a + jr .asm_f804 + + ld hl, $782e + jr .asm_f804 + + ld hl, $7833 + +.asm_f804 + xor a + ld [$d0ec], a + jp PrintText +; f80b + +INCBIN "baserom.gbc", $f80b, $f84c - $f80b + + +Functionf84c: ; f84c + ld a, $2 + call GetPartyParamLocation + push hl + ld de, MagikarpLength + ld a, $5 + call Predef + pop hl + ld bc, $0015 + add hl, bc + ld de, MagikarpLength + ld b, $0 +.asm_f864 + inc b + ld a, b + cp $5 + ret z + ld a, [$d265] + dec a + jr nz, .asm_f876 + ld a, [$cfa9] + inc a + cp b + jr nz, .asm_f87d + +.asm_f876 + ld a, [hl] + and $c0 + ld a, [de] + call nz, Functionf881 + +.asm_f87d + inc hl + inc de + jr .asm_f864 +; f881 + Functionf881: ; f881 @@ -21689,7 +22077,38 @@ Function10026: ; 10026 jp [hl] ; 10030 -INCBIN "baserom.gbc", $10030, $1068a - $10030 +INCBIN "baserom.gbc", $10030, $10493 - $10030 + + +Function10493: ; 10493 + ld hl, Options + set 4, [hl] + call Function1068a +.asm_1049b + call Functiona57 + ld a, [$cf63] + bit 7, a + jr nz, .asm_104ad + call $44b9 + call DelayFrame + jr .asm_1049b + +.asm_104ad + ld a, [$cf65] + ld [$d0d6], a + ld hl, Options + res 4, [hl] + ret +; 104b9 + +Function104b9: ; 104b9 + ld a, [$cf63] + ld hl, $44c3 + call Function1086b + jp [hl] +; 104c3 + +INCBIN "baserom.gbc", $104c3, $1068a - $104c3 Function1068a: ; 1068a @@ -21794,7 +22213,32 @@ Function1076f: ; 1076f ret ; 107bb -INCBIN "baserom.gbc", $107bb, $1086b - $107bb +Function107bb: ; 107bb + call Function106a5 + ld a, [InputType] + or a + jr z, .asm_107ca + ld a, $77 + ld hl, $628f + rst FarCall + +.asm_107ca + call $47d7 + call Function1076f + jr c, .asm_107ca + xor a + ld [$cf66], a + ret +; 107d7 + +Function107d7: ; 107d7 + ld a, [$cf63] + ld hl, $47e1 + call Function1086b + jp [hl] +; 107e1 + +INCBIN "baserom.gbc", $107e1, $1086b - $107e1 Function1086b: ; 1086b @@ -22371,7 +22815,28 @@ HalveMoney: ; 12513 ; 12527 -INCBIN "baserom.gbc", $12527, $125cd - $12527 +INCBIN "baserom.gbc", $12527, $12580 - $12527 + + +Function12580: ; 12580 + ld a, $2e + ld hl, $4172 + rst FarCall + jr c, .asm_1258d + ld hl, $65ba + jr .asm_12590 + +.asm_1258d + ld hl, $65ad + +.asm_12590 + call $31cd + ld a, $1 + ld [$d0ec], a + ret +; 12599 + +INCBIN "baserom.gbc", $12599, $125cd - $12599 StartMenu: ; 125cd @@ -29248,7 +29713,43 @@ Function24b25: ; 24b25 ret ; 24b4e -INCBIN "baserom.gbc", $24b4e, $24ef2 - $24b4e +INCBIN "baserom.gbc", $24b4e, $24e99 - $24b4e + + +Function24e99: ; 24e99 + ld hl, $4ed4 + call Function1d3c + xor a + ld [hBGMapMode], a + call Function1cbb + call Function1ad2 + call Function1c89 + call WaitBGMap + call Function1c66 + ld a, [$cf91] + bit 7, a + jr z, .asm_24ed0 + call Function1c10 + ld hl, $cfa5 + set 6, [hl] + call Function1bc9 + ld de, $0008 + call StartSFX + ld a, [hJoyPressed] + bit 1, a + jr z, .asm_24ed2 + ret z + +.asm_24ed0 + scf + ret + +.asm_24ed2 + and a + ret +; 24ed4 + +INCBIN "baserom.gbc", $24ed4, $24ef2 - $24ed4 Function24ef2: ; 4ef2 @@ -29888,7 +30389,31 @@ Function26ef1: ; 26ef1 jp $6a3b ; 26ef5 -INCBIN "baserom.gbc", $26ef5, $26f59 - $26ef5 +INCBIN "baserom.gbc", $26ef5, $26f02 - $26ef5 + + +Function26f02: ; 26f02 + ld a, c + call $6f0c + ld b, $1 + call Function26a3b + ret +; 26f0c + +Function26f0c: ; 26f0c + push hl + push de + ld e, a + ld d, $0 + ld hl, $6f2b + add hl, de + ld a, [hl] + pop de + pop hl + ret +; 26f19 + +INCBIN "baserom.gbc", $26f19, $26f59 - $26f19 Function26f59: ; 26f59 @@ -29929,7 +30454,31 @@ Function26fdd: ; 26fdd ret ; 26fe3 -INCBIN "baserom.gbc", $26fe3, $270c4 - $26fe3 +INCBIN "baserom.gbc", $26fe3, $2709e - $26fe3 + + +Function2709e: ; 2709e + ld a, [CurPartyMon] + ld hl, PartyMon1CaughtLocation + call GetPartyLocation + ld a, [hl] + and $7f + ld d, a + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + call GetWorldMapLocation + cp d + ld c, $1 + jr nz, .asm_270bd + ld c, $13 + +.asm_270bd + callab Function71c2 + ret +; 270c4 + GetTrainerDVs: ; 270c4 ; get dvs based on trainer class @@ -30024,7 +30573,86 @@ TrainerClassDVs ; 270d6 db $98, $88 ; mysticalman ; 2715c -INCBIN "baserom.gbc", $2715c, $271f4 - $2715c +Function2715c: ; 2715c + call WhiteBGMap + call ClearTileMap + ld a, [BattleType] + cp $3 + jr z, .asm_27171 + callba Function3f43d + jr .asm_27177 + +.asm_27171 + callba GetPlayerBackpic + +.asm_27177 + callba Function3f47c + callba Function3ed9f + call ClearSGB + call Function1c17 + call Function1d6e + call WaitBGMap + jp Function32f9 +; 27192 + +Function27192: ; 27192 + push hl + push de + push bc + ld a, [hBattleTurn] + and a + ld hl, OTPartyMon1Item + ld de, EnemyMonItem + ld a, [CurOTMon] + jr z, .asm_271ac + ld hl, PartyMon1Item + ld de, BattleMonItem + ld a, [CurBattleMon] + +.asm_271ac + push hl + push af + ld a, [de] + ld b, a + callba GetItem + ld hl, $71de +.asm_271b9 + ld a, [hli] + cp b + jr z, .asm_271c6 + inc a + jr nz, .asm_271b9 + pop af + pop hl + pop bc + pop de + pop hl + ret + +.asm_271c6 + xor a + ld [de], a + pop af + pop hl + call GetPartyLocation + ld a, [hBattleTurn] + and a + jr nz, .asm_271d8 + ld a, [IsInBattle] + dec a + jr z, .asm_271da + +.asm_271d8 + ld [hl], $0 + +.asm_271da + pop bc + pop de + pop hl + ret +; 271de + +INCBIN "baserom.gbc", $271de, $271f4 - $271de MoveEffectsPointers: ; 271f4 INCLUDE "battle/moves/move_effects_pointers.asm" @@ -30121,7 +30749,34 @@ INCBIN "gfx/misc/dude.lz" SECTION "bankB",DATA,BANK[$B] -INCBIN "baserom.gbc", $2c000, $2c059 - $2c000 +INCBIN "baserom.gbc", $2c000, $2c012 - $2c000 + + +Function2c012: ; 2c012 + ld a, $e4 + ld [rOBP0], a + call Function2c165 + jp $403a +; 2c01c + +INCBIN "baserom.gbc", $2c01c, $2c03a - $2c01c + + +Function2c03a: ; 2c03a + call $40c5 + ld hl, OTPartyMon1CurHP + ld de, OTPartyCount + call Function2c059 + ld hl, $cfc4 + ld a, $48 + ld [hli], a + ld [hl], $20 + ld a, $f8 + ld [$d003], a + ld hl, $c418 + jp Function2c143 +; 2c059 + Function2c059: ; 2c059 @@ -31284,7 +31939,29 @@ Function38170: ; 38170 ret ; 38196 -INCBIN "baserom.gbc", $38196, $3844b - $38196 +INCBIN "baserom.gbc", $38196, $38387 - $38196 + + +Function38387: ; 38387 + call UpdateEnemyMonInParty + callba Function3e036 + ld a, $1 + ld [hBGMapMode], a + ld hl, $c6e6 + dec [hl] + scf + ret +; 3839a + +Function3839a: ; 3839a + push de + ld de, $0005 + call StartSFX + pop de + ret +; 383a3 + +INCBIN "baserom.gbc", $383a3, $3844b - $383a3 Function3844b: ; 3844b @@ -31371,14 +32048,203 @@ UnknownText_0x384d0: ; 384d0 db "@" ; 384d5 -INCBIN "baserom.gbc", $384d5, $38591 - $384d5 +Function384d5: ; 384d5 + call $439a + call $44e0 + ld a, $34 + jp $4568 +; 384e0 + +Function384e0: ; 384e0 + ld a, [CurOTMon] + ld hl, OTPartyMon1Status + ld bc, $0030 + call AddNTimes + xor a + ld [hl], a + ld [EnemyMonStatus], a + ld hl, EnemySubStatus5 + res 0, [hl] + ret +; 384f7 + +Function384f7: ; 384f7 + call $439a + ld hl, EnemySubStatus4 + set 0, [hl] + ld a, $21 + jp $4568 +; 38504 + +Function38504: ; 38504 + call $439a + ld hl, EnemySubStatus4 + set 1, [hl] + ld a, $29 + jp $4568 +; 38511 + +Function38511: ; 38511 + call $439a + ld hl, EnemySubStatus4 + set 2, [hl] + ld a, $2c + jp $4568 +; 3851e + +Function3851e: ; 3851e + ld [hMultiplier], a + ld hl, EnemyMonMaxHPHi + ld a, [hli] + ld [hProduct], a + ld a, [hl] + ld [hMultiplicand], a + ld b, $2 + call Divide + ld a, [$ffb6] + ld c, a + ld a, [$ffb5] + ld b, a + ld hl, EnemyMonHPLo + ld a, [hld] + ld e, a + ld a, [hl] + ld d, a + ld a, d + sub b + ret nz + ld a, e + sub c + ret +; 38541 + +Function38541: ; 38541 + ld b, $0 + ld a, $31 + jr Function38557 +; 38547 + +Function38547: ; 38547 + ld b, $1 + ld a, $33 + jr Function38557 +; 3854d + +Function3854d: ; 3854d + ld b, $2 + ld a, $34 + jr Function38557 +; 38553 + +Function38553: ; 38553 + ld b, $3 + ld a, $35 + +Function38557 + ld [$d1f1], a + push bc + call $4571 + pop bc + callba Function0x361ef + jp $4387 +; 38568 + + +Function38568: ; 38568 + ld [$d1f1], a + call $4571 + jp $4387 +; 38571 + +Function38571: ; 38571 + ld a, [$d1f1] + ld [$d265], a + call GetItemName + ld hl, StringBuffer1 + ld de, $d050 + ld bc, $000d + call CopyBytes + ld hl, UnknownText_0x3858c + jp PrintText +; 3858c + +UnknownText_0x3858c: ; 3858c + text_jump UnknownText_0x1bcfaf, BANK(UnknownText_0x1bcfaf) + db "@" +; 38591 AIScoring: ; 38591 INCLUDE "battle/ai/scoring.asm" -INCBIN "baserom.gbc", $3952d, $39939 - $3952d +Function3952d: ; 3952d + ld hl, RivalName + ld a, c + cp $9 + jr z, .asm_39544 + ld [CurSpecies], a + ld a, $7 + ld [$cf61], a + call GetName + ld de, StringBuffer1 + ret + +.asm_39544 + ld de, StringBuffer1 + push de + ld bc, $000b + call CopyBytes + pop de + ret +; 39550 + +Function39550: ; 39550 + ld hl, $d26b + ld a, [InLinkBattle] + and a + jr nz, .asm_3956f + ld hl, RivalName + ld a, c + cp $9 + jr z, .asm_3956f + ld [CurSpecies], a + ld a, $7 + ld [$cf61], a + call GetName + ld hl, StringBuffer1 + +.asm_3956f + ld bc, $000d + ld de, $c656 + push de + call CopyBytes + pop de + ret +; 3957b + +Function3957b: ; 3957b + ld a, [TrainerClass] + ld c, a + call $5550 + ld a, [TrainerClass] + dec a + ld hl, $559c + ld bc, $0007 + call AddNTimes + ld de, $c650 + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + ld a, [hl] + ld [$c652], a + ret +; 3959c + + +INCBIN "baserom.gbc", $3959c, $39939 - $3959c Function39939: ; 39939 @@ -31434,7 +32300,14 @@ Function39939: ; 39939 ret ; 39990 -INCBIN "baserom.gbc", $39990, $39999 - $39990 +Function39990: ; 39990 + ld de, StringBuffer1 + push de + ld bc, $000b + pop de + ret +; 39999 + TrainerGroups: ; 0x39999 @@ -31445,7 +32318,122 @@ INCLUDE "trainers/trainers.asm" SECTION "bankF",DATA,BANK[$F] -INCBIN "baserom.gbc", $3c000, $3c0e5 - $3c000 +Function3c000: ; 3c000 + xor a + ld [$c664], a + ld [$c6fc], a + ld [$d0ec], a + ld [BattleEnded], a + inc a + ld [$d264], a + ld hl, OTPartyMon1CurHP + ld bc, $002f + ld d, $3 +.asm_3c019 + inc d + ld a, [hli] + or [hl] + jr nz, .asm_3c021 + add hl, bc + jr .asm_3c019 + +.asm_3c021 + ld a, d + ld [$d430], a + ld a, [InLinkBattle] + and a + jr z, .asm_3c031 + ld a, [$ffcb] + cp $2 +.data_3c02f + db $28 + db $1b + +.asm_3c031 + ld a, [IsInBattle] + dec a + jr z, .asm_3c047 + xor a + ld [$c718], a + call Function3d834 + call Function3d867 + call Function3dc18 + call Function3d4e1 + +.asm_3c047 + ld c, $28 + call DelayFrames + call Function309d + call $5873 + ld a, d + and a + jp z, LostBattle + call Function30b4 + ld a, [BattleType] + cp $2 + jp z, $40e2 + cp $3 + jp z, $40e2 + xor a + ld [CurPartyMon], a +.asm_3c06b + call Function3d887 + jr nz, .asm_3c076 + ld hl, CurPartyMon + inc [hl] + jr .asm_3c06b + +.asm_3c076 + ld a, [CurBattleMon] + ld [$c71a], a + ld a, [CurPartyMon] + ld [CurBattleMon], a + inc a + ld hl, PartyCount + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + ld [CurPartySpecies], a + ld [TempBattleMonSpecies], a + ld hl, $c505 + ld a, $9 + call Function3d490 + call Function309d + call Function3d57a + call Function3da0d + call Function3dab1 + call Function3f26d + call Function3dbde + call Function3dc18 + call Function3db5f + call Function3edd1 + call Function309d + call SetPlayerTurn + call Function3dc23 + ld a, [InLinkBattle] + and a + jr z, .asm_3c0df + ld a, [$ffcb] + cp $2 + jr nz, .asm_3c0df + xor a + ld [$c718], a + call Function3d834 + call Function3d867 + call Function3dc18 + call Function3d4e1 + call SetEnemyTurn + call Function3dc23 + +.asm_3c0df + jp $412f +; 3c0e2 + +Function3c0e2: ; 3c0e2 + jp $6139 +; 3c0e5 + Function3c0e5: ; 3c0e5 @@ -31486,7 +32474,668 @@ Function3c0e5: ; 3c0e5 ret ; 3c12f -INCBIN "baserom.gbc", $3c12f, $3c5ec - $3c12f +Function3c12f: ; 3c12f + call $41bf + call $43f5 + jp c, $41be + xor a + ld [$c710], a + ld [$c711], a + ld [$d264], a + ld [$c73f], a + ld [$c740], a + ld [CurDamage], a + ld [$d257], a + call $427c + call UpdateBattleMonInParty + callba AIChooseMove + call Function3d2f1 + jr nz, .asm_3c174 + callba Function100da5 + callba Function100641 + callba Function100dd8 + jp c, $41be + +.asm_3c174 + call $4410 + jr c, .asm_3c18a +.asm_3c179 + call $6139 + jr c, .asm_3c1be + ld a, [BattleEnded] + and a + jr nz, .asm_3c1be + ld a, [$d232] + and a + jr nz, .asm_3c1be + +.asm_3c18a + call $4434 + jr nz, .asm_3c179 + call $4300 + jr c, .asm_3c1be + call $4314 + jr c, .asm_3c19e + call $45fe + jr .asm_3c1a1 + +.asm_3c19e + call $4664 + +.asm_3c1a1 + call Function3d2e0 + jr c, .asm_3c1be + ld a, [$d232] + and a + jr nz, .asm_3c1be + ld a, [BattleEnded] + and a + jr nz, .asm_3c1be + call $41d6 + ld a, [BattleEnded] + and a + jr nz, .asm_3c1be + jp $412f + +.asm_3c1be + ret +; 3c1bf + +Function3c1bf: ; 3c1bf + ret +; 3c1c0 + +INCBIN "baserom.gbc", $3c1c0, $3c1d6 - $3c1c0 + + +Function3c1d6: ; 3c1d6 + ld a, [$ffcb] + cp $1 + jr z, .asm_3c1fe + call $423c + ret c + call $4a26 + call $423c + ret c + call $4b9e + call $423c + ret c + call $4874 + call $423c + ret c + call $4801 + call $423c + ret c + jr .asm_3c21e + +.asm_3c1fe + call $425c + ret c + call $4a26 + call $425c + ret c + call $4b9e + call $425c + ret c + call $4874 + call $425c + ret c + call $4801 + call $425c + ret c + +.asm_3c21e + call $48eb + call $493c + call $4a8f + call $4afb + call $4b36 + call $5e97 + call $5cf9 + call UpdateBattleMonInParty + call Function309d + jp $44df +; 3c23c + +Function3c23c: ; 3c23c + call $4710 + jr nz, .asm_3c24a + call $514e + ld a, [BattleEnded] + and a + jr nz, .asm_3c25a + +.asm_3c24a + call $470b + jr nz, .asm_3c258 + call $4d55 + ld a, [BattleEnded] + and a + jr nz, .asm_3c25a + +.asm_3c258 + and a + ret + +.asm_3c25a + scf + ret +; 3c25c + +Function3c25c: ; 3c25c + call $470b + jr nz, .asm_3c26a + call $4d55 + ld a, [BattleEnded] + and a + jr nz, .asm_3c27a + +.asm_3c26a + call $4710 + jr nz, .asm_3c278 + call $514e + ld a, [BattleEnded] + and a + jr nz, .asm_3c27a + +.asm_3c278 + and a + ret + +.asm_3c27a + scf + ret +; 3c27c + +Function3c27c: ; 3c27c + ld a, [$ffcb] + cp $1 + jr z, .asm_3c287 + call $428a + jr .asm_3c296 + +.asm_3c287 + call $4296 + call SetPlayerTurn + ld de, PartyMon1Item + ld a, [CurBattleMon] + ld b, a + jr .asm_3c2a0 + +.asm_3c296 + call SetEnemyTurn + ld de, OTPartyMon1Item + ld a, [CurOTMon] + ld b, a + +.asm_3c2a0 + push de + push bc + callab GetUserItem + ld a, [hl] + ld [$d265], a + sub $98 + pop bc + pop de + ret nz + ld [hl], a + ld h, d + ld l, e + ld a, b + call GetPartyLocation + xor a + ld [hl], a + ld a, $2 + call GetBattleVarPair + push af + set 7, [hl] + ld a, $c + call GetBattleVarPair + push hl + push af + xor a + ld [hl], a + ld [AttackMissed], a + ld [EffectFailed], a + callba BattleCommand77 + pop af + pop hl + ld [hl], a + call GetItemName + ld hl, $4bde + call FarBattleTextBox + callab BattleCommand8c + pop af + bit 7, a + ret nz + xor a + ld [$cfca], a + ld de, $0103 + call $6e0f + call $48e4 + ld hl, $4d97 + jp FarBattleTextBox +; 3c300 + +Function3c300: ; 3c300 + ld a, [InLinkBattle] + and a + jr z, .asm_3c30d + ld a, [$d430] + cp $f + jr z, .asm_3c30f + +.asm_3c30d + and a + ret + +.asm_3c30f + call Function3c0e5 + scf + ret +; 3c314 + +Function3c314: ; 3c314 + ld a, [InLinkBattle] + and a + jr z, .asm_3c35b + ld a, [$d430] + cp $e + jr z, .asm_3c35b + cp $d + jr z, .asm_3c35b + sub $4 + jr c, .asm_3c35b + ld a, [$d0ec] + cp $2 + jr nz, .asm_3c34c + ld a, [$ffcb] + cp $2 + jr z, .asm_3c341 + call FarBattleRNG + cp $80 + jp c, $43f1 + jp $43f3 + +.asm_3c341 + call FarBattleRNG + cp $80 + jp c, $43f3 + jp $43f1 + +.asm_3c34c + callab Function3846c + call SetEnemyTurn + call Function3dc23 + jp $43f3 + +.asm_3c35b + ld a, [$d0ec] + and a + jp nz, $43f1 + call $45b4 + jr z, .asm_3c36d + jp c, $43f1 + jp $43f3 + +.asm_3c36d + call SetPlayerTurn + callab GetUserItem + push bc + callab GetOpponentItem + pop de + ld a, d + cp $4a + jr nz, .asm_3c391 + ld a, b + cp $4a + jr z, .asm_3c39f + call FarBattleRNG + cp e + jr nc, .asm_3c3c5 + jp $43f1 + +.asm_3c391 + ld a, b + cp $4a + jr nz, .asm_3c3c5 + call FarBattleRNG + cp c + jr nc, .asm_3c3c5 + jp $43f3 + +.asm_3c39f + ld a, [$ffcb] + cp $2 + jr z, .asm_3c3b5 + call FarBattleRNG + cp c + jp c, $43f3 + call FarBattleRNG + cp e + jp c, $43f1 + jr .asm_3c3c5 + +.asm_3c3b5 + call FarBattleRNG + cp e + jp c, $43f1 + call FarBattleRNG + cp c + jp c, $43f3 + jr .asm_3c3c5 + +.asm_3c3c5 + ld de, BattleMonSpd + ld hl, EnemyMonSpd + ld c, $2 + call StringCmp + jr z, .asm_3c3d8 + jp nc, $43f1 + jp $43f3 + +.asm_3c3d8 + ld a, [$ffcb] + cp $2 + jr z, .asm_3c3e9 + call FarBattleRNG + cp $80 + jp c, $43f1 + jp $43f3 + +.asm_3c3e9 + call FarBattleRNG + cp $80 + jp c, $43f3 + scf + ret +; 3c3f3 + +Function3c3f3: ; 3c3f3 + and a + ret +; 3c3f5 + +Function3c3f5: ; 3c3f5 + ld a, [BattleType] + cp $6 + jr nz, .asm_3c40e + ld a, [$dc79] + and a + jr nz, .asm_3c40e + ld a, [$d0ee] + and $c0 + add $2 + ld [$d0ee], a + scf + ret + +.asm_3c40e + and a + ret +; 3c410 + +Function3c410: ; 3c410 + ld a, [PlayerSubStatus4] + and $20 + jp nz, $4432 + ld hl, EnemySubStatus3 + res 3, [hl] + ld hl, PlayerSubStatus3 + res 3, [hl] + ld a, [hl] + and $12 + jp nz, $4432 + ld hl, PlayerSubStatus1 + bit 6, [hl] + jp nz, $4432 + and a + ret +; 3c432 + +Function3c432: ; 3c432 + scf + ret +; 3c434 + +Function3c434: ; 3c434 + call $4410 + jp c, $44ba + ld hl, PlayerSubStatus5 + bit 4, [hl] + jr z, .asm_3c449 + ld a, [LastPlayerMove] + ld [CurPlayerMove], a + jr .asm_3c47c + +.asm_3c449 + ld a, [$d0ec] + cp $2 + jr z, .asm_3c4ce + and a + jr nz, .asm_3c4b5 + ld a, [PlayerSubStatus3] + and $1 + jr nz, .asm_3c4ba + xor a + ld [$d235], a + inc a + ld [FXAnimIDLo], a + call $64bc + push af + call Function30b4 + call UpdateBattleHuds + ld a, [CurPlayerMove] + cp $a5 + jr z, .asm_3c476 + call PlayClickSFX + +.asm_3c476 + ld a, $1 + ld [hBGMapMode], a + pop af + ret nz + +.asm_3c47c + call SetPlayerTurn + callab UpdateMoveData + xor a + ld [$c732], a + ld a, [PlayerMoveEffect] + cp $77 + jr z, .asm_3c494 + xor a + ld [PlayerFuryCutterCount], a + +.asm_3c494 + ld a, [PlayerMoveEffect] + cp $51 + jr z, .asm_3c4a4 + ld hl, PlayerSubStatus4 + res 6, [hl] + xor a + ld [$c72b], a + +.asm_3c4a4 + ld a, [PlayerMoveEffect] + cp $6f + jr z, .asm_3c4c9 + cp $74 + jr z, .asm_3c4c9 + xor a + ld [$c679], a + jr .asm_3c4c9 + +.asm_3c4b5 + ld hl, PlayerSubStatus3 + res 0, [hl] + +.asm_3c4ba + xor a + ld [PlayerFuryCutterCount], a + ld [$c679], a + ld [$c72b], a + ld hl, PlayerSubStatus4 + res 6, [hl] + +.asm_3c4c9 + call Function3e7c1 + xor a + ret + +.asm_3c4ce + xor a + ld [PlayerFuryCutterCount], a + ld [$c679], a + ld [$c72b], a + ld hl, PlayerSubStatus4 + res 6, [hl] + xor a + ret +; 3c4df + +Function3c4df: ; 3c4df + ld a, [$ffcb] + cp $1 + jr z, .asm_3c4ea + call $44ed + jr .asm_3c518 + +.asm_3c4ea + call $4518 + ld hl, PlayerSubStatus5 + bit 4, [hl] + ret z + ld a, [PlayerEncoreCount] + dec a + ld [PlayerEncoreCount], a + jr z, .asm_3c50a + ld hl, BattleMonPPMove1 + ld a, [CurMoveNum] + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + and $3f + ret nz + +.asm_3c50a + ld hl, PlayerSubStatus5 + res 4, [hl] + call SetEnemyTurn + ld hl, $4c8a + jp FarBattleTextBox + +.asm_3c518 + ld hl, EnemySubStatus5 + bit 4, [hl] + ret z + ld a, [EnemyEncoreCount] + dec a + ld [EnemyEncoreCount], a + jr z, .asm_3c535 + ld hl, EnemyMonPPMove1 + ld a, [CurEnemyMoveNum] + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + and $3f + ret nz + +.asm_3c535 + ld hl, EnemySubStatus5 + res 4, [hl] + call SetPlayerTurn + ld hl, $4c8a + jp FarBattleTextBox +; 3c543 + +Function3c543: ; 3c543 + ld a, [IsInBattle] + dec a + jr nz, .asm_3c596 + ld a, [PlayerSubStatus5] + bit 7, a + jr nz, .asm_3c596 + ld a, [$c731] + and a + jr nz, .asm_3c596 + ld a, [EnemyMonStatus] + and $27 + jr nz, .asm_3c596 + ld a, [TempEnemyMonSpecies] + ld de, $0001 + ld hl, $45b1 + call IsInArray + jr c, .asm_3c598 + call FarBattleRNG + ld b, a + cp $80 + jr nc, .asm_3c596 + push bc + ld a, [TempEnemyMonSpecies] + ld de, $0001 + ld hl, $45a8 + call IsInArray + pop bc + jr c, .asm_3c598 + ld a, b + cp $1a + jr nc, .asm_3c596 + ld a, [TempEnemyMonSpecies] + ld de, $0001 + ld hl, $459a + call IsInArray + jr c, .asm_3c598 + +.asm_3c596 + and a + ret + +.asm_3c598 + scf + ret +; 3c59a + +INCBIN "baserom.gbc", $3c59a, $3c5b4 - $3c59a + + +Function3c5b4: ; 3c5b4 + ld a, [CurPlayerMove] + call $45c5 + ld b, a + push bc + ld a, [CurEnemyMove] + call $45c5 + pop bc + cp b + ret +; 3c5c5 + +Function3c5c5: ; 3c5c5 + ld b, a + cp $e9 + ld a, $0 + ret z + call Function3c5ec + ld hl, $45df +.asm_3c5d1 + ld a, [hli] + cp b + jr z, .asm_3c5dd + inc hl + cp $ff + jr nz, .asm_3c5d1 + ld a, $1 + ret + +.asm_3c5dd + ld a, [hl] + ret +; 3c5df + +INCBIN "baserom.gbc", $3c5df, $3c5ec - $3c5df Function3c5ec: ; 3c5ec @@ -31501,7 +33150,885 @@ Function3c5ec: ; 3c5ec ret ; 3c5fe -INCBIN "baserom.gbc", $3c5fe, $3cc39 - $3c5fe +Function3c5fe: ; 3c5fe + call Function309d + call $4543 + jp c, Function3c0e5 + call SetEnemyTurn + ld a, $1 + ld [$c70f], a + callab Function38000 + jr c, .asm_3c62f + call $46de + call Function3d2e0 + ret c + ld a, [$d232] + and a + ret nz + call $4710 + jp z, $514e + call $470b + jp z, $4d55 + +.asm_3c62f + call SetEnemyTurn + call $4716 + jp z, $4d55 + call RefreshBattleHuds + call $46cf + call Function3d2e0 + ret c + ld a, [$d232] + and a + ret nz + call $470b + jp z, $4d55 + call $4710 + jp z, $514e + call SetPlayerTurn + call $4716 + jp z, $514e + call RefreshBattleHuds + xor a + ld [$d0ec], a + ret +; 3c664 + +Function3c664: ; 3c664 + xor a + ld [$c70f], a + call SetEnemyTurn + callab Function38000 + push af + call $46cf + pop bc + ld a, [$d232] + and a + ret nz + call Function3d2e0 + ret c + call $470b + jp z, $4d55 + call $4710 + jp z, $514e + push bc + call SetPlayerTurn + call $4716 + pop bc + jp z, $514e + push bc + call RefreshBattleHuds + pop af + jr c, .asm_3c6be + call Function309d + call $4543 + jp c, Function3c0e5 + call $46de + call Function3d2e0 + ret c + ld a, [$d232] + and a + ret nz + call $4710 + jp z, $514e + call $470b + jp z, $4d55 + +.asm_3c6be + call SetEnemyTurn + call $4716 + jp z, $4d55 + call RefreshBattleHuds + xor a + ld [$d0ec], a + ret +; 3c6cf + +Function3c6cf: ; 3c6cf + call SetPlayerTurn + call $46fe + callab DoPlayerTurn + jp $46ed +; 3c6de + +Function3c6de: ; 3c6de + call SetEnemyTurn + call $46fe + callab DoEnemyTurn + jp $46ed +; 3c6ed + +Function3c6ed: ; 3c6ed + ld a, $5 + call GetBattleVarPair + res 2, [hl] + res 5, [hl] + ld a, $9 + call GetBattleVarPair + res 6, [hl] + ret +; 3c6fe + +Function3c6fe: ; 3c6fe + ld a, $4 + call GetBattleVarPair + res 6, [hl] + ret +; 3c706 + +Function3c706: ; 3c706 + ld a, [hBattleTurn] + and a + jr z, .asm_3c710 + ld hl, EnemyMonHPHi + jr .asm_3c713 + +.asm_3c710 + ld hl, BattleMonHP + +.asm_3c713 + ld a, [hli] + or [hl] + ret +; 3c716 + +Function3c716: ; 3c716 + call $4706 + ret z + ld a, $a + call CleanGetBattleVarPair + and $18 + jr z, .asm_3c768 + ld hl, $47e2 + ld de, $0106 + and $10 + jr z, .asm_3c733 + ld hl, $47f8 + ld de, $0105 + +.asm_3c733 + push de + call FarBattleTextBox + pop de + xor a + ld [$cfca], a + call $6e0f + call GetEighthMaxHP + ld de, $c674 + ld a, [hBattleTurn] + and a + jr z, .asm_3c74d + ld de, $c67c + +.asm_3c74d + ld a, $4 + call CleanGetBattleVarPair + bit 0, a + jr z, .asm_3c765 + call $4c76 + ld a, [de] + inc a + ld [de], a + ld hl, $0000 +.asm_3c75f + add hl, bc + dec a + jr nz, .asm_3c75f + ld b, h + ld c, l + +.asm_3c765 + call $4c3f + +.asm_3c768 + call $4706 + jp z, $47f7 + ld a, $3 + call GetBattleVarPair + bit 7, [hl] + jr z, .asm_3c7a1 + call $48e4 + xor a + ld [$cfca], a + ld de, $0107 + ld a, $7 + call CleanGetBattleVarPair + and $60 + call z, $6e0f + call $48e4 + call GetEighthMaxHP + call $4c3f + ld a, $1 + ld [hBGMapMode], a + call $4cef + ld hl, $480e + call FarBattleTextBox + +.asm_3c7a1 + call $4706 + jr z, .asm_3c7f7 + ld a, $0 + call GetBattleVarPair + bit 0, [hl] + jr z, .asm_3c7c5 + xor a + ld [$cfca], a + ld de, $010c + call $6e0f + call GetQuarterMaxHP + call $4c3f + ld hl, $4822 + call FarBattleTextBox + +.asm_3c7c5 + call $4706 + jr z, .asm_3c7f7 + ld a, $0 + call GetBattleVarPair + bit 1, [hl] + jr z, .asm_3c7e9 + xor a + ld [$cfca], a + ld de, $010c + call $6e0f + call GetQuarterMaxHP + call $4c3f + ld hl, $4836 + call FarBattleTextBox + +.asm_3c7e9 + ld hl, BattleMonHP + ld a, [hBattleTurn] + and a + jr z, .asm_3c7f4 + ld hl, EnemyMonHPHi + +.asm_3c7f4 + ld a, [hli] + or [hl] + ret nz + +.asm_3c7f7 + call RefreshBattleHuds + ld c, $14 + call DelayFrames + xor a + ret +; 3c801 + +Function3c801: ; 3c801 + ld a, [$ffcb] + cp $1 + jr z, .asm_3c813 + call SetPlayerTurn + call $481c + call SetEnemyTurn + jp $481c + +.asm_3c813 + call SetEnemyTurn + call $481c + call SetPlayerTurn + ld hl, PlayerPerishCount + ld a, [hBattleTurn] + and a + jr z, .asm_3c827 + ld hl, EnemyPerishCount + +.asm_3c827 + ld a, $0 + call CleanGetBattleVarPair + bit 4, a + ret z + dec [hl] + ld a, [hl] + ld [$d265], a + push af + ld hl, $4864 + call FarBattleTextBox + pop af + ret nz + ld a, $0 + call GetBattleVarPair + res 4, [hl] + ld a, [hBattleTurn] + and a + jr nz, .asm_3c85c + ld hl, BattleMonHP + xor a + ld [hli], a + ld [hl], a + ld hl, PartyMon1CurHP + ld a, [CurBattleMon] + call GetPartyLocation + xor a + ld [hli], a + ld [hl], a + ret + +.asm_3c85c + ld hl, EnemyMonHPHi + xor a + ld [hli], a + ld [hl], a + ld a, [IsInBattle] + dec a + ret z + ld hl, OTPartyMon1CurHP + ld a, [CurOTMon] + call GetPartyLocation + xor a + ld [hli], a + ld [hl], a + ret +; 3c874 + +Function3c874: ; 3c874 + ld a, [$ffcb] + cp $1 + jr z, .asm_3c886 + call SetPlayerTurn + call $488f + call SetEnemyTurn + jp $488f + +.asm_3c886 + call SetEnemyTurn + call $488f + call SetPlayerTurn + ld hl, $c730 + ld de, $c72e + ld a, [hBattleTurn] + and a + jr z, .asm_3c8a0 + ld hl, $c731 + ld de, $c72f + +.asm_3c8a0 + ld a, [hl] + and a + ret z + ld a, $3 + call CleanGetBattleVarPair + bit 4, a + ret nz + ld a, [de] + ld [$d265], a + ld [FXAnimIDLo], a + call GetMoveName + dec [hl] + jr z, .asm_3c8de + ld a, $2 + call CleanGetBattleVarPair + and $60 + jr nz, .asm_3c8d3 + call $48e4 + xor a + ld [$cfca], a + ld [FXAnimIDHi], a + ld a, $37 + call Predef + call $48e4 + +.asm_3c8d3 + call $4c76 + call $4c3f + ld hl, $4de2 + jr .asm_3c8e1 + +.asm_3c8de + ld hl, $4df5 + +.asm_3c8e1 + jp FarBattleTextBox +; 3c8e4 + +Function3c8e4: ; 3c8e4 + ld a, [hBattleTurn] + xor $1 + ld [hBattleTurn], a + ret +; 3c8eb + +Function3c8eb: ; 3c8eb + ld a, [$ffcb] + cp $1 + jr z, .asm_3c8fd + call SetPlayerTurn + call $4906 + call SetEnemyTurn + jp $4906 + +.asm_3c8fd + call SetEnemyTurn + call $4906 + call SetPlayerTurn + callab GetUserItem + ld a, [hl] + ld [$d265], a + call GetItemName + ld a, b + cp $3 + ret nz + ld hl, BattleMonHP + ld a, [hBattleTurn] + and a + jr z, .asm_3c922 + ld hl, EnemyMonHPHi + +.asm_3c922 + ld a, [hli] + ld b, a + ld a, [hli] + ld c, a + ld a, [hli] + cp b + jr nz, .asm_3c92d + ld a, [hl] + cp c + ret z + +.asm_3c92d + call $4c76 + call $48e4 + call $4cef + ld hl, $4880 + jp FarBattleTextBox +; 3c93c + +Function3c93c: ; 3c93c + ld a, [$ffcb] + cp $1 + jr z, .asm_3c94e + call SetPlayerTurn + call $4957 + call SetEnemyTurn + jp $4957 + +.asm_3c94e + call SetEnemyTurn + call $4957 + call SetPlayerTurn + callab GetUserItem + ld a, b + cp $6 + jr nz, .asm_3c9ae + ld hl, PartyMon1PP + ld a, [CurBattleMon] + call GetPartyLocation + ld d, h + ld e, l + ld hl, PartyMon1Move1 + ld a, [CurBattleMon] + call GetPartyLocation + ld a, [hBattleTurn] + and a + jr z, .asm_3c99b + ld de, $c739 + ld hl, $c735 + ld a, [IsInBattle] + dec a + jr z, .asm_3c99b + ld hl, OTPartyMon1PPMove1 + ld a, [CurOTMon] + call GetPartyLocation + ld d, h + ld e, l + ld hl, OTPartyMon1Move1 + ld a, [CurOTMon] + call GetPartyLocation + +.asm_3c99b + ld c, $0 +.asm_3c99d + ld a, [hl] + and a + jr z, .asm_3c9ae + ld a, [de] + and $3f + jr z, .asm_3c9af + inc hl + inc de + inc c + ld a, c + cp $4 + jr nz, .asm_3c99d + +.asm_3c9ae + ret + +.asm_3c9af + ld a, [hl] + cp $a6 + ld b, $1 + jr z, .asm_3c9b8 + ld b, $5 + +.asm_3c9b8 + ld a, [de] + add b + ld [de], a + push bc + push bc + ld a, [hl] + ld [$d265], a + ld de, BattleMonItem + ld hl, BattleMonPPMove1 + ld a, [hBattleTurn] + and a + jr z, .asm_3c9d2 + ld de, EnemyMonItem + ld hl, EnemyMonPPMove1 + +.asm_3c9d2 + inc de + pop bc + ld b, $0 + add hl, bc + push hl + ld h, d + ld l, e + add hl, bc + pop de + pop bc + ld a, [$d265] + cp [hl] + jr nz, .asm_3c9f5 + ld a, [hBattleTurn] + and a + ld a, [PlayerSubStatus5] + jr z, .asm_3c9ee + ld a, [EnemySubStatus5] + +.asm_3c9ee + bit 3, a + jr nz, .asm_3c9f5 + ld a, [de] + add b + ld [de], a + +.asm_3c9f5 + callab GetUserItem + ld a, [hl] + ld [$d265], a + xor a + ld [hl], a + call $5f12 + ld a, [hBattleTurn] + and a + jr z, .asm_3ca12 + ld a, [IsInBattle] + dec a + jr z, .asm_3ca14 + call $5f1f + +.asm_3ca12 + xor a + ld [hl], a + +.asm_3ca14 + call GetItemName + call $48e4 + call $5dc8 + call $48e4 + ld hl, $4899 + jp FarBattleTextBox +; 3ca26 + +Function3ca26: ; 3ca26 + ld a, [$ffcb] + cp $1 + jr z, .asm_3ca38 + call SetPlayerTurn + call $4a41 + call SetEnemyTurn + jp $4a41 + +.asm_3ca38 + call SetEnemyTurn + call $4a41 + call SetPlayerTurn + ld hl, $c71d + ld a, [hBattleTurn] + and a + jr z, .asm_3ca4c + ld hl, $c71e + +.asm_3ca4c + ld a, [hl] + and a + ret z + dec a + ld [hl], a + cp $1 + ret nz + ld hl, $48b6 + call FarBattleTextBox + ld a, $10 + call GetBattleVarPair + push af + ld a, $f8 + ld [hl], a + callab UpdateMoveData + xor a + ld [AttackMissed], a + ld [AlreadyDisobeyed], a + ld a, $a + ld [TypeModifier], a + callab DoMove + xor a + ld [CurDamage], a + ld [$d257], a + ld a, $10 + call GetBattleVarPair + pop af + ld [hl], a + call UpdateBattleMonInParty + jp UpdateEnemyMonInParty +; 3ca8f + +Function3ca8f: ; 3ca8f + ld a, [$ffcb] + cp $1 + jr z, .asm_3ca9a + call $4a9d + jr .asm_3cac9 + +.asm_3ca9a + call $4ac9 + ld a, [BattleMonStatus] + bit 5, a + ret z + ld a, [$c73f] + and a + ret nz + call FarBattleRNG + cp $19 + ret nc + xor a + ld [BattleMonStatus], a + ld a, [CurBattleMon] + ld hl, PartyMon1Status + call GetPartyLocation + ld [hl], $0 + call UpdateBattleHuds + call SetEnemyTurn + ld hl, $524b + jp FarBattleTextBox + +.asm_3cac9 + ld a, [EnemyMonStatus] + bit 5, a + ret z + ld a, [$c740] + and a + ret nz + call FarBattleRNG + cp $19 + ret nc + xor a + ld [EnemyMonStatus], a + ld a, [IsInBattle] + dec a + jr z, .asm_3caef + ld a, [CurOTMon] + ld hl, OTPartyMon1Status + call GetPartyLocation + ld [hl], $0 + +.asm_3caef + call UpdateBattleHuds + call SetPlayerTurn + ld hl, $524b + jp FarBattleTextBox +; 3cafb + +Function3cafb: ; 3cafb + ld a, [$ffcb] + cp $1 + jr z, .asm_3cb06 + call $4b09 + jr .asm_3cb1c + +.asm_3cb06 + call $4b1c + ld a, [PlayerScreens] + bit 2, a + ret z + ld hl, $c701 + dec [hl] + ret nz + res 2, a + ld [PlayerScreens], a + xor a + jr .asm_3cb2e + +.asm_3cb1c + ld a, [EnemyScreens] + bit 2, a + ret z + ld hl, $c705 + dec [hl] + ret nz + res 2, a + ld [EnemyScreens], a + ld a, $1 + +.asm_3cb2e + ld [hBattleTurn], a + ld hl, $48d2 + jp FarBattleTextBox +; 3cb36 + +Function3cb36: ; 3cb36 + ld a, [$ffcb] + cp $1 + jr z, .asm_3cb41 + call $4b44 + jr .asm_3cb55 + +.asm_3cb41 + call $4b55 + call SetPlayerTurn + ld de, $4b75 + call $4b6f + ld hl, PlayerScreens + ld de, PlayerLightScreenCount + jr .asm_3cb64 + +.asm_3cb55 + call SetEnemyTurn + ld de, $4b7a + call $4b6f + ld hl, EnemyScreens + ld de, EnemyLightScreenCount + +.asm_3cb64 + bit 3, [hl] + call nz, $4b80 + bit 4, [hl] + call nz, $4b91 + ret +; 3cb6f + +Function3cb6f: ; 3cb6f + ld hl, StringBuffer1 + jp CopyName2 +; 3cb75 + +INCBIN "baserom.gbc", $3cb75, $3cb80 - $3cb75 + + +Function3cb80: ; 3cb80 + ld a, [de] + dec a + ld [de], a + ret nz + res 3, [hl] + push hl + push de + ld hl, $48e7 + call FarBattleTextBox + pop de + pop hl + ret +; 3cb91 + +Function3cb91: ; 3cb91 + inc de + ld a, [de] + dec a + ld [de], a + ret nz + res 4, [hl] + ld hl, $4905 + jp FarBattleTextBox +; 3cb9e + +Function3cb9e: ; 3cb9e + ld a, [Weather] + cp $0 + ret z + ld hl, WeatherCount + dec [hl] + jr z, .asm_3cc13 + ld hl, $4c2d + call $4c1e + ld a, [Weather] + cp $3 + ret nz + ld a, [$ffcb] + cp $1 + jr z, .asm_3cbc7 + call SetPlayerTurn + call $4bd0 + call SetEnemyTurn + jr .asm_3cbd0 + +.asm_3cbc7 + call SetEnemyTurn + call $4bd0 + call SetPlayerTurn + +.asm_3cbd0 + ld a, $2 + call CleanGetBattleVarPair + bit 5, a + ret nz + ld hl, BattleMonType1 + ld a, [hBattleTurn] + and a + jr z, .asm_3cbe3 + ld hl, EnemyMonType1 + +.asm_3cbe3 + ld a, [hli] + cp $5 + ret z + cp $4 + ret z + cp $9 + ret z + ld a, [hl] + cp $5 + ret z + cp $4 + ret z + cp $9 + ret z + call $48e4 + xor a + ld [$cfca], a + ld de, $010b + call Function3ee17 + call $48e4 + call GetEighthMaxHP + call $4c3f + ld hl, $484d + jp FarBattleTextBox + +.asm_3cc13 + ld hl, $4c33 + call $4c1e + xor a + ld [Weather], a + ret +; 3cc1e + +Function3cc1e: ; 3cc1e + ld a, [Weather] + dec a + ld c, a + ld b, $0 + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + jp FarBattleTextBox +; 3cc2d + +INCBIN "baserom.gbc", $3cc2d, $3cc39 - $3cc2d Function3cc39: ; 3cc39 @@ -31509,7 +34036,11 @@ Function3cc39: ; 3cc39 jp $4d3c ; 3cc3f -INCBIN "baserom.gbc", $3cc3f, $3cc45 - $3cc3f +Function3cc3f: ; 3cc3f + call Function3cc45 + jp $4d36 +; 3cc45 + Function3cc45: ; 3cc45 @@ -31544,7 +34075,19 @@ Function3cc45: ; 3cc45 ret ; 3cc76 -INCBIN "baserom.gbc", $3cc76, $3cc83 - $3cc76 +Function3cc76: ; 3cc76 + call GetQuarterMaxHP + srl c + srl c + ld a, c + and a + jr nz, .asm_3cc82 + inc c + +.asm_3cc82 + ret +; 3cc83 + GetEighthMaxHP: ; 3cc83 ; output: bc @@ -31627,7 +34170,59 @@ GetMaxHP: ; 3ccac ; 3ccc2 -INCBIN "baserom.gbc", $3ccc2, $3cd3c - $3ccc2 +INCBIN "baserom.gbc", $3ccc2, $3ccef - $3ccc2 + + +Function3ccef: ; 3ccef + ld hl, EnemyMonMaxHPHi + ld a, [hBattleTurn] + and a + jr z, .asm_3ccfa + ld hl, BattleMonMaxHP + +.asm_3ccfa + ld a, [hli] + ld [Buffer2], a + ld a, [hld] + ld [MagikarpLength], a + dec hl + ld a, [hl] + ld [$d1ec], a + add c + ld [hld], a + ld [$d1ee], a + ld a, [hl] + ld [$d1ed], a + adc b + ld [hli], a + ld [$d1ef], a + ld a, [MagikarpLength] + ld c, a + ld a, [hld] + sub c + ld a, [Buffer2] + ld b, a + ld a, [hl] + sbc b + jr c, .asm_3cd2d + ld a, b + ld [hli], a + ld [$d1ef], a + ld a, c + ld [hl], a + ld [$d1ee], a + +.asm_3cd2d + call $48e4 + call $4d36 + jp $48e4 +; 3cd36 + +Function3cd36: ; 3cd36 + call Function3cd3c + jp UpdateBattleHuds +; 3cd3c + Function3cd3c: ; 3cd3c @@ -31648,7 +34243,239 @@ Function3cd3c: ; 3cd3c ret ; 3cd55 -INCBIN "baserom.gbc", $3cd55, $3ceec - $3cd55 +Function3cd55: ; 3cd55 + call $4f14 + ld hl, BattleMonHP + ld a, [hli] + or [hl] + call z, $4ef1 + xor a + ld [$c6f7], a + call $4e01 + call $5873 + ld a, d + and a + jp z, LostBattle + ld hl, BattleMonHP + ld a, [hli] + or [hl] + call nz, Function3df48 + ld a, $1 + ld [hBGMapMode], a + ld c, $3c + call DelayFrames + ld a, [IsInBattle] + dec a + jr nz, .asm_3cd8c + ld a, $1 + ld [BattleEnded], a + ret + +.asm_3cd8c + call $4f35 + jp z, $4fa4 + ld hl, BattleMonHP + ld a, [hli] + or [hl] + jr nz, .asm_3cdba + call $51f8 + jr nc, .asm_3cda4 + ld a, $1 + ld [BattleEnded], a + ret + +.asm_3cda4 + call $5227 + call Function3d2e0 + jp c, Function3c0e5 + ld a, $1 + ld [$d0ec], a + call $4f4a + jp z, Function3c0e5 + jr .asm_3cdca + +.asm_3cdba + ld a, $1 + ld [$d0ec], a + call $4f4a + jp z, Function3c0e5 + xor a + ld [$d0ec], a + ret + +.asm_3cdca + ld a, [$ffcb] + cp $1 + jr z, .asm_3cde6 + call ClearSprites + ld hl, $c4a1 + ld bc, $040a + call ClearBox + call $52b3 + ld a, $1 + call $4f78 + jr .asm_3cdfc + +.asm_3cde6 + ld a, [CurPartyMon] + push af + ld a, $1 + call $4f78 + call ClearSprites + call Function309d + pop af + ld [CurPartyMon], a + call $52b3 + +.asm_3cdfc + xor a + ld [$d0ec], a + ret +; 3ce01 + +Function3ce01: ; 3ce01 + call UpdateBattleMonInParty + ld a, [IsInBattle] + dec a + jr z, .asm_3ce16 + ld a, [CurOTMon] + ld hl, OTPartyMon1CurHP + call GetPartyLocation + xor a + ld [hli], a + ld [hl], a + +.asm_3ce16 + ld hl, PlayerSubStatus3 + res 2, [hl] + xor a + ld hl, EnemyDamageTaken + ld [hli], a + ld [hl], a + call Function3d834 + call Function3dc18 + ld a, [IsInBattle] + dec a + jr z, .asm_3ce2f + jr .asm_3ce37 + +.asm_3ce2f + call Function3ceec + ld a, $1 + ld [$c6fd], a + +.asm_3ce37 + ld hl, BattleMonHP + ld a, [hli] + or [hl] + jr nz, .asm_3ce47 + ld a, [$c6f7] + and a + jr nz, .asm_3ce47 + call $51aa + +.asm_3ce47 + call $5873 + ld a, d + and a + ret z + ld a, [IsInBattle] + dec a + call z, $50ea + call Function3edd1 + call Function309d + ld a, [$d0ee] + and $c0 + ld [$d0ee], a + call $4eaa + jr z, .asm_3ce72 + ld hl, EnemyMonBaseStats + ld b, $7 +.asm_3ce6c + srl [hl] + inc hl + dec b + jr nz, .asm_3ce6c + +.asm_3ce72 + ld hl, EnemyMonBaseStats + ld de, $c720 + ld bc, $0007 + call CopyBytes + xor a + ld [$c71f], a + call $6e3b + call $4eaa + ret z + ld a, [$c664] + push af + ld a, d + ld [$c664], a + ld hl, $c720 + ld de, EnemyMonBaseStats + ld bc, $0007 + call CopyBytes + ld a, $1 + ld [$c71f], a + call $6e3b + pop af + ld [$c664], a + ret +; 3ceaa + +Function3ceaa: ; 3ceaa + ld a, [PartyCount] + ld b, a + ld hl, PartyMon1Species + ld c, $1 + ld d, $0 +.asm_3ceb5 + push hl + push bc + ld bc, $0022 + add hl, bc + ld a, [hli] + or [hl] + pop bc + pop hl + jr z, .asm_3ced1 + push hl + push bc + ld bc, $0001 + add hl, bc + pop bc + ld a, [hl] + pop hl + cp $39 + jr nz, .asm_3ced1 + ld a, d + or c + ld d, a + +.asm_3ced1 + sla c + push de + ld de, $0030 + add hl, de + pop de + dec b + jr nz, .asm_3ceb5 + ld a, d + ld e, $0 + ld b, $6 +.asm_3cee1 + srl a + jr nc, .asm_3cee6 + inc e + +.asm_3cee6 + dec b + jr nz, .asm_3cee1 + ld a, e + and a + ret +; 3ceec + Function3ceec: ; 3ceec @@ -31657,7 +34484,353 @@ Function3ceec: ; 3ceec ret ; 3cef1 -INCBIN "baserom.gbc", $3cef1, $3d123 - $3cef1 +Function3cef1: ; 3cef1 + call Function3ceec + call WaitSFX + ld a, $f0 + ld [CryTracks], a + ld a, [BattleMonSpecies] + call Function37b6 + call Function3d43b + ld hl, $c535 + ld bc, $050b + call ClearBox + ld hl, $4a75 + jp FarBattleTextBox +; 3cf14 + +Function3cf14: ; 3cf14 + call WaitSFX + ld de, $002f + call StartSFX + call Function3d432 + ld de, $002a + call StartSFX + ld hl, $c4a1 + ld bc, $040a + call ClearBox + ld hl, $49a8 + jp FarBattleTextBox +; 3cf35 + +Function3cf35: ; 3cf35 + ld a, [OTPartyCount] + ld b, a + xor a + ld hl, OTPartyMon1CurHP + ld de, $0030 +.asm_3cf40 + or [hl] + inc hl + or [hl] + dec hl + add hl, de + dec b + jr nz, .asm_3cf40 + and a + ret +; 3cf4a + +Function3cf4a: ; 3cf4a + ld hl, EnemyHPPal + ld e, $30 + call Function3e12e + call WaitBGMap + ld a, $b + ld hl, $4012 + rst FarCall + ld a, [InLinkBattle] + and a + jr z, .asm_3cf6d + call Function3e8e4 + ld a, [$d430] + cp $f + ret z + call Function30b4 + +.asm_3cf6d + ld hl, BattleMonHP + ld a, [hli] + or [hl] + ld a, $0 + jr nz, .asm_3cf78 + inc a + ret + +.asm_3cf78 + push af + xor a + ld [$c718], a + call Function3d834 + call Function3d867 + call Function3dc18 + pop af + and a + jr nz, .asm_3cf8f + call Function3d4e1 + jr .asm_3cf92 + +.asm_3cf8f + call $5517 + +.asm_3cf92 + call Function3d57a + call SetEnemyTurn + call Function3dc23 + xor a + ld [EnemyMoveAnimation], a + ld [$d0ec], a + inc a + ret +; 3cfa4 + +Function3cfa4: ; 3cfa4 + call Function3ceec + ld a, $1 + ld [$c6fd], a + ld [BattleEnded], a + ld a, [InLinkBattle] + and a + ld a, b + call z, $50ea + callab Function39939 + ld hl, $49da + call FarBattleTextBox + call Function3d2f1 + jr z, .asm_3cff5 + ld a, [InLinkBattle] + and a + ret nz + ld a, [$cfc0] + bit 0, a + jr nz, .asm_3d006 + call $6bd8 + ld c, $28 + call DelayFrames + ld a, [BattleType] + cp $1 + jr nz, .asm_3cfe8 + ld a, $2 + call Predef + +.asm_3cfe8 + ld a, [$c2cc] + bit 0, a + jr nz, .asm_3cff2 + call $3718 + +.asm_3cff2 + jp $502b + +.asm_3cff5 + call $6bd8 + ld c, $28 + call DelayFrames + ld c, $4 + ld a, $13 + ld hl, $6a0a + rst FarCall + ret + +.asm_3d006 + call $6bd8 + ld c, $28 + call DelayFrames + call Function3edd1 + ld c, $3 + ld a, $47 + ld hl, $4000 + rst FarCall + call Functiona80 + ld hl, $c6ec + ld a, [hli] + or [hl] + inc hl + or [hl] + ret nz + call ClearTileMap + call WhiteBGMap + ret +; 3d02b + +Function3d02b: ; 3d02b + ld a, [$c73d] + and a + call nz, $5099 + call $50b1 + push af + ld a, $0 + jr nc, .asm_3d044 + ld a, [$d854] + and $7 + cp $3 + jr nz, .asm_3d044 + inc a + +.asm_3d044 + ld b, a + ld c, $4 +.asm_3d047 + ld a, b + and a + jr z, .asm_3d052 + call $5081 + dec c + dec b + jr .asm_3d047 + +.asm_3d052 + ld a, c + and a + jr z, .asm_3d05c + call $508d + dec c + jr .asm_3d052 + +.asm_3d05c + call $5099 + call $5099 + pop af + jr nc, .asm_3d07b + ld a, [$d854] + and $7 + jr z, .asm_3d07b + ld hl, $50ab + dec a + ld c, a + ld b, $0 + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + jp FarBattleTextBox + +.asm_3d07b + ld hl, $49be + jp FarBattleTextBox +; 3d081 + +Function3d081: ; 3d081 + push bc + ld hl, $c688 + ld de, $d853 + call $50be + pop bc + ret +; 3d08d + +Function3d08d: ; 3d08d + push bc + ld hl, $c688 + ld de, $d850 + call $50be + pop bc + ret +; 3d099 + +Function3d099: ; 3d099 + ld hl, $c688 + sla [hl] + dec hl + rl [hl] + dec hl + rl [hl] + ret nc + ld a, $ff + ld [hli], a + ld [hli], a + ld [hl], a + ret +; 3d0ab + +INCBIN "baserom.gbc", $3d0ab, $3d0b1 - $3d0ab + + +Function3d0b1: ; 3d0b1 + ld hl, $d853 + ld a, [hld] + cp $3f + ld a, [hld] + sbc $42 + ld a, [hl] + sbc $f + ret +; 3d0be + +Function3d0be: ; 3d0be + ld c, $3 + and a + push de + push hl + push bc + ld b, h + ld c, l + ld a, $41 + ld hl, $6008 + rst FarCall + pop bc + pop hl +.asm_3d0ce + ld a, [de] + adc [hl] + ld [de], a + dec de + dec hl + dec c + jr nz, .asm_3d0ce + pop hl + ld a, [hld] + cp $3f + ld a, [hld] + sbc $42 + ld a, [hl] + sbc $f + ret c + ld [hl], $f + inc hl + ld [hl], $42 + inc hl + ld [hl], $3f + ret +; 3d0ea + +Function3d0ea: ; 3d0ea + push de + ld de, $0000 + call StartMusic + call DelayFrame + ld de, $0018 + ld a, [IsInBattle] + dec a + jr nz, .asm_3d113 + push de + call $4eaa + pop de + jr nz, .asm_3d11e + ld hl, $c6ec + ld a, [hli] + or [hl] + jr nz, .asm_3d11e + ld a, [$c664] + and a + jr z, .asm_3d121 + jr .asm_3d11e + +.asm_3d113 + ld de, $0019 + call IsJohtoGymLeader + jr c, .asm_3d11e + ld de, $0017 + +.asm_3d11e + call StartMusic + +.asm_3d121 + pop de + ret +; 3d123 + ; These functions check if the current opponent is a gym leader or one of a @@ -31714,7 +34887,203 @@ KantoGymLeaders: db $ff -INCBIN "baserom.gbc", $3d14e, $3d2e0 - $3d14e +Function3d14e: ; 3d14e + call $4ef1 + ld hl, EnemyMonHPHi + ld a, [hli] + or [hl] + call z, $4f14 + ld a, $1 + ld [$c6f7], a + call $51aa + call $5873 + ld a, d + and a + jp z, LostBattle + ld hl, EnemyMonHPHi + ld a, [hli] + or [hl] + jr nz, .asm_3d185 + call $4e01 + ld a, [IsInBattle] + dec a + jr nz, .asm_3d17f + ld a, $1 + ld [BattleEnded], a + ret + +.asm_3d17f + call $4f35 + jp z, $4fa4 + +.asm_3d185 + call $51f8 + jr nc, .asm_3d190 + ld a, $1 + ld [BattleEnded], a + ret + +.asm_3d190 + call $5227 + call Function3d2e0 + jp c, Function3c0e5 + ld a, c + and a + ret nz + ld a, $1 + ld [$d0ec], a + call $4f4a + jp z, Function3c0e5 + jp $4dca +; 3d1aa + +Function3d1aa: ; 3d1aa + ld a, [CurBattleMon] + ld c, a + ld hl, $c664 + ld b, $0 + ld a, $3 + call Predef + ld hl, EnemySubStatus3 + res 2, [hl] + xor a + ld [Danger], a + ld hl, PlayerDamageTaken + ld [hli], a + ld [hl], a + ld [BattleMonStatus], a + call UpdateBattleMonInParty + ld c, $6 + ld a, [BattleMonLevel] + add $1e + ld b, a + ld a, [EnemyMonLevel] + cp b + jr c, .asm_3d1dc + ld c, $8 + +.asm_3d1dc + ld a, [CurBattleMon] + ld [CurPartyMon], a + callab Function71c2 + ld a, [$d0ee] + and $c0 + add $1 + ld [$d0ee], a + ld a, [$c6f7] + and a + ret z + ret +; 3d1f8 + +Function3d1f8: ; 3d1f8 + call Function3edd1 + call Function309d + ld a, [IsInBattle] + and a + dec a + ret nz + ld hl, $4a83 + call FarBattleTextBox +.asm_3d20a + ld bc, $0107 + call $1dd2 + ld a, [$cfa9] + jr c, .asm_3d217 + and a + ret + +.asm_3d217 + ld a, [$cfa9] + cp $1 + jr z, .asm_3d20a + ld hl, PartyMon1Spd + ld de, EnemyMonSpd + jp $58b3 +; 3d227 + +Function3d227: ; 3d227 + call Function3edd1 + call Function1d6e + call Function3d2f7 + call $5362 + ld a, [InLinkBattle] + and a + jr z, .asm_3d241 + ld a, $1 + ld [$d0ec], a + call Function3e8e4 + +.asm_3d241 + xor a + ld [$d0ec], a + call Function3d2e0 + jr c, .asm_3d251 + ld hl, EnemyMonHPHi + ld a, [hli] + or [hl] + jr nz, .asm_3d26c + +.asm_3d251 + call ClearSprites + call WhiteBGMap + call Function3eda6 + call Function1c07 + call Function309d + call WaitBGMap + call ClearSGB + call Function32f9 + xor a + ld c, a + ret + +.asm_3d26c + call ClearSprites + ld a, [CurBattleMon] + ld [$c71a], a + ld a, [CurPartyMon] + ld [CurBattleMon], a + call $5581 + call Function3da0d + call Function3dab1 + call ClearPalettes + call DelayFrame + call Function3eda6 + call Function1c17 + call ClearSGB + call Function32f9 + call Function3f26d + call Function3dbde + call Function3dc18 + call Function3db5f + call Function3edd1 + call Function309d + call SetPlayerTurn + call Function3dc23 + ld a, $1 + and a + ld c, a + ret +; 3d2b3 + +Function3d2b3: ; 3d2b3 + ld a, [CurBattleMon] + ld [$c71a], a + ld a, [CurPartyMon] + ld [CurBattleMon], a + call $5581 + call Function3da0d + call Function3dab1 + call Function3f26d + call Function3dbde + call Function3dc18 + call Function3db5f + call Function3edd1 + call Function309d + call SetPlayerTurn + jp Function3dc23 +; 3d2e0 + Function3d2e0: ; 3d2e0 @@ -31799,7 +35168,18 @@ Function3d34f: ; 3d34f ret ; 3d362 -INCBIN "baserom.gbc", $3d362, $3d375 - $3d362 +Function3d362: ; 3d362 +.asm_3d362 + call Function3d33c + ret nc + call Function3d2e0 + ret c + ld de, $0019 + call StartSFX + call WaitSFX + jr .asm_3d362 +; 3d375 + Function3d375: ; 3d375 @@ -32535,7 +35915,23 @@ Function3d867: ; 3d867 ret ; 3d873 -INCBIN "baserom.gbc", $3d873, $3d887 - $3d873 +Function3d873: ; 3d873 + ld a, [PartyCount] + ld e, a + xor a + ld hl, PartyMon1CurHP + ld bc, $002f +.asm_3d87e + or [hl] + inc hl + or [hl] + add hl, bc + dec e + jr nz, .asm_3d87e + ld d, a + ret +; 3d887 + Function3d887: ; 3d887 @@ -32567,7 +35963,184 @@ Function3d887: ; 3d887 ret ; 3d8b3 -INCBIN "baserom.gbc", $3d8b3, $3da0d - $3d8b3 +Function3d8b3: ; 3d8b3 + ld a, [BattleType] + cp $2 + jp z, $59a2 + cp $6 + jp z, $59a2 + cp $9 + jp z, $598d + cp $b + jp z, $598d + cp $7 + jp z, $598d + cp $c + jp z, $598d + ld a, [InLinkBattle] + and a + jp nz, $59a2 + ld a, [IsInBattle] + dec a + jp nz, $5992 + ld a, [EnemySubStatus5] + bit 7, a + jp nz, $598d + ld a, [$c730] + and a + jp nz, $598d + push hl + push de + ld a, [BattleMonItem] + ld [$d265], a + ld b, a + callab GetItem + ld a, b + cp $48 + pop de + pop hl + jr nz, .asm_3d916 + call SetPlayerTurn + call GetItemName + ld hl, $4b89 + call FarBattleTextBox + jp $59a2 + +.asm_3d916 + ld a, [$d267] + inc a + ld [$d267], a + ld a, [hli] + ld [$ffb5], a + ld a, [hl] + ld [$ffb6], a + ld a, [de] + inc de + ld [$ffb1], a + ld a, [de] + ld [$ffb2], a + call Function30b4 + ld de, $ffb5 + ld hl, $ffb1 + ld c, $2 + call StringCmp + jr nc, .asm_3d9a2 + xor a + ld [hMultiplicand], a + ld a, $20 + ld [hMultiplier], a + call Multiply + ld a, [$ffb5] + ld [hProduct], a + ld a, [$ffb6] + ld [hMultiplicand], a + ld a, [$ffb1] + ld b, a + ld a, [$ffb2] + srl b + rr a + srl b + rr a + and a + jr z, .asm_3d9a2 + ld [hMultiplier], a + ld b, $2 + call Divide + ld a, [$ffb5] + and a + jr nz, .asm_3d9a2 + ld a, [$d267] + ld c, a +.asm_3d96c + dec c + jr z, .asm_3d97a + ld b, $1e + ld a, [$ffb6] + add b + ld [$ffb6], a + jr c, .asm_3d9a2 + jr .asm_3d96c + +.asm_3d97a + call FarBattleRNG + ld b, a + ld a, [$ffb6] + cp b + jr nc, .asm_3d9a2 + ld a, $1 + ld [$d0ec], a + ld hl, $4b3b + jr .asm_3d995 + + ld hl, $4ba0 + jr .asm_3d995 + + ld hl, $4b49 + +.asm_3d995 + call FarBattleTextBox + ld a, $1 + ld [$d266], a + call Function309d + and a + ret + +.asm_3d9a2 + ld a, [InLinkBattle] + and a + ld a, $2 + jr z, .asm_3d9cf + call Function309d + xor a + ld [$d0ec], a + ld a, $f + ld [CurMoveNum], a + xor a + ld [CurPlayerMove], a + call Function3e8e4 + call Function30b4 + call Function3d2e0 + jr c, .asm_3d9f5 + ld a, [$d430] + cp $f + ld a, $2 + jr z, .asm_3d9cf + dec a + +.asm_3d9cf + ld b, a + ld a, [$d0ee] + and $c0 + add b + ld [$d0ee], a + call Function3ceec + push de + ld de, $002b + call WaitPlaySFX + pop de + call WaitSFX + ld hl, $4b77 + call FarBattleTextBox + call WaitSFX + call Function309d + scf + ret + +.asm_3d9f5 + call Function3ceec + ld hl, $cd2a + bit 4, [hl] + jr nz, .asm_3da05 + ld hl, $5863 + call FarBattleTextBox + +.asm_3da05 + call WaitSFX + call Function309d + scf + ret +; 3da0d + Function3da0d: ; 3da0d @@ -32934,13 +36507,261 @@ Function3dce6: ; 3dce6 ret ; 3dcf9 -INCBIN "baserom.gbc", $3dcf9, $3ddc2 - $3dcf9 +Function3dcf9: ; 3dcf9 + ld a, [$ffcb] + cp $1 + jr z, .asm_3dd17 + call SetPlayerTurn + call $5d2f + call $5de9 + call $5e51 + call SetEnemyTurn + call $5d2f + call $5de9 + jp $5e51 + +.asm_3dd17 + call SetEnemyTurn + call $5d2f + call $5de9 + call $5e51 + call SetPlayerTurn + call $5d2f + call $5de9 + jp $5e51 +; 3dd2f + +INCBIN "baserom.gbc", $3dd2f, $3ddc2 - $3dd2f ld hl, RecoveredUsingText jp FarBattleTextBox ; 0x3ddc8 -INCBIN "baserom.gbc", $3ddc8, $3df48 - $3ddc8 +Function3ddc8: ; 3ddc8 + push hl + push de + push bc + call Function3edd1 + ld a, $69 + ld [FXAnimIDLo], a + call $48e4 + xor a + ld [$cfca], a + ld [FXAnimIDHi], a + ld a, $37 + call Predef + call $48e4 + pop bc + pop de + pop hl + ret +; 3dde9 + +Function3dde9: ; 3dde9 + callab GetOpponentItem + ld hl, $5e44 +.asm_3ddf2 + ld a, [hli] + cp $ff + ret z + inc hl + cp b + jr nz, .asm_3ddf2 + dec hl + ld b, [hl] + ld a, $b + call GetBattleVarPair + and b + ret z + xor a + ld [hl], a + push bc + call UpdateOpponentInParty + pop bc + ld a, $9 + call GetBattleVarPair + and [hl] + res 0, [hl] + ld a, $5 + call GetBattleVarPair + and [hl] + res 0, [hl] + ld a, b + cp $7f + jr nz, .asm_3de26 + ld a, $7 + call GetBattleVarPair + res 7, [hl] + +.asm_3de26 + ld hl, $65fd + ld a, [hBattleTurn] + and a + jr z, .asm_3de31 + ld hl, $65d7 + +.asm_3de31 + call $48e4 + ld a, $d + rst FarCall + call $48e4 + call $5dc8 + call $5dac + ld a, $1 + and a + ret +; 3de44 + +INCBIN "baserom.gbc", $3de44, $3de51 - $3de44 + + +Function3de51: ; 3de51 + ld a, $7 + call CleanGetBattleVarPair + bit 7, a + ret z + callab GetOpponentItem + ld a, b + cp $10 + jr z, .asm_3de67 + cp $f + ret nz + +.asm_3de67 + ld a, [hl] + ld [$d265], a + ld a, $7 + call GetBattleVarPair + res 7, [hl] + call GetItemName + call $5dc8 + ld hl, $4dab + call FarBattleTextBox + ld a, [hBattleTurn] + and a + jr nz, .asm_3de90 + call $5f1f + xor a + ld [bc], a + ld a, [IsInBattle] + dec a + ret z + ld [hl], $0 + ret + +.asm_3de90 + call $5f12 + xor a + ld [bc], a + ld [hl], a + ret +; 3de97 + +Function3de97: ; 3de97 + ld a, [$ffcb] + cp $1 + jr z, .asm_3dea3 + call $5ea9 + jp $5eb1 + +.asm_3dea3 + call $5eb1 + jp $5ea9 +; 3dea9 + +Function3dea9: ; 3dea9 + call $5f12 + ld a, $0 + jp $5eb6 +; 3deb1 + +Function3deb1: ; 3deb1 + call $5f1f + ld a, $1 + ld [hBattleTurn], a + ld d, h + ld e, l + push de + push bc + ld a, [bc] + ld b, a + callab GetItem + ld hl, $5efc +.asm_3dec7 + ld a, [hli] + cp $ff + jr z, .asm_3def9 + inc hl + inc hl + cp b + jr nz, .asm_3dec7 + pop bc + ld a, [bc] + ld [$d265], a + push bc + dec hl + dec hl + ld a, [hli] + ld h, [hl] + ld l, a + ld a, $d + rst FarCall + pop bc + pop de + ld a, [FailedMessage] + and a + ret nz + xor a + ld [bc], a + ld [de], a + call GetItemName + ld hl, $4bde + call FarBattleTextBox + callab BattleCommand8c + ret + +.asm_3def9 + pop bc + pop de + ret +; 3defc + +INCBIN "baserom.gbc", $3defc, $3df12 - $3defc + + +Function3df12: ; 3df12 + ld hl, PartyMon1Item + ld a, [CurBattleMon] + call GetPartyLocation + ld bc, BattleMonItem + ret +; 3df1f + +Function3df1f: ; 3df1f + ld hl, OTPartyMon1Item + ld a, [CurOTMon] + call GetPartyLocation + ld bc, EnemyMonItem + ret +; 3df2c + +Function3df2c: ; 3df2c + push hl + push de + push bc + call Function3df58 + ld hl, PlayerHPPal + call SetHPPal + call Function3df9e + call Function3e043 + ld hl, EnemyHPPal + call SetHPPal + pop bc + pop de + pop hl + ret +; 3df48 + Function3df48: ; 3df48 @@ -33238,7 +37059,293 @@ Function3e138: ; 3e138 ret ; 3e139 -INCBIN "baserom.gbc", $3e139, $3e3ad - $3e139 +Function3e139: ; 3e139 + xor a + ld [hBGMapMode], a + call Function30bf + ld a, [BattleType] + cp $2 + jr z, .asm_3e156 + cp $3 + jr z, .asm_3e156 + call Function3edd1 + call UpdateBattleHuds + call Function3edd1 + call Function309d + +.asm_3e156 + ld a, [BattleType] + cp $6 + jr nz, .asm_3e165 + ld a, $9 + ld hl, $4f13 + rst FarCall + jr .asm_3e175 + +.asm_3e165 + ld a, [InputType] + or a + jr z, .asm_3e171 + ld a, $77 + ld hl, $6294 + rst FarCall + +.asm_3e171 + call $619b + ret c + +.asm_3e175 + ld a, $1 + ld [hBGMapMode], a + ld a, [$d0d2] + cp $1 + jp z, $6192 + cp $3 + jp z, $61c7 + cp $2 + jp z, $628d + cp $4 + jp z, $6489 + jr .asm_3e156 +; 3e192 + +Function3e192: ; 3e192 + xor a + ld [$d267], a + call Function30b4 + and a + ret +; 3e19b + +Function3e19b: ; 3e19b + call Function3d2f1 + jr z, .asm_3e1a8 + callba Function24ef2 + and a + ret + +.asm_3e1a8 + ld a, $40 + ld hl, $4b12 + rst FarCall + ld a, [$cd2b] + and a + ret z + ld hl, $cd2a + bit 4, [hl] + jr nz, .asm_3e1c5 + ld hl, $5863 + call FarBattleTextBox + ld c, $3c + call DelayFrames + +.asm_3e1c5 + scf + ret +; 3e1c7 + +Function3e1c7: ; 3e1c7 + ld a, [InLinkBattle] + and a + jp nz, $622b + ld a, [$cfc0] + and a + jp nz, $622b + call Function1d6e + ld a, [BattleType] + cp $3 + jr z, .asm_3e1f1 + cp $6 + jr z, .asm_3e201 + ld a, $4 + ld hl, $4493 + rst FarCall + ld a, [$d0ec] + and a + jr z, .asm_3e20d + jr .asm_3e209 + +.asm_3e1f1 + ld a, $4 + ld hl, $47bb + rst FarCall + ld a, $5 + ld [CurItem], a + call DoItemEffect + jr .asm_3e209 + +.asm_3e201 + ld a, $b1 + ld [CurItem], a + call DoItemEffect + +.asm_3e209 + call $6234 + ret + +.asm_3e20d + call ClearPalettes + call DelayFrame + call Function3ed9f + call Function3f43d + call Function3f47c + call Function1c07 + call WaitBGMap + call Function3ee27 + call Function309d + jp $6139 +; 3e22b + +Function3e22b: ; 3e22b + ld hl, $4bf3 + call FarBattleTextBox + jp $6139 +; 3e234 + +Function3e234: ; 3e234 + ld a, [$c64e] + and a + jr nz, .asm_3e279 + callab CheckItemPocket + ld a, [$d142] + cp $3 + jr z, .asm_3e24a + call WhiteBGMap + +.asm_3e24a + xor a + ld [hBGMapMode], a + call Function3ed9f + call ClearSprites + ld a, [BattleType] + cp $3 + jr z, .asm_3e25d + call Function3f43d + +.asm_3e25d + call Function3f47c + ld a, $1 + ld [$cfa9], a + call Function1c07 + call $5f2c + call WaitBGMap + call Function309d + call Function1fbf + call Function3ee27 + and a + ret + +.asm_3e279 + xor a + ld [$c64e], a + ld a, [$d0ee] + and $c0 + ld [$d0ee], a + call Function1fbf + call Function32f9 + scf + ret +; 3e28d + +Function3e28d: ; 3e28d + call Function1d6e + call Function1c07 + call Function1d6e + call WhiteBGMap +.asm_3e299 + call $52fa + xor a + ld [PartyMenuActionText], a + call Function3d313 + call Function3d329 + jr c, .asm_3e2da +.asm_3e2a8 + ld a, $23 + ld hl, $6a4a + rst FarCall + call $62f5 + jr c, .asm_3e2c8 + call Function1bee + ld a, [$cfa9] + cp $1 + jp z, $6358 + cp $2 + jr z, .asm_3e2cf + cp $3 + jr z, .asm_3e2da + jr .asm_3e2a8 + +.asm_3e2c8 + call Function3d2e0 + jr c, .asm_3e2da + jr .asm_3e299 + +.asm_3e2cf + call $6308 + call Function3d2e0 + jr c, .asm_3e2da + jp $6290 + +.asm_3e2da + call ClearSprites + call ClearPalettes + call DelayFrame + call Function3eda6 + call Function1c17 + call Function309d + call ClearSGB + call Function32f9 + jp $6139 +; 3e2f5 + +Function3e2f5: ; 3e2f5 + call Function3d2f1 + jr z, .asm_3e301 + ld a, $9 + ld hl, $4e99 + rst FarCall + ret + +.asm_3e301 + ld a, $40 + ld hl, $4d22 + rst FarCall + ret +; 3e308 + +Function3e308: ; 3e308 + call DisableLCD + ld hl, $9310 + ld de, VTiles0 + ld bc, $0110 + call CopyBytes + ld hl, VTiles2 + ld de, $8110 + ld bc, $0310 + call CopyBytes + call EnableLCD + call ClearSprites + call LowVolume + xor a + ld [MonType], a + ld a, $13 + ld hl, $5c7b + rst FarCall + call MaxVolume + call DisableLCD + ld hl, VTiles0 + ld de, $9310 + ld bc, $0110 + call CopyBytes + ld hl, $8110 + ld de, VTiles2 + ld bc, $0310 + call CopyBytes + call EnableLCD + ret +; 3e358 + +INCBIN "baserom.gbc", $3e358, $3e3ad - $3e358 Function3e3ad: ; 3e3ad @@ -33330,7 +37437,25 @@ Function3e40b: ; 3e40b ret ; 3e459 -INCBIN "baserom.gbc", $3e459, $3e4a8 - $3e459 +INCBIN "baserom.gbc", $3e459, $3e489 - $3e459 + + +Function3e489: ; 3e489 + call Function30b4 + ld a, $3 + ld [$cfa9], a + ld hl, BattleMonSpd + ld de, EnemyMonSpd + call $58b3 + ld a, $0 + ld [$d266], a + ret c + ld a, [$d0ec] + and a + ret nz + jp $6139 +; 3e4a8 + Function3e4a8: ; 3e4a8 @@ -33345,7 +37470,451 @@ Function3e4a8: ; 3e4a8 ret ; 3e4bc -INCBIN "baserom.gbc", $3e4bc, $3e7c1 - $3e4bc +Function3e4bc: ; 3e4bc + call Function3d2f1 + jr nz, .asm_3e4c8 + ld a, $40 + ld hl, $4b9f + rst FarCall + ret + +.asm_3e4c8 + ld hl, EnemyMonMove1 + ld a, [$d235] + dec a + jr z, .asm_3e4e2 + dec a + jr z, .asm_3e4dd + call $6786 + ret z + ld hl, BattleMonMove1 + jr .asm_3e4e2 + +.asm_3e4dd + ld a, $2 + call GetPartyParamLocation + +.asm_3e4e2 + ld de, $d25e + ld bc, $0004 + call CopyBytes + xor a + ld [hBGMapMode], a + ld hl, $c594 + ld b, $4 + ld c, $e + ld a, [$d235] + cp $2 + jr nz, .asm_3e503 + ld hl, $c544 + ld b, $4 + ld c, $e + +.asm_3e503 + call TextBox + ld hl, $c5aa + ld a, [$d235] + cp $2 + jr nz, .asm_3e513 + ld hl, $c55a + +.asm_3e513 + ld a, $14 + ld [MagikarpLength], a + ld a, $20 + call Predef + ld b, $5 + ld a, [$d235] + cp $2 + ld a, $d + jr nz, .asm_3e52c + ld b, $5 + ld a, $9 + +.asm_3e52c + ld [$cfa1], a + ld a, b + ld [$cfa2], a + ld a, [$d235] + cp $1 + jr z, .asm_3e53e + ld a, [CurMoveNum] + inc a + +.asm_3e53e + ld [$cfa9], a + ld a, $1 + ld [$cfaa], a + ld a, [$d0eb] + inc a + ld [$cfa3], a + ld a, $1 + ld [$cfa4], a + ld c, $2c + ld a, [$d235] + dec a + ld b, $c1 + jr z, .asm_3e569 + dec a + ld b, $c3 + jr z, .asm_3e569 + ld a, [InLinkBattle] + and a + jr nz, .asm_3e569 + ld b, $c7 + +.asm_3e569 + ld a, b + ld [$cfa8], a + ld a, c + ld [$cfa5], a + xor a + ld [$cfa6], a + ld a, $10 + ld [$cfa7], a + ld a, [$d235] + and a + jr z, .asm_3e58e + dec a + jr nz, .asm_3e5a3 + ld hl, $c5c3 + ld de, $661c + call PlaceString + jr .asm_3e5a3 + +.asm_3e58e + call $66c8 + ld a, [$d0e3] + and a + jr z, .asm_3e5a3 + ld hl, $c5a9 + ld bc, $0014 + dec a + call AddNTimes + ld [hl], $ec + +.asm_3e5a3 + ld a, $1 + ld [hBGMapMode], a + call Function1bd3 + bit 6, a + jp nz, $661d + bit 7, a + jp nz, $662e + bit 2, a + jp nz, $6643 + bit 1, a + push af + xor a + ld [$d0e3], a + ld a, [$cfa9] + dec a + ld [$cfa9], a + ld b, a + ld a, [$d235] + dec a + jr nz, .asm_3e5d0 + pop af + ret + +.asm_3e5d0 + dec a + ld a, b + ld [CurMoveNum], a + jr nz, .asm_3e5d9 + pop af + ret + +.asm_3e5d9 + pop af + ret nz + ld hl, BattleMonPPMove1 + ld a, [$cfa9] + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + and $3f + jr z, .asm_3e610 + ld a, [PlayerDisableCount] + swap a + and $f + dec a + cp c + jr z, .asm_3e60b + ld a, [$c6e1] + and a + jr nz, .asm_3e606 + ld a, [$cfa9] + ld hl, BattleMonMove1 + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + +.asm_3e606 + ld [CurPlayerMove], a + xor a + ret + +.asm_3e60b + ld hl, $4c5b + jr .asm_3e613 + +.asm_3e610 + ld hl, Function3cc39 + +.asm_3e613 + call FarBattleTextBox + call Function30b4 + jp $64bc +; 3e61c + +INCBIN "baserom.gbc", $3e61c, $3e61d - $3e61c + + +Function3e61d: ; 3e61d + ld a, [$cfa9] + and a + jp nz, $657a + ld a, [$d0eb] + inc a + ld [$cfa9], a + jp $657a +; 3e62e + +Function3e62e: ; 3e62e + ld a, [$cfa9] + ld b, a + ld a, [$d0eb] + inc a + inc a + cp b + jp nz, $657a + ld a, $1 + ld [$cfa9], a + jp $657a +; 3e643 + +Function3e643: ; 3e643 + ld a, [$d0e3] + and a + jr z, .asm_3e6bf + ld hl, BattleMonMove1 + call $66a5 + ld hl, BattleMonPPMove1 + call $66a5 + ld hl, PlayerDisableCount + ld a, [hl] + swap a + and $f + ld b, a + ld a, [$cfa9] + cp b + jr nz, .asm_3e671 + ld a, [hl] + and $f + ld b, a + ld a, [$d0e3] + swap a + add b + ld [hl], a + jr .asm_3e682 + +.asm_3e671 + ld a, [$d0e3] + cp b + jr nz, .asm_3e682 + ld a, [hl] + and $f + ld b, a + ld a, [$cfa9] + swap a + add b + ld [hl], a + +.asm_3e682 + ld a, [PlayerSubStatus5] + bit 3, a + jr nz, .asm_3e69e + ld hl, PartyMon1Move1 + ld a, [CurBattleMon] + call GetPartyLocation + push hl + call $66a5 + pop hl + ld bc, $0015 + add hl, bc + call $66a5 + +.asm_3e69e + xor a + ld [$d0e3], a + jp $64bc + + push hl + ld a, [$d0e3] + dec a + ld c, a + ld b, $0 + add hl, bc + ld d, h + ld e, l + pop hl + ld a, [$cfa9] + dec a + ld c, a + ld b, $0 + add hl, bc + ld a, [de] + ld b, [hl] + ld [hl], a + ld a, b + ld [de], a + ret + +.asm_3e6bf + ld a, [$cfa9] + ld [$d0e3], a + jp $64bc +; 3e6c8 + +Function3e6c8: ; 3e6c8 + xor a + ld [hBGMapMode], a + ld hl, $c540 + ld b, $3 + ld c, $9 + call TextBox + call MobileTextBorder + ld a, [PlayerDisableCount] + and a + jr z, .asm_3e6f4 + swap a + and $f + ld b, a + ld a, [$cfa9] + cp b + jr nz, .asm_3e6f4 + ld hl, $c569 + ld de, $674f + call PlaceString + jr .asm_3e74e + +.asm_3e6f4 + ld hl, $cfa9 + dec [hl] + call SetPlayerTurn + ld hl, BattleMonMove1 + ld a, [$cfa9] + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + ld [CurPlayerMove], a + ld a, [CurBattleMon] + ld [CurPartyMon], a + ld a, $4 + ld [MonType], a + callab Functionf8ec + ld hl, $cfa9 + ld c, [hl] + inc [hl] + ld b, $0 + ld hl, BattleMonPPMove1 + add hl, bc + ld a, [hl] + and $3f + ld [StringBuffer1], a + call $675f + ld hl, $c555 + ld de, $6759 + call PlaceString + ld hl, $c583 + ld [hl], $f3 + callab UpdateMoveData + ld a, [PlayerMoveAnimation] + ld b, a + ld hl, $c56a + ld a, $2a + call Predef + +.asm_3e74e + ret +; 3e74f + +INCBIN "baserom.gbc", $3e74f, $3e75f - $3e74f + + +Function3e75f: ; 3e75f + ld hl, $c581 + ld a, [InLinkBattle] + cp $4 + jr c, .asm_3e76c + ld hl, $c581 + +.asm_3e76c + push hl + ld de, StringBuffer1 + ld bc, $0102 + call Function3198 + pop hl + inc hl + inc hl + ld [hl], $f3 + inc hl + ld de, $d265 + ld bc, $0102 + call Function3198 + ret +; 3e786 + +Function3e786: ; 3e786 + ld a, $a5 + ld [CurPlayerMove], a + ld a, [PlayerDisableCount] + and a + ld hl, BattleMonPPMove1 + jr nz, .asm_3e79f + ld a, [hli] + or [hl] + inc hl + or [hl] + inc hl + or [hl] + and $3f + ret nz + jr .asm_3e7b4 + +.asm_3e79f + swap a + and $f + ld b, a + ld d, $5 + xor a +.asm_3e7a7 + dec d + jr z, .asm_3e7b2 + ld c, [hl] + inc hl + dec b + jr z, .asm_3e7a7 + or c + jr .asm_3e7a7 + +.asm_3e7b2 + and a + ret nz + +.asm_3e7b4 + ld hl, $4c72 + call FarBattleTextBox + ld c, $3c + call DelayFrames + xor a + ret +; 3e7c1 + Function3e7c1: ; 3e7c1 @@ -34139,7 +38708,69 @@ CheckUnownLetter: ; 3eb75 ; 3ebc7 -INCBIN "baserom.gbc", $3ebc7, $3ec30 - $3ebc7 +INCBIN "baserom.gbc", $3ebc7, $3ebd8 - $3ebc7 + + +Function3ebd8: ; 3ebd8 + xor a + ld [TempEnemyMonSpecies], a + call Function3ee27 + ld a, [OtherTrainerClass] + ld [TrainerClass], a + ld de, VTiles2 + ld hl, $520d + ld a, $14 + rst FarCall + ld hl, $c4b3 + ld c, $0 +.asm_3ebf3 + inc c + ld a, c + cp $7 + ret z + xor a + ld [hBGMapMode], a + ld [hBGMapThird], a + ld d, $0 + push bc + push hl +.asm_3ec01 + call $6c1a + inc hl + ld a, $7 + add d + ld d, a + dec c + jr nz, .asm_3ec01 + ld a, $1 + ld [hBGMapMode], a + ld c, $4 + call DelayFrames + pop hl + pop bc + dec hl + jr .asm_3ebf3 +; 3ec1a + +Function3ec1a: ; 3ec1a + push hl + push de + push bc + ld e, $7 +.asm_3ec1f + ld [hl], d + ld bc, $0014 + add hl, bc + inc d + dec e + jr nz, .asm_3ec1f + pop bc + pop de + pop hl + ret +; 3ec2c + +INCBIN "baserom.gbc", $3ec2c, $3ec30 - $3ec2c Function3ec30: ; 3ec30 @@ -34237,7 +38868,99 @@ Function3ec76: ; 3ec76 ret ; 3ecab -INCBIN "baserom.gbc", $3ecab, $3ed4a - $3ecab +Function3ecab: ; 3ecab + ld c, $0 +.asm_3ecad + call $6cb7 + inc c + ld a, c + cp $5 + jr nz, .asm_3ecad + ret +; 3ecb7 + +Function3ecb7: ; 3ecb7 + push bc + push bc + ld a, [$d265] + and a + ld a, c + ld hl, BattleMonAtk + ld de, PlayerStats + ld bc, PlayerAtkLevel + jr z, .asm_3ecd2 + ld hl, EnemyMonAtk + ld de, EnemyStats + ld bc, EnemyAtkLevel + +.asm_3ecd2 + add c + ld c, a + jr nc, .asm_3ecd7 + inc b + +.asm_3ecd7 + ld a, [bc] + pop bc + ld b, a + push bc + sla c + ld b, $0 + add hl, bc + ld a, c + add e + ld e, a + jr nc, .asm_3ece6 + inc d + +.asm_3ece6 + pop bc + push hl + ld hl, $6d2b + dec b + sla b + ld c, b + ld b, $0 + add hl, bc + xor a + ld [hMultiplicand], a + ld a, [de] + ld [$ffb5], a + inc de + ld a, [de] + ld [$ffb6], a + ld a, [hli] + ld [hMultiplier], a + call Multiply + ld a, [hl] + ld [hMultiplier], a + ld b, $4 + call Divide + pop hl + ld a, [$ffb6] + sub $e7 + ld a, [$ffb5] + sbc $3 + jp c, $6d1e + ld a, $3 + ld [$ffb5], a + ld a, $e7 + ld [$ffb6], a + ld a, [$ffb5] + ld [hli], a + ld b, a + ld a, [$ffb6] + ld [hl], a + or b + jr nz, .asm_3ed29 + inc [hl] + +.asm_3ed29 + pop bc + ret +; 3ed2b + +INCBIN "baserom.gbc", $3ed2b, $3ed4a - $3ed2b BadgeStatBoosts: ; 3ed4a @@ -34452,7 +39175,271 @@ Function3ee27: ; 3ee27 ret ; 3ee3b -INCBIN "baserom.gbc", $3ee3b, $3f26d - $3ee3b +INCBIN "baserom.gbc", $3ee3b, $3f0b9 - $3ee3b + + +Function3f0b9: ; 3f0b9 + ld a, [PartyCount] + ld b, a + ld a, [CurPartyMon] + inc a + cp b + jr z, .asm_3f0d1 + ld [CurPartyMon], a + ld a, $0 + call GetPartyParamLocation + ld b, h + ld c, l + jp $6e50 + +.asm_3f0d1 + jp Function3d57a +; 3f0d4 + +Function3f0d4: ; 3f0d4 + ld a, [$c664] + ld b, a + ld c, $6 + ld d, $0 +.asm_3f0dc + xor a + srl b + adc d + ld d, a + dec c + jr nz, .asm_3f0dc + cp $2 + ret c + ld [$d265], a + ld hl, EnemyMonBaseStats + ld c, $7 +.asm_3f0ef + xor a + ld [hProduct], a + ld a, [hl] + ld [hMultiplicand], a + ld a, [$d265] + ld [hMultiplier], a + ld b, $2 + call Divide + ld a, [$ffb6] + ld [hli], a + dec c + jr nz, .asm_3f0ef + ret +; 3f106 + +Function3f106: ; 3f106 + push bc + ld a, [$ffb5] + ld b, a + ld a, [$ffb6] + ld c, a + srl b + rr c + add c + ld [$ffb6], a + ld a, [$ffb5] + adc b + ld [$ffb5], a + pop bc + ret +; 3f11b + +INCBIN "baserom.gbc", $3f11b, $3f136 - $3f11b + + +Function3f136: ; 3f136 + push bc + ld hl, CurPartyMon + ld a, [CurBattleMon] + cp [hl] + jp nz, $7219 + ld a, [BattleMonLevel] + cp $64 + jp nc, $7219 + ld a, [$ffb6] + ld [$d004], a + push af + ld a, [$ffb5] + ld [$d003], a + push af + xor a + ld [DefaultFlypoint], a + xor a + ld [MonType], a + ld a, $1f + call Predef + ld a, [TempMonLevel] + ld b, a + ld e, a + push de + ld de, $d118 + call Function3f39c + push bc + ld hl, $d118 + ld a, [$d004] + add [hl] + ld [hld], a + ld a, [$d003] + adc [hl] + ld [hld], a + jr nc, .asm_3f186 + inc [hl] + jr nz, .asm_3f186 + ld a, $ff + ld [hli], a + ld [hli], a + ld [hl], a + +.asm_3f186 + ld d, $64 + callab Function50e47 + ld a, [hMultiplicand] + ld b, a + ld a, [$ffb5] + ld c, a + ld a, [$ffb6] + ld d, a + ld hl, $d118 + ld a, [hld] + sub d + ld a, [hld] + sbc c + ld a, [hl] + sbc b + jr c, .asm_3f1a8 + ld a, b + ld [hli], a + ld a, c + ld [hli], a + ld a, d + ld [hld], a + +.asm_3f1a8 + ld hl, $4e1b + ld a, $14 + rst FarCall + ld a, d + pop bc + pop de + ld d, a + cp e + jr nc, .asm_3f1b7 + ld a, e + ld d, a + +.asm_3f1b7 + ld a, e + cp $64 + jr nc, .asm_3f1ff + cp d + jr z, .asm_3f1ff + inc a + ld [TempMonLevel], a + ld [CurPartyLevel], a + ld [BattleMonLevel], a + push de + call $721b + ld c, $40 + call $722c + call Function3dfbf + ld hl, BattleMonNick + ld de, StringBuffer1 + ld bc, $000b + call CopyBytes + call $3dfe + ld de, $00b6 + call StartSFX + ld a, $23 + ld hl, $679d + rst FarCall + call WaitSFX + ld hl, $4c9c + call FarBattleTextBox + pop de + inc e + ld b, $0 + jr .asm_3f1b7 + +.asm_3f1ff + push bc + ld b, d + ld de, $d118 + call Function3f39c + ld a, b + pop bc + ld c, a + call $721b + call $722c + call $3dfe + pop af + ld [$ffb5], a + pop af + ld [$ffb6], a + pop bc + ret +; 3f21b + +Function3f21b: ; 3f21b + push bc + call WaitSFX + ld de, $008c + call StartSFX + ld c, $a + call DelayFrames + pop bc + ret +; 3f22c + +Function3f22c: ; 3f22c + ld d, $3 + dec b +.asm_3f22f + inc b + push bc + push de + ld hl, $c58d + call Function3f41c + pop de + ld a, $1 + ld [hBGMapMode], a + ld c, d + call DelayFrames + xor a + ld [hBGMapMode], a + pop bc + ld a, c + cp b + jr z, .asm_3f268 + inc b + push bc + push de + ld hl, $c58d + call Function3f41c + pop de + ld a, $1 + ld [hBGMapMode], a + ld c, d + call DelayFrames + xor a + ld [hBGMapMode], a + dec d + jr nz, .asm_3f263 + ld d, $1 + +.asm_3f263 + pop bc + ld a, c + cp b + jr nz, .asm_3f22f + +.asm_3f268 + ld a, $1 + ld [hBGMapMode], a + ret +; 3f26d + Function3f26d: ; 3f26d @@ -39317,7 +44304,39 @@ Function4e906: ; 4e906 ret ; 4e929 -INCBIN "baserom.gbc", $4e929, $4ea44 - $4e929 +INCBIN "baserom.gbc", $4e929, $4ea0a - $4e929 + + +Function4ea0a: ; 4ea0a + ld a, c + push af + call SpeechTextBox + call MobileTextBorder + pop af + dec a + ld bc, $000c + ld hl, $dc1a + call AddNTimes + ld de, $cd53 + ld bc, $000c + ld a, $5 + call Function306b + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld bc, $cd53 + ld de, $c5b9 + ld a, $47 + ld hl, $40c6 + rst FarCall + pop af + ld [rSVBK], a + ld c, $b4 + call DelayFrames + ret +; 4ea44 + Function4ea44: ; 4ea44 @@ -40201,7 +45220,161 @@ YouHaveNoPKMNString: ; 0x50556 db "You have no ", $e1, $e2, "!@" -INCBIN "baserom.gbc", $50566, $5093a - $50566 +Function50566: ; 50566 + ld a, [CurPartyMon] + ld hl, PartyMon1Nickname + call GetNick + ld a, [PartyMenuActionText] + and $f + ld hl, $457b + call $45c1 + ret +; 5057b + +INCBIN "baserom.gbc", $5057b, $505c1 - $5057b + + +Function505c1: ; 505c1 + ld e, a + ld d, $0 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [Options] + push af + set 4, a + ld [Options], a + call PrintText + pop af + ld [Options], a + ret +; 505da + +INCBIN "baserom.gbc", $505da, $50730 - $505da + + +Function50730: ; 50730 + ld hl, $473c + call $31cd + ld a, $1 + ld [$d0ec], a + ret +; 5073c + +INCBIN "baserom.gbc", $5073c, $50779 - $5073c + + +Function50779: ; 50779 + ld a, [MapGroup] + cp $3 + jr nz, .asm_507a9 + ld a, [MapNumber] + cp $13 + jr nz, .asm_507a9 + ld a, [PlayerDirection] + and $c + cp $4 + jr nz, .asm_507a9 + call GetFacingTileCoord + ld a, d + cp $12 + jr nz, .asm_507a9 + ld a, e + cp $6 + jr nz, .asm_507a9 + ld hl, $47af + call $31cd + ld a, $1 + ld [$d0ec], a + ret + +.asm_507a9 + ld a, $0 + ld [$d0ec], a + ret +; 507af + +INCBIN "baserom.gbc", $507af, $507b4 - $507af + + +Function507b4: ; 507b4 + ld a, [MapGroup] + cp $3 + jr nz, .asm_507db + ld a, [MapNumber] + cp $35 + jr nz, .asm_507db + call GetFacingTileCoord + ld a, d + cp $16 + jr nz, .asm_507db + ld a, e + cp $a + jr nz, .asm_507db + ld hl, $47e1 + call $31cd + ld a, $1 + ld [$d0ec], a + ret + +.asm_507db + ld a, $0 + ld [$d0ec], a + ret +; 507e1 + +INCBIN "baserom.gbc", $507e1, $507e6 - $507e1 + + +Function507e6: ; 507e6 + ld a, $0 + ld [$d0ec], a + call $47fb + ret nc + ld hl, $4821 + call $31cd + ld a, $1 + ld [$d0ec], a + ret +; 507fb + +Function507fb: ; 507fb + ld de, $0030 + ld bc, PartySpecies + ld hl, PartyMon1CurHP + ld a, [PartyCount] + and a + ret z +.asm_50809 + push af + push hl + ld a, [bc] + inc bc + cp $fd + jr z, .asm_50815 + ld a, [hli] + or [hl] + jr z, .asm_5081d + +.asm_50815 + pop hl + add hl, de + pop af + dec a + jr nz, .asm_50809 + xor a + ret + +.asm_5081d + pop hl + pop af + scf + ret +; 50821 + +INCBIN "baserom.gbc", $50821, $5093a - $50821 PrintMoveType: ; 5093a @@ -40516,7 +45689,42 @@ Function50d0a: ; 50d0a ret ; 50d5b -INCBIN "baserom.gbc", $50d5b, $50e47 - $50d5b +INCBIN "baserom.gbc", $50d5b, $50e1b - $50d5b + + +Function50e1b: ; 50e1b + ld a, [TempMonSpecies] + ld [CurSpecies], a + call GetBaseData + ld d, $1 +.asm_50e26 + inc d + ld a, d + cp $65 + jr z, .asm_50e45 + call Function50e47 + push hl + ld hl, $d118 + ld a, [$ffb6] + ld c, a + ld a, [hld] + sub c + ld a, [$ffb5] + ld c, a + ld a, [hld] + sbc c + ld a, [hMultiplicand] + ld c, a + ld a, [hl] + sbc c + pop hl + jr nc, .asm_50e26 + +.asm_50e45 + dec d + ret +; 50e47 + Function50e47: ; 50e47 @@ -40636,7 +45844,69 @@ Function50eed: ; 50eed jp Multiply ; 50efa -INCBIN "baserom.gbc", $50efa, $5125d - $50efa +INCBIN "baserom.gbc", $50efa, $511c5 - $50efa + + +Function511c5: ; 511c5 + push hl + push bc + sub $12 + ld c, a + ld b, $0 + ld hl, $51d4 + add hl, bc + ld a, [hl] + pop bc + pop hl + ret +; 511d4 + +INCBIN "baserom.gbc", $511d4, $5120d - $511d4 + + +Function5120d: ; 5120d + ld a, [TrainerClass] + and a + ret z + cp $44 + ret nc + call WaitBGMap + xor a + ld [hBGMapMode], a + ld hl, $4000 + ld a, [TrainerClass] + dec a + ld bc, $0003 + call AddNTimes + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + push de + ld a, $4a + call GetFarByte + call $51c5 + push af + inc hl + ld a, $4a + call GetFarHalfword + pop af + ld de, $d000 + call FarDecompress + pop hl + ld de, $d000 + ld c, $31 + ld a, [hROMBank] + ld b, a + call Functionf82 + pop af + ld [rSVBK], a + call WaitBGMap + ld a, $1 + ld [hBGMapMode], a + ret +; 5125d + DecompressPredef: ; 5125d @@ -43931,7 +49201,116 @@ Function8d24b: ; 8d24b jp [hl] ; 8d25b -INCBIN "baserom.gbc", $8d25b, $8e814 - $8d25b +INCBIN "baserom.gbc", $8d25b, $8e72a - $8d25b + + +Function8e72a: ; 8e72a + add $10 + and $3f + cp $20 + jr nc, .asm_8e737 + call $6741 + ld a, h + ret + +.asm_8e737 + and $1f + call $6741 + ld a, h + xor $ff + inc a + ret +; 8e741 + +Function8e741: ; 8e741 + ld e, a + ld a, d + ld d, $0 + ld hl, $675d + add hl, de + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $0000 +.asm_8e750 + srl a + jr nc, .asm_8e755 + add hl, de + +.asm_8e755 + sla e + rl d + and a + jr nz, .asm_8e750 + ret +; 8e75d + +INCBIN "baserom.gbc", $8e75d, $8e79d - $8e75d + + +Function8e79d: ; 8e79d + ld a, [hSGB] + ld de, $67f4 + and a + jr z, .asm_8e7a8 + ld de, $6804 + +.asm_8e7a8 + ld hl, VTiles0 + ld bc, $2301 + call Functioneba + ld c, $8 + ld d, $0 +.asm_8e7b5 + push bc + call $67c6 + call DelayFrame + pop bc + inc d + inc d + dec c + jr nz, .asm_8e7b5 + call ClearSprites + ret +; 8e7c6 + +Function8e7c6: ; 8e7c6 + ld hl, Sprites + ld c, $8 +.asm_8e7cb + ld a, c + and a + ret z + dec c + ld a, c + sla a + sla a + sla a + push af + push de + push hl + call $672c + pop hl + pop de + add $68 + ld [hli], a + pop af + push de + push hl + call $672a + pop hl + pop de + add $54 + ld [hli], a + ld a, $0 + ld [hli], a + ld a, $6 + ld [hli], a + jr .asm_8e7cb +; 8e7f4 + +INCBIN "baserom.gbc", $8e7f4, $8e814 - $8e7f4 Function8e814: ; 8e814 @@ -44055,7 +49434,41 @@ GetGFXUnlessMobile: ; 8ea3f jp Functiondc9 ; 8ea4a -INCBIN "baserom.gbc", $8ea4a, $8eab3 - $8ea4a +Function8ea4a: ; 8ea4a + ld hl, $c314 + ld e, $6 + ld a, [$cfa9] + ld d, a +.asm_8ea53 + ld a, [hl] + and a + jr z, .asm_8ea69 + cp d + jr z, .asm_8ea5e + ld a, $0 + jr .asm_8ea60 + +.asm_8ea5e + ld a, $2 + +.asm_8ea60 + push hl + ld c, l + ld b, h + ld hl, $0002 + add hl, bc + ld [hl], a + pop hl + +.asm_8ea69 + ld bc, $0010 + add hl, bc + dec e + jr nz, .asm_8ea53 + ret +; 8ea71 + +INCBIN "baserom.gbc", $8ea71, $8eab3 - $8ea71 ReadMonMenuIcon: ; 8eab3 cp EGG @@ -44624,7 +50037,24 @@ PokegearSpritesGFX: ; 914dd INCBIN "gfx/misc/pokegear_sprites.lz" ; 91508 -INCBIN "baserom.gbc", $91508, $91bb5 - $91508 +INCBIN "baserom.gbc", $91508, $91ae1 - $91508 + + +Function91ae1: ; 91ae1 + ld a, e + and a + jr nz, .asm_91aec + call $5ff2 + call FillJohtoMap + ret + +.asm_91aec + call $5ff2 + call FillKantoMap + ret +; 91af3 + +INCBIN "baserom.gbc", $91af3, $91bb5 - $91af3 TownMapBubble: ; 91bb5 ; Draw the bubble containing the location text in the town map HUD @@ -45064,7 +50494,14 @@ TownMapPlayerIcon: ; 91fa6 ret ; 0x91ff2 -INCBIN "baserom.gbc", $91ff2, $91fff - $91ff2 +Function91ff2: ; 91ff2 + ld hl, $4ba0 + ld de, VTiles2 + ld bc, $3e30 + call Functione73 + ret +; 91fff + JohtoMap: INCBIN "baserom.gbc", $91fff, $92168 - $91fff @@ -48585,7 +54022,80 @@ Functionb8164: ; b8164 ret ; b8172 -INCBIN "baserom.gbc", $b8172, $b8219 - $b8172 +Functionb8172: ; b8172 + call GetMapEventBank + ld [MagikarpLength], a + ld a, [XCoord] + add $5 + ld [$d1ed], a + ld a, [YCoord] + add $4 + ld [$d1ec], a + ld hl, $dc02 + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [$dc01] + and a + jr z, .asm_b81dd +.asm_b8194 + ld [Buffer2], a + push hl + call $41e2 + ld e, a + ld a, [$d1ec] + sub e + jr c, .asm_b81d2 + cp $9 + jr nc, .asm_b81d2 + call $41e2 + ld d, a + ld a, [$d1ed] + sub d + jr c, .asm_b81d2 + cp $a + jr nc, .asm_b81d2 + call $41e2 + cp $7 + jr nz, .asm_b81d2 + ld a, [MagikarpLength] + call GetFarHalfword + ld a, [MagikarpLength] + call GetFarHalfword + ld d, h + ld e, l + ld b, $2 + call BitTable1Func + ld a, c + and a + jr z, .asm_b81df + +.asm_b81d2 + pop hl + ld bc, $0005 + add hl, bc + ld a, [Buffer2] + dec a + jr nz, .asm_b8194 + +.asm_b81dd + xor a + ret + +.asm_b81df + pop hl + scf + ret +; b81e2 + +Functionb81e2: ; b81e2 + ld a, [MagikarpLength] + call GetFarByte + inc hl + ret +; b81ea + +INCBIN "baserom.gbc", $b81ea, $b8219 - $b81ea Functionb8219: ; b8219 ; deals strictly with rockmon encounter @@ -49357,7 +54867,809 @@ Functioncc0c7: ; cc0c7 jp PrintText ; cc0d0 -INCBIN "baserom.gbc", $cc0d0, $cfd9e - $cc0d0 +INCBIN "baserom.gbc", $cc0d0, $cc0d6 - $cc0d0 + + +Functioncc0d6: ; cc0d6 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + call $40e4 + pop af + ld [rSVBK], a + ret +; cc0e4 + +Functioncc0e4: ; cc0e4 + ld c, $6 +.asm_cc0e6 + call $41fb + dec c + jr nz, .asm_cc0e6 + call $48a4 + call $41e2 + call $41fb + 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 $411c + pop af + ld [$ff9e], a + ld a, $1 + ld [hBGMapMode], a + call $41fb + call $41fb + call $41fb + call WaitSFX + ret +; cc11c + +Functioncc11c: ; cc11c + ld a, [FXAnimIDHi] + and a + jr nz, .asm_cc156 + callba Function4ea44 + jr c, .asm_cc141 + call $41a1 + call $4163 + call $48a4 + call $41e2 + xor a + ld [$ffcf], a + ld [$ffd0], a + call $41fb + call $41bb + +.asm_cc141 + ld a, [$cfca] + and a + jr z, .asm_cc15f + ld l, a + ld h, $0 + ld de, $010e + add hl, de + ld a, l + ld [FXAnimIDLo], a + ld a, h + ld [FXAnimIDHi], a + +.asm_cc156 + call WaitSFX + call $4881 + call $4163 + +.asm_cc15f + call $48f6 + ret +; cc163 + +Functioncc163: ; cc163 + call $48d3 +.asm_cc166 + call $425f + call $4b48 + call $496e + call $3b0c + call $41e2 + ld a, [FXAnimIDHi] + or a + jr nz, .asm_cc193 + ld a, [FXAnimIDLo] + cp $cd + jr nz, .asm_cc193 + ld a, $2e + ld b, $5 + ld de, $0004 + ld hl, $d3fa +.asm_cc18c + cp [hl] + jr z, .asm_cc196 + add hl, de + dec b + jr nz, .asm_cc18c + +.asm_cc193 + call $41fb + +.asm_cc196 + ld a, [$d40f] + bit 0, a + jr z, .asm_cc166 + call $423d + ret +; cc1a1 + +Functioncc1a1: ; cc1a1 + call $41fb + call WaitTop + call $4207 + ld a, $1 + ld [hBGMapMode], a + call $41fb + call $41fb + call $41fb + call WaitTop + ret +; cc1bb + +Functioncc1bb: ; cc1bb + call $41fb + 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 $41fb + call $41fb + call $41fb + call WaitTop + ret +; cc1e2 + +Functioncc1e2: ; cc1e2 + ld a, [hCGB] + and a + ret z + ld a, [rBGP] + ld b, a + ld a, [$cfc7] + cp b + call nz, $491a + ld a, [rOBP0] + ld b, a + ld a, [$cfc8] + cp b + call nz, $494b + ret +; cc1fb + +Functioncc1fb: ; cc1fb + ld a, $1 + ld [VBlankOccurred], a +.asm_cc200 + ld a, [VBlankOccurred] + and a + jr nz, .asm_cc200 + ret +; cc207 + +Functioncc207: ; cc207 + ld a, [hBattleTurn] + and a + jr z, .asm_cc216 + ld hl, $c4a1 + ld bc, $040a + call ClearBox + ret + +.asm_cc216 + ld hl, $c535 + ld bc, $050b + call ClearBox + ret +; cc220 + +INCBIN "baserom.gbc", $cc220, $cc23d - $cc220 + + +Functioncc23d: ; cc23d + ld a, [$d40f] + bit 3, a + jr z, .asm_cc254 + ld hl, $c403 + ld c, $28 +.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, $a0 + xor a +.asm_cc25a + ld [hli], a + dec c + jr nz, .asm_cc25a + ret +; cc25f + +Functioncc25f: ; cc25f + call $4267 + ret nc + call $4275 + 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 +.asm_cc275 + call $3af0 + cp $ff + jr nz, .asm_cc286 + 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 $4293 + jr .asm_cc275 +; cc293 + +Functioncc293: ; cc293 + ld a, [$d417] + sub $d0 + ld e, a + ld d, $0 + ld hl, $42a4 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; cc2a4 + +INCBIN "baserom.gbc", $cc2a4, $cc881 - $cc2a4 + + +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 $a + ld de, $00ac + jr z, .asm_cc8a0 + ld de, $00ad + jr nc, .asm_cc8a0 + ld de, $00ab + +.asm_cc8a0 + call StartSFX + ret +; cc8a4 + +Functioncc8a4: ; 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, $d100 + 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 $3ae1 + call $48a4 + call $41fb + 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 [$ffcf], a + ld [$ffd0], a + call $41fb + 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, $d040 + 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 $4fbe + call $4a09 + 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 + +INCBIN "baserom.gbc", $cc9a1, $cc9bd - $cc9a1 + + +Functioncc9bd: ; cc9bd + ld hl, $0000 + add hl, bc + ld [hl], $0 + ret +; cc9c4 + +INCBIN "baserom.gbc", $cc9c4, $cca09 - $cc9c4 + + +Functioncca09: ; cca09 + call $4aaa + call $67d1 + cp $fd + jp z, $4aa5 + cp $fc + jp z, $4aa2 + push af + ld hl, $d419 + ld a, [$d420] + xor [hl] + and $e0 + ld [hl], a + pop af + push bc + call $683c + 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 + + call $49bd + +.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 + +INCBIN "baserom.gbc", $ccb31, $ccb48 - $ccb31 + + +Functionccb48: ; ccb48 + ld hl, $4000 + ld a, $32 + rst FarCall + ret +; ccb4f + +INCBIN "baserom.gbc", $ccb4f, $ccfbe - $ccb4f + + +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 + +INCBIN "baserom.gbc", $ccfce, $ce7d1 - $ccfce + + +Functionce7d1: ; ce7d1 +.asm_ce7d1 + ld hl, $000c + add hl, bc + ld a, [hl] + and a + jr z, .asm_ce7e1 + dec [hl] + call $6823 + ld a, [hli] + push af + jr .asm_ce7fd + +.asm_ce7e1 + ld hl, $000d + add hl, bc + inc [hl] + call $6823 + 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 + +INCBIN "baserom.gbc", $ce846, $cfd9e - $ce846 ; Songs iii @@ -50187,7 +56499,32 @@ Functionfb4f2: ; fb4f2 ret ; fb53e -INCBIN "baserom.gbc", $fb53e, $fba18 - $fb53e +Functionfb53e: ; fb53e + call $74be + ld de, $4ac0 + ld hl, $96c0 + ld bc, $3e04 + call Functionddc + ld de, $4ae0 + ld hl, $9780 + ld bc, $3e01 + call Functionddc + ld de, $4af8 + ld hl, $9760 + ld bc, $3e02 + call Functionddc + ld de, $4b10 + ld hl, $9550 + ld bc, $3e08 + call Functiondc9 + ld de, $49b0 + ld hl, $9310 + ld bc, $3e11 + call Functiondc9 + ret +; fb57e + +INCBIN "baserom.gbc", $fb57e, $fba18 - $fb57e Functionfba18: ; fba18 @@ -52828,7 +59165,220 @@ Function100ae7: ; 100ae7 ret ; 100b0a -INCBIN "baserom.gbc", $100b0a, $100cb5 - $100b0a +INCBIN "baserom.gbc", $100b0a, $100b12 - $100b0a + + +Function100b12: ; 100b12 + call Function100dd8 + ret c + ld hl, $4f2c + ld a, $9 + ld de, Function1d35 + call $2d54 + ld a, $9 + ld [$cf94], a + ld a, [$d0d2] + ld [$cf88], a + call $4e72 + call $4b45 + callba Function8e85 + call $4ed4 + ld a, [$cf88] + ld [$d0d2], a + call Function1c07 + ret +; 100b45 + +Function100b45: ; 100b45 + call $4b7a +.asm_100b48 + call Function100dd2 + callba Function241ba + push bc + callba Function10402d + call $4e2d + pop bc + jr c, .asm_100b6b + ld a, [$cfa8] + and c + jr z, .asm_100b48 + ld a, $9 + ld hl, $4098 + rst FarCall + ret + +.asm_100b6b + ld a, [$cfa4] + ld c, a + ld a, [$cfa3] + call SimpleMultiply + ld [$cf88], a + and a + ret +; 100b7a + +Function100b7a: ; 100b7a + ld hl, Function1c66 + ld a, [$cf94] + rst FarCall + callba Function24085 + callba MobileTextBorder + call Function1ad2 + call Function321c + ld a, $9 + ld hl, $411a + rst FarCall + ld hl, $cfa5 + set 7, [hl] + ret +; 100b9f + +Function100b9f: ; 100b9f + xor a + ld [$d0e3], a + ld a, $f + ld hl, $6786 + rst FarCall + ret z + call Function100dd8 + jp c, Function2ec8 + call $4e72 + call $4bc2 + push af + callba Function8e85 + call $4ed4 + pop af + ret +; 100bc2 + +Function100bc2: ; 100bc2 + xor a + ld [hBGMapMode], a + call $4c74 + call $4c98 + ld a, $f + ld hl, $66c8 + rst FarCall +.asm_100bd1 + call Function100dd2 + callba Function241ba + push bc + callba Function10402d + call $4e2d + pop bc + jr c, .asm_100c25 + ld a, [$cfa8] + and c + bit 6, a + jp nz, $4bff + bit 7, a + jp nz, $4c10 + bit 0, a + jr nz, .asm_100c30 + bit 1, a + jr nz, .asm_100c25 + jr .asm_100bd1 + + ld a, [$cfa9] + and a + jp nz, $4bcb + ld a, [$d0eb] + inc a + ld [$cfa9], a + jp $4bcb + + ld a, [$cfa9] + ld b, a + ld a, [$d0eb] + inc a + inc a + cp b + jp nz, $4bcb + ld a, $1 + ld [$cfa9], a + jp $4bcb + +.asm_100c25 + ld a, [$cfa9] + dec a + ld [CurMoveNum], a + ld a, $1 + and a + ret + +.asm_100c30 + ld a, [$cfa9] + dec a + ld [CurMoveNum], a + ld a, [$cfa9] + dec a + ld c, a + ld b, $0 + ld hl, BattleMonPPMove1 + add hl, bc + ld a, [hl] + and $3f + jr z, .asm_100c68 + ld a, [PlayerDisableCount] + swap a + and $f + dec a + cp c + jr z, .asm_100c63 + ld a, [$cfa9] + dec a + ld c, a + ld b, $0 + ld hl, BattleMonMove1 + add hl, bc + ld a, [hl] + ld [CurPlayerMove], a + xor a + ret + +.asm_100c63 + ld hl, $4c5b + jr .asm_100c6b + +.asm_100c68 + ld hl, $4c39 + +.asm_100c6b + call FarBattleTextBox + call Function30b4 + jp $4bc2 +; 100c74 + +Function100c74: ; 100c74 + ld hl, $c540 + ld b, $8 + ld c, $8 + call TextBox + ld hl, BattleMonMove1 + ld de, $d25e + ld bc, $0004 + call CopyBytes + ld a, $28 + ld [MagikarpLength], a + ld hl, $c56a + ld a, $20 + call Predef + ret +; 100c98 + +Function100c98: ; 100c98 + ld de, $4cad + call Function1bb1 + ld a, [$d0eb] + inc a + ld [$cfa3], a + ld a, [CurMoveNum] + inc a + ld [$cfa9], a + ret +; 100cad + +INCBIN "baserom.gbc", $100cad, $100cb5 - $100cad Function100cb5: ; 100cb5 @@ -52888,7 +59438,64 @@ Function100cb5: ; 100cb5 ret ; 100d22 -INCBIN "baserom.gbc", $100d22, $100da5 - $100d22 +Function100d22: ; 100d22 + call Function100dd8 + ret c + call $4d67 + ld hl, $cfa5 + set 7, [hl] + res 6, [hl] +.asm_100d30 + call Function100dd2 + callba Function241ba + push bc + callba Function8cf69 + callba Function10402d + call Function100dfd + pop bc + jr c, .asm_100d54 + ld a, [$cfa8] + and c + jr nz, .asm_100d56 + jr .asm_100d30 + +.asm_100d54 + scf + ret + +.asm_100d56 + push af + ld de, $0008 + call StartSFX + pop af + bit 1, a + jr z, .asm_100d65 + ret z + scf + ret + +.asm_100d65 + and a + ret +; 100d67 + +Function100d67: ; 100d67 + ld hl, $4d88 + call Function1d3c + xor a + ld [hBGMapMode], a + call Function1cbb + call Function1ad2 + call Function1c89 + call WaitBGMap + call Function1c66 + call Function1c10 + ld hl, $cfa5 + set 6, [hl] + ret +; 100d88 + +INCBIN "baserom.gbc", $100d88, $100da5 - $100d88 Function100da5: ; 100da5 @@ -52899,7 +59506,20 @@ Function100da5: ; 100da5 ret ; 100db0 -INCBIN "baserom.gbc", $100db0, $100dc0 - $100db0 +Function100db0: ; 100db0 + ld hl, $cd2a + bit 3, [hl] + jr nz, .asm_100dbe + ld hl, $cd2a + set 3, [hl] + scf + ret + +.asm_100dbe + xor a + ret +; 100dc0 + Function100dc0: ; 100dc0 @@ -52980,7 +59600,112 @@ Function100dfd: ; 100dfd ret ; 100e2d -INCBIN "baserom.gbc", $100e2d, $10389d - $100e2d +Function100e2d: ; 100e2d + ld a, [OverworldDelay] + ld c, a + ld a, $1e + sub c + ld c, a + ld b, $3 + push bc + callba Function10062d + pop bc + jr c, .asm_100e61 + ld b, $1 + call Function10079c + jr c, .asm_100e61 + call Function1009f3 + jr c, .asm_100e61 + callba Function10032e + ld a, [$cd2b] + and a + jr nz, .asm_100e61 + call $4e63 + call $4e84 + xor a + ret + +.asm_100e61 + scf + ret +; 100e63 + +Function100e63: ; 100e63 + ld a, e + cp $2 + ret nz + call $4db0 + ret nc + ld de, $0027 + call StartSFX + ret +; 100e72 + +Function100e72: ; 100e72 + xor a + ld hl, $cd29 + bit 0, [hl] + jr z, .asm_100e7c + ld a, $a + +.asm_100e7c + ld [$cd67], a + xor a + ld [$cd68], a + ret +; 100e84 + +Function100e84: ; 100e84 + ld a, [$cd67] + ld hl, $4e8c + rst JumpTable + ret +; 100e8c + +INCBIN "baserom.gbc", $100e8c, $100eae - $100e8c + + +Function100eae: ; 100eae + scf + call $4eca + jr .asm_100eb8 + + and a + call $4eca + +.asm_100eb8 + ld hl, $cd68 + inc [hl] + ld a, [hl] + cp $2 + ret c + ld [hl], $0 + jr .asm_100ec5 + + ret + +.asm_100ec5 + ld hl, $cd67 + inc [hl] + ret +; 100eca + +Function100eca: ; 100eca + ld a, $2 + ld hl, $4e8b + rst FarCall + call $4ed4 + ret +; 100ed4 + +Function100ed4: ; 100ed4 + callba Function96a4 + ld a, $1 + ld [hCGBPalUpdate], a + ret +; 100edf + +INCBIN "baserom.gbc", $100edf, $10389d - $100edf SECTION "bank41",DATA,BANK[$41] @@ -53804,7 +60529,14 @@ UpdateUsedMoves: ; 105ed0 HallOfFame2: ; 0x105ef6 ret -INCBIN "baserom.gbc", $105ef7, $106078 - $105ef7 +INCBIN "baserom.gbc", $105ef7, $106008 - $105ef7 + + +Function106008: ; 106008 + ret +; 106009 + +INCBIN "baserom.gbc", $106009, $106078 - $106009 HallOfFame1: ; 0x106078 ret @@ -54901,7 +61633,236 @@ INCBIN "baserom.gbc", $118d35, $11bc9e - $118d35 SECTION "bank47",DATA,BANK[$47] -INCBIN "baserom.gbc", $11c000, $11f686 - $11c000 +Function11c000: ; 11c000 + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + ld hl, $d105 + ld a, [hl] + dec a + ld e, a + ld d, $0 + ld hl, $72f0 + add hl, de + ld a, [hl] + and a + jr nz, .asm_11c026 + ld a, [hRandomAdd] + and $1f + cp $19 + jr c, .asm_11c021 + sub $19 + +.asm_11c021 + ld hl, $7332 + jr .asm_11c033 + +.asm_11c026 + ld a, [hRandomAdd] + and $f + cp $f + jr c, .asm_11c030 + sub $f + +.asm_11c030 + ld hl, $73ce + +.asm_11c033 + ld b, $0 + dec c + jr nz, .asm_11c03d + ld [$d200], a + jr .asm_11c040 + +.asm_11c03d + ld a, [$d200] + +.asm_11c040 + push af + add hl, bc + add hl, bc + ld a, [hli] + ld c, a + ld a, [hl] + ld h, a + ld l, c + pop af + ld c, a + ld b, $0 + add hl, bc + add hl, bc + ld a, [hli] + ld c, a + ld a, [hl] + ld l, c + ld h, a + ld bc, $c5b9 + pop af + ld [rSVBK], a + call Function13e5 + ret +; 11c05d + +INCBIN "baserom.gbc", $11c05d, $11c0c6 - $11c05d + + +Function11c0c6: ; 11c0c6 + ld a, [$cf63] + ld l, a + ld a, [$cf64] + ld h, a + push hl + ld hl, $c618 + ld a, $0 + ld [hli], a + push de + xor a + ld [$cf63], a + ld a, $12 + ld [$cf64], a + ld a, $6 +.asm_11c0e1 + push af + ld a, [bc] + ld e, a + inc bc + ld a, [bc] + ld d, a + inc bc + or e + jr z, .asm_11c133 + push hl + push bc + call $4156 + call $414a + ld e, c + pop bc + pop hl + ld a, e + or a + jr z, .asm_11c133 +.asm_11c0fa + ld a, [$cf64] + cp $12 + jr z, .asm_11c102 + inc e + +.asm_11c102 + cp e + jr nc, .asm_11c11c + ld a, [$cf63] + inc a + ld [$cf63], a + ld [hl], $4e + rra + jr c, .asm_11c113 + ld [hl], $55 + +.asm_11c113 + inc hl + ld a, $12 + ld [$cf64], a + dec e + jr .asm_11c0fa + +.asm_11c11c + cp $12 + jr z, .asm_11c123 + ld [hl], $7f + inc hl + +.asm_11c123 + sub e + ld [$cf64], a + ld de, EnemyMoveAnimation +.asm_11c12a + ld a, [de] + cp $50 + jr z, .asm_11c133 + inc de + ld [hli], a + jr .asm_11c12a + +.asm_11c133 + pop af + dec a + jr nz, .asm_11c0e1 + ld [hl], $57 + pop bc + ld hl, $c618 + call Function13e5 + pop hl + ld a, l + ld [$cf63], a + ld a, h + ld [$cf64], a + ret +; 11c14a + +Function11c14a: ; 11c14a + ld c, $0 + ld hl, EnemyMoveAnimation +.asm_11c14f + ld a, [hli] + cp $50 + ret z + inc c + jr .asm_11c14f +; 11c156 + +Function11c156: ; 11c156 + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld a, $50 + ld hl, EnemyMoveAnimation + ld bc, $000b + call ByteFill + ld a, d + and a + jr z, .asm_11c19c + ld hl, $5aac + dec d + sla d + ld c, d + ld b, $0 + add hl, bc + ld a, [hli] + ld c, a + ld a, [hl] + ld b, a + push bc + pop hl + ld c, e + ld b, $0 + sla c + rl b + sla c + rl b + sla c + rl b + add hl, bc + ld bc, $0005 +.asm_11c18f + ld de, EnemyMoveAnimation + call CopyBytes + ld de, EnemyMoveAnimation + pop af + ld [rSVBK], a + ret + +.asm_11c19c + ld a, e + ld [$d265], a + call GetPokemonName + ld hl, StringBuffer1 + ld bc, $000a + jr .asm_11c18f +; 11c1ab + +INCBIN "baserom.gbc", $11c1ab, $11f686 - $11c1ab SECTION "bank48",DATA,BANK[$48] From ed200a5a16d34e8ef7c2d210cc4e4d2bebb64745 Mon Sep 17 00:00:00 2001 From: yenatch Date: Mon, 29 Jul 2013 13:58:20 -0400 Subject: [PATCH 25/84] fill out bank f more --- battle/effect_commands.asm | 6 +- main.asm | 793 +++++++++++++++++++++++++++++++++---- 2 files changed, 728 insertions(+), 71 deletions(-) diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index 4372dacba..f52dfa483 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -6850,7 +6850,7 @@ Function0x365d7: ; 365d7 ld a, $5 call Function0x3661d - ld hl, $6d45 + ld hl, BadgeStatBoosts call CallBankF call SwitchTurn @@ -8385,7 +8385,7 @@ BattleCommand98: ; 36f25 ; doubleflyingdamage ld a, BATTLE_VARS_SUBSTATUS3_OPP call CleanGetBattleVarPair - bit 6, a ; flying + bit SUBSTATUS_FLYING, a ret z jr DoubleDamage ; 36f2f @@ -8395,7 +8395,7 @@ BattleCommand99: ; 36f2f ; doubleundergrounddamage ld a, BATTLE_VARS_SUBSTATUS3_OPP call CleanGetBattleVarPair - bit 5, a ; underground + bit SUBSTATUS_UNDERGROUND, a ret z ; fallthrough diff --git a/main.asm b/main.asm index abfe539c3..ac7452ee0 100644 --- a/main.asm +++ b/main.asm @@ -37345,8 +37345,48 @@ Function3e308: ; 3e308 ret ; 3e358 -INCBIN "baserom.gbc", $3e358, $3e3ad - $3e358 +Function3e358: ; 3e358 + ld a, [CurBattleMon] + ld d, a + ld a, [CurPartyMon] + cp d + jr nz, .asm_3e36b + ld hl, $4c0d + call FarBattleTextBox + jp $6299 + +.asm_3e36b + ld a, [$c730] + and a + jr nz, .asm_3e378 + ld a, [EnemySubStatus5] + bit 7, a + jr z, .asm_3e381 + +.asm_3e378 + ld hl, $4c22 + call FarBattleTextBox + jp $6299 + +.asm_3e381 + call Function3d887 + jp z, $6299 + ld a, [CurBattleMon] + ld [$c71a], a + ld a, $2 + ld [$d0ec], a + call ClearPalettes + call DelayFrame + call ClearSprites + call Function3eda6 + call Function1c17 + call ClearSGB + call Function32f9 + ld a, [CurPartyMon] + ld [CurBattleMon], a + ; fallthrough +; 3e3ad Function3e3ad: ; 3e3ad ld a, $1 @@ -37363,6 +37403,8 @@ Function3e3ad: ; 3e3ad ld a, [InLinkBattle] and a jr nz, .asm_3e3cf + +.asm_3e3ca call $640b and a ret @@ -37370,28 +37412,28 @@ Function3e3ad: ; 3e3ad .asm_3e3cf ld a, [$d430] cp $e - jp z, $63ca + jp z, .asm_3e3ca cp $d - jp z, $63ca + jp z, .asm_3e3ca cp $4 - jp c, $63ca + jp c, .asm_3e3ca cp $f jr nz, .asm_3e3e9 - call $40e5 + call Function3c0e5 ret .asm_3e3e9 ld a, [$ffcb] cp $1 jr z, .asm_3e3f7 - call $640b - call $63ff + call Function3e40b + call Function3e3ff and a ret .asm_3e3f7 - call $63ff - call $640b + call Function3e3ff + call Function3e40b and a ret ; 3e3ff @@ -37437,7 +37479,26 @@ Function3e40b: ; 3e40b ret ; 3e459 -INCBIN "baserom.gbc", $3e459, $3e489 - $3e459 +Function3e459: ; 3e459 + ld c, $32 + call DelayFrames + ld hl, $c535 + ld bc, $050b + call ClearBox + ld a, [CurPartyMon] + ld [CurBattleMon], a + call $5581 + call Function3da0d + xor a + ld [$d265], a + call $6cab + call Function3db5f + call Function3edd1 + call Function309d + call SetPlayerTurn + jp Function3dc23 +; 3e489 + Function3e489: ; 3e489 @@ -37578,12 +37639,12 @@ Function3e4bc: ; 3e4bc dec a jr nz, .asm_3e5a3 ld hl, $c5c3 - ld de, $661c + ld de, .string_3e61c call PlaceString jr .asm_3e5a3 .asm_3e58e - call $66c8 + call MoveInfoBox ld a, [$d0e3] and a jr z, .asm_3e5a3 @@ -37670,7 +37731,9 @@ Function3e4bc: ; 3e4bc jp $64bc ; 3e61c -INCBIN "baserom.gbc", $3e61c, $3e61d - $3e61c +.string_3e61c ; 3e61c + db "@" +; 3e61d Function3e61d: ; 3e61d @@ -37779,7 +37842,7 @@ Function3e643: ; 3e643 jp $64bc ; 3e6c8 -Function3e6c8: ; 3e6c8 +MoveInfoBox: ; 3e6c8 xor a ld [hBGMapMode], a ld hl, $c540 @@ -37797,7 +37860,7 @@ Function3e6c8: ; 3e6c8 cp b jr nz, .asm_3e6f4 ld hl, $c569 - ld de, $674f + ld de, .Disabled call PlaceString jr .asm_3e74e @@ -37828,7 +37891,7 @@ Function3e6c8: ; 3e6c8 ld [StringBuffer1], a call $675f ld hl, $c555 - ld de, $6759 + ld de, .Type call PlaceString ld hl, $c583 ld [hl], $f3 @@ -37843,7 +37906,11 @@ Function3e6c8: ; 3e6c8 ret ; 3e74f -INCBIN "baserom.gbc", $3e74f, $3e75f - $3e74f +.Disabled + db "Disabled!@" +.Type + db "TYPE/@" +; 3e75f Function3e75f: ; 3e75f @@ -38708,8 +38775,17 @@ CheckUnownLetter: ; 3eb75 ; 3ebc7 -INCBIN "baserom.gbc", $3ebc7, $3ebd8 - $3ebc7 - +Function3ebc7: ; 3ebc7 + push bc + ld a, [BattleMonLevel] + ld b, a + ld a, [EnemyMonLevel] + ld [BattleMonLevel], a + ld a, b + ld [EnemyMonLevel], a + pop bc + ret +; 3ebd8 Function3ebd8: ; 3ebd8 xor a @@ -38770,11 +38846,17 @@ Function3ec1a: ; 3ec1a ret ; 3ec2c -INCBIN "baserom.gbc", $3ec2c, $3ec30 - $3ec2c +Function3ec2c: ; 3ec2c + ld a, 1 + jr Function3ec31 +; 3ec30 Function3ec30: ; 3ec30 xor a +; 3ec31 + +Function3ec31: ; 3ec31 ld [hBattleTurn], a call $6c39 jp $6c76 @@ -38869,12 +38951,12 @@ Function3ec76: ; 3ec76 ; 3ecab Function3ecab: ; 3ecab - ld c, $0 + ld c, 0 .asm_3ecad - call $6cb7 + call Function3ecb7 inc c ld a, c - cp $5 + cp 5 jr nz, .asm_3ecad ret ; 3ecb7 @@ -38898,29 +38980,27 @@ Function3ecb7: ; 3ecb7 ld c, a jr nc, .asm_3ecd7 inc b - .asm_3ecd7 ld a, [bc] pop bc ld b, a push bc sla c - ld b, $0 + ld b, 0 add hl, bc ld a, c add e ld e, a jr nc, .asm_3ece6 inc d - .asm_3ece6 pop bc push hl - ld hl, $6d2b + ld hl, .StatLevelMultipliers dec b sla b ld c, b - ld b, $0 + ld b, 0 add hl, bc xor a ld [hMultiplicand], a @@ -38937,15 +39017,20 @@ Function3ecb7: ; 3ecb7 ld b, $4 call Divide pop hl + +; Cap at 999. ld a, [$ffb6] - sub $e7 + sub 999 % $100 ld a, [$ffb5] - sbc $3 - jp c, $6d1e - ld a, $3 + sbc 999 / $100 + jp c, .asm_3ed1e + + ld a, 999 / $100 ld [$ffb5], a - ld a, $e7 + ld a, 999 % $100 ld [$ffb6], a + +.asm_3ed1e ld a, [$ffb5] ld [hli], a ld b, a @@ -38960,10 +39045,27 @@ Function3ecb7: ; 3ecb7 ret ; 3ed2b -INCBIN "baserom.gbc", $3ed2b, $3ed4a - $3ed2b +.StatLevelMultipliers +; / + db 25, 100 ; 25% + db 28, 100 ; 28% + db 33, 100 ; 33% + db 40, 100 ; 40% + db 50, 100 ; 50% + db 66, 100 ; 66% + + db 1, 1 ; 100% + + db 15, 10 ; 150% + db 2, 1 ; 200% + db 25, 10 ; 250% + db 3, 1 ; 300% + db 35, 10 ; 350% + db 4, 1 ; 400% +; 3ed45 -BadgeStatBoosts: ; 3ed4a +BadgeStatBoosts: ; 3ed45 ; Raise BattleMon stats depending on which badges have been obtained. ; Every other badge boosts a stat, starting from the first. @@ -38976,6 +39078,10 @@ BadgeStatBoosts: ; 3ed4a ; The boosted stats are in order, except PlainBadge and MineralBadge's boosts are swapped. + ld a, [InLinkBattle] + and a + ret nz + ld a, [$cfc0] and a ret nz @@ -39065,15 +39171,29 @@ Function3eda6: ; 3eda6 ret ; 3edad -INCBIN "baserom.gbc", $3edad, $3edd1 - $3edad + +Function3edad: ; 3edad + ld de, $4ac0 + ld hl, $96c0 + ld bc, $3e04 + call Functionf9d + ld de, $4ae0 + ld hl, $9730 + ld bc, $3e06 + call Functionf9d + ld de, $4b10 + ld hl, $9550 + ld bc, $3e08 + jp Functionf82 +; 3edd1 Function3edd1: ; 3edd1 - ld hl, $6dd7 + ld hl, .empty jp BattleTextBox -; 3edd7 - -INCBIN "baserom.gbc", $3edd7, $3edd8 - $3edd7 +.empty + db "@" +; 3edd8 BattleRNG: ; 3edd8 @@ -39085,53 +39205,51 @@ BattleRNG: ; 3edd8 and a jp z, RNG -; The PRNG operates in streams of 8 values -; The reasons for this are unknown +; The PRNG operates in streams of 10 values. ; Which value are we trying to pull? push hl push bc ld a, [LinkBattleRNCount] ld c, a - ld b, $0 + ld b, 0 ld hl, LinkBattleRNs add hl, bc inc a ld [LinkBattleRNCount], a ; If we haven't hit the end yet, we're good - cp 9 ; Exclude last value. See the closing comment + cp 10 - 1 ; Exclude last value. See the closing comment ld a, [hl] pop bc pop hl ret c - - + ; If we have, we have to generate new pseudorandom data ; Instead of having multiple PRNGs, ten seeds are used push hl push bc push af - + ; Reset count to 0 xor a ld [LinkBattleRNCount], a ld hl, LinkBattleRNs ld b, 10 ; number of seeds - + ; Generate next number in the sequence for each seed ; The algorithm takes the form *5 + 1 % 256 .loop ; get last # ld a, [hl] - + ; a * 5 + 1 ld c, a add a add a add c inc a - + ; update # ld [hli], a dec b @@ -39139,15 +39257,21 @@ BattleRNG: ; 3edd8 ; This has the side effect of pulling the last value first, ; then wrapping around. As a result, when we check to see if -; we've reached the end, we have to take this into account. +; we've reached the end, we check the one before it. + pop af pop bc pop hl ret ; 3ee0f -INCBIN "baserom.gbc", $3ee0f, $3ee17 - $3ee0f +Function3ee0f: ; 3ee0f + ld a, BATTLE_VARS_SUBSTATUS3 + call CleanGetBattleVarPair + and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND + ret nz +; 3ee17 Function3ee17: ; 3ee17 ld a, e @@ -39175,10 +39299,378 @@ Function3ee27: ; 3ee27 ret ; 3ee3b -INCBIN "baserom.gbc", $3ee3b, $3f0b9 - $3ee3b +Function3ee3b: ; 3ee3b + ld a, [InLinkBattle] + and a + ret nz + ld a, [$cfc0] + bit 0, a + ret nz + call $70d4 + xor a + ld [CurPartyMon], a + ld bc, PartyMon1Species -Function3f0b9: ; 3f0b9 +.asm_3ee50 + ld hl, $0022 + add hl, bc + ld a, [hli] + or [hl] + jp z, .asm_3f0b9 + push bc + ld hl, $c664 + ld a, [CurPartyMon] + ld c, a + ld b, $2 + ld d, $0 + ld a, $3 + call Predef + ld a, c + and a + pop bc + jp z, .asm_3f0b9 + ld hl, $000c + add hl, bc + ld d, h + ld e, l + ld hl, EnemyMonType2 + push bc + ld c, $5 +.asm_3ee7c + inc hl + ld a, [de] + add [hl] + ld [de], a + jr nc, .asm_3ee89 + dec de + ld a, [de] + inc a + jr z, .asm_3eea4 + ld [de], a + inc de + +.asm_3ee89 + push hl + push bc + ld a, $1c + call GetPartyParamLocation + ld a, [hl] + and a + pop bc + pop hl + jr z, .asm_3eea9 + ld a, [de] + add [hl] + ld [de], a + jr nc, .asm_3eea9 + dec de + ld a, [de] + inc a + jr z, .asm_3eea4 + ld [de], a + inc de + jr .asm_3eea9 + +.asm_3eea4 + ld a, $ff + ld [de], a + inc de + ld [de], a + +.asm_3eea9 + inc de + inc de + dec c + jr nz, .asm_3ee7c + xor a + ld [hMultiplicand], a + ld [$ffb5], a + ld a, [EnemyMonBaseExp] + ld [$ffb6], a + ld a, [EnemyMonLevel] + ld [hMultiplier], a + call Multiply + ld a, $7 + ld [hMultiplier], a + ld b, $4 + call Divide + pop bc + ld hl, $0006 + add hl, bc + ld a, [PlayerID] + cp [hl] + jr nz, .asm_3eedd + inc hl + ld a, [$d47c] + cp [hl] + ld a, $0 + jr z, .asm_3eee2 + +.asm_3eedd + call $7106 + ld a, $1 + +.asm_3eee2 + ld [$d088], a + ld a, [IsInBattle] + dec a + call nz, $7106 + push bc + ld a, $1 + call GetPartyParamLocation + ld a, [hl] + cp $7e + call z, $7106 + ld a, [$ffb6] + ld [$d087], a + ld a, [$ffb5] + ld [StringBuffer2], a + ld a, [CurPartyMon] + ld hl, PartyMon1Nickname + call GetNick + ld hl, UnknownText_0x3f11b + call BattleTextBox + ld a, [$d087] + ld [$ffb6], a + ld a, [StringBuffer2] + ld [$ffb5], a + pop bc + call $7136 + push bc + call Function309d + pop bc + ld hl, $000a + add hl, bc + ld d, [hl] + ld a, [$ffb6] + add d + ld [hld], a + ld d, [hl] + ld a, [$ffb5] + adc d + ld [hl], a + jr nc, .asm_3ef3d + dec hl + inc [hl] + jr nz, .asm_3ef3d + ld a, $ff + ld [hli], a + ld [hli], a + ld [hl], a + +.asm_3ef3d + ld a, [CurPartyMon] + ld e, a + ld d, $0 + ld hl, PartySpecies + add hl, de + ld a, [hl] + ld [CurSpecies], a + call GetBaseData + push bc + ld d, $64 + ld hl, $4e47 + ld a, $14 + rst FarCall + pop bc + ld hl, $000a + add hl, bc + push bc + ld a, [hMultiplicand] + ld b, a + ld a, [$ffb5] + ld c, a + ld a, [$ffb6] + ld d, a + ld a, [hld] + sub d + ld a, [hld] + sbc c + ld a, [hl] + sbc b + jr c, .asm_3ef74 + ld a, b + ld [hli], a + ld a, c + ld [hli], a + ld a, d + ld [hld], a + +.asm_3ef74 + xor a + ld [MonType], a + ld a, $1f + call Predef + ld hl, $4e1b + ld a, $14 + rst FarCall + pop bc + ld hl, $001f + add hl, bc + ld a, [hl] + cp $64 + jp nc, .asm_3f0b9 + cp d + jp z, .asm_3f0b9 + ld [$c719], a + ld a, [CurPartyLevel] + push af + ld a, d + ld [CurPartyLevel], a + ld [hl], a + ld hl, $0000 + add hl, bc + ld a, [hl] + ld [CurSpecies], a + ld [$d265], a + call GetBaseData + ld hl, $0025 + add hl, bc + ld a, [hld] + ld e, a + ld d, [hl] + push de + ld hl, $0024 + add hl, bc + ld d, h + ld e, l + ld hl, $000a + add hl, bc + push bc + ld b, $1 + ld a, $c + call Predef + pop bc + pop de + ld hl, $0025 + add hl, bc + ld a, [hld] + sub e + ld e, a + ld a, [hl] + sbc d + ld d, a + dec hl + ld a, [hl] + add e + ld [hld], a + ld a, [hl] + adc d + ld [hl], a + ld a, [CurBattleMon] + ld d, a + ld a, [CurPartyMon] + cp d + jr nz, .asm_3f035 + ld de, BattleMonHP + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + ld de, BattleMonMaxHP + push bc + ld bc, $000c + call CopyBytes + pop bc + ld hl, $001f + add hl, bc + ld a, [hl] + ld [BattleMonLevel], a + ld a, [PlayerSubStatus5] + bit 3, a + jr nz, .asm_3f012 + ld hl, $0026 + add hl, bc + ld de, PlayerStats + ld bc, $000a + call CopyBytes + +.asm_3f012 + xor a + ld [$d265], a + call $6cab + ld hl, $6c2c + ld a, $f + rst FarCall + ld hl, $6d45 + ld a, $f + rst FarCall + ld hl, Function3df48 + ld a, $f + rst FarCall + call Function3edd1 + call Function309d + ld a, $1 + ld [hBGMapMode], a + +.asm_3f035 + ld a, $9 + ld hl, $709e + rst FarCall + ld a, [CurBattleMon] + ld b, a + ld a, [CurPartyMon] + cp b + jr z, .asm_3f057 + ld de, $00b6 + call StartSFX + call WaitSFX + ld hl, $4c9c + call FarBattleTextBox + call Function309d + +.asm_3f057 + xor a + ld [MonType], a + ld a, $1f + call Predef + ld hl, $c4a9 + ld b, $a + ld c, $9 + call TextBox + ld hl, $c4bf + ld bc, $0004 + ld a, $28 + call Predef + ld c, $1e + call DelayFrames + call Functiona80 + call Function30b4 + xor a + ld [MonType], a + ld a, [CurSpecies] + ld [$d265], a + ld a, [CurPartyLevel] + push af + ld c, a + ld a, [$c719] + ld b, a + +.asm_3f093 + inc b + ld a, b + ld [CurPartyLevel], a + push bc + ld a, $1a + call Predef + pop bc + ld a, b + cp c + jr nz, .asm_3f093 + pop af + ld [CurPartyLevel], a + ld hl, EvolvableFlags + ld a, [CurPartyMon] + ld c, a + ld b, $1 + ld a, $3 + call Predef + pop af + ld [CurPartyLevel], a + +.asm_3f0b9 ld a, [PartyCount] ld b, a ld a, [CurPartyMon] @@ -39190,7 +39682,7 @@ Function3f0b9: ; 3f0b9 call GetPartyParamLocation ld b, h ld c, l - jp $6e50 + jp .asm_3ee50 .asm_3f0d1 jp Function3d57a @@ -39246,18 +39738,41 @@ Function3f106: ; 3f106 ret ; 3f11b -INCBIN "baserom.gbc", $3f11b, $3f136 - $3f11b +UnknownText_0x3f11b: ; 3f11b + text_jump UnknownText_0x1c029c, BANK(UnknownText_0x1c029c) + start_asm + ld hl, UnknownText_0x3f131 + ld a, [$d088] ; IsTradedMon + and a + ret z + ld hl, UnknownText_0x3f12c + ret +; 3f12c + +UnknownText_0x3f12c: ; 3f12c + text_jump UnknownText_0x1c02a9, BANK(UnknownText_0x1c02a9) + db "@" +; 3f131 + +UnknownText_0x3f131: ; 3f131 + text_jump UnknownText_0x1c02c9, BANK(UnknownText_0x1c02c9) + db "@" +; 3f136 Function3f136: ; 3f136 + push bc + ld hl, CurPartyMon ld a, [CurBattleMon] cp [hl] - jp nz, $7219 + jp nz, .asm_3f219 + ld a, [BattleMonLevel] - cp $64 - jp nc, $7219 + cp MAX_LEVEL + jp nc, .asm_3f219 + ld a, [$ffb6] ld [$d004], a push af @@ -39377,6 +39892,8 @@ Function3f136: ; 3f136 ld [$ffb5], a pop af ld [$ffb6], a + +.asm_3f219 pop bc ret ; 3f21b @@ -39443,10 +39960,12 @@ Function3f22c: ; 3f22c Function3f26d: ; 3f26d +; SendOutMonText? + ld a, [InLinkBattle] and a jr z, .asm_3f27c - ld hl, $72d1 + ld hl, UnknownText_0x3f2d1 ld a, [$d264] and a jr nz, .asm_3f2ce @@ -39455,7 +39974,7 @@ Function3f26d: ; 3f26d ld hl, EnemyMonHPHi ld a, [hli] or [hl] - ld hl, $72d1 + ld hl, UnknownText_0x3f2d1 jr z, .asm_3f2ce xor a ld [hMultiplicand], a @@ -39481,7 +40000,7 @@ Function3f26d: ; 3f26d ld [hMultiplier], a call Divide ld a, [$ffb6] - ld hl, $72d1 + ld hl, UnknownText_0x3f2d1 cp $46 jr nc, .asm_3f2ce ld hl, $72d8 @@ -39496,15 +40015,153 @@ Function3f26d: ; 3f26d jp BattleTextBox ; 3f2d1 -INCBIN "baserom.gbc", $3f2d1, $3f2f4 - $3f2d1 + +UnknownText_0x3f2d1: ; 3f2d1 + text_jump UnknownText_0x1c02df, BANK(UnknownText_0x1c02df) + start_asm + jr Function3f2eb +; 3f2d6 + +UnknownText_0x3f2d8: ; 3f2d8 + text_jump UnknownText_0x1c02e6, BANK(UnknownText_0x1c02e6) + start_asm + jr Function3f2eb +; 3f2dd + +UnknownText_0x3f2df: ; 3f2df + text_jump UnknownText_0x1c02f0, BANK(UnknownText_0x1c02f0) + start_asm + jr Function3f2eb +; 3f2e4 + +UnknownText_0x3f2e6: ; 3f2e6 + text_jump UnknownText_0x1c02fe, BANK(UnknownText_0x1c02fe) + start_asm +; 3f2eb + +Function3f2eb: ; 3f2eb + ld hl, UnknownText_0x3f2ef + ret +; 3f2ef + +UnknownText_0x3f2ef: ; 3f2ef + text_jump UnknownText_0x1c0317, BANK(UnknownText_0x1c0317) + db "@" +; 3f2f4 Function3f2f4: ; 3f2f4 - ld hl, $72fa + ld hl, UnknownText_0x3f2fa jp BattleTextBox ; 3f2fa -INCBIN "baserom.gbc", $3f2fa, $3f390 - $3f2fa +UnknownText_0x3f2fa: ; 3f2fa + text_jump UnknownText_0x1c031d, BANK(UnknownText_0x1c031d) + start_asm +; 3f2ff + +Function3f2ff: ; 3f2ff + push de + push bc + ld hl, EnemyMonHPLo + ld de, $c6eb + ld b, [hl] + dec hl + ld a, [de] + sub b + ld [$ffb6], a + dec de + ld b, [hl] + ld a, [de] + sbc b + ld [$ffb5], a + ld a, $19 + ld [hMultiplier], a + call Multiply + ld hl, EnemyMonMaxHPHi + ld a, [hli] + ld b, [hl] + srl a + rr b + srl a + rr b + ld a, b + ld b, $4 + ld [hMultiplier], a + call Divide + pop bc + pop de + ld a, [$ffb6] + ld hl, $7348 + and a + ret z + ld hl, $735b + cp $1e + ret c + ld hl, $734d + cp $46 + ret c + ld hl, $7352 + ret +; 3f348 + +UnknownText_0x3f348: ; 3f348 + text_jump UnknownText_0x1c0324, BANK(UnknownText_0x1c0324) + db "@" +; 3f34d + +UnknownText_0x3f34d: ; 3f34d + text_jump UnknownText_0x1c0340, BANK(UnknownText_0x1c0340) + db "@" +; 3f352 + +UnknownText_0x3f352: ; 3f352 + text_jump UnknownText_0x1c0352, BANK(UnknownText_0x1c0352) + db "@" +; 3f357 + +Function3f357: ; 3f357 + ld hl, UnknownText_0x3f35b + ret +; 3f35b + +UnknownText_0x3f35b: ; 3f35b + text_jump UnknownText_0x1c0366, BANK(UnknownText_0x1c0366) + db "@" +; 3f360 + + +Function3f360: ; 3f360 + ld hl, $c6f0 + ld a, [hl] + and a + jr z, .asm_3f36d + dec [hl] + ld hl, $4cba + jr .asm_3f388 + +.asm_3f36d + dec hl + ld a, [hl] + and a + ret z + dec [hl] + ld hl, $4cd1 + jr nz, .asm_3f388 + push hl + ld a, [EnemyMonSpecies] + ld [CurSpecies], a + call GetBaseData + ld a, [BaseCatchRate] + ld [EnemyMonCatchRate], a + pop hl + +.asm_3f388 + push hl + call Function30b4 + pop hl + jp FarBattleTextBox +; 3f390 Function3f390: ; 3f390 @@ -39711,8 +40368,10 @@ Function3f47c: ; 3f47c ret ; 3f4c1 + INCBIN "baserom.gbc", $3f4c1, $3fa01 - $3f4c1 + GetRoamMonHP: ; 3fa01 ; output: hl = RoamMonCurHP ld a, [TempEnemyMonSpecies] @@ -59256,9 +59915,7 @@ Function100bc2: ; 100bc2 ld [hBGMapMode], a call $4c74 call $4c98 - ld a, $f - ld hl, $66c8 - rst FarCall + callba MoveInfoBox .asm_100bd1 call Function100dd2 callba Function241ba From 7db40e039561f5b7790110afec3b149d5d957303 Mon Sep 17 00:00:00 2001 From: yenatch Date: Mon, 29 Jul 2013 17:53:59 -0400 Subject: [PATCH 26/84] no more incbins in bank f --- main.asm | 2316 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 2150 insertions(+), 166 deletions(-) diff --git a/main.asm b/main.asm index ac7452ee0..86d3ae755 100644 --- a/main.asm +++ b/main.asm @@ -30712,7 +30712,187 @@ SpecialRoamMons: ; 2a2a0 ret ; 2a2ce -INCBIN "baserom.gbc", $2a2ce, $2a5e9 - $2a2ce + +INCBIN "baserom.gbc", $2a2ce, $2a30d - $2a2ce + + +Function2a30d: ; 2a30d + ld a, [RoamMon1MapGroup] + cp $ff + jr z, .asm_2a324 + ld b, a + ld a, [RoamMon1MapNumber] + ld c, a + call $6355 + ld a, b + ld [RoamMon1MapGroup], a + ld a, c + ld [RoamMon1MapNumber], a + +.asm_2a324 + ld a, [RoamMon2MapGroup] + cp $ff + jr z, .asm_2a33b + ld b, a + ld a, [RoamMon2MapNumber] + ld c, a + call $6355 + ld a, b + ld [RoamMon2MapGroup], a + ld a, c + ld [RoamMon2MapNumber], a + +.asm_2a33b + ld a, [RoamMon3MapGroup] + cp $ff + jr z, .asm_2a352 + ld b, a + ld a, [RoamMon3MapNumber] + ld c, a + call $6355 + ld a, b + ld [RoamMon3MapGroup], a + ld a, c + ld [RoamMon3MapNumber], a + +.asm_2a352 + jp Function2a3f6 +; 2a355 + + +Function2a355: ; 2a355 + ld hl, $640f +.asm_2a358 + ld a, [hl] + cp $ff + ret z + ld a, b + cp [hl] + jr nz, .asm_2a365 + inc hl + ld a, c + cp [hl] + jr z, .asm_2a36b + +.asm_2a365 + ld a, [hli] + and a + jr nz, .asm_2a365 + jr .asm_2a358 + +.asm_2a36b + inc hl + ld d, h + ld e, l +.asm_2a36e + ld h, d + ld l, e + call RNG + and $1f + jr z, .asm_2a3cd + and $3 + cp [hl] + jr nc, .asm_2a36e + inc hl + ld c, a + ld b, $0 + add hl, bc + add hl, bc + ld a, [$dfe7] + cp [hl] + jr nz, .asm_2a390 + inc hl + ld a, [$dfe6] + cp [hl] + jr z, .asm_2a36e + dec hl + +.asm_2a390 + ld a, [hli] + ld b, a + ld c, [hl] + ret + + ld a, [RoamMon1MapGroup] + cp $ff + jr z, .asm_2a3a6 + call $63cd + ld a, b + ld [RoamMon1MapGroup], a + ld a, c + ld [RoamMon1MapNumber], a + +.asm_2a3a6 + ld a, [RoamMon2MapGroup] + cp $ff + jr z, .asm_2a3b8 + call $63cd + ld a, b + ld [RoamMon2MapGroup], a + ld a, c + ld [RoamMon2MapNumber], a + +.asm_2a3b8 + ld a, [RoamMon3MapGroup] + cp $ff + jr z, .asm_2a3ca + call $63cd + ld a, b + ld [RoamMon3MapGroup], a + ld a, c + ld [RoamMon3MapNumber], a + +.asm_2a3ca + jp $63f6 + +.asm_2a3cd + ld hl, $640f +.asm_2a3d0 + call RNG + and $f + cp $10 + jr nc, .asm_2a3d0 + inc a + ld b, a +.asm_2a3db + dec b + jr z, .asm_2a3e4 +.asm_2a3de + ld a, [hli] + and a + jr nz, .asm_2a3de + jr .asm_2a3db + +.asm_2a3e4 + ld a, [MapGroup] + cp [hl] + jr nz, .asm_2a3f2 + inc hl + ld a, [MapNumber] + cp [hl] + jr z, .asm_2a3cd + dec hl + +.asm_2a3f2 + ld a, [hli] + ld b, a + ld c, [hl] + ret +; 2a3f6 + +Function2a3f6: ; 2a3f6 + ld a, [$dfe4] + ld [$dfe6], a + ld a, [$dfe5] + ld [$dfe7], a + ld a, [MapNumber] + ld [$dfe4], a + ld a, [MapGroup] + ld [$dfe5], a + ret +; 2a40f + +INCBIN "baserom.gbc", $2a40f, $2a5e9 - $2a40f WildMons1: ; 0x2a5e9 @@ -30734,7 +30914,174 @@ WildMons6: ; 0x2b92f INCLUDE "stats/wild/swarm_water.asm" -INCBIN "baserom.gbc", $2b930, $2ba1a - $2b930 +Function2b930: ; 2b930 + callba UpdateEnemyMonInParty + ld hl, PartyMon1CurHP + call $7995 + push bc + ld hl, OTPartyMon1CurHP + call $7995 + ld a, c + pop bc + cp c + jr z, .asm_2b94c + jr c, .asm_2b97f + jr .asm_2b976 + +.asm_2b94c + call $79e1 + jr z, .asm_2b98a + ld a, e + cp $1 + jr z, .asm_2b976 + cp $2 + jr z, .asm_2b97f + ld hl, PartyMon1CurHP + call $79a6 + push de + ld hl, OTPartyMon1CurHP + call $79a6 + pop hl + ld a, d + cp h + jr c, .asm_2b976 + jr z, .asm_2b970 + jr .asm_2b97f + +.asm_2b970 + ld a, e + cp l + jr z, .asm_2b98a + jr nc, .asm_2b97f + +.asm_2b976 + ld a, [$d0ee] + and $f0 + ld [$d0ee], a + ret + +.asm_2b97f + ld a, [$d0ee] + and $f0 + add $1 + ld [$d0ee], a + ret + +.asm_2b98a + ld a, [$d0ee] + and $f0 + add $2 + ld [$d0ee], a + ret +; 2b995 + +Function2b995: ; 2b995 + ld c, $0 + ld b, $3 + ld de, $002f +.asm_2b99c + ld a, [hli] + or [hl] + jr nz, .asm_2b9a1 + inc c + +.asm_2b9a1 + add hl, de + dec b + jr nz, .asm_2b99c + ret +; 2b9a6 + +Function2b9a6: ; 2b9a6 + ld de, $0000 + ld c, $3 +.asm_2b9ab + ld a, [hli] + or [hl] + jr z, .asm_2b9d7 + dec hl + xor a + ld [hProduct], a + ld a, [hli] + ld [hMultiplicand], a + ld a, [hli] + ld [$ffb5], a + xor a + ld [$ffb6], a + ld a, [hli] + ld b, a + ld a, [hld] + srl b + rr a + srl b + rr a + ld [hMultiplier], a + ld b, $4 + call Divide + ld a, [$ffb6] + add e + ld e, a + ld a, [$ffb5] + adc d + ld d, a + dec hl + +.asm_2b9d7 + push de + ld de, $002f + add hl, de + pop de + dec c + jr nz, .asm_2b9ab + ret +; 2b9e1 + +Function2b9e1: ; 2b9e1 + ld hl, PartyMon1CurHP + call $7a01 + jr nz, .asm_2b9f2 + ld hl, OTPartyMon1CurHP + call $7a01 + ld e, $1 + ret + +.asm_2b9f2 + ld hl, OTPartyMon1CurHP + call $7a01 + ld e, $0 + ret nz + ld e, $2 + ld a, $1 + and a + ret +; 2ba01 + +Function2ba01: ; 2ba01 + ld d, $3 +.asm_2ba03 + ld a, [hli] + ld b, a + ld a, [hli] + ld c, a + or b + jr z, .asm_2ba10 + ld a, [hli] + cp b + ret nz + ld a, [hld] + cp c + ret nz + +.asm_2ba10 + push de + ld de, $002e + add hl, de + pop de + dec d + jr nz, .asm_2ba03 + ret +; 2ba1a + ChrisBackpic: ; 2ba1a INCBIN "gfx/misc/player.lz" @@ -30749,7 +31096,17 @@ INCBIN "gfx/misc/dude.lz" SECTION "bankB",DATA,BANK[$B] -INCBIN "baserom.gbc", $2c000, $2c012 - $2c000 +Function2c000: ; 2c000 + ld a, $e4 + ld [rOBP0], a + call Function2c165 + call $401c + ld a, [IsInBattle] + dec a + ret z + jp $403a +; 2c012 + Function2c012: ; 2c012 @@ -30759,7 +31116,21 @@ Function2c012: ; 2c012 jp $403a ; 2c01c -INCBIN "baserom.gbc", $2c01c, $2c03a - $2c01c +Function2c01c: ; 2c01c + call $40ad + ld hl, PartyMon1CurHP + ld de, PartyCount + call Function2c059 + ld a, $60 + ld hl, $cfc4 + ld [hli], a + ld [hl], a + ld a, $8 + ld [$d003], a + ld hl, Sprites + jp Function2c143 +; 2c03a + Function2c03a: ; 2c03a @@ -32244,7 +32615,161 @@ Function3957b: ; 3957b ; 3959c -INCBIN "baserom.gbc", $3959c, $39939 - $3959c +INCBIN "baserom.gbc", $3959c, $39771 - $3959c + + +Function39771: ; 39771 + ld a, [$cfc0] + bit 0, a + ret nz + ld a, [InLinkBattle] + and a + ret nz + ld hl, OTPartyCount + xor a + ld [hli], a + dec a + ld [hl], a + ld hl, OTPartyMon1Species + ld bc, $0120 + xor a + call ByteFill + ld a, [OtherTrainerClass] + cp $c + jr nz, .asm_3979e + ld a, [OtherTrainerID] + cp $2 + jr z, .asm_397d3 + ld a, [OtherTrainerClass] + +.asm_3979e + dec a + ld c, a + ld b, $0 + ld hl, TrainerGroups + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [OtherTrainerID] + ld b, a +.asm_397ae + dec b + jr z, .asm_397b8 +.asm_397b1 + ld a, [hli] + cp $ff + jr nz, .asm_397b1 + jr .asm_397ae + +.asm_397b8 + ld a, [hli] + cp $50 + jr nz, .asm_397b8 + ld a, [hli] + ld c, a + ld b, $0 + ld d, h + ld e, l + ld hl, $57e3 + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld bc, .data_397d0 + push bc + jp [hl] + +.data_397d0 +.asm_397d0 + db $c3 + db $1b + db $59 + +.asm_397d3 + ld a, $0 + call GetSRAMBank + ld de, $ac0a + call $5806 + call CloseSRAM + jr .asm_397d0 +; 397e3 + +INCBIN "baserom.gbc", $397e3, $39806 - $397e3 + + +Function39806: ; 39806 + ld h, d + ld l, e +.asm_39808 + ld a, [hli] + cp $ff + ret z + ld [CurPartyLevel], a + ld a, [hli] + ld [CurPartySpecies], a + ld a, $1 + ld [MonType], a + push hl + ld a, $6 + call Predef + ld a, [OTPartyCount] + dec a + ld hl, OTPartyMon1Move1 + ld bc, $0030 + call AddNTimes + ld d, h + ld e, l + pop hl + ld b, $4 +.asm_39830 + ld a, [hli] + ld [de], a + inc de + dec b + jr nz, .asm_39830 + push hl + ld a, [OTPartyCount] + dec a + ld hl, OTPartyMon1Species + ld bc, $0030 + call AddNTimes + ld d, h + ld e, l + ld hl, $0017 + add hl, de + push hl + ld hl, $0002 + add hl, de + pop de + ld b, $4 +.asm_39852 + ld a, [hli] + and a + jr z, .asm_3986e + push hl + push bc + dec a + ld hl, $5b00 + ld bc, $0007 + call AddNTimes + ld a, $10 + call GetFarByte + pop bc + pop hl + ld [de], a + inc de + dec b + jr nz, .asm_39852 + +.asm_3986e + pop hl + jr .asm_39808 +; 39871 + +INCBIN "baserom.gbc", $39871, $39939 - $39871 Function39939: ; 39939 @@ -32545,7 +33070,24 @@ Function3c1bf: ; 3c1bf ret ; 3c1c0 -INCBIN "baserom.gbc", $3c1c0, $3c1d6 - $3c1c0 + +Function3c1c0: ; 3c1c0 + ld a, $5 + call GetSRAMBank + ld hl, $a89b + inc [hl] + jr nz, .asm_3c1d2 + dec hl + inc [hl] + jr nz, .asm_3c1d2 + dec [hl] + inc hl + dec [hl] + +.asm_3c1d2 + call CloseSRAM + ret +; 3c1d6 Function3c1d6: ; 3c1d6 @@ -32557,7 +33099,7 @@ Function3c1d6: ; 3c1d6 call $4a26 call $423c ret c - call $4b9e + call HandleWeather call $423c ret c call $4874 @@ -32574,7 +33116,7 @@ Function3c1d6: ; 3c1d6 call $4a26 call $425c ret c - call $4b9e + call HandleWeather call $425c ret c call $4874 @@ -33051,83 +33593,124 @@ Function3c4df: ; 3c4df jp FarBattleTextBox ; 3c543 + Function3c543: ; 3c543 ld a, [IsInBattle] dec a - jr nz, .asm_3c596 + jr nz, .Stay + ld a, [PlayerSubStatus5] bit 7, a - jr nz, .asm_3c596 + jr nz, .Stay + ld a, [$c731] and a - jr nz, .asm_3c596 + jr nz, .Stay + ld a, [EnemyMonStatus] - and $27 - jr nz, .asm_3c596 + and 1 << FRZ | SLP + jr nz, .Stay + ld a, [TempEnemyMonSpecies] - ld de, $0001 - ld hl, $45b1 + ld de, 1 + ld hl, .Always call IsInArray - jr c, .asm_3c598 + jr c, .Flee + call FarBattleRNG ld b, a cp $80 - jr nc, .asm_3c596 + jr nc, .Stay + push bc ld a, [TempEnemyMonSpecies] - ld de, $0001 - ld hl, $45a8 + ld de, 1 + ld hl, .Often call IsInArray pop bc - jr c, .asm_3c598 + jr c, .Flee + ld a, b cp $1a - jr nc, .asm_3c596 - ld a, [TempEnemyMonSpecies] - ld de, $0001 - ld hl, $459a - call IsInArray - jr c, .asm_3c598 + jr nc, .Stay -.asm_3c596 + ld a, [TempEnemyMonSpecies] + ld de, 1 + ld hl, .Sometimes + call IsInArray + jr c, .Flee + +.Stay and a ret -.asm_3c598 +.Flee scf ret ; 3c59a -INCBIN "baserom.gbc", $3c59a, $3c5b4 - $3c59a +.Sometimes + db MAGNEMITE + db GRIMER + db TANGELA + db MR__MIME + db EEVEE + db PORYGON + db DRATINI + db DRAGONAIR + db TOGETIC + db UMBREON + db UNOWN + db SNUBBULL + db HERACROSS + db $ff + +.Often + db CUBONE + db ARTICUNO + db ZAPDOS + db MOLTRES + db QUAGSIRE + db DELIBIRD + db PHANPY + db TEDDIURSA + db $ff + +.Always + db RAIKOU + db ENTEI +; db SUICUNE + db $ff +; 3c5b4 Function3c5b4: ; 3c5b4 ld a, [CurPlayerMove] - call $45c5 + call GetMovePriority ld b, a push bc ld a, [CurEnemyMove] - call $45c5 + call GetMovePriority pop bc cp b ret ; 3c5c5 -Function3c5c5: ; 3c5c5 +GetMovePriority: ; 3c5c5 ld b, a - cp $e9 - ld a, $0 + cp VITAL_THROW + ld a, 0 ret z call Function3c5ec - ld hl, $45df -.asm_3c5d1 + ld hl, .data_3c5df +.loop ld a, [hli] cp b jr z, .asm_3c5dd inc hl cp $ff - jr nz, .asm_3c5d1 - ld a, $1 + jr nz, .loop + ld a, 1 ret .asm_3c5dd @@ -33135,7 +33718,15 @@ Function3c5c5: ; 3c5c5 ret ; 3c5df -INCBIN "baserom.gbc", $3c5df, $3c5ec - $3c5df +.data_3c5df + db EFFECT_PROTECT, 3 + db EFFECT_ENDURE, 3 + db EFFECT_PRIORITY_HIT, 2 + db EFFECT_WHIRLWIND, 0 + db EFFECT_COUNTER, 0 + db EFFECT_MIRROR_COAT, 0 + db $ff +; 3c5ec Function3c5ec: ; 3c5ec @@ -33880,101 +34471,114 @@ Function3cafb: ; 3cafb jp FarBattleTextBox ; 3cb36 + Function3cb36: ; 3cb36 ld a, [$ffcb] - cp $1 - jr z, .asm_3cb41 - call $4b44 - jr .asm_3cb55 + cp 1 + jr z, .Both + call .CheckPlayer + jr .CheckEnemy -.asm_3cb41 - call $4b55 +.Both + call .CheckEnemy + +.CheckPlayer call SetPlayerTurn - ld de, $4b75 - call $4b6f + ld de, .Your + call .asm_3cb6f ld hl, PlayerScreens ld de, PlayerLightScreenCount - jr .asm_3cb64 + jr .FadeScreens -.asm_3cb55 +.CheckEnemy call SetEnemyTurn - ld de, $4b7a - call $4b6f + ld de, .Enemy + call .asm_3cb6f ld hl, EnemyScreens ld de, EnemyLightScreenCount -.asm_3cb64 - bit 3, [hl] - call nz, $4b80 - bit 4, [hl] - call nz, $4b91 +.FadeScreens + bit SCREENS_LIGHT_SCREEN, [hl] + call nz, FadeLightScreen + bit SCREENS_REFLECT, [hl] + call nz, FadeReflect ret -; 3cb6f -Function3cb6f: ; 3cb6f +.asm_3cb6f ld hl, StringBuffer1 jp CopyName2 ; 3cb75 -INCBIN "baserom.gbc", $3cb75, $3cb80 - $3cb75 +.Your + db "Your@" +.Enemy + db "Enemy@" +; 3cb80 -Function3cb80: ; 3cb80 +FadeLightScreen: ; 3cb80 ld a, [de] dec a ld [de], a ret nz - res 3, [hl] + res SCREENS_LIGHT_SCREEN, [hl] push hl push de - ld hl, $48e7 + ld hl, BattleText_0x808e7 call FarBattleTextBox pop de pop hl ret ; 3cb91 -Function3cb91: ; 3cb91 +FadeReflect: ; 3cb91 inc de ld a, [de] dec a ld [de], a ret nz - res 4, [hl] - ld hl, $4905 + res SCREENS_REFLECT, [hl] + ld hl, BattleText_0x80905 jp FarBattleTextBox ; 3cb9e -Function3cb9e: ; 3cb9e +HandleWeather: ; 3cb9e + ld a, [Weather] - cp $0 + cp 0 ret z + ld hl, WeatherCount dec [hl] jr z, .asm_3cc13 - ld hl, $4c2d - call $4c1e + + ld hl, .WeatherMessages + call .asm_3cc1e ld a, [Weather] - cp $3 + cp WEATHER_SANDSTORM ret nz ld a, [$ffcb] - cp $1 + cp 1 jr z, .asm_3cbc7 + +; Player first call SetPlayerTurn - call $4bd0 + call .asm_3cbd0 call SetEnemyTurn jr .asm_3cbd0 .asm_3cbc7 +; Enemy first call SetEnemyTurn - call $4bd0 + call .asm_3cbd0 call SetPlayerTurn .asm_3cbd0 - ld a, $2 + ld a, BATTLE_VARS_SUBSTATUS3 call CleanGetBattleVarPair - bit 5, a + bit SUBSTATUS_UNDERGROUND, a ret nz + ld hl, BattleMonType1 ld a, [hBattleTurn] and a @@ -33983,19 +34587,21 @@ Function3cb9e: ; 3cb9e .asm_3cbe3 ld a, [hli] - cp $5 + cp ROCK ret z - cp $4 + cp GROUND ret z - cp $9 + cp STEEL ret z + ld a, [hl] - cp $5 + cp ROCK ret z - cp $4 + cp GROUND ret z - cp $9 + cp STEEL ret z + call $48e4 xor a ld [$cfca], a @@ -34004,22 +34610,22 @@ Function3cb9e: ; 3cb9e call $48e4 call GetEighthMaxHP call $4c3f - ld hl, $484d + + ld hl, BattleText_0x8084d jp FarBattleTextBox .asm_3cc13 - ld hl, $4c33 - call $4c1e + ld hl, .WeatherEndedMessages + call .asm_3cc1e xor a ld [Weather], a ret -; 3cc1e -Function3cc1e: ; 3cc1e +.asm_3cc1e ld a, [Weather] dec a ld c, a - ld b, $0 + ld b, 0 add hl, bc add hl, bc ld a, [hli] @@ -34028,8 +34634,15 @@ Function3cc1e: ; 3cc1e jp FarBattleTextBox ; 3cc2d -INCBIN "baserom.gbc", $3cc2d, $3cc39 - $3cc2d - +.WeatherMessages + dw BattleText_0x8091f + dw BattleText_0x80938 + dw BattleText_0x80951 +.WeatherEndedMessages + dw BattleText_0x80967 + dw BattleText_0x8097a + dw BattleText_0x8098f +; 3cc39 Function3cc39: ; 3cc39 call $4c45 @@ -34145,7 +34758,7 @@ GetHalfMaxHP: ; 3cc9f GetMaxHP: ; 3ccac -; output: bc, MagikarpLength-b +; output: bc, Buffer1-2 ; player ld hl, BattleMonMaxHP @@ -34164,17 +34777,51 @@ GetMaxHP: ; 3ccac ld b, a ld a, [hl] - ld [MagikarpLength], a + ld [Buffer1], a ld c, a ret ; 3ccc2 +Function3ccc2: ; 3ccc2 + ld hl, BattleMonHP + ld a, [hBattleTurn] + and a + jr z, .asm_3cccd + ld hl, EnemyMonHP -INCBIN "baserom.gbc", $3ccc2, $3ccef - $3ccc2 +.asm_3cccd + ld a, [hli] + ld b, a + ld a, [hli] + ld c, a + srl b + rr c + ld a, [hli] + ld [Buffer2], a + ld a, [hl] + ld [Buffer1], a + ret +; 3ccde + +Function3ccde: ; 3ccde + ld hl, BattleMonHP + 1 + ld a, [hBattleTurn] + and a + jr z, .asm_3cce9 + ld hl, EnemyMonHP + 1 + +.asm_3cce9 + ld a, c + sub [hl] + dec hl + ld a, b + sbc [hl] + ret +; 3ccef Function3ccef: ; 3ccef - ld hl, EnemyMonMaxHPHi + ld hl, EnemyMonMaxHP ld a, [hBattleTurn] and a jr z, .asm_3ccfa @@ -34184,7 +34831,7 @@ Function3ccef: ; 3ccef ld a, [hli] ld [Buffer2], a ld a, [hld] - ld [MagikarpLength], a + ld [Buffer1], a dec hl ld a, [hl] ld [$d1ec], a @@ -34196,7 +34843,7 @@ Function3ccef: ; 3ccef adc b ld [hli], a ld [$d1ef], a - ld a, [MagikarpLength] + ld a, [Buffer1] ld c, a ld a, [hld] sub c @@ -34214,7 +34861,7 @@ Function3ccef: ; 3ccef .asm_3cd2d call $48e4 - call $4d36 + call Function3cd36 jp $48e4 ; 3cd36 @@ -34224,7 +34871,6 @@ Function3cd36: ; 3cd36 ; 3cd3c - Function3cd3c: ; 3cd3c ld hl, $c55e ld a, [hBattleTurn] @@ -34495,7 +35141,7 @@ Function3cef1: ; 3cef1 ld hl, $c535 ld bc, $050b call ClearBox - ld hl, $4a75 + ld hl, BattleText_0x80a75 jp FarBattleTextBox ; 3cf14 @@ -34509,7 +35155,7 @@ Function3cf14: ; 3cf14 ld hl, $c4a1 ld bc, $040a call ClearBox - ld hl, $49a8 + ld hl, BattleText_0x809a8 jp FarBattleTextBox ; 3cf35 @@ -34594,7 +35240,7 @@ Function3cfa4: ; 3cfa4 ld a, b call z, $50ea callab Function39939 - ld hl, $49da + ld hl, BattleText_0x809da call FarBattleTextBox call Function3d2f1 jr z, .asm_3cff5 @@ -34695,10 +35341,10 @@ Function3d02b: ; 3d02b ld a, [$d854] and $7 jr z, .asm_3d07b - ld hl, $50ab + ld hl, SentToMomTexts dec a ld c, a - ld b, $0 + ld b, 0 add hl, bc add hl, bc ld a, [hli] @@ -34707,7 +35353,7 @@ Function3d02b: ; 3d02b jp FarBattleTextBox .asm_3d07b - ld hl, $49be + ld hl, BattleText_0x809be jp FarBattleTextBox ; 3d081 @@ -34744,7 +35390,11 @@ Function3d099: ; 3d099 ret ; 3d0ab -INCBIN "baserom.gbc", $3d0ab, $3d0b1 - $3d0ab +SentToMomTexts: ; 3d0ab + dw BattleText_0x809fc + dw BattleText_0x80a2a + dw BattleText_0x80a3d +; 3d0b1 Function3d0b1: ; 3d0b1 @@ -34797,10 +35447,10 @@ Function3d0be: ; 3d0be Function3d0ea: ; 3d0ea push de - ld de, $0000 + ld de, MUSIC_NONE call StartMusic call DelayFrame - ld de, $0018 + ld de, MUSIC_WILD_VICTORY ld a, [IsInBattle] dec a jr nz, .asm_3d113 @@ -34818,10 +35468,10 @@ Function3d0ea: ; 3d0ea jr .asm_3d11e .asm_3d113 - ld de, $0019 + ld de, MUSIC_GYM_VICTORY call IsJohtoGymLeader jr c, .asm_3d11e - ld de, $0017 + ld de, MUSIC_TRAINER_VICTORY .asm_3d11e call StartMusic @@ -34983,7 +35633,7 @@ Function3d1f8: ; 3d1f8 and a dec a ret nz - ld hl, $4a83 + ld hl, BattleText_0x80a83 call FarBattleTextBox .asm_3d20a ld bc, $0107 @@ -35158,7 +35808,7 @@ Function3d34f: ; 3d34f ld a, [CurPartyMon] cp [hl] jr nz, .asm_3d360 - ld hl, $4c0d + ld hl, BattleText_0x80c0d call FarBattleTextBox scf ret @@ -35192,7 +35842,16 @@ Function3d375: ; 3d375 ret ; 3d380 -INCBIN "baserom.gbc", $3d380, $3d38e - $3d380 +Function3d380: ; 3d380 +.asm_3d380 + call $5362 + call Function3d2e0 + ret c + call Function3d34f + jr c, .asm_3d380 + xor a + ret +; 3d38e LostBattle: ; 3d38e @@ -35327,7 +35986,7 @@ Function3d444: ; 3d444 call CopyBytes pop de pop hl - ld bc, $ffec + ld bc, -20 add hl, bc push hl ld h, d @@ -35339,11 +35998,11 @@ Function3d444: ; 3d444 pop bc dec b jr nz, .asm_3d454 - ld bc, $0014 + ld bc, 20 add hl, bc - ld de, $5488 + ld de, .Spaces call PlaceString - ld c, $2 + ld c, 2 call DelayFrames pop hl pop de @@ -35355,7 +36014,9 @@ Function3d444: ; 3d444 ret ; 3d488 -INCBIN "baserom.gbc", $3d488, $3d490 - $3d488 +.Spaces + db " @" +; 3d490 Function3d490: ; 3d490 @@ -35369,11 +36030,11 @@ Function3d490: ; 3d490 push hl call $54ae pop hl - ld de, $0014 + ld de, 20 add hl, de dec b jr nz, .asm_3d497 - ld c, $2 + ld c, 2 call DelayFrames pop hl pop bc @@ -35404,7 +36065,21 @@ Function3d4ae: ; 3d4ae ret ; 3d4c3 -INCBIN "baserom.gbc", $3d4c3, $3d4e1 - $3d4c3 + +Function3d4c3: ; 3d4c3 + call Function3d557 + ld a, [$c718] + dec a + ld b, a + call Function3d6ca + call Function3d7a0 + call Function3d834 + call Function3d867 + call Function3d7c7 + call Function3dc18 + call Function3d57a + ret +; 3d4e1 Function3d4e1: ; 3d4e1 @@ -35772,7 +36447,7 @@ Function3d74b: ; 3d74b ld a, [CurPartyMon] push af callab Function39939 - ld hl, $4aca + ld hl, BattleText_0x80aca call FarBattleTextBox ld bc, $0107 call $1dd2 @@ -35823,7 +36498,7 @@ Function3d7a0: ; 3d7a0 Function3d7b8: ; 3d7b8 callab Function39939 - ld hl, $4af8 + ld hl, BattleText_0x80af8 call FarBattleTextBox jp WaitBGMap ; 3d7c7 @@ -35951,9 +36626,9 @@ Function3d887: ; 3d887 add hl, bc ld a, [hl] cp $fd - ld hl, $4b26 + ld hl, BattleText_0x80b26 jr z, .asm_3d8ae - ld hl, $4b0b + ld hl, BattleText_0x80b0b .asm_3d8ae call FarBattleTextBox @@ -36002,7 +36677,7 @@ Function3d8b3: ; 3d8b3 jr nz, .asm_3d916 call SetPlayerTurn call GetItemName - ld hl, $4b89 + ld hl, BattleText_0x80b89 call FarBattleTextBox jp $59a2 @@ -36069,13 +36744,13 @@ Function3d8b3: ; 3d8b3 jr nc, .asm_3d9a2 ld a, $1 ld [$d0ec], a - ld hl, $4b3b + ld hl, BattleText_0x80b3b jr .asm_3d995 - ld hl, $4ba0 + ld hl, BattleText_0x80ba0 jr .asm_3d995 - ld hl, $4b49 + ld hl, BattleText_0x80b49 .asm_3d995 call FarBattleTextBox @@ -36119,7 +36794,7 @@ Function3d8b3: ; 3d8b3 call WaitPlaySFX pop de call WaitSFX - ld hl, $4b77 + ld hl, BattleText_0x80b77 call FarBattleTextBox call WaitSFX call Function309d @@ -36233,7 +36908,6 @@ Function3dab1: ; 3dab1 ; 3dabd - Function3dabd: ; 3dabd ld a, [CurPartyMon] ld hl, OTPartyMon1Species @@ -36287,7 +36961,26 @@ Function3dabd: ; 3dabd ret ; 3db32 -INCBIN "baserom.gbc", $3db32, $3db5f - $3db32 + +Function3db32: ; 3db32 + call ClearSprites + ld a, [CurBattleMon] + ld [$c71a], a + ld a, [CurPartyMon] + ld [CurBattleMon], a + call $5581 + call Function3da0d + call Function3dab1 + call Function3dbde + call Function3dc18 + call Function3db5f + call Function3edd1 + call Function309d + ld hl, EnemyMonHPHi + ld a, [hli] + or [hl] + ret +; 3db5f Function3db5f: ; 3db5f @@ -36407,7 +37100,7 @@ Function3dc23: ; 3dc23 cp $2 ret z push bc - ld hl, $4bae + ld hl, BattleText_0x80bae call FarBattleTextBox call GetEighthMaxHP call $4c39 @@ -36467,7 +37160,7 @@ Function3dc5b: ; 3dc5b ld a, $3 call Predef call $543b - ld hl, $4a75 + ld hl, BattleText_0x80a75 jr .asm_3dcdf .asm_3dcc0 @@ -36482,7 +37175,7 @@ Function3dc5b: ; 3dc5b call StartSFX call WaitSFX call $5432 - ld hl, $49a8 + ld hl, BattleText_0x809a8 .asm_3dcdf call FarBattleTextBox @@ -36531,11 +37224,99 @@ Function3dcf9: ; 3dcf9 jp $5e51 ; 3dd2f -INCBIN "baserom.gbc", $3dd2f, $3ddc2 - $3dd2f +Function3dd2f: ; 3dd2f + callab GetOpponentItem + ld a, b + cp $1 + ret nz + ld de, EnemyMonHPLo + ld hl, EnemyMonMaxHPHi + ld a, [hBattleTurn] + and a + jr z, .asm_3dd4a + ld de, $c63d + ld hl, BattleMonMaxHP +.asm_3dd4a + push bc + ld a, [de] + ld [$d1ec], a + add a + ld c, a + dec de + ld a, [de] + inc de + ld [$d1ed], a + adc a + ld b, a + ld a, b + cp [hl] + ld a, c + pop bc + jr z, .asm_3dd62 + jr c, .asm_3dd66 + ret + +.asm_3dd62 + inc hl + cp [hl] + dec hl + ret nc + +.asm_3dd66 + call $5dc8 + ld a, [hli] + ld [Buffer2], a + ld a, [hl] + ld [MagikarpLength], a + ld a, [de] + add c + ld [$d1ee], a + ld c, a + dec de + ld a, [de] + adc $0 + ld [$d1ef], a + ld b, a + ld a, [hld] + cp c + ld a, [hl] + sbc b + jr nc, .asm_3dd8d + ld a, [hli] + ld [$d1ef], a + ld a, [hl] + ld [$d1ee], a + +.asm_3dd8d + ld a, [$d1ef] + ld [de], a + inc de + ld a, [$d1ee] + ld [de], a + ld a, [hBattleTurn] + ld [$d10a], a + and a + ld hl, $c4ca + jr z, .asm_3dda4 + ld hl, $c55e + +.asm_3dda4 + ld [$d10a], a + ld a, $b + call Predef + call RefreshBattleHuds + callab GetOpponentItem + ld a, [hl] + ld [$d265], a + call GetItemName + ld hl, $7192 + ld a, $9 + rst FarCall ld hl, RecoveredUsingText jp FarBattleTextBox -; 0x3ddc8 +; 3ddc8 + Function3ddc8: ; 3ddc8 push hl @@ -36559,7 +37340,7 @@ Function3ddc8: ; 3ddc8 Function3dde9: ; 3dde9 callab GetOpponentItem - ld hl, $5e44 + ld hl, .Statuses .asm_3ddf2 ld a, [hli] cp $ff @@ -36612,7 +37393,15 @@ Function3dde9: ; 3dde9 ret ; 3de44 -INCBIN "baserom.gbc", $3de44, $3de51 - $3de44 +.Statuses ; 3de44 + db HELD_HEAL_POISON, 1 << PSN + db HELD_HEAL_FREEZE, 1 << FRZ + db HELD_HEAL_BURN, 1 << BRN + db HELD_HEAL_SLEEP, SLP + db HELD_HEAL_PARALYZE, 1 << PAR + db HELD_HEAL_STATUS, 1 << PSN | 1 << FRZ | 1 << BRN | SLP | 1 << PAR + db $ff +; 3de51 Function3de51: ; 3de51 @@ -36635,7 +37424,7 @@ Function3de51: ; 3de51 res 7, [hl] call GetItemName call $5dc8 - ld hl, $4dab + ld hl, BattleText_0x80dab call FarBattleTextBox ld a, [hBattleTurn] and a @@ -36686,7 +37475,7 @@ Function3deb1: ; 3deb1 ld a, [bc] ld b, a callab GetItem - ld hl, $5efc + ld hl, .data_3defc .asm_3dec7 ld a, [hli] cp $ff @@ -36715,7 +37504,7 @@ Function3deb1: ; 3deb1 ld [bc], a ld [de], a call GetItemName - ld hl, $4bde + ld hl, BattleText_0x80bde call FarBattleTextBox callab BattleCommand8c ret @@ -36726,7 +37515,16 @@ Function3deb1: ; 3deb1 ret ; 3defc -INCBIN "baserom.gbc", $3defc, $3df12 - $3defc +.data_3defc + dbw $1f, $61ac + dbw $20, $61b0 + dbw $21, $61b4 + dbw $22, $61b8 + dbw $23, $61bc + dbw $24, $61c0 + dbw $25, $61c4 + db $ff +; 3df12 Function3df12: ; 3df12 @@ -37197,7 +37995,7 @@ Function3e1c7: ; 3e1c7 ; 3e22b Function3e22b: ; 3e22b - ld hl, $4bf3 + ld hl, BattleText_0x80bf3 call FarBattleTextBox jp $6139 ; 3e234 @@ -37352,7 +38150,7 @@ Function3e358: ; 3e358 ld a, [CurPartyMon] cp d jr nz, .asm_3e36b - ld hl, $4c0d + ld hl, BattleText_0x80c0d call FarBattleTextBox jp $6299 @@ -37365,7 +38163,7 @@ Function3e358: ; 3e358 jr z, .asm_3e381 .asm_3e378 - ld hl, $4c22 + ld hl, BattleText_0x80c22 call FarBattleTextBox jp $6299 @@ -37719,7 +38517,7 @@ Function3e4bc: ; 3e4bc ret .asm_3e60b - ld hl, $4c5b + ld hl, BattleText_0x80c5b jr .asm_3e613 .asm_3e610 @@ -37974,7 +38772,7 @@ Function3e786: ; 3e786 ret nz .asm_3e7b4 - ld hl, $4c72 + ld hl, BattleText_0x80c72 call FarBattleTextBox ld c, $3c call DelayFrames @@ -39617,7 +40415,7 @@ Function3ee3b: ; 3ee3b ld de, $00b6 call StartSFX call WaitSFX - ld hl, $4c9c + ld hl, BattleText_0x80c9c call FarBattleTextBox call Function309d @@ -39870,7 +40668,7 @@ Function3f136: ; 3f136 ld hl, $679d rst FarCall call WaitSFX - ld hl, $4c9c + ld hl, BattleText_0x80c9c call FarBattleTextBox pop de inc e @@ -40137,7 +40935,7 @@ Function3f360: ; 3f360 and a jr z, .asm_3f36d dec [hl] - ld hl, $4cba + ld hl, BattleText_0x80cba jr .asm_3f388 .asm_3f36d @@ -40146,7 +40944,7 @@ Function3f360: ; 3f360 and a ret z dec [hl] - ld hl, $4cd1 + ld hl, BattleText_0x80cd1 jr nz, .asm_3f388 push hl ld a, [EnemyMonSpecies] @@ -40369,9 +41167,691 @@ Function3f47c: ; 3f47c ; 3f4c1 -INCBIN "baserom.gbc", $3f4c1, $3fa01 - $3f4c1 +Function3f4c1: ; 3f4c1 + ld a, [PartyCount] + and a + ret z + ld a, [TimeOfDayPal] + push af + call $74dd + call $4000 + call $769e + pop af + ld [TimeOfDayPal], a + scf + ret +; 3f4d9 +Function3f4d9: ; 3f4d9 + call Function3c000 + ret +; 3f4dd + + +Function3f4dd: ; 3f4dd + ld a, $41 + ld hl, $6050 + rst FarCall + call $754e + xor a + ld [TempBattleMonSpecies], a + ld [$d0d2], a + xor a + ld [$ffde], a + callba PlayBattleMusic + callba Function2ee18 + callba Function2ee2f + call Function2ed3 + callba ClearBattleRAM + call $755e + call $7568 + ld b, $0 + call GetSGBLayout + ld hl, rLCDC + res 6, [hl] + call $7b6c + call $7c8b + ld hl, rLCDC + set 6, [hl] + xor a + ld [hBGMapMode], a + call Function3edd1 + ld hl, $c535 + ld bc, $050b + call ClearBox + ld hl, $c4a1 + ld bc, $040a + call ClearBox + call ClearSprites + ld a, [IsInBattle] + cp $1 + call z, Function3e036 + ld a, $1 + ld [hBGMapMode], a + ret +; 3f54e + +Function3f54e: ; 3f54e + ld a, [OtherTrainerClass] + and a + jr nz, .asm_3f55a + ld a, [$d22e] + ld [CurPartySpecies], a + +.asm_3f55a + ld [TempEnemyMonSpecies], a + ret +; 3f55e + +Function3f55e: ; 3f55e + ld a, [OtherTrainerClass] + and a + jp nz, $7594 + jp $7607 +; 3f568 + +Function3f568: ; 3f568 + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + ld hl, $d000 + ld bc, VBlank5 + ld a, $2 + call ByteFill + ld a, [rVBK] + push af + ld a, $1 + ld [rVBK], a + ld de, $d000 + ld hl, VBGMap0 + ld bc, $0f40 + call Functioneba + pop af + ld [rVBK], a + pop af + ld [rSVBK], a + ret +; 3f594 + +Function3f594: ; 3f594 + ld [TrainerClass], a + ld a, $41 + ld hl, $606a + rst FarCall + xor a + ld [TempEnemyMonSpecies], a + ld hl, $557b + ld a, $e + rst FarCall + ld hl, $5771 + ld a, $e + rst FarCall + ld a, [TrainerClass] + cp $9 + jr nz, .asm_3f5b8 + xor a + ld [OTPartyMon1Item], a + +.asm_3f5b8 + ld de, VTiles2 + ld hl, $520d + ld a, $14 + rst FarCall + xor a + ld [$ffad], a + dec a + ld [$c6e6], a + ld hl, $c4ac + ld bc, $0707 + ld a, $13 + call Predef + ld a, $ff + ld [CurOTMon], a + ld a, $2 + ld [IsInBattle], a + call IsJohtoGymLeader + jr nc, .asm_3f606 + xor a + ld [CurPartyMon], a + ld a, [PartyCount] + ld b, a +.asm_3f5ea + push bc + ld a, $22 + call GetPartyParamLocation + ld a, [hli] + or [hl] + jr z, .asm_3f5fc + ld c, $4 + callab Function71c2 + +.asm_3f5fc + pop bc + dec b + jr z, .asm_3f606 + ld hl, CurPartyMon + inc [hl] + jr .asm_3f5ea + +.asm_3f606 + ret +; 3f607 + +Function3f607: ; 3f607 + ld a, $1 + ld [IsInBattle], a + ld a, $41 + ld hl, $605d + rst FarCall + call LoadEnemyMon + ld hl, EnemyMonMove1 + ld de, $c735 + ld bc, $0004 + call CopyBytes + ld hl, EnemyMonPPMove1 + ld de, $c739 + ld bc, $0004 + call CopyBytes + ld hl, EnemyMonAtkDefDV + ld a, $2d + call Predef + ld a, [CurPartySpecies] + cp $c9 + jr nz, .asm_3f648 + ld a, [$def4] + and a + jr nz, .asm_3f648 + ld a, [UnownLetter] + ld [$def4], a + +.asm_3f648 + ld de, VTiles2 + ld a, $3e + call Predef + xor a + ld [TrainerClass], a + ld [$ffad], a + ld hl, $c4ac + ld bc, $0707 + ld a, $13 + call Predef + ret +; 3f662 + +Function3f662: ; 3f662 + ld hl, EnemyMonMove1 + ld de, $d25e + ld b, $4 +.asm_3f66a + ld a, [de] + inc de + ld [hli], a + and a + jr z, .asm_3f690 + push bc + push hl + push hl + dec a + ld hl, $5b00 + ld bc, $0007 + call AddNTimes + ld a, $10 + call GetFarByte + pop hl + ld bc, $0005 + add hl, bc + ld [hl], a + pop hl + pop bc + dec b + jr nz, .asm_3f66a + ret + +.asm_3f68e + xor a + ld [hli], a + +.asm_3f690 + push bc + push hl + ld bc, $0005 + add hl, bc + xor a + ld [hl], a + pop hl + pop bc + dec b + jr nz, .asm_3f68e + ret +; 3f69e + + +Function3f69e: ; 3f69e + call $76a5 + call $76d0 + ret +; 3f6a5 + +Function3f6a5: ; 3f6a5 + ld a, [InLinkBattle] + and a + jr z, .asm_3f6b7 + call $7759 + ld c, $96 + call DelayFrames + call $777c + ret + +.asm_3f6b7 + ld a, [$d0ee] + and $f + ret nz + call $771d + xor a + ld [$d1e9], a + ld a, $1c + call Predef + callba Function2ed44 + ret +; 3f6d0 + +Function3f6d0: ; 3f6d0 + call $7998 + xor a + ld [Danger], a + ld [IsInBattle], a + ld [BattleType], a + ld [AttackMissed], a + ld [$d22e], a + ld [OtherTrainerClass], a + ld [$d266], a + ld [$d267], a + ld [$d232], a + ld [$d0d8], a + ld [$d0da], a + ld [$d0d9], a + ld [$d0d2], a + ld [CurMoveNum], a + ld [$d0db], a + ld [$d0d6], a + ld [$d0e4], a + ld [$d0e0], a + ld [$d0df], a + ld [$d0e1], a + ld hl, PlayerSubStatus1 + ld b, $18 +.asm_3f715 + ld [hli], a + dec b + jr nz, .asm_3f715 + call WaitSFX + ret +; 3f71d + +Function3f71d: ; 3f71d + ld hl, $c6ec + ld a, [hli] + or [hl] + inc hl + or [hl] + ret z + ld a, [$c73d] + and a + jr z, .asm_3f73d + ld hl, $c6ee + sla [hl] + dec hl + rl [hl] + dec hl + rl [hl] + jr nc, .asm_3f73d + ld a, $ff + ld [hli], a + ld [hli], a + ld [hl], a + +.asm_3f73d + ld hl, $c6ee + ld de, $d850 + call $50be + ld hl, BattleText_0x80730 + call FarBattleTextBox + ld a, [$cfc0] + bit 0, a + ret z + call ClearTileMap + call WhiteBGMap + ret +; 3f759 + +Function3f759: ; 3f759 + ld a, $41 + ld hl, $60df + rst FarCall + callba Function106187 + ld a, [CurOTMon] + ld hl, OTPartyMon1Status + call GetPartyLocation + ld a, [EnemyMonStatus] + ld [hl], a + call ClearTileMap + callba Function2c1b2 + ret +; 3f77c + +Function3f77c: ; 3f77c + callba Function3d2e0 + jp c, $780f + call $7830 + jr nz, .asm_3f797 + ld hl, $cd2a + bit 4, [hl] + jr z, .asm_3f797 + ld a, $a + ld hl, $7930 + rst FarCall + +.asm_3f797 + ld a, [$d0ee] + and $f + cp $1 + jr c, .asm_3f7ad + jr z, .asm_3f7b8 + ld a, $41 + ld hl, $6107 + rst FarCall + ld de, .Draw + jr .asm_3f7c3 + +.asm_3f7ad + ld a, $41 + ld hl, $60fb + rst FarCall + ld de, .Win + jr .asm_3f7c3 + +.asm_3f7b8 + ld a, $41 + ld hl, $6101 + rst FarCall + ld de, .Lose + jr .asm_3f7c3 + +.asm_3f7c3 + ld hl, $c546 + call PlaceString + callba Function106187 + ld c, $c8 + call DelayFrames + ld a, $1 + call GetSRAMBank + call $7a42 + call $785f + call CloseSRAM + call $7830 + jr z, .asm_3f7ee + call Functiona80 + call ClearTileMap + ret + +.asm_3f7ee + ld c, $c8 + call DelayFrames + call ClearTileMap + ret +; 3f7f7 + +.Win + db "YOU WIN@" +.Lose + db "YOU LOSE@" +.Draw + db " DRAW@" +; 3f80f + + +Function3f80f: ; 3f80f + ld hl, $c546 + ld de, .Invalid + call PlaceString + ld c, $c8 + call DelayFrames + call ClearTileMap + ret +; 3f821 + +.Invalid + db "INVALID BATTLE@" +; 3f830 + + +Function3f830: ; 3f830 + ld a, [InLinkBattle] + cp $4 + ret +; 3f836 + + +Function3f836: ; 3f836 + ld a, $1 + call GetSRAMBank + call Function3f85f + call CloseSRAM + ld hl, AttrMap + xor a + ld bc, $0168 + call ByteFill + call Function3200 + ld b, $8 + call GetSGBLayout + call Function32f9 + ld c, $8 + call DelayFrames + call Functiona80 + ret +; 3f85f + + +Function3f85f: ; 3f85f + call ClearTileMap + call ClearSprites + call .asm_3f8e0 + ld hl, $c540 + ld b, $5 + ld de, $b268 +.asm_3f870 + push bc + push hl + push de + ld a, [de] + and a + jr z, .asm_3f8c9 + ld a, [$d4b4] + and a + jr z, .asm_3f8c9 + push hl + push hl + ld h, d + ld l, e + ld de, DefaultFlypoint + ld bc, $000a + call CopyBytes + ld a, $50 + ld [de], a + inc de + ld bc, $0006 + call CopyBytes + ld de, DefaultFlypoint + pop hl + call PlaceString + pop hl + ld de, $001a + add hl, de + push hl + ld de, $d00d + ld bc, $0204 + call Function3198 + pop hl + ld de, $0005 + add hl, de + push hl + ld de, $d00f + ld bc, $0204 + call Function3198 + pop hl + ld de, $0005 + add hl, de + ld de, $d011 + ld bc, $0204 + call Function3198 + jr .asm_3f8cf + +.asm_3f8c9 + ld de, .Format + call PlaceString + +.asm_3f8cf + pop hl + ld bc, $0012 + add hl, bc + ld d, h + ld e, l + pop hl + ld bc, $0028 + add hl, bc + pop bc + dec b + jr nz, .asm_3f870 + ret + +.asm_3f8e0 + ld hl, $c4a1 + ld de, .Record + call PlaceString + + ld hl, $c518 + ld de, .Result + call PlaceString + + ld hl, $c4c8 + ld de, .Total + call PlaceString + + ld hl, $c4f6 + ld de, $b260 + call .asm_3f92b + jr c, .asm_3f92a + + ld bc, $0204 + call Function3198 + + ld hl, $c4fb + ld de, $b262 + call .asm_3f92b + + ld bc, $0204 + call Function3198 + + ld hl, $c500 + ld de, $b264 + call .asm_3f92b + + ld bc, $0204 + call Function3198 + +.asm_3f92a + ret + +.asm_3f92b + ld a, [$d4b4] + and a + ret nz + ld de, .Scores + call PlaceString + scf + ret +; 3f938 + +.Scores + db " 0 0 0@" +; 3f947 + +.Format ; 3f947 + db " --- ", $22, " - - -@" +.Record ; 3f964 + db $52, "'s RECORD@" +.Result ; 3f96e + db "RESULT WIN LOSE DRAW@" +.Total ; 3f983 + db "TOTAL WIN LOSE DRAW@" +; 3f998 + + +Function3f998: ; 3f998 + ld a, [BattleType] + cp BATTLETYPE_ROAMING + jr nz, .asm_3f9c4 + ld a, [$d0ee] + and $f + jr z, .asm_3f9af + call GetRoamMonHP + ld a, [EnemyMonHPLo] + ld [hl], a + jr .asm_3f9ca + +.asm_3f9af + call GetRoamMonHP + ld [hl], $0 + call GetRoamMonMapGroup + ld [hl], $ff + call GetRoamMonMapNumber + ld [hl], $ff + call GetRoamMonSpecies + ld [hl], $0 + ret + +.asm_3f9c4 + call FarBattleRNG + and $f + ret nz + +.asm_3f9ca + callab Function2a30d + ret +; 3f9d1 + +GetRoamMonMapGroup: ; 3f9d1 + ld a, [TempEnemyMonSpecies] + ld b, a + ld a, [RoamMon1Species] + cp b + ld hl, RoamMon1MapGroup + ret z + ld a, [RoamMon2Species] + cp b + ld hl, RoamMon2MapGroup + ret z + ld hl, RoamMon3MapGroup + ret +; 3f9e9 + +GetRoamMonMapNumber: ; 3f9e9 + ld a, [TempEnemyMonSpecies] + ld b, a + ld a, [RoamMon1Species] + cp b + ld hl, RoamMon1MapNumber + ret z + ld a, [RoamMon2Species] + cp b + ld hl, RoamMon2MapNumber + ret z + ld hl, RoamMon3MapNumber + ret +; 3fa01 + GetRoamMonHP: ; 3fa01 ; output: hl = RoamMonCurHP ld a, [TempEnemyMonSpecies] @@ -40384,8 +41864,6 @@ GetRoamMonHP: ; 3fa01 cp b ld hl, RoamMon2CurHP ret z -; remnant of the GS function -; we know this will be $00 because it's never initialized ld hl, RoamMon3CurHP ret ; 3fa19 @@ -40402,14 +41880,304 @@ GetRoamMonDVs: ; 3fa19 cp b ld hl, RoamMon2DVs ret z -; remnant of the GS function -; we know this will be $0000 because it's never initialized ld hl, RoamMon3DVs ret ; 3fa31 +GetRoamMonSpecies: ; 3fa31 + ld a, [TempEnemyMonSpecies] + ld hl, RoamMon1Species + cp [hl] + ret z + ld hl, RoamMon2Species + cp [hl] + ret z + ld hl, RoamMon3Species + ret +; 3fa42 -INCBIN "baserom.gbc", $3fa31, $3fbff - $3fa31 + +Function3fa42: ; 3fa42 + ld hl, $d276 + ld de, StringBuffer1 + ld bc, $0002 + call CopyBytes + ld hl, $d26b + ld bc, $000a + call CopyBytes + ld hl, $b254 + call $7aa0 + ld hl, $b266 + ld d, $5 +.asm_3fa62 + push hl + inc hl + inc hl + ld a, [hl] + dec hl + dec hl + and a + jr z, .asm_3fa85 + push de + ld bc, $000c + ld de, StringBuffer1 + call CompareLong + pop de + pop hl + jr c, .asm_3fa99 + ld bc, $0012 + add hl, bc + dec d + jr nz, .asm_3fa62 + ld bc, $ffee + add hl, bc + push hl + +.asm_3fa85 + ld d, h + ld e, l + ld hl, StringBuffer1 + ld bc, $000c + call CopyBytes + ld b, $6 + xor a +.asm_3fa93 + ld [de], a + inc de + dec b + jr nz, .asm_3fa93 + pop hl + +.asm_3fa99 + call $7aa0 + call $7ac8 + ret +; 3faa0 + +Function3faa0: ; 3faa0 + ld a, [$d0ee] + and $f + cp $1 + ld bc, $000d + jr c, .asm_3fab4 + ld bc, $000f + jr z, .asm_3fab4 + ld bc, $0011 + +.asm_3fab4 + add hl, bc + call $7abe + ret nc + inc [hl] + ret nz + dec hl + inc [hl] + ret +; 3fabe + +Function3fabe: ; 3fabe + dec hl + ld a, [hl] + inc hl + cp $27 + ret c + ld a, [hl] + cp $f + ret +; 3fac8 + +Function3fac8: ; 3fac8 + ld b, $5 + ld hl, $b277 + ld de, DefaultFlypoint +.asm_3fad0 + push bc + push de + push hl + call $7b54 + pop hl + ld a, e + pop de + ld [de], a + inc de + ld a, b + ld [de], a + inc de + ld a, c + ld [de], a + inc de + ld bc, $0012 + add hl, bc + pop bc + dec b + jr nz, .asm_3fad0 + ld b, $0 + ld c, $1 +.asm_3faed + ld a, b + add b + add b + ld e, a + ld d, $0 + ld hl, DefaultFlypoint + add hl, de + push hl + ld a, c + add c + add c + ld e, a + ld d, $0 + ld hl, DefaultFlypoint + add hl, de + ld d, h + ld e, l + pop hl + push bc + ld c, $3 + call StringCmp + pop bc + jr z, .asm_3fb10 + jr nc, .asm_3fb1f + +.asm_3fb10 + inc c + ld a, c + cp $5 + jr nz, .asm_3faed + inc b + ld c, b + inc c + ld a, b + cp $4 + jr nz, .asm_3faed + ret + +.asm_3fb1f + push bc + ld a, b + ld bc, $0012 + ld hl, $b266 + call AddNTimes + push hl + ld de, DefaultFlypoint + ld bc, $0012 + call CopyBytes + pop hl + pop bc + push hl + ld a, c + ld bc, $0012 + ld hl, $b266 + call AddNTimes + pop de + push hl + ld bc, $0012 + call CopyBytes + ld hl, DefaultFlypoint + ld bc, $0012 + pop de + call CopyBytes + ret +; 3fb54 + +Function3fb54: ; 3fb54 + ld e, $0 + ld a, [hld] + ld c, a + ld a, [hld] + ld b, a + ld a, [hld] + add c + ld c, a + ld a, [hld] + adc b + ld b, a + jr nc, .asm_3fb63 + inc e + +.asm_3fb63 + ld a, [hld] + add c + ld c, a + ld a, [hl] + adc b + ld b, a + ret nc + inc e + ret +; 3fb6c + +Function3fb6c: ; 3fb6c + call $7bf8 + ld hl, $c590 + ld b, $4 + ld c, $12 + call TextBox + callba MobileTextBorder + ld hl, $c505 + ld bc, $0307 + call ClearBox + call Functione51 + call Function3ed9f + call $7bd6 + xor a + ld [$ffde], a + ld [$ffd0], a + ld a, $90 + ld [$ffd2], a + ld [rWY], a + call WaitBGMap + xor a + ld [hBGMapMode], a + ld a, $13 + ld hl, $6980 + rst FarCall + ld a, $1 + ld [hBGMapMode], a + ld a, $31 + ld [$ffad], a + ld hl, $c51a + ld bc, $0606 + ld a, $13 + call Predef + xor a + ld [$ffd2], a + ld [rWY], a + call WaitBGMap + call HideSprites + ld b, $1 + call GetSGBLayout + call Function32f9 + ld a, $90 + ld [$ffd2], a + xor a + ld [$ffcf], a + ret +; 3fbd6 + +Function3fbd6: ; 3fbd6 + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + ld hl, $d000 + ld bc, VBlank5 + ld a, $7f + call ByteFill + ld de, $d000 + ld hl, VBGMap0 + ld bc, $0f40 + call Functioneba + pop af + ld [rSVBK], a + ret +; 3fbf8 + +Function3fbf8: ; 3fbf8 + call GetPlayerBackpic + call $7c30 + ret +; 3fbff GetPlayerBackpic: ; 3fbff @@ -40448,7 +42216,64 @@ GetPlayerBackpic: ; 3fbff ; 3fc30 -INCBIN "baserom.gbc", $3fc30, $3fc8b - $3fc30 +Function3fc30: ; 3fc30 + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + ld hl, VTiles0 + ld de, $9310 + ld a, [hROMBank] + ld b, a + ld c, $31 + call Functionf82 + pop af + ld [rSVBK], a + call $7c5b + ld a, $31 + ld [$ffad], a + ld hl, $c51a + ld bc, $0606 + ld a, $13 + call Predef + ret +; 3fc5b + +Function3fc5b: ; 3fc5b + ld hl, Sprites + xor a + ld [hConnectionStripLength], a + ld b, $6 + ld e, $a8 +.asm_3fc65 + ld c, $3 + ld d, $40 +.asm_3fc69 + ld [hl], d + inc hl + ld [hl], e + inc hl + ld a, [hConnectionStripLength] + ld [hli], a + inc a + ld [hConnectionStripLength], a + ld a, $1 + ld [hli], a + ld a, d + add $8 + ld d, a + dec c + jr nz, .asm_3fc69 + ld a, [hConnectionStripLength] + add $3 + ld [hConnectionStripLength], a + ld a, e + add $8 + ld e, a + dec b + jr nz, .asm_3fc65 + ret +; 3fc8b BattleStartMessage ; 3fc8b @@ -40484,9 +42309,7 @@ BattleStartMessage ; 3fc8b call $6e17 .asm_3fcc2 - ld a, $f - ld hl, CheckSleepingTreeMon - rst FarCall + callba CheckSleepingTreeMon jr c, .asm_3fceb ld a, $13 @@ -40533,12 +42356,10 @@ BattleStartMessage ; 3fc8b ld a, $b ld hl, $4000 rst FarCall - pop hl call FarBattleTextBox call $7830 - ret nz ld c, $2 @@ -44963,7 +46784,114 @@ Function4e906: ; 4e906 ret ; 4e929 -INCBIN "baserom.gbc", $4e929, $4ea0a - $4e929 +INCBIN "baserom.gbc", $4e929, $4e980 - $4e929 + + +Function4e980: ; 4e980 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + call $6998 + ld a, $43 + ld [hLCDStatCustom], a + call $69ab + xor a + ld [hLCDStatCustom], a + pop af + ld [rSVBK], a + ret +; 4e998 + +Function4e998: ; 4e998 + call $69e5 + ld a, $90 + ld [$ffcf], a + ld a, $e4 + call DmgToCgbBGPals + ld de, $e4e4 + call DmgToCgbObjPals + ret +; 4e9ab + +Function4e9ab: ; 4e9ab + ld d, $90 + ld e, $72 + ld a, $48 + inc a +.asm_4e9b2 + push af +.asm_4e9b3 + ld a, [rLY] + cp $60 + jr c, .asm_4e9b3 + ld a, d + ld [$ffcf], a + call $69f1 + inc e + inc e + dec d + dec d + pop af + push af + cp $1 + jr z, .asm_4e9ce + push de + call $69d6 + pop de + +.asm_4e9ce + call DelayFrame + pop af + dec a + jr nz, .asm_4e9b2 + ret +; 4e9d6 + +Function4e9d6: ; 4e9d6 + ld hl, $c401 + ld c, $12 + ld de, $0004 +.asm_4e9de + dec [hl] + dec [hl] + add hl, de + dec c + jr nz, .asm_4e9de + ret +; 4e9e5 + +Function4e9e5: ; 4e9e5 + ld hl, $d100 + ld a, $90 + ld bc, $0090 + call ByteFill + ret +; 4e9f1 + +Function4e9f1: ; 4e9f1 + ld hl, $d100 + ld a, d + ld c, $3e +.asm_4e9f7 + ld [hli], a + dec c + jr nz, .asm_4e9f7 + ld a, e + ld c, $22 +.asm_4e9fe + ld [hli], a + dec c + jr nz, .asm_4e9fe + xor a + ld c, $30 +.asm_4ea05 + ld [hli], a + dec c + jr nz, .asm_4ea05 + ret +; 4ea0a + Function4ea0a: ; 4ea0a @@ -61193,12 +63121,40 @@ Function106008: ; 106008 ret ; 106009 -INCBIN "baserom.gbc", $106009, $106078 - $106009 +INCBIN "baserom.gbc", $106009, $106050 - $106009 + + +Function106050: ; 106050 + ret +; 106051 + +INCBIN "baserom.gbc", $106051, $10605d - $106051 + + +Function10605d: ; 10605d + ret +; 10605e + +INCBIN "baserom.gbc", $10605e, $10606a - $10605e + + +Function10606a: ; 10606a + ret +; 10606b + +INCBIN "baserom.gbc", $10606b, $106078 - $10606b HallOfFame1: ; 0x106078 ret -INCBIN "baserom.gbc", $106079, $106094 - $106079 +INCBIN "baserom.gbc", $106079, $106086 - $106079 + + +Function106086: ; 106086 + ret +; 106087 + +INCBIN "baserom.gbc", $106087, $106094 - $106087 Function106094: ; 106094 @@ -61219,7 +63175,35 @@ Function1060d3: ; 1060d3 ret ; 1060d4 -INCBIN "baserom.gbc", $1060d4, $106187 - $1060d4 +INCBIN "baserom.gbc", $1060d4, $1060df - $1060d4 + + +Function1060df: ; 1060df + ret +; 1060e0 + +INCBIN "baserom.gbc", $1060e0, $1060fb - $1060e0 + + +Function1060fb: ; 1060fb + ret +; 1060fc + +INCBIN "baserom.gbc", $1060fc, $106101 - $1060fc + + +Function106101: ; 106101 + ret +; 106102 + +INCBIN "baserom.gbc", $106102, $106107 - $106102 + + +Function106107: ; 106107 + ret +; 106108 + +INCBIN "baserom.gbc", $106108, $106187 - $106108 Function106187: ; 106187 From 50f1d7b788418630ba45573cabce6ecc85c49af5 Mon Sep 17 00:00:00 2001 From: yenatch Date: Mon, 29 Jul 2013 23:58:02 -0400 Subject: [PATCH 27/84] no more incbins in bank 0 --- items/item_effects.asm | 4 +- main.asm | 2021 +++++++++++++++++++++++++++++++++++----- 2 files changed, 1790 insertions(+), 235 deletions(-) diff --git a/items/item_effects.asm b/items/item_effects.asm index 09e6857bf..1ed4c3111 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -402,7 +402,7 @@ ParkBall: ; e8a2 pop hl ld de, StringBuffer1 - call InitString + call InitName jp $6be2 @@ -466,7 +466,7 @@ ParkBall: ; e8a2 ld hl, $b082 ld de, StringBuffer1 - call InitString + call InitName call CloseSRAM diff --git a/main.asm b/main.asm index 86d3ae755..f5297d045 100644 --- a/main.asm +++ b/main.asm @@ -38,13 +38,13 @@ SECTION "vblank",HOME[$40] ; vblank interrupt jp VBlank SECTION "lcd",HOME[$48] ; lcd interrupt - jp $0552 + jp Function552 SECTION "timer",HOME[$50] ; timer interrupt - jp $3e93 + jp Function3e93 SECTION "serial",HOME[$58] ; serial interrupt - jp $06ef + jp Function6ef SECTION "joypad",HOME[$60] ; joypad interrupt jp JoypadInt @@ -360,8 +360,81 @@ Function4c7: ; 4c7 ret ; 4dd -INCBIN "baserom.gbc", $4dd, $52f - $4dd +Function4dd: ; 4dd + ld a, [hCGB] + and a + jr z, .asm_4e9 + ld hl, $0522 + ld b, $4 + jr .asm_501 +.asm_4e9 + ld hl, $053a + ld b, $4 + jr .asm_501 + + ld a, [hCGB] + and a + jr z, .asm_4fc + ld hl, $052b + ld b, $3 + jr .asm_501 + +.asm_4fc + ld hl, $0543 + ld b, $3 + +.asm_501 + push de + ld a, [hld] + ld d, a + ld a, [hld] + ld e, a + call DmgToCgbObjPals + ld a, [hld] + call DmgToCgbBGPals + ld c, $8 + call DelayFrames + pop de + dec b + jr nz, .asm_501 + ret +; 517 + + +IncGradGBPalTable_00: ; 517 + db %11111111 ; bgp + db %11111111 ; obp1 + db %11111111 ; obp2 + ; and so on... + db %11111110 + db %11111110 + db %11111110 + + db %11111001 + db %11111001 + db %11111001 + + db %11100100 + db %11100100 + db %11100100 + + db %11100100 + db %11100100 + db %11100100 + + db %10010000 + db %10010000 + db %10010000 + + db %01000000 + db %01000000 + db %01000000 + + db %00000000 + db %00000000 + db %00000000 +; 52f IncGradGBPalTable_01: ; 52f db %11111111 ; bgp @@ -2681,16 +2754,16 @@ SpeechTextBox: ; 103e jp TextBox ; 1048 - -INCBIN "baserom.gbc", $1048, $1052 - $1048 - +UnknownText_0x1048: ; 1048 + db $0, "ゲームフりーク!", $57 +; 1052 Function1052: ; 1052 - ld hl, $1056 + ld hl, .text_1056 ret -; 1056 - -INCBIN "baserom.gbc", $1056, $1057 - $1056 +.text_1056 + db "@" +; 1057 PrintText: ; 1057 @@ -2999,7 +3072,7 @@ Function1205: ; 1205 call PlaceString ld h, b ld l, c - ld de, $12a2 + ld de, String12a2 call PlaceString push bc ld hl, $5939 @@ -3021,9 +3094,9 @@ Function1205: ; 1205 ld l, c ld a, [PlayerGender] bit 0, a - ld de, $12a5 + ld de, String12a5 jr z, .asm_126a ; 0x1263 $5 - ld de, $12a6 + ld de, String12a6 jr .asm_126a ; 0x1268 $0 .asm_126a call PlaceString @@ -3033,23 +3106,37 @@ Function1205: ; 1205 jp NextChar ; 0x1273 - -Char5CText: ; 0x1273 +Char5CText: ; 1273 db "TM@" -Char5DText: ; 0x1276 +Char5DText: ; 1276 db "TRAINER@" -Char5BText: ; 0x127e +Char5BText: ; 127e db "PC@" - -INCBIN "baserom.gbc", $1281, $1293 - $1281 - -Char56Text: ; 0x1293 - db "…@" -Char5AText: ; 0x1295 +Char5EText: ; 1281 + db "ROCKET@" +Char54Text: ; 1288 + db "POKé@" +Char23Text: ; 128d + db "こうげき@" +Char56Text:; 1292 + db "……@" +Char5AText: ; 1295 db "Enemy @" - -INCBIN "baserom.gbc", $129c, $12a7 - $129c - +Char4AText: ; 129c + db $e1, $e2, "@" ; PK MN +Char24Text: ; 129f + db $70, $71, "@" ; PO KE +String12a2: ; 12a2 + db " @" +Char35Text: +Char36Text: +Char37Text: ; 12a4 + db "@" +String12a5: ; 12a5 + db "@" +String12a6: ; 12a6 + db "@" +; 12a7 Function12a7: ; 12a7 pop hl @@ -3211,13 +3298,13 @@ Function135a: ; 135a .asm_137c pop hl - ld de, $1382 + ld de, .string_1382 dec de ret -; 1382 - -INCBIN "baserom.gbc", $1382, $1383 - $1382 +.string_1382 + db "@" +; 1383 Function1383: ; 1383 ld a, $e6 @@ -3301,9 +3388,10 @@ Function13d4: ; 13d4 Function13e0: ; 13e0 ld hl, $13e4 ret -; 13e4 -INCBIN "baserom.gbc", $13e4, $13e5 - $13e4 +.string_13e4 + db "@" +; 13e5 Function13e5: ; 13e5 @@ -3320,9 +3408,9 @@ Function13e5: ; 13e5 Function13f6: ; 13f6 .asm_13f6 ld a, [hli] - cp $50 + cp "@" ret z - call $13ff + call Function13ff jr .asm_13f6 ; 13ff @@ -3330,8 +3418,8 @@ Function13ff: ; 13ff push hl push bc ld c, a - ld b, $0 - ld hl, $1410 + ld b, 0 + ld hl, TextCommands add hl, bc add hl, bc ld e, [hl] @@ -3339,14 +3427,43 @@ Function13ff: ; 13ff ld d, [hl] pop bc pop hl + +; jp de push de ret ; 1410 -INCBIN "baserom.gbc", $1410, $143e - $1410 +TextCommands: ; 1410 + dw Text_00 + dw Text_01 + dw Text_02 + dw Text_03 + dw Text_04 + dw Text_05 + dw Text_06 + dw Text_07 + dw Text_08 + dw Text_09 + dw Text_0A + dw Text_PlaySound ; $0b + dw Text_0C + dw Text_0D + dw Text_PlaySound ; $0e + dw Text_PlaySound ; $0f + dw Text_PlaySound ; $10 + dw Text_PlaySound ; $11 + dw Text_PlaySound ; $12 + dw Text_PlaySound ; $13 + dw Text_14 + dw Text_15 + dw Text_16 +; 143e +Text_00: ; 143e +; TX +; write text until "@" +; [$00]["...@"] -Function143e: ; 143e ld d, h ld e, l ld h, b @@ -3358,7 +3475,12 @@ Function143e: ; 143e ret ; 1449 -Function1449: ; 1449 +Text_01: ; 1449 +; TX_RAM +; write text from a ram address +; little endian +; [$01][addr] + ld a, [hli] ld e, a ld a, [hli] @@ -3371,28 +3493,43 @@ Function1449: ; 1449 ret ; 1455 -Function1455: ; 1455 +Text_16: ; 1455 +; TX_FAR +; write text from a different bank +; little endian +; [$16][addr][bank] + ld a, [hROMBank] push af + ld a, [hli] ld e, a ld a, [hli] ld d, a ld a, [hli] + ld [hROMBank], a - ld [$2000], a + ld [MBC3RomBank], a + push hl ld h, d ld l, e call Function13f6 pop hl + pop af ld [hROMBank], a - ld [$2000], a + ld [MBC3RomBank], a ret ; 1470 -Function1470: ; 1470 +Text_02: ; 1470 +; TX_NUM +; write bcdnumber from address, typically ram +; little endian +; [$02][addr][flags] +; flags: see PrintBCDNumber + ld a, [hli] ld e, a ld a, [hli] @@ -3409,7 +3546,12 @@ Function1470: ; 1470 ret ; 1480 -Function1480: ; 1480 +Text_03: ; 1480 +; TX_MOVE +; move to a new tile +; little endian +; [$03][tileaddr] + ld a, [hli] ld [$d0e6], a ld c, a @@ -3419,7 +3561,12 @@ Function1480: ; 1480 ret ; 148b -Function148b: ; 148b +Text_04: ; 148b +; TX_BOX +; draw a box +; little endian +; [$04][tileaddr][height][width] + ld a, [hli] ld e, a ld a, [hli] @@ -3436,17 +3583,26 @@ Function148b: ; 148b ret ; 149b -Function149b: ; 149b - ld bc, $c5e1 +Text_05: ; 149b +; TX_LOW +; write text at (1,16) +; [$05] + + bccoord 1, 16 ret ; 149f -Function149f: ; 149f +Text_06:: ; 149f +; TX_WAITBUTTON +; wait for button press +; show arrow +; [06] + ld a, [InLinkBattle] cp $3 - jp z, $1562 + jp z, Text_0D cp $4 - jp z, $1562 + jp z, Text_0D push hl call Function13c7 push bc @@ -3457,28 +3613,31 @@ Function149f: ; 149f ret ; 14ba -Function14ba: ; 14ba +Text_07: ; 14ba push hl call Function13cd call Function138c call Function138c pop hl - ld bc, $c5e1 + bccoord 1, 16 ret ; 14c9 -Function14c9: ; 14c9 +Text_08: ; 14c9 +; TX_ASM + +; rom only? bit 7, h jr nz, .asm_14ce jp [hl] .asm_14ce - ld a, $50 + ld a, "@" ld [hl], a ret ; 14d2 -Function14d2: ; 14d2 +Text_09: ; 14d2 ld a, [hli] ld e, a ld a, [hli] @@ -3502,14 +3661,14 @@ Function14d2: ; 14d2 ret ; 14ed -Function14ed: ; 14ed +Text_0A: ; 14ed push hl push bc call GetJoypadPublic ld a, [hJoyDown] - and $3 + and BUTTON_A | BUTTON_B jr nz, .asm_14fd - ld c, $1e + ld c, 30 call DelayFrames .asm_14fd @@ -3518,13 +3677,17 @@ Function14ed: ; 14ed ret ; 1500 -Function1500: ; 1500 +Text_PlaySound:: ; 1500 +; chars: +; $0b, $0e, $0f, $10, $11, $12, $13 +; see TextSFX + push bc dec hl ld a, [hli] ld b, a push hl - ld hl, $152d + ld hl, TextSFX .asm_1508 ld a, [hli] cp $ff @@ -3562,24 +3725,18 @@ Function1522: ; 1522 ret ; 152d -Function152d: ; 152d - dec bc - nop - nop - ld [de], a - dec l - nop - ld c, $9 - nop - rrca - ld bc, $1000 - ld [bc], a - nop - ld de, $000a - inc de - inc l - nop - rst $38 +TextSFX: ; 152d + dbw $0b, SFX_DEX_FANFARE_50_79 + dbw $12, SFX_FANFARE + dbw $0e, SFX_DEX_FANFARE_20_49 + dbw $0f, SFX_ITEM + dbw $10, SFX_CAUGHT_MON + dbw $11, SFX_DEX_FANFARE_80_109 + dbw $13, SFX_SLOT_MACHINE_START + db $ff ; end +; 1543 + +Text_0C: ; 1543 ld a, [hli] ld d, a push hl @@ -3587,15 +3744,14 @@ Function152d: ; 152d ld l, c .asm_1548 push de - ld a, $75 + ld a, "…" ld [hli], a call GetJoypadPublic ld a, [hJoyDown] - and $3 + and BUTTON_A | BUTTON_B jr nz, .asm_155a - ld c, $a + ld c, 10 call DelayFrames - .asm_155a pop de dec d @@ -3606,9 +3762,9 @@ Function152d: ; 152d ret ; 1562 - - -Function1562: ; 1562 +Text_0D: ; 1562 +; wait for key down +; display arrow push hl push bc call Functionaaf @@ -3617,11 +3773,14 @@ Function1562: ; 1562 ret ; 156a -Function156a: ; 156a +Text_14: ; 156a +; TX_PREDEF +; [$14][id] + ld a, [hli] push hl ld e, a - ld d, $0 + ld d, 0 ld hl, $4000 add hl, de add hl, de @@ -3637,6 +3796,8 @@ Function156a: ; 156a ; 1582 Text_15: ; 1582 +; TX_DAY + call GetWeekday push hl push bc @@ -5011,7 +5172,7 @@ Function1b3f: ; 1b3f ld hl, DefaultFlypoint ld e, [hl] inc [hl] - ld d, $0 + ld d, 0 ld hl, MovementBuffer add hl, de ld [hl], a @@ -5031,7 +5192,7 @@ Function1b50: ; 1b50 .asm_1b57 pop af .asm_1b58 - call $1b3f + call Function1b3f dec c jr nz, .asm_1b58 ret @@ -5072,13 +5233,13 @@ Function1b5f: ; 1b5f pop af ld b, a ld a, h - call $1b92 + call Function1b92 ld c, d - call $1b50 + call Function1b50 ld a, l - call $1b92 + call Function1b92 ld c, e - call $1b50 + call Function1b50 ret ; 1b92 @@ -5086,13 +5247,13 @@ Function1b92: ; 1b92 push de push hl ld l, b - ld h, $0 + ld h, 0 add hl, hl add hl, hl ld e, a - ld d, $0 + ld d, 0 add hl, de - ld de, $1ba5 + ld de, .data_1ba5 add hl, de ld a, [hl] pop hl @@ -5100,8 +5261,9 @@ Function1b92: ; 1b92 ret ; 1ba5 -INCBIN "baserom.gbc", $1ba5, $1bb1 - $1ba5 - +.data_1ba5 + db 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 +; 1bb1 Function1bb1: ; 1bb1 push hl @@ -5130,7 +5292,7 @@ Function1bc9: ; 1bc9 ld hl, $41a8 ld a, $9 rst FarCall - call $1bdd + call Function1bdd ret ; 1bd3 @@ -5138,7 +5300,7 @@ Function1bd3: ; 1bd3 ld hl, $41ab ld a, $9 rst FarCall - call $1bdd + call Function1bdd ret ; 1bdd @@ -5176,8 +5338,6 @@ Function1bf7: ; 1bf7 ret ; 1c00 - - Function1c00: ; 1c00 ld hl, $4374 ld a, $9 @@ -5185,8 +5345,6 @@ Function1c00: ; 1c00 ret ; 1c07 - - Function1c07: ; 0x1c07 push af ld hl, $43e8 @@ -5452,25 +5610,30 @@ Function1d4b: ; 1d4b ; 1d4f - Function1d4f: ; 1d4f push hl - call $1d58 + call Function1d58 pop hl jp PrintText ; 1d57 -INCBIN "baserom.gbc", $1d57, $1d58 - $1d57 - +Function1d57: ; 1d57 + ret +; 1d58 Function1d58: ; 1d58 - ld hl, $1d5f + ld hl, MenuDataHeader_0x1d5f call Function1d35 ret ; 1d5f -INCBIN "baserom.gbc", $1d5f, $1d67 - $1d5f - +MenuDataHeader_0x1d5f: ; 1d5f + db $40 ; tile backup + db 12, 0 ; start coords + db 17, 19 ; end coords + dw $8000 + db 0 ; default option +; 1d67 Function1d67: ; 1d67 call Function1d4f @@ -5478,23 +5641,25 @@ Function1d67: ; 1d67 ret ; 1d6e - - Function1d6e: ; 1d6e - ld hl, $1d75 + ld hl, MenuDataHeader_0x1d75 call Function1d35 ret ; 1d75 -INCBIN "baserom.gbc", $1d75, $1d7d - $1d75 - +MenuDataHeader_0x1d75: ; 1d75 + db $40 ; tile backup + db 0, 0 ; start coords + db 17, 19 ; end coords + dw $0000 + db 1 ; default option +; 1d7d Function1d7d: ; 1d7d call Function1c07 ret ; 1d81 - Function1d81: ; 0x1d81 xor a ld [hBGMapMode], a @@ -5527,7 +5692,6 @@ Function1dab: ; 1dab ret ; 1db8 - Function1db8: ; 0x1db8 push hl push bc @@ -5598,8 +5762,20 @@ Function1dcf: ; 1dcf ret ; 1e1d -INCBIN "baserom.gbc", $1e1d, $1e2e - $1e1d +MenuDataHeader_0x1e1d: ; 1e1d + db $40 ; tile backup + db 5, 10 ; start coords + db 9, 15 ; end coords + dw MenuData2_0x1e25 + db 1 ; default option +; 1e25 +MenuData2_0x1e25: ; 1e25 + db $c0 ; flags + db 2 + db "YES@" + db "NO@" +; 1e2e Function1e2e: ; 1e2e call $1e35 @@ -5632,7 +5808,6 @@ Function1e35: ; 1e35 ret ; 1e5d - Function1e5d: ; 1e5d call MenuFunc_1e7f call MenuWriteText @@ -5643,8 +5818,6 @@ Function1e5d: ; 1e5d ret ; 1e70 - - SetUpMenu: ; 1e70 call MenuFunc_1e7f ; ??? call MenuWriteText @@ -5879,8 +6052,6 @@ Function1fa7: ; 1fa7 jp [hl] ; 1fb1 - - Function1fb1: ; 1fb1 ld e, a ld d, $0 @@ -5895,8 +6066,6 @@ Function1fb1: ; 1fb1 ret ; 1fbf - - Function1fbf: ; 1fbf ld hl, $cf71 call Function1ff0 @@ -6004,8 +6173,6 @@ Function2048: ; 2048 ret ; 2057 - - Function2057: ; 2057 ld a, [hROMBank] push af @@ -6058,6 +6225,7 @@ AskSerial: ; 2063 ret ; 208a + Function208a: ; 208a xor a ld [GameTimeCap], a @@ -6207,8 +6375,6 @@ Function210f: ; 210f ret ; 211b - - Function211b: ; 211b push hl ld hl, $dbf7 @@ -6243,8 +6409,6 @@ Function212a: ; 212a ret ; 2147 - - Function2147: ; 2147 push bc ld a, [hROMBank] @@ -6291,7 +6455,7 @@ Function2147: ; 2147 ; 2173 Function2173: ; 2173 - call $217a + call Function217a call $0db1 ret ; 217a @@ -6453,7 +6617,20 @@ Function222a: ; 222a ret ; 2238 -INCBIN "baserom.gbc", $2238, $224a - $2238 +Function2238: ; 2238 + call Function2252 + ret nc + push bc + ld a, $5 + ld hl, $49af + rst FarCall + pop bc + ret nc + call Function22a7 + scf + ret +; 224a + Function224a: ; 224a @@ -7176,14 +7353,11 @@ FillEastConnectionStrip: ; 25f6 ret ; 261b - Function261b: ; 261b ld [$d432], a ret ; 261f - - PushScriptPointer: ; 261f ; Call a script at a:hl. @@ -7200,9 +7374,13 @@ PushScriptPointer: ; 261f ret ; 2631 - -INCBIN "baserom.gbc", $2631, $263b - $2631 - +Function2631: ; 2631 + ld a, [ScriptRunning] + and a + ret nz + call GetMapEventBank + jr PushScriptPointer +; 263b Function263b: ; 263b ld b, a @@ -7329,7 +7507,6 @@ Function26c7: ; 26c7 ; 26d4 - GetScriptByte: ; 0x26d4 ; Return byte at ScriptBank:ScriptPos in a. @@ -7364,6 +7541,7 @@ GetScriptByte: ; 0x26d4 ret ; 0x26ef + ObjectEvent: ; 0x26ef jumptextfaceplayer ObjectEventText ; 0x26f2 @@ -7374,7 +7552,24 @@ ObjectEventText: ; 0x26f7 -INCBIN "baserom.gbc", $26f7, $2707 - $26f7 +BGEvent: ; 26f7 + jumptext BGEventText +; 26fa + +BGEventText: ; 26fa + text_jump UnknownText_0x1c46fc, BANK(UnknownText_0x1c46fc) + db "@" +; 26ff + + +CoordinatesEvent: ; 26ff + jumptext CoordinatesEventText +; 2702 + +CoordinatesEventText: ; 2702 + text_jump UnknownText_0x1c4706, BANK(UnknownText_0x1c4706) + db "@" +; 2707 Function2707: ; 2707 @@ -7407,8 +7602,180 @@ Function271e: ; 271e ret ; 272a -INCBIN "baserom.gbc", $272a, $2821 - $272a +Function272a: ; 272a + ld hl, TileMap + ld de, BGMapBuffer + call $27b7 + ld c, $28 + call Functiondbd + ld a, [$d152] + ld e, a + ld a, [$d153] + ld d, a + call $27d3 + ld a, $1 + ld [hBGMapUpdate], a + ret +; 2748 + +Function2748: ; 2748 + ld hl, $c5e0 + ld de, BGMapBuffer + call $27b7 + ld c, $28 + call Functiondbd + ld a, [$d152] + ld l, a + ld a, [$d153] + ld h, a + ld bc, $0200 + add hl, bc + ld a, h + and $3 + or $98 + ld e, l + ld d, a + call $27d3 + ld a, $1 + ld [hBGMapUpdate], a + ret +; 2771 + +Function2771: ; 2771 + ld hl, TileMap + ld de, BGMapBuffer + call $27c0 + ld c, $24 + call Functiondbd + ld a, [$d152] + ld e, a + ld a, [$d153] + ld d, a + call $27f8 + ld a, $1 + ld [hBGMapUpdate], a + ret +; 278f + +Function278f: ; 278f + ld hl, $c4b2 + ld de, BGMapBuffer + call $27c0 + ld c, $24 + call Functiondbd + ld a, [$d152] + ld e, a + and $e0 + ld b, a + ld a, e + add $12 + and $1f + or b + ld e, a + ld a, [$d153] + ld d, a + call $27f8 + ld a, $1 + ld [hBGMapUpdate], a + ret +; 27b7 + +Function27b7: ; 27b7 + ld c, $28 +.asm_27b9 + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .asm_27b9 + ret +; 27c0 + +Function27c0: ; 27c0 + ld c, $12 +.asm_27c2 + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + inc de + ld a, $13 + add l + ld l, a + jr nc, .asm_27cf + inc h + +.asm_27cf + dec c + jr nz, .asm_27c2 + ret +; 27d3 + +Function27d3: ; 27d3 + ld hl, BGMapBufferPtrs + push de + call $27df + pop de + ld a, $20 + add e + ld e, a + ld c, $a +.asm_27e1 + ld a, e + ld [hli], a + ld a, d + ld [hli], a + ld a, e + inc a + inc a + and $1f + ld b, a + ld a, e + and $e0 + or b + ld e, a + dec c + jr nz, .asm_27e1 + ld a, $14 + ld [$ffdc], a + ret +; 27f8 + +Function27f8: ; 27f8 + ld hl, BGMapBufferPtrs + ld c, $12 +.asm_27fd + ld a, e + ld [hli], a + ld a, d + ld [hli], a + ld a, $20 + add e + ld e, a + jr nc, .asm_280e + inc d + ld a, d + and $3 + or $98 + ld d, a + +.asm_280e + dec c + jr nz, .asm_27fd + ld a, $12 + ld [$ffdc], a + ret +; 2816 + +Function2816: ; 2816 + ld hl, BGMapBuffer + ld bc, $0078 + xor a + call ByteFill + ret +; 2821 Function2821: ; 2821 ld hl, TileSetAddress @@ -7489,8 +7856,94 @@ Function2879: ; 2879 ret ; 289d -INCBIN "baserom.gbc", $289d, $2914 - $289d +Function289d: ; 289d + ld hl, $d194 + ld a, [hli] + ld h, [hl] + ld l, a + ld de, $dcb9 + ld a, [$d19f] + add $6 + ld [hConnectionStripLength], a + ld a, [$d151] + and a + jr z, .asm_28cb + cp $1 + jr z, .asm_28c0 + cp $2 + jr z, .asm_28d4 + cp $3 + jr z, .asm_28da + ret +.asm_28c0 + ld de, $dcbf + ld a, [hConnectionStripLength] + ld c, a + ld b, $0 + add hl, bc + jr .asm_28ce + +.asm_28cb + ld de, $dcb9 + +.asm_28ce + ld b, $6 + ld c, $4 + jr .asm_28f7 + +.asm_28d4 + ld de, $dcba + inc hl + jr .asm_28dd + +.asm_28da + ld de, $dcb9 + +.asm_28dd + ld b, $5 + ld c, $5 + jr .asm_28f7 + + ld hl, $d194 + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [$d19f] + add $6 + ld [hConnectionStripLength], a + ld de, $dcb9 + ld b, $6 + ld c, $5 + +.asm_28f7 + push bc + push hl + push de +.asm_28fa + ld a, [de] + inc de + ld [hli], a + dec b + jr nz, .asm_28fa + pop de + ld a, e + add $6 + ld e, a + jr nc, .asm_2908 + inc d + +.asm_2908 + pop hl + ld a, [hConnectionStripLength] + ld c, a + ld b, $0 + add hl, bc + pop bc + dec c + jr nz, .asm_28f7 + ret +; 2914 Function2914: ; 2914 xor a @@ -7506,11 +7959,11 @@ Function2914: ; 2914 call $29ff ret nz ld a, [StandingTile] - and $7 - ld hl, $2945 + and 7 + ld hl, .data_2945 add l ld l, a - ld a, $0 + ld a, 0 adc h ld h, a ld a, [hl] @@ -7520,8 +7973,9 @@ Function2914: ; 2914 ret ; 2945 -INCBIN "baserom.gbc", $2945, $294d - $2945 - +.data_2945 ; 2945 + db 1, 2, 4, 8, 9, 10, 5, 6 +; 294d Function294d: ; 294d ld a, [MapX] @@ -7644,7 +8098,6 @@ Function29ff: ; 29ff ; 2a07 - GetFacingTileCoord: ; 2a07 ; Return map coordinates in (d, e) and tile id in a ; of the tile the player is facing. @@ -7756,7 +8209,6 @@ Function2a66: ; 2a66 ; 2a8b - CheckFacingSign: ; 2a8b call GetFacingTileCoord ld b, a @@ -7780,7 +8232,7 @@ CheckFacingSign: ; 2a8b ret ; 2aaa -; 2aaa +Function2aaa: ; 2aaa ld hl, $dc02 ld a, [hli] ld h, [hl] @@ -7816,10 +8268,75 @@ CheckFacingSign: ; 2a8b call CopyBytes scf ret -; 0x2ad4 +; 2ad4 +Function2ad4: ; 2ad4 + ld a, [$dbfe] + and a + ret z + ld c, a + ld a, [hROMBank] + push af + call Function2c52 + call $2ae7 + pop hl + ld a, h + rst Bankswitch + ret +; 2ae7 -INCBIN "baserom.gbc", $2ad4, $2b29 - $2ad4 +Function2ae7: ; 2ae7 + ld hl, $dbff + ld a, [hli] + ld h, [hl] + ld l, a + call Function211b + ld b, a + ld a, [MapX] + sub $4 + ld d, a + ld a, [MapY] + sub $4 + ld e, a +.asm_2afd + push hl + ld a, [hli] + cp b + jr z, .asm_2b06 + cp $ff + jr nz, .asm_2b10 + +.asm_2b06 + ld a, [hli] + cp e + jr nz, .asm_2b10 + ld a, [hli] + cp d + jr nz, .asm_2b10 + jr .asm_2b1d + +.asm_2b10 + pop hl + ld a, $8 + add l + ld l, a + jr nc, .asm_2b18 + inc h + +.asm_2b18 + dec c + jr nz, .asm_2afd + xor a + ret + +.asm_2b1d + pop hl + ld de, EngineBuffer1 + ld bc, $0008 + call CopyBytes + scf + ret +; 2b29 FadeToMenu: ; 2b29 @@ -7864,7 +8381,6 @@ Function2b3c: ; 2b3c ; 2b74 - Function2b74: ; 0x2b74 push af ld a, $1 @@ -7921,9 +8437,15 @@ Function2bae: ; 2bae ret ; 2be5 -INCBIN "baserom.gbc", $2be5, $2bed - $2be5 -GetMapHeaderPointer: ; 0x2bed +GetMapHeaderPointer: ; 2be5 + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a +; 2bed + +GetAnyMapHeaderPointer: ; 0x2bed ; Prior to calling this function, you must have switched banks so that ; MapGroupPointers is visible. @@ -7979,7 +8501,7 @@ GetAnyMapHeaderMember: ; 0x2c0c ld a, BANK(MapGroupPointers) rst Bankswitch - call GetMapHeaderPointer + call GetAnyMapHeaderPointer add hl, de ld c, [hl] inc hl @@ -7992,18 +8514,26 @@ GetAnyMapHeaderMember: ; 0x2c0c ; 0x2c1c -INCBIN "baserom.gbc", $2c1c, $2c24 - $2c1c - +Function2c1c: ; 2c1c + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a +; 2c24 Function2c24: ; 2c24 - call $2c31 + call Function2c31 rst Bankswitch - ret ; 2c29 -INCBIN "baserom.gbc", $2c29, $2c31 - $2c29 +Function2c29: ; 2c29 + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a +; 2c31 Function2c31: ; 2c31 push hl @@ -8021,34 +8551,27 @@ Function2c3d: ; 2c3d push af ld a, $25 rst Bankswitch - call $2be5 ld de, $d198 ld bc, $0005 call CopyBytes pop af rst Bankswitch - ret ; 2c52 - - Function2c52: ; 2c52 ld a, [MapEventBank] rst Bankswitch - ret ; 2c57 - GetMapEventBank: ; 2c57 ld a, [MapEventBank] ret ; 2c5b - GetAnyMapBlockdataBank: ; 2c5b ; Return the blockdata bank for group b map c. push hl @@ -8079,7 +8602,6 @@ GetAnyMapBlockdataBank: ; 2c5b ret ; 2c7d - GetSecondaryMapHeaderPointer: ; 0x2c7d ; returns the current map's secondary map header pointer in hl. push bc @@ -8093,7 +8615,6 @@ GetSecondaryMapHeaderPointer: ; 0x2c7d ret ; 2c8a - GetMapPermission: ; 2c8a push hl push de @@ -8107,9 +8628,29 @@ GetMapPermission: ; 2c8a ret ; 2c98 +Function2c98: ; 2c98 + ret +; 2c99 -INCBIN "baserom.gbc", $2c98, $2caf - $2c98 +Function2c99: ; 2c99 + push hl + push de + push bc + ld de, $0002 + call GetAnyMapHeaderMember + ld a, c + pop bc + pop de + pop hl + ret +; 2ca7 +Function2ca7: ; 2ca7 + ld de, $0001 + call GetAnyMapHeaderMember + ld a, c + ret +; 2caf GetWorldMapLocation: ; 0x2caf ; given a map group/id in bc, return its location on the Pokégear map. @@ -8125,7 +8666,6 @@ GetWorldMapLocation: ; 0x2caf ret ; 0x2cbd - Function2cbd: ; 2cbd push hl push bc @@ -8172,11 +8712,14 @@ Function2cbd: ; 2cbd jr .asm_2cd7 ; 2cff -INCBIN "baserom.gbc", $2cff, $2d05 - $2cff - +Function2cff: ; 2cff + call Function2d0d + and $f + ret +; 2d05 Function2d05: ; 2d05 - call $2d0d + call Function2d0d and $f0 swap a ret @@ -8193,8 +8736,65 @@ Function2d0d: ; 2d0d ret ; 2d19 -INCBIN "baserom.gbc", $2d19, $2d61 - $2d19 +Function2d19: ; 2d19 + push de + push hl + push bc + ld de, $0008 + call GetMapHeaderMember + ld a, c + pop bc + pop hl + pop de + ret +; 2d27 +Function2d27: ; 2d27 + push hl + push bc + ld hl, $5596 + ld bc, $000f + ld a, [$d199] + call AddNTimes + ld de, TileSetBank + ld bc, $000f + ld a, $13 + call FarCopyBytes + pop bc + pop hl + ret +; 2d43 + +Function2d43: ; 2d43 + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + ret +; 2d54 + + +FarJpDe: ; 2d54 + ld [hBuffer], a + ld a, [hROMBank] + push af + ld a, [hBuffer] + rst Bankswitch + call Function2d61 + jr ReturnFarJump +; 2d61 Function2d61: ; 2d61 push de @@ -8202,7 +8802,6 @@ Function2d61: ; 2d61 ; 2d63 - FarJpHl: ; 2d63 ; Jump to a:hl. ; Preserves all registers besides a. @@ -8213,9 +8812,10 @@ FarJpHl: ; 2d63 push af ld a, [hBuffer] rst Bankswitch - - call .hl - + call Function2d82 +; 2d6e + +ReturnFarJump: ; 2d6e ; We want to retain the contents of f. ; To do this, we can pop to bc instead of af. @@ -8234,7 +8834,9 @@ FarJpHl: ; 2d63 ld a, [$cfba] ld c, a ret -.hl +; 2d82 + +Function2d82: ; 2d82 jp [hl] ; 2d83 @@ -8415,7 +9017,39 @@ Function2e31: ; 2e31 ret ; 2e4e -INCBIN "baserom.gbc", $2e4e, $2e6f - $2e4e +Function2e4e: ; 2e4e + scf + ret +; 2e50 + +Function2e50: ; 2e50 + xor a + ld hl, $da72 + ld [hli], a + ret +; 2e56 + +Function2e56: ; 2e56 + xor a + ld hl, BikeFlags + ld [hli], a + ld [hl], a + ret +; 2e5d + +Function2e5d: ; 2e5d + ld a, [$d19a] + cp $2 + jr z, .asm_2e69 + cp $1 + jr z, .asm_2e69 + ret + +.asm_2e69 + ld hl, StatusFlags + res 2, [hl] + ret +; 2e6f BitTable1Func: ; 0x2e6f @@ -8491,7 +9125,24 @@ BitTableFunc: ; 0x2e76 ret ; 0x2ead -INCBIN "baserom.gbc", $2ead, $2ec6 - $2ead + +Function2ead: ; 2ead + ld de, $000b + ld b, $2 + callba GetFlag2 + ld a, c + and a + ret +; 2ebb + +Function2ebb: ; 2ebb + ld a, [$c2cc] + bit 1, a + ret z + ld a, [hJoyDown] + bit 1, a + ret +; 2ec6 Function2ec6: ; 2ec6 @@ -8505,7 +9156,15 @@ Function2ec8: ; 2ec8 ret ; 2ecb -INCBIN "baserom.gbc", $2ecb, $2ed3 - $2ecb + +Function2ecb: ; 2ecb + push hl + ld hl, $c2cc + bit 1, [hl] + pop hl + ret +; 2ed3 + Function2ed3: ; 0x2ed3 ; disables overworld sprite updating? @@ -8530,15 +9189,22 @@ Function2ee4: ; 2ee4 ret ; 2ef6 -INCBIN "baserom.gbc", $2ef6, $2ef9 - $2ef6 -InitString: ; 0x2ef9 -; if the string pointed to by hl is empty (defined as "zero or more spaces -; followed by a null"), then initialize it to the string pointed to by de. -; +InitString: ; 2ef6 +; Init a string of length c. + push hl + jr _InitString +; 2ef9 + +InitName: ; 2ef9 ; Intended for names, so this function is limited to ten characters. push hl ld c, 10 +; 2efc + +_InitString: ; 2efc +; if the string pointed to by hl is empty (defined as "zero or more spaces +; followed by a null"), then initialize it to the string pointed to by de. push bc .loop ld a, [hli] @@ -8561,18 +9227,47 @@ InitString: ; 0x2ef9 pop bc pop hl ret -; 0x2f17 +; 2f17 + +Function2f17: ; 2f17 + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + call GetWorldMapLocation + cp $5f + jr z, .asm_2f39 + cp $0 + jr nz, .asm_2f35 + ld a, [BackupMapGroup] + ld b, a + ld a, [BackupMapNumber] + ld c, a + call GetWorldMapLocation + +.asm_2f35 + cp $2f + jr nc, .asm_2f3b + +.asm_2f39 + xor a + ret + +.asm_2f3b + ld a, $1 + ret +; 2f3e -INCBIN "baserom.gbc", $2f17, $2f3f - $2f17 - +Function2f3e: ; 2f3e + ret +; 2f3f DoItemEffect: ; 2f3f callba _DoItemEffect ret ; 2f46 - CheckTossableItem: ; 2f46 push hl push de @@ -8584,7 +9279,6 @@ CheckTossableItem: ; 2f46 ret ; 2f53 - Function2f53: ; 2f53 push hl push de @@ -8646,7 +9340,6 @@ Function2f79: ; 2f79 ; 2f8c - RNG: ; 2f8c ; Two random numbers are generated by adding and subtracting ; the divider to the respective values every time it's called. @@ -8767,13 +9460,21 @@ JpDe: ; 2fed ret ; 2fef -INCBIN "baserom.gbc", $2fef, $2ff7 - $2fef +Function2fef: ; 2fef + ld hl, rKEY1 + bit 7, [hl] + jr z, Function2ffd + ret +; 2ff7 Function2ff7: ; 2ff7 ld hl, rKEY1 bit 7, [hl] ret z +; 2ffd + +Function2ffd: ; 2ffd set 0, [hl] xor a ld [rIF], a @@ -8930,8 +9631,19 @@ Function307b: ; 307b ret ; 308d -INCBIN "baserom.gbc", $308d, $309d - $308d - +Function308d: ; 308d + ld [hBuffer], a + ld a, [rSVBK] + push af + ld a, [hBuffer] + ld [rSVBK], a + ld a, [hli] + ld h, [hl] + ld l, a + pop af + ld [rSVBK], a + ret +; 309d Function309d: ; 309d ld a, [rSVBK] @@ -9223,7 +9935,19 @@ Function3198: ; 3198 ret ; 31a4 -INCBIN "baserom.gbc", $31a4, $31b0 - $31a4 + +Function31a4: ; 31a4 + ld a, [hROMBank] + push af + ld a, $41 + rst Bankswitch + + call $61ef + pop af + rst Bankswitch + + ret +; 31b0 Function31b0: ; 31b0 @@ -9335,7 +10059,12 @@ Function3200: ; 0x3200 ret ; 0x3218 -INCBIN "baserom.gbc", $3218, $321c - $3218 + +Function3218: ; 3218 + ld a, [hCGB] + and a + ret +; 321c Function321c: ; 321c @@ -10066,7 +10795,144 @@ Function354b: ; 354b ret ; 3567 -INCBIN "baserom.gbc", $3567, $3600 - $3567 + +Function3567: ; 3567 + ld a, [hROMBank] + push af + call Function2c52 + call $3574 + pop bc + ld a, b + rst Bankswitch + + ret +; 3574 + +Function3574: ; 3574 + ld hl, $0001 + add hl, de + ld a, [hl] + cp $ff + jr z, .asm_3597 + ld l, a + push hl + call $3599 + pop hl + jr nc, .asm_3597 + ld d, a + ld e, l + call $35de + jr nc, .asm_3597 + call $2631 + callba Function96c56 + scf + ret + +.asm_3597 + and a + ret +; 3599 + +Function3599: ; 3599 + push de + ld hl, $0010 + add hl, de + ld a, [hl] + ld hl, $0011 + add hl, de + ld e, [hl] + sub $4 + ld d, a + ld a, e + sub $4 + ld e, a + call $35b0 + pop de + ret +; 35b0 + +Function35b0: ; 35b0 + ld hl, $dbfc + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [$dbfb] + and a + jr z, .asm_35d3 +.asm_35bc + push af + ld a, [hl] + cp e + jr nz, .asm_35c8 + inc hl + ld a, [hld] + cp d + jr nz, .asm_35c8 + jr .asm_35d5 + +.asm_35c8 + ld a, $5 + add l + ld l, a + jr nc, .asm_35cf + inc h + +.asm_35cf + pop af + dec a + jr nz, .asm_35bc + +.asm_35d3 + and a + ret + +.asm_35d5 + pop af + ld d, a + ld a, [$dbfb] + sub d + inc a + scf + ret +; 35de + +Function35de: ; 35de + inc e + ld hl, $0001 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a +.asm_35e6 + ld a, [hli] + cp $ff + jr z, .asm_35fc + cp d + jr nz, .asm_35f7 + ld a, [hli] + cp e + jr nz, .asm_35f8 + ld a, [hli] + ld h, [hl] + ld l, a + jr .asm_35fe + +.asm_35f7 + inc hl + +.asm_35f8 + inc hl + inc hl + jr .asm_35e6 + +.asm_35fc + and a + ret + +.asm_35fe + scf + ret +; 3600 CheckTrainerBattle2: ; 3600 @@ -10197,7 +11063,7 @@ CheckTrainerBattle: ; 360d ld [$d04d], a scf ret -; 36a5d +; 36a5 FacingPlayerDistance_bc: ; 36a5 @@ -10282,7 +11148,30 @@ FacingPlayerDistance: ; 36ad ; 36f5 -INCBIN "baserom.gbc", $36f5, $3718 - $36f5 +Function36f5: ; 36f5 + push bc + ld hl, $0001 + add hl, bc + ld a, [hl] + call GetMapObject + ld hl, $000a + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + call GetMapEventBank + call GetFarHalfword + ld d, h + ld e, l + push de + ld b, $2 + call BitTable1Func + pop de + ld a, c + and a + pop bc + ret +; 3718 Function3718: ; 3718 @@ -10420,8 +11309,13 @@ Function37b6: ; 37b6 ret ; 37c4 -INCBIN "baserom.gbc", $37c4, $37ce - $37c4 - +Function37c4: ; 37c4 + push af + ld a, $1 + ld [$c2bc], a + pop af + jp Function37e2 +; 37ce Function37ce: ; 37ce call $37d5 @@ -10456,8 +11350,39 @@ Function37e2: ; 37e2 ret ; 37f3 -INCBIN "baserom.gbc", $37f3, $381e - $37f3 +Function37f3: ; 37f3 + call Function381e + ret c + ld a, [hROMBank] + push af + ld a, $3c + rst Bankswitch + ld hl, $6787 + add hl, bc + add hl, bc + add hl, bc + add hl, bc + add hl, bc + add hl, bc + ld e, [hl] + inc hl + ld d, [hl] + inc hl + ld a, [hli] + ld [CryPitch], a + ld a, [hli] + ld [CryEcho], a + ld a, [hli] + ld [CryLength], a + ld a, [hl] + ld [$c2b3], a + pop af + rst Bankswitch + + and a + ret +; 381e Function381e: ; 381e and a @@ -10497,7 +11422,14 @@ Function382d: ; 382d jp $3198 ; 384d -INCBIN "baserom.gbc", $384d, $3856 - $384d +Function384d: ; 384d + ld hl, $d25e + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + ret +; 3856 GetBaseData: ; 3856 @@ -10685,7 +11617,22 @@ GetPartyLocation: ; 3927 ; 392d -INCBIN "baserom.gbc", $392d, $3945 - $392d +Function392d: ; 392d + push hl + ld a, b + dec a + ld b, $0 + add hl, bc + ld hl, $5424 + ld bc, $0020 + call AddNTimes + ld a, $14 + call GetFarHalfword + ld b, l + ld c, h + pop hl + ret +; 3945 UserPartyAttr: ; 3945 @@ -10990,7 +11937,30 @@ GetBattleVarPair: ; 39e7 dw LastEnemyMove ; 3a90 -INCBIN "baserom.gbc", $3a90, $3ab2 - $3a90 + +Function3a90: ; 3a90 + inc hl + ld a, [hROMBank] + push af + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld [hROMBank], a + ld [MBC3RomBank], a + ld a, e + ld l, a + ld a, d + ld h, a + ld de, $d00c + ld bc, $0028 + call CopyBytes + pop af + ld [hROMBank], a + ld [MBC3RomBank], a + ret +; 3ab2 MobileTextBorder: ; 3ab2 @@ -11109,7 +12079,21 @@ Function3b2a: ; 3b2a ret ; 3b3c -INCBIN "baserom.gbc", $3b3c, $3b4e - $3b3c + +Function3b3c: ; 3b3c + ld [$c3b8], a + ld a, [hROMBank] + push af + ld a, $23 + rst Bankswitch + + ld a, [$c3b8] + call $5120 + pop af + rst Bankswitch + + ret +; 3b4e CleanSoundRestart: ; 3b4e @@ -11384,7 +12368,29 @@ WaitSFX: ; 3c55 ret ; 3c74 -INCBIN "baserom.gbc", $3c74, $3c97-$3c74 +Function3c74: ; 3c74 + push hl + ld hl, $c1cc + bit 0, [hl] + jr nz, .asm_3c94 + ld hl, $c1fe + bit 0, [hl] + jr nz, .asm_3c94 + ld hl, $c230 + bit 0, [hl] + jr nz, .asm_3c94 + ld hl, $c262 + bit 0, [hl] + jr nz, .asm_3c94 + pop hl + scf + ret + +.asm_3c94 + pop hl + and a + ret +; 3c97 MaxVolume: ; 3c97 ld a, $77 ; max @@ -11404,8 +12410,17 @@ VolumeOff: ; 3ca3 ret ; 3ca8 -INCBIN "baserom.gbc", $3ca8, $3cb4 - $3ca8 +Function3ca8: ; 3ca8 + ld a, $4 + ld [MusicFade], a + ret +; 3cae +Function3cae: ; 3cae + ld a, $84 + ld [MusicFade], a + ret +; 3cb4 Function3cb4: ; 3cb4 .asm_3cb4 @@ -11416,8 +12431,31 @@ Function3cb4: ; 3cb4 jr .asm_3cb4 ; 3cbc -INCBIN "baserom.gbc", $3cbc, $3cdf - $3cbc +Function3cbc: ; 3cbc + push hl + push de + push bc + push af + call Function3d97 + ld a, [CurMusic] + cp e + jr z, .asm_3cda + ld a, $8 + ld [MusicFade], a + ld a, e + ld [MusicFadeIDLo], a + ld a, d + ld [MusicFadeIDHi], a + ld a, e + ld [CurMusic], a +.asm_3cda + pop af + pop bc + pop de + pop hl + ret +; 3cdf Function3cdf: ; 3cdf push hl @@ -11429,7 +12467,7 @@ Function3cdf: ; 3cdf cp e jr z, .asm_3cfe push de - ld de, $0000 + ld de, MUSIC_NONE call StartMusic call DelayFrame pop de @@ -11445,20 +12483,59 @@ Function3cdf: ; 3cdf ret ; 3d03 -INCBIN "baserom.gbc", $3d03, $3d47 - $3d03 +Function3d03: ; 3d03 + push hl + push de + push bc + push af + xor a + ld [$c2c1], a + ld de, MUSIC_BICYCLE + ld a, [PlayerState] + cp $1 + jr z, .asm_3d18 + call Function3d97 +.asm_3d18 + push de + ld de, MUSIC_NONE + call StartMusic + call DelayFrame + pop de + ld a, e + ld [CurMusic], a + call StartMusic + pop af + pop bc + pop de + pop hl + ret +; 3d2f +Function3d2f: ; 3d2f + ld a, [$c2c1] + and a + jr z, Function3d47 + xor a + ld [CurMusic], a + ld de, MUSIC_NONE + call StartMusic + call DelayFrame + xor a + ld [$c2c1], a + ret +; 3d47 Function3d47: ; 3d47 push hl push de push bc push af - ld de, $0000 + ld de, MUSIC_NONE call StartMusic call DelayFrame ld a, [CurMusic] ld e, a - ld d, $0 + ld d, 0 call StartMusic pop af pop bc @@ -11512,7 +12589,39 @@ Function3d97: ; 3d97 ret ; 3d9f -INCBIN "baserom.gbc", $3d9f, $3dde - $3d9f +Function3d9f: ; 3d9f + ld a, $20 + ld [$c498], a + ld [$c49c], a + ld a, $50 + ld [$c499], a + ld a, $58 + ld [$c49d], a + xor a + ld [$c49b], a + ld [$c49f], a + ld a, [$c296] + cp $64 + jr nc, .asm_3dd5 + add $1 + daa + ld b, a + swap a + and $f + add $f6 + ld [$c49a], a + ld a, b + and $f + add $f6 + ld [$c49e], a + ret + +.asm_3dd5 + ld a, $ff + ld [$c49a], a + ld [$c49e], a + ret +; 3dde CheckSFX: ; 3dde ; returns carry if sfx channels are active @@ -11599,7 +12708,27 @@ Function3e32: ; 3e32 jp $4030 ; 3e60 -INCBIN "baserom.gbc", $3e60, $3e80 - $3e60 + +Function3e60: ; 3e60 + ld [$c986], a + ld a, l + ld [$c987], a + ld a, h + ld [$c988], a + pop bc + ld a, b + ld [$c981], a + rst Bankswitch + + ld hl, $c822 + res 6, [hl] + ld hl, $c987 + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [$c986] + ret +; 3e80 Function3e80: ; 3e80 @@ -11619,7 +12748,6 @@ Function3e80: ; 3e80 ; 3e93 - Function3e93: ; 3e93 push af push bc @@ -11669,8 +12797,189 @@ Function3e93: ; 3e93 reti ; 3ed7 -INCBIN "baserom.gbc", $3ed7, $3fb5 - $3ed7 +Function3ed7: ; 3ed7 + ld [$dc02], a + ld a, [hROMBank] + push af + ld a, $45 + rst Bankswitch + call $4243 + pop bc + ld a, b + rst Bankswitch + + ld a, [$dc02] + ret +; 3eea + +Function3eea: ; 3eea + push hl + push bc + ld de, $0939 + add hl, de + inc b + inc b + inc c + inc c + call $3f35 + pop bc + pop hl + call $3f47 + ret +; 3efd + +Function3efd: ; 3efd + push hl + ld hl, $c590 + ld b, $4 + ld c, $12 + call $3f0d + pop hl + call PrintTextBoxText + ret +; 3f0d + +Function3f0d: ; 3f0d + push hl + push bc + ld de, $0939 + add hl, de + inc b + inc b + inc c + inc c + call $3f35 + pop bc + pop hl + call TextBoxBorder + ret +; 3f20 + +Function3f20: ; 3f20 + ld hl, AttrMap + ld b, $6 + ld c, $14 + call $3f35 + ld hl, TileMap + ld b, $4 + ld c, $12 + call $3f47 + ret +; 3f35 + +Function3f35: ; 3f35 + ld a, $6 + ld de, $0014 +.asm_3f3a + push bc + push hl +.asm_3f3c + ld [hli], a + dec c + jr nz, .asm_3f3c + pop hl + add hl, de + pop bc + dec b + jr nz, .asm_3f3a + ret +; 3f47 + +Function3f47: ; 3f47 + push bc + call $3f58 + pop bc +.asm_3f4c + push bc + call $3f68 + pop bc + dec b + jr nz, .asm_3f4c + call $3f60 + ret +; 3f58 + +Function3f58: ; 3f58 + ld a, $63 + ld d, $62 + ld e, $64 + jr .asm_3f6e + + ld a, $68 + ld d, $67 + ld e, $69 + jr .asm_3f6e + + ld a, $7f + ld d, $65 + ld e, $66 + +.asm_3f6e + push hl + ld [hl], d + inc hl +.asm_3f71 + ld [hli], a + dec c + jr nz, .asm_3f71 + ld [hl], e + pop hl + ld de, $0014 + add hl, de + ret +; 3f7c + +Function3f7c: ; 3f7c + call Function1cfd + call Function1c53 + dec b + dec c + call $3eea + ret +; 3f88 + +Function3f88: ; 3f88 + ld hl, $d000 + ld b, $0 +.asm_3f8d + push bc + ld c, $8 +.asm_3f90 + ld a, [de] + inc de + cpl + ld [hl], $0 + inc hl + ld [hli], a + dec c + jr nz, .asm_3f90 + pop bc + dec c + jr nz, .asm_3f8d + ret +; 3f9f + +Function3f9f: ; 3f9f + ld hl, $d000 +.asm_3fa2 + push bc + ld c, $8 +.asm_3fa5 + ld a, [de] + inc de + inc de + cpl + ld [hl], $0 + inc hl + ld [hli], a + dec c + jr nz, .asm_3fa5 + pop bc + dec c + jr nz, .asm_3fa2 + ret +; 3fb5 SECTION "bank1",DATA,BANK[$1] @@ -16416,7 +17725,7 @@ NamePlayer: ; 0x6074 jr z, .asm_60cf ld de, .Kris .asm_60cf - call InitString + call InitName ret .Chris @@ -18789,7 +20098,7 @@ SpecialNameRival: ; 0xc29d ; default to "SILVER" ld hl, RivalName ld de, DefaultRivalName - call InitString + call InitName ret ; 0xc2b2 @@ -21455,7 +22764,7 @@ Functione3de: ; e3de rst FarCall pop hl ld de, StringBuffer1 - call InitString + call InitName ld a, $4 ld hl, $2b4d rst FarCall @@ -25951,7 +27260,25 @@ Function1499a: ; 1499a ret ; 149af -INCBIN "baserom.gbc", $149af, $14a07 - $149af +Function149af: ; 149af + ld a, [StandingTile] + cp $70 + jr z, .asm_149c4 + cp $76 + jr z, .asm_149c4 + cp $78 + jr z, .asm_149c4 + cp $7e + jr z, .asm_149c4 + scf + ret + +.asm_149c4 + xor a + ret +; 149c6 + +INCBIN "baserom.gbc", $149c6, $14a07 - $149c6 Function14a07: ; 14a07 @@ -45231,7 +46558,7 @@ Function4c000: ; 4c000 ; 4c03f Function4c03f: ; 4c03f - ld hl, CreditsPos + ld hl, BGMapBuffer ld de, BGMapPalBuffer .asm_4c045 ld a, [hl] @@ -51672,7 +52999,18 @@ Function8d109: ; 8d109 ret ; 8d120 -INCBIN "baserom.gbc", $8d120, $8d132 - $8d120 +Function8d120: ; 8d120 + ld hl, $0001 + add hl, bc + ld [hl], a + ld hl, $0008 + add hl, bc + ld [hl], $0 + ld hl, $000a + add hl, bc + ld [hl], $ff + ret +; 8d132 Function8d132: ; 8d132 @@ -53508,7 +54846,7 @@ CheckTileEvent: ; 96874 rst FarCall jr c, .asm_968a6 - call $2238 + call Function2238 jr c, .asm_968aa .asm_96886 @@ -63219,7 +64557,202 @@ Function106187: ; 106187 ret ; 10619d -INCBIN "baserom.gbc", $10619d, $106594 - $10619d +INCBIN "baserom.gbc", $10619d, $1061ef - $10619d + + +Function1061ef: ; 1061ef + push bc + xor a + ld [hProduct], a + ld [hMultiplicand], a + ld [$ffb5], a + ld a, b + and $f + cp $1 + jr z, .asm_106212 + cp $2 + jr z, .asm_10620e + cp $3 + jr z, .asm_10620a + ld a, [de] + ld [hProduct], a + inc de + +.asm_10620a + ld a, [de] + ld [hMultiplicand], a + inc de + +.asm_10620e + ld a, [de] + ld [$ffb5], a + inc de + +.asm_106212 + ld a, [de] + ld [$ffb6], a + inc de + push de + xor a + ld [$ffbb], a + ld a, b + ld [$ffbc], a + ld a, c + cp $2 + jr z, .asm_10626a + ld de, $62ae + cp $3 + jr z, .asm_106256 + ld de, $62aa + cp $4 + jr z, .asm_106256 + ld de, $62a6 + cp $5 + jr z, .asm_106256 + ld de, $62a2 + cp $6 + jr z, .asm_106256 + ld de, $629e + cp $7 + jr z, .asm_106256 + ld de, $629a + cp $8 + jr z, .asm_106256 + ld de, $6296 + cp $9 + jr z, .asm_106256 + ld de, $6292 + +.asm_106256 + inc de + inc de + inc de + dec a + dec a +.asm_10625b + push af + call $62b2 + call $62ff + inc de + inc de + inc de + inc de + pop af + dec a + jr nz, .asm_10625b + +.asm_10626a + ld c, $0 + ld a, [$ffb6] +.asm_10626e + cp $a + jr c, .asm_106277 + sub $a + inc c + jr .asm_10626e + +.asm_106277 + ld b, a + ld a, [$ffbb] + or c + ld [$ffbb], a + jr nz, .asm_106284 + call $62f7 + jr .asm_106288 + +.asm_106284 + ld a, $f6 + add c + ld [hl], a + +.asm_106288 + call $62ff + ld a, $f6 + add b + ld [hli], a + pop de + pop bc + ret +; 106292 + +INCBIN "baserom.gbc", $106292, $1062b2 - $106292 + + +Function1062b2: ; 1062b2 + ld c, $0 +.asm_1062b4 + ld a, [de] + dec de + ld b, a + ld a, [$ffb6] + sub b + ld [$ffba], a + ld a, [de] + dec de + ld b, a + ld a, [$ffb5] + sbc b + ld [$ffb9], a + ld a, [de] + dec de + ld b, a + ld a, [hMultiplicand] + sbc b + ld [hMathBuffer], a + ld a, [de] + inc de + inc de + inc de + ld b, a + ld a, [hProduct] + sbc b + ld [hMultiplier], a + jr c, .asm_1062eb + ld a, [hMultiplier] + ld [hProduct], a + ld a, [hMathBuffer] + ld [hMultiplicand], a + ld a, [$ffb9] + ld [$ffb5], a + ld a, [$ffba] + ld [$ffb6], a + inc c + jr .asm_1062b4 + +.asm_1062eb + ld a, [$ffbb] + or c + jr z, .asm_1062f7 + ld a, $f6 + add c + ld [hl], a + ld [$ffbb], a + ret + +.asm_1062f7 + ld a, [$ffbc] + bit 7, a + ret z + ld [hl], $f6 + ret +; 1062ff + +Function1062ff: ; 1062ff + ld a, [$ffbc] + bit 7, a + jr nz, .asm_10630d + bit 6, a + jr z, .asm_10630d + ld a, [$ffbb] + and a + ret z + +.asm_10630d + inc hl + ret +; 10630f + +INCBIN "baserom.gbc", $10630f, $106594 - $10630f Function106594: ; 106594 @@ -63892,7 +65425,29 @@ INCBIN "baserom.gbc", $111044, $113f84 - $111044 SECTION "bank45",DATA,BANK[$45] -INCBIN "baserom.gbc", $114000, $117a7f - $114000 +INCBIN "baserom.gbc", $114000, $114243 - $114000 + +Function114243: ; 114243 + ld a, $a + ld [$0000], a + ld a, [$ff8c] + push af + push de + ld a, [$dc02] + add a + ld e, a + ld d, $0 + ld hl, $4165 + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + pop de + jp [hl] +; 11425c + +INCBIN "baserom.gbc", $11425c, $117a7f - $11425c + ; everything from here to the end of the bank is related to the ; Mobile Stadium option from the continue/newgame menu. From caaab30e666f8f28d90ae7b6f7009a59d429f9f5 Mon Sep 17 00:00:00 2001 From: yenatch Date: Mon, 29 Jul 2013 23:59:05 -0400 Subject: [PATCH 28/84] reorder a couple wram labels latest label is used in wram label replace --- wram.asm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/wram.asm b/wram.asm index 76bcc784d..1a0f6a12c 100644 --- a/wram.asm +++ b/wram.asm @@ -790,8 +790,8 @@ OverworldMapEnd: ds 12 SECTION "gfx2",BSS[$cd20] -BGMapBuffer: -CreditsPos: ; cd20 +CreditsPos: +BGMapBuffer: ; cd20 ds 2 CreditsTimer: ; cd22 ds 1 @@ -1199,8 +1199,8 @@ EvolvableFlags: ; d1e8 ds 1 -Buffer1: -MagikarpLength: ; d1ea +MagikarpLength: +Buffer1: ; d1ea ds 1 MovementType: Buffer2: ; d1eb From 4cb7c4e407c893e4ca05db0542684e4df6a09832 Mon Sep 17 00:00:00 2001 From: yenatch Date: Tue, 30 Jul 2013 00:32:18 -0400 Subject: [PATCH 29/84] update known labels in main --- main.asm | 2969 +++++++++++++++++++++++++++--------------------------- 1 file changed, 1484 insertions(+), 1485 deletions(-) diff --git a/main.asm b/main.asm index f5297d045..aed5bce6e 100644 --- a/main.asm +++ b/main.asm @@ -900,11 +900,11 @@ Function6ef: ; 6ef jr .asm_752 .asm_71c - call $3e80 + call Function3e80 jr .asm_75a .asm_721 - call $2057 + call Function2057 jr .asm_75a .asm_726 @@ -1131,15 +1131,15 @@ Function83b: ; 83b ; 862 Function862: ; 862 - call $309d + call Function309d callab Function4000 call Function87d - jp $30b4 + jp Function30b4 ; 871 Function871: ; 871 - call $309d + call Function309d callab Function4000 jp Function87d ; 87d @@ -2156,11 +2156,11 @@ Functiond79: ; d79 ; d90 - Functiond90: ; d90 ret ; d91 + Functiond91: ; d91 ld a, [hCGB] and a @@ -2182,7 +2182,6 @@ Functiond91: ; d91 ; db1 - Functiondb1: ; db1 ld a, [hROMBank] push af @@ -2767,7 +2766,7 @@ Function1052: ; 1052 PrintText: ; 1057 - call $106c + call Function106c push hl hlcoord 1, 14 ld bc, 18 + 3<<8 @@ -2776,7 +2775,7 @@ PrintText: ; 1057 PrintTextBoxText: ; 1065 bccoord 1, 14 - call $13e5 + call Function13e5 ret ; 106c @@ -2784,8 +2783,8 @@ PrintTextBoxText: ; 1065 Function106c: ; 106c push hl call SpeechTextBox - call $1ad2 - call $321c + call Function1ad2 + call Function321c pop hl ret ; 1078 @@ -2877,7 +2876,7 @@ CheckDict: ; 1087 cp $5f jp z, Char5F cp $59 - jp z, $11fd + jp z, Function11fd cp $5a jp z, Char5D cp $3f @@ -2983,19 +2982,19 @@ Function11b7: ; 11b7 Function11be: ; 11be push de - ld de, $1281 + ld de, Char5EText jp $126a ; 11c5 Function11c5: ; 11c5 push de - ld de, $1288 + ld de, Char54Text jp $126a ; 11cc Function11cc: ; 11cc push de - ld de, $128d + ld de, Char23Text jp $126a ; 11d3 @@ -3007,31 +3006,31 @@ Function11d3: ; 11d3 Function11da: ; 11da push de - ld de, $129c + ld de, Char4AText jp $126a ; 11e1 Function11e1: ; 11e1 push de - ld de, $129f + ld de, Char24Text jp $126a ; 11e8 Function11e8: ; 11e8 push de - ld de, $12a4 + ld de, Char37Text jp $126a ; 11ef Function11ef: ; 11ef push de - ld de, $12a4 + ld de, Char37Text jp $126a ; 11f6 Function11f6: ; 11f6 push de - ld de, $12a4 + ld de, Char37Text jp $126a ; 11fd @@ -3399,7 +3398,7 @@ Function13e5: ; 13e5 push af set 1, a ld [$cfcf], a - call $13f6 + call Function13f6 pop af ld [$cfcf], a ret @@ -4779,7 +4778,7 @@ Function194d: ; 194d Function1956: ; 1956 ld [hConnectionStripLength], a - call $271e + call Function271e ld a, [hConnectionStripLength] call GetMapObject ld a, $2 @@ -4798,7 +4797,7 @@ Function1967: ; 1967 ret z ld [hl], $ff push af - call $1985 + call Function1985 pop af call Function1ae5 callba Function4357 @@ -4822,8 +4821,8 @@ Function1985: ; 1985 ; 199f Function199f: ; 199f - call $1967 - call $2712 + call Function1967 + call Function2712 ret ; 19a6 @@ -4882,7 +4881,7 @@ Function19e9: ; 19e9 ld a, h ld [$c2e5], a ld a, [$c2e2] - call $18de + call Function18de ret c ld hl, $0003 add hl, bc @@ -5362,15 +5361,15 @@ Function1c10: ; 0x1c10 Function1c17: ; 0x1c17 push af call Function1c07 - call $321c - call $1ad2 + call Function321c + call Function1ad2 pop af ret Function1c23: ; 0x1c23 - call $1cfd + call Function1cfd call Function1c30 - call $1d19 + call Function1d19 call Function1c30 ret @@ -5452,13 +5451,13 @@ Function1c7e: ; 1c7e ; 1c89 Function1c89: ; 1c89 - call $1c66 + call Function1c66 ld hl, $cf86 ld e, [hl] inc hl ld d, [hl] - call $1cc6 - call $1d05 + call Function1cc6 + call Function1d05 inc de ld a, [de] inc de @@ -5475,7 +5474,7 @@ Function1c89: ; 1c89 ld a, [$cf91] bit 4, a ret z - call $1cfd + call Function1cfd ld a, [de] ld c, a inc de @@ -5485,7 +5484,7 @@ Function1c89: ; 1c89 ; 1cbb Function1cbb: ; 1cbb - call $1cfd + call Function1cfd call Function1c53 dec b dec c @@ -5515,7 +5514,7 @@ Function1cc6: ; 1cc6 ; 1ce1 Function1ce1: ; 1ce1 - call $1cfd + call Function1cfd ld bc, $0015 add hl, bc call Function1c53 @@ -5526,7 +5525,7 @@ Function1ce1: ; 1ce1 ; 1cf1 Function1cf1: ; 1cf1 - call $1cfd + call Function1cfd call Function1c53 inc c inc b @@ -5592,7 +5591,7 @@ Function1d19: ; 1d19 Function1d35: ; 0x1d35 call Function1d3c - call $1c00 + call Function1c00 ret Function1d3c: ; 0x1d3c @@ -5631,7 +5630,7 @@ MenuDataHeader_0x1d5f: ; 1d5f db $40 ; tile backup db 12, 0 ; start coords db 17, 19 ; end coords - dw $8000 + dw VTiles0 db 0 ; default option ; 1d67 @@ -5663,17 +5662,17 @@ Function1d7d: ; 1d7d Function1d81: ; 0x1d81 xor a ld [hBGMapMode], a - call $1cbb - call $1ad2 - call $1c89 - call $321c - call $1c66 + call Function1cbb + call Function1ad2 + call Function1c89 + call Function321c + call Function1c66 ld a, [$cf91] bit 7, a jr z, .asm_1da7 ; 0x1d98 $d call Function1c10 - call $1bc9 - call $1ff8 + call Function1bc9 + call Function1ff8 bit 1, a jr z, .asm_1da9 ; 0x1da5 $2 .asm_1da7 @@ -5721,7 +5720,7 @@ Function1dcf: ; 1dcf .asm_1dd9 push bc - ld hl, $1e1d + ld hl, MenuDataHeader_0x1e1d call Function1d3c pop bc ld a, b @@ -5739,7 +5738,7 @@ Function1dcf: ; 1dcf ld [$cf82], a add $4 ld [$cf84], a - call $1c00 + call Function1c00 .asm_1dfe call Function1d81 @@ -5778,8 +5777,8 @@ MenuData2_0x1e25: ; 1e25 ; 1e2e Function1e2e: ; 1e2e - call $1e35 - call $1c00 + call Function1e35 + call Function1c00 ret ; 1e35 @@ -5811,8 +5810,8 @@ Function1e35: ; 1e35 Function1e5d: ; 1e5d call MenuFunc_1e7f call MenuWriteText - call $1eff - call $1f23 + call Function1eff + call Function1f23 call Function1bdd call Function1ff8 ret @@ -5821,29 +5820,29 @@ Function1e5d: ; 1e5d SetUpMenu: ; 1e70 call MenuFunc_1e7f ; ??? call MenuWriteText - call $1eff ; set up selection pointer + call Function1eff ; set up selection pointer ld hl, $cfa5 set 7, [hl] ret MenuFunc_1e7f: ; 0x1e7f - call $1c66 - call $1ebd - call $1ea6 - call $1cbb + call Function1c66 + call Function1ebd + call Function1ea6 + call Function1cbb ret MenuWriteText: ; 0x1e8c xor a ld [hBGMapMode], a - call $1ebd ; sort out the text - call $1eda ; actually write it - call $2e31 + call Function1ebd ; sort out the text + call Function1eda ; actually write it + call Function2e31 ld a, [hOAMUpdate] push af ld a, $1 ld [hOAMUpdate], a - call $321c + call Function321c pop af ld [hOAMUpdate], a ret @@ -5891,7 +5890,7 @@ Function1ebd: ; 1ebd ; 1eda Function1eda: ; 1eda - call $1cfd + call Function1cfd ld bc, $002a add hl, bc .asm_1ee1 @@ -5905,7 +5904,7 @@ Function1eda: ; 1eda ld d, h ld e, l ld hl, $cf95 - call $1efb + call Function1efb pop hl ld de, $0028 add hl, de @@ -5983,7 +5982,7 @@ Function1f2a: ; 1f2a ld [$cf73], a .asm_1f57 - call $1ebd + call Function1ebd ld a, [$cfa9] ld l, a ld h, $0 @@ -6022,7 +6021,7 @@ Function1f79: ; 1f79 Function1f8d: ; 1f8d push de ld a, [MenuSelection] - call $1fb1 + call Function1fb1 inc hl inc hl ld a, [hli] @@ -6034,7 +6033,7 @@ Function1f8d: ; 1f8d ; 1f9e Function1f9e: ; 1f9e - call $1fb1 + call Function1fb1 inc hl inc hl ld a, [hli] @@ -6045,7 +6044,7 @@ Function1f9e: ; 1f9e Function1fa7: ; 1fa7 ld a, [MenuSelection] - call $1fb1 + call Function1fb1 ld a, [hli] ld h, [hl] ld l, a @@ -6466,7 +6465,7 @@ Function217a: ; 217a ld a, [TileSetBlocksBank] rst Bankswitch - call $2198 + call Function2198 ld a, $60 ld hl, TileMap ld bc, $0168 @@ -6634,9 +6633,9 @@ Function2238: ; 2238 Function224a: ; 224a - call $2252 + call Function2252 ret nc - call $22a7 + call Function22a7 ret ; 2252 @@ -6647,8 +6646,8 @@ Function2252: ; 2252 ret nc ld a, [hROMBank] push af - call $2c52 - call $2266 + call Function2c52 + call Function2266 pop de ld a, d rst Bankswitch @@ -6697,7 +6696,7 @@ Function2266: ; 2266 .asm_2296 pop hl - call $22a3 + call Function22a3 ret nc ld a, [$dbfb] inc a @@ -6717,8 +6716,8 @@ Function22a3: ; 22a3 Function22a7: ; 22a7 ld a, [hROMBank] push af - call $2c52 - call $22b4 + call Function2c52 + call Function22b4 pop af rst Bankswitch @@ -6792,31 +6791,31 @@ Function2300: ; 2300 ; 2309 Function2309: ; 2309 - call $2326 + call Function2326 call Function2c52 - call $234f + call Function234f xor a - call $2336 + call Function2336 ret ; 2317 Function2317: ; 2317 - call $2326 + call Function2326 call Function2c52 - call $234f + call Function234f ld a, $1 - call $2336 + call Function2336 ret ; 2326 Function2326: ; 2326 - call $2c3d - call $2c1c + call Function2c3d + call Function2c1c call GetSecondaryMapHeaderPointer - call $235c - call $2368 + call Function235c + call Function2368 ret ; 2336 @@ -6828,13 +6827,13 @@ Function2336: ; 2336 ld l, a inc hl inc hl - call $23da - call $23f1 - call $2408 + call Function23da + call Function23f1 + call Function2408 pop af and a ret nz - call $241f + call Function241f ret ; 234f @@ -6843,8 +6842,8 @@ Function234f: ; 234f ld a, [hli] ld h, [hl] ld l, a - call $23ac - call $23c3 + call Function23ac + call Function23c3 ret ; 235c @@ -6992,7 +6991,7 @@ Function2408: ; 2408 Function241f: ; 241f push hl - call $2471 + call Function2471 pop de ld hl, $d72e ld a, [de] @@ -7003,7 +7002,7 @@ Function241f: ; 241f ld a, d ld [$dc06], a ld a, [$dc04] - call $2457 + call Function2457 ld a, [$dc04] ld c, a ld a, $10 @@ -7093,7 +7092,7 @@ Function248a: ; 248a ld a, [hli] cp $ff jr nz, .asm_24b3 - call $24ba + call Function24ba .asm_24b3 ld a, $41 @@ -7386,14 +7385,14 @@ Function263b: ; 263b ld b, a ld a, [hROMBank] push af - call $2c52 - call $2653 + call Function2c52 + call Function2653 jr nc, .asm_2650 call GetMapEventBank ld b, a ld d, h ld e, l - call $2674 + call Function2674 .asm_2650 pop af @@ -7458,10 +7457,10 @@ Function269a: ; 269a push hl call SpeechTextBox - call $2e31 + call Function2e31 ld a, $1 ld [hOAMUpdate], a - call $321c + call Function321c pop hl call PrintTextBoxText xor a @@ -7479,7 +7478,7 @@ Function26b7: ; 26b7 ld a, [hBuffer] rst Bankswitch - call $26c5 + call Function26c5 pop af rst Bankswitch @@ -7498,7 +7497,7 @@ Function26c7: ; 26c7 rst Bankswitch ld a, c - call $19e9 + call Function19e9 pop hl ld a, h rst Bankswitch @@ -7606,14 +7605,14 @@ Function271e: ; 271e Function272a: ; 272a ld hl, TileMap ld de, BGMapBuffer - call $27b7 + call Function27b7 ld c, $28 call Functiondbd ld a, [$d152] ld e, a ld a, [$d153] ld d, a - call $27d3 + call Function27d3 ld a, $1 ld [hBGMapUpdate], a ret @@ -7622,7 +7621,7 @@ Function272a: ; 272a Function2748: ; 2748 ld hl, $c5e0 ld de, BGMapBuffer - call $27b7 + call Function27b7 ld c, $28 call Functiondbd ld a, [$d152] @@ -7636,7 +7635,7 @@ Function2748: ; 2748 or $98 ld e, l ld d, a - call $27d3 + call Function27d3 ld a, $1 ld [hBGMapUpdate], a ret @@ -7645,14 +7644,14 @@ Function2748: ; 2748 Function2771: ; 2771 ld hl, TileMap ld de, BGMapBuffer - call $27c0 + call Function27c0 ld c, $24 call Functiondbd ld a, [$d152] ld e, a ld a, [$d153] ld d, a - call $27f8 + call Function27f8 ld a, $1 ld [hBGMapUpdate], a ret @@ -7661,7 +7660,7 @@ Function2771: ; 2771 Function278f: ; 278f ld hl, $c4b2 ld de, BGMapBuffer - call $27c0 + call Function27c0 ld c, $24 call Functiondbd ld a, [$d152] @@ -7675,7 +7674,7 @@ Function278f: ; 278f ld e, a ld a, [$d153] ld d, a - call $27f8 + call Function27f8 ld a, $1 ld [hBGMapUpdate], a ret @@ -7948,15 +7947,15 @@ Function289d: ; 289d Function2914: ; 2914 xor a ld [TilePermissions], a - call $296c - call $294d + call Function296c + call Function294d ld a, [MapX] ld d, a ld a, [MapY] ld e, a call Function2a3c ld [StandingTile], a - call $29ff + call Function29ff ret nz ld a, [StandingTile] and 7 @@ -7986,12 +7985,12 @@ Function294d: ; 294d inc e call Function2a3c ld [TileDown], a - call $298b + call Function298b pop de dec e call Function2a3c ld [TileUp], a - call $29a8 + call Function29a8 ret ; 296c @@ -8004,17 +8003,17 @@ Function296c: ; 296c dec d call Function2a3c ld [TileLeft], a - call $29e2 + call Function29e2 pop de inc d call Function2a3c ld [TileRight], a - call $29c5 + call Function29c5 ret ; 298b Function298b: ; 298b - call $29ff + call Function29ff ret nz ld a, [TileDown] and $7 @@ -8033,7 +8032,7 @@ Function298b: ; 298b ; 29a8 Function29a8: ; 29a8 - call $29ff + call Function29ff ret nz ld a, [TileUp] and $7 @@ -8052,7 +8051,7 @@ Function29a8: ; 29a8 ; 29c5 Function29c5: ; 29c5 - call $29ff + call Function29ff ret nz ld a, [TileRight] and $7 @@ -8071,7 +8070,7 @@ Function29c5: ; 29c5 ; 29e2 Function29e2: ; 29e2 - call $29ff + call Function29ff ret nz ld a, [TileLeft] and $7 @@ -8224,8 +8223,8 @@ CheckFacingSign: ; 2a8b ld c, a ld a, [hROMBank] push af - call $2c52 - call $2aaa + call Function2c52 + call Function2aaa pop hl ld a, h rst Bankswitch @@ -8278,7 +8277,7 @@ Function2ad4: ; 2ad4 ld a, [hROMBank] push af call Function2c52 - call $2ae7 + call Function2ae7 pop hl ld a, h rst Bankswitch @@ -8342,7 +8341,7 @@ Function2ae7: ; 2ae7 FadeToMenu: ; 2b29 xor a ld [hBGMapMode], a - call $1d6e + call Function1d6e ld a, $23 ld hl, $4084 rst FarCall @@ -8354,16 +8353,16 @@ FadeToMenu: ; 2b29 Function2b3c: ; 2b3c call WhiteBGMap - call $2bae - call $1ad2 - call $1d7d + call Function2bae + call Function1ad2 + call Function1d7d call $0d90 jr .asm_2b5c call WhiteBGMap - call $1d7d - call $2bae - call $1ad2 + call Function1d7d + call Function2bae + call Function1ad2 call $0d90 .asm_2b5c @@ -8376,7 +8375,7 @@ Function2b3c: ; 2b3c ld a, $23 ld hl, $4079 rst FarCall - call $2ee4 + call Function2ee4 ret ; 2b74 @@ -8387,13 +8386,13 @@ Function2b74: ; 0x2b74 ld [$c2ce], a call WhiteBGMap call ClearSprites - call $2bae + call Function2bae ld hl, $c590 ; tile 0, 12 ld bc, $0412 call TextBox ld hl, VramState set 0, [hl] - call $1ad2 + call Function1ad2 call Function3200 ld b, $9 call GetSGBLayout @@ -8422,14 +8421,14 @@ Function2bae: ; 2bae ld b, a ld a, [MapNumber] ld c, a - call $2c24 + call Function2c24 ld a, $23 ld hl, $4001 rst FarCall - call $2173 - call $2821 + call Function2173 + call Function2821 ld a, $9 - call $3cb4 + call Function3cb4 pop af rst Bankswitch @@ -8551,7 +8550,7 @@ Function2c3d: ; 2c3d push af ld a, $25 rst Bankswitch - call $2be5 + call GetMapHeaderPointer ld de, $d198 ld bc, $0005 call CopyBytes @@ -8924,7 +8923,7 @@ ResetWindow: ; 2dba rst Bankswitch call $6454 - call $2e20 + call Function2e20 call $64bf pop af @@ -8938,7 +8937,7 @@ Function2dcf: ; 2dcf push af ld a, $1 ld [hOAMUpdate], a - call $2de2 + call Function2de2 pop af ld [hOAMUpdate], a ld hl, VramState @@ -8950,14 +8949,14 @@ Function2de2: ; 2de2 call Function1fbf xor a ld [hBGMapMode], a - call $2173 - call $2e20 + call Function2173 + call Function2e20 xor a ld [hBGMapMode], a - call $2e31 + call Function2e31 ld a, $90 ld [$ffd2], a - call $0e4a + call Functione4a ld a, $2e ld hl, $4000 rst FarCall @@ -8976,7 +8975,7 @@ Function2e08: ; 2e08 call $6454 call SpeechTextBox - call $2e20 + call Function2e20 call $64bf pop af rst Bankswitch @@ -9006,7 +9005,7 @@ Function2e31: ; 2e31 ld [hBGMapMode], a ld a, $1 ld [hOAMUpdate], a - call $1ad2 + call Function1ad2 xor a ld [hOAMUpdate], a call DelayFrame @@ -9662,7 +9661,7 @@ Function309d: ; 309d Function30b4: ; 30b4 xor a ld [hBGMapMode], a - call $30bf + call Function30bf ld a, $1 ld [hBGMapMode], a ret @@ -10114,11 +10113,11 @@ Function321c: ; 321c ld a, $1 ld [rVBK], a ld hl, AttrMap - call $327b + call Function327b ld a, $0 ld [rVBK], a ld hl, TileMap - call $327b + call Function327b .asm_326d ld a, [rLY] cp $7f @@ -10734,14 +10733,14 @@ GetMoveName: ; 34f8 Function350c: ; 350c - call $1c66 + call Function1c66 ld a, [hROMBank] push af ld a, $9 rst Bankswitch call $45af - call $3524 + call Function3524 call $45cb pop af rst Bankswitch @@ -10771,7 +10770,7 @@ Function352f: ; 352f sub c ld e, a push de - call $1d05 + call Function1d05 pop bc jp TextBox ; 354b @@ -10800,7 +10799,7 @@ Function3567: ; 3567 ld a, [hROMBank] push af call Function2c52 - call $3574 + call Function3574 pop bc ld a, b rst Bankswitch @@ -10816,14 +10815,14 @@ Function3574: ; 3574 jr z, .asm_3597 ld l, a push hl - call $3599 + call Function3599 pop hl jr nc, .asm_3597 ld d, a ld e, l - call $35de + call Function35de jr nc, .asm_3597 - call $2631 + call Function2631 callba Function96c56 scf ret @@ -10846,7 +10845,7 @@ Function3599: ; 3599 ld a, e sub $4 ld e, a - call $35b0 + call Function35b0 pop de ret ; 35b0 @@ -10939,7 +10938,7 @@ CheckTrainerBattle2: ; 3600 ld a, [hROMBank] push af - call $2c52 + call Function2c52 call CheckTrainerBattle @@ -11275,7 +11274,7 @@ Function3786: ; 3786 ld a, $1 ld [$c2c6], a ld a, [CurPartySpecies] - call $3741 + call Function3741 jr c, .asm_37ad push hl ld de, VTiles2 @@ -11318,7 +11317,7 @@ Function37c4: ; 37c4 ; 37ce Function37ce: ; 37ce - call $37d5 + call Function37d5 call WaitSFX ret ; 37d5 @@ -11329,7 +11328,7 @@ Function37d5: ; 37d5 ld [$c2bc], a ld [CryTracks], a pop af - call $37e2 + call Function37e2 ret ; 37e2 @@ -11337,7 +11336,7 @@ Function37e2: ; 37e2 push hl push de push bc - call $381e + call Function381e jr c, .asm_37ef ld e, c ld d, b @@ -11419,7 +11418,7 @@ Function382d: ; 382d ld [$d265], a ld de, $d265 ld b, $41 - jp $3198 + jp Function3198 ; 384d Function384d: ; 384d @@ -11981,8 +11980,8 @@ BattleTextBox: ; 3ac3 push hl call SpeechTextBox call MobileTextBorder - call $1ad2 ; UpdateSprites - call $321c ; refresh? + call Function1ad2 ; UpdateSprites + call Function321c ; refresh? pop hl call PrintTextBoxText ret @@ -12462,7 +12461,7 @@ Function3cdf: ; 3cdf push de push bc push af - call $3d97 + call Function3d97 ld a, [CurMusic] cp e jr z, .asm_3cfe @@ -12583,9 +12582,9 @@ Function3d62: ; 3d62 ; 3d97 Function3d97: ; 3d97 - call $3d62 + call Function3d62 ret c - call $2cbd + call Function2cbd ret ; 3d9f @@ -12822,10 +12821,10 @@ Function3eea: ; 3eea inc b inc c inc c - call $3f35 + call Function3f35 pop bc pop hl - call $3f47 + call Function3f47 ret ; 3efd @@ -12834,7 +12833,7 @@ Function3efd: ; 3efd ld hl, $c590 ld b, $4 ld c, $12 - call $3f0d + call Function3f0d pop hl call PrintTextBoxText ret @@ -12849,7 +12848,7 @@ Function3f0d: ; 3f0d inc b inc c inc c - call $3f35 + call Function3f35 pop bc pop hl call TextBoxBorder @@ -12860,11 +12859,11 @@ Function3f20: ; 3f20 ld hl, AttrMap ld b, $6 ld c, $14 - call $3f35 + call Function3f35 ld hl, TileMap ld b, $4 ld c, $12 - call $3f47 + call Function3f47 ret ; 3f35 @@ -12888,7 +12887,7 @@ Function3f35: ; 3f35 Function3f47: ; 3f47 push bc - call $3f58 + call Function3f58 pop bc .asm_3f4c push bc @@ -12935,7 +12934,7 @@ Function3f7c: ; 3f7c call Function1c53 dec b dec c - call $3eea + call Function3eea ret ; 3f88 @@ -15634,7 +15633,7 @@ Function5000: ; 5000 Function500e: ; 500e ld hl, $c2e3 - call $1aae + call Function1aae ret ; 5015 @@ -16220,7 +16219,7 @@ Function56cd: ; 56cd jr nc, .asm_5760 ld c, a push bc - call $1d05 + call Function1d05 pop bc ld a, [hl] cp $60 @@ -16324,7 +16323,7 @@ Function57d9: ; 57d9 Function57db: ; 57db ld bc, $d4d6 - call $1af8 + call Function1af8 ret ; 57e2 @@ -16367,7 +16366,7 @@ Function5803: ; 5803 ; 5815 Function5815: ; 5815 - call $18de + call Function18de ret c ld a, [hConnectedMapWidth] ld [$d4cd], a @@ -16390,7 +16389,7 @@ Function582c: ; 582c push af call Function5847 pop af - call $18de + call Function18de ret c ld hl, $0003 add hl, bc @@ -16416,7 +16415,7 @@ Function5847: ; 5847 Function585c: ; 585c ld a, c - call $18de + call Function18de ret c push bc call Function587a @@ -16429,7 +16428,7 @@ Function585c: ; 585c ; 586e Function586e: ; 586e - call $18de + call Function18de ret c ld hl, $0005 add hl, bc @@ -16509,7 +16508,7 @@ Function58b9: ; 58b9 ; 58d8 Function58d8: ; 58d8 - call $18de + call Function18de ret c ld hl, $0005 add hl, bc @@ -17107,7 +17106,7 @@ Function5bae: ; 5bae ld a, $41 ld hl, $61c0 rst FarCall - call $208a + call Function208a ret ; 5ca1 @@ -17244,7 +17243,7 @@ Continue: ; 5d65 ld a, $5 ld hl, $50b9 rst FarCall - call $1d6e + call Function1d6e call Function5e85 ld a, $1 ld [hBGMapMode], a @@ -17426,7 +17425,7 @@ Function5e9f: ; 5e9f call Function5f1c call Function5f40 call Functione5f - call $1ad2 + call Function1ad2 ret ; 5eaf @@ -17435,7 +17434,7 @@ Function5eaf: ; 5eaf call Function5f1c call Function5f48 call Functione5f - call $1ad2 + call Function1ad2 ret ; 5ebf @@ -17449,9 +17448,9 @@ Function5ebf: ; 5ebf ld hl, MenuDataHeader_0x5efb .asm_5ecf - call $1e35 - call $1cbb - call $1c89 + call Function1e35 + call Function1cbb + call Function1c89 ret ; 5ed9 @@ -17491,7 +17490,7 @@ MenuData2_0x5f03: ; 5f03 Function5f1c: ; 5f1c - call $1cfd + call Function1cfd push hl ld de, $005d add hl, de @@ -17540,7 +17539,7 @@ Function5f58: ; 5f58 pop hl ld de, $d265 ld bc, $0102 - jp $3198 + jp Function3198 ; 5f6b Function5f6b: ; 5f6b @@ -17554,18 +17553,18 @@ Function5f6b: ; 5f6b pop hl ld de, $d265 ld bc, $0103 - jp $3198 + jp Function3198 ; 5f84 Function5f84: ; 5f84 ld de, GameTimeHours ld bc, $0203 - call $3198 + call Function3198 ld [hl], $6d inc hl ld de, GameTimeMinutes ld bc, $8102 - jp $3198 + jp Function3198 ; 5f99 @@ -17602,7 +17601,7 @@ OakSpeech: ; 0x5f99 call GetBaseData hlcoord 6, 4 - call $3786 + call Function3786 xor a ld [TempMonDVs], a @@ -17657,7 +17656,7 @@ OakText2: ; 0x604a TX_FAR _OakText2 start_asm ld a,WOOPER - call $37ce + call Function37ce call WaitSFX ld hl,OakText3 ret @@ -17942,7 +17941,7 @@ Function6454: ; 6454 push af xor a ld [hBGMapMode], a - call $6473 + call Function6473 pop af ld [hBGMapMode], a pop af @@ -17958,10 +17957,10 @@ Function6473: ; 6473 ld [hBGMapMode], a ld a, $90 ld [$ffd2], a - call $2173 + call Function2173 ld a, $9c - call $64b9 - call $2e20 + call Function64b9 + call Function2e20 ld a, $12 ld hl, $5409 rst FarCall @@ -17977,7 +17976,7 @@ Function6473: ; 6473 ld hl, $64db rst FarCall ld a, $98 - call $64b9 + call Function64b9 xor a ld [$d152], a ld a, $98 @@ -18001,7 +18000,7 @@ Function64bf: ; 64bf push af ld a, $1 ld [hOAMUpdate], a - call $64cd + call Function64cd pop af ld [hOAMUpdate], a ret @@ -18011,7 +18010,7 @@ Function64cd: ; 64cd call Functione5f ld a, $90 ld [$ffd2], a - call $2e31 + call Function2e31 call $0e51 ret ; 64db @@ -18986,7 +18985,7 @@ INCBIN "baserom.gbc", $808f, $80a1 - $808f Function80a1: ; 80a1 ld a, b - call $18de + call Function18de ret c ld hl, $0010 add hl, bc @@ -18996,7 +18995,7 @@ Function80a1: ; 80a1 ld e, [hl] ld a, [hConnectionStripLength] ld b, a - call $407e + call Function807e and a ret ; 80b8 @@ -19005,7 +19004,7 @@ INCBIN "baserom.gbc", $80b8, $80e7 - $80b8 Function80e7: ; 80e7 - call $2707 + call Function2707 and a ret nz ld hl, $d4fe @@ -19027,7 +19026,7 @@ Function80e7: ; 80e7 .asm_8104 ld d, h ld e, l - call $4116 + call Function8116 ld hl, VramState bit 7, [hl] ret z @@ -19038,7 +19037,7 @@ Function80e7: ; 80e7 ; 8116 Function8116: ; 8116 - call $411d + call Function811d call Function8286 ret ; 811d @@ -19054,10 +19053,10 @@ Function811d: ; 811d add hl, bc ld a, [hl] ld [$c2f1], a - call $180e + call Function180e ld [$c2f2], a ld a, [hl] - call $17ff + call Function17ff ld [$c2f3], a ld hl, $0008 add hl, bc @@ -19194,13 +19193,13 @@ INCBIN "baserom.gbc", $831e, $839e - $831e Function839e: ; 839e push bc ld a, c - call $18de + call Function18de ld d, b ld e, c pop bc ret c ld a, b - call $18de + call Function18de ret c ld hl, $0010 add hl, bc @@ -19292,7 +19291,7 @@ Function8417: ; 8417 cp $d jr nc, .asm_8437 ld e, a - call $4439 + call Function8439 ret .asm_8437 @@ -19374,7 +19373,7 @@ Function8439: ; 8439 ; 848a Function848a: ; 848a - call $449d + call Function849d jr c, .asm_8497 ld [$d4d1], a xor a @@ -19439,13 +19438,13 @@ Function84d9: ; 84d9 and $3f cp $20 jr nc, .asm_84e5 - call $44ef + call Function84ef ld a, h ret .asm_84e5 and $1f - call $44ef + call Function84ef ld a, h xor $ff inc a @@ -19554,7 +19553,7 @@ PredefPointers: ; 856b dwb $4cdb, $14 dwb $4c50, $14 dwb $4bdd, $14 - dwb StatsScreenInit, BANK(StatsScreenInit) ; stats screen + dwb StatsScreenInit, BANK(StatsScreenInit) dwb $4b0a, $14 dwb $4b0e, $14 dwb $4b7b, $14 @@ -19627,9 +19626,9 @@ INCBIN "baserom.gbc", $8a88, $8ad1 - $8a88 Function8ad1: ; 8ad1 ld hl, $5c57 - call $5610 - call $571a - call $5699 + call Function9610 + call Function971a + call Function9699 ret ; 8ade @@ -19671,8 +19670,8 @@ Function9610: ; 9610 push bc ld a, [hli] push hl - call $5625 - call $5630 + call Function9625 + call Function9630 pop hl inc hl pop bc @@ -19725,7 +19724,7 @@ Function96a4: ; 96a4 ld de, $d080 ld bc, $0080 ld a, $5 - call $306b + call Function306b ret ; 96b3 @@ -19737,7 +19736,7 @@ Function971a: ; 971a ld de, $d040 ld bc, $0010 ld a, $5 - call $306b + call Function306b ret ; 9729 @@ -19968,17 +19967,17 @@ SpecialsPointers: ; 0xc029 dbw $23, $40b6 dbw $23, $4079 dbw $23, $40ab - dbw $00, $0d91 + dbw BANK(Functiond91), Functiond91 dbw BANK(WhiteBGMap), WhiteBGMap - dbw $00, Function485 + dbw BANK(Function485), Function485 dbw BANK(ClearTileMap), ClearTileMap - dbw $00, $1ad2 - dbw $00, $0e4a + dbw BANK(Function1ad2), Function1ad2 + dbw BANK(Functione4a), Functione4a dbw $03, $4230 dbw $03, $4252 dbw BANK(WaitSFX),WaitSFX - dbw $00, $3cdf - dbw $00, $3d47 + dbw BANK(Function3cdf), Function3cdf + dbw BANK(Function3d47), Function3d47 dbw $04, $6324 dbw $02, $4379 dbw $03, $425a @@ -20374,7 +20373,7 @@ Functionc4c7: ; c4c7 jr .asm_c5ad .asm_c59b - call $45ba + call Functionc5ba push af ld a, $f6 add c @@ -20389,7 +20388,7 @@ Functionc4c7: ; c4c7 .asm_c5ad call PrintNumber_AdvancePointer - call $45ba + call Functionc5ba ld a, $f6 add b ld [hli], a @@ -20504,7 +20503,7 @@ CheckBadge: ; c731 call CheckFlag2 ret nc ld hl, BadgeRequiredText - call $1d67 ; push text to queue + call Function1d67 ; push text to queue scf ret ; c73d @@ -20723,18 +20722,18 @@ INCBIN "baserom.gbc", $ca3b, $cb95 - $ca3b Functioncb95: ; cb95 - call $46ea + call Functionc6ea ld a, $1 jr .asm_cba1 - call $46ea + call Functionc6ea ld a, $2 .asm_cba1 ld [Buffer2], a .asm_cba4 ld hl, $4bb2 - call $46f5 + call Functionc6f5 jr nc, .asm_cba4 and $7f ld [$d0ec], a @@ -20747,12 +20746,12 @@ INCBIN "baserom.gbc", $cbb2, $cf8e - $cbb2 Functioncf8e: ; cf8e ld a, e push af - call $46ea + call Functionc6ea pop af ld [Buffer2], a .asm_cf97 ld hl, $4fa5 - call $46f5 + call Functionc6f5 jr nc, .asm_cf97 and $7f ld [$d0ec], a @@ -20763,14 +20762,14 @@ INCBIN "baserom.gbc", $cfa5, $d0b3 - $cfa5 Functiond0b3: ; d0b3 - call $50bc + call Functiond0bc and $7f ld [$d0ec], a ret ; d0bc Functiond0bc: ; d0bc - call $5121 + call Functiond121 jr c, .asm_d110 ld a, [PlayerState] cp $0 @@ -20782,8 +20781,8 @@ Functiond0bc: ; d0bc .asm_d0ce ld hl, $513e ld de, $514e - call $5119 - call $31cd + call Functiond119 + call Function31cd xor a ld [MusicFade], a ld de, $0000 @@ -20803,7 +20802,7 @@ Functiond0bc: ; d0bc jr nz, .asm_d10b ld hl, $5158 ld de, $516b - call $5119 + call Functiond119 ld a, $3 jr .asm_d113 @@ -20816,7 +20815,7 @@ Functiond0bc: ; d0bc ret .asm_d113 - call $31cd + call Function31cd ld a, $1 ret ; d119 @@ -20856,8 +20855,8 @@ INCBIN "baserom.gbc", $d13e, $d1d5 - $d13e Functiond1d5: ; d1d5 - call $527b - jp nz, $529c + call Functiond27b + jp nz, Functiond29c push hl call CheckItemPocket pop de @@ -20874,18 +20873,18 @@ INCBIN "baserom.gbc", $d1e9, $d1f1 - $d1e9 Functiond1f1: ; d1f1 ld h, d ld l, e - jp $529c + jp Functiond29c ; d1f6 Functiond1f6: ; d1f6 ld h, d ld l, e - jp $535a + jp Functiond35a ; d1fb Functiond1fb: ; d1fb ld hl, NumBalls - jp $529c + jp Functiond29c ; d201 Functiond201: ; d201 @@ -20894,11 +20893,11 @@ Functiond201: ; d201 ld a, [CurItem] ld c, a call GetTMHMNumber - jp $53c4 + jp Functiond3c4 ; d20d Functiond20d: ; d20d - call $527b + call Functiond27b jr nz, .asm_d241 push hl call CheckItemPocket @@ -20945,11 +20944,11 @@ Functiond20d: ; d20d db $6b .asm_d241 - jp $52ff + jp Functiond2ff ; d244 Functiond244: ; d244 - call $527b + call Functiond27b jr nz, .asm_d278 push hl call CheckItemPocket @@ -20996,7 +20995,7 @@ Functiond244: ; d244 db $6b .asm_d278 - jp $5349 + jp Functiond349 ; d27b Functiond27b: ; d27b @@ -21058,7 +21057,7 @@ Functiond29c: ; d29c jr .asm_d2a5 .asm_d2bd - call $5283 + call Functiond283 ld a, [de] cp c jr c, .asm_d2c6 @@ -21221,7 +21220,7 @@ Functiond374: ; d374 ld a, [hl] cp e jr nc, .asm_d387 - call $5396 + call Functiond396 ret nc jr .asm_d38a @@ -21686,7 +21685,7 @@ Functiond88c: ; d88c push de inc hl inc hl - call $5a6d + call Functionda6d pop de pop hl inc de @@ -21716,7 +21715,7 @@ Functiond88c: ; d88c ld a, $1 ld c, a ld b, $0 - call $617b + call Functione17b ld a, [$ffb5] ld [de], a inc de @@ -21784,7 +21783,7 @@ Functiond88c: ; d88c ld bc, $000a add hl, bc ld b, $0 - call $6167 + call Functione167 .asm_da45 ld a, [MonType] @@ -21918,7 +21917,7 @@ Functionde6e: ; de6e ld de, $ad10 ld a, [de] cp $14 - jp nc, $5f42 + jp nc, Functiondf42 inc a ld [de], a ld a, [CurPartySpecies] @@ -21934,7 +21933,7 @@ Functionde6e: ; de6e inc a jr nz, .asm_de85 call GetBaseData - call $5f47 + call Functiondf47 ld hl, PlayerName ld de, $afa6 ld bc, $000b @@ -22023,7 +22022,7 @@ Functionde6e: ; de6e ld bc, $0004 call CopyBytes ld b, $0 - call $5cb6 + call Functiondcb6 call CloseSRAM scf ret @@ -22093,7 +22092,7 @@ Functiondf8c: ; df8c push bc call CheckCaughtMon push bc - call $588c + call Functiond88c pop bc ld a, c and a @@ -22336,7 +22335,7 @@ Functione134: ; e134 ld a, $a call GetPartyParamLocation ld b, $1 - call $6167 + call Functione167 pop de ld a, $22 call GetPartyParamLocation @@ -22352,7 +22351,7 @@ Functione167: ; e167 ld c, $0 .asm_e169 inc c - call $617b + call Functione17b ld a, [$ffb5] ld [de], a inc de @@ -22558,7 +22557,7 @@ Functione277: ; e277 push bc xor a ld [MonType], a - call $588c + call Functiond88c jr nc, .asm_e2b0 ld hl, PartyMon1Nickname ld a, [PartyCount] @@ -22588,8 +22587,8 @@ Functione277: ; e277 ld a, [CurPartySpecies] ld [TempEnemyMonSpecies], a callab LoadEnemyMon - call $5e6e - jp nc, $63d4 + call Functionde6e + jp nc, Functione3d4 ld a, $2 ld [MonType], a xor a @@ -22721,7 +22720,7 @@ Functione277: ; e277 rst FarCall pop de jr c, .asm_e3b2 - call $63de + call Functione3de .asm_e3b2 pop bc @@ -22754,7 +22753,7 @@ INCBIN "baserom.gbc", $e3d9, $e3de - $e3d9 Functione3de: ; e3de push de - call $1d6e + call Function1d6e call Function2ed3 pop de push de @@ -22846,7 +22845,7 @@ Functione6ce: ; e6ce ret c .asm_e6ea - call $66fd + call Functione6fd ld a, [TempEnemyMonSpecies] ld [$d265], a call GetPokemonName @@ -23084,7 +23083,7 @@ Functionf780: ; f780 Functionf789: ; f789 ld hl, $783d call PrintText - call $7780 + call Functionf780 call Functiona80 ; fallthrough ; f795 @@ -23274,7 +23273,7 @@ Functionf8ec: ; f8ec jr .asm_f91d .asm_f91a - call $7963 + call Functionf963 .asm_f91d ld a, [hl] @@ -23307,7 +23306,7 @@ Functionf8ec: ; f8ec xor a ld [$d265], a ld a, b - call $7881 + call Functionf881 ld a, [hl] and $3f ld [$d265], a @@ -23361,13 +23360,13 @@ SECTION "bank4",DATA,BANK[$4] Function10000: ; 10000 ld hl, Options set 4, [hl] - call $468a + call Function1068a .asm_10008 call Functiona57 ld a, [$cf63] bit 7, a jr nz, .asm_1001a - call $4026 + call Function10026 call DelayFrame jr .asm_10008 @@ -23382,7 +23381,7 @@ Function10000: ; 10000 Function10026: ; 10026 ld a, [$cf63] ld hl, $4030 - call $486b + call Function1086b jp [hl] ; 10030 @@ -23398,7 +23397,7 @@ Function10493: ; 10493 ld a, [$cf63] bit 7, a jr nz, .asm_104ad - call $44b9 + call Function104b9 call DelayFrame jr .asm_1049b @@ -23445,15 +23444,15 @@ Function106a5: ; 106a5 ld [$cf65], a ld [$cf66], a ld [$d0e3], a - call $4955 - call $4a40 + call Function10955 + call Function10a40 ret ; 106be Function106be: ; 106be .asm_106be - call $46c7 - call $476f + call Function106c7 + call Function1076f jr c, .asm_106be ret ; 106c7 @@ -23461,7 +23460,7 @@ Function106be: ; 106be Function106c7: ; 106c7 ld a, [$cf63] ld hl, $46d1 - call $486b + call Function1086b jp [hl] ; 106d1 @@ -23532,7 +23531,7 @@ Function107bb: ; 107bb rst FarCall .asm_107ca - call $47d7 + call Function107d7 call Function1076f jr c, .asm_107ca xor a @@ -23623,13 +23622,13 @@ Function10955: ; 10955 inc a dec c jr nz, .asm_1098a - call $49bb - call $49a5 + call Function109bb + call Function109a5 ld hl, $c590 ld bc, $0412 call TextBox call EnableLCD - call $489d + call Function1089d ret ; 109a5 @@ -23699,7 +23698,7 @@ PackGFX: INCBIN "gfx/misc/pack.2bpp" Function113d6: ; 113d6 - call $54dd + call Function114dd ret ; 113da @@ -23717,7 +23716,7 @@ INCBIN "baserom.gbc", $113e5, $114dd - $113e5 Function114dd: ; 114dd call UpdateTime ld hl, $dc23 - call $5621 + call Function11621 ret ; 114e7 @@ -23795,7 +23794,7 @@ INCBIN "baserom.gbc", $116b3, $116b7 - $116b3 Function116b7: ; 0x116b7 call Function2ed3 - call $56c1 + call Function116c1 call Function2b74 ret ; 0x116c1 @@ -23819,10 +23818,10 @@ Function116c1: ; 116c1 push af ld a, $1 ld [$ffaa], a - call $56f8 + call Function116f8 call DelayFrame .asm_116e5 - call $5915 + call Function11915 jr nc, .asm_116e5 pop af ld [$ffaa], a @@ -23839,15 +23838,15 @@ Function116f8: ; 116f8 ld b, $8 call GetSGBLayout call DisableLCD - call $5c51 - call $58a8 + call Function11c51 + call Function118a8 ld a, $e3 ld [rLCDC], a - call $571d + call Function1171d call WaitBGMap call WaitTop call Function32f9 - call $5be0 + call Function11be0 ret ; 1171d @@ -23888,14 +23887,14 @@ Function118a8: ; 118a8 call ByteFill ld hl, $c4b5 ld bc, $0612 - call $589c + call Function1189c jr nz, .asm_118c4 ld bc, $0412 .asm_118c4 call ClearBox ld de, $5da2 - call $589c + call Function1189c jr nz, .asm_118d5 ld hl, $0055 add hl, de @@ -23906,7 +23905,7 @@ Function118a8: ; 118a8 push de ld hl, $c541 ld bc, $0712 - call $589c + call Function1189c jr nz, .asm_118e7 ld hl, $c519 ld bc, $0912 @@ -23919,7 +23918,7 @@ Function118a8: ; 118a8 pop de ld hl, $c542 ld b, $5 - call $589c + call Function1189c jr nz, .asm_11903 ld hl, $c51a ld b, $6 @@ -23946,11 +23945,11 @@ Function11915: ; 11915 ld a, [$cf63] bit 7, a jr nz, .asm_11930 - call $5968 + call Function11968 ld a, $23 ld hl, $4f62 rst FarCall - call $5940 + call Function11940 call DelayFrame and a ret @@ -23969,7 +23968,7 @@ Function11940: ; 11940 xor a ld [hBGMapMode], a ld hl, $c505 - call $589c + call Function1189c jr nz, .asm_1194e ld hl, $c4dd @@ -24139,7 +24138,7 @@ Function12580: ; 12580 ld hl, $65ad .asm_12590 - call $31cd + call Function31cd ld a, $1 ld [$d0ec], a ret @@ -24173,8 +24172,8 @@ StartMenu: ; 125cd call .DrawMenuAccount_ call MenuFunc_1e7f call .DrawBugContestStatusBox - call $2e31 - call $2e20 + call Function2e31 + call Function2e20 ld a, $1 ld hl, $64bf rst $8 @@ -24183,7 +24182,7 @@ StartMenu: ; 125cd jr .Select .Reopen - call $1ad2 + call Function1ad2 call Function485 call .SetUpMenuItems ld a, [$d0d2] @@ -24196,7 +24195,7 @@ StartMenu: ; 125cd ld a, [$cf88] ld [$d0d2], a call PlayClickSFX - call $1bee + call Function1bee call .OpenMenu ; Menu items have different return functions. @@ -24231,7 +24230,7 @@ StartMenu: ; 125cd .ReturnEnd call Function1c07 .ReturnEnd2 - call $2dcf + call Function2dcf call Function485 ret @@ -24245,7 +24244,7 @@ StartMenu: ; 125cd ld [MenuSelection], a .loop call .PrintMenuAccount - call $1f1a + call Function1f1a ld a, [$cf73] cp BUTTON_B jr z, .b @@ -24293,12 +24292,12 @@ StartMenu: ; 125cd .Clear ; 126b7 call WhiteBGMap - call $1d7d - call $2bae + call Function1d7d + call Function2bae call .DrawMenuAccount_ call MenuFunc_1e7f call .DrawBugContestStatus - call $1ad2 + call Function1ad2 call $0d90 call $2b5c ret @@ -24585,7 +24584,7 @@ StartMenu_Quit: ; 128f0 StartMenu_Save: ; 1290b ; Save the game. - call $2879 + call Function2879 ld a, $5 ld hl, $4a1a rst FarCall @@ -24615,7 +24614,7 @@ StartMenu_Status: ; 12928 ld a, $9 ld hl, $5105 rst FarCall - call $2b3c + call Function2b3c ld a, 0 ret ; 12937 @@ -24631,7 +24630,7 @@ StartMenu_Pokedex: ; 12937 ld a, $10 ld hl, $4000 rst FarCall - call $2b3c + call Function2b3c .asm_12949 ld a, 0 @@ -24645,7 +24644,7 @@ StartMenu_Pokegear: ; 1294c ld a, $24 ld hl, $4b8d rst FarCall - call $2b3c + call Function2b3c ld a, 0 ret ; 1295b @@ -24660,7 +24659,7 @@ StartMenu_Pack: ; 1295b ld a, [$cf66] and a jr nz, .asm_12970 - call $2b3c + call Function2b3c ld a, 0 ret .asm_12970 @@ -24714,7 +24713,7 @@ StartMenu_Pokemon: ; 12976 jr z, .quit .return - call $2b3c + call Function2b3c ld a, 0 ret @@ -24732,7 +24731,7 @@ INCBIN "baserom.gbc", $129d5, $12a60 - $129d5 CantUseItem: ; 12a60 ld hl, CantUseItemText - call $2012 + call Function2012 ret ; 12a67 @@ -24898,7 +24897,7 @@ GiveTakePartyMonItem: ; 12b60 cp 1 jr nz, .asm_12ba0 - call $1d6e + call Function1d6e call ClearPalettes call Function12ba9 call ClearPalettes @@ -24947,7 +24946,7 @@ Function12ba9: ; 12ba9 .next ld hl, CantBeHeldText - call $1d67 + call Function1d67 jr .loop .quit @@ -24977,13 +24976,13 @@ Function12bd9: ; 12bd9 .asm_12bf4 call $6cea ld hl, MadeHoldText - call $1d67 + call Function1d67 call GivePartyItem ret .asm_12c01 ld hl, PleaseRemoveMailText - call $1d67 + call Function1d67 ret .asm_12c08 @@ -25004,7 +25003,7 @@ Function12bd9: ; 12bd9 jr nc, .asm_12c3c ld hl, TookAndMadeHoldText - call $1d67 + call Function1d67 ld a, [$d265] ld [CurItem], a call GivePartyItem @@ -25015,7 +25014,7 @@ Function12bd9: ; 12bd9 ld [CurItem], a call $6cdf ld hl, ItemStorageIsFullText - call $1d67 + call Function1d67 .asm_12c4b ret @@ -25060,17 +25059,17 @@ TakePartyItem: ; 12c60 ld [hl], NO_ITEM call GetItemName ld hl, TookFromText - call $1d67 + call Function1d67 jr .asm_12c9a .asm_12c8c ld hl, IsntHoldingAnythingText - call $1d67 + call Function1d67 jr .asm_12c9a .asm_12c94 ld hl, ItemStorageIsFullText - call $1d67 + call Function1d67 .asm_12c9a ret @@ -25146,7 +25145,7 @@ INCBIN "baserom.gbc", $12cdf, $12e00 - $12cdf OpenPartyStats: ; 12e00 - call $1d6e + call Function1d6e call ClearSprites ; PartyMon xor a @@ -25155,7 +25154,7 @@ OpenPartyStats: ; 12e00 ld a, $25 call Predef call MaxVolume - call $1d7d + call Function1d7d ld a, 0 ret ; 12e1b @@ -25171,12 +25170,12 @@ SelectMenu: ; 13327 jp UseRegisteredItem .NotRegistered - call $2e08 + call Function2e08 ld b, BANK(ItemMayBeRegisteredText) ld hl, ItemMayBeRegisteredText - call $269a + call Function269a call $0a46 - jp $2dcf + jp Function2dcf ; 13340 @@ -25303,17 +25302,17 @@ UseRegisteredItem: ; 133c3 ; 133df .NoFunction ; 133df - call $2e08 + call Function2e08 call CantUseItem - call $2dcf + call Function2dcf and a ret ; 133ea .Current ; 133ea - call $2e08 + call Function2e08 call DoItemEffect - call $2dcf + call Function2dcf and a ret ; 133f5 @@ -25322,8 +25321,8 @@ UseRegisteredItem: ; 133c3 call ResetWindow call FadeToMenu call DoItemEffect - call $2b3c - call $2dcf + call Function2b3c + call Function2dcf and a ret ; 13406 @@ -25349,23 +25348,23 @@ UseRegisteredItem: ; 133c3 .asm_13425 call CantUseItem - call $2dcf + call Function2dcf and a ret ; 1342d Function1342d: ; 1342d - call $744a - call $747d + call Function1344a + call Function1347d jr c, .asm_13448 ld [$d041], a - call $74dd + call Function134dd jr c, .asm_13448 ld hl, $d041 cp [hl] jr z, .asm_13448 - call $74c0 + call Function134c0 and a ret @@ -25381,7 +25380,7 @@ Function1344a: ; 1344a ld [CurFruit], a ld a, d ld [$d040], a - call $745a + call Function1345a ret ; 1345a @@ -25477,17 +25476,17 @@ Function134c0: ; 134c0 ; 134dd Function134dd: ; 134dd - call $1d6e + call Function1d6e ld hl, $750d call PrintText - call $7512 + call Function13512 ld hl, $7550 call Function1d3c - call $352f - call $1ad2 + call Function352f + call Function1ad2 xor a ld [$d0e4], a - call $350c + call Function350c call Function1c17 ld a, [$cf73] cp $2 @@ -25517,7 +25516,7 @@ Function13512: ; 13512 ld de, $7537 call PlaceString ld hl, $c4f4 - call $753f + call Function1353f pop af ld [Options], a ret @@ -25535,7 +25534,7 @@ Function1353f: ; 1353f add hl, de ld a, [hl] pop de - call $756b + call Function1356b ret ; 13550 @@ -25544,7 +25543,7 @@ INCBIN "baserom.gbc", $13550, $1356b - $13550 Function1356b: ; 1356b push de - call $7575 + call Function13575 ld d, h ld e, l pop hl @@ -25609,7 +25608,7 @@ Function14000: ; 14000 ld [$0000], a call LatchClock ld a, $c - ld [$4000], a + ld [Function14000], a ld a, [$a000] set 6, a ld [$a000], a @@ -25624,7 +25623,7 @@ Function14019: ; 14019 ld [$0000], a call LatchClock ld a, $c - ld [$4000], a + ld [Function14000], a ld a, [$a000] res 6, a ld [$a000], a @@ -25691,10 +25690,10 @@ Function1406a: ; 1406a call LatchClock ld hl, $a000 ld a, $c - ld [$4000], a + ld [Function14000], a res 7, [hl] ld a, $0 - ld [$4000], a + ld [Function14000], a xor a ld [$ac60], a call CloseSRAM @@ -25830,7 +25829,7 @@ Function14135: ; 14135 ld [$ffbd], a ld a, [$d155] ld [$ffbe], a - call $43c8 + call Function143c8 ret ; 14146 @@ -25838,8 +25837,8 @@ INCBIN "baserom.gbc", $14146, $14168 - $14146 Function14168: ; 14168 - call $416f - call $4209 + call Function1416f + call Function14209 ret ; 1416f @@ -25964,9 +25963,9 @@ AddOutdoorSprites: ; 141ee Function14209: ; 14209 ld a, $4 - call $263b - call $439b - call $4215 + call Function263b + call Function1439b + call Function14215 ret ; 14215 @@ -26388,7 +26387,7 @@ Function1439b: ; 1439b .asm_143bd push bc push hl - call $43c8 + call Function143c8 pop hl pop bc dec c @@ -26402,14 +26401,14 @@ Function143c8: ; 143c8 ld a, [$ffbd] call SafeGetSprite ld a, [$ffbe] - call $4406 + call Function14406 push hl push de push bc ld a, [$d13e] bit 7, a jr nz, .asm_143df - call $4418 + call Function14418 .asm_143df pop bc @@ -26435,7 +26434,7 @@ Function143c8: ; 143c8 ld a, h add $8 ld h, a - call $4418 + call Function14418 .asm_14405 ret @@ -26495,7 +26494,7 @@ Function1442f: ; 1442f ld a, c and a ret z - call $412a + call Function1412a ret ; 1444d @@ -27319,7 +27318,7 @@ Function14b5f: ; 14b5f ; 14b85 Function14b85: ; 14b85 - call $4c10 + call Function14c10 ret ; 14b89 @@ -27335,18 +27334,18 @@ Function14c10: ; 14c10 ld a, $41 ld hl, $50d9 rst FarCall - call $4da9 - call $4dbb - call $4dd7 - call $4df7 - call $4e0c - call $4e13 - call $4e2d - call $4e40 - call $4e55 - call $4e76 - call $4e8b - call $4c6b + call Function14da9 + call Function14dbb + call Function14dd7 + call Function14df7 + call Function14e0c + call Function14e13 + call Function14e2d + call Function14e40 + call Function14e55 + call Function14e76 + call Function14e8b + call Function14c6b ld a, $11 ld hl, $4725 rst FarCall @@ -27370,7 +27369,7 @@ Function14c10: ; 14c10 ; 14c6b Function14c6b: ; 14c6b - call $4c90 + call Function14c90 ld a, $0 call GetSRAMBank ld a, [$bf10] @@ -27410,12 +27409,12 @@ INCBIN "baserom.gbc", $14c99, $14cbb - $14c99 Function14cbb: ; 14cbb - call $51fb - call $4d06 - call $4ce2 - call $4cf4 - call $4d68 - call $4d5c + call Function151fb + call Function14d06 + call Function14ce2 + call Function14cf4 + call Function14d68 + call Function14d5c ld a, $0 call GetSRAMBank xor a @@ -27469,7 +27468,7 @@ Function14d5c: ; 14d5c ; 14d68 Function14d68: ; 14d68 - call $509a + call Function1509a ret ; 14d6c @@ -27480,7 +27479,7 @@ Function14da0: ; 14da0 ld a, [$d4b4] and a ret nz - call $4cbb + call Function14cbb ret ; 14da9 @@ -27533,8 +27532,8 @@ Function14df7: ; 14df7 ; 14e0c Function14e0c: ; 14e0c - call $50d8 - call $50f9 + call Function150d8 + call Function150f9 ret ; 14e13 @@ -27543,7 +27542,7 @@ Function14e13: ; 14e13 ld bc, $0b7a ld a, $1 call GetSRAMBank - call $5273 + call Function15273 ld a, e ld [$ad0d], a ld a, d @@ -27605,7 +27604,7 @@ Function14e8b: ; 14e8b ld bc, $0b7a ld a, $0 call GetSRAMBank - call $5273 + call Function15273 ld a, e ld [$bf0d], a ld a, d @@ -27935,7 +27934,7 @@ Function15363: ; 15363 ld a, [hli] ld h, [hl] ld l, a - call $541d + call Function1541d ret ; 15377 @@ -28039,7 +28038,7 @@ LOG_OFF EQU 6 INCBIN "baserom.gbc", $157bb, $157d1 - $157bb KrisWithdrawItemMenu: ; 0x157d1 - call $1d6e + call Function1d6e ld a, BANK(ClearPCItemScreen) ld hl, ClearPCItemScreen rst $8 @@ -28050,7 +28049,7 @@ KrisWithdrawItemMenu: ; 0x157d1 jr .asm_157da .asm_157e4 - call $2b3c + call Function2b3c xor a ret ; 0x157e9 @@ -28071,7 +28070,7 @@ Function157e9: ; 0x157e9 .askquantity ld hl, .HowManyText - call $1d4f + call Function1d4f ld a, $9 ld hl, $4fbf rst $8 @@ -28085,18 +28084,18 @@ Function157e9: ; 0x157e9 ld a, [$d107] ld [Buffer2], a ld hl, NumItems - call $2f66 + call Function2f66 jr nc, .PackFull ld a, [Buffer1] ld [$d10c], a ld a, [Buffer2] ld [$d107], a ld hl, $d8f1 - call $2f53 + call Function2f53 ld a, $3b call Predef ld hl, .WithdrewText - call $1d4f + call Function1d4f xor a ld [hBGMapMode], a call Function1c07 @@ -28104,7 +28103,7 @@ Function157e9: ; 0x157e9 .PackFull ld hl, .NoRoomText - call $1d67 + call Function1d67 ret .done @@ -28125,7 +28124,7 @@ Function157e9: ; 0x157e9 KrisTossItemMenu: ; 0x1585f - call $1d6e + call Function1d6e ld a, BANK(ClearPCItemScreen) ld hl, ClearPCItemScreen rst $8 @@ -28139,7 +28138,7 @@ KrisTossItemMenu: ; 0x1585f jr .asm_15868 .asm_15878 - call $2b3c + call Function2b3c xor a ret ; 0x1587d @@ -28168,7 +28167,7 @@ KrisDepositItemMenu: ; 0x1588b call Function158b8 jr c, .asm_158b6 call Function2ed3 - call $1d6e + call Function1d6e ld a, $4 ld hl, $46a5 rst $8 @@ -28186,7 +28185,7 @@ KrisDepositItemMenu: ; 0x1588b jr .asm_1589c .asm_158b3 - call $2b3c + call Function2b3c .asm_158b6 xor a @@ -28199,7 +28198,7 @@ Function158b8: ; 0x158b8 rst $8 ret nc ld hl, Text158c7 - call $1d67 + call Function1d67 scf ret ; 0x158c7 @@ -28262,7 +28261,7 @@ Function1590a: ; 0x1590a .asm_1591d ld hl, .HowManyText - call $1d4f + call Function1d4f ld a, $9 ld hl, $4fbf rst $8 @@ -28278,14 +28277,14 @@ Function1590a: ; 0x1590a ld a, [$d107] ld [Buffer2], a ld hl, $d8f1 - call $2f66 + call Function2f66 jr nc, .asm_15965 ld a, [Buffer1] ld [$d10c], a ld a, [Buffer2] ld [$d107], a ld hl, NumItems - call $2f53 + call Function2f53 ld a, $3b call Predef ld hl, .DepositText @@ -28342,7 +28341,7 @@ Function15985: ; 0x15985 ld [$cf88], a ld a, [$d0dd] ld [$d0e4], a - call $350c + call Function350c ld a, [$d0e4] ld [$d0dd], a ld a, [$cfa9] @@ -28391,7 +28390,7 @@ Function15985: ; 0x15985 ld a, $9 ld hl, $4706 rst $8 - call $1bee + call Function1bee and a ret @@ -28420,10 +28419,10 @@ INCBIN "baserom.gbc", $15a20, $15a45 - $15a20 Function15a45: ; 15a45 - call $5b31 + call Function15b31 ld a, c ld [EngineBuffer1], a - call $5b10 + call Function15b10 ld a, [EngineBuffer1] ld hl, $5a57 rst JumpTable @@ -28434,25 +28433,25 @@ INCBIN "baserom.gbc", $15a57, $15a6e - $15a57 Function15a6e: ; 15a6e - call $5bbb - call $1d6e + call Function15bbb + call Function1d6e ld hl, $5e4a - call $5fcd - call $5c62 + call Function15fcd + call Function15c62 ld hl, $5e68 - call $5fcd + call Function15fcd ret ; 15a84 Function15a84: ; 15a84 ld b, $5 ld de, $5c51 - call $5b10 - call $5c25 - call $1d6e + call Function15b10 + call Function15c25 + call Function1d6e ld hl, $5e6d - call $5fcd - call $5c62 + call Function15fcd + call Function15c62 ld hl, WalkingDirection ld a, [hli] or [hl] @@ -28462,18 +28461,18 @@ Function15a84: ; 15a84 .asm_15aa7 ld hl, $5e8b - call $5fcd + call Function15fcd ret ; 15aae Function15aae: ; 15aae - call $5bbb - call $1d6e + call Function15bbb + call Function1d6e ld hl, $5e90 - call $5fcd - call $5c62 + call Function15fcd + call Function15c62 ld hl, $5eae - call $5fcd + call Function15fcd ret ; 15ac4 @@ -28487,14 +28486,14 @@ Function15ac4: ; 15ac4 ld de, $5aff .asm_15ad5 - call $5b10 - call $5c25 - call $1d6e + call Function15b10 + call Function15c25 + call Function1d6e ld hl, $5f83 - call $5fcd - call $5c62 + call Function15fcd + call Function15c62 ld hl, $5fb4 - call $5fcd + call Function15fcd ret ; 15aee @@ -28553,7 +28552,7 @@ INCBIN "baserom.gbc", $15b56, $15b62 - $15b56 Function15b62: ; 15b62 - call $1d6e + call Function1d6e ld hl, $5f83 call PrintText ld a, $1 @@ -28586,8 +28585,8 @@ Function15b6e: ; 15b6e Function15b8d: ; 15b8d call Function1c07 - call $5bbb - call $5c62 + call Function15bbb + call Function15c62 and a ld a, $5 ret @@ -28595,7 +28594,7 @@ Function15b8d: ; 15b8d Function15b9a: ; 15b9a call Function1c07 - call $5eb3 + call Function15eb3 ld a, $5 ret ; 15ba3 @@ -28603,13 +28602,13 @@ Function15b9a: ; 15b9a Function15ba3: ; 15ba3 call Function1c07 ld hl, $5fb4 - call $5fcd + call Function15fcd ld a, $ff ret ; 15baf Function15baf: ; 15baf - call $1d6e + call Function1d6e ld hl, $5fb9 call PrintText ld a, $1 @@ -28638,7 +28637,7 @@ Function15bbb: ; 15bbb cp $ff jr z, .asm_15be4 push de - call $5be5 + call Function15be5 pop de jr .asm_15bd7 @@ -28661,15 +28660,15 @@ Function15be5: ; 15be5 ld hl, StringBuffer1 ld de, StringBuffer2 ld bc, $8206 - call $3198 + call Function3198 pop hl ld de, StringBuffer1 ld c, $3 .asm_15c0b - call $5c1a + call Function15c1a swap a ld b, a - call $5c1a + call Function15c1a or b ld [hli], a dec c @@ -28739,15 +28738,15 @@ Function15c62: ; 15c62 ld a, $1 ld [WalkingX], a .asm_15c74 - call $5cef + call Function15cef jr nc, .asm_15c74 - call $2b3c + call Function2b3c ret ; 15c7d Function15c7d: ; 15c7d push af - call $5ca3 + call Function15ca3 ld a, [hli] ld h, [hl] ld l, a @@ -28764,15 +28763,15 @@ Function15c7d: ; 15c7d ; 15c91 Function15c91: ; 15c91 - call $5ca3 + call Function15ca3 inc hl inc hl ld a, [hl] and a - jp z, $5d83 + jp z, Function15d83 cp $1 - jp z, $5da5 - jp $5de2 + jp z, Function15da5 + jp Function15de2 ; 15ca3 Function15ca3: ; 15ca3 @@ -28793,14 +28792,14 @@ Function15cef: ; 15cef ld a, $9 ld hl, $4ae8 rst FarCall - call $1ad2 + call Function1ad2 ld hl, $5e18 call Function1d3c ld a, [WalkingX] ld [$cf88], a ld a, [WalkingY] ld [$d0e4], a - call $350c + call Function350c ld a, [$d0e4] ld [WalkingY], a ld a, [$cfa9] @@ -28813,17 +28812,17 @@ Function15cef: ; 15cef jr z, .asm_15d27 .asm_15d27 - call $5c91 + call Function15c91 jr c, .asm_15d68 - call $5d97 + call Function15d97 jr c, .asm_15d68 ld de, Money ld bc, $ffc3 ld a, $3 - call $600b + call Function1600b jr c, .asm_15d79 ld hl, NumItems - call $2f66 + call Function2f66 jr nc, .asm_15d6f ld a, [$d107] ld e, a @@ -28831,12 +28830,12 @@ Function15cef: ; 15cef ld b, $1 ld hl, WalkingDirection call BitTableFunc - call $5fc3 + call Function15fc3 ld de, Money ld bc, $ffc3 - call $5ffa + call Function15ffa ld a, $4 - call $5c7d + call Function15c7d call $0a36 .asm_15d68 @@ -28850,14 +28849,14 @@ Function15cef: ; 15cef .asm_15d6f ld a, $3 - call $5c7d + call Function15c7d call $0a36 and a ret .asm_15d79 ld a, $2 - call $5c7d + call Function15c7d call $0a36 and a ret @@ -28867,7 +28866,7 @@ Function15d83: ; 15d83 ld a, $63 ld [$d10d], a ld a, $0 - call $5c7d + call Function15c7d ld a, $9 ld hl, $4fc9 rst FarCall @@ -28879,8 +28878,8 @@ Function15d97: ; 15d97 ld a, $3b call Predef ld a, $1 - call $5c7d - call $1dcf + call Function15c7d + call Function1dcf ret ; 15da5 @@ -28919,7 +28918,7 @@ Function15da5: ; 15da5 .asm_15dd8 ld a, $5 - call $5c7d + call Function15c7d call $0a36 scf ret @@ -28927,8 +28926,8 @@ Function15da5: ; 15da5 Function15de2: ; 15de2 ld a, $0 - call $5c7d - call $5df9 + call Function15c7d + call Function15df9 ld a, $63 ld [$d10d], a ld a, $9 @@ -28971,8 +28970,8 @@ Function15eb3: ; 15eb3 rst FarCall ld a, [$cf66] and a - jp z, $5ece - call $5ee0 + jp z, Function15ece + call Function15ee0 jr .asm_15ebc ; 15ece @@ -29022,14 +29021,14 @@ Function15efd: ; 15efd call ClearBox ld hl, $5f78 call PrintTextBoxText - call $1dcf + call Function1dcf jr c, .asm_15f6e ld de, Money ld bc, $ffc3 - call $5fd7 + call Function15fd7 ld a, [$d107] ld hl, NumItems - call $2f53 + call Function2f53 ld a, $3b call Predef ld hl, $c5b9 @@ -29037,7 +29036,7 @@ Function15efd: ; 15efd call ClearBox ld hl, $5fbe call PrintTextBoxText - call $5fc3 + call Function15fc3 ld a, $9 ld hl, $4af0 rst FarCall @@ -29060,7 +29059,7 @@ Function15fc3: ; 15fc3 ; 15fcd Function15fcd: ; 15fcd - call $1d4f + call Function1d4f call $0a36 call Function1c07 ret @@ -29068,10 +29067,10 @@ Function15fcd: ; 15fcd Function15fd7: ; 15fd7 ld a, $3 - call $6053 + call Function16053 ld bc, $5ff7 ld a, $3 - call $600b + call Function1600b jr z, .asm_15ff5 jr c, .asm_15ff5 ld hl, $5ff7 @@ -29096,7 +29095,7 @@ INCBIN "baserom.gbc", $15ff7, $15ffa - $15ff7 Function15ffa: ; 15ffa ld a, $3 - call $6035 + call Function16035 jr nc, .asm_16009 xor a ld [de], a @@ -29616,10 +29615,10 @@ Function2400e: ; 2400e ld hl, Function1c66 ld a, [$cf94] rst FarCall - call $4085 + call Function24085 call Function1ad2 call Function321c - call $408f + call Function2408f ret ; 24022 @@ -29627,11 +29626,11 @@ Function24022: ; 24022 ld hl, Function1c66 ld a, [$cf94] rst FarCall - call $4085 + call Function24085 callba MobileTextBorder call Function1ad2 call Function321c - call $408f + call Function2408f ret ; 2403c @@ -29639,7 +29638,7 @@ Function2403c: ; 2403c ld hl, Function1c66 ld a, [$cf94] rst FarCall - call $4085 + call Function24085 callba MobileTextBorder call Function1ad2 call Function321c @@ -29654,7 +29653,7 @@ Function2403c: ; 2403c ld a, [$cd2b] and a jr nz, .asm_24076 - call $41ba + call Function241ba ld a, [$cfa8] and c jr z, .asm_2405a @@ -29677,7 +29676,7 @@ Function24085: ; 24085 xor a ld [hBGMapMode], a call Function1cbb - call $40db + call Function240db ret ; 2408f @@ -29742,17 +29741,17 @@ Function240db: ; 240db ld d, [hl] call Function1cc6 call Function1d05 - call $40d3 + call Function240d3 ld b, a .asm_240eb push bc push hl - call $40cd + call Function240cd ld c, a .asm_240f1 push bc ld a, [$cf94] - call $201c + call Function201c inc de ld a, [$cf93] ld c, a @@ -29831,7 +29830,7 @@ Function241a8: ; 241a8 res 7, [hl] ld a, [hBGMapMode] push af - call $4216 + call Function24216 pop af ld [hBGMapMode], a ret @@ -29860,16 +29859,16 @@ INCBIN "baserom.gbc", $241d5, $24216 - $241d5 Function24216: ; 24216 .asm_24216 - call $431a - call $4238 - call $4249 + call Function2431a + call Function24238 + call Function24249 jr nc, .asm_24237 - call $4270 + call Function24270 jr c, .asm_24237 ld a, [$cfa5] bit 7, a jr nz, .asm_24237 - call $1bdd + call Function1bdd ld b, a ld a, [$cfa8] and b @@ -29895,7 +29894,7 @@ Function24238: ; 24238 Function24249: ; 24249 .asm_24249 call RTC - call $4259 + call Function24259 ret c ld a, [$cfa5] bit 7, a @@ -29914,7 +29913,7 @@ Function24259: ; 24259 .asm_24266 call Functiona57 - call $1bdd + call Function1bdd and a ret z scf @@ -29922,15 +29921,15 @@ Function24259: ; 24259 ; 24270 Function24270: ; 24270 - call $1bdd + call Function1bdd bit 0, a - jp nz, $4318 + jp nz, Function24318 bit 1, a - jp nz, $4318 + jp nz, Function24318 bit 2, a - jp nz, $4318 + jp nz, Function24318 bit 3, a - jp nz, $4318 + jp nz, Function24318 bit 4, a jr nz, .asm_242fa bit 5, a @@ -30063,7 +30062,7 @@ Function2431a: ; 2431a ld b, a ld a, [$cfa2] ld c, a - call $1d05 + call Function1d05 ld a, [$cfa7] swap a and $f @@ -30141,10 +30140,10 @@ Function24374: ; 24374 ld h, [hl] ld l, a set 0, [hl] - call $1cfd - call $43cd - call $1d19 - call $43cd + call Function1cfd + call Function243cd + call Function1d19 + call Function243cd jr .asm_243b5 .asm_243ae @@ -30157,7 +30156,7 @@ Function24374: ; 24374 .asm_243b5 pop hl - call $43e7 + call Function243e7 ld a, h ld [de], a dec de @@ -30179,7 +30178,7 @@ Function243cd: ; 243cd call Function1c53 inc b inc c - call $43e7 + call Function243e7 .asm_243d5 push bc push hl @@ -30209,10 +30208,10 @@ Function243e8: ; 243e8 push af ld a, $7 ld [rSVBK], a - call $1c7e + call Function1c7e ld a, l or h - jp z, $445d + jp z, Function2445d ld a, l ld [$cf71], a ld a, h @@ -30226,7 +30225,7 @@ Function243e8: ; 243e8 call Function1c23 .asm_24411 - call $1c7e + call Function1c7e ld a, h or l jr z, .asm_2441b @@ -30253,7 +30252,7 @@ Function24426: ; 24426 ld bc, $0168 call CopyBytes call CloseSRAM - call $2173 + call Function2173 xor a call GetSRAMBank ld hl, $a000 @@ -30374,9 +30373,9 @@ Function244c3: ; 0x244c3 Function244e3: ; 244e3 ld hl, $4547 call Function1d3c - call $1cbb - call $1ad2 - call $321c + call Function1cbb + call Function1ad2 + call Function321c ld b, $12 call GetSGBLayout xor a @@ -30393,7 +30392,7 @@ Function244e3: ; 244e3 ld a, [$cf83] inc a ld c, a - call $1d05 + call Function1d05 ld a, $80 ld [$ffad], a ld bc, $0707 @@ -30406,14 +30405,14 @@ Function244e3: ; 244e3 Function24528: ; 24528 ld hl, $4547 call Function1d3c - call $1ce1 + call Function1ce1 call WaitBGMap call ClearSGB xor a ld [hBGMapMode], a - call $2173 - call $321c - call $1ad2 + call Function2173 + call Function321c + call Function1ad2 call $0e51 ret ; 24547 @@ -30427,11 +30426,11 @@ Function245af: ; 245af ld [hBGMapMode], a inc a ld [$ffaa], a - call $471a - call $4764 - call $47dd - call $45f1 - call $321c + call Function2471a + call Function24764 + call Function247dd + call Function245f1 + call Function321c xor a ld [hBGMapMode], a ret @@ -30439,14 +30438,14 @@ Function245af: ; 245af Function245cb: ; 245cb .asm_245cb - call $4609 - jp c, $45d6 - call z, $45e1 + call Function24609 + jp c, Function245d6 + call z, Function245e1 jr .asm_245cb ; 245d6 Function245d6: ; 245d6 - call $1ff8 + call Function1ff8 ld [$cf73], a ld a, $0 ld [$ffaa], a @@ -30454,7 +30453,7 @@ Function245d6: ; 245d6 ; 245e1 Function245e1: ; 245e1 - call $45f1 + call Function245f1 ld a, $1 ld [hBGMapMode], a ld c, $3 @@ -30471,9 +30470,9 @@ Function245f1: ; 245f1 ld a, [hl] push af set 4, [hl] - call $47f0 - call $488b - call $48b8 + call Function247f0 + call Function2488b + call Function248b8 pop af ld [Options], a ret @@ -30481,7 +30480,7 @@ Function245f1: ; 245f1 Function24609: ; 24609 .asm_24609 - call $1bd3 + call Function1bd3 ld a, [$ffa9] and $f0 ld b, a @@ -30489,21 +30488,21 @@ Function24609: ; 24609 and $f or b bit 0, a - jp nz, $4644 + jp nz, Function24644 bit 1, a jp nz, $466f bit 2, a - jp nz, $4673 + jp nz, Function24673 bit 3, a - jp nz, $4695 + jp nz, Function24695 bit 4, a - jp nz, $46b5 + jp nz, Function246b5 bit 5, a - jp nz, $46a1 + jp nz, Function246a1 bit 6, a - jp nz, $46c9 + jp nz, Function246c9 bit 7, a - jp nz, $46df + jp nz, Function246df jr .asm_24609 ; 24640 @@ -30511,15 +30510,15 @@ INCBIN "baserom.gbc", $24640, $24644 - $24640 Function24644: ; 24644 - call $1bee + call Function1bee ld a, [$cfa9] dec a - call $48d5 + call Function248d5 ld a, [MenuSelection] ld [CurItem], a ld a, [$cf75] ld [$d10d], a - call $46fc + call Function246fc dec a ld [$cf77], a ld [$d107], a @@ -30539,14 +30538,14 @@ Function24644: ; 24644 Function24673: ; 24673 ld a, [$cf91] bit 7, a - jp z, $2ec8 + jp z, Function2ec8 ld a, [$cfa9] dec a - call $48d5 + call Function248d5 ld a, [MenuSelection] cp $ff - jp z, $2ec8 - call $46fc + jp z, Function2ec8 + call Function246fc dec a ld [$cf77], a ld a, $4 @@ -30557,7 +30556,7 @@ Function24673: ; 24673 Function24695: ; 24695 ld a, [$cf91] bit 6, a - jp z, $2ec8 + jp z, Function2ec8 ld a, $8 scf ret @@ -30566,10 +30565,10 @@ Function24695: ; 24695 Function246a1: ; 246a1 ld hl, $cfa6 bit 7, [hl] - jp z, $2ec8 + jp z, Function2ec8 ld a, [$cf91] bit 3, a - jp z, $2ec8 + jp z, Function2ec8 ld a, $20 scf ret @@ -30578,10 +30577,10 @@ Function246a1: ; 246a1 Function246b5: ; 246b5 ld hl, $cfa6 bit 7, [hl] - jp z, $2ec8 + jp z, Function2ec8 ld a, [$cf91] bit 2, a - jp z, $2ec8 + jp z, Function2ec8 ld a, $10 scf ret @@ -30590,22 +30589,22 @@ Function246b5: ; 246b5 Function246c9: ; 246c9 ld hl, $cfa6 bit 7, [hl] - jp z, $2ec6 + jp z, Function2ec6 ld hl, $d0e4 ld a, [hl] and a jr z, .asm_246dc dec [hl] - jp $2ec6 + jp Function2ec6 .asm_246dc - jp $2ec8 + jp Function2ec8 ; 246df Function246df: ; 246df ld hl, $cfa6 bit 7, [hl] - jp z, $2ec6 + jp z, Function2ec6 ld hl, $d0e4 ld a, [$cf92] add [hl] @@ -30614,10 +30613,10 @@ Function246df: ; 246df cp b jr c, .asm_246f9 inc [hl] - jp $2ec6 + jp Function2ec6 .asm_246f9 - jp $2ec8 + jp Function2ec8 ; 246fc Function246fc: ; 246fc @@ -30772,7 +30771,7 @@ Function247dd: ; 247dd ; 247f0 Function247f0: ; 247f0 - call $1cf1 + call Function1cf1 ld a, [$cf91] bit 4, a jr z, .asm_2480d @@ -30783,11 +30782,11 @@ Function247f0: ; 247f0 ld b, a ld a, [$cf85] ld c, a - call $1d05 + call Function1d05 ld [hl], $61 .asm_2480d - call $1cfd + call Function1cfd ld bc, $0015 add hl, bc ld a, [$cf92] @@ -30798,13 +30797,13 @@ Function247f0: ; 247f0 add c ld [$cf77], a ld a, c - call $48d5 + call Function248d5 ld a, [MenuSelection] cp $ff jr z, .asm_24851 push bc push hl - call $486e + call Function2486e pop hl ld bc, $0028 add hl, bc @@ -30820,7 +30819,7 @@ Function247f0: ; 247f0 ld b, a ld a, [$cf85] ld c, a - call $1d05 + call Function1d05 ld [hl], $ee .asm_24850 @@ -30847,7 +30846,7 @@ Function247f0: ; 247f0 ld d, h ld e, l ld hl, $cf98 - jp $31be + jp Function31be ; 2486e Function2486e: ; 2486e @@ -30855,7 +30854,7 @@ Function2486e: ; 2486e ld d, h ld e, l ld hl, $cf98 - call $31be + call Function31be pop hl ld a, [$cf93] and a @@ -30866,7 +30865,7 @@ Function2486e: ; 2486e ld d, h ld e, l ld hl, $cf9b - call $31be + call Function31be .asm_2488a ret @@ -30897,7 +30896,7 @@ Function2488b: ; 2488b ld a, [$cf83] add $0 ld c, a - call $1d05 + call Function1d05 ld [hl], $ec .asm_248b7 @@ -30917,9 +30916,9 @@ Function248b8: ; 248b8 .asm_248c7 ld a, [$cfa9] dec a - call $48d5 + call Function248d5 ld hl, $cf9e - call $31be + call Function31be ret ; 248d5 @@ -30989,7 +30988,7 @@ Function24ac3: ; 0x24ac3 inc hl ld de, $cf75 ld bc, $0102 - call $3198 + call Function3198 .done ret @@ -31006,16 +31005,16 @@ Function24ae8: ; 24ae8 ld hl, $4b15 ld de, $000b - call $1e2e + call Function1e2e .asm_24b01 - call $1cbb - call $1cfd + call Function1cbb + call Function1cfd ld de, $0015 add hl, de ld de, Money ld bc, $2306 - call $3198 + call Function3198 ret ; 24b15 @@ -31036,7 +31035,7 @@ Function24b25: ; 24b25 ld de, $d855 ld bc, $0204 ld hl, $c4c1 - call $3198 + call Function3198 ret ; 24b4e @@ -31084,7 +31083,7 @@ Function24ef2: ; 4ef2 call Function1d35 ld a, [$d0d2] ld [$cf88], a - call $2039 + call Function2039 ld a, [$cf88] ld [$d0d2], a call Function1c07 @@ -31103,7 +31102,7 @@ Function24f0b: ; 24f0b .asm_24f19 ld a, [$d0d2] ld [$cf88], a - call $202a + call Function202a ld a, [$cf88] ld [$d0d2], a call Function1c07 @@ -31124,7 +31123,7 @@ Function24fc9: ; 24fc9 ld [Buffer2], a ld hl, $50f5 call Function1d35 - call $4ff9 + call Function24ff9 ret ; 24fe1 @@ -31138,7 +31137,7 @@ Function24fe1: ; 24fe1 ld [Buffer2], a ld hl, $50fd call Function1d35 - call $4ff9 + call Function24ff9 ret ; 24ff9 @@ -31146,8 +31145,8 @@ Function24ff9: ; 24ff9 ld a, $1 ld [$d10c], a .asm_24ffe - call $5072 - call $500e + call Function25072 + call Function2500e jr nc, .asm_24ffe cp $ff jr nz, .asm_2500c @@ -31160,7 +31159,7 @@ Function24ff9: ; 24ff9 ; 2500e Function2500e: ; 2500e - call $354b + call Function354b bit 1, c jr nz, .asm_2502b bit 0, c @@ -31241,21 +31240,21 @@ Function2500e: ; 2500e ; 25072 Function25072: ; 25072 - call $1cbb - call $1cfd + call Function1cbb + call Function1cfd ld de, $0015 add hl, de ld [hl], $f1 inc hl ld de, $d10c ld bc, $8102 - call $3198 + call Function3198 ld a, [$cf86] ld e, a ld a, [$cf87] ld d, a ld a, [$cf8a] - call $2d54 + call FarJpDe ret ; 25097 @@ -31263,8 +31262,8 @@ INCBIN "baserom.gbc", $25097, $265d3 - $25097 ProfOaksPC: ; 0x265d3 ld hl, OakPCText1 - call $1d4f - call $1dcf + call Function1d4f + call Function1dcf jr c, .shutdown call ProfOaksPCBoot ; player chose "yes"? .shutdown @@ -31339,7 +31338,7 @@ ClearOakRatingBuffer: ; 0x2665a call ByteFill pop hl ld bc, $4103 - call $3198 + call Function3198 ret ; 0x2666b @@ -31557,13 +31556,13 @@ _KrisDecorationMenu: ; 0x2675c ld a, [$d1ef] ld [$cf88], a call $6806 - call $1e5d + call Function1e5d ld a, [$cfa9] ld [$d1ef], a jr c, .asm_2678e ld a, [MenuSelection] ld hl, $67aa - call $1fa7 + call Function1fa7 jr nc, .asm_2676f .asm_2678e @@ -31587,8 +31586,8 @@ Function269dd: ; 269dd Function269e7: ; 269e7 push hl - call $69dd - call $6c72 + call Function269dd + call Function26c72 pop hl call CopyName2 ret @@ -31598,7 +31597,7 @@ INCBIN "baserom.gbc", $269f3, $26a30 - $269f3 Function26a30: ; 26a30 - call $69dd + call Function269dd ld de, $0003 add hl, de ld a, [hli] @@ -31609,7 +31608,7 @@ Function26a30: ; 26a30 Function26a3b: ; 26a3b push bc - call $6a30 + call Function26a30 pop bc call BitTable1Func ret @@ -31640,11 +31639,11 @@ Function26c8d: ; 26c8d ld a, e jr .asm_26cca - call $6c8d + call Function26c8d ld a, $d jr .asm_26cca - call $6c8d + call Function26c8d ld a, $e jr .asm_26cca @@ -31707,13 +31706,13 @@ Function26eea: ; 26eea ld a, c ld h, d ld l, e - call $69e7 + call Function269e7 ret ; 26ef1 Function26ef1: ; 26ef1 ld a, c - jp $6a3b + jp Function26a3b ; 26ef5 INCBIN "baserom.gbc", $26ef5, $26f02 - $26ef5 @@ -31721,7 +31720,7 @@ INCBIN "baserom.gbc", $26ef5, $26f02 - $26ef5 Function26f02: ; 26f02 ld a, c - call $6f0c + call Function26f0c ld b, $1 call Function26a3b ret @@ -31766,7 +31765,7 @@ Function26fb9: ; 26fb9 .asm_26fc8 ld c, a ld de, StringBuffer3 - call $6eea + call Function26eea ld b, $9 ld de, $6fd5 ret @@ -32050,7 +32049,7 @@ Function2a30d: ; 2a30d ld b, a ld a, [RoamMon1MapNumber] ld c, a - call $6355 + call Function2a355 ld a, b ld [RoamMon1MapGroup], a ld a, c @@ -32063,7 +32062,7 @@ Function2a30d: ; 2a30d ld b, a ld a, [RoamMon2MapNumber] ld c, a - call $6355 + call Function2a355 ld a, b ld [RoamMon2MapGroup], a ld a, c @@ -32076,7 +32075,7 @@ Function2a30d: ; 2a30d ld b, a ld a, [RoamMon3MapNumber] ld c, a - call $6355 + call Function2a355 ld a, b ld [RoamMon3MapGroup], a ld a, c @@ -32170,7 +32169,7 @@ Function2a355: ; 2a355 ld [RoamMon3MapNumber], a .asm_2a3ca - jp $63f6 + jp Function2a3f6 .asm_2a3cd ld hl, $640f @@ -32244,10 +32243,10 @@ INCLUDE "stats/wild/swarm_water.asm" Function2b930: ; 2b930 callba UpdateEnemyMonInParty ld hl, PartyMon1CurHP - call $7995 + call Function2b995 push bc ld hl, OTPartyMon1CurHP - call $7995 + call Function2b995 ld a, c pop bc cp c @@ -32256,7 +32255,7 @@ Function2b930: ; 2b930 jr .asm_2b976 .asm_2b94c - call $79e1 + call Function2b9e1 jr z, .asm_2b98a ld a, e cp $1 @@ -32264,10 +32263,10 @@ Function2b930: ; 2b930 cp $2 jr z, .asm_2b97f ld hl, PartyMon1CurHP - call $79a6 + call Function2b9a6 push de ld hl, OTPartyMon1CurHP - call $79a6 + call Function2b9a6 pop hl ld a, d cp h @@ -32365,16 +32364,16 @@ Function2b9a6: ; 2b9a6 Function2b9e1: ; 2b9e1 ld hl, PartyMon1CurHP - call $7a01 + call Function2ba01 jr nz, .asm_2b9f2 ld hl, OTPartyMon1CurHP - call $7a01 + call Function2ba01 ld e, $1 ret .asm_2b9f2 ld hl, OTPartyMon1CurHP - call $7a01 + call Function2ba01 ld e, $0 ret nz ld e, $2 @@ -32427,11 +32426,11 @@ Function2c000: ; 2c000 ld a, $e4 ld [rOBP0], a call Function2c165 - call $401c + call Function2c01c ld a, [IsInBattle] dec a ret z - jp $403a + jp Function2c03a ; 2c012 @@ -32440,7 +32439,7 @@ Function2c012: ; 2c012 ld a, $e4 ld [rOBP0], a call Function2c165 - jp $403a + jp Function2c03a ; 2c01c Function2c01c: ; 2c01c @@ -32492,7 +32491,7 @@ Function2c059: ; 2c059 ld de, MagikarpLength .asm_2c06b push af - call $4075 + call Function2c075 inc de pop af dec a @@ -32639,10 +32638,10 @@ Function2c095: ; 2c095 Function2c10d: ; 2c10d - call $4165 + call Function2c165 ld hl, PartyMon1CurHP ld de, PartyCount - call $4059 + call Function2c059 ld hl, $cfc4 ld a, $50 ld [hli], a @@ -32650,16 +32649,16 @@ Function2c10d: ; 2c10d ld a, $8 ld [$d003], a ld hl, Sprites - call $4143 + call Function2c143 ld hl, OTPartyMon1CurHP ld de, OTPartyCount - call $4059 + call Function2c059 ld hl, $cfc4 ld a, $50 ld [hli], a ld [hl], $68 ld hl, $c418 - jp $4143 + jp Function2c143 ; 2c143 Function2c143: ; 2c143 @@ -33434,16 +33433,16 @@ Function38000: ; 38000 .asm_38032 bit 0, [hl] - jp nz, $4045 + jp nz, Function38045 bit 1, [hl] - jp nz, $4083 + jp nz, Function38083 bit 2, [hl] - jp nz, $40c1 + jp nz, Function380c1 ; fallthrough ; 38041 Function38041: ; 38041 - call $4105 + call Function38105 ret ; 38045 @@ -33465,32 +33464,32 @@ Function38045: ; 38045 call RNG cp $c8 jr c, .asm_38077 - jp $4041 + jp Function38041 .asm_3806f call RNG cp $a - jp c, $4041 + jp c, Function38041 .asm_38077 ld a, [$c717] and $f inc a ld [$c718], a - jp $444b + jp Function3844b ; 38083 Function38083: ; 38083 callab Function0x34941 ld a, [$c717] and $f0 - jp z, $4041 + jp z, Function38041 cp $10 jr nz, .asm_3809f call RNG cp $14 jr c, .asm_380b5 - jp $4041 + jp Function38041 .asm_3809f cp $20 @@ -33498,32 +33497,32 @@ Function38083: ; 38083 call RNG cp $1e jr c, .asm_380b5 - jp $4041 + jp Function38041 .asm_380ad call RNG cp $c8 - jp c, $4041 + jp c, Function38041 .asm_380b5 ld a, [$c717] and $f inc a ld [$c718], a - jp $444b + jp Function3844b ; 380c1 Function380c1: ; 380c1 callab Function0x34941 ld a, [$c717] and $f0 - jp z, $4041 + jp z, Function38041 cp $10 jr nz, .asm_380dd call RNG cp $32 jr c, .asm_380f3 - jp $4041 + jp Function38041 .asm_380dd cp $20 @@ -33531,19 +33530,19 @@ Function380c1: ; 380c1 call RNG cp $80 jr c, .asm_380f3 - jp $4041 + jp Function38041 .asm_380eb call RNG cp $32 - jp c, $4041 + jp c, Function38041 .asm_380f3 ld a, [$c717] and $f inc a ld [$c718], a - jp $444b + jp Function3844b ; 380ff @@ -33684,7 +33683,7 @@ Function3844b: ; 3844b jr nz, .asm_38454 ld a, d cp $2 - jp nc, $446c + jp nc, Function3846c and a ret ; 3846c @@ -33747,10 +33746,10 @@ UnknownText_0x384d0: ; 384d0 ; 384d5 Function384d5: ; 384d5 - call $439a - call $44e0 + call Function3839a + call Function384e0 ld a, $34 - jp $4568 + jp Function38568 ; 384e0 Function384e0: ; 384e0 @@ -33767,27 +33766,27 @@ Function384e0: ; 384e0 ; 384f7 Function384f7: ; 384f7 - call $439a + call Function3839a ld hl, EnemySubStatus4 set 0, [hl] ld a, $21 - jp $4568 + jp Function38568 ; 38504 Function38504: ; 38504 - call $439a + call Function3839a ld hl, EnemySubStatus4 set 1, [hl] ld a, $29 - jp $4568 + jp Function38568 ; 38511 Function38511: ; 38511 - call $439a + call Function3839a ld hl, EnemySubStatus4 set 2, [hl] ld a, $2c - jp $4568 + jp Function38568 ; 3851e Function3851e: ; 3851e @@ -33841,17 +33840,17 @@ Function38553: ; 38553 Function38557 ld [$d1f1], a push bc - call $4571 + call Function38571 pop bc callba Function0x361ef - jp $4387 + jp Function38387 ; 38568 Function38568: ; 38568 ld [$d1f1], a - call $4571 - jp $4387 + call Function38571 + jp Function38387 ; 38571 Function38571: ; 38571 @@ -33924,7 +33923,7 @@ Function39550: ; 39550 Function3957b: ; 3957b ld a, [TrainerClass] ld c, a - call $5550 + call Function39550 ld a, [TrainerClass] dec a ld hl, $559c @@ -34019,7 +34018,7 @@ Function39771: ; 39771 ld a, $0 call GetSRAMBank ld de, $ac0a - call $5806 + call Function39806 call CloseSRAM jr .asm_397d0 ; 397e3 @@ -34216,16 +34215,16 @@ Function3c000: ; 3c000 ld c, $28 call DelayFrames call Function309d - call $5873 + call Function3d873 ld a, d and a jp z, LostBattle call Function30b4 ld a, [BattleType] cp $2 - jp z, $40e2 + jp z, Function3c0e2 cp $3 - jp z, $40e2 + jp z, Function3c0e2 xor a ld [CurPartyMon], a .asm_3c06b @@ -34279,17 +34278,17 @@ Function3c000: ; 3c000 call Function3dc23 .asm_3c0df - jp $412f + jp Function3c12f ; 3c0e2 Function3c0e2: ; 3c0e2 - jp $6139 + jp Function3e139 ; 3c0e5 Function3c0e5: ; 3c0e5 - call $30b4 + call Function30b4 ld a, [$d0ee] and $c0 add $2 @@ -34302,7 +34301,7 @@ Function3c0e5: ; 3c0e5 and $c0 ld [$d0ee], a ld hl, $47cf - call $52e0 + call Function3d2e0 jr nc, .asm_3c115 ld hl, $cd2a bit 4, [hl] @@ -34313,8 +34312,8 @@ Function3c0e5: ; 3c0e5 call FarBattleTextBox .asm_3c118 - call $4eec - call $52e0 + call Function3ceec + call Function3d2e0 jr c, .asm_3c126 ld de, $002b call StartSFX @@ -34327,8 +34326,8 @@ Function3c0e5: ; 3c0e5 ; 3c12f Function3c12f: ; 3c12f - call $41bf - call $43f5 + call Function3c1bf + call Function3c3f5 jp c, $41be xor a ld [$c710], a @@ -34338,7 +34337,7 @@ Function3c12f: ; 3c12f ld [$c740], a ld [CurDamage], a ld [$d257], a - call $427c + call Function3c27c call UpdateBattleMonInParty callba AIChooseMove call Function3d2f1 @@ -34349,10 +34348,10 @@ Function3c12f: ; 3c12f jp c, $41be .asm_3c174 - call $4410 + call Function3c410 jr c, .asm_3c18a .asm_3c179 - call $6139 + call Function3e139 jr c, .asm_3c1be ld a, [BattleEnded] and a @@ -34362,17 +34361,17 @@ Function3c12f: ; 3c12f jr nz, .asm_3c1be .asm_3c18a - call $4434 + call Function3c434 jr nz, .asm_3c179 - call $4300 + call Function3c300 jr c, .asm_3c1be - call $4314 + call Function3c314 jr c, .asm_3c19e - call $45fe + call Function3c5fe jr .asm_3c1a1 .asm_3c19e - call $4664 + call Function3c664 .asm_3c1a1 call Function3d2e0 @@ -34383,11 +34382,11 @@ Function3c12f: ; 3c12f ld a, [BattleEnded] and a jr nz, .asm_3c1be - call $41d6 + call Function3c1d6 ld a, [BattleEnded] and a jr nz, .asm_3c1be - jp $412f + jp Function3c12f .asm_3c1be ret @@ -34421,55 +34420,55 @@ Function3c1d6: ; 3c1d6 ld a, [$ffcb] cp $1 jr z, .asm_3c1fe - call $423c + call Function3c23c ret c - call $4a26 - call $423c + call Function3ca26 + call Function3c23c ret c call HandleWeather - call $423c + call Function3c23c ret c - call $4874 - call $423c + call Function3c874 + call Function3c23c ret c - call $4801 - call $423c + call Function3c801 + call Function3c23c ret c jr .asm_3c21e .asm_3c1fe - call $425c + call Function3c25c ret c - call $4a26 - call $425c + call Function3ca26 + call Function3c25c ret c call HandleWeather - call $425c + call Function3c25c ret c - call $4874 - call $425c + call Function3c874 + call Function3c25c ret c - call $4801 - call $425c + call Function3c801 + call Function3c25c ret c .asm_3c21e - call $48eb - call $493c - call $4a8f - call $4afb - call $4b36 - call $5e97 - call $5cf9 + call Function3c8eb + call Function3c93c + call Function3ca8f + call Function3cafb + call Function3cb36 + call Function3de97 + call Function3dcf9 call UpdateBattleMonInParty call Function309d - jp $44df + jp Function3c4df ; 3c23c Function3c23c: ; 3c23c call $4710 jr nz, .asm_3c24a - call $514e + call Function3d14e ld a, [BattleEnded] and a jr nz, .asm_3c25a @@ -34477,7 +34476,7 @@ Function3c23c: ; 3c23c .asm_3c24a call $470b jr nz, .asm_3c258 - call $4d55 + call Function3cd55 ld a, [BattleEnded] and a jr nz, .asm_3c25a @@ -34494,7 +34493,7 @@ Function3c23c: ; 3c23c Function3c25c: ; 3c25c call $470b jr nz, .asm_3c26a - call $4d55 + call Function3cd55 ld a, [BattleEnded] and a jr nz, .asm_3c27a @@ -34502,7 +34501,7 @@ Function3c25c: ; 3c25c .asm_3c26a call $4710 jr nz, .asm_3c278 - call $514e + call Function3d14e ld a, [BattleEnded] and a jr nz, .asm_3c27a @@ -34580,8 +34579,8 @@ Function3c27c: ; 3c27c xor a ld [$cfca], a ld de, $0103 - call $6e0f - call $48e4 + call Function3ee0f + call Function3c8e4 ld hl, $4d97 jp FarBattleTextBox ; 3c300 @@ -34624,28 +34623,28 @@ Function3c314: ; 3c314 call FarBattleRNG cp $80 jp c, $43f1 - jp $43f3 + jp Function3c3f3 .asm_3c341 call FarBattleRNG cp $80 - jp c, $43f3 + jp c, Function3c3f3 jp $43f1 .asm_3c34c callab Function3846c call SetEnemyTurn call Function3dc23 - jp $43f3 + jp Function3c3f3 .asm_3c35b ld a, [$d0ec] and a jp nz, $43f1 - call $45b4 + call Function3c5b4 jr z, .asm_3c36d jp c, $43f1 - jp $43f3 + jp Function3c3f3 .asm_3c36d call SetPlayerTurn @@ -34671,7 +34670,7 @@ Function3c314: ; 3c314 call FarBattleRNG cp c jr nc, .asm_3c3c5 - jp $43f3 + jp Function3c3f3 .asm_3c39f ld a, [$ffcb] @@ -34679,7 +34678,7 @@ Function3c314: ; 3c314 jr z, .asm_3c3b5 call FarBattleRNG cp c - jp c, $43f3 + jp c, Function3c3f3 call FarBattleRNG cp e jp c, $43f1 @@ -34691,7 +34690,7 @@ Function3c314: ; 3c314 jp c, $43f1 call FarBattleRNG cp c - jp c, $43f3 + jp c, Function3c3f3 jr .asm_3c3c5 .asm_3c3c5 @@ -34701,7 +34700,7 @@ Function3c314: ; 3c314 call StringCmp jr z, .asm_3c3d8 jp nc, $43f1 - jp $43f3 + jp Function3c3f3 .asm_3c3d8 ld a, [$ffcb] @@ -34710,12 +34709,12 @@ Function3c314: ; 3c314 call FarBattleRNG cp $80 jp c, $43f1 - jp $43f3 + jp Function3c3f3 .asm_3c3e9 call FarBattleRNG cp $80 - jp c, $43f3 + jp c, Function3c3f3 scf ret ; 3c3f3 @@ -34747,17 +34746,17 @@ Function3c3f5: ; 3c3f5 Function3c410: ; 3c410 ld a, [PlayerSubStatus4] and $20 - jp nz, $4432 + jp nz, Function3c432 ld hl, EnemySubStatus3 res 3, [hl] ld hl, PlayerSubStatus3 res 3, [hl] ld a, [hl] and $12 - jp nz, $4432 + jp nz, Function3c432 ld hl, PlayerSubStatus1 bit 6, [hl] - jp nz, $4432 + jp nz, Function3c432 and a ret ; 3c432 @@ -34768,7 +34767,7 @@ Function3c432: ; 3c432 ; 3c434 Function3c434: ; 3c434 - call $4410 + call Function3c410 jp c, $44ba ld hl, PlayerSubStatus5 bit 4, [hl] @@ -34790,7 +34789,7 @@ Function3c434: ; 3c434 ld [$d235], a inc a ld [FXAnimIDLo], a - call $64bc + call Function3e4bc push af call Function30b4 call UpdateBattleHuds @@ -35070,42 +35069,42 @@ Function3c5ec: ; 3c5ec Function3c5fe: ; 3c5fe call Function309d - call $4543 + call Function3c543 jp c, Function3c0e5 call SetEnemyTurn ld a, $1 ld [$c70f], a callab Function38000 jr c, .asm_3c62f - call $46de + call Function3c6de call Function3d2e0 ret c ld a, [$d232] and a ret nz call $4710 - jp z, $514e + jp z, Function3d14e call $470b - jp z, $4d55 + jp z, Function3cd55 .asm_3c62f call SetEnemyTurn - call $4716 - jp z, $4d55 + call Function3c716 + jp z, Function3cd55 call RefreshBattleHuds - call $46cf + call Function3c6cf call Function3d2e0 ret c ld a, [$d232] and a ret nz call $470b - jp z, $4d55 + jp z, Function3cd55 call $4710 - jp z, $514e + jp z, Function3d14e call SetPlayerTurn - call $4716 - jp z, $514e + call Function3c716 + jp z, Function3d14e call RefreshBattleHuds xor a ld [$d0ec], a @@ -35118,7 +35117,7 @@ Function3c664: ; 3c664 call SetEnemyTurn callab Function38000 push af - call $46cf + call Function3c6cf pop bc ld a, [$d232] and a @@ -35126,36 +35125,36 @@ Function3c664: ; 3c664 call Function3d2e0 ret c call $470b - jp z, $4d55 + jp z, Function3cd55 call $4710 - jp z, $514e + jp z, Function3d14e push bc call SetPlayerTurn - call $4716 + call Function3c716 pop bc - jp z, $514e + jp z, Function3d14e push bc call RefreshBattleHuds pop af jr c, .asm_3c6be call Function309d - call $4543 + call Function3c543 jp c, Function3c0e5 - call $46de + call Function3c6de call Function3d2e0 ret c ld a, [$d232] and a ret nz call $4710 - jp z, $514e + jp z, Function3d14e call $470b - jp z, $4d55 + jp z, Function3cd55 .asm_3c6be call SetEnemyTurn - call $4716 - jp z, $4d55 + call Function3c716 + jp z, Function3cd55 call RefreshBattleHuds xor a ld [$d0ec], a @@ -35164,16 +35163,16 @@ Function3c664: ; 3c664 Function3c6cf: ; 3c6cf call SetPlayerTurn - call $46fe + call Function3c6fe callab DoPlayerTurn - jp $46ed + jp Function3c6ed ; 3c6de Function3c6de: ; 3c6de call SetEnemyTurn - call $46fe + call Function3c6fe callab DoEnemyTurn - jp $46ed + jp Function3c6ed ; 3c6ed Function3c6ed: ; 3c6ed @@ -35211,7 +35210,7 @@ Function3c706: ; 3c706 ; 3c716 Function3c716: ; 3c716 - call $4706 + call Function3c706 ret z ld a, $a call CleanGetBattleVarPair @@ -35230,7 +35229,7 @@ Function3c716: ; 3c716 pop de xor a ld [$cfca], a - call $6e0f + call Function3ee0f call GetEighthMaxHP ld de, $c674 ld a, [hBattleTurn] @@ -35243,7 +35242,7 @@ Function3c716: ; 3c716 call CleanGetBattleVarPair bit 0, a jr z, .asm_3c765 - call $4c76 + call Function3cc76 ld a, [de] inc a ld [de], a @@ -35256,34 +35255,34 @@ Function3c716: ; 3c716 ld c, l .asm_3c765 - call $4c3f + call Function3cc3f .asm_3c768 - call $4706 + call Function3c706 jp z, $47f7 ld a, $3 call GetBattleVarPair bit 7, [hl] jr z, .asm_3c7a1 - call $48e4 + call Function3c8e4 xor a ld [$cfca], a ld de, $0107 ld a, $7 call CleanGetBattleVarPair and $60 - call z, $6e0f - call $48e4 + call z, Function3ee0f + call Function3c8e4 call GetEighthMaxHP - call $4c3f + call Function3cc3f ld a, $1 ld [hBGMapMode], a - call $4cef + call Function3ccef ld hl, $480e call FarBattleTextBox .asm_3c7a1 - call $4706 + call Function3c706 jr z, .asm_3c7f7 ld a, $0 call GetBattleVarPair @@ -35292,14 +35291,14 @@ Function3c716: ; 3c716 xor a ld [$cfca], a ld de, $010c - call $6e0f + call Function3ee0f call GetQuarterMaxHP - call $4c3f + call Function3cc3f ld hl, $4822 call FarBattleTextBox .asm_3c7c5 - call $4706 + call Function3c706 jr z, .asm_3c7f7 ld a, $0 call GetBattleVarPair @@ -35308,9 +35307,9 @@ Function3c716: ; 3c716 xor a ld [$cfca], a ld de, $010c - call $6e0f + call Function3ee0f call GetQuarterMaxHP - call $4c3f + call Function3cc3f ld hl, $4836 call FarBattleTextBox @@ -35440,17 +35439,17 @@ Function3c874: ; 3c874 call CleanGetBattleVarPair and $60 jr nz, .asm_3c8d3 - call $48e4 + call Function3c8e4 xor a ld [$cfca], a ld [FXAnimIDHi], a ld a, $37 call Predef - call $48e4 + call Function3c8e4 .asm_3c8d3 - call $4c76 - call $4c3f + call Function3cc76 + call Function3cc3f ld hl, $4de2 jr .asm_3c8e1 @@ -35507,9 +35506,9 @@ Function3c8eb: ; 3c8eb ret z .asm_3c92d - call $4c76 - call $48e4 - call $4cef + call Function3cc76 + call Function3c8e4 + call Function3ccef ld hl, $4880 jp FarBattleTextBox ; 3c93c @@ -35631,14 +35630,14 @@ Function3c93c: ; 3c93c ld [$d265], a xor a ld [hl], a - call $5f12 + call Function3df12 ld a, [hBattleTurn] and a jr z, .asm_3ca12 ld a, [IsInBattle] dec a jr z, .asm_3ca14 - call $5f1f + call Function3df1f .asm_3ca12 xor a @@ -35646,9 +35645,9 @@ Function3c93c: ; 3c93c .asm_3ca14 call GetItemName - call $48e4 - call $5dc8 - call $48e4 + call Function3c8e4 + call Function3ddc8 + call Function3c8e4 ld hl, $4899 jp FarBattleTextBox ; 3ca26 @@ -35929,14 +35928,14 @@ HandleWeather: ; 3cb9e cp STEEL ret z - call $48e4 + call Function3c8e4 xor a ld [$cfca], a ld de, $010b call Function3ee17 - call $48e4 + call Function3c8e4 call GetEighthMaxHP - call $4c3f + call Function3cc3f ld hl, BattleText_0x8084d jp FarBattleTextBox @@ -35972,13 +35971,13 @@ HandleWeather: ; 3cb9e ; 3cc39 Function3cc39: ; 3cc39 - call $4c45 - jp $4d3c + call Function3cc45 + jp Function3cd3c ; 3cc3f Function3cc3f: ; 3cc3f call Function3cc45 - jp $4d36 + jp Function3cd36 ; 3cc45 @@ -36187,9 +36186,9 @@ Function3ccef: ; 3ccef ld [$d1ee], a .asm_3cd2d - call $48e4 + call Function3c8e4 call Function3cd36 - jp $48e4 + jp Function3c8e4 ; 3cd36 Function3cd36: ; 3cd36 @@ -36217,15 +36216,15 @@ Function3cd3c: ; 3cd3c ; 3cd55 Function3cd55: ; 3cd55 - call $4f14 + call Function3cf14 ld hl, BattleMonHP ld a, [hli] or [hl] - call z, $4ef1 + call z, Function3cef1 xor a ld [$c6f7], a - call $4e01 - call $5873 + call Function3ce01 + call Function3d873 ld a, d and a jp z, LostBattle @@ -36245,32 +36244,32 @@ Function3cd55: ; 3cd55 ret .asm_3cd8c - call $4f35 - jp z, $4fa4 + call Function3cf35 + jp z, Function3cfa4 ld hl, BattleMonHP ld a, [hli] or [hl] jr nz, .asm_3cdba - call $51f8 + call Function3d1f8 jr nc, .asm_3cda4 ld a, $1 ld [BattleEnded], a ret .asm_3cda4 - call $5227 + call Function3d227 call Function3d2e0 jp c, Function3c0e5 ld a, $1 ld [$d0ec], a - call $4f4a + call Function3cf4a jp z, Function3c0e5 jr .asm_3cdca .asm_3cdba ld a, $1 ld [$d0ec], a - call $4f4a + call Function3cf4a jp z, Function3c0e5 xor a ld [$d0ec], a @@ -36284,7 +36283,7 @@ Function3cd55: ; 3cd55 ld hl, $c4a1 ld bc, $040a call ClearBox - call $52b3 + call Function3d2b3 ld a, $1 call $4f78 jr .asm_3cdfc @@ -36298,7 +36297,7 @@ Function3cd55: ; 3cd55 call Function309d pop af ld [CurPartyMon], a - call $52b3 + call Function3d2b3 .asm_3cdfc xor a @@ -36345,22 +36344,22 @@ Function3ce01: ; 3ce01 ld a, [$c6f7] and a jr nz, .asm_3ce47 - call $51aa + call Function3d1aa .asm_3ce47 - call $5873 + call Function3d873 ld a, d and a ret z ld a, [IsInBattle] dec a - call z, $50ea + call z, Function3d0ea call Function3edd1 call Function309d ld a, [$d0ee] and $c0 ld [$d0ee], a - call $4eaa + call Function3ceaa jr z, .asm_3ce72 ld hl, EnemyMonBaseStats ld b, $7 @@ -36377,8 +36376,8 @@ Function3ce01: ; 3ce01 call CopyBytes xor a ld [$c71f], a - call $6e3b - call $4eaa + call Function3ee3b + call Function3ceaa ret z ld a, [$c664] push af @@ -36390,7 +36389,7 @@ Function3ce01: ; 3ce01 call CopyBytes ld a, $1 ld [$c71f], a - call $6e3b + call Function3ee3b pop af ld [$c664], a ret @@ -36565,7 +36564,7 @@ Function3cfa4: ; 3cfa4 ld a, [InLinkBattle] and a ld a, b - call z, $50ea + call z, Function3d0ea callab Function39939 ld hl, BattleText_0x809da call FarBattleTextBox @@ -36577,7 +36576,7 @@ Function3cfa4: ; 3cfa4 ld a, [$cfc0] bit 0, a jr nz, .asm_3d006 - call $6bd8 + call Function3ebd8 ld c, $28 call DelayFrames ld a, [BattleType] @@ -36590,13 +36589,13 @@ Function3cfa4: ; 3cfa4 ld a, [$c2cc] bit 0, a jr nz, .asm_3cff2 - call $3718 + call Function3718 .asm_3cff2 - jp $502b + jp Function3d02b .asm_3cff5 - call $6bd8 + call Function3ebd8 ld c, $28 call DelayFrames ld c, $4 @@ -36606,7 +36605,7 @@ Function3cfa4: ; 3cfa4 ret .asm_3d006 - call $6bd8 + call Function3ebd8 ld c, $28 call DelayFrames call Function3edd1 @@ -36629,8 +36628,8 @@ Function3cfa4: ; 3cfa4 Function3d02b: ; 3d02b ld a, [$c73d] and a - call nz, $5099 - call $50b1 + call nz, Function3d099 + call Function3d0b1 push af ld a, $0 jr nc, .asm_3d044 @@ -36647,7 +36646,7 @@ Function3d02b: ; 3d02b ld a, b and a jr z, .asm_3d052 - call $5081 + call Function3d081 dec c dec b jr .asm_3d047 @@ -36656,13 +36655,13 @@ Function3d02b: ; 3d02b ld a, c and a jr z, .asm_3d05c - call $508d + call Function3d08d dec c jr .asm_3d052 .asm_3d05c - call $5099 - call $5099 + call Function3d099 + call Function3d099 pop af jr nc, .asm_3d07b ld a, [$d854] @@ -36688,7 +36687,7 @@ Function3d081: ; 3d081 push bc ld hl, $c688 ld de, $d853 - call $50be + call Function3d0be pop bc ret ; 3d08d @@ -36697,7 +36696,7 @@ Function3d08d: ; 3d08d push bc ld hl, $c688 ld de, $d850 - call $50be + call Function3d0be pop bc ret ; 3d099 @@ -36782,7 +36781,7 @@ Function3d0ea: ; 3d0ea dec a jr nz, .asm_3d113 push de - call $4eaa + call Function3ceaa pop de jr nz, .asm_3d11e ld hl, $c6ec @@ -36865,15 +36864,15 @@ KantoGymLeaders: Function3d14e: ; 3d14e - call $4ef1 + call Function3cef1 ld hl, EnemyMonHPHi ld a, [hli] or [hl] - call z, $4f14 + call z, Function3cf14 ld a, $1 ld [$c6f7], a - call $51aa - call $5873 + call Function3d1aa + call Function3d873 ld a, d and a jp z, LostBattle @@ -36881,7 +36880,7 @@ Function3d14e: ; 3d14e ld a, [hli] or [hl] jr nz, .asm_3d185 - call $4e01 + call Function3ce01 ld a, [IsInBattle] dec a jr nz, .asm_3d17f @@ -36890,18 +36889,18 @@ Function3d14e: ; 3d14e ret .asm_3d17f - call $4f35 - jp z, $4fa4 + call Function3cf35 + jp z, Function3cfa4 .asm_3d185 - call $51f8 + call Function3d1f8 jr nc, .asm_3d190 ld a, $1 ld [BattleEnded], a ret .asm_3d190 - call $5227 + call Function3d227 call Function3d2e0 jp c, Function3c0e5 ld a, c @@ -36909,7 +36908,7 @@ Function3d14e: ; 3d14e ret nz ld a, $1 ld [$d0ec], a - call $4f4a + call Function3cf4a jp z, Function3c0e5 jp $4dca ; 3d1aa @@ -36976,14 +36975,14 @@ Function3d1f8: ; 3d1f8 jr z, .asm_3d20a ld hl, PartyMon1Spd ld de, EnemyMonSpd - jp $58b3 + jp Function3d8b3 ; 3d227 Function3d227: ; 3d227 call Function3edd1 call Function1d6e call Function3d2f7 - call $5362 + call Function3d362 ld a, [InLinkBattle] and a jr z, .asm_3d241 @@ -37105,7 +37104,7 @@ Function3d313: ; 3d313 ; 3d329 Function3d329: ; 3d329 - call $52f1 + call Function3d2f1 jr z, .asm_3d335 callba PartyMenuSelect ret @@ -37121,10 +37120,10 @@ Function3d33c: ; 3d33c .asm_3d33c ld a, $2 ld [PartyMenuActionText], a - call $5313 - call $5329 + call Function3d313 + call Function3d329 ret c - call $5887 + call Function3d887 jr z, .asm_3d33c xor a ret @@ -37161,9 +37160,9 @@ Function3d362: ; 3d362 Function3d375: ; 3d375 .asm_3d375 - call $533c + call Function3d33c ret c - call $534f + call Function3d34f jr c, .asm_3d375 xor a ret @@ -37171,7 +37170,7 @@ Function3d375: ; 3d375 Function3d380: ; 3d380 .asm_3d380 - call $5362 + call Function3d362 call Function3d2e0 ret c call Function3d34f @@ -37197,7 +37196,7 @@ LostBattle: ; 3d38e hlcoord 0, 0 ld bc, $0815 call ClearBox - call $6bd8 + call Function3ebd8 ld c, 40 call DelayFrames @@ -37205,7 +37204,7 @@ LostBattle: ; 3d38e ld a, [$c2cc] bit 0, a jr nz, .asm_3d3bc - call $3718 + call Function3718 .asm_3d3bc ret @@ -37214,12 +37213,12 @@ LostBattle: ; 3d38e hlcoord 0, 0 ld bc, $0815 call ClearBox - call $6bd8 + call Function3ebd8 ld c, 40 call DelayFrames - call $6dd1 + call Function3edd1 ld c, 2 ld a, $47 ld hl, $4000 @@ -37242,7 +37241,7 @@ LostBattle: ; 3d38e .LostLinkBattle call UpdateEnemyMonInParty - call $4f35 + call Function3cf35 jr nz, .asm_3d40a ld hl, TiedAgainstText ld a, [$d0ee] @@ -37253,7 +37252,7 @@ LostBattle: ; 3d38e .asm_3d40a ld hl, LostAgainstText - call $52f1 + call Function3d2f1 jr z, .asm_3d417 .asm_3d412 @@ -37268,7 +37267,7 @@ LostBattle: ; 3d38e hlcoord 0, 0 ld bc, $0815 call ClearBox - call $6bd8 + call Function3ebd8 ld c, 40 call DelayFrames @@ -37285,13 +37284,13 @@ LostBattle: ; 3d38e Function3d432: ; 3d432 ld hl, $c510 ld de, $c524 - jp $5444 + jp Function3d444 ; 3d43b Function3d43b: ; 3d43b ld hl, $c569 ld de, $c57d - jp $5444 + jp Function3d444 ; 3d444 Function3d444: ; 3d444 @@ -37355,7 +37354,7 @@ Function3d490: ; 3d490 ld b, $7 .asm_3d497 push hl - call $54ae + call Function3d4ae pop hl ld de, 20 add hl, de @@ -37410,20 +37409,20 @@ Function3d4c3: ; 3d4c3 Function3d4e1: ; 3d4e1 - call $5714 + call Function3d714 jr nc, .asm_3d517 - call $5557 - call $5533 + call Function3d557 + call Function3d533 jr c, .asm_3d4f1 - call $5599 + call Function3d599 .asm_3d4f1 - call $56ca - call $574b + call Function3d6ca + call Function3d74b push af - call $57a0 - call $57b8 - call $57c7 + call Function3d7a0 + call Function3d7b8 + call Function3d7c7 pop af ret c xor a @@ -37432,22 +37431,22 @@ Function3d4e1: ; 3d4e1 ld [$d0ec], a inc a ld [$c711], a - call $309d - jp $63ad + call Function309d + jp Function3e3ad .asm_3d517 - call $5557 - call $5533 + call Function3d557 + call Function3d533 jr c, .asm_3d522 - call $5599 + call Function3d599 .asm_3d522 - call $56ca + call Function3d6ca ld a, $1 ld [$c711], a - call $57a0 - call $57b8 - jp $57c7 + call Function3d7a0 + call Function3d7b8 + jp Function3d7c7 ; 3d533 Function3d533: ; 3d533 @@ -37492,8 +37491,8 @@ Function3d557: ; 3d557 ld [$c730], a ld hl, $c4b2 ld a, $8 - call $5490 - call $6dd1 + call Function3d490 + call Function3edd1 jp Function1d6e ; 3d57a @@ -37527,7 +37526,7 @@ Function3d599: ; 3d599 inc b ld a, [OTPartyCount] cp b - jp z, $5672 + jp z, Function3d672 ld a, [CurOTMon] cp b jr z, .asm_3d5d0 @@ -37541,8 +37540,8 @@ Function3d599: ; 3d599 or c pop bc jr z, .asm_3d5d0 - call $55d7 - call $5618 + call Function3d5d7 + call Function3d618 jr .asm_3d5a3 .asm_3d5d0 @@ -37781,8 +37780,8 @@ Function3d74b: ; 3d74b ld a, [$cfa9] dec a jr nz, .asm_3d79a - call $52f7 - call $5375 + call Function3d2f7 + call Function3d375 jr c, .asm_3d791 ld a, [CurBattleMon] ld [$c71a], a @@ -37790,7 +37789,7 @@ Function3d74b: ; 3d74b ld [CurBattleMon], a call ClearPalettes call DelayFrame - call $6da6 + call Function3eda6 pop af ld [CurPartyMon], a xor a @@ -37802,7 +37801,7 @@ Function3d74b: ; 3d74b .asm_3d791 call ClearPalettes call DelayFrame - call $6da6 + call Function3eda6 .asm_3d79a pop af @@ -37820,7 +37819,7 @@ Function3d7a0: ; 3d7a0 ld bc, $040a call ClearBox call WaitBGMap - jp $6e27 + jp Function3ee27 ; 3d7b8 Function3d7b8: ; 3d7b8 @@ -37839,19 +37838,19 @@ Function3d7c7: ; 3d7c7 ld [MonType], a ld a, $1f call Predef - call $747c + call Function3f47c xor a ld [$cfca], a ld [$c689], a call SetEnemyTurn ld de, $0101 - call $6e17 + call Function3ee17 call $5a79 jr nc, .asm_3d800 ld a, $1 ld [$c689], a ld de, $0101 - call $6e17 + call Function3ee17 .asm_3d800 ld bc, TempMonSpecies @@ -37872,10 +37871,10 @@ Function3d7c7: ; 3d7c7 ld a, $f ld [CryTracks], a ld a, [TempEnemyMonSpecies] - call $37b6 + call Function37b6 .asm_3d82c - call $6036 + call Function3e036 ld a, $1 ld [hBGMapMode], a ret @@ -38181,16 +38180,16 @@ Function3da0d: ; 3da0d ld de, PlayerStats ld bc, $000a call CopyBytes - call $6c2c - call $6d45 + call Function3ec2c + call BadgeStatBoosts ret ; 3da74 Function3da74: ; 3da74 - call $5a85 + call Function3da85 jr .asm_3da7c - call $5a97 + call Function3da97 .asm_3da7c ld b, h @@ -38266,7 +38265,7 @@ Function3dabd: ; 3dabd ld de, EnemyStats ld bc, $000a call CopyBytes - call $6c30 + call Function3ec30 ld hl, BaseType1 ld de, EnemyMonType1 ld a, [hli] @@ -38321,7 +38320,7 @@ Function3db5f: ; 3db5f call WaitBGMap xor a ld [hBGMapMode], a - call $743d + call Function3f43d xor a ld [$ffad], a ld [$d0d2], a @@ -38331,8 +38330,8 @@ Function3db5f: ; 3db5f ld [LastEnemyCounterMove], a ld [LastPlayerCounterMove], a ld [LastPlayerMove], a - call $64a8 - call $6e27 + call Function3e4a8 + call Function3ee27 xor a ld [$c731], a call SetPlayerTurn @@ -38340,13 +38339,13 @@ Function3db5f: ; 3db5f ld [$cfca], a ld [$c689], a ld de, $0101 - call $6e17 - call $5a74 + call Function3ee17 + call Function3da74 jr nc, .asm_3dbbc ld a, $1 ld [$c689], a ld de, $0101 - call $6e17 + call Function3ee17 .asm_3dbbc ld a, $0 @@ -38358,10 +38357,10 @@ Function3db5f: ; 3db5f ld a, $f0 ld [CryTracks], a ld a, [CurPartySpecies] - call $37b6 + call Function37b6 .asm_3dbd6 - call $5f48 + call Function3df48 ld a, $1 ld [hBGMapMode], a ret @@ -38408,13 +38407,13 @@ Function3dc18: ; 3dc18 Function3dc23: ; 3dc23 ld hl, PlayerScreens ld de, BattleMonType1 - ld bc, $5f48 + ld bc, Function3df48 ld a, [hBattleTurn] and a jr z, .asm_3dc3a ld hl, EnemyScreens ld de, EnemyMonType1 - ld bc, $6036 + ld bc, Function3e036 .asm_3dc3a bit 0, [hl] @@ -38430,9 +38429,9 @@ Function3dc23: ; 3dc23 ld hl, BattleText_0x80bae call FarBattleTextBox call GetEighthMaxHP - call $4c39 + call Function3cc39 pop hl - call $5c5a + call Function3dc5a jp WaitBGMap ; 3dc5a @@ -38444,13 +38443,13 @@ Function3dc5b: ; 3dc5b ld a, $10 call CleanGetBattleVarPair ld b, a - call $45ec + call Function3c5ec ld a, b cp $80 jr nz, .asm_3dce4 ld a, [CurBattleMon] push af - ld hl, $4000 + ld hl, Function3c000 ld a, [hBattleTurn] and a jr z, .asm_3dc7e @@ -38479,14 +38478,14 @@ Function3dc5b: ; 3dc5b ld a, $f0 ld [CryTracks], a ld a, [BattleMonSpecies] - call $37b6 + call Function37b6 ld a, [$c71a] ld c, a ld hl, $c664 ld b, $0 ld a, $3 call Predef - call $543b + call Function3d43b ld hl, BattleText_0x80a75 jr .asm_3dcdf @@ -38501,7 +38500,7 @@ Function3dc5b: ; 3dc5b ld de, $002a call StartSFX call WaitSFX - call $5432 + call Function3d432 ld hl, BattleText_0x809a8 .asm_3dcdf @@ -38521,7 +38520,7 @@ Function3dce6: ; 3dce6 ld [hBattleTurn], a ld [$cfca], a ld de, $0102 - call $6e17 + call Function3ee17 pop af ld [hBattleTurn], a ret @@ -38532,23 +38531,23 @@ Function3dcf9: ; 3dcf9 cp $1 jr z, .asm_3dd17 call SetPlayerTurn - call $5d2f - call $5de9 - call $5e51 + call Function3dd2f + call Function3dde9 + call Function3de51 call SetEnemyTurn - call $5d2f - call $5de9 - jp $5e51 + call Function3dd2f + call Function3dde9 + jp Function3de51 .asm_3dd17 call SetEnemyTurn - call $5d2f - call $5de9 - call $5e51 + call Function3dd2f + call Function3dde9 + call Function3de51 call SetPlayerTurn - call $5d2f - call $5de9 - jp $5e51 + call Function3dd2f + call Function3dde9 + jp Function3de51 ; 3dd2f Function3dd2f: ; 3dd2f @@ -38591,7 +38590,7 @@ Function3dd2f: ; 3dd2f ret nc .asm_3dd66 - call $5dc8 + call Function3ddc8 ld a, [hli] ld [Buffer2], a ld a, [hl] @@ -38652,13 +38651,13 @@ Function3ddc8: ; 3ddc8 call Function3edd1 ld a, $69 ld [FXAnimIDLo], a - call $48e4 + call Function3c8e4 xor a ld [$cfca], a ld [FXAnimIDHi], a ld a, $37 call Predef - call $48e4 + call Function3c8e4 pop bc pop de pop hl @@ -38709,11 +38708,11 @@ Function3dde9: ; 3dde9 ld hl, $65d7 .asm_3de31 - call $48e4 + call Function3c8e4 ld a, $d rst FarCall - call $48e4 - call $5dc8 + call Function3c8e4 + call Function3ddc8 call $5dac ld a, $1 and a @@ -38750,13 +38749,13 @@ Function3de51: ; 3de51 call GetBattleVarPair res 7, [hl] call GetItemName - call $5dc8 + call Function3ddc8 ld hl, BattleText_0x80dab call FarBattleTextBox ld a, [hBattleTurn] and a jr nz, .asm_3de90 - call $5f1f + call Function3df1f xor a ld [bc], a ld a, [IsInBattle] @@ -38766,7 +38765,7 @@ Function3de51: ; 3de51 ret .asm_3de90 - call $5f12 + call Function3df12 xor a ld [bc], a ld [hl], a @@ -38777,22 +38776,22 @@ Function3de97: ; 3de97 ld a, [$ffcb] cp $1 jr z, .asm_3dea3 - call $5ea9 - jp $5eb1 + call Function3dea9 + jp Function3deb1 .asm_3dea3 - call $5eb1 - jp $5ea9 + call Function3deb1 + jp Function3dea9 ; 3dea9 Function3dea9: ; 3dea9 - call $5f12 + call Function3df12 ld a, $0 jp $5eb6 ; 3deb1 Function3deb1: ; 3deb1 - call $5f1f + call Function3df1f ld a, $1 ld [hBattleTurn], a ld d, h @@ -38893,9 +38892,9 @@ Function3df48: ; 3df48 push hl push de push bc - call $5f58 - call $5f98 - call $5f9e + call Function3df58 + call Function3df98 + call Function3df9e pop bc pop de pop hl @@ -38913,7 +38912,7 @@ Function3df58: ; 3df58 rst FarCall ld hl, $c566 ld [hl], $73 - call $5fbf + call Function3dfbf ld hl, $c55e ld b, $1 xor a @@ -38929,14 +38928,14 @@ Function3df58: ; 3df58 ld hl, $c586 ld a, [TempMonLevel] ld b, a - call $7390 + call Function3f390 pop de ret ; 3df98 Function3df98: ; 3df98 ld hl, PlayerHPPal - jp $612e + jp Function3e12e ; 3df9e Function3df9e: ; 3df9e @@ -38967,7 +38966,7 @@ Function3df9e: ; 3df9e Function3dfbf: ; 3dfbf ld de, BattleMonNick ld hl, $c536 - call $6138 + call Function3e138 call PlaceString push bc ld a, [CurBattleMon] @@ -39028,8 +39027,8 @@ Function3e036: ; 3e036 push hl push de push bc - call $6043 - call $6127 + call Function3e043 + call Function3e127 pop bc pop de pop hl @@ -39051,7 +39050,7 @@ Function3e043: ; 3e043 call GetBaseData ld de, EnemyMonNick ld hl, $c4a1 - call $6138 + call Function3e138 call PlaceString ld h, b ld l, c @@ -39167,7 +39166,7 @@ Function3e043: ; 3e043 Function3e127: ; 3e127 ld hl, EnemyHPPal - call $612e + call Function3e12e ret ; 3e12e @@ -39177,7 +39176,7 @@ Function3e12e: ; 3e12e ld a, [hl] cp b ret z - jp $6e27 + jp Function3ee27 ; 3e138 Function3e138: ; 3e138 @@ -39216,7 +39215,7 @@ Function3e139: ; 3e139 rst FarCall .asm_3e171 - call $619b + call Function3e19b ret c .asm_3e175 @@ -39224,13 +39223,13 @@ Function3e139: ; 3e139 ld [hBGMapMode], a ld a, [$d0d2] cp $1 - jp z, $6192 + jp z, Function3e192 cp $3 - jp z, $61c7 + jp z, Function3e1c7 cp $2 - jp z, $628d + jp z, Function3e28d cp $4 - jp z, $6489 + jp z, Function3e489 jr .asm_3e156 ; 3e192 @@ -39272,10 +39271,10 @@ Function3e19b: ; 3e19b Function3e1c7: ; 3e1c7 ld a, [InLinkBattle] and a - jp nz, $622b + jp nz, Function3e22b ld a, [$cfc0] and a - jp nz, $622b + jp nz, Function3e22b call Function1d6e ld a, [BattleType] cp $3 @@ -39305,7 +39304,7 @@ Function3e1c7: ; 3e1c7 call DoItemEffect .asm_3e209 - call $6234 + call Function3e234 ret .asm_3e20d @@ -39318,13 +39317,13 @@ Function3e1c7: ; 3e1c7 call WaitBGMap call Function3ee27 call Function309d - jp $6139 + jp Function3e139 ; 3e22b Function3e22b: ; 3e22b ld hl, BattleText_0x80bf3 call FarBattleTextBox - jp $6139 + jp Function3e139 ; 3e234 Function3e234: ; 3e234 @@ -39352,7 +39351,7 @@ Function3e234: ; 3e234 ld a, $1 ld [$cfa9], a call Function1c07 - call $5f2c + call Function3df2c call WaitBGMap call Function309d call Function1fbf @@ -39388,12 +39387,12 @@ Function3e28d: ; 3e28d ld a, $23 ld hl, $6a4a rst FarCall - call $62f5 + call Function3e2f5 jr c, .asm_3e2c8 call Function1bee ld a, [$cfa9] cp $1 - jp z, $6358 + jp z, Function3e358 cp $2 jr z, .asm_3e2cf cp $3 @@ -39406,7 +39405,7 @@ Function3e28d: ; 3e28d jr .asm_3e299 .asm_3e2cf - call $6308 + call Function3e308 call Function3d2e0 jr c, .asm_3e2da jp $6290 @@ -39420,7 +39419,7 @@ Function3e28d: ; 3e28d call Function309d call ClearSGB call Function32f9 - jp $6139 + jp Function3e139 ; 3e2f5 Function3e2f5: ; 3e2f5 @@ -39520,17 +39519,17 @@ Function3e3ad: ; 3e3ad and a jr z, .asm_3e3c1 call Function1d6e - call $68e4 + call Function3e8e4 call Function1c17 .asm_3e3c1 - call $67c1 + call Function3e7c1 ld a, [InLinkBattle] and a jr nz, .asm_3e3cf .asm_3e3ca - call $640b + call Function3e40b and a ret @@ -39568,19 +39567,19 @@ Function3e3ff: ; 3e3ff ld a, $e rst FarCall call SetEnemyTurn - jp $5c23 + jp Function3dc23 ; 3e40b Function3e40b: ; 3e40b - call $72f4 + call Function3f2f4 ld c, $32 call DelayFrames ld hl, PlayerSubStatus4 res 6, [hl] call SetEnemyTurn - call $5c5b + call Function3dc5b jr c, .asm_3e423 - call $5ce6 + call Function3dce6 .asm_3e423 ld hl, $c535 @@ -39589,16 +39588,16 @@ Function3e40b: ; 3e40b ld a, [CurBattleMon] ld [CurPartyMon], a call $5581 - call $5a0d - call $5ab1 - call $726d - call $5bde - call $5c18 - call $5b5f - call $6dd1 - call $309d + call Function3da0d + call Function3dab1 + call Function3f26d + call Function3dbde + call Function3dc18 + call Function3db5f + call Function3edd1 + call Function309d call SetPlayerTurn - call $5c23 + call Function3dc23 ld a, $2 ld [$cfa9], a ret @@ -39616,7 +39615,7 @@ Function3e459: ; 3e459 call Function3da0d xor a ld [$d265], a - call $6cab + call Function3ecab call Function3db5f call Function3edd1 call Function309d @@ -39632,14 +39631,14 @@ Function3e489: ; 3e489 ld [$cfa9], a ld hl, BattleMonSpd ld de, EnemyMonSpd - call $58b3 + call Function3d8b3 ld a, $0 ld [$d266], a ret c ld a, [$d0ec] and a ret nz - jp $6139 + jp Function3e139 ; 3e4a8 @@ -39671,7 +39670,7 @@ Function3e4bc: ; 3e4bc jr z, .asm_3e4e2 dec a jr z, .asm_3e4dd - call $6786 + call Function3e786 ret z ld hl, BattleMonMove1 jr .asm_3e4e2 @@ -39784,11 +39783,11 @@ Function3e4bc: ; 3e4bc ld [hBGMapMode], a call Function1bd3 bit 6, a - jp nz, $661d + jp nz, Function3e61d bit 7, a - jp nz, $662e + jp nz, Function3e62e bit 2, a - jp nz, $6643 + jp nz, Function3e643 bit 1, a push af xor a @@ -39853,7 +39852,7 @@ Function3e4bc: ; 3e4bc .asm_3e613 call FarBattleTextBox call Function30b4 - jp $64bc + jp Function3e4bc ; 3e61c .string_3e61c ; 3e61c @@ -39938,7 +39937,7 @@ Function3e643: ; 3e643 .asm_3e69e xor a ld [$d0e3], a - jp $64bc + jp Function3e4bc push hl ld a, [$d0e3] @@ -39964,7 +39963,7 @@ Function3e643: ; 3e643 .asm_3e6bf ld a, [$cfa9] ld [$d0e3], a - jp $64bc + jp Function3e4bc ; 3e6c8 MoveInfoBox: ; 3e6c8 @@ -40014,7 +40013,7 @@ MoveInfoBox: ; 3e6c8 ld a, [hl] and $3f ld [StringBuffer1], a - call $675f + call Function3e75f ld hl, $c555 ld de, .Type call PlaceString @@ -40116,19 +40115,19 @@ Function3e7c1: ; 3e7c1 ld a, [InLinkBattle] and a jr z, .asm_3e817 - call $6dd1 - call $309d + call Function3edd1 + call Function309d ld a, [$d0ec] and a - call z, $68e4 - call $30b4 + call z, Function3e8e4 + call Function30b4 ld a, [$d430] cp $e jp z, $68bd cp $d jp z, $682c cp $4 - jp nc, $68c1 + jp nc, Function3e8c1 ld [CurEnemyMoveNum], a ld c, a ld a, [EnemySubStatus1] @@ -40155,8 +40154,8 @@ Function3e7c1: ; 3e7c1 jp $687f .asm_3e824 - call $68d1 - jp nz, $68c1 + call Function3e8d1 + jp nz, Function3e8c1 jr .asm_3e830 ld a, $ff @@ -40220,7 +40219,7 @@ Function3e7c1: ; 3e7c1 .asm_3e882 call SetEnemyTurn callab UpdateMoveData - call $68d1 + call Function3e8d1 jr nz, .asm_3e894 xor a ld [$c733], a @@ -40303,11 +40302,11 @@ LoadEnemyMon: ; 3e8eb ; We don't need to be here if we're in a link battle ld a, [InLinkBattle] and a - jp nz, $5abd + jp nz, Function3dabd ld a, [$cfc0] ; ???? bit 0, a - jp nz, $5abd + jp nz, Function3dabd ; Make sure everything knows what species we're working with ld a, [TempEnemyMonSpecies] @@ -40936,7 +40935,7 @@ Function3ebd8: ; 3ebd8 push bc push hl .asm_3ec01 - call $6c1a + call Function3ec1a inc hl ld a, $7 add d @@ -40983,8 +40982,8 @@ Function3ec30: ; 3ec30 Function3ec31: ; 3ec31 ld [hBattleTurn], a - call $6c39 - jp $6c76 + call Function3ec39 + jp Function3ec76 ; 3ec39 Function3ec39: ; 3ec39 @@ -41432,7 +41431,7 @@ Function3ee3b: ; 3ee3b ld a, [$cfc0] bit 0, a ret nz - call $70d4 + call Function3f0d4 xor a ld [CurPartyMon], a ld bc, PartyMon1Species @@ -41533,20 +41532,20 @@ Function3ee3b: ; 3ee3b jr z, .asm_3eee2 .asm_3eedd - call $7106 + call Function3f106 ld a, $1 .asm_3eee2 ld [$d088], a ld a, [IsInBattle] dec a - call nz, $7106 + call nz, Function3f106 push bc ld a, $1 call GetPartyParamLocation ld a, [hl] cp $7e - call z, $7106 + call z, Function3f106 ld a, [$ffb6] ld [$d087], a ld a, [$ffb5] @@ -41561,7 +41560,7 @@ Function3ee3b: ; 3ee3b ld a, [StringBuffer2] ld [$ffb5], a pop bc - call $7136 + call Function3f136 push bc call Function309d pop bc @@ -41715,8 +41714,8 @@ Function3ee3b: ; 3ee3b .asm_3f012 xor a ld [$d265], a - call $6cab - ld hl, $6c2c + call Function3ecab + ld hl, Function3ec2c ld a, $f rst FarCall ld hl, $6d45 @@ -41980,15 +41979,15 @@ Function3f136: ; 3f136 ld [CurPartyLevel], a ld [BattleMonLevel], a push de - call $721b + call Function3f21b ld c, $40 - call $722c + call Function3f22c call Function3dfbf ld hl, BattleMonNick ld de, StringBuffer1 ld bc, $000b call CopyBytes - call $3dfe + call Function3dfe ld de, $00b6 call StartSFX ld a, $23 @@ -42010,9 +42009,9 @@ Function3f136: ; 3f136 ld a, b pop bc ld c, a - call $721b - call $722c - call $3dfe + call Function3f21b + call Function3f22c + call Function3dfe pop af ld [$ffb5], a pop af @@ -42128,13 +42127,13 @@ Function3f26d: ; 3f26d ld hl, UnknownText_0x3f2d1 cp $46 jr nc, .asm_3f2ce - ld hl, $72d8 + ld hl, UnknownText_0x3f2d8 cp $28 jr nc, .asm_3f2ce - ld hl, $72df + ld hl, UnknownText_0x3f2df cp $a jr nc, .asm_3f2ce - ld hl, $72e6 + ld hl, UnknownText_0x3f2e6 .asm_3f2ce jp BattleTextBox @@ -42217,16 +42216,16 @@ Function3f2ff: ; 3f2ff pop bc pop de ld a, [$ffb6] - ld hl, $7348 + ld hl, UnknownText_0x3f348 and a ret z - ld hl, $735b + ld hl, UnknownText_0x3f35b cp $1e ret c - ld hl, $734d + ld hl, UnknownText_0x3f34d cp $46 ret c - ld hl, $7352 + ld hl, UnknownText_0x3f352 ret ; 3f348 @@ -42291,11 +42290,11 @@ Function3f360: ; 3f360 Function3f390: ; 3f390 push hl - call $739c + call Function3f39c pop hl ld de, $0007 add hl, de - jp $741c + jp Function3f41c ; 3f39c Function3f39c: ; 3f39c @@ -42429,7 +42428,7 @@ Function3f43d: ; 3f43d jr nz, .asm_3f46f ld a, [$c6fe] and a - ld hl, $46cf + ld hl, Function3c6cf jr nz, .asm_3f46f ld a, [CurPartySpecies] push af @@ -42464,7 +42463,7 @@ Function3f47c: ; 3f47c jr nz, .asm_3f4b4 ld a, [$c6fa] and a - ld hl, $46cf + ld hl, Function3c6cf jr nz, .asm_3f4b4 ld a, [CurPartySpecies] push af @@ -42500,9 +42499,9 @@ Function3f4c1: ; 3f4c1 ret z ld a, [TimeOfDayPal] push af - call $74dd - call $4000 - call $769e + call Function3f4dd + call Function3c000 + call Function3f69e pop af ld [TimeOfDayPal], a scf @@ -42520,7 +42519,7 @@ Function3f4dd: ; 3f4dd ld a, $41 ld hl, $6050 rst FarCall - call $754e + call Function3f54e xor a ld [TempBattleMonSpecies], a ld [$d0d2], a @@ -42531,13 +42530,13 @@ Function3f4dd: ; 3f4dd callba Function2ee2f call Function2ed3 callba ClearBattleRAM - call $755e - call $7568 + call Function3f55e + call Function3f568 ld b, $0 call GetSGBLayout ld hl, rLCDC res 6, [hl] - call $7b6c + call Function3fb6c call $7c8b ld hl, rLCDC set 6, [hl] @@ -42574,8 +42573,8 @@ Function3f54e: ; 3f54e Function3f55e: ; 3f55e ld a, [OtherTrainerClass] and a - jp nz, $7594 - jp $7607 + jp nz, Function3f594 + jp Function3f607 ; 3f568 Function3f568: ; 3f568 @@ -42756,8 +42755,8 @@ Function3f662: ; 3f662 Function3f69e: ; 3f69e - call $76a5 - call $76d0 + call Function3f6a5 + call Function3f6d0 ret ; 3f6a5 @@ -42765,17 +42764,17 @@ Function3f6a5: ; 3f6a5 ld a, [InLinkBattle] and a jr z, .asm_3f6b7 - call $7759 + call Function3f759 ld c, $96 call DelayFrames - call $777c + call Function3f77c ret .asm_3f6b7 ld a, [$d0ee] and $f ret nz - call $771d + call Function3f71d xor a ld [$d1e9], a ld a, $1c @@ -42785,7 +42784,7 @@ Function3f6a5: ; 3f6a5 ; 3f6d0 Function3f6d0: ; 3f6d0 - call $7998 + call Function3f998 xor a ld [Danger], a ld [IsInBattle], a @@ -42842,7 +42841,7 @@ Function3f71d: ; 3f71d .asm_3f73d ld hl, $c6ee ld de, $d850 - call $50be + call Function3d0be ld hl, BattleText_0x80730 call FarBattleTextBox ld a, [$cfc0] @@ -42870,8 +42869,8 @@ Function3f759: ; 3f759 Function3f77c: ; 3f77c callba Function3d2e0 - jp c, $780f - call $7830 + jp c, Function3f80f + call Function3f830 jr nz, .asm_3f797 ld hl, $cd2a bit 4, [hl] @@ -42914,10 +42913,10 @@ Function3f77c: ; 3f77c call DelayFrames ld a, $1 call GetSRAMBank - call $7a42 - call $785f + call Function3fa42 + call Function3f85f call CloseSRAM - call $7830 + call Function3f830 jr z, .asm_3f7ee call Functiona80 call ClearTileMap @@ -43233,7 +43232,7 @@ Function3fa42: ; 3fa42 ld bc, $000a call CopyBytes ld hl, $b254 - call $7aa0 + call Function3faa0 ld hl, $b266 ld d, $5 .asm_3fa62 @@ -43276,8 +43275,8 @@ Function3fa42: ; 3fa42 pop hl .asm_3fa99 - call $7aa0 - call $7ac8 + call Function3faa0 + call Function3fac8 ret ; 3faa0 @@ -43293,7 +43292,7 @@ Function3faa0: ; 3faa0 .asm_3fab4 add hl, bc - call $7abe + call Function3fabe ret nc inc [hl] ret nz @@ -43321,7 +43320,7 @@ Function3fac8: ; 3fac8 push bc push de push hl - call $7b54 + call Function3fb54 pop hl ld a, e pop de @@ -43435,7 +43434,7 @@ Function3fb54: ; 3fb54 ; 3fb6c Function3fb6c: ; 3fb6c - call $7bf8 + call Function3fbf8 ld hl, $c590 ld b, $4 ld c, $12 @@ -43446,7 +43445,7 @@ Function3fb6c: ; 3fb6c call ClearBox call Functione51 call Function3ed9f - call $7bd6 + call Function3fbd6 xor a ld [$ffde], a ld [$ffd0], a @@ -43502,7 +43501,7 @@ Function3fbd6: ; 3fbd6 Function3fbf8: ; 3fbf8 call GetPlayerBackpic - call $7c30 + call Function3fc30 ret ; 3fbff @@ -43556,7 +43555,7 @@ Function3fc30: ; 3fc30 call Functionf82 pop af ld [rSVBK], a - call $7c5b + call Function3fc5b ld a, $31 ld [$ffad], a ld hl, $c51a @@ -43633,7 +43632,7 @@ BattleStartMessage ; 3fc8b ld a, 1 ld [$c689], a ld de, $0101 - call $6e17 + call Function3ee17 .asm_3fcc2 callba CheckSleepingTreeMon @@ -43655,7 +43654,7 @@ BattleStartMessage ; 3fc8b ld a, $0f ld [CryTracks], a ld a, [TempEnemyMonSpecies] - call $37b6 + call Function37b6 .asm_3fceb ld a, [BattleType] @@ -43686,7 +43685,7 @@ BattleStartMessage ; 3fc8b pop hl call FarBattleTextBox - call $7830 + call Function3f830 ret nz ld c, $2 @@ -43731,14 +43730,14 @@ Function40000: ; 40000 ld [$ffaa], a xor a ld [$ffde], a - call $4063 + call Function40063 call DelayFrame .asm_40029 call Functiona57 ld a, [$cf63] bit 7, a jr nz, .asm_4003b - call $410b + call Function4010b call DelayFrame jr .asm_40029 @@ -43769,7 +43768,7 @@ Function40063: ; 40063 call WhiteBGMap call ClearSprites call ClearTileMap - call $54b7 + call Function414b7 ld hl, PlayerSDefLevel ld bc, $0115 xor a @@ -43779,16 +43778,16 @@ Function40063: ; 40063 ld [$cf64], a ld [$cf65], a ld [$cf66], a - call $40a2 + call Function400a2 ld a, [$d959] ld [$c7d4], a - call $4bdc - call $40b4 - call $40ed + call Function40bdc + call Function400b4 + call Function400ed ld a, $77 ld hl, $6247 rst FarCall - call $5af7 + call Function41af7 ret ; 400a2 @@ -43869,7 +43868,7 @@ Function400ed: ; 400ed Function4010b: ; 4010b ld a, [$cf63] ld hl, $4115 - call $5432 + call Function41432 jp [hl] ; 40115 @@ -43881,7 +43880,7 @@ Function40ad5: ; 40ad5 ld a, $33 ld [hli], a ld d, $34 - call $4b06 + call Function40b06 ld a, $35 ld [hl], a pop hl @@ -43892,7 +43891,7 @@ Function40ad5: ; 40ad5 ld a, $36 ld [hli], a ld d, $7f - call $4b06 + call Function40b06 ld a, $37 ld [hl], a pop hl @@ -43903,7 +43902,7 @@ Function40ad5: ; 40ad5 ld a, $38 ld [hli], a ld d, $39 - call $4b06 + call Function40b06 ld a, $3a ld [hl], a ret @@ -43960,7 +43959,7 @@ Function40bdc: ; 40bdc call ByteFill ld a, [$c7d4] ld hl, $4bf0 - call $5432 + call Function41432 jp [hl] ; 40bf0 @@ -43977,10 +43976,10 @@ Function40e5b: ; 40e5b ld [hBGMapMode], a ld hl, $c590 ld bc, $0412 - call $4ad5 + call Function40ad5 ld a, [$c7d8] ld hl, $4e7d - call $5432 + call Function41432 ld e, l ld d, h ld hl, $c5b9 @@ -44005,8 +44004,8 @@ Function41432: ; 41432 ; 4143b Function4143b: ; 4143b - call $4bb1 - call $4bd0 + call Function40bb1 + call Function40bd0 jr z, .asm_4145b ld a, [$def4] ld [UnownLetter], a @@ -44043,12 +44042,12 @@ Function414b7: ; 414b7 ld bc, $0310 xor a call ByteFill - call $54fb + call Function414fb call Functione5f ld hl, $9600 ld bc, $0200 call $5504 - call $5a24 + call Function41a24 jr nz, .asm_414e0 ld a, $77 ld hl, $5f1c @@ -44065,7 +44064,7 @@ Function414b7: ; 414b7 ld de, VTiles0 call Decompress ld a, $6 - call $3cb4 + call Function3cb4 call EnableLCD ret ; 414fb @@ -44100,7 +44099,7 @@ Function41a24: ; 41a24 Function41a2c: ; 41a2c ld a, $0 call GetSRAMBank - ld hl, $4000 + ld hl, Function40000 ld de, $a188 ld bc, Function270 ld a, $77 @@ -44136,7 +44135,7 @@ Function421d8: ; 421d8 ld a, [CurPartyMon] ld c, a ld b, $1 - call $6577 + call Function42577 xor a ld [$d268], a dec a @@ -44153,14 +44152,14 @@ Function421d8: ; 421d8 inc hl ld a, [hl] cp $ff - jp z, $63ff + jp z, Function423ff ld [MagikarpLength], a push hl ld a, [CurPartyMon] ld c, a ld hl, EvolvableFlags ld b, $2 - call $6577 + call Function42577 ld a, c and a jp z, $61f5 @@ -44202,9 +44201,9 @@ Function421d8: ; 421d8 jr z, .asm_42283 ld a, [TempMonLevel] cp [hl] - jp c, $63f8 - call $6461 - jp z, $63f8 + jp c, Function423f8 + call Function42461 + jp z, Function423f8 push hl ld de, TempMonAtk ld hl, TempMonDef @@ -44228,7 +44227,7 @@ Function421d8: ; 421d8 ld a, [TempMonHappiness] cp $dc jp c, $63f9 - call $6461 + call Function42461 jp z, $63f9 ld a, [hli] cp $1 @@ -44250,7 +44249,7 @@ Function421d8: ; 421d8 ld a, [InLinkBattle] and a jp z, $63f9 - call $6461 + call Function42461 jp z, $63f9 ld a, [hli] ld b, a @@ -44284,7 +44283,7 @@ Function421d8: ; 421d8 ld a, [TempMonLevel] cp b jp c, $63fa - call $6461 + call Function42461 jp z, $63fa .asm_422fd @@ -44317,7 +44316,7 @@ Function421d8: ; 421d8 push af call ClearSprites pop af - jp c, $6454 + jp c, Function42454 ld hl, $6473 call PrintText pop hl @@ -44341,7 +44340,7 @@ Function421d8: ; 421d8 ld c, $28 call DelayFrames call ClearTileMap - call $6414 + call Function42414 call GetBaseData ld hl, $d118 ld de, TempMonMaxHP @@ -44380,7 +44379,7 @@ Function421d8: ; 421d8 ld [$d265], a xor a ld [MonType], a - call $6487 + call Function42487 ld a, [$d265] dec a call SetSeenAndCaughtMon @@ -44427,7 +44426,7 @@ Function423ff: ; 423ff ret nz ld a, [$d268] and a - call nz, $3d47 + call nz, Function3d47 ret ; 42414 @@ -45004,7 +45003,7 @@ Function441cf: ; 441cf ld c, a push bc push hl - call $4207 + call Function44207 pop hl pop bc call DelayFrames @@ -45012,7 +45011,7 @@ Function441cf: ; 441cf jr nz, .asm_441d4 xor a ld [$c7db], a - call $4207 + call Function44207 ld c, $20 call DelayFrames ret @@ -45063,7 +45062,7 @@ Function4456e: ; 4456e ld hl, $5e76 rst FarCall jr nc, .asm_445be - call $4648 + call Function44648 cp $a jr nc, .asm_445be ld bc, $002f @@ -45250,13 +45249,13 @@ INCBIN "baserom.gbc", $44745, $447a0 - $44745 _KrisMailBoxMenu: ; 0x447a0 call InitMail jr z, .nomail - call $1d6e + call Function1d6e call Function44806 jp Function1c17 .nomail ld hl, .EmptyMailboxText - jp $1d67 + jp Function1d67 ; 0x447b4 .EmptyMailboxText ; 0x447b4 @@ -45329,13 +45328,13 @@ Function44806: ; 0x44806 call Function1d3c xor a ld [hBGMapMode], a - call $352f - call $1ad2 + call Function352f + call Function1ad2 ld a, [$d0f1] ld [$cf88], a ld a, [$d0f0] ld [$d0e4], a - call $350c + call Function350c ld a, [$d0e4] ld [$d0f0], a ld a, [$cfa9] @@ -45378,13 +45377,13 @@ Function4484a: ; 0x4484a dec a ld b, a call $45f4 - jp $2b3c + jp Function2b3c ; 0x44877 .PutInPack ; 0x44877 ld hl, .MessageLostText - call $1d4f - call $1dcf + call Function1d4f + call Function1dcf call Function1c07 ret c ld a, [MenuSelection] @@ -45393,10 +45392,10 @@ Function4484a: ; 0x4484a ld a, $1 ld [$d10c], a ld hl, NumItems - call $2f66 + call Function2f66 jr c, .asm_4489e ld hl, .PackFullText - jp $1d67 + jp Function1d67 .asm_4489e ld a, [MenuSelection] @@ -45404,7 +45403,7 @@ Function4484a: ; 0x4484a ld b, a call $45c0 ld hl, .PutAwayText - jp $1d67 + jp Function1d67 ; 0x448ac .PutAwayText ; 0x448ac @@ -45486,7 +45485,7 @@ Function4484a: ; 0x4484a call PrintText .asm_44939 - jp $2b3c + jp Function2b3c ; 0x4493c .HoldingMailText ; 0x4493c @@ -45588,7 +45587,7 @@ Function4925b: ; 4925b call GetSGBLayout xor a ld [$d142], a - call $52a5 + call Function492a5 ld [$d265], a ld [$d262], a call GetMoveName @@ -45606,7 +45605,7 @@ Function4925b: ; 4925b jr c, .asm_4929c .asm_49291 - call $52b9 + call Function492b9 jr nc, .asm_49289 xor a ld [ScriptVar], a @@ -45617,7 +45616,7 @@ Function4925b: ; 4925b ld [ScriptVar], a .asm_492a1 - call $2b3c + call Function2b3c ret ; 492a5 @@ -45658,7 +45657,7 @@ Function492b9: ; 492b9 pop de ld a, $b ld hl, $48ce - call $31b0 + call Function31b0 jr .asm_49300 .asm_492e5 @@ -45696,7 +45695,7 @@ Function49409: ; 49409 ld de, $d038 ld bc, $0008 ld a, $5 - call $306b + call Function306b ret ; 49418 @@ -45750,7 +45749,7 @@ MenuData2_0x49d1c: ; 49d1c db $80 ; flags db 0 ; items dw MainMenuItems - dw $1f79 + dw Function1f79 dw MainMenuText ; 49d20 @@ -45916,7 +45915,7 @@ Function49de4: ; 49de4 ld a, [$cfa5] set 5, a ld [$cfa5], a - call $1f1a + call Function1f1a ld a, [$cf73] cp $2 jr z, .asm_49e07 @@ -45992,7 +45991,7 @@ Function49e3d: ; 49e3d inc hl ld de, hMinutes ld bc, $8102 - call $3198 + call Function3198 ret ; 49e70 @@ -46105,14 +46104,14 @@ MainMenu_Mobile: ; 49efc call PlaceString call Function3200 call Function32f9 - call $1bc9 + call Function1bc9 ld hl, $cfa9 ld b, [hl] push bc jr .asm_49f5d .asm_49f55 - call $1bd3 + call Function1bd3 ld hl, $cfa9 ld b, [hl] push bc @@ -46136,7 +46135,7 @@ MainMenu_Mobile: ; 49efc cp $4 jp z, $6100 ld a, $1 - call $1ff8 + call Function1ff8 .asm_49f84 pop bc @@ -46859,11 +46858,11 @@ Function4d188: ; 4d188 ld a, $1 ld [rVBK], a ld hl, AttrMap - call $51cb + call Function4d1cb ld a, $0 ld [rVBK], a ld hl, TileMap - call $51cb + call Function4d1cb .asm_4d1bd ld a, [rLY] cp $8f @@ -46999,7 +46998,7 @@ Function4d35b: ; 4d35b ld l, e push bc push hl - call $537e + call Function4d37e pop hl pop bc ld de, $0939 @@ -47030,7 +47029,7 @@ Function4d37e: ; 4d37e ld a, $76 ld [hli], a inc a - call $53ab + call Function4d3ab inc a ld [hl], a pop hl @@ -47041,7 +47040,7 @@ Function4d37e: ; 4d37e ld a, $79 ld [hli], a ld a, $7f - call $53ab + call Function4d3ab ld [hl], $7a pop hl ld de, $0014 @@ -47051,7 +47050,7 @@ Function4d37e: ; 4d37e ld a, $7b ld [hli], a ld a, $7c - call $53ab + call Function4d3ab ld [hl], $7d ret ; 4d3ab @@ -47402,7 +47401,7 @@ INCBIN "baserom.gbc", $4d87a, $4db3b - $4d87a Function4db3b: ; 4db3b ld hl, $5b44 call PrintText - jp $1dcf + jp Function1dcf ; 4db44 INCBIN "baserom.gbc", $4db44, $4db49 - $4db44 @@ -47503,7 +47502,7 @@ StatsScreenInit: ; 4dc8a push hl call WhiteBGMap call ClearTileMap - call $1ad2 + call Function1ad2 ld a, $3e ld hl, $753e rst FarCall ; this loads graphics @@ -47621,7 +47620,7 @@ EggStatsScreen: ; 4e33a call Function32f9 ; pals call DelayFrame ld hl, TileMap - call $3786 + call Function3786 ld a, $41 ld hl, $402d rst FarCall @@ -47690,7 +47689,7 @@ Function4e5e1: ; 4e5e1 push af ld a, [BaseDexNo] push af - call $6607 + call Function4e607 pop af ld [BaseDexNo], a pop af @@ -47725,31 +47724,31 @@ Function4e607: ; 4e607 ld a, [MagikarpLength] ld [PlayerHPPal], a ld c, $0 - call $6703 + call Function4e703 ld a, [MagikarpLength] ld [CurPartySpecies], a ld [CurSpecies], a - call $6708 + call Function4e708 ld de, VTiles2 ld hl, $9310 ld bc, $0031 call Functioneba ld a, $31 ld [$d1ec], a - call $6755 + call Function4e755 ld a, [Buffer2] ld [CurPartySpecies], a ld [CurSpecies], a - call $6711 + call Function4e711 ld a, [MagikarpLength] ld [CurPartySpecies], a ld [CurSpecies], a ld a, $1 ld [hBGMapMode], a - call $6794 + call Function4e794 jr c, .asm_4e67c ld a, [MagikarpLength] - call $37ce + call Function37ce .asm_4e67c ld de, $0022 @@ -47757,21 +47756,21 @@ Function4e607: ; 4e607 ld c, $50 call DelayFrames ld c, $1 - call $6703 - call $6726 + call Function4e703 + call Function4e726 jr c, .asm_4e6df ld a, $cf ld [$d1ec], a - call $6755 + call Function4e755 xor a ld [$d1ed], a ld a, [Buffer2] ld [PlayerHPPal], a ld c, $0 - call $6703 - call $67a6 + call Function4e703 + call Function4e7a6 callba Function8cf53 - call $6794 + call Function4e794 jr c, .asm_4e6de ld a, [$c2c6] push af @@ -47801,13 +47800,13 @@ Function4e607: ; 4e607 ld a, [MagikarpLength] ld [PlayerHPPal], a ld c, $0 - call $6703 - call $67a6 + call Function4e703 + call Function4e7a6 callba Function8cf53 - call $6794 + call Function4e794 ret c ld a, [PlayerHPPal] - call $37ce + call Function37ce ret ; 4e703 @@ -47819,7 +47818,7 @@ Function4e703: ; 4e703 Function4e708: ; 4e708 call GetBaseData ld hl, $c4cf - jp $3786 + jp Function3786 ; 4e711 Function4e711: ; 4e711 @@ -47839,11 +47838,11 @@ Function4e726: ; 4e726 ld bc, $010e .asm_4e72c push bc - call $6779 + call Function4e779 pop bc jr c, .asm_4e73f push bc - call $6741 + call Function4e741 pop bc inc b dec c @@ -47861,10 +47860,10 @@ Function4e741: ; 4e741 .asm_4e741 ld a, $cf ld [$d1ec], a - call $6755 + call Function4e755 ld a, $31 ld [$d1ec], a - call $6755 + call Function4e755 dec b jr nz, .asm_4e741 ret @@ -47942,15 +47941,15 @@ Function4e7a6: ; 4e7a6 push af ld [hl], $0 .asm_4e7b8 - call $67cf + call Function4e7cf jr nc, .asm_4e7c2 - call $680c + call Function4e80c jr .asm_4e7b8 .asm_4e7c2 ld c, $20 .asm_4e7c4 - call $680c + call Function4e80c dec c jr nz, .asm_4e7c4 pop af @@ -47968,9 +47967,9 @@ Function4e7cf: ; 4e7cf and $1 jr nz, .asm_4e7e6 ld e, $0 - call $67e8 + call Function4e7e8 ld e, $10 - call $67e8 + call Function4e7e8 .asm_4e7e6 scf @@ -48119,10 +48118,10 @@ Function4e980: ; 4e980 push af ld a, $5 ld [rSVBK], a - call $6998 + call Function4e998 ld a, $43 ld [hLCDStatCustom], a - call $69ab + call Function4e9ab xor a ld [hLCDStatCustom], a pop af @@ -48131,7 +48130,7 @@ Function4e980: ; 4e980 ; 4e998 Function4e998: ; 4e998 - call $69e5 + call Function4e9e5 ld a, $90 ld [$ffcf], a ld a, $e4 @@ -48154,7 +48153,7 @@ Function4e9ab: ; 4e9ab jr c, .asm_4e9b3 ld a, d ld [$ffcf], a - call $69f1 + call Function4e9f1 inc e inc e dec d @@ -48164,7 +48163,7 @@ Function4e9ab: ; 4e9ab cp $1 jr z, .asm_4e9ce push de - call $69d6 + call Function4e9d6 pop de .asm_4e9ce @@ -48256,7 +48255,7 @@ Function4ea0a: ; 4ea0a Function4ea44: ; 4ea44 ld a, $0 ld hl, InLinkBattle - call $307b + call Function307b cp $4 jr z, .asm_4ea59 ld a, [Options] @@ -48283,7 +48282,7 @@ Function4ea44: ; 4ea44 .asm_4ea72 ld a, $5 ld hl, $dc00 - call $307b + call Function307b bit 0, a jr z, .asm_4ea80 and a @@ -48318,7 +48317,7 @@ Function4ea82: ; 4ea82 call Functionf82 ld de, $4200 ld hl, VTiles1 - ld bc, $3e80 + ld bc, Function3e80 call Functionf9d call Function4eac5 call WaitBGMap @@ -48443,7 +48442,7 @@ Function5001d: ; 5001d ld [PartyMenuActionText], a call Function2ed3 call WhiteBGMap - call $403f + call Function5003f call WaitBGMap ld b, $a call GetSGBLayout @@ -48455,9 +48454,9 @@ Function5001d: ; 5001d ; 5003f Function5003f: ; 5003f - call $404f - call $4405 - call $43e0 + call Function5004f + call Function50405 + call Function503e0 call WritePartyMenuTilemap call PrintPartyMenuText ret @@ -48486,7 +48485,7 @@ WritePartyMenuTilemap: ; 0x5005f ld bc, $0168 ld a, " " call ByteFill ; blank the tilemap - call $4396 ; This reads from a pointer table??? + call Function50396 ; This reads from a pointer table??? .asm_50077 ld a, [hli] cp $ff @@ -48517,14 +48516,14 @@ Function500cf: ; 500cf .asm_500de push bc push hl - call $4389 + call Function50389 jr z, .asm_50103 push hl - call $4117 + call Function50117 pop hl ld d, $6 ld b, $0 - call $3750 + call Function3750 ld hl, $cd9b ld a, [$cda9] ld c, a @@ -48587,7 +48586,7 @@ Function50138: ; 50138 .asm_50143 push bc push hl - call $4389 + call Function50389 jr z, .asm_5016b push hl ld a, b @@ -48599,14 +48598,14 @@ Function50138: ; 50138 pop hl push de ld bc, $0203 - call $3198 + call Function3198 pop de ld a, $f3 ld [hli], a inc de inc de ld bc, $0203 - call $3198 + call Function3198 .asm_5016b pop hl @@ -48629,7 +48628,7 @@ Function50176: ; 50176 .asm_50181 push bc push hl - call $4389 + call Function50389 jr z, .asm_501a7 push hl ld a, b @@ -48648,7 +48647,7 @@ Function50176: ; 50176 .asm_501a1 ld bc, $4103 - call $3198 + call Function3198 .asm_501a7 pop hl @@ -48671,7 +48670,7 @@ Function501b2: ; 501b2 .asm_501bd push bc push hl - call $4389 + call Function50389 jr z, .asm_501d5 push hl ld a, b @@ -48681,7 +48680,7 @@ Function501b2: ; 501b2 ld e, l ld d, h pop hl - call $4d0a + call Function50d0a .asm_501d5 pop hl @@ -48704,7 +48703,7 @@ Function501e0: ; 501e0 .asm_501eb push bc push hl - call $4389 + call Function50389 jr z, .asm_5020a push hl ld hl, PartySpecies @@ -48716,7 +48715,7 @@ Function501e0: ; 501e0 ld a, $e call Predef pop hl - call $4215 + call Function50215 call PlaceString .asm_5020a @@ -48755,7 +48754,7 @@ Function5022f: ; 5022f .asm_5023a push bc push hl - call $4389 + call Function50389 jr z, .asm_5025d push hl ld a, b @@ -48769,7 +48768,7 @@ Function5022f: ; 5022f ld hl, $65b1 add hl, de add hl, de - call $4268 + call Function50268 pop hl call PlaceString @@ -48834,7 +48833,7 @@ Function502b1: ; 502b1 .asm_502bc push bc push hl - call $4389 + call Function50389 jr z, .asm_502e3 ld [CurPartySpecies], a push hl @@ -49005,7 +49004,7 @@ Function50405: ; 50405 xor a ld [$d0e3], a ld de, $444f - call $1bb1 + call Function1bb1 ld a, [PartyCount] inc a ld [$cfa3], a @@ -49032,8 +49031,8 @@ INCBIN "baserom.gbc", $5042d, $50457 - $5042d PartyMenuSelect: ; 0x50457 ; sets carry if exitted menu. - call $1bc9 - call $1bee + call Function1bc9 + call Function1bee ld a, [PartyCount] inc a ld b, a @@ -49141,7 +49140,7 @@ Function50566: ; 50566 ld a, [PartyMenuActionText] and $f ld hl, $457b - call $45c1 + call Function505c1 ret ; 5057b @@ -49171,7 +49170,7 @@ INCBIN "baserom.gbc", $505da, $50730 - $505da Function50730: ; 50730 ld hl, $473c - call $31cd + call Function31cd ld a, $1 ld [$d0ec], a ret @@ -49199,7 +49198,7 @@ Function50779: ; 50779 cp $6 jr nz, .asm_507a9 ld hl, $47af - call $31cd + call Function31cd ld a, $1 ld [$d0ec], a ret @@ -49228,7 +49227,7 @@ Function507b4: ; 507b4 cp $a jr nz, .asm_507db ld hl, $47e1 - call $31cd + call Function31cd ld a, $1 ld [$d0ec], a ret @@ -49245,10 +49244,10 @@ INCBIN "baserom.gbc", $507e1, $507e6 - $507e1 Function507e6: ; 507e6 ld a, $0 ld [$d0ec], a - call $47fb + call Function507fb ret nc ld hl, $4821 - call $31cd + call Function31cd ld a, $1 ld [$d0ec], a ret @@ -49649,7 +49648,7 @@ Function50e47: ; 50e47 ld b, $0 ld hl, $4efa add hl, bc - call $4eed + call Function50eed ld a, d ld [hMultiplier], a call Multiply @@ -49669,7 +49668,7 @@ Function50e47: ; 50e47 push af ld a, [$ffb6] push af - call $4eed + call Function50eed ld a, [hl] and $7f ld [hMultiplier], a @@ -49799,7 +49798,7 @@ Function5120d: ; 5120d push de ld a, $4a call GetFarByte - call $51c5 + call Function511c5 push af inc hl ld a, $4a @@ -50438,7 +50437,7 @@ TrySurfStep: ; 801c0 .ExitWater call WaterToLandSprite - call $3cdf ; PlayMapMusic + call Function3cdf ; PlayMapMusic ld a, STEP_WALK call DoStep ld a, 6 @@ -50521,7 +50520,7 @@ CheckEdgeWarp: ; 80226 and 3 cp e jr nz, .asm_80259 - call $224a ; CheckFallPit? + call Function224a ; CheckFallPit? jr nc, .asm_80259 call StandInPlace @@ -50883,7 +50882,7 @@ WaterToLandSprite: ; 803f9 push bc ld a, PLAYER_NORMAL ld [PlayerState], a - call $e4a ; UpdateSprites + call Functione4a ; UpdateSprites pop bc ret ; 80404 @@ -51283,7 +51282,7 @@ INCBIN "gfx/fx/039.lz" INCBIN "baserom.gbc", $8640b, $8640e - $8640b HallOfFame3: ; 0x8640e - call $648e + call Function8648e ld a, [StatusFlags] push af ld a, $1 @@ -51308,13 +51307,13 @@ HallOfFame3: ; 0x8640e ld a, $5 ld hl, $4b85 rst FarCall - call $653f + call Function8653f ld a, $5 ld hl, $4b5f rst FarCall xor a ld [$c2cd], a - call $64c3 + call Function864c3 pop af ld b, a ld a, $42 @@ -51385,10 +51384,10 @@ Function864b4: ; 864b4 Function864c3: ; 864c3 xor a ld [$cf63], a - call $671c + call Function8671c jr c, .asm_864fb ld de, $0014 - call $64b4 + call Function864b4 xor a ld [$cf64], a .asm_864d6 @@ -51402,16 +51401,16 @@ Function864c3: ; 864c3 cp $ff jr z, .asm_864fb push hl - call $65b5 + call Function865b5 pop hl - call $650c + call Function8650c jr c, .asm_864fb ld hl, $cf64 inc [hl] jr .asm_864d6 .asm_864fb - call $6810 + call Function86810 ld a, $4 ld [MusicFade], a call $04b6 @@ -51421,7 +51420,7 @@ Function864c3: ; 864c3 ; 8650c Function8650c: ; 8650c - call $6748 + call Function86748 ld de, $652c ld hl, $c4c9 call PlaceString @@ -51561,7 +51560,7 @@ Function865b5: ; 865b5 ld b, $1a call GetSGBLayout call Function32f9 - call $6635 + call Function86635 xor a ld [$c2c6], a ld hl, TileMap @@ -51574,7 +51573,7 @@ Function865b5: ; 865b5 xor a ld [hBGMapMode], a ld [$ffd0], a - call $6643 + call Function86643 ret ; 86635 @@ -51681,7 +51680,7 @@ Function86748: ; 86748 ld hl, $c5a7 ld de, $d265 ld bc, $8103 - call $3198 + call Function3198 call GetBasePokemonName ld hl, $c5ab call PlaceString @@ -51703,7 +51702,7 @@ Function86748: ; 86748 ld de, StringBuffer2 call PlaceString ld hl, $c5e1 - call $382d + call Function382d .asm_867f8 ld hl, $c5e7 @@ -51715,7 +51714,7 @@ Function86748: ; 86748 ld hl, $c5ea ld de, TempMonID ld bc, $8205 - call $3198 + call Function3198 ret ; 86810 @@ -51749,7 +51748,7 @@ Function86810: ; 86810 ld b, $1a call GetSGBLayout call Function32f9 - call $6635 + call Function86635 xor a ld [$c2c6], a ld hl, TileMap @@ -51771,7 +51770,7 @@ Function86810: ; 86810 xor a ld [hBGMapMode], a ld [$ffd0], a - call $6643 + call Function86643 xor a ld [hBGMapMode], a ld hl, $c4c8 @@ -51792,19 +51791,19 @@ Function86810: ; 86810 ld hl, $c51c ld de, PlayerID ld bc, $8205 - call $3198 + call Function3198 ld hl, $c541 ld de, $68ed call PlaceString ld hl, $c557 ld de, GameTimeHours ld bc, $0203 - call $3198 + call Function3198 ld [hl], $63 inc hl ld de, GameTimeMinutes ld bc, $8102 - call $3198 + call Function3198 call WaitBGMap callba Function26601 ret @@ -52331,16 +52330,16 @@ Function8c079: ; 8c079 ld c, $12 call GetTimePalFade ld b, $4 - call $416d + call Function8c16d ret ; 8c084 Function8c084: ; 8c084 - call $40c1 + call Function8c0c1 ld c, $9 call GetTimePalFade ld b, $4 - call $415e + call Function8c15e ret ; 8c092 @@ -53134,13 +53133,13 @@ Function8e72a: ; 8e72a and $3f cp $20 jr nc, .asm_8e737 - call $6741 + call Function8e741 ld a, h ret .asm_8e737 and $1f - call $6741 + call Function8e741 ld a, h xor $ff inc a @@ -53189,7 +53188,7 @@ Function8e79d: ; 8e79d ld d, $0 .asm_8e7b5 push bc - call $67c6 + call Function8e7c6 call DelayFrame pop bc inc d @@ -53223,7 +53222,7 @@ Function8e7c6: ; 8e7c6 pop af push de push hl - call $672a + call Function8e72a pop hl pop de add $54 @@ -53751,7 +53750,7 @@ INCBIN "baserom.gbc", $90000, $9000f - $90000 Function9000f: ; 9000f - call $401c + call Function9001c jr nc, .asm_90017 xor a ld [hl], a @@ -53763,7 +53762,7 @@ Function9000f: ; 9000f ; 90019 Function90019: ; 90019 - jp $401c + jp Function9001c ; 9001c Function9001c: ; 9001c @@ -53810,8 +53809,8 @@ Function9029a: ; 9029a ld [$d003], a ld a, d ld [$d004], a - call $42b3 - call $42b3 + call Function902b3 + call Function902b3 ld a, $41 ld hl, $60d3 rst FarCall @@ -53819,18 +53818,18 @@ Function9029a: ; 9029a ; 902b3 Function902b3: ; 902b3 - call $433f + call Function9033f call $4357 - call $42c9 + call Function902c9 call $4357 - call $4375 + call Function90375 call $4357 - call $42c9 + call Function902c9 ret ; 902c9 Function902c9: ; 902c9 - call $4375 + call Function90375 ld hl, $c4c9 ld [hl], $62 inc hl @@ -53841,7 +53840,7 @@ Function902c9: ; 902c9 ld e, a ld a, [$d004] ld d, a - call $4069 + call Function90069 ret ; 902e3 @@ -53849,20 +53848,20 @@ INCBIN "baserom.gbc", $902e3, $902eb - $902e3 Function902eb: ; 902eb - call $431d - call $4355 - call $432f - call $4355 - call $433b - call $4355 - call $432f - call $4355 - call $433b - call $4355 - call $432f - call $4355 - call $433b - call $4355 + call Function9031d + call Function90355 + call Function9032f + call Function90355 + call Function9033b + call Function90355 + call Function9032f + call Function90355 + call Function9033b + call Function90355 + call Function9032f + call Function90355 + call Function9033b + call Function90355 ret ; 90316 @@ -53898,8 +53897,8 @@ Function9033f: ; 9033f call WaitSFX ld de, $006a call StartSFX - call $4375 - call $1ad2 + call Function90375 + call Function1ad2 ld a, $13 ld hl, $5188 rst FarCall @@ -53969,12 +53968,12 @@ Function91ae1: ; 91ae1 ld a, e and a jr nz, .asm_91aec - call $5ff2 + call Function91ff2 call FillJohtoMap ret .asm_91aec - call $5ff2 + call Function91ff2 call FillKantoMap ret ; 91af3 @@ -54853,7 +54852,7 @@ CheckTileEvent: ; 96874 call Function96712 jr z, .asm_96890 - call $2ad4 + call Function2ad4 jr c, .asm_968ba .asm_96890 @@ -54937,7 +54936,7 @@ Function968d8: ; 968d8 Function968e4: ; 968e4 call Function966d6 ret z - call $2f3e + call Function2f3e ret ; 968ec @@ -54947,7 +54946,7 @@ Function968ec: ; 968ec jr z, .asm_96938 ld c, a - call $211b + call Function211b cp c jr nc, .asm_96938 @@ -55754,7 +55753,7 @@ Function97c5f: ; 97c5f ld hl, $765b rst FarCall jr c, .asm_97cb9 - call $1894 + call Function1894 jr nz, .asm_97c7b ld a, $3 ld hl, $5186 @@ -55781,7 +55780,7 @@ Function97c5f: ; 97c5f .asm_97c9b ld a, [EngineBuffer1] - call $189a + call Function189a jr nz, .asm_97cad ld a, $3 ld hl, $4ec9 @@ -55978,7 +55977,7 @@ Function97db5: ; 97db5 ld a, [PlayerState] cp $1 jr nz, .asm_97df7 - call $2d05 + call Function2d05 and a jr nz, .asm_97df7 ld hl, $dca2 @@ -56191,7 +56190,7 @@ Function97eb7: ; 97eb7 ; 97eb8 Function97eb8: ; 97eb8 - call $2f3e + call Function2f3e ret ; 97ebc @@ -56326,7 +56325,7 @@ Function97f42: ; 97f42 ld a, [hl] cp $ff jr nz, .asm_97f71 - call $3567 + call Function3567 jr c, .asm_97f7c .asm_97f71 @@ -57763,7 +57762,7 @@ Functionb800a: ; b800a ld c, a call GetWorldMapLocation ld [$c2d9], a - call $4089 + call Functionb8089 jr z, .asm_b8024 call GetMapPermission cp $6 @@ -57778,16 +57777,16 @@ Functionb800a: ; b800a bit 1, [hl] res 1, [hl] jr nz, .asm_b8054 - call $4064 + call Functionb8064 jr z, .asm_b8054 ld a, [$c2d9] ld [$c2d8], a - call $4070 + call Functionb8070 jr z, .asm_b8054 ld a, $3c ld [$c2da], a - call $40c6 - call $40d3 + call Functionb80c6 + call Functionb80d3 ld a, $41 ld hl, $4303 rst FarCall @@ -57860,8 +57859,8 @@ Functionb80d3: ; b80d3 ld hl, TileMap ld b, $2 ld c, $12 - call $4115 - call $412f + call Functionb8115 + call Functionb812f ret ; b80e1 @@ -57897,23 +57896,23 @@ Functionb812f: ; b812f ld a, $61 ld [hli], a ld a, $62 - call $4164 + call Functionb8164 ld a, $64 ld [hli], a ld a, $65 ld [hli], a - call $415b + call Functionb815b ld a, $6b ld [hli], a ld a, $66 ld [hli], a - call $415b + call Functionb815b ld a, $6c ld [hli], a ld a, $67 ld [hli], a ld a, $68 - call $4164 + call Functionb8164 ld a, $6a ld [hl], a ret @@ -57966,21 +57965,21 @@ Functionb8172: ; b8172 .asm_b8194 ld [Buffer2], a push hl - call $41e2 + call Functionb81e2 ld e, a ld a, [$d1ec] sub e jr c, .asm_b81d2 cp $9 jr nc, .asm_b81d2 - call $41e2 + call Functionb81e2 ld d, a ld a, [$d1ed] sub d jr c, .asm_b81d2 cp $a jr nc, .asm_b81d2 - call $41e2 + call Functionb81e2 cp $7 jr nz, .asm_b81d2 ld a, [MagikarpLength] @@ -58756,7 +58755,7 @@ Functioncc000: ; cc000 ld l, c ld a, [$dfbb] ld [TempMonLevel], a - call $382d + call Function382d ld de, EnemyMonNick ld hl, $c541 call PlaceString @@ -58764,14 +58763,14 @@ Functioncc000: ; cc000 ld l, c ld a, [EnemyMonLevel] ld [TempMonLevel], a - call $382d + call Function382d ld hl, $c4fb ld de, $dfc0 ld bc, $0203 - call $3198 + call Function3198 ld hl, $c573 ld de, EnemyMonMaxHPHi - call $3198 + call Function3198 ld hl, $40c2 call PrintText pop af @@ -58800,7 +58799,7 @@ Functioncc0d6: ; cc0d6 push af ld a, $5 ld [rSVBK], a - call $40e4 + call Functioncc0e4 pop af ld [rSVBK], a ret @@ -58809,12 +58808,12 @@ Functioncc0d6: ; cc0d6 Functioncc0e4: ; cc0e4 ld c, $6 .asm_cc0e6 - call $41fb + call Functioncc1fb dec c jr nz, .asm_cc0e6 - call $48a4 - call $41e2 - call $41fb + call Functioncc8a4 + call Functioncc1e2 + call Functioncc1fb ld c, $1 ld a, [rKEY1] bit 7, a @@ -58826,14 +58825,14 @@ Functioncc0e4: ; cc0e4 ld a, [hl] push af ld [hl], c - call $411c + call Functioncc11c pop af ld [$ff9e], a ld a, $1 ld [hBGMapMode], a - call $41fb - call $41fb - call $41fb + call Functioncc1fb + call Functioncc1fb + call Functioncc1fb call WaitSFX ret ; cc11c @@ -58844,15 +58843,15 @@ Functioncc11c: ; cc11c jr nz, .asm_cc156 callba Function4ea44 jr c, .asm_cc141 - call $41a1 - call $4163 - call $48a4 - call $41e2 + call Functioncc1a1 + call Functioncc163 + call Functioncc8a4 + call Functioncc1e2 xor a ld [$ffcf], a ld [$ffd0], a - call $41fb - call $41bb + call Functioncc1fb + call Functioncc1bb .asm_cc141 ld a, [$cfca] @@ -58869,22 +58868,22 @@ Functioncc11c: ; cc11c .asm_cc156 call WaitSFX - call $4881 - call $4163 + call Functioncc881 + call Functioncc163 .asm_cc15f - call $48f6 + call Functioncc8f6 ret ; cc163 Functioncc163: ; cc163 - call $48d3 + call Functioncc8d3 .asm_cc166 - call $425f - call $4b48 - call $496e - call $3b0c - call $41e2 + call Functioncc25f + call Functionccb48 + call Functioncc96e + call Function3b0c + call Functioncc1e2 ld a, [FXAnimIDHi] or a jr nz, .asm_cc193 @@ -58903,31 +58902,31 @@ Functioncc163: ; cc163 jr nz, .asm_cc18c .asm_cc193 - call $41fb + call Functioncc1fb .asm_cc196 ld a, [$d40f] bit 0, a jr z, .asm_cc166 - call $423d + call Functioncc23d ret ; cc1a1 Functioncc1a1: ; cc1a1 - call $41fb + call Functioncc1fb call WaitTop - call $4207 + call Functioncc207 ld a, $1 ld [hBGMapMode], a - call $41fb - call $41fb - call $41fb + call Functioncc1fb + call Functioncc1fb + call Functioncc1fb call WaitTop ret ; cc1bb Functioncc1bb: ; cc1bb - call $41fb + call Functioncc1fb call WaitTop ld a, [rSVBK] push af @@ -58940,9 +58939,9 @@ Functioncc1bb: ; cc1bb ld [rSVBK], a ld a, $1 ld [hBGMapMode], a - call $41fb - call $41fb - call $41fb + call Functioncc1fb + call Functioncc1fb + call Functioncc1fb call WaitTop ret ; cc1e2 @@ -58955,12 +58954,12 @@ Functioncc1e2: ; cc1e2 ld b, a ld a, [$cfc7] cp b - call nz, $491a + call nz, Functioncc91a ld a, [rOBP0] ld b, a ld a, [$cfc8] cp b - call nz, $494b + call nz, Functioncc94b ret ; cc1fb @@ -59022,9 +59021,9 @@ Functioncc23d: ; cc23d ; cc25f Functioncc25f: ; cc25f - call $4267 + call Functioncc267 ret nc - call $4275 + call Functioncc275 ret ; cc267 @@ -59044,7 +59043,7 @@ Functioncc267: ; cc267 Functioncc275: ; cc275 .asm_cc275 - call $3af0 + call Function3af0 cp $ff jr nz, .asm_cc286 ld hl, $d40f @@ -59060,7 +59059,7 @@ Functioncc275: ; cc275 ret .asm_cc28e - call $4293 + call Functioncc293 jr .asm_cc275 ; cc293 @@ -59149,9 +59148,9 @@ Functioncc8d3: ; cc8d3 ld hl, $506f add hl, de add hl, de - call $3ae1 - call $48a4 - call $41fb + call Function3ae1 + call Functioncc8a4 + call Functioncc1fb ret ; cc8f6 @@ -59167,7 +59166,7 @@ Functioncc8f6: ; cc8f6 xor a ld [$ffcf], a ld [$ffd0], a - call $41fb + call Functioncc1fb ld a, $1 ld [hBGMapMode], a ret @@ -59236,8 +59235,8 @@ Functioncc96e: ; cc96e ld b, h push hl push de - call $4fbe - call $4a09 + call Functionccfbe + call Functioncca09 pop de pop hl jr c, .asm_cc9a0 @@ -59276,8 +59275,8 @@ INCBIN "baserom.gbc", $cc9c4, $cca09 - $cc9c4 Functioncca09: ; cca09 - call $4aaa - call $67d1 + call Functionccaaa + call Functionce7d1 cp $fd jp z, $4aa5 cp $fc @@ -59290,7 +59289,7 @@ Functioncca09: ; cca09 ld [hl], a pop af push bc - call $683c + call Functionce83c ld a, [$d41b] add [hl] ld [$d41b], a @@ -59375,7 +59374,7 @@ Functioncca09: ; cca09 pop bc jr .asm_ccaa5 - call $49bd + call Functioncc9bd .asm_ccaa5 and a @@ -59475,7 +59474,7 @@ INCBIN "baserom.gbc", $ccb31, $ccb48 - $ccb31 Functionccb48: ; ccb48 - ld hl, $4000 + ld hl, Functioncc000 ld a, $32 rst FarCall ret @@ -59509,7 +59508,7 @@ Functionce7d1: ; ce7d1 and a jr z, .asm_ce7e1 dec [hl] - call $6823 + call Functionce823 ld a, [hli] push af jr .asm_ce7fd @@ -59518,7 +59517,7 @@ Functionce7d1: ; ce7d1 ld hl, $000d add hl, bc inc [hl] - call $6823 + call Functionce823 ld a, [hli] cp $fe jr z, .asm_ce815 @@ -59940,7 +59939,7 @@ Functione48ac: ; e48ac push af ld a, [$ff9e] push af - call $4901 + call Functione4901 call Functiona57 ld a, [$ffa9] and $f @@ -59948,7 +59947,7 @@ Functione48ac: ; e48ac ld a, [$cf63] bit 7, a jr nz, .asm_e48e1 - call $490f + call Functione490f callba Function8cf69 call DelayFrame jp $48bc @@ -60324,7 +60323,7 @@ INCBIN "baserom.gbc", $f8ea3, $fb449 - $f8ea3 Functionfb449: ; fb449 ld de, $4200 ld hl, VTiles1 - ld bc, $3e80 + ld bc, Function3e80 ld a, [rLCDC] bit 7, a jp z, $0fa4 @@ -61682,14 +61681,14 @@ INCBIN "baserom.gbc", $fca98, $fcba8 - $fca98 Functionfcba8: ; fcba8 ld a, e ld [$cf63], a - call $4c59 + call Functionfcc59 ld b, $2 - call $4c4a + call Functionfcc4a ld a, $4 jr nz, .asm_fcc03 ld a, $0 - call $4f38 - call $1dcf + call Functionfcf38 + call Function1dcf ld a, $1 jr c, .asm_fcc03 ld b, $6 @@ -61704,23 +61703,23 @@ Functionfcba8: ; fcba8 cp [hl] ld a, $2 jr nz, .asm_fcc03 - call $4c23 + call Functionfcc23 ld a, $2 jr c, .asm_fcc03 ld b, $1 - call $4c4a + call Functionfcc4a ld hl, $4f7b call PrintText - call $4c63 - call $4c07 - call $4e1b + call Functionfcc63 + call Functionfcc07 + call Functionfce1b ld hl, $4f80 call PrintText - call $3d47 + call Function3d47 ld a, $3 .asm_fcc03 - call $4f38 + call Functionfcf38 ret ; fcc07 @@ -61797,33 +61796,33 @@ Functionfcc63: ; fcc63 ld [PlayerLightScreenCount], a ld a, [PlayerSDefLevel] ld de, PlayerAccLevel - call $4de8 - call $4df4 + call Functionfcde8 + call Functionfcdf4 ld a, [PlayerLightScreenCount] ld de, PlayerReflectCount - call $4de8 - call $4df4 + call Functionfcde8 + call Functionfcdf4 ld hl, PartyMon1OT ld bc, $000b - call $4dd7 + call Functionfcdd7 ld de, $c6f2 - call $4df4 + call Functionfcdf4 ld hl, PlayerName ld de, $c6e7 - call $4df4 + call Functionfcdf4 ld hl, PartyMon1ID ld bc, $0030 - call $4dd7 + call Functionfcdd7 ld de, PlayerScreens - call $4e0f + call Functionfce0f ld hl, PartyMon1DVs ld bc, $0030 - call $4dd7 + call Functionfcdd7 ld de, $c6fd - call $4e0f + call Functionfce0f ld hl, PartyMon1Species ld bc, $0030 - call $4dd7 + call Functionfcdd7 ld b, h ld c, l ld a, $13 @@ -61843,7 +61842,7 @@ Functionfcc63: ; fcc63 ld [$c733], a ld hl, PartyMon1Level ld bc, $0030 - call $4dd7 + call Functionfcdd7 ld a, [hl] ld [CurPartyLevel], a ld a, [PlayerLightScreenCount] @@ -61871,49 +61870,49 @@ Functionfcc63: ; fcc63 ld e, $3 call LoadTradesPointer ld de, FailedMessage - call $4df4 + call Functionfcdf4 ld hl, PartyMon1Nickname ld bc, $000b - call $4dde + call Functionfcdde ld hl, FailedMessage - call $4df4 + call Functionfcdf4 ld e, $13 call LoadTradesPointer push hl ld de, $c724 - call $4df4 + call Functionfcdf4 pop hl ld de, $c719 - call $4df4 + call Functionfcdf4 ld hl, PartyMon1OT ld bc, $000b - call $4dde + call Functionfcdde ld hl, $c724 - call $4df4 + call Functionfcdf4 ld e, $e call LoadTradesPointer ld de, $c72f - call $4e0f + call Functionfce0f ld hl, PartyMon1DVs ld bc, $0030 - call $4dde + call Functionfcdde ld hl, $c72f - call $4e0f + call Functionfce0f ld e, $11 call LoadTradesPointer ld de, $c732 - call $4e15 + call Functionfce15 ld hl, PartyMon1ID ld bc, $0030 - call $4dde + call Functionfcdde ld hl, $c731 - call $4e0f + call Functionfce0f ld e, $10 call LoadTradesPointer push hl ld hl, PartyMon1Item ld bc, $0030 - call $4dde + call Functionfcdde pop hl ld a, [hl] ld [de], a @@ -62011,15 +62010,15 @@ Functionfce1b: ; fce1b ld e, $2 call LoadTradesPointer ld a, [hl] - call $4de8 + call Functionfcde8 ld de, StringBuffer2 - call $4df4 + call Functionfcdf4 ld e, $1 call LoadTradesPointer ld a, [hl] - call $4de8 + call Functionfcde8 ld de, $d050 - call $4df4 + call Functionfcdf4 ld hl, StringBuffer1 .asm_fce3c ld a, [hli] @@ -62067,7 +62066,7 @@ Trades: ; 0xfce58 Functionfcf38: ; fcf38 push af - call $4e1b + call Functionfce1b pop af ld bc, $0008 ld hl, $4f53 @@ -62090,14 +62089,14 @@ Functionfcfec: ; fcfec ld a, [$d45c] and a ret nz - call $2d05 + call Function2d05 and a ret nz xor a ld [$dc18], a - call $5044 + call Functionfd044 ret nc - call $50c3 + call Functionfd0c3 ret nc ld b, $3f ld de, $500f @@ -62113,7 +62112,7 @@ Functionfd044: ; fd044 ld a, [$dc17] cp $a jr nc, .asm_fd065 - call $5117 + call Functionfd117 ld a, [hli] ld [$ffc3], a ld a, [hli] @@ -62149,7 +62148,7 @@ Functionfd044: ; fd044 rst FarCall jr z, .asm_fd08b jr nc, .asm_fd089 - call $5099 + call Functionfd099 jr .asm_fd074 .asm_fd089 @@ -62157,7 +62156,7 @@ Functionfd044: ; fd044 ret .asm_fd08b - call $5099 + call Functionfd099 ld a, $5 call Function2fb1 inc a @@ -62179,7 +62178,7 @@ INCBIN "baserom.gbc", $fd0a6, $fd0c3 - $fd0a6 Functionfd0c3: ; fd0c3 - call $5117 + call Functionfd117 ld de, $0006 add hl, de ld a, [hli] @@ -62200,7 +62199,7 @@ Functionfd0c3: ; fd0c3 ld a, $1 ld [$d10c], a ld hl, $d8f1 - call $2f66 + call Function2f66 ret ; fd0eb @@ -62243,7 +62242,7 @@ INCBIN "baserom.gbc", $100000, $10032e - $100000 Function10032e: ; 10032e - call $434d + call Function10034d ld e, a ret nc ld [$cd2b], a @@ -62251,7 +62250,7 @@ Function10032e: ; 10032e ; 100337 Function100337: ; 100337 - call $432e + call Function10032e ret c ld a, [$c821] bit 4, a @@ -62295,7 +62294,7 @@ Function10034d: ; 10034d .asm_10036a ld a, $0 - call $3e32 + call Function3e32 ld [$cd2c], a ld a, h ld [$cd2d], a @@ -62321,14 +62320,14 @@ Function100382: ; 100382 Function10038a: ; 10038a ld hl, $ccb4 ld a, $2e - call $3e32 + call Function3e32 ret ; 100393 Function100393: ; 100393 ld hl, $cc60 ld a, $3a - call $3e32 + call Function3e32 ret ; 10039c @@ -62373,7 +62372,7 @@ Function1003d8: ; 1003d8 ld [hl], a pop hl inc bc - call $443a + call Function10043a add hl, bc ld [hl], e inc hl @@ -62400,7 +62399,7 @@ Function100406: ; 100406 ld c, a ld b, $0 ld hl, $cc61 - call $443a + call Function10043a add hl, bc ld a, [hli] cp e @@ -62459,8 +62458,8 @@ INCBIN "baserom.gbc", $10044e, $10046a - $10044e Function10046a: ; 10046a ld hl, BGMapPalBuffer inc [hl] - call $43d8 - call $43ba + call Function1003d8 + call Function1003ba ld a, [$cd27] inc a ld [$cd27], a @@ -62468,7 +62467,7 @@ Function10046a: ; 10046a ; 10047c Function10047c: ; 10047c - call $4337 + call Function100337 ret c ret z cp $2 @@ -62492,7 +62491,7 @@ Function100493: ; 100493 jr .asm_100497 .asm_100497 - call $4337 + call Function100337 ret c ret z ld a, [$cd27] @@ -62502,10 +62501,10 @@ Function100493: ; 100493 ; 1004a4 Function1004a4: ; 1004a4 - call $4406 + call Function100406 jr c, .asm_1004b8 - call $43c9 - call $43f5 + call Function1003c9 + call Function1003f5 ld a, [$cd27] set 7, a ld [$cd27], a @@ -62517,7 +62516,7 @@ Function1004a4: ; 1004a4 ; 1004ba Function1004ba: ; 1004ba - call $438a + call Function10038a and a jr nz, .asm_1004c8 ld a, [$cd27] @@ -62532,7 +62531,7 @@ Function1004ba: ; 1004ba ; 1004ce Function1004ce: ; 1004ce - call $4337 + call Function100337 ret c ret z cp $2 @@ -62544,7 +62543,7 @@ Function1004ce: ; 1004ce ; 1004de Function1004de: ; 1004de - call $4393 + call Function100393 ld a, [$cd27] inc a ld [$cd27], a @@ -62552,7 +62551,7 @@ Function1004de: ; 1004de ; 1004e9 Function1004e9: ; 1004e9 - call $438a + call Function10038a ld a, [$cd27] inc a ld [$cd27], a @@ -62560,13 +62559,13 @@ Function1004e9: ; 1004e9 ; 1004f4 Function1004f4: ; 1004f4 - call $4337 + call Function100337 ret c ret z ld a, [$cd27] inc a ld [$cd27], a - call $439c + call Function10039c ret ; 100504 @@ -62575,7 +62574,7 @@ INCBIN "baserom.gbc", $100504, $10062d - $100504 Function10062d: ; 10062d push bc - call $464e + call Function10064e pop bc ld a, [$cd44] cp b @@ -62687,7 +62686,7 @@ Function10079c: ; 10079c ld [$cd6a], a ld d, b push de - call $47f6 + call Function1007f6 pop de jr c, .asm_1007e5 ld a, c @@ -62704,12 +62703,12 @@ Function10079c: ; 10079c ret z ld a, b ld [$cd6b], a - call $48e0 + call Function1008e0 and a ret .asm_1007e5 - call $48e0 + call Function1008e0 ld hl, $cd2a set 4, [hl] ld a, $fc @@ -62726,14 +62725,14 @@ Function1007f6: ; 1007f6 call UpdateTime ld hl, $cd74 ld de, $cd71 - call $46dc + call Function1006dc ld a, $4 call GetSRAMBank ld hl, $a802 - call $4826 + call Function100826 call CloseSRAM ld hl, $cd6e - call $4826 + call Function100826 ld a, [hHours] ld [$cd72], a ld a, [hMinutes] @@ -62783,9 +62782,9 @@ Function1008e0: ; 1008e0 ld [hBGMapMode], a ld a, $3 ld [$ff9e], a - call $4970 - call $4902 - call $4989 + call Function100970 + call Function100902 + call Function100989 call DelayFrame pop bc ld a, c @@ -62838,24 +62837,24 @@ INCBIN "baserom.gbc", $10095a, $100970 - $10095a Function100970: ; 100970 ld hl, TileMap ld de, $dc00 - call $49a5 + call Function1009a5 ld hl, AttrMap ld de, $dd68 - call $49a5 - call $49d2 - call $49ae + call Function1009a5 + call Function1009d2 + call Function1009ae ret ; 100989 Function100989: ; 100989 ld hl, $dc00 ld de, TileMap - call $49a5 - call $49ae + call Function1009a5 + call Function1009ae callba Function104061 ld hl, $dd68 ld de, AttrMap - call $49a5 + call Function1009a5 ret ; 1009a5 @@ -62931,21 +62930,21 @@ Function1009f3: ; 1009f3 ; 100a09 Function100a09: ; 100a09 - call $4a2e + call Function100a2e ld [$d431], a callba Function4000 ld a, [InLinkBattle] cp $4 jr nz, .asm_100a2a - call $4a87 - call $4da5 + call Function100a87 + call Function100da5 ld a, $f ld hl, $6e27 rst FarCall jr .asm_100a2d .asm_100a2a - call $4a53 + call Function100a53 .asm_100a2d ret @@ -63007,8 +63006,8 @@ Function100a53: ; 100a53 ; 100a87 Function100a87: ; 100a87 - call $4acf - call $4641 + call Function100acf + call Function100641 ld a, $0 ld [$cd27], a .asm_100a92 @@ -63020,13 +63019,13 @@ Function100a87: ; 100a87 ld c, $1 ld b, $3 push bc - call $462d + call Function10062d pop bc jr c, .asm_100ac7 ld b, $1 - call $479c + call Function10079c jr c, .asm_100ac7 - call $49f3 + call Function1009f3 jr c, .asm_100ac7 ld a, [$cd2b] and a @@ -63034,7 +63033,7 @@ Function100a87: ; 100a87 ld a, [$cd27] bit 7, a jr z, .asm_100a92 - call $4ae7 + call Function100ae7 jr .asm_100ace .asm_100ac7 @@ -63099,15 +63098,15 @@ Function100b12: ; 100b12 ld hl, $4f2c ld a, $9 ld de, Function1d35 - call $2d54 + call FarJpDe ld a, $9 ld [$cf94], a ld a, [$d0d2] ld [$cf88], a - call $4e72 - call $4b45 + call Function100e72 + call Function100b45 callba Function8e85 - call $4ed4 + call Function100ed4 ld a, [$cf88] ld [$d0d2], a call Function1c07 @@ -63115,13 +63114,13 @@ Function100b12: ; 100b12 ; 100b45 Function100b45: ; 100b45 - call $4b7a + call Function100b7a .asm_100b48 call Function100dd2 callba Function241ba push bc callba Function10402d - call $4e2d + call Function100e2d pop bc jr c, .asm_100b6b ld a, [$cfa8] @@ -63167,11 +63166,11 @@ Function100b9f: ; 100b9f ret z call Function100dd8 jp c, Function2ec8 - call $4e72 - call $4bc2 + call Function100e72 + call Function100bc2 push af callba Function8e85 - call $4ed4 + call Function100ed4 pop af ret ; 100bc2 @@ -63179,15 +63178,15 @@ Function100b9f: ; 100b9f Function100bc2: ; 100bc2 xor a ld [hBGMapMode], a - call $4c74 - call $4c98 + call Function100c74 + call Function100c98 callba MoveInfoBox .asm_100bd1 call Function100dd2 callba Function241ba push bc callba Function10402d - call $4e2d + call Function100e2d pop bc jr c, .asm_100c25 ld a, [$cfa8] @@ -63269,7 +63268,7 @@ Function100bc2: ; 100bc2 .asm_100c6b call FarBattleTextBox call Function30b4 - jp $4bc2 + jp Function100bc2 ; 100c74 Function100c74: ; 100c74 @@ -63305,13 +63304,13 @@ INCBIN "baserom.gbc", $100cad, $100cb5 - $100cad Function100cb5: ; 100cb5 - call $4dd8 + call Function100dd8 ret c ld hl, $cfa5 set 7, [hl] res 6, [hl] .asm_100cc0 - call $4dd2 + call Function100dd2 ld a, $9 ld hl, $41ba rst FarCall @@ -63320,7 +63319,7 @@ Function100cb5: ; 100cb5 ld a, $41 ld hl, $402d rst FarCall - call $4dfd + call Function100dfd pop bc jr c, .asm_100d17 ld a, [$cfa8] @@ -63364,7 +63363,7 @@ Function100cb5: ; 100cb5 Function100d22: ; 100d22 call Function100dd8 ret c - call $4d67 + call Function100d67 ld hl, $cfa5 set 7, [hl] res 6, [hl] @@ -63475,7 +63474,7 @@ Function100dd8: ; 100dd8 jr c, .asm_100dfb ld c, $3c ld b, $1 - call $479c + call Function10079c jr c, .asm_100dfb ld a, $40 ld hl, $432e @@ -63505,9 +63504,9 @@ Function100dfd: ; 100dfd pop bc jr c, .asm_100e2b ld b, $1 - call $479c + call Function10079c jr c, .asm_100e2b - call $49f3 + call Function1009f3 jr c, .asm_100e2b ld a, $40 ld hl, $432e @@ -63543,8 +63542,8 @@ Function100e2d: ; 100e2d ld a, [$cd2b] and a jr nz, .asm_100e61 - call $4e63 - call $4e84 + call Function100e63 + call Function100e84 xor a ret @@ -63557,7 +63556,7 @@ Function100e63: ; 100e63 ld a, e cp $2 ret nz - call $4db0 + call Function100db0 ret nc ld de, $0027 call StartSFX @@ -63590,11 +63589,11 @@ INCBIN "baserom.gbc", $100e8c, $100eae - $100e8c Function100eae: ; 100eae scf - call $4eca + call Function100eca jr .asm_100eb8 and a - call $4eca + call Function100eca .asm_100eb8 ld hl, $cd68 @@ -63617,7 +63616,7 @@ Function100eca: ; 100eca ld a, $2 ld hl, $4e8b rst FarCall - call $4ed4 + call Function100ed4 ret ; 100ed4 @@ -63635,7 +63634,7 @@ SECTION "bank41",DATA,BANK[$41] Function104000: ; 104000 ld hl, $4006 - jp $4177 + jp Function104177 ; 104006 INCBIN "baserom.gbc", $104006, $10402d - $104006 @@ -63651,7 +63650,7 @@ INCBIN "baserom.gbc", $104033, $104061 - $104033 Function104061: ; 104061 ld hl, $4067 - jp $4177 + jp Function104177 ; 104067 INCBIN "baserom.gbc", $104067, $104110 - $104067 @@ -63659,7 +63658,7 @@ INCBIN "baserom.gbc", $104067, $104110 - $104067 Function104110: ; 104110 ld hl, $4116 - jp $4177 + jp Function104177 ; 104116 INCBIN "baserom.gbc", $104116, $104177 - $104116 @@ -63679,7 +63678,7 @@ Function104177: ; 104177 ld [rSVBK], a ld a, [rVBK] push af - call $419c + call Function10419c pop af ld [rVBK], a pop af @@ -63846,7 +63845,7 @@ Function1042d6: ; 1042d6 Function104303: ; 104303 ld hl, $4309 - jp $4177 + jp Function104177 ; 104309 INCBIN "baserom.gbc", $104309, $104350 - $104309 @@ -64059,7 +64058,7 @@ INCBIN "baserom.gbc", $1048ba, $1050d9 - $1048ba Function1050d9: ; 1050d9 - call $5106 + call Function105106 ld hl, $abe2 ld de, $abe4 ld a, [hli] @@ -64631,8 +64630,8 @@ Function1061ef: ; 1061ef dec a .asm_10625b push af - call $62b2 - call $62ff + call Function1062b2 + call Function1062ff inc de inc de inc de @@ -64666,7 +64665,7 @@ Function1061ef: ; 1061ef ld [hl], a .asm_106288 - call $62ff + call Function1062ff ld a, $f6 add b ld [hli], a @@ -64851,10 +64850,10 @@ Function109847: ; 109847 ld [$cd21], a ld [CreditsTimer], a .asm_1098de - call $5908 - call $58fd + call Function109908 + call Function1098fd jr nz, .asm_1098ee - call $5926 + call Function109926 call DelayFrame jr .asm_1098de @@ -65551,8 +65550,8 @@ Function117b14: ret nz ld hl, Data117cbc call Function1d35 - call $1cbb - call $1cfd + call Function1cbb + call Function1cfd jp Function117cdd Function117b28: @@ -65563,8 +65562,8 @@ Function117b28: Function117b31: ld hl, Data117cc4 call Function1d35 - call $1cbb - call $1cfd + call Function1cbb + call Function1cfd ld hl, $c550 ld de, YesNo117ccc call PlaceString @@ -65711,8 +65710,8 @@ Function117bb6: Function117c4a: ld hl, Data117cbc call Function1d35 - call $1cbb - call $1cfd + call Function1cbb + call Function1cfd ld a, $41 ld hl, $4061 rst FarCall @@ -65930,8 +65929,8 @@ Function11c0c6: ; 11c0c6 jr z, .asm_11c133 push hl push bc - call $4156 - call $414a + call Function11c156 + call Function11c14a ld e, c pop bc pop hl @@ -67516,14 +67515,14 @@ Function1de247: ; 1de247 ld hl, $c4c7 ld a, $67 ld b, $f - call $627f + call Function1de27f ld [hl], $68 ld hl, $c607 ld [hl], $3c xor a ld b, $12 ld hl, $cdec - call $627f + call Function1de27f call Function3200 pop hl ld a, l @@ -67707,9 +67706,9 @@ Function1f8000: ; 1f8000 call AddNTimes ld bc, $000b call CopyBytes - call $4081 + call Function1f8081 pop af - ld hl, $4000 + ld hl, Function1f8000 ld bc, $0024 call AddNTimes ld bc, $0024 From c9b70ba1058846ff9e0ba0fcbe13c3ce3e498bdb Mon Sep 17 00:00:00 2001 From: yenatch Date: Tue, 30 Jul 2013 01:05:20 -0400 Subject: [PATCH 30/84] update predef/specials pointers --- main.asm | 67 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 34 insertions(+), 33 deletions(-) diff --git a/main.asm b/main.asm index aed5bce6e..6e2bf733d 100644 --- a/main.asm +++ b/main.asm @@ -19521,28 +19521,28 @@ PredefPointers: ; 856b dwb $4658, $03 dwb $57c1, $13 dwb $4699, $03 - dwb $5a6d, $03 - dwb $588c, $03 + dwb Functionda6d, BANK(Functionda6d) + dwb Functiond88c, BANK(Functiond88c) dwb $5a96, $03 dwb $5b3f, $03 - dwb $5e6e, $03 - dwb $5f8c, $03 + dwb Functionde6e, BANK(Functionde6e) + dwb Functiondf8c, BANK(Functiondf8c) dwb $46e0, $03 - dwb $6167, $03 - dwb $617b, $03 + dwb Functione167, BANK(Functione167) + dwb Functione17b, BANK(Functione17b) dwb $5639, $04 dwb $566a, $04 dwb $4eef, $0a - dwb $4b3e, $0b - dwb $5f48, $0f + dwb $4b3e, $0b ; PrintMoveDescription, BANK(PrintMoveDescription) + dwb Function3df48, BANK(Function3df48) dwb FillBox, BANK(FillBox) - dwb $5873, $0f - dwb $6036, $0f - dwb $74c1, $0f - dwb $7390, $0f - dwb $743d, $0f - dwb $747c, $0f - dwb $6487, $10 + dwb Function3d873, BANK(Function3d873) + dwb Function3e036, BANK(Function3e036) + dwb Function3f4c1, BANK(Function3f4c1) + dwb Function3f390, BANK(Function3f390) + dwb Function3f43d, BANK(Function3f43d) + dwb Function3f47c, BANK(Function3f47c) + dwb Function42487, BANK(Function42487) dwb $64e1, $10 dwb $61e6, $10 dwb $4f63, $0a @@ -19552,14 +19552,14 @@ PredefPointers: ; 856b dwb $4d2e, $14 dwb $4cdb, $14 dwb $4c50, $14 - dwb $4bdd, $14 + dwb GetGender, BANK(GetGender) dwb StatsScreenInit, BANK(StatsScreenInit) dwb $4b0a, $14 dwb $4b0e, $14 dwb $4b7b, $14 - dwb $4964, $14 - dwb $493a, $14 - dwb $4953, $14 + dwb LoadTypeName, BANK(LoadTypeName) + dwb PrintMoveType, BANK(PrintMoveType) + dwb PrintType, BANK(PrintType) dwb $490d, $14 dwb $5040, $14 dwb $7cdd, $32 @@ -19571,21 +19571,21 @@ PredefPointers: ; 856b dwb $420f, $23 dwb $4000, $23 dwb $4000, $23 - dwb $40d6, $33 + dwb Functioncc0d6, BANK(Functioncc0d6) dwb $40d5, $33 dwb $40d5, $33 dwb $51d0, $3f - dwb $6a6c, $04 + dwb PartyMonItemName, BANK(PartyMonItemName) dwb $5077, $14 dwb $516c, $14 dwb $508b, $14 - dwb $520d, $14 + dwb Function5120d, BANK(Function5120d) dwb DecompressPredef, BANK(DecompressPredef) - dwb $47d3, $0d + dwb Function0x347d3, BANK(Function0x347d3) dwb $7908, $3e dwb $7877, $3e dwb $4000, $34 - dwb $4d0a, $14 + dwb Function50d0a, BANK(Function50d0a) dwb $40a3, $34 dwb $408e, $34 dwb $4669, $34 @@ -19915,7 +19915,7 @@ Functionc01b: ; c01b ; c029 -SpecialsPointers: ; 0xc029 +SpecialsPointers: ; c029 dbw BANK(Function97c28), Function97c28 dbw $0a, $5ce8 dbw $0a, $5d11 @@ -19962,10 +19962,10 @@ SpecialsPointers: ; 0xc029 dbw $03, $4380 dbw $03, $438d dbw $03, $43db - dbw $23, $4084 + dbw BANK(Function8c084), Function8c084 dbw $23, $4092 dbw $23, $40b6 - dbw $23, $4079 + dbw BANK(Function8c079), Function8c079 dbw $23, $40ab dbw BANK(Functiond91), Functiond91 dbw BANK(WhiteBGMap), WhiteBGMap @@ -19995,9 +19995,9 @@ SpecialsPointers: ; 0xc029 dbw $01, $737e dbw $01, $73f7 dbw BANK(SpecialCheckPokerus),SpecialCheckPokerus - dbw $09, $4b25 + dbw BANK(Function24b25), Function24b25 dbw $09, $4b4e - dbw $09, $4ae8 + dbw BANK(Function24ae8), Function24ae8 dbw $13, $587a dbw $03, $4434 dbw $03, $4422 @@ -20010,14 +20010,14 @@ SpecialsPointers: ; 0xc029 dbw $0a, $64ab dbw $0a, $651f dbw $0a, $6567 - dbw $05, $4209 + dbw BANK(Function14209), Function14209 dbw $3e, $7841 dbw BANK(SpecialSnorlaxAwake),SpecialSnorlaxAwake dbw $01, $7413 dbw $01, $7418 dbw $01, $741d dbw $03, $4472 - dbw $09, $65ee + dbw BANK(ProfOaksPCBoot), ProfOaksPCBoot dbw BANK(SpecialGameboyCheck),SpecialGameboyCheck dbw BANK(SpecialTrainerHouse),SpecialTrainerHouse dbw $05, $6dc7 @@ -20047,7 +20047,7 @@ SpecialsPointers: ; 0xc029 dbw $40, $5220 dbw $40, $5225 dbw $40, $5231 - dbw $12, $525b + dbw BANK(Function4925b), Function4925b dbw $22, $6def dbw $47, $41ab dbw $5c, $4687 @@ -20074,7 +20074,7 @@ SpecialsPointers: ; 0xc029 dbw $40, $77eb dbw $40, $783c dbw $41, $60a2 - dbw $05, $4168 + dbw BANK(Function14168), Function14168 dbw $40, $77c2 dbw $41, $630f dbw $40, $7780 @@ -20085,6 +20085,7 @@ SpecialsPointers: ; 0xc029 dbw $24, $4a54 dbw $24, $4a88 dbw $03, $4224 +; c224 INCBIN "baserom.gbc", $c224, $c29d - $c224 From d4e6ccca3b8cf1d5efb851153af8d9dd8c9de1e9 Mon Sep 17 00:00:00 2001 From: yenatch Date: Wed, 31 Jul 2013 18:02:08 -0400 Subject: [PATCH 31/84] =?UTF-8?q?jp=20char=20=E3=82=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extras/chars.py | 1 + preprocessor.py | 1 + 2 files changed, 2 insertions(+) diff --git a/extras/chars.py b/extras/chars.py index 3810d83cb..d63243d28 100644 --- a/extras/chars.py +++ b/extras/chars.py @@ -270,6 +270,7 @@ jap_chars.update({ 0xE1: "ゅ", 0xE2: "ょ", 0xE3: "ー", + 0xE9: "ァ", }) #some of the japanese characters can probably fit into the english table diff --git a/preprocessor.py b/preprocessor.py index 30060e7d7..e8e959c06 100644 --- a/preprocessor.py +++ b/preprocessor.py @@ -192,6 +192,7 @@ chars = { "ゅ": 0xE1, "ょ": 0xE2, "ー": 0xE3, +"ァ": 0xE9, "@": 0x50, "#": 0x54, From 814ab52b213617e063d29508f549657906b45d74 Mon Sep 17 00:00:00 2001 From: yenatch Date: Wed, 31 Jul 2013 18:03:18 -0400 Subject: [PATCH 32/84] cleanup and bank 9 menus --- main.asm | 986 ++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 829 insertions(+), 157 deletions(-) diff --git a/main.asm b/main.asm index 6e2bf733d..8d13e7355 100644 --- a/main.asm +++ b/main.asm @@ -1390,7 +1390,7 @@ Functionaaf: ; aaf jr nz, .asm_ac1 call Functionac6 push de - ld de, $0008 + ld de, SFX_READ_TEXT_2 call StartSFX pop de ret @@ -5346,9 +5346,7 @@ Function1c00: ; 1c00 Function1c07: ; 0x1c07 push af - ld hl, $43e8 - ld a, $9 - rst $8 + callab Function243e8 pop af ret @@ -20910,39 +20908,36 @@ Functiond20d: ; d20d ret .data_d220 - db $3f - db $52 - db $3a - db $52 - db $28 - db $52 - db $2e - db $52 - db $21 - db $d7 - db $d8 - db $c3 - db $ff - db $52 - db $62 - db $6b - db $fa - db $6 - db $d1 - db $4f - db $cd - db $7 - db $54 - db $c3 - db $d8 - db $53 - db $62 - db $6b - db $c3 - db $74 - db $53 - db $62 - db $6b + dw .Item + dw .KeyItem + dw .Ball + dw .TMHM +; d228 + +.Ball ; d228 + ld hl, NumBalls + jp Functiond2ff +; d22e + +.TMHM ; d22e + ld h, d + ld l, e + ld a, [CurItem] + ld c, a + call GetTMHMNumber + jp Functiond3d8 +; d23a + +.KeyItem ; d23a + ld h, d + ld l, e + jp Functiond374 +; d23f + +.Item ; d23f + ld h, d + ld l, e +; d241 .asm_d241 jp Functiond2ff @@ -20961,39 +20956,36 @@ Functiond244: ; d244 ret .data_d257 - db $76 - db $52 - db $71 - db $52 - db $5f - db $52 - db $65 - db $52 - db $21 - db $d7 - db $d8 - db $c3 - db $49 - db $53 - db $62 - db $6b - db $fa - db $6 - db $d1 - db $4f - db $cd - db $7 - db $54 - db $c3 - db $fb - db $53 - db $62 - db $6b - db $c3 - db $b1 - db $53 - db $62 - db $6b + dw .Item + dw .KeyItem + dw .Ball + dw .TMHM +; d25f + +.Ball ; d25f + ld hl, NumBalls + jp Functiond349 +; d265 + +.TMHM ; d265 + ld h, d + ld l, e + ld a, [CurItem] + ld c, a + call GetTMHMNumber + jp Functiond3fb +; d271 + +.KeyItem ; d271 + ld h, d + ld l, e + jp Functiond3b1 +; d276 + +.Item ; d276 + ld h, d + ld l, e +; d278 .asm_d278 jp Functiond349 @@ -23075,7 +23067,7 @@ INCLUDE "items/item_effects.asm" Functionf780: ; f780 push de - ld de, $0005 + ld de, SFX_FULL_HEAL call WaitPlaySFX pop de ret @@ -23503,7 +23495,7 @@ Function1076f: ; 1076f and $3 ld [$cf63], a push de - ld de, $0062 + ld de, SFX_UNKNOWN_62 call StartSFX pop de scf @@ -23515,7 +23507,7 @@ Function1076f: ; 1076f and $3 ld [$cf63], a push de - ld de, $0062 + ld de, SFX_UNKNOWN_62 call StartSFX pop de scf @@ -29054,7 +29046,7 @@ INCBIN "baserom.gbc", $15f73, $15fc3 - $15f73 Function15fc3: ; 15fc3 call WaitSFX - ld de, $0022 + ld de, SFX_TRANSACTION call StartSFX ret ; 15fcd @@ -29824,7 +29816,6 @@ Function24193: ; 24193 ; 241a8 - Function241a8: ; 241a8 call $4329 ld hl, $cfa6 @@ -30277,15 +30268,17 @@ Function24426: ; 24426 ; 2445d Function2445d: ; 2445d - ld hl, $4468 + ld hl, UnknownText_0x24468 call PrintText call WaitBGMap .asm_24466 jr .asm_24466 ; 24468 -INCBIN "baserom.gbc", $24468, $2446d - $24468 - +UnknownText_0x24468: ; 24468 + text_jump UnknownText_0x1c46b7, BANK(UnknownText_0x1c46b7) + db "@" +; 2446d Function2446d: ; 2446d ld a, [$cf91] @@ -30365,9 +30358,7 @@ Function244c3: ; 0x244c3 cp $ff ret z ld de, $c5b9 - ld a, BANK(GetItemDescription) - ld hl, GetItemDescription - rst $8 + callba GetItemDescription ret ; 0x244e3 @@ -31021,17 +31012,16 @@ Function24ae8: ; 24ae8 INCBIN "baserom.gbc", $24b15, $24b25 - $24b15 - Function24b25: ; 24b25 ld hl, $c4ab ld b, $1 ld c, $7 call TextBox ld hl, $c4ac - ld de, $4b89 + ld de, CoinString call PlaceString ld hl, $c4c5 - ld de, $4b8e + ld de, String24b8e call PlaceString ld de, $d855 ld bc, $0204 @@ -31040,11 +31030,492 @@ Function24b25: ; 24b25 ret ; 24b4e -INCBIN "baserom.gbc", $24b4e, $24e99 - $24b4e +Function24b4e: ; 24b4e + ld hl, $c4a5 + ld b, $3 + ld c, $d + call TextBox + ld hl, $c4ba + ld de, MoneyString + call PlaceString + ld hl, $c4c0 + ld de, Money + ld bc, $2306 + call Function3198 + ld hl, $c4e2 + ld de, CoinString + call PlaceString + ld hl, $c4eb + ld de, $d855 + ld bc, $0204 + call Function3198 + ret +; 24b83 +MoneyString: ; 24b83 + db "MONEY@" +CoinString: ; 24b89 + db "COIN@" +String24b8e: ; 24b8e + db "@" +; 24b8f + +Function24b8f: ; 24b8f + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + ld hl, TileMap + ld b, $3 + ld c, $7 + call TextBox + ld hl, $c4b5 + ld de, $dc7a + ld bc, $0203 + call Function3198 + ld hl, $c4b8 + ld de, String24bcf + call PlaceString + ld hl, $c4dd + ld de, String24bd4 + call PlaceString + ld hl, $c4e1 + ld de, $dc79 + ld bc, $0102 + call Function3198 + pop af + ld [Options], a + ret +; 24bcf + +String24bcf: ; 24bcf + db "/500@" +String24bd4: ; 24bd4 + db "ボール こ@" +; 24bdc + +Function24bdc: ; 24bdc + ld hl, TileMap + ld b, $5 + ld c, $11 + call TextBox + ret +; 24be7 + +Function24be7: ; 24be7 + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + call $4bdc + ld hl, $c505 + ld de, String24c52 + call PlaceString + ld hl, $c50c + ld de, $dc79 + ld bc, $4102 + call Function3198 + ld hl, $c4b5 + ld de, String24c4b + call PlaceString + ld a, [$df9c] + and a + ld de, String24c59 + jr z, .asm_24c1e + ld [$d265], a + call GetPokemonName + +.asm_24c1e + ld hl, $c4bc + call PlaceString + ld a, [$df9c] + and a + jr z, .asm_24c3e + ld hl, $c4dd + ld de, String24c5e + call PlaceString + ld a, [$dfbb] + ld h, b + ld l, c + inc hl + ld c, $3 + call $3842 + +.asm_24c3e + pop af + ld [Options], a + ret +; 24c43 + +String24c43: ; 24c43 + db "ボール こ@" +String24c4b: ; 24c4b + db "CAUGHT@" +String24c52: ; 24c52 + db "BALLS:@" +String24c59: ; 24c59 + db "None@" +String24c5e: ; 24c5e + db "LEVEL@" +; 24c64 + + +Function24c64: ; 24c64 + ld hl, Buffer1 + xor a + ld [hli], a + dec a + ld bc, $000a + call ByteFill + + ld hl, ApricornBalls +.asm_24c73 + ld a, [hl] + cp $ff + jr z, .asm_24c8d + push hl + ld [CurItem], a + ld hl, NumItems + call Function2f79 + pop hl + jr nc, .asm_24c89 + ld a, [hl] + call Function24c94 +.asm_24c89 + inc hl + inc hl + jr .asm_24c73 + +.asm_24c8d + ld a, [Buffer1] + and a + ret nz + scf + ret +; 24c94 + +Function24c94: ; 24c94 + push hl + ld hl, Buffer1 + inc [hl] + ld e, [hl] + ld d, 0 + add hl, de + ld [hl], a + pop hl + ret +; 24ca0 + +ApricornBalls: ; 24ca0 + db RED_APRICORN, LEVEL_BALL + db BLU_APRICORN, LURE_BALL + db YLW_APRICORN, MOON_BALL + db GRN_APRICORN, FRIEND_BALL + db WHT_APRICORN, FAST_BALL + db BLK_APRICORN, HEAVY_BALL + db PNK_APRICORN, LOVE_BALL + db $ff +; 24caf + + +MonMenuOptionStrings: ; 24caf + db "STATS@" + db "SWITCH@" + db "ITEM@" + db "CANCEL@" + db "MOVE@" + db "MAIL@" + db "ERROR!@" +; 24cd9 + +MonMenuOptions: ; 24cd9 + +; Moves + db 0, 1, CUT + db 0, 2, FLY + db 0, 3, SURF + db 0, 4, STRENGTH + db 0, 6, FLASH + db 0, 5, WATERFALL + db 0, 7, WHIRLPOOL + db 0, 8, DIG + db 0, 9, TELEPORT + db 0, 10, SOFTBOILED + db 0, 11, HEADBUTT + db 0, 12, ROCK_SMASH + db 0, 13, MILK_DRINK + db 0, 14, SWEET_SCENT + +; Options + db 1, 15, 1 ; STATS + db 1, 16, 2 ; SWITCH + db 1, 17, 3 ; ITEM + db 1, 18, 4 ; CANCEL + db 1, 19, 5 ; MOVE + db 1, 20, 6 ; MAIL + db 1, 21, 7 ; ERROR! + + db $ff +; 24d19 + +Function24d19: ; 24d19 + xor a + ld [hBGMapMode], a + call Function24dd4 + callba Function8ea4a + ld hl, MenuDataHeader_0x24d3f + call Function1d35 + call Function24d47 + call Function24d91 + + ld a, 1 + ld [hBGMapMode], a + call Function24d59 + ld [MenuSelection], a + + call Function1c07 + ret +; 24d3f + +MenuDataHeader_0x24d3f: ; 24d3f + db $40 ; tile backup + db 00, 06 ; start coords + db 17, 19 ; end coords + dw $0000 + db 1 ; default option +; 24d47 + +Function24d47: ; 24d47 + ld a, [Buffer1] + inc a + add a + ld b, a + ld a, [$cf84] + sub b + inc a + ld [$cf82], a + call Function1cbb + ret +; 24d59 + +Function24d59: ; 24d59 +.asm_24d59 + ld a, $a0 + ld [$cf91], a + ld a, [Buffer1] + ld [$cf92], a + call Function1c10 + ld hl, $cfa5 + set 6, [hl] + call Function1bc9 + ld de, SFX_READ_TEXT_2 + call StartSFX + ld a, [hJoyPressed] + bit 0, a ; A + jr nz, .asm_24d84 + bit 1, a ; B + jr nz, .asm_24d81 + jr .asm_24d59 + +.asm_24d81 + ld a, 18 ; CANCEL + ret + +.asm_24d84 + ld a, [$cfa9] + dec a + ld c, a + ld b, 0 + ld hl, Buffer2 + add hl, bc + ld a, [hl] + ret +; 24d91 + +Function24d91: ; 24d91 + call Function1cfd + ld bc, $002a + add hl, bc + ld de, Buffer2 +.asm_24d9b + ld a, [de] + inc de + cp $ff + ret z + push de + push hl + call Function24db0 + pop hl + call PlaceString + ld bc, $0028 + add hl, bc + pop de + jr .asm_24d9b +; 24db0 + +Function24db0: ; 24db0 + ld hl, MonMenuOptions + 1 + ld de, $0003 + call IsInArray + dec hl + ld a, [hli] + cp $1 + jr z, .asm_24dc8 + inc hl + ld a, [hl] + ld [$d265], a + call GetMoveName + ret + +.asm_24dc8 + inc hl + ld a, [hl] + dec a + ld hl, MonMenuOptionStrings + call GetNthString + ld d, h + ld e, l + ret +; 24dd4 + +Function24dd4: ; 24dd4 + call Function24e68 + ld a, [CurPartySpecies] + cp EGG + jr z, .asm_24e3f + ld a, [InLinkBattle] + and a + jr nz, .asm_24e03 + ld a, $2 + call GetPartyParamLocation + ld d, h + ld e, l + ld c, $4 +.asm_24ded + push bc + push de + ld a, [de] + and a + jr z, .asm_24dfd + push hl + call Function24e52 + pop hl + jr nc, .asm_24dfd + call Function24e83 + +.asm_24dfd + pop de + inc de + pop bc + dec c + jr nz, .asm_24ded + +.asm_24e03 + ld a, $f + call Function24e83 + ld a, $10 + call Function24e83 + ld a, $13 + call Function24e83 + ld a, [InLinkBattle] + and a + jr nz, .asm_24e2f + push hl + ld a, $1 + call GetPartyParamLocation + ld d, [hl] + callba Functionb9e76 + pop hl + ld a, $14 + jr c, .asm_24e2c + ld a, $11 + +.asm_24e2c + call Function24e83 + +.asm_24e2f + ld a, [Buffer1] + cp $8 + jr z, .asm_24e3b + ld a, $12 + call Function24e83 + +.asm_24e3b + call Function24e76 + ret + +.asm_24e3f + ld a, $f + call Function24e83 + ld a, $10 + call Function24e83 + ld a, $12 + call Function24e83 + call Function24e76 + ret +; 24e52 + +Function24e52: ; 24e52 + ld b, a + ld hl, MonMenuOptions +.asm_24e56 + ld a, [hli] + cp $ff + jr z, .asm_24e67 + cp $1 + jr z, .asm_24e67 + ld d, [hl] + inc hl + ld a, [hli] + cp b + jr nz, .asm_24e56 + ld a, d + scf + +.asm_24e67 + ret +; 24e68 + +Function24e68: ; 24e68 + xor a + ld [Buffer1], a + ld hl, Buffer2 + ld bc, $0009 + call ByteFill + ret +; 24e76 + +Function24e76: ; 24e76 + ld a, [Buffer1] + ld e, a + ld d, $0 + ld hl, Buffer2 + add hl, de + ld [hl], $ff + ret +; 24e83 + +Function24e83: ; 24e83 + push hl + push de + push af + ld a, [Buffer1] + ld e, a + inc a + ld [Buffer1], a + ld d, $0 + ld hl, Buffer2 + add hl, de + pop af + ld [hl], a + pop de + pop hl + ret +; 24e99 Function24e99: ; 24e99 - ld hl, $4ed4 +; BattleMonMenu + ld hl, MenuDataHeader_0x24ed4 call Function1d3c xor a ld [hBGMapMode], a @@ -31060,7 +31531,7 @@ Function24e99: ; 24e99 ld hl, $cfa5 set 6, [hl] call Function1bc9 - ld de, $0008 + ld de, SFX_READ_TEXT_2 call StartSFX ld a, [hJoyPressed] bit 1, a @@ -31076,7 +31547,21 @@ Function24e99: ; 24e99 ret ; 24ed4 -INCBIN "baserom.gbc", $24ed4, $24ef2 - $24ed4 +MenuDataHeader_0x24ed4: ; 24ed4 + db $00 ; flags + db 11, 11 ; start coords + db 17, 19 ; end coords + dw MenuData2_0x24edc + db 1 ; default option +; 24edc + +MenuData2_0x24edc: ; 24edc + db $c0 ; flags + db 3 ; items + db "SWITCH@" + db "STATS@" + db "CANCEL@" +; 24ef2 Function24ef2: ; 4ef2 @@ -31093,14 +31578,19 @@ Function24ef2: ; 4ef2 Function24f0b: ; 24f0b - ld hl, $4f4e +; Safari battle menu (untranslated). + ld hl, MenuDataHeader_0x24f4e call Function1d35 - jr .asm_24f19 + jr Function24f19 +; 24f13 - ld hl, $4f89 +Function24f13: ; 24f13 +; Park battle menu. + ld hl, MenuDataHeader_0x24f89 call Function1d35 +; 24f19 -.asm_24f19 +Function24f19: ; 24f19 ld a, [$d0d2] ld [$cf88], a call Function202a @@ -31111,7 +31601,100 @@ Function24f0b: ; 24f0b ; 24f2c -INCBIN "baserom.gbc", $24f2c, $24fc9 - $24f2c +MenuDataHeader_0x24f2c: ; 24f2c + db $40 ; flags + db 12, 08 ; start coords + db 17, 19 ; end coords + dw MenuData_0x24f34 + db 1 ; default option +; 24f34 + +MenuData_0x24f34: ; 0x24f34 + db $81 ; flags + dn 2, 2 ; rows, columns + db 6 ; spacing + dbw BANK(Strings24f3d), Strings24f3d + dbw $09, $0000 +; 0x24f3d + +Strings24f3d: ; 0x24f3d + db "FIGHT@" + db $4a, "@" + db "PACK@" + db "RUN@" +; 24f4e + + +MenuDataHeader_0x24f4e: ; 24f4e + db $40 ; flags + db 12, 00 ; start coords + db 17, 19 ; end coords + dw MenuData_0x24f56 + db 1 ; default option +; 24f56 + +MenuData_0x24f56: ; 24f56 + db $81 ; flags + dn 2, 2 ; rows, columns + db 11 ; spacing + dbw BANK(Strings24f5f), Strings24f5f + dbw BANK(Function24f7c), Function24f7c +; 24f5f + +Strings24f5f: ; 24f5f + db "サファりボール× @" ; "SAFARI BALL× @" + db "エサをなげる@" ; "THROW BAIT" + db "いしをなげる@" ; "THROW ROCK" + db "にげる@" ; "RUN" +; 24f7c + +Function24f7c: ; 24f7c + ld hl, $c5b5 + ld de, $dc79 + ld bc, $8102 + call Function3198 + ret +; 24f89 + + +MenuDataHeader_0x24f89: ; 24f89 + db $40 ; flags + db 12, 02 ; start coords + db 17, 19 ; end coords + dw MenuData_0x24f91 + db 1 ; default option +; 24f91 + +MenuData_0x24f91: ; 24f91 + db $81 ; flags + dn 2, 2 ; rows, columns + db 12 ; spacing + dbw BANK(Strings24f9a), Strings24f9a + dbw BANK(Function24fb2), Function24fb2 +; 24f9a + +Strings24f9a: ; 24f9a + db "FIGHT@" + db $4a, "@" + db "PARKBALL× @" + db "RUN@" +; 24fb2 + +Function24fb2: ; 24fb2 + ld hl, $c5ed + ld de, $dc79 + ld bc, $8102 + call Function3198 + ret +; 24fbf + + +Function24fbf: ; 24fbf + ld hl, $50ed + call Function1d35 + call Function24ff9 + ret +; 24fc9 Function24fc9: ; 24fc9 @@ -31119,7 +31702,7 @@ Function24fc9: ; 24fc9 ld hl, $5486 rst FarCall ld a, d - ld [MagikarpLength], a + ld [Buffer1], a ld a, e ld [Buffer2], a ld hl, $50f5 @@ -31133,7 +31716,7 @@ Function24fe1: ; 24fe1 ld hl, $5486 rst FarCall ld a, d - ld [MagikarpLength], a + ld [Buffer1], a ld a, e ld [Buffer2], a ld hl, $50fd @@ -31259,7 +31842,76 @@ Function25072: ; 25072 ret ; 25097 -INCBIN "baserom.gbc", $25097, $265d3 - $25097 + +Function25097: ; 25097 + ret +; 25098 + +Function25098: ; 25098 + call Function250a9 + call Function250d1 + ret +; 2509f + +Function2509f: ; 2509f + call Function250a9 + call Function250c1 + call Function250d1 + ret +; 250a9 + +Function250a9: ; 250a9 + xor a + ld [hMultiplicand], a + ld a, [Buffer1] + ld [$ffb5], a + ld a, [Buffer2] + ld [$ffb6], a + ld a, [$d10c] + ld [hMultiplier], a + push hl + call Multiply + pop hl + ret +; 250c1 + +Function250c1: ; 250c1 + push hl + ld hl, hMultiplicand + ld a, [hl] + srl a + ld [hli], a + ld a, [hl] + rra + ld [hli], a + ld a, [hl] + rra + ld [hl], a + pop hl + ret +; 250d1 + +Function250d1: ; 250d1 + push hl + ld hl, $ffc3 + ld a, [hMultiplicand] + ld [hli], a + ld a, [$ffb5] + ld [hli], a + ld a, [$ffb6] + ld [hl], a + pop hl + inc hl + ld de, $ffc3 + ld bc, $2306 + call Function3198 + call WaitBGMap + ret +; 250ed + + +INCBIN "baserom.gbc", $250ed, $265d3 - $250ed + ProfOaksPC: ; 0x265d3 ld hl, OakPCText1 @@ -32480,7 +33132,7 @@ Function2c03a: ; 2c03a Function2c059: ; 2c059 ld a, [de] push af - ld de, MagikarpLength + ld de, Buffer1 ld c, $6 ld a, $34 .asm_2c062 @@ -32489,7 +33141,7 @@ Function2c059: ; 2c059 dec c jr nz, .asm_2c062 pop af - ld de, MagikarpLength + ld de, Buffer1 .asm_2c06b push af call Function2c075 @@ -32663,7 +33315,7 @@ Function2c10d: ; 2c10d ; 2c143 Function2c143: ; 2c143 - ld de, MagikarpLength + ld de, Buffer1 ld c, $6 .asm_2c148 ld a, [$cfc5] @@ -32840,7 +33492,7 @@ Function2c7fb: ; 2c7fb push de push bc push af - ld de, $0019 + ld de, SFX_WRONG call StartSFX call WaitSFX pop af @@ -33653,7 +34305,7 @@ Function38387: ; 38387 Function3839a: ; 3839a push de - ld de, $0005 + ld de, SFX_FULL_HEAL call StartSFX pop de ret @@ -34316,12 +34968,13 @@ Function3c0e5: ; 3c0e5 call Function3ceec call Function3d2e0 jr c, .asm_3c126 - ld de, $002b + + ld de, SFX_RUN call StartSFX .asm_3c126 call SetPlayerTurn - ld a, $1 + ld a, 1 ld [BattleEnded], a ret ; 3c12f @@ -36474,12 +37127,12 @@ Function3cef1: ; 3cef1 Function3cf14: ; 3cf14 call WaitSFX - ld de, $002f + ld de, SFX_KINESIS call StartSFX call Function3d432 - ld de, $002a + ld de, SFX_UNKNOWN_2A call StartSFX - ld hl, $c4a1 + hlcoord 1, 0 ld bc, $040a call ClearBox ld hl, BattleText_0x809a8 @@ -37151,7 +37804,7 @@ Function3d362: ; 3d362 ret nc call Function3d2e0 ret c - ld de, $0019 + ld de, SFX_WRONG call StartSFX call WaitSFX jr .asm_3d362 @@ -37517,10 +38170,10 @@ Function3d57a: ; 3d57a Function3d599: ; 3d599 ld b, $ff ld a, $1 - ld [MagikarpLength], a + ld [Buffer1], a ld [Buffer2], a .asm_3d5a3 - ld hl, MagikarpLength + ld hl, Buffer1 sla [hl] inc hl sla [hl] @@ -37582,7 +38235,7 @@ Function3d5d7: ; 3d5d7 ld a, [$d265] cp $b jr c, .asm_3d5e2 - ld hl, MagikarpLength + ld hl, Buffer1 set 0, [hl] ret @@ -37625,7 +38278,7 @@ Function3d618: ; 3d618 .asm_3d663 pop bc - ld hl, MagikarpLength + ld hl, Buffer1 bit 0, [hl] jr nz, .asm_3d66f inc hl @@ -37639,7 +38292,7 @@ Function3d618: ; 3d618 Function3d672: ; 3d672 .asm_3d672 - ld hl, MagikarpLength + ld hl, Buffer1 sla [hl] inc hl sla [hl] @@ -37655,7 +38308,7 @@ Function3d672: ; 3d672 jr .asm_3d681 .asm_3d68a - ld a, [MagikarpLength] + ld a, [Buffer1] and a jr z, .asm_3d69a ld b, $ff @@ -37935,7 +38588,6 @@ Function3d873: ; 3d873 ; 3d887 - Function3d887: ; 3d887 ld a, [CurPartyMon] ld hl, PartyMon1CurHP @@ -37965,32 +38617,38 @@ Function3d887: ; 3d887 ret ; 3d8b3 + Function3d8b3: ; 3d8b3 ld a, [BattleType] cp $2 - jp z, $59a2 + jp z, .asm_3d9a2 cp $6 - jp z, $59a2 + jp z, .asm_3d9a2 cp $9 - jp z, $598d + jp z, .asm_3d98d cp $b - jp z, $598d + jp z, .asm_3d98d cp $7 - jp z, $598d + jp z, .asm_3d98d cp $c - jp z, $598d + jp z, .asm_3d98d + ld a, [InLinkBattle] and a - jp nz, $59a2 + jp nz, .asm_3d9a2 + ld a, [IsInBattle] dec a - jp nz, $5992 + jp nz, .asm_3d992 + ld a, [EnemySubStatus5] bit 7, a - jp nz, $598d + jp nz, .asm_3d98d + ld a, [$c730] and a - jp nz, $598d + jp nz, .asm_3d98d + push hl push de ld a, [BattleMonItem] @@ -38002,11 +38660,12 @@ Function3d8b3: ; 3d8b3 pop de pop hl jr nz, .asm_3d916 + call SetPlayerTurn call GetItemName ld hl, BattleText_0x80b89 call FarBattleTextBox - jp $59a2 + jp .asm_3d9a2 .asm_3d916 ld a, [$d267] @@ -38074,9 +38733,11 @@ Function3d8b3: ; 3d8b3 ld hl, BattleText_0x80b3b jr .asm_3d995 +.asm_3d98d ld hl, BattleText_0x80ba0 jr .asm_3d995 +.asm_3d992 ld hl, BattleText_0x80b49 .asm_3d995 @@ -38103,12 +38764,13 @@ Function3d8b3: ; 3d8b3 call Function30b4 call Function3d2e0 jr c, .asm_3d9f5 + +; Got away safely ld a, [$d430] cp $f ld a, $2 jr z, .asm_3d9cf dec a - .asm_3d9cf ld b, a ld a, [$d0ee] @@ -38117,7 +38779,7 @@ Function3d8b3: ; 3d8b3 ld [$d0ee], a call Function3ceec push de - ld de, $002b + ld de, SFX_RUN call WaitPlaySFX pop de call WaitSFX @@ -38133,7 +38795,7 @@ Function3d8b3: ; 3d8b3 ld hl, $cd2a bit 4, [hl] jr nz, .asm_3da05 - ld hl, $5863 + ld hl, BattleText_0x81863 call FarBattleTextBox .asm_3da05 @@ -38144,7 +38806,6 @@ Function3d8b3: ; 3d8b3 ; 3da0d - Function3da0d: ; 3da0d ld a, $0 call GetPartyParamLocation @@ -38495,10 +39156,10 @@ Function3dc5b: ; 3dc5b ld a, [hli] or [hl] jr nz, .asm_3dce4 - ld de, $002f + ld de, SFX_KINESIS call StartSFX call WaitSFX - ld de, $002a + ld de, SFX_UNKNOWN_2A call StartSFX call WaitSFX call Function3d432 @@ -38595,7 +39256,7 @@ Function3dd2f: ; 3dd2f ld a, [hli] ld [Buffer2], a ld a, [hl] - ld [MagikarpLength], a + ld [Buffer1], a ld a, [de] add c ld [$d1ee], a @@ -39706,7 +40367,7 @@ Function3e4bc: ; 3e4bc .asm_3e513 ld a, $14 - ld [MagikarpLength], a + ld [Buffer1], a ld a, $20 call Predef ld b, $5 @@ -41739,7 +42400,7 @@ Function3ee3b: ; 3ee3b ld a, [CurPartyMon] cp b jr z, .asm_3f057 - ld de, $00b6 + ld de, SFX_HIT_END_OF_EXP_BAR call StartSFX call WaitSFX ld hl, BattleText_0x80c9c @@ -41989,7 +42650,7 @@ Function3f136: ; 3f136 ld bc, $000b call CopyBytes call Function3dfe - ld de, $00b6 + ld de, SFX_HIT_END_OF_EXP_BAR call StartSFX ld a, $23 ld hl, $679d @@ -42026,9 +42687,9 @@ Function3f136: ; 3f136 Function3f21b: ; 3f21b push bc call WaitSFX - ld de, $008c + ld de, SFX_EXP_BAR call StartSFX - ld c, $a + ld c, 10 call DelayFrames pop bc ret @@ -43743,7 +44404,7 @@ Function40000: ; 40000 jr .asm_40029 .asm_4003b - ld de, $0008 + ld de, SFX_READ_TEXT_2 call StartSFX call WaitSFX call ClearSprites @@ -44129,6 +44790,7 @@ Function41af7: ; 41af7 Moves: ; 0x41afb INCLUDE "battle/moves/moves.asm" + Function421d8: ; 421d8 ld hl, EvolvableFlags xor a @@ -44333,9 +44995,9 @@ Function421d8: ; 421d8 ld a, $41 ld hl, $6094 rst FarCall - ld de, $0000 + ld de, MUSIC_NONE call StartMusic - ld de, $0002 + ld de, SFX_CAUGHT_MON call StartSFX call WaitSFX ld c, $28 @@ -45653,7 +46315,7 @@ Function492b9: ; 492b9 and a jr nz, .asm_492e5 push de - ld de, $0019 + ld de, SFX_WRONG call StartSFX pop de ld a, $b @@ -47935,7 +48597,7 @@ Function4e7a6: ; 4e7a6 ld a, [$d1ed] and a ret nz - ld de, $00a4 + ld de, SFX_EVOLVED call StartSFX ld hl, $cf63 ld a, [hl] @@ -53870,23 +54532,29 @@ INCBIN "baserom.gbc", $90316, $9031d - $90316 Function9031d: ; 9031d - ld hl, $432a + ld hl, UnknownText_0x9032a call PrintText - ld de, $006b + ld de, SFX_HANG_UP call StartSFX ret ; 9032a -INCBIN "baserom.gbc", $9032a, $9032f - $9032a +UnknownText_0x9032a: ; 9032a + text_jump UnknownText_0x1c5580, BANK(UnknownText_0x1c5580) + db "@" +; 9032f Function9032f: ; 9032f - ld hl, $4336 + ld hl, UnknownText_0x90336 call PrintText ret ; 90336 -INCBIN "baserom.gbc", $90336, $9033b - $90336 +UnknownText_0x90336: ; 0x90336 + text_jump UnknownText_0x1c5588, BANK(UnknownText_0x1c5588) + db "@" +; 0x9033b Function9033b: ; 9033b @@ -53896,7 +54564,7 @@ Function9033b: ; 9033b Function9033f: ; 9033f call WaitSFX - ld de, $006a + ld de, SFX_CALL call StartSFX call Function90375 call Function1ad2 @@ -62806,14 +63474,14 @@ Function100902: ; 100902 sub c ld [StringBuffer2], a jr z, .asm_10093f - ld de, $4966 + ld de, .string_100966 ld hl, $c580 call PlaceString ld hl, $c584 ld bc, $0102 ld de, StringBuffer2 call Function3198 - ld de, $00cc + ld de, SFX_TWO_PC_BEEPS call StartSFX callba Function104061 ld c, $3c @@ -62821,10 +63489,10 @@ Function100902: ; 100902 ret .asm_10093f - ld de, $495a + ld de, .string_10095a ld hl, $c580 call PlaceString - ld de, $00cd + ld de, SFX_4_NOTE_DITTY call StartSFX callba Function104061 ld c, $78 @@ -62832,7 +63500,11 @@ Function100902: ; 100902 ret ; 10095a -INCBIN "baserom.gbc", $10095a, $100970 - $10095a +.string_10095a ; 10095a + db "たいせん しゅうりょう@" +.string_100966 ; 100966 + db "のこり ふん", $e7, "@" +; 100970 Function100970: ; 100970 @@ -63347,14 +64019,14 @@ Function100cb5: ; 100cb5 add hl, bc ld a, [hl] ld [CurPartySpecies], a - ld de, $0008 + ld de, SFX_READ_TEXT_2 call StartSFX call WaitSFX and a ret .asm_100d17 - ld de, $0008 + ld de, SFX_READ_TEXT_2 call StartSFX call WaitSFX scf @@ -63388,7 +64060,7 @@ Function100d22: ; 100d22 .asm_100d56 push af - ld de, $0008 + ld de, SFX_READ_TEXT_2 call StartSFX pop af bit 1, a @@ -63559,7 +64231,7 @@ Function100e63: ; 100e63 ret nz call Function100db0 ret nc - ld de, $0027 + ld de, SFX_ELEVATOR_END call StartSFX ret ; 100e72 From b275df6974eb030d7d114eb4bfddeff9163311b3 Mon Sep 17 00:00:00 2001 From: yenatch Date: Wed, 31 Jul 2013 18:03:33 -0400 Subject: [PATCH 33/84] correct misnamed sfx constants --- constants/music_constants.asm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/constants/music_constants.asm b/constants/music_constants.asm index b4e65b5c5..69eae952f 100644 --- a/constants/music_constants.asm +++ b/constants/music_constants.asm @@ -149,7 +149,7 @@ SFX_POKEFLUTE EQU $26 SFX_ELEVATOR_END EQU $27 SFX_THROW_BALL EQU $28 SFX_BALL_POOF EQU $29 -SFX_UNKNOWN_3A EQU $2a +SFX_UNKNOWN_2A EQU $2a SFX_RUN EQU $2b SFX_SLOT_MACHINE_START EQU $2c SFX_FANFARE EQU $2d @@ -254,7 +254,7 @@ SFX_MORNING_SUN EQU $8f SFX_LEVEL_UP EQU $90 SFX_KEY_ITEM EQU $91 SFX_FANFARE_2 EQU $92 -SFX_REGISTER_PHONE_# EQU $93 +SFX_REGISTER_PHONE_NUMBER EQU $93 SFX_3RD_PLACE EQU $94 SFX_GET_EGG_FROM_DAYCARE_MAN EQU $95 SFX_GET_EGG_FROM_DAYCARE_LADY EQU $96 From 59cb57b9545e1aaba5d45f1a627abf082edea7a9 Mon Sep 17 00:00:00 2001 From: yenatch Date: Wed, 31 Jul 2013 19:17:35 -0400 Subject: [PATCH 34/84] more cleanup --- main.asm | 128 +++++++++++++++++++++---------------------------------- wram.asm | 4 ++ 2 files changed, 53 insertions(+), 79 deletions(-) diff --git a/main.asm b/main.asm index 8d13e7355..ef26603a2 100644 --- a/main.asm +++ b/main.asm @@ -9322,10 +9322,10 @@ Function2f79: ; 2f79 push bc ld a, [hROMBank] push af - ld a, $3 + ld a, BANK(Functiond244) rst Bankswitch - call $5244 + call Functiond244 pop bc ld a, b rst Bankswitch @@ -20993,29 +20993,29 @@ Functiond244: ; d244 Functiond27b: ; d27b ld a, l - cp $92 + cp TMsHMsEnd % $100 ret nz ld a, h - cp $d8 + cp TMsHMsEnd / $100 ret ; d283 Functiond283: ; d283 ld c, $14 ld a, e - cp $92 + cp TMsHMsEnd % $100 jr nz, .asm_d28e ld a, d - cp $d8 + cp TMsHMsEnd / $100 ret z .asm_d28e ld c, $32 ld a, e - cp $f1 + cp BallsEnd % $100 jr nz, .asm_d299 ld a, d - cp $d8 + cp BallsEnd / $100 ret z .asm_d299 @@ -21029,7 +21029,7 @@ Functiond29c: ; d29c inc hl ld a, [CurItem] ld c, a - ld b, $0 + ld b, 0 .asm_d2a5 ld a, [hli] cp $ff @@ -33128,7 +33128,6 @@ Function2c03a: ; 2c03a ; 2c059 - Function2c059: ; 2c059 ld a, [de] push af @@ -33188,87 +33187,59 @@ Function2c075: ; 2c075 Function2c095: ; 2c095 ld hl, .data_2c0a9 ld de, $d004 - ld bc, $0004 + ld bc, 4 call CopyBytes ld hl, $c57a - ld de, rIE - jr .asm_2c0f1 + ld de, -1 + jr Function2c0f1 .data_2c0a9 db $73 db $77 db $6f db $76 - db $21 - db $c1 - db $40 - db $11 - db $4 - db $d0 - db $1 - db $4 - db $0 - db $cd - db $26 - db $30 - db $21 - db $7a - db $c5 - db $11 - db $ff - db $ff - db $18 - db $30 - db $73 - db $5c - db $6f - db $76 - db $21 - db $ed - db $40 - db $11 - db $4 - db $d0 - db $1 - db $4 - db $0 - db $cd - db $26 - db $30 - db $21 - db $c9 - db $c4 - db $11 - db $1 - db $0 - db $cd - db $f1 - db $40 - db $fa - db $2d - db $d2 - db $3d - db $c0 - db $fa - db $4 - db $d2 - db $3d - db $cd - db $93 - db $33 - db $c8 - db $21 - db $b5 - db $c4 - db $36 - db $5d - db $c9 +; 2c0ad + +Function2c0ad: ; 2c0ad + ld hl, .data_2c0c1 + ld de, $d004 + ld bc, 4 + call CopyBytes + ld hl, $c57a + ld de, -1 + jr Function2c0f1 + +.data_2c0c1 + db $73, $5c, $6f, $76 +; 2c0c5 + +Function2c0c5: ; 2c0c5 + ld hl, .data_2c0ed + ld de, $d004 + ld bc, 4 + call CopyBytes + ld hl, $c4c9 + ld de, 1 + call Function2c0f1 + ld a, [IsInBattle] + dec a + ret nz + ld a, [TempEnemyMonSpecies] + dec a + call CheckSeenMon + ret z + ld hl, $c4b5 + ld [hl], $5d + ret + +.data_2c0ed db $6d db $74 db $78 db $76 +; 2c0f1 -.asm_2c0f1 +Function2c0f1: ; 2c0f1 ld a, [$d004] ld [hl], a ld bc, $0014 @@ -33289,7 +33260,6 @@ Function2c095: ; 2c095 ; 2c10d - Function2c10d: ; 2c10d call Function2c165 ld hl, PartyMon1CurHP diff --git a/wram.asm b/wram.asm index 1a0f6a12c..7e744b989 100644 --- a/wram.asm +++ b/wram.asm @@ -1705,21 +1705,25 @@ KantoBadges: ; d858 SECTION "Items",BSS[$d859] TMsHMs: ; d859 ds 57 +TMsHMsEnd NumItems: ; d892 ds 1 Items: ; d893 ds 41 +ItemsEnd NumKeyItems: ; d8bc ds 1 KeyItems: ; d8bd ds 26 +KeyItemsEnd NumBalls: ; d8d7 ds 1 Balls: ; d8d8 ds 25 +BallsEnd SECTION "overworld",BSS[$d95b] WhichRegisteredItem: ; d95b From d39dc68a8836a10e728030961de88ddcb2ffffec Mon Sep 17 00:00:00 2001 From: yenatch Date: Thu, 1 Aug 2013 05:34:10 -0400 Subject: [PATCH 35/84] field move asm --- main.asm | 2766 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 2694 insertions(+), 72 deletions(-) diff --git a/main.asm b/main.asm index ef26603a2..2d431639c 100644 --- a/main.asm +++ b/main.asm @@ -17196,7 +17196,7 @@ Function5ce9: ; 5ce9 ; 5d23 Function5d23: ; 5d23 - call $610f + call Function610f ld a, $2 ld hl, $4029 rst FarCall @@ -17582,11 +17582,11 @@ OakSpeech: ; 0x5f99 ld [CurPartySpecies], a ld a, POKEMON_PROF ld [TrainerClass], a - call $619c + call Function619c ld b, $1c call GetSGBLayout - call $616a + call Function616a ld hl, OakText1 call PrintText @@ -17607,7 +17607,7 @@ OakSpeech: ; 0x5f99 ld b, $1c call GetSGBLayout - call $6182 + call Function6182 ld hl, OakText2 call PrintText @@ -17620,11 +17620,11 @@ OakSpeech: ; 0x5f99 ld [CurPartySpecies], a ld a, POKEMON_PROF ld [TrainerClass], a - call $619c + call Function619c ld b, $1c call GetSGBLayout - call $616a + call Function616a ld hl, OakText5 call PrintText @@ -17637,7 +17637,7 @@ OakSpeech: ; 0x5f99 ld b, $1c call GetSGBLayout - call $616a + call Function616a ld hl, OakText6 call PrintText @@ -17685,7 +17685,7 @@ NamePlayer: ; 0x6074 ld a, [$cfa9] dec a jr z, .NewName - call $60fa + call Function60fa ld a, $2 ld hl, $4c1d rst FarCall @@ -17731,7 +17731,81 @@ NamePlayer: ; 0x6074 db "KRIS@@@@@@@" ; 60e9 -INCBIN "baserom.gbc", $60e9, $617c - $60e9 +Function60e9: ; 60e9 + call Function1d35 + call Function1d81 + ld a, [$cfa9] + dec a + call Function1db8 + call Function1c17 + ret +; 60fa + +Function60fa: ; 60fa + ld a, $50 + ld bc, $000b + ld hl, PlayerName + call ByteFill + ld hl, PlayerName + ld de, StringBuffer2 + call CopyName2 + ret +; 610f + +Function610f: ; 610f + ld a, [hROMBank] + push af + ld a, $20 + ld [MusicFade], a + ld de, MUSIC_NONE + ld a, e + ld [MusicFadeIDLo], a + ld a, d + ld [MusicFadeIDHi], a + ld de, SFX_ESCAPE_ROPE + call StartSFX + pop af + rst Bankswitch + + ld c, $8 + call DelayFrames + ld hl, $5249 + ld b, $13 + call Function61b4 + ld c, $8 + call DelayFrames + ld hl, $52d9 + ld b, $13 + call Function61b4 + ld c, $8 + call DelayFrames + ld hl, $c50a + ld b, $7 + ld c, $7 + call ClearBox + ld c, $3 + call DelayFrames + call $61cd + call Functione5f + ld c, $32 + call DelayFrames + call Function4b6 + call ClearTileMap + ret +; 616a + +Function616a: ; 616a + ld hl, IntroFadePalettes + ld b, $6 +.asm_616f + ld a, [hli] + call DmgToCgbBGPals + ld c, $a + call DelayFrames + dec b + jr nz, .asm_616f + ret +; 617c IntroFadePalettes: ; 0x617c db %01010100 @@ -17742,7 +17816,89 @@ IntroFadePalettes: ; 0x617c db %11100100 ; 6182 -INCBIN "baserom.gbc", $6182, $620b - $6182 +Function6182: ; 6182 + ld a, $77 + ld [$ffd1], a + call DelayFrame + ld a, $e4 + call DmgToCgbBGPals +.asm_618e + call DelayFrame + ld a, [$ffd1] + sub $8 + cp $ff + ret z + ld [$ffd1], a + jr .asm_618e +; 619c + +Function619c: ; 619c + ld de, VTiles2 + callba Function5120d + xor a + ld [$ffad], a + ld hl, $c4f6 + ld bc, $0707 + ld a, $13 + call Predef + ret +; 61b4 + +Function61b4: ; 61b4 + ld de, VTiles2 + ld c, $31 + ld a, $40 + call Predef + xor a + ld [$ffad], a + ld hl, $c4f6 + ld bc, $0707 + ld a, $13 + call Predef + ret +; 61cd + +Function61cd: ; 61cd + callba GetPlayerIcon + ld c, $c + ld hl, VTiles0 + call Functioneba + ld hl, Sprites + ld de, .data_61fe + ld a, [de] + inc de + ld c, a +.asm_61e4 + 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 b, $0 + ld a, [PlayerGender] + bit 0, a + jr z, .asm_61f8 + ld b, $1 + +.asm_61f8 + ld a, b + ld [hli], a + dec c + jr nz, .asm_61e4 + ret +; 61fe + +.data_61fe ; 61fe + db 4 + db $4c, $48, $00 + db $4c, $50, $01 + db $54, $48, $02 + db $54, $50, $03 +; 620b Function620b: ; 620b @@ -17790,8 +17946,8 @@ Function620b: ; 620b .asm_625e ld e, a - ld d, $0 - ld hl, $626a + ld d, 0 + ld hl, .data_626a add hl, de add hl, de ld a, [hli] @@ -17800,7 +17956,14 @@ Function620b: ; 620b jp [hl] ; 626a -INCBIN "baserom.gbc", $626a, $6274 - $626a +.data_626a + dw Function5ae8 + dw Function6389 + dw Function620b + dw Function620b + dw Function6392 +; 6274 + FarStartTitleScreen: ; 6274 callba StartTitleScreen @@ -17824,13 +17987,22 @@ Function627b: ; 627b ret ; 6292 -INCBIN "baserom.gbc", $6292, $62a3 - $6292 - +Function6292: ; 6292 + ld a, [$ff9b] + and $7 + ret nz + ld hl, $d15f + ld a, [hl] + dec a + ld bc, $0028 + call ByteFill + ret +; 62a3 Function62a3: ; 62a3 ld e, a - ld d, $0 - ld hl, $62af + ld d, 0 + ld hl, .data_62af add hl, de add hl, de ld a, [hli] @@ -17839,7 +18011,19 @@ Function62a3: ; 62a3 jp [hl] ; 62af -INCBIN "baserom.gbc", $62af, $62bc - $62af +.data_62af + dw TitleScreenEntrance + dw Function62f6 + dw Function6304 + dw Function6375 +; 62b7 + +Function62b7: ; 62b7 + ld hl, $cf63 + inc [hl] + ret +; 62bc + TitleScreenEntrance: ; 62bc @@ -17850,19 +18034,19 @@ TitleScreenEntrance: ; 62bc jr z, .done sub 4 ld [$ffcf], a - + ; Lay out a base (all lines scrolling together). ld e, a ld hl, $d100 ld bc, 8 * 10 ; logo height call ByteFill - + ; Alternate signage for each line's position vector. ; This is responsible for the interlaced effect. ld a, e xor $ff inc a - + ld b, 8 * 10 / 2 ; logo height / 2 ld hl, $d101 .loop @@ -17870,11 +18054,10 @@ TitleScreenEntrance: ; 62bc inc hl dec b jr nz, .loop - + callba AnimateTitleCrystal ret - - + .done ; Next scene ld hl, $cf63 @@ -17885,19 +18068,168 @@ TitleScreenEntrance: ; 62bc ; Play the title screen music. ld de, MUSIC_TITLE call StartMusic - + ld a, $88 ld [$ffd2], a ret ; 62f6 -INCBIN "baserom.gbc", $62f6, $63e2 - $62f6 + +Function62f6: ; 62f6 + ld hl, $cf63 + inc [hl] + ld hl, $cf65 + ld de, $1140 + ld [hl], e + inc hl + ld [hl], d + ret +; 6304 + +Function6304: ; 6304 + ld hl, $cf65 + ld e, [hl] + inc hl + ld d, [hl] + ld a, e + or d + jr z, .asm_6355 + dec de + ld [hl], d + dec hl + ld [hl], e + call GetJoypadPublic + ld hl, hJoyDown + ld a, [hl] + and $46 + cp $46 + jr z, .asm_634a + ld a, [$ffeb] + cp $34 + jr z, .asm_6332 + ld a, [hl] + and $86 + cp $86 + jr nz, .asm_6340 + ld a, $34 + ld [$ffeb], a + jr .asm_6340 + +.asm_6332 + bit 2, [hl] + jr nz, .asm_6340 + xor a + ld [$ffeb], a + ld a, [hl] + and $60 + cp $60 + jr z, .asm_636a + +.asm_6340 + ld a, [hl] + and $9 + jr nz, .asm_6346 + ret + +.asm_6346 + ld a, $0 + jr .asm_634c + +.asm_634a + ld a, $1 + +.asm_634c + ld [$cf64], a + ld hl, $cf63 + set 7, [hl] + ret + +.asm_6355 + ld hl, $cf63 + inc [hl] + xor a + ld [MusicFadeIDLo], a + ld [MusicFadeIDHi], a + ld hl, MusicFade + ld [hl], $8 + ld hl, $cf65 + inc [hl] + ret + +.asm_636a + ld a, $4 + ld [$cf64], a + ld hl, $cf63 + set 7, [hl] + ret +; 6375 + +Function6375: ; 6375 + ld hl, $cf65 + inc [hl] + ld a, [MusicFade] + and a + ret nz + ld a, $2 + ld [$cf64], a + ld hl, $cf63 + set 7, [hl] + ret +; 6389 + +Function6389: ; 6389 + ld a, $13 + ld hl, $554c + rst FarCall + jp Function17d +; 6392 + +Function6392: ; 6392 + ld a, $13 + ld hl, $53b1 + rst FarCall + jp Function17d +; 639b + +Function639b: ; 639b + ld a, [$cf65] + and $3 + ret nz + ld bc, $c3a4 + ld hl, $000a + add hl, bc + ld l, [hl] + ld h, 0 + add hl, hl + add hl, hl + ld de, Data63ca + add hl, de + ld a, [$cf65] + and $4 + srl a + srl a + ld e, a + ld d, 0 + add hl, de + add hl, de + ld a, [hli] + and a + ret z + ld e, a + ld d, [hl] + ld a, $1 + call Function3b2a + ret +; 63ca + +Data63ca: ; 63ca +INCBIN "baserom.gbc", $63ca, $63e2 - $63ca Function63e2: ; 63e2 call ClearTileMap call Functione5f - ld de, Function4000 + ld de, $4000 ld hl, $9600 ld bc, $391d call Functioneba @@ -17906,8 +18238,16 @@ Function63e2: ; 63e2 jp PlaceString ; 63fd -INCBIN "baserom.gbc", $63fd, $642e - $63fd +; 63fd + db $60, $61, $62, $63, $64, $65, $66 + db $67, $68, $69, $6a, $6b, $6c, $4e + db $60, $61, $62, $63, $64, $65, $66, $6d + db $6e, $6f, $70, $71, $72, $7a, $7b, $7c, $4e + + db $60, $61, $62, $63, $64, $65, $66, $73, $74 + db $75, $76, $77, $78, $79, $7a, $7b, $7c, "@" +; 642e Function642e: ; 642e ld a, $5 @@ -19630,7 +19970,52 @@ Function8ad1: ; 8ad1 ret ; 8ade -INCBIN "baserom.gbc", $8ade, $8d55 - $8ade +INCBIN "baserom.gbc", $8ade, $8cb4 - $8ade + +Function8cb4: ; 8cb4 + ld l, e + ld h, $0 + add hl, hl + add hl, hl + add hl, hl + ld de, $4d05 + add hl, de + call Function8d55 + jr nz, .asm_8cf0 + push hl + ld hl, $5ce6 + ld de, $cda9 + ld bc, $0010 + call CopyBytes + pop hl + inc hl + inc hl + ld a, [hli] + ld [$cdac], a + ld a, [hli] + ld [$cdad], a + ld a, [hli] + ld [$cdae], a + ld a, [hli] + ld [$cdaf], a + ld hl, $cda9 + call $5809 + ld hl, $5a86 + call $5809 + ret + +.asm_8cf0 + ld de, $d000 + ld bc, $0008 + ld a, $5 + call Function306b + call Function96a4 + call Function9699 + call $56b3 + ret +; 8d05 + +INCBIN "baserom.gbc", $8d05, $8d55 - $8d05 Function8d55: ; 8d55 @@ -19726,7 +20111,51 @@ Function96a4: ; 96a4 ret ; 96b3 -INCBIN "baserom.gbc", $96b3, $971a - $96b3 +Function96b3: ; 96b3 + ld a, [rLCDC] + bit 7, a + jr z, .asm_96d0 + ld a, [hBGMapMode] + push af + ld a, $2 + ld [hBGMapMode], a + call DelayFrame + call DelayFrame + call DelayFrame + call DelayFrame + pop af + ld [hBGMapMode], a + ret + +.asm_96d0 + ld hl, AttrMap + ld de, VBGMap0 + ld b, $12 + ld a, $1 + ld [rVBK], a +.asm_96dc + ld c, $14 +.asm_96de + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .asm_96de + ld a, $c + add e + jr nc, .asm_96ea + inc d + +.asm_96ea + ld e, a + dec b + jr nz, .asm_96dc + ld a, $0 + ld [rVBK], a + ret +; 96f3 + +INCBIN "baserom.gbc", $96f3, $971a - $96f3 Function971a: ; 971a @@ -19738,7 +20167,62 @@ Function971a: ; 971a ret ; 9729 -INCBIN "baserom.gbc", $9729, $9890 - $9729 +INCBIN "baserom.gbc", $9729, $9809 - $9729 + +Function9809: ; 9809 + ld a, [$cfbe] + push af + set 7, a + ld [$cfbe], a + call $581a + pop af + ld [$cfbe], a + ret +; 981a + +Function981a: ; 981a + ld a, [hl] + and $7 + ret z + ld b, a +.asm_981f + push bc + xor a + ld [rJOYP], a + ld a, $30 + ld [rJOYP], a + ld b, $10 +.asm_9829 + ld e, $8 + ld a, [hli] + ld d, a +.asm_982d + bit 0, d + ld a, $10 + jr nz, .asm_9835 + ld a, $20 + +.asm_9835 + ld [rJOYP], a + ld a, $30 + ld [rJOYP], a + rr d + dec e + jr nz, .asm_982d + dec b + jr nz, .asm_9829 + ld a, $20 + ld [rJOYP], a + ld a, $30 + ld [rJOYP], a + call $5a7a + pop bc + dec b + jr nz, .asm_981f + ret +; 9853 + +INCBIN "baserom.gbc", $9853, $9890 - $9853 Function9890: ; 9890 @@ -19843,7 +20327,20 @@ DrawDefaultTiles: ; 0x9a64 ret ; 0x9a7a -INCBIN "baserom.gbc", $9a7a, $a51e - $9a7a +Function9a7a: ; 9a7a + ld de, $1b58 +.asm_9a7d + nop + nop + nop + dec de + ld a, d + or e + jr nz, .asm_9a7d + ret +; 9a86 + +INCBIN "baserom.gbc", $9a86, $a51e - $9a86 SGBBorder: INCBIN "gfx/misc/sgb_border.2bpp" @@ -20558,7 +21055,84 @@ CheckPartyMove: ; c742 ret ; c779 -INCBIN "baserom.gbc", $c779, $c986 - $c779 +Functionc779: ; c779 + ld hl, $4780 + call Function1d67 + ret +; c780 + +INCBIN "baserom.gbc", $c780, $c785 - $c780 + +Functionc785: ; c785 + call Functionc6ea +.asm_c788 + ld hl, $4796 + call Functionc6f5 + jr nc, .asm_c788 + and $7f + ld [$d0ec], a + ret +; c796 + +INCBIN "baserom.gbc", $c796, $c8ac - $c796 + +Functionc8ac: ; c8ac + call Functionc8b5 + and $7f + ld [$d0ec], a + ret +; c8b5 + +Functionc8b5: ; c8b5 + ld de, $001b + ld a, $3 + ld hl, $4731 + rst FarCall + jr c, .asm_c8dd + push hl + ld a, $22 + ld hl, $6e30 + rst FarCall + pop hl + jr c, .asm_c8d1 + ld a, [$d847] + cp $ff + jr nz, .asm_c8d7 + +.asm_c8d1 + call $48e0 + ld a, $81 + ret + +.asm_c8d7 + call $4779 + ld a, $80 + ret + +.asm_c8dd + ld a, $80 + ret +; c8e0 + +Functionc8e0: ; c8e0 + ld hl, $48e6 + jp Function31cd +; c8e6 + +INCBIN "baserom.gbc", $c8e6, $c909 - $c8e6 + +Functionc909: ; c909 + call Functionc6ea +.asm_c90c + ld hl, $491a + call Functionc6f5 + jr nc, .asm_c90c + and $7f + ld [$d0ec], a + ret +; c91a + +INCBIN "baserom.gbc", $c91a, $c986 - $c91a UsedSurfScript: ; c986 @@ -20717,7 +21291,125 @@ AskSurfText: ; ca36 ; ca3b -INCBIN "baserom.gbc", $ca3b, $cb95 - $ca3b +Functionca3b: ; ca3b + call Functionc6ea +.asm_ca3e + ld hl, .data_ca4c + call Functionc6f5 + jr nc, .asm_ca3e + and $7f + ld [$d0ec], a + ret +; ca4c + +.data_ca4c + dw Functionca52 + dw Functionca94 + dw Functionca9d +; ca52 + + +Functionca52: ; ca52 +; Fly + ld de, $0020 ; storm badge + call CheckBadge + jr c, .asm_ca85 + call GetMapPermission + call CheckOutdoorMap + jr z, .asm_ca64 + jr .asm_ca88 + +.asm_ca64 + xor a + ld [$ffde], a + call Function1d6e + call ClearSprites + callba Function91af3 + ld a, e + cp $ff + jr z, .asm_ca8b + cp $1c + jr nc, .asm_ca8b + ld [$d001], a + call Function1c17 + ld a, $1 + ret + +.asm_ca85 + ld a, $82 + ret + +.asm_ca88 + ld a, $2 + ret + +.asm_ca8b + call Function1c17 + call WaitBGMap + ld a, $80 + ret +; ca94 + +Functionca94: ; ca94 + ld hl, Datacaa3 + call Function31cd + ld a, $81 + ret +; ca9d + +Functionca9d: ; ca9d + call Functionc779 + ld a, $82 + ret +; caa3 + +Datacaa3: ; caa3 +INCBIN "baserom.gbc", $caa3, $cade - $caa3 + +Functioncade: ; cade + call Functioncae7 + and $7f + ld [$d0ec], a + ret +; cae7 + +Functioncae7: ; cae7 + ld de, $0022 + ld a, $3 + ld hl, $4731 + rst FarCall + ld a, $80 + ret c + call $4b07 + jr c, .asm_cb01 + ld hl, $4b1c + call Function31cd + ld a, $81 + ret + +.asm_cb01 + call $4779 + ld a, $80 + ret +; cb07 + +Functioncb07: ; cb07 + ld a, [PlayerDirection] + and $c + cp $4 + jr nz, .asm_cb1a + ld a, [TileUp] + call CheckWaterfallTile + jr nz, .asm_cb1a + xor a + ret + +.asm_cb1a + scf + ret +; cb1c + +INCBIN "baserom.gbc", $cb1c, $cb95 - $cb1c Functioncb95: ; cb95 @@ -20739,7 +21431,143 @@ Functioncb95: ; cb95 ret ; cbb2 -INCBIN "baserom.gbc", $cbb2, $cf8e - $cbb2 +INCBIN "baserom.gbc", $cbb2, $cc61 - $cbb2 + +Functioncc61: ; cc61 + call Functionc6ea +.asm_cc64 + ld hl, $4c72 + call Functionc6f5 + jr nc, .asm_cc64 + and $7f + ld [$d0ec], a + ret +; cc72 + +INCBIN "baserom.gbc", $cc72, $cce5 - $cc72 + +Functioncce5: ; cce5 + call $4cee + and $7f + ld [$d0ec], a + ret +; ccee + +Functionccee: ; ccee + ld de, $001d + call CheckBadge + jr c, .asm_cd06 + jr .asm_cd09 + + ld hl, .data_cd01 + call Function1d67 + ld a, $80 + ret + +.data_cd01 + db $16 + db $51 + db $47 + db $70 + db $50 + +.asm_cd06 + ld a, $80 + ret + +.asm_cd09 + ld hl, $4d29 + call Function31cd + ld a, $81 + ret +; cd12 + +INCBIN "baserom.gbc", $cd12, $cd9d - $cd12 + +Functioncd9d: ; cd9d + call Functionc6ea +.asm_cda0 + ld hl, $4dae + call Functionc6f5 + jr nc, .asm_cda0 + and $7f + ld [$d0ec], a + ret +; cdae + +INCBIN "baserom.gbc", $cdae, $ce7d - $cdae + +Functionce7d: ; ce7d + call $4e86 + and $7f + ld [$d0ec], a + ret +; ce86 + +Functionce86: ; ce86 + call GetFacingTileCoord + call Function189a + jr nz, .asm_ce97 + ld hl, $4ea7 + call Function31cd + ld a, $81 + ret + +.asm_ce97 + call $4779 + ld a, $80 + ret +; ce9d + +INCBIN "baserom.gbc", $ce9d, $ceeb - $ce9d + +Functionceeb: ; ceeb + call $4ef4 + and $7f + ld [$d0ec], a + ret +; cef4 + +Functioncef4: ; cef4 + call $4f0d + jr c, .asm_cf07 + ld a, d + cp $18 + jr nz, .asm_cf07 + ld hl, $4f2e + call Function31cd + ld a, $81 + ret + +.asm_cf07 + call $4779 + ld a, $80 + ret +; cf0d + +Functioncf0d: ; cf0d + callba CheckFacingObject + jr nc, .asm_cf2c + ld a, [hConnectedMapWidth] + call Function1ae5 + ld hl, $0001 + add hl, bc + ld a, [hl] + ld [$ffe0], a + call GetMapObject + ld hl, $0004 + add hl, bc + ld a, [hl] + ld d, a + and a + ret + +.asm_cf2c + scf + ret +; cf2e + +INCBIN "baserom.gbc", $cf2e, $cf8e - $cf2e Functioncf8e: ; cf8e @@ -22819,7 +23647,21 @@ ClearPCItemScreen: ; e58b ret ; 0xe5bb -INCBIN "baserom.gbc", $e5bb, $e6ce - $e5bb +Functione5bb: ; e5bb + ld a, [CurPartyMon] + ld hl, $ad26 + ld bc, $0020 + call AddNTimes + ld de, TempMonSpecies + ld bc, $0020 + ld a, $1 + call GetSRAMBank + call CopyBytes + call CloseSRAM + ret +; e5d9 + +INCBIN "baserom.gbc", $e5d9, $e6ce - $e5d9 Functione6ce: ; e6ce @@ -24780,26 +25622,26 @@ PokemonActionSubmenu: ; 12a88 ret .Actions - dbw $01, $6e1b - dbw $02, $6e30 - dbw $03, $6ebd - dbw $04, $6e6a - dbw $06, $6e55 - dbw $07, $6e7f - dbw $08, $6ed1 - dbw $09, $6ea9 - dbw $0a, $6ee6 - dbw $0d, $6ee6 - dbw $0b, $6f26 - dbw $05, $6e94 - dbw $0c, $6f3b - dbw $0e, $6f50 - dbw $0f, OpenPartyStats - dbw $10, SwitchPartyMons - dbw $11, GiveTakePartyMonItem - dbw $12, CancelPokemonAction - dbw $13, $6fba ; move - dbw $14, $6d45 ; mail + dbw 1, Function12e1b ; Cut + dbw 2, Function12e30 ; Fly + dbw 3, Function12ebd ; Surf + dbw 4, Function12e6a ; Strength + dbw 6, Function12e55 ; Flash + dbw 7, Function12e7f ; Whirlpool + dbw 8, Function12ed1 ; Dig + dbw 9, Function12ea9 ; Teleport + dbw 10, Function12ee6 ; Softboiled + dbw 13, Function12ee6 ; MilkDrink + dbw 11, Function12f26 ; Headbutt + dbw 5, Function12e94 ; Flash + dbw 12, Function12f3b ; RockSmash + dbw 14, Function12f50 ; SweetScent + dbw 15, OpenPartyStats + dbw 16, SwitchPartyMons + dbw 17, GiveTakePartyMonItem + dbw 18, CancelPokemonAction + dbw 19, Function12fba ; move + dbw 20, Function12d45 ; mail ; 12aec @@ -25134,7 +25976,92 @@ GetPartyItemLocation: ; 12cd7 ; 12cdf -INCBIN "baserom.gbc", $12cdf, $12e00 - $12cdf +Function12cdf: ; 12cdf + ld a, $1 + ld [$d10c], a + ld hl, NumItems + jp Function2f66 +; 12cea + +INCBIN "baserom.gbc", $12cea, $12cf5 - $12cea + +Function12cf5: ; 12cf5 + call Function1d4f + call Function1dcf + jp Function1c07 +; 12cfe + +INCBIN "baserom.gbc", $12cfe, $12d45 - $12cfe + +Function12d45: ; 12d45 + ld a, [InLinkBattle] + cp $1 + jr z, .asm_12d6d + cp $2 + jr z, .asm_12d6d + ld hl, $6dc9 + call Function1d35 + call Function1d81 + call Function1c07 + jp c, $6dc6 + ld a, [$cfa9] + cp $1 + jr z, .asm_12d6d + cp $2 + jr z, .asm_12d76 + jp $6dc6 + +.asm_12d6d + ld a, $2e + ld hl, $5229 + rst FarCall + ld a, $0 + ret + +.asm_12d76 + ld hl, $6df1 + call $6cf5 + jr c, .asm_12d9a + ld a, [CurPartyMon] + ld b, a + callba Function4456e + jr c, .asm_12d92 + ld hl, $6dfb + call Function1d67 + jr .asm_12dc6 + +.asm_12d92 + ld hl, $6df6 + call Function1d67 + jr .asm_12dc6 + +.asm_12d9a + ld hl, $6de2 + call $6cf5 + jr c, .asm_12dc6 + call GetPartyItemLocation + ld a, [hl] + ld [CurItem], a + call $6cdf + jr nc, .asm_12dbe + call GetPartyItemLocation + ld [hl], $0 + call $389c + ld hl, $6de7 + call Function1d67 + jr .asm_12dc6 + +.asm_12dbe + ld hl, $6dec + call Function1d67 + jr .asm_12dc6 + +.asm_12dc6 + ld a, $3 + ret +; 12dc9 + +INCBIN "baserom.gbc", $12dc9, $12e00 - $12dc9 OpenPartyStats: ; 12e00 @@ -25153,7 +26080,692 @@ OpenPartyStats: ; 12e00 ; 12e1b -INCBIN "baserom.gbc", $12e1b, $13327 - $12e1b +Function12e1b: ; 12e1b + ld a, $3 + ld hl, $4785 + rst FarCall + ld a, [$d0ec] + cp $1 + jr nz, .asm_12e2d + ld b, $4 + ld a, $2 + ret + +.asm_12e2d + ld a, $3 + ret +; 12e30 + + +Function12e30: ; 12e30 + callba Functionca3b + ld a, [$d0ec] + cp $2 + jr z, .asm_12e4c + cp $0 + jr z, .asm_12e4f + ld a, $41 + ld hl, $60b5 + rst FarCall + ld b, $4 + ld a, $2 + ret + +.asm_12e4c + ld a, $3 + ret + +.asm_12e4f + ld a, $0 + ret +; 12e52 + +INCBIN "baserom.gbc", $12e52, $12e55 - $12e52 + +Function12e55: ; 12e55 + ld a, $3 + ld hl, $48ac + rst FarCall + ld a, [$d0ec] + cp $1 + jr nz, .asm_12e67 + ld b, $4 + ld a, $2 + ret + +.asm_12e67 + ld a, $3 + ret +; 12e6a + +Function12e6a: ; 12e6a + ld a, $3 + ld hl, $4ce5 + rst FarCall + ld a, [$d0ec] + cp $1 + jr nz, .asm_12e7c + ld b, $4 + ld a, $2 + ret + +.asm_12e7c + ld a, $3 + ret +; 12e7f + +Function12e7f: ; 12e7f + ld a, $3 + ld hl, $4d9d + rst FarCall + ld a, [$d0ec] + cp $1 + jr nz, .asm_12e91 + ld b, $4 + ld a, $2 + ret + +.asm_12e91 + ld a, $3 + ret +; 12e94 + +Function12e94: ; 12e94 + ld a, $3 + ld hl, $4ade + rst FarCall + ld a, [$d0ec] + cp $1 + jr nz, .asm_12ea6 + ld b, $4 + ld a, $2 + ret + +.asm_12ea6 + ld a, $3 + ret +; 12ea9 + +Function12ea9: ; 12ea9 + ld a, $3 + ld hl, $4c61 + rst FarCall + ld a, [$d0ec] + and a + jr z, .asm_12eba + ld b, $4 + ld a, $2 + ret + +.asm_12eba + ld a, $3 + ret +; 12ebd + +Function12ebd: ; 12ebd + ld a, $3 + ld hl, $4909 + rst FarCall + ld a, [$d0ec] + and a + jr z, .asm_12ece + ld b, $4 + ld a, $2 + ret + +.asm_12ece + ld a, $3 + ret +; 12ed1 + +Function12ed1: ; 12ed1 + ld a, $3 + ld hl, $4b9c + rst FarCall + ld a, [$d0ec] + cp $1 + jr nz, .asm_12ee3 + ld b, $4 + ld a, $2 + ret + +.asm_12ee3 + ld a, $3 + ret +; 12ee6 + +Function12ee6: ; 12ee6 + call $6f05 + jr nc, .asm_12ef3 + ld a, $3 + ld hl, $73df + rst FarCall + jr .asm_12ef9 + +.asm_12ef3 + ld hl, $6f00 + call PrintText + +.asm_12ef9 + xor a + ld [PartyMenuActionText], a + ld a, $3 + ret +; 12f00 + +INCBIN "baserom.gbc", $12f00, $12f05 - $12f00 + +Function12f05: ; 12f05 + ld a, $24 + call GetPartyParamLocation + ld a, [hli] + ld [hProduct], a + ld a, [hl] + ld [hMultiplicand], a + ld a, $5 + ld [hMultiplier], a + ld b, $2 + call Divide + ld a, $23 + call GetPartyParamLocation + ld a, [$ffb6] + sub [hl] + dec hl + ld a, [$ffb5] + sbc [hl] + ret +; 12f26 + +Function12f26: ; 12f26 + ld a, $3 + ld hl, $4e7d + rst FarCall + ld a, [$d0ec] + cp $1 + jr nz, .asm_12f38 + ld b, $4 + ld a, $2 + ret + +.asm_12f38 + ld a, $3 + ret +; 12f3b + +Function12f3b: ; 12f3b + ld a, $3 + ld hl, $4eeb + rst FarCall + ld a, [$d0ec] + cp $1 + jr nz, .asm_12f4d + ld b, $4 + ld a, $2 + ret + +.asm_12f4d + ld a, $3 + ret +; 12f50 + +Function12f50: ; 12f50 + ld a, $14 + ld hl, $46bc + rst FarCall + ld b, $4 + ld a, $2 + ret +; 12f5b + +INCBIN "baserom.gbc", $12f5b, $12fba - $12f5b + +Function12fba: ; 12fba + ld a, [CurPartySpecies] + cp $fd + jr z, .asm_12fd2 + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + call $6fd5 + pop af + ld [Options], a + call WhiteBGMap + +.asm_12fd2 + ld a, $0 + ret +; 12fd5 + +Function12fd5: ; 12fd5 + ld a, [CurPartyMon] + inc a + ld [$d0d8], a + call $7172 + call $72d3 + ld de, $7163 + call Function1bb1 + call $71ef + ld hl, $cfa5 + set 6, [hl] + jr .asm_13009 + + call Function1bd3 + bit 1, a + jp nz, $7038 + bit 0, a + jp nz, $70c6 + bit 4, a + jp nz, $705b + bit 5, a + jp nz, $7075 + +.asm_13009 + call $7235 + ld a, [$d0e3] + and a + jr nz, .asm_13018 + call $7256 + jp $6ff2 + +.asm_13018 + ld a, $7f + ld hl, $c57d + ld bc, $0005 + call ByteFill + ld hl, $c591 + ld bc, $0512 + call ClearBox + ld hl, $c591 + ld de, $716b + call PlaceString + jp $6ff2 +; 13038 + +Function13038: ; 13038 + call PlayClickSFX + call WaitSFX + ld a, [$d0e3] + and a + jp z, $7154 + ld a, [$d0e3] + ld [$cfa9], a + xor a + ld [$d0e3], a + ld hl, $c4c9 + ld bc, $0812 + call ClearBox + jp $6fe8 +; 1305b + +Function1305b: ; 1305b + ld a, [$d0e3] + and a + jp nz, $6ff2 + ld a, [CurPartyMon] + ld b, a + push bc + call $708f + pop bc + ld a, [CurPartyMon] + cp b + jp z, $6ff2 + jp $6fd5 +; 13075 + +Function13075: ; 13075 + ld a, [$d0e3] + and a + jp nz, $6ff2 + ld a, [CurPartyMon] + ld b, a + push bc + call $70a7 + pop bc + ld a, [CurPartyMon] + cp b + jp z, $6ff2 + jp $6fd5 +; 1308f + +Function1308f: ; 1308f +.asm_1308f + ld a, [CurPartyMon] + inc a + ld [CurPartyMon], a + ld c, a + ld b, $0 + ld hl, PartySpecies + add hl, bc + ld a, [hl] + cp $ff + jr z, .asm_130a7 + cp $fd + ret nz + jr .asm_1308f + +.asm_130a7 + ld a, [CurPartyMon] + and a + ret z +.asm_130ac + ld a, [CurPartyMon] + dec a + ld [CurPartyMon], a + ld c, a + ld b, $0 + ld hl, PartySpecies + add hl, bc + ld a, [hl] + cp $fd + ret nz + ld a, [CurPartyMon] + and a + jr z, .asm_1308f + jr .asm_130ac +; 130c6 + +Function130c6: ; 130c6 + call PlayClickSFX + call WaitSFX + ld a, [$d0e3] + and a + jr nz, .asm_130de + ld a, [$cfa9] + ld [$d0e3], a + call Function1bee + jp $7018 + +.asm_130de + ld hl, PartyMon1Move1 + ld bc, $0030 + ld a, [CurPartyMon] + call AddNTimes + push hl + call $713a + pop hl + ld bc, $0015 + add hl, bc + call $713a + ld a, [IsInBattle] + jr z, .asm_13113 + ld hl, BattleMonMove1 + ld bc, $0020 + ld a, [CurPartyMon] + call AddNTimes + push hl + call $713a + pop hl + ld bc, $0006 + add hl, bc + call $713a + +.asm_13113 + ld de, $0020 + call StartSFX + call WaitSFX + ld de, $0020 + call StartSFX + call WaitSFX + ld hl, $c4c9 + ld bc, $0812 + call ClearBox + ld hl, $c572 + ld bc, $0109 + call ClearBox + jp $6fe8 +; 1313a + +Function1313a: ; 1313a + push hl + ld a, [$cfa9] + dec a + ld c, a + ld b, $0 + add hl, bc + ld d, h + ld e, l + pop hl + ld a, [$d0e3] + dec a + ld c, a + ld b, $0 + add hl, bc + ld a, [de] + ld b, [hl] + ld [hl], a + ld a, b + ld [de], a + ret +; 13154 + +Function13154: ; 13154 + xor a + ld [$d0e3], a + ld hl, $cfa5 + res 6, [hl] + call ClearSprites + jp ClearTileMap +; 13163 + +INCBIN "baserom.gbc", $13163, $13172 - $13163 + +Function13172: ; 13172 + call WhiteBGMap + call ClearTileMap + call ClearSprites + xor a + ld [hBGMapMode], a + ld a, $3e + ld hl, $7571 + rst FarCall + callba Function8e814 + ld a, [CurPartyMon] + ld e, a + ld d, $0 + ld hl, PartySpecies + add hl, de + ld a, [hl] + ld [$d265], a + ld e, $2 + ld a, $23 + ld hl, $683f + rst FarCall + ld hl, $c4b4 + ld b, $9 + ld c, $12 + call TextBox + ld hl, $c57c + ld b, $5 + ld c, $12 + call TextBox + ld hl, $c4a2 + ld bc, $0203 + call ClearBox + xor a + ld [MonType], a + ld hl, PartyMon1Nickname + ld a, [CurPartyMon] + call GetNick + ld hl, $c4b9 + call PlaceString + push bc + ld a, $14 + ld hl, $484a + rst FarCall + pop hl + call Function382d + ld hl, PlayerHPPal + call SetHPPal + ld b, $e + call GetSGBLayout + ld hl, $c4b0 + ld bc, $0103 + jp ClearBox +; 131ef + +Function131ef: ; 131ef + xor a + ld [hBGMapMode], a + ld [$d0e3], a + ld [MonType], a + ld a, $1f + call Predef + ld hl, TempMonMove1 + ld de, $d25e + ld bc, $0004 + call CopyBytes + ld a, $28 + ld [Buffer1], a + ld hl, $c4de + ld a, $20 + call Predef + ld hl, $c4fa + ld a, $23 + call Predef + call WaitBGMap + call Function32f9 + ld a, [$d0eb] + inc a + ld [$cfa3], a + ld hl, $c57c + ld b, $5 + ld c, $12 + jp TextBox +; 13235 + +Function13235: ; 13235 + ld hl, PartyMon1Move1 + ld bc, $0030 + ld a, [CurPartyMon] + call AddNTimes + ld a, [$cfa9] + dec a + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + ld [CurSpecies], a + ld hl, $c591 + ld bc, $0512 + jp ClearBox +; 13256 + +Function13256: ; 13256 + xor a + ld [hBGMapMode], a + ld hl, $c568 + ld de, $72ba + call PlaceString + ld hl, $c57c + ld de, $72c2 + call PlaceString + ld hl, $c59c + ld de, $72ca + call PlaceString + ld a, [CurSpecies] + ld b, a + ld hl, $c592 + ld a, $2a + call Predef + ld a, [CurSpecies] + dec a + ld hl, $5afd + ld bc, $0007 + call AddNTimes + ld a, $10 + call GetFarByte + ld hl, $c5a0 + cp $2 + jr c, .asm_132a7 + ld [$d265], a + ld de, $d265 + ld bc, $0103 + call Function3198 + jr .asm_132ad + +.asm_132a7 + ld de, $72cf + call PlaceString + +.asm_132ad + ld hl, $c5b9 + ld a, $11 + call Predef + ld a, $1 + ld [hBGMapMode], a + ret +; 132ba + +INCBIN "baserom.gbc", $132ba, $132d3 - $132ba + +Function132d3: ; 132d3 + call $72da + call $72fe + ret +; 132da + +Function132da: ; 132da + ld a, [CurPartyMon] + and a + ret z + ld c, a + ld e, a + ld d, $0 + ld hl, PartyCount + add hl, de +.asm_132e7 + ld a, [hl] + and a + jr z, .asm_132f3 + cp $fd + jr z, .asm_132f3 + cp $fc + jr c, .asm_132f8 + +.asm_132f3 + dec hl + dec c + jr nz, .asm_132e7 + ret + +.asm_132f8 + ld hl, $c4b0 + ld [hl], $71 + ret +; 132fe + +Function132fe: ; 132fe + ld a, [CurPartyMon] + inc a + ld c, a + ld a, [PartyCount] + cp c + ret z + ld e, c + ld d, $0 + ld hl, PartySpecies + add hl, de +.asm_1330f + ld a, [hl] + cp $ff + ret z + and a + jr z, .asm_1331e + cp $fd + jr z, .asm_1331e + cp $fc + jr c, .asm_13321 + +.asm_1331e + inc hl + jr .asm_1330f + +.asm_13321 + ld hl, $c4b2 + ld [hl], $ed + ret +; 13327 SelectMenu: ; 13327 @@ -47402,7 +49014,29 @@ TileTypeTable: ; 4ce1f db $00, $00, $00, $00, $00, $00, $00, $0f ; 4cf1f -INCBIN "baserom.gbc", $4cf1f, $4cffe - $4cf1f +Function4cf1f: ; 4cf1f + ld a, $0 + call $4f34 + ld a, $1 + call $4f34 + ld a, $2 + call $4f34 + ld a, $3 + call $4f34 + ret +; 4cf34 + +Function4cf34: ; 4cf34 + call GetSRAMBank + ld hl, $a000 + ld bc, $2000 + xor a + call ByteFill + call CloseSRAM + ret +; 4cf45 + +INCBIN "baserom.gbc", $4cf45, $4cffe - $4cf45 Function4cffe: ; 4cffe @@ -47697,7 +49331,276 @@ Function4d3ab: ; 4d3ab ret ; 4d3b1 -INCBIN "baserom.gbc", $4d3b1, $4d596 - $4d3b1 +Function4d3b1: ; 4d3b1 + ld a, $2 + ld hl, $4000 + rst FarCall + ld b, $8 + call GetSGBLayout + call Functione51 + call Functione5f + ld de, $0054 + call StartMusic + ld hl, $5408 + call PrintText + ld hl, $540d + call Function1d3c + call Function1d81 + ret c + ld a, [$cfa9] + cp $1 + ret z + call $541e + jr c, .asm_4d3f7 + ld a, $0 + call GetSRAMBank + ld a, $80 + ld [$ac60], a + call CloseSRAM + ld hl, $53fe + call PrintText + ret + +.asm_4d3f7 + ld hl, $5403 + call PrintText + ret +; 4d3fe + +INCBIN "baserom.gbc", $4d3fe, $4d41e - $4d3fe + +Function4d41e: ; 4d41e + call $550f + push de + ld hl, StringBuffer2 + ld bc, $0005 + xor a + call ByteFill + ld a, $4 + ld [$d08b], a + ld hl, $5463 + call PrintText +.asm_4d437 + call $5468 +.asm_4d43a + call Functiona57 + ld a, [$ffa9] + ld b, a + and $1 + jr nz, .asm_4d453 + ld a, b + and $f0 + jr z, .asm_4d43a + call $5490 + ld c, $3 + call DelayFrames + jr .asm_4d437 + +.asm_4d453 + call $54e0 + pop de + ld a, e + cp l + jr nz, .asm_4d461 + ld a, d + cp h + jr nz, .asm_4d461 + and a + ret + +.asm_4d461 + scf + ret +; 4d463 + +INCBIN "baserom.gbc", $4d463, $4d468 - $4d463 + +Function4d468: ; 4d468 + ld hl, $c5da + ld de, StringBuffer2 + ld c, $5 +.asm_4d470 + ld a, [de] + add $f6 + ld [hli], a + inc de + dec c + jr nz, .asm_4d470 + ld hl, $c5ee + ld bc, $0005 + ld a, $7f + call ByteFill + ld hl, $c5ee + ld a, [$d08b] + ld e, a + ld d, $0 + add hl, de + ld [hl], $61 + ret +; 4d490 + +Function4d490: ; 4d490 + ld a, b + and $20 + jr nz, .asm_4d4a5 + ld a, b + and $10 + jr nz, .asm_4d4af + ld a, b + and $40 + jr nz, .asm_4d4ba + ld a, b + and $80 + jr nz, .asm_4d4c8 + ret + +.asm_4d4a5 + ld a, [$d08b] + and a + ret z + dec a + ld [$d08b], a + ret + +.asm_4d4af + ld a, [$d08b] + cp $4 + ret z + inc a + ld [$d08b], a + ret + +.asm_4d4ba + call $54d5 + ld a, [hl] + cp $9 + jr z, .asm_4d4c5 + inc a + ld [hl], a + ret + +.asm_4d4c5 + ld [hl], $0 + ret + +.asm_4d4c8 + call $54d5 + ld a, [hl] + and a + jr z, .asm_4d4d2 + dec a + ld [hl], a + ret + +.asm_4d4d2 + ld [hl], $9 + ret +; 4d4d5 + +Function4d4d5: ; 4d4d5 + ld a, [$d08b] + ld e, a + ld d, $0 + ld hl, StringBuffer2 + add hl, de + ret +; 4d4e0 + +Function4d4e0: ; 4d4e0 + ld hl, $0000 + ld de, $d08a + ld bc, $0001 + call $5501 + ld bc, $000a + call $5501 + ld bc, $0064 + call $5501 + ld bc, $03e8 + call $5501 + ld bc, $2710 + ld a, [de] + dec de + push hl + ld hl, $0000 + call AddNTimes + ld c, l + ld b, h + pop hl + add hl, bc + ret +; 4d50f + +Function4d50f: ; 4d50f + ld a, $1 + call GetSRAMBank + ld de, $0000 + ld hl, $a009 + ld c, $2 + call $5533 + ld hl, $a00b + ld c, $5 + call $553e + ld hl, $a3dc + ld c, $3 + call $5533 + call CloseSRAM + ret +; 4d533 + +Function4d533: ; 4d533 +.asm_4d533 + ld a, [hli] + add e + ld e, a + ld a, $0 + adc d + ld d, a + dec c + jr nz, .asm_4d533 + ret +; 4d53e + +Function4d53e: ; 4d53e +.asm_4d53e + ld a, [hli] + cp $50 + ret z + add e + ld e, a + ld a, $0 + adc d + ld d, a + dec c + jr nz, .asm_4d53e + ret +; 4d54c + +Function4d54c: ; 4d54c + ld a, $2 + ld hl, $4000 + rst FarCall + ld b, $8 + call GetSGBLayout + call Functione51 + call Functione5f + ld de, $0054 + call StartMusic + ld hl, $5580 + call PrintText + ld hl, $5585 + call Function1d3c + call Function1d81 + ret c + ld a, [$cfa9] + cp $1 + ret z + ld a, $13 + ld hl, $4f1f + rst FarCall + ret +; 4d580 + +INCBIN "baserom.gbc", $4d580, $4d596 - $4d580 Tilesets: @@ -49798,7 +51701,17 @@ Function505c1: ; 505c1 ret ; 505da -INCBIN "baserom.gbc", $505da, $50730 - $505da +INCBIN "baserom.gbc", $505da, $506bc - $505da + +Function506bc: ; 506bc + ld hl, $46c8 + call Function31cd + ld a, $1 + ld [$d0ec], a + ret +; 506c8 + +INCBIN "baserom.gbc", $506c8, $50730 - $506c8 Function50730: ; 50730 @@ -49920,7 +51833,85 @@ Function507fb: ; 507fb ret ; 50821 -INCBIN "baserom.gbc", $50821, $5093a - $50821 +INCBIN "baserom.gbc", $50821, $5084a - $50821 + +Function5084a: ; 5084a + ld a, [CurPartyMon] + ld e, a + call $48d5 + ld a, [CurPartySpecies] + ld [CurSpecies], a + call GetBaseData + ld a, [MonType] + ld hl, PartyMon1Species + ld bc, $0030 + and a + jr z, .asm_5087b + ld hl, OTPartyMon1Species + ld bc, $0030 + cp $1 + jr z, .asm_5087b + ld bc, $0020 + ld hl, $65bb + ld a, $3 + rst FarCall + jr .asm_5088a + +.asm_5087b + ld a, [CurPartyMon] + call AddNTimes + ld de, TempMonSpecies + ld bc, $0030 + call CopyBytes + +.asm_5088a + ret +; 5088b + +INCBIN "baserom.gbc", $5088b, $508d5 - $5088b + +Function508d5: ; 508d5 + ld a, [MonType] + and a + jr z, .asm_508e7 + cp $1 + jr z, .asm_508ec + cp $2 + jr z, .asm_508f1 + cp $3 + jr z, .asm_50900 + +.asm_508e7 + ld hl, PartySpecies + jr .asm_50905 + +.asm_508ec + ld hl, OTPartySpecies + jr .asm_50905 + +.asm_508f1 + ld a, $1 + call GetSRAMBank + ld hl, $ad11 + call $4905 + call CloseSRAM + ret + +.asm_50900 + ld a, [BreedMon1Species] + jr .asm_50909 + +.asm_50905 + ld d, $0 + add hl, de + ld a, [hl] + +.asm_50909 + ld [CurPartySpecies], a + ret +; 5090d + +INCBIN "baserom.gbc", $5090d, $5093a - $5090d PrintMoveType: ; 5093a @@ -51661,7 +53652,55 @@ INCBIN "baserom.gbc", $82153, $823c8-$82153 SECTION "bank21",DATA,BANK[$21] -INCBIN "baserom.gbc", $84000, $842db - $84000 +Function84000: ; 84000 + ld hl, OverworldMap + ld bc, $040c + xor a + call $42ab + xor a + ld [rSB], a + ld [rSC], a + ld [$c2d5], a + ld hl, $c2d4 + set 0, [hl] + ld a, [GBPrinter] + ld [$cbfb], a + xor a + ld [$cf63], a + ret +; 84022 + +Function84022: ; 84022 + ld a, [$cf63] + ld e, a + ld d, $0 + ld hl, $4031 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 84031 + +INCBIN "baserom.gbc", $84031, $842ab - $84031 + +Function842ab: ; 842ab + push de + ld e, a +.asm_842ad + ld [hl], e + inc hl + dec bc + ld a, c + or b + jr nz, .asm_842ad + ld a, e + pop de + ret +; 842b7 + +INCBIN "baserom.gbc", $842b7, $842db - $842b7 Function842db: ; 842db @@ -51677,7 +53716,231 @@ Function842db: ; 842db jp [hl] ; 842ea -INCBIN "baserom.gbc", $842ea, $84a2e - $842ea +INCBIN "baserom.gbc", $842ea, $843f0 - $842ea + +Function843f0: ; 843f0 +.asm_843f0 + call Functiona57 + call $46f6 + jr c, .asm_8440f + ld a, [$cf63] + bit 7, a + jr nz, .asm_8440d + call $4022 + call $4757 + call $4785 + call DelayFrame + jr .asm_843f0 + +.asm_8440d + and a + ret + +.asm_8440f + scf + ret +; 84411 + +Function84411: ; 84411 + xor a + ld [$c2d4], a + ld [$c2d5], a + ret +; 84419 + +Function84419: ; 84419 + push af + call $4000 + pop af + ld [$cbfa], a + call $4728 + ret +; 84425 + +Function84425: ; 84425 + call Function222a + call $4753 + ret +; 8442c + +INCBIN "baserom.gbc", $8442c, $845d4 - $8442c + +Function845d4: ; 845d4 + call $45db + call $4425 + ret +; 845db + +Function845db: ; 845db + ld a, [$cf65] + push af + xor a + ld [$ffac], a + call $474c + ld a, [rIE] + push af + xor a + ld [rIF], a + ld a, $9 + ld [rIE], a + xor a + ld [hBGMapMode], a + ld a, $13 + call $4419 + ld hl, $ff9e + ld a, [hl] + push af + ld [hl], $4 + ld a, $9 + ld [$cf65], a + call $43f0 + pop af + ld [$ff9e], a + call $4411 + call $4735 + xor a + ld [rIF], a + pop af + ld [rIE], a + pop af + ld [$cf65], a + ret +; 8461a + +INCBIN "baserom.gbc", $8461a, $846f6 - $8461a + +Function846f6: ; 846f6 + ld a, [hJoyDown] + and $2 + jr nz, .asm_846fe + and a + ret + +.asm_846fe + ld a, [$ca80] + cp $c + jr nz, .asm_84722 +.asm_84705 + ld a, [$c2d5] + and a + jr nz, .asm_84705 + ld a, $16 + ld [$c2d5], a + ld a, $88 + ld [rSB], a + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a +.asm_8471c + ld a, [$c2d5] + and a + jr nz, .asm_8471c + +.asm_84722 + ld a, $1 + ld [$ffac], a + scf + ret +; 84728 + +Function84728: ; 84728 + ld hl, TileMap + ld de, $ca90 + ld bc, $0168 + call CopyBytes + ret +; 84735 + +Function84735: ; 84735 + ld hl, $ca90 + ld de, TileMap + ld bc, $0168 + call CopyBytes + ret +; 84742 + +INCBIN "baserom.gbc", $84742, $8474c - $84742 + +Function8474c: ; 8474c + ld de, $005b + call StartMusic2 + ret +; 84753 + +Function84753: ; 84753 + call Function3d47 + ret +; 84757 + +Function84757: ; 84757 + ld a, [$ca88] + cp $ff + jr nz, .asm_84765 + ld a, [$ca89] + cp $ff + jr z, .asm_8477f + +.asm_84765 + ld a, [$ca89] + and $e0 + ret z + bit 7, a + jr nz, .asm_8477b + bit 6, a + jr nz, .asm_84777 + ld a, $6 + jr .asm_84781 + +.asm_84777 + ld a, $7 + jr .asm_84781 + +.asm_8477b + ld a, $4 + jr .asm_84781 + +.asm_8477f + ld a, $5 + +.asm_84781 + ld [$cbf8], a + ret +; 84785 + +Function84785: ; 84785 + ld a, [$cbf8] + and a + ret z + push af + xor a + ld [hBGMapMode], a + ld hl, $c504 + ld bc, $0a12 + call TextBox + pop af + ld e, a + ld d, $0 + ld hl, $4807 + add hl, de + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $c52d + ld a, $77 + call Function13d4 + ld hl, $c5ce + ld de, $47f5 + call PlaceString + ld a, $1 + ld [hBGMapMode], a + xor a + ld [$cbf8], a + ret +; 847bd + +INCBIN "baserom.gbc", $847bd, $84a2e - $847bd FX00GFX: FX01GFX: ; 84a2e @@ -52690,7 +54953,34 @@ SpecialHoOhChamber: ; 0x8addb ret ; 0x8adef -INCBIN "baserom.gbc", $8adef, $8b170 - $8adef +INCBIN "baserom.gbc", $8adef, $8ae30 - $8adef + +Function8ae30: ; 8ae30 + push de + push bc + call GetSecondaryMapHeaderPointer + ld a, h + cp $58 + jr nz, .asm_8ae4a + ld a, l + cp $e8 + jr nz, .asm_8ae4a + ld de, $0329 + ld b, $1 + call BitTable1Func + scf + jr .asm_8ae4b + +.asm_8ae4a + and a + +.asm_8ae4b + pop bc + pop de + ret +; 8ae4e + +INCBIN "baserom.gbc", $8ae4e, $8b170 - $8ae4e SpecialDratini: ; 0x8b170 ; if ScriptVar is 0 or 1, change the moveset of the last Dratini in the party. @@ -53907,7 +56197,29 @@ Function8e82b: ; 8e82b ret ; 8e83f -INCBIN "baserom.gbc", $8e83f, $8e9ac - $8e83f +Function8e83f: ; 8e83f + push hl + push de + push bc + call $6849 + pop bc + pop de + pop hl + ret +; 8e849 + +Function8e849: ; 8e849 + ld d, $0 + ld hl, $6854 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 8e854 + +INCBIN "baserom.gbc", $8e854, $8e9ac - $8e854 GetSpeciesIcon: ; 8e9ac ; Load species icon into VRAM at tile a @@ -54617,7 +56929,122 @@ Function91ae1: ; 91ae1 ret ; 91af3 -INCBIN "baserom.gbc", $91af3, $91bb5 - $91af3 + +Function91af3: ; 91af3 + call WhiteBGMap + call ClearTileMap + call ClearSprites + ld hl, $ffaa + ld a, [hl] + push af + ld [hl], $1 + xor a + ld [hBGMapMode], a + callba Function8cf53 + call Function91ff2 + ld de, $62e1 + ld hl, $9300 + ld bc, $2406 + call Functionf1e + call FlyMap + call $5c8f + ld b, $2 + call GetSGBLayout + call Function32f9 +.asm_91b29 + call Functiona57 + ld hl, hJoyPressed + ld a, [hl] + and $2 + jr nz, .asm_91b4a + ld a, [hl] + and $1 + jr nz, .asm_91b4e + call $5b73 + call $5c17 + callba Function8cf69 + call DelayFrame + jr .asm_91b29 + +.asm_91b4a + ld a, $ff + jr .asm_91b5a + +.asm_91b4e + ld a, [DefaultFlypoint] + ld l, a + ld h, $0 + add hl, hl + ld de, $5c5f + add hl, de + ld a, [hl] + +.asm_91b5a + ld [DefaultFlypoint], a + pop af + ld [$ffaa], a + call WhiteBGMap + ld a, $90 + ld [$ffd2], a + xor a + ld [hBGMapAddress], a + ld a, $98 + ld [$ffd7], a + ld a, [DefaultFlypoint] + ld e, a + ret +; 91b73 + +Function91b73: ; 91b73 + ld a, [StartFlypoint] + ld e, a + ld a, [EndFlypoint] + ld d, a + ld hl, $ffa9 + ld a, [hl] + and $40 + jr nz, .asm_91b89 + ld a, [hl] + and $80 + jr nz, .asm_91b9b + ret + +.asm_91b89 + ld hl, DefaultFlypoint + ld a, [hl] + cp d + jr nz, .asm_91b93 + ld a, e + dec a + ld [hl], a + +.asm_91b93 + inc [hl] + call $5c3c + jr z, .asm_91b89 + jr .asm_91bab + +.asm_91b9b + ld hl, DefaultFlypoint + ld a, [hl] + cp e + jr nz, .asm_91ba5 + ld a, d + inc a + ld [hl], a + +.asm_91ba5 + dec [hl] + call $5c3c + jr z, .asm_91b9b + +.asm_91bab + call TownMapBubble + call WaitBGMap + xor a + ld [hBGMapMode], a + ret +; 91bb5 TownMapBubble: ; 91bb5 ; Draw the bubble containing the location text in the town map HUD @@ -54693,7 +57120,45 @@ TownMapBubble: ; 91bb5 ret ; 91c17 -INCBIN "baserom.gbc", $91c17, $91c50 - $91c17 +Function91c17: ; 91c17 + ld a, [DefaultFlypoint] + ld l, a + ld h, $0 + add hl, hl + ld de, Flypoints + add hl, de + ld e, [hl] + callba GetLandmarkCoords + ld a, [$d003] + ld c, a + ld a, [$d004] + ld b, a + ld hl, $0004 + add hl, bc + ld [hl], e + ld hl, $0005 + add hl, bc + ld [hl], d + ret +; 91c3c + +Function91c3c: ; 91c3c + push bc + push de + push hl + ld l, [hl] + ld h, $0 + add hl, hl + ld de, $5c5f + add hl, de + ld c, [hl] + call GetFlyPermission + pop hl + pop de + pop bc + and a + ret +; 91c50 GetFlyPermission: ; 91c50 ; Return flypoint c permission flag in a @@ -54739,7 +57204,11 @@ Flypoints: ; 91c5e ; 91c8e -INCBIN "baserom.gbc", $91c8e, $91c90 - $91c8e +INCBIN "baserom.gbc", $91c8e, $91c8f - $91c8e + +Function91c8f: ; 91c8f + ret +; 91c90 FlyMap: ; 91c90 @@ -58898,7 +61367,128 @@ WildRockMonTable: ; b83de db $ff ; end ; b83e5 -INCBIN "baserom.gbc", $b83e5, $b9e76 - $b83e5 +INCBIN "baserom.gbc", $b83e5, $b9229 - $b83e5 + +Functionb9229: ; b9229 + ld a, [CurPartyMon] + ld hl, $a600 + ld bc, $002f + call AddNTimes + ld d, h + ld e, l + push de + call WhiteBGMap + call ClearSprites + call ClearTileMap + call DisableLCD + call Functione5f + pop de + push de + ld a, $0 + call GetSRAMBank + ld a, $77 + ld hl, $65c8 + rst FarCall + call CloseSRAM + ld a, c + ld de, $65e6 + or a + jr z, .asm_b9268 + ld de, $69e6 + sub $3 + jr c, .asm_b9268 + ld de, $6de6 + +.asm_b9268 + ld hl, VTiles1 + ld bc, $7780 + call Functionf9d + pop de + call $52b8 + call EnableLCD + call WaitBGMap + ld a, [$d1ec] + ld e, a + ld a, $2 + ld hl, $4cb4 + rst FarCall + call Function32f9 + xor a + ld [hJoyPressed], a + call $529a + call WhiteBGMap + call DisableLCD + call Functione51 + jp EnableLCD +; b929a + +Functionb929a: ; b929a +.asm_b929a + call GetJoypadPublic + ld a, [hJoyPressed] + and $b + jr z, .asm_b929a + and $8 + jr nz, .asm_b92a8 + ret + +.asm_b92a8 + ld a, [$cf63] + push af + ld hl, $45d4 + ld a, $21 + rst FarCall + pop af + ld [$cf63], a + jr .asm_b929a +; b92b8 + +Functionb92b8: ; b92b8 + ld h, d + ld l, e + push hl + ld a, $0 + call GetSRAMBank + ld de, $002b + add hl, de + ld a, [hli] + ld [Buffer1], a + ld a, [hli] + ld [Buffer2], a + ld a, [hli] + ld [CurPartySpecies], a + ld b, [hl] + call CloseSRAM + ld hl, $52f8 + ld c, $0 +.asm_b92d9 + ld a, [hli] + cp b + jr z, .asm_b92ea + cp $ff + jr z, .asm_b92e6 + inc c + inc hl + inc hl + jr .asm_b92d9 + +.asm_b92e6 + ld hl, $52f8 + inc hl + +.asm_b92ea + ld a, c + ld [$d1ec], a + ld a, [hli] + ld h, [hl] + ld l, a + ld de, $52f7 + pop bc + push de + jp [hl] +; b92f7 + +INCBIN "baserom.gbc", $b92f7, $b9e76 - $b92f7 Functionb9e76: ; b9e76 @@ -65141,7 +67731,13 @@ Function106094: ; 106094 ret ; 106095 -INCBIN "baserom.gbc", $106095, $1060bb - $106095 +INCBIN "baserom.gbc", $106095, $1060b5 - $106095 + +Function1060b5: ; 1060b5 + ret +; 1060b6 + +INCBIN "baserom.gbc", $1060b6, $1060bb - $1060b6 Function1060bb: ; 1060bb ; commented out @@ -68242,7 +70838,33 @@ PokegearGFX: ; 1de2e4 INCBIN "gfx/misc/pokegear.lz" ; 1de5c7 -INCBIN "baserom.gbc", $1de5c7, $1df238 - $1de5c7 +INCBIN "baserom.gbc", $1de5c7, $1de5c8 - $1de5c7 + +Function1de5c8: ; 1de5c8 + ld c, $0 + ld hl, $0029 + add hl, de + ld a, [hli] + cp $84 + ret nz + ld a, [hli] + inc c + cp $85 + ret z + inc c + cp $86 + ret z + inc c + cp $88 + ret z + inc c + cp $92 + ret z + ld c, $0 + ret +; 1de5e6 + +INCBIN "baserom.gbc", $1de5e6, $1df238 - $1de5e6 SECTION "bank78",DATA,BANK[$78] From ff1536ddf9c70b9b98c5332c193ad099a103162d Mon Sep 17 00:00:00 2001 From: yenatch Date: Thu, 1 Aug 2013 14:54:33 -0400 Subject: [PATCH 36/84] refactor symfile parser and add labels.json generator --- extras/sym.py | 128 ++++++++++++++++++++++++++++++++++---------------- 1 file changed, 87 insertions(+), 41 deletions(-) diff --git a/extras/sym.py b/extras/sym.py index cc580fa67..b866ec87f 100644 --- a/extras/sym.py +++ b/extras/sym.py @@ -1,54 +1,100 @@ -# -*- coding: utf-8 -*- +# coding: utf-8 +import os +import sys import json -# from crystal import load_rom -# from gbz80disasm import load_labels - def make_sym_from_json(filename = '../pokecrystal.sym', j = 'labels.json'): - # todo: delete and remake labels.json at runtime - with open(filename, 'w') as sym: - for label in json.load(open(j)): - sym.write('{0:x}:{1:x} {2}\n'.format(label['bank'], label['address']%0x4000 + (0x4000 if label['bank'] else 0), label['label'])) - - -def make_sym_from_mapfile(filename = '../pokecrystal.sym', mapfile = '../mapfile.txt'): - # todo: sort label definitions by address - output = '' - # get label definitions - with open(mapfile,'r') as map: + labels = json.load(open(j)) + for label in labels: + output += '{0:x}:{1:x} {2}\n'.format(label['bank'], label['address'], label['label']) + with open(filename, 'w') as sym: + sym.write(output) + + +def make_json_from_mapfile(filename = 'labels.json', mapfile = '../pokecrystal.map'): + output = [] + labels = filter_wram_addresses(read_mapfile(mapfile)) + with open(filename, 'w') as out: + out.write(json.dumps(labels)) + + +def read_mapfile(filename = '../pokecrystal.map'): + """ + Scrape label addresses from an rgbds mapfile. + """ + + labels = [] + + with open(filename,'r') as map: lines = map.readlines() - for line in lines: - # bank # - if 'Bank #' in line: - cur_bank = int(line.lstrip('Bank #').strip(':\n').strip(' (HOME)')) - - # label definition - elif '=' in line: - thing = line.split('=') - spacing = ' ' * 11 # arbitrary - addr = int(thing[0].lstrip(spacing)[1:5],16) - - # rgbds doesn't support wram banks yet, - # so this hack is applied instead - if addr > 0xbfff: # 0xc000+ (wram only) - cur_bank = 0 - if addr > 0xcfff: # 0xd000+ (wram only) - cur_bank = 1 - - # convert to sym format (bank:addr label) - label = thing[1].strip('\n') - output += hex(cur_bank)[2:] + ':' + hex(addr)[2:] + ' ' + label + '\n' - + + for line in lines: + # bank # + if 'Bank #' in line: + cur_bank = int(line.lstrip('Bank #').strip(':\n').strip(' (HOME)')) + + # label definition + elif '=' in line: + address, label = line.split('=') + address = int(address.lstrip().replace('$','0x'), 16) + label = label.strip() + + # rgbds doesn't support ram banks yet + bank = cur_bank + offset = address + if 0x8000 <= address < 0xa000: + bank = 0 + elif 0xa000 <= address < 0xc000: + bank = 0 + elif 0xc000 <= address < 0xd000: + bank = 0 + elif 0xd000 <= address < 0xe000: + bank = 0 + else: + offset += (bank * 0x4000 - 0x4000) if bank > 0 else 0 + + labels += [{ + 'label': label, + 'bank': bank, + 'address': offset, + 'offset': offset, + 'local_address': address, + }] + + return labels + +def filter_wram_addresses(labels): + filtered_labels = [] + for label in labels: + if label['local_address'] < 0x8000: + filtered_labels += [label] + return filtered_labels + + +def make_sym_from_mapfile(filename = '../pokecrystal.sym'): + # todo: sort label definitions by address + + output = '' + labels = read_mapfile() + + # convert to sym format (bank:addr label) + for label in labels: + output += '%.2x:%.4x %s\n' % (label['bank'], label['address'], label['label']) + # dump contents to symfile with open(filename, 'w') as sym: sym.write(output) if __name__ == "__main__": - # default behavior: generate sym file from rgbds mapfile - try: make_sym_from_mapfile() - # if no mapfile exists, generate from labels.json - except: make_sym_from_json() + #if os.path.exists('../pokecrystal.sym'): + # sys.exit() + #elif os.path.exists('../pokecrystal.map'): + # make_sym_from_mapfile() + #elif os.path.exists('labels.json'): + # make_sym_from_json() + make_json_from_mapfile() + From ce31567c4decea39233d535fae27245b2954ed8a Mon Sep 17 00:00:00 2001 From: yenatch Date: Thu, 1 Aug 2013 15:29:12 -0400 Subject: [PATCH 37/84] frames --- gfx/frames/1.1bpp | Bin 0 -> 48 bytes gfx/frames/2.1bpp | Bin 0 -> 48 bytes gfx/frames/3.1bpp | Bin 0 -> 48 bytes gfx/frames/4.1bpp | Bin 0 -> 48 bytes gfx/frames/5.1bpp | Bin 0 -> 48 bytes gfx/frames/6.1bpp | Bin 0 -> 48 bytes gfx/frames/7.1bpp | Bin 0 -> 48 bytes gfx/frames/8.1bpp | Bin 0 -> 48 bytes gfx/frames/9.1bpp | Bin 0 -> 48 bytes main.asm | 18 +++++++++++++++--- 10 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 gfx/frames/1.1bpp create mode 100644 gfx/frames/2.1bpp create mode 100644 gfx/frames/3.1bpp create mode 100644 gfx/frames/4.1bpp create mode 100644 gfx/frames/5.1bpp create mode 100644 gfx/frames/6.1bpp create mode 100644 gfx/frames/7.1bpp create mode 100644 gfx/frames/8.1bpp create mode 100644 gfx/frames/9.1bpp diff --git a/gfx/frames/1.1bpp b/gfx/frames/1.1bpp new file mode 100644 index 0000000000000000000000000000000000000000..63005ab72177bb6eee0e9409a3f649998c80ce14 GIT binary patch literal 48 tcmZQzVBi-}*VkcSVEE7Q|38pocpz}%MTQ0fs2j-hGXS|KBtAS~000SP3=9AO literal 0 HcmV?d00001 diff --git a/gfx/frames/2.1bpp b/gfx/frames/2.1bpp new file mode 100644 index 0000000000000000000000000000000000000000..4dfe9a9491b55f108ffcc16512a37c2b71f90a9f GIT binary patch literal 48 qcmZQzut|4vO1EKPU^r}Ja~Me3Jack-W}~8_A^`+I3L+1r!QucJb_}Bc literal 0 HcmV?d00001 diff --git a/gfx/frames/3.1bpp b/gfx/frames/3.1bpp new file mode 100644 index 0000000000000000000000000000000000000000..9c488c555cb02b8576d3da701093e001f97400fb GIT binary patch literal 48 scmZQzV31eP*VkcSVEE7Q|38po_`&n$jSdpfSCHpt0P^4P{Q1EE02Kucpa1{> literal 0 HcmV?d00001 diff --git a/gfx/frames/4.1bpp b/gfx/frames/4.1bpp new file mode 100644 index 0000000000000000000000000000000000000000..01449a04ca0adca8be14e3e63646f107dd16e04f GIT binary patch literal 48 xcmZQzV31eP*VkcSVEAvG_8&+w{NQ=>Mn}cO28?xdbo3SMF@(dap78O5!d|&_o{Q3;9 literal 0 HcmV?d00001 diff --git a/gfx/frames/8.1bpp b/gfx/frames/8.1bpp new file mode 100644 index 0000000000000000000000000000000000000000..509bf898ad5affb0f242f6c00eeb3c39f1fcffe7 GIT binary patch literal 48 pcmZQzU|`^vmyrNc4FCUwNCt)vKP)7WfQ&pp0|St6@#6yn0|2yd2vYz6 literal 0 HcmV?d00001 diff --git a/gfx/frames/9.1bpp b/gfx/frames/9.1bpp new file mode 100644 index 0000000000000000000000000000000000000000..9be4865b35f60d9e09bf24d0643507fefb7aca44 GIT binary patch literal 48 scmZQzVBnXxx3^(nVEF%^;XjaK`0(S;9~&fKZ!gc!0ObGq^Wy^p08K~_)&Kwi literal 0 HcmV?d00001 diff --git a/main.asm b/main.asm index 2d431639c..dab96cf3f 100644 --- a/main.asm +++ b/main.asm @@ -63540,7 +63540,19 @@ INCBIN "gfx/misc/font.1bpp", $0, $400 FontBattleExtra: INCBIN "gfx/misc/font_battle_extra.2bpp", $0, $200 -INCBIN "baserom.gbc", $f8800, $f8ba0 - $f8800 +Frames: ; f8800 +INCBIN "gfx/frames/1.1bpp" +INCBIN "gfx/frames/2.1bpp" +INCBIN "gfx/frames/3.1bpp" +INCBIN "gfx/frames/4.1bpp" +INCBIN "gfx/frames/5.1bpp" +INCBIN "gfx/frames/6.1bpp" +INCBIN "gfx/frames/7.1bpp" +INCBIN "gfx/frames/8.1bpp" +INCBIN "gfx/frames/9.1bpp" +; f89b0 + +INCBIN "baserom.gbc", $f89b0, $f8ba0 - $f89b0 TownMapGFX: ; f8ba0 INCBIN "gfx/misc/town_map.lz" @@ -63607,9 +63619,9 @@ Functionfb48a: ; fb48a .asm_fb4cc ld a, [TextBoxFrame] - and $7 + and 7 ld bc, $0030 - ld hl, $4800 + ld hl, Frames call AddNTimes ld d, h ld e, l From 257302dff95d7de4e32eb75109ebe2228b823805 Mon Sep 17 00:00:00 2001 From: yenatch Date: Thu, 1 Aug 2013 16:35:35 -0400 Subject: [PATCH 38/84] player hud stuff --- main.asm | 65 +++++++++++++++++++++++++++++++++----------------------- 1 file changed, 38 insertions(+), 27 deletions(-) diff --git a/main.asm b/main.asm index dab96cf3f..6d6a6adb5 100644 --- a/main.asm +++ b/main.asm @@ -19877,7 +19877,7 @@ PredefPointers: ; 856b dwb Function3d873, BANK(Function3d873) dwb Function3e036, BANK(Function3e036) dwb Function3f4c1, BANK(Function3f4c1) - dwb Function3f390, BANK(Function3f390) + dwb FillInExpBar, BANK(FillInExpBar) dwb Function3f43d, BANK(Function3f43d) dwb Function3f47c, BANK(Function3f47c) dwb Function42487, BANK(Function42487) @@ -34796,7 +34796,7 @@ Function2c075: ; 2c075 ret ; 2c095 -Function2c095: ; 2c095 +DrawPlayerExpBar: ; 2c095 ld hl, .data_2c0a9 ld de, $d004 ld bc, 4 @@ -41117,10 +41117,10 @@ Function3df2c: ; 3df2c push hl push de push bc - call Function3df58 + call DrawPlayerHUD ld hl, PlayerHPPal call SetHPPal - call Function3df9e + call CheckDanger call Function3e043 ld hl, EnemyHPPal call SetHPPal @@ -41136,53 +41136,60 @@ Function3df48: ; 3df48 push hl push de push bc - call Function3df58 - call Function3df98 - call Function3df9e + call DrawPlayerHUD + call UpdatePlayerHPPal + call CheckDanger pop bc pop de pop hl ret ; 3df58 -Function3df58: ; 3df58 +DrawPlayerHUD: ; 3df58 xor a ld [hBGMapMode], a - ld hl, $c535 + +; Clear the area + hlcoord 9, 7 ld bc, $050b call ClearBox - ld a, $b - ld hl, $4095 - rst FarCall - ld hl, $c566 - ld [hl], $73 - call Function3dfbf - ld hl, $c55e - ld b, $1 + + callba DrawPlayerExpBar + + hlcoord 18, 9 + ld [hl], $73 ; vertical bar + call PrintPlayerHUD + +; HP bar + hlcoord 10, 9 + ld b, OTPARTYMON xor a ld [MonType], a - ld a, $26 + ld a, $26 ; PREDEF_DRAW_HP call Predef + +; Exp bar push de ld a, [CurBattleMon] - ld hl, $dce9 + ld hl, PartyMon1Exp + 2 call GetPartyLocation ld d, h ld e, l - ld hl, $c586 + + hlcoord 10, 11 ld a, [TempMonLevel] ld b, a - call Function3f390 + call FillInExpBar pop de ret ; 3df98 -Function3df98: ; 3df98 +UpdatePlayerHPPal: ; 3df98 ld hl, PlayerHPPal jp Function3e12e ; 3df9e -Function3df9e: ; 3df9e +CheckDanger: ; 3df9e ld hl, BattleMonHP ld a, [hli] or [hl] @@ -41207,12 +41214,14 @@ Function3df9e: ; 3df9e ret ; 3dfbf -Function3dfbf: ; 3dfbf +PrintPlayerHUD: ; 3dfbf ld de, BattleMonNick - ld hl, $c536 + hlcoord 10, 7 call Function3e138 call PlaceString + push bc + ld a, [CurBattleMon] ld hl, PartyMon1DVs call GetPartyLocation @@ -41233,8 +41242,10 @@ Function3dfbf: ; 3dfbf ld [CurPartySpecies], a ld [CurSpecies], a call GetBaseData + pop hl dec hl + ld a, $3 ld [MonType], a callab GetGender @@ -44226,7 +44237,7 @@ Function3f136: ; 3f136 call Function3f21b ld c, $40 call Function3f22c - call Function3dfbf + call PrintPlayerHUD ld hl, BattleMonNick ld de, StringBuffer1 ld bc, $000b @@ -44532,7 +44543,7 @@ Function3f360: ; 3f360 ; 3f390 -Function3f390: ; 3f390 +FillInExpBar: ; 3f390 push hl call Function3f39c pop hl From e2a0c68f4cb97e05d2b3ee8bd6b1e74fb0217d26 Mon Sep 17 00:00:00 2001 From: yenatch Date: Thu, 1 Aug 2013 18:30:30 -0400 Subject: [PATCH 39/84] comment more battle ui --- constants.asm | 16 ++ main.asm | 531 ++++++++++++++++++++++++++++++++++++++------------ 2 files changed, 425 insertions(+), 122 deletions(-) diff --git a/constants.asm b/constants.asm index c1a0ec0dc..4e8f4c53e 100644 --- a/constants.asm +++ b/constants.asm @@ -222,6 +222,8 @@ PREDEF_FILLPP EQU $05 PREDEF_ADDPARTYMON EQU $06 PREDEF_FILLSTATS EQU $0C PREDEF_FILLMOVES EQU $1B +PREDEF_DRAW_PLAYER_HP EQU $26 +PREDEF_DRAW_ENEMY_HP EQU $27 PREDEF_GETUNOWNLETTER EQU $2D PREDEF_DECOMPRESS EQU $40 @@ -247,6 +249,20 @@ D_UP EQU %01000000 D_DOWN EQU %10000000 +; screen +HP_BAR_LENGTH EQU 6 +HP_BAR_LENGTH_PX EQU 48 +EXP_BAR_LENGTH EQU 8 +EXP_BAR_LENGTH_PX EQU 64 + +SCREEN_WIDTH EQU 20 +SCREEN_HEIGHT EQU 18 +SCREEN_WIDTH_PX EQU 160 +SCREEN_HEIGHT_PX EQU 144 + +TILE_WIDTH EQU 8 + + ; movement STEP_SLOW EQU 0 STEP_WALK EQU 1 diff --git a/main.asm b/main.asm index 6d6a6adb5..233f24b65 100644 --- a/main.asm +++ b/main.asm @@ -3653,7 +3653,7 @@ Text_09: ; 14d2 swap a set 6, a ld b, a - call Function3198 + call PrintNum ld b, h ld c, l pop hl @@ -9919,16 +9919,14 @@ CopyDataUntil: ; 318c ret ; 0x3198 -Function3198: ; 3198 +PrintNum: ; 3198 ld a, [hROMBank] push af - ld a, $3 + ld a, BANK(_PrintNum) rst Bankswitch - - call $44c7 + call _PrintNum pop af rst Bankswitch - ret ; 31a4 @@ -11216,50 +11214,62 @@ Function3741: ; 3741 ret ; 3750 -Function3750: ; 3750 + +DrawHPBar: ; 3750 +; Draw an HP bar d tiles long at hl +; Fill it up to e pixels + push hl push de push bc + +; Place 'HP:' ld a, $60 ld [hli], a ld a, $61 ld [hli], a + +; Draw a template push hl - ld a, $62 -.asm_375c + ld a, $62 ; empty bar +.template ld [hli], a dec d - jr nz, .asm_375c - ld a, $6b + jr nz, .template + ld a, $6b ; bar end add b ld [hl], a pop hl + +; Safety check # pixels ld a, e and a - jr nz, .asm_376f + jr nz, .fill ld a, c and a - jr z, .asm_3782 - ld e, $1 + jr z, .done + ld e, 1 -.asm_376f +.fill +; Keep drawing tiles until pixel length is reached ld a, e - sub $8 - jr c, .asm_377e + sub TILE_WIDTH + jr c, .lastbar + ld e, a - ld a, $6a + ld a, $6a ; full bar ld [hli], a ld a, e and a - jr z, .asm_3782 - jr .asm_376f + jr z, .done + jr .fill -.asm_377e - ld a, $62 - add e +.lastbar + ld a, $62 ; empty bar + add e ; + e ld [hl], a -.asm_3782 +.done pop bc pop de pop hl @@ -11267,7 +11277,6 @@ Function3750: ; 3750 ; 3786 - Function3786: ; 3786 ld a, $1 ld [$c2c6], a @@ -11397,28 +11406,39 @@ Function381e: ; 381e ret ; 382d -Function382d: ; 382d + +PrintLevel: ; 382d +; Print TempMonLevel at hl + ld a, [TempMonLevel] - ld [hl], $6e + ld [hl], $6e ; ":L" inc hl - ld c, $2 - cp $64 - jr c, .asm_3842 + +; How many digits? + ld c, 2 + cp 100 + jr c, .print + +; 3-digit numbers overwrite the :L. dec hl inc c - jr .asm_3842 + jr .print +; -------- +; Unused: print :L and all 3 digits ld [hl], $6e inc hl - ld c, $3 + ld c, 3 +; -------- -.asm_3842 +.print ld [$d265], a ld de, $d265 - ld b, $41 - jp Function3198 + ld b, %01000001 ; flags + jp PrintNum ; 384d + Function384d: ; 384d ld hl, $d25e ld c, a @@ -11808,7 +11828,7 @@ GetBattleVarPair: ; 39e7 ; get var id ld a, [hl] ld c, a - ld b, $0 + ld b, 0 ; seek ld hl, .vars @@ -17537,7 +17557,7 @@ Function5f58: ; 5f58 pop hl ld de, $d265 ld bc, $0102 - jp Function3198 + jp PrintNum ; 5f6b Function5f6b: ; 5f6b @@ -17551,18 +17571,18 @@ Function5f6b: ; 5f6b pop hl ld de, $d265 ld bc, $0103 - jp Function3198 + jp PrintNum ; 5f84 Function5f84: ; 5f84 ld de, GameTimeHours ld bc, $0203 - call Function3198 + call PrintNum ld [hl], $6d inc hl ld de, GameTimeMinutes ld bc, $8102 - jp Function3198 + jp PrintNum ; 5f99 @@ -19854,12 +19874,13 @@ GetPredefFn: ; 854b PredefPointers: ; 856b ; $4b Predef pointers ; address, bank + dwb $6508, $01 dwb $747a, $01 dwb $4658, $03 - dwb $57c1, $13 + dwb $57c1, $13 ; Flag, BANK(Flag) dwb $4699, $03 - dwb Functionda6d, BANK(Functionda6d) + dwb FillPP, BANK(FillPP) dwb Functiond88c, BANK(Functiond88c) dwb $5a96, $03 dwb $5b3f, $03 @@ -19872,16 +19893,16 @@ PredefPointers: ; 856b dwb $566a, $04 dwb $4eef, $0a dwb $4b3e, $0b ; PrintMoveDescription, BANK(PrintMoveDescription) - dwb Function3df48, BANK(Function3df48) + dwb Function3df48, BANK(Function3df48) ; UpdatePlayerHUD dwb FillBox, BANK(FillBox) dwb Function3d873, BANK(Function3d873) - dwb Function3e036, BANK(Function3e036) + dwb Function3e036, BANK(Function3e036) ; UpdateEnemyHUD dwb Function3f4c1, BANK(Function3f4c1) dwb FillInExpBar, BANK(FillInExpBar) dwb Function3f43d, BANK(Function3f43d) dwb Function3f47c, BANK(Function3f47c) dwb Function42487, BANK(Function42487) - dwb $64e1, $10 + dwb FillMoves, BANK(FillMoves) dwb $61e6, $10 dwb $4f63, $0a dwb $4f24, $0a @@ -19892,18 +19913,18 @@ PredefPointers: ; 856b dwb $4c50, $14 dwb GetGender, BANK(GetGender) dwb StatsScreenInit, BANK(StatsScreenInit) - dwb $4b0a, $14 - dwb $4b0e, $14 + dwb DrawPlayerHP, BANK(DrawPlayerHP) + dwb DrawEnemyHP, BANK(DrawEnemyHP) dwb $4b7b, $14 - dwb LoadTypeName, BANK(LoadTypeName) + dwb GetTypeName, BANK(GetTypeName) dwb PrintMoveType, BANK(PrintMoveType) dwb PrintType, BANK(PrintType) dwb $490d, $14 - dwb $5040, $14 + dwb $5040, $14 ; GetUnownLetter dwb $7cdd, $32 dwb $40d5, $33 dwb $5853, $02 - dwb $464c, $02 + dwb $464c, $02 ; LoadSGBLayout, BANK(LoadSGBLayout) dwb $5d11, $24 dwb $4a88, $02 dwb $420f, $23 @@ -20727,7 +20748,7 @@ SpecialTrainerHouse: ; 0xc4b9 ld [ScriptVar], a jp CloseSRAM -Functionc4c7: ; c4c7 +_PrintNum: ; c4c7 push bc bit 5, b jr z, .asm_c4d9 @@ -22506,7 +22527,7 @@ Functiond88c: ; d88c push de inc hl inc hl - call Functionda6d + call FillPP pop de pop hl inc de @@ -22629,7 +22650,7 @@ Functiond88c: ; d88c ret ; da6d -Functionda6d: ; da6d +FillPP: ; da6d push bc ld b, $4 .asm_da70 @@ -26594,7 +26615,7 @@ Function13172: ; 13172 ld hl, $484a rst FarCall pop hl - call Function382d + call PrintLevel ld hl, PlayerHPPal call SetHPPal ld b, $e @@ -26681,7 +26702,7 @@ Function13256: ; 13256 ld [$d265], a ld de, $d265 ld bc, $0103 - call Function3198 + call PrintNum jr .asm_132ad .asm_132a7 @@ -30265,7 +30286,7 @@ Function15be5: ; 15be5 ld hl, StringBuffer1 ld de, StringBuffer2 ld bc, $8206 - call Function3198 + call PrintNum pop hl ld de, StringBuffer1 ld c, $3 @@ -32592,7 +32613,7 @@ Function24ac3: ; 0x24ac3 inc hl ld de, $cf75 ld bc, $0102 - call Function3198 + call PrintNum .done ret @@ -32618,7 +32639,7 @@ Function24ae8: ; 24ae8 add hl, de ld de, Money ld bc, $2306 - call Function3198 + call PrintNum ret ; 24b15 @@ -32638,7 +32659,7 @@ Function24b25: ; 24b25 ld de, $d855 ld bc, $0204 ld hl, $c4c1 - call Function3198 + call PrintNum ret ; 24b4e @@ -32653,14 +32674,14 @@ Function24b4e: ; 24b4e ld hl, $c4c0 ld de, Money ld bc, $2306 - call Function3198 + call PrintNum ld hl, $c4e2 ld de, CoinString call PlaceString ld hl, $c4eb ld de, $d855 ld bc, $0204 - call Function3198 + call PrintNum ret ; 24b83 @@ -32684,7 +32705,7 @@ Function24b8f: ; 24b8f ld hl, $c4b5 ld de, $dc7a ld bc, $0203 - call Function3198 + call PrintNum ld hl, $c4b8 ld de, String24bcf call PlaceString @@ -32694,7 +32715,7 @@ Function24b8f: ; 24b8f ld hl, $c4e1 ld de, $dc79 ld bc, $0102 - call Function3198 + call PrintNum pop af ld [Options], a ret @@ -32726,7 +32747,7 @@ Function24be7: ; 24be7 ld hl, $c50c ld de, $dc79 ld bc, $4102 - call Function3198 + call PrintNum ld hl, $c4b5 ld de, String24c4b call PlaceString @@ -33264,7 +33285,7 @@ Function24f7c: ; 24f7c ld hl, $c5b5 ld de, $dc79 ld bc, $8102 - call Function3198 + call PrintNum ret ; 24f89 @@ -33296,7 +33317,7 @@ Function24fb2: ; 24fb2 ld hl, $c5ed ld de, $dc79 ld bc, $8102 - call Function3198 + call PrintNum ret ; 24fbf @@ -33444,7 +33465,7 @@ Function25072: ; 25072 inc hl ld de, $d10c ld bc, $8102 - call Function3198 + call PrintNum ld a, [$cf86] ld e, a ld a, [$cf87] @@ -33516,7 +33537,7 @@ Function250d1: ; 250d1 inc hl ld de, $ffc3 ld bc, $2306 - call Function3198 + call PrintNum call WaitBGMap ret ; 250ed @@ -33603,7 +33624,7 @@ ClearOakRatingBuffer: ; 0x2665a call ByteFill pop hl ld bc, $4103 - call Function3198 + call PrintNum ret ; 0x2666b @@ -36493,7 +36514,7 @@ Function3c000: ; 3c000 call Function3dbde call Function3dc18 call Function3db5f - call Function3edd1 + call EmptyBattleTextBox call Function309d call SetPlayerTurn call Function3dc23 @@ -38590,7 +38611,7 @@ Function3ce01: ; 3ce01 ld a, [IsInBattle] dec a call z, Function3d0ea - call Function3edd1 + call EmptyBattleTextBox call Function309d ld a, [$d0ee] and $c0 @@ -38844,7 +38865,7 @@ Function3cfa4: ; 3cfa4 call Function3ebd8 ld c, $28 call DelayFrames - call Function3edd1 + call EmptyBattleTextBox ld c, $3 ld a, $47 ld hl, $4000 @@ -39189,7 +39210,7 @@ Function3d1aa: ; 3d1aa ; 3d1f8 Function3d1f8: ; 3d1f8 - call Function3edd1 + call EmptyBattleTextBox call Function309d ld a, [IsInBattle] and a @@ -39215,7 +39236,7 @@ Function3d1f8: ; 3d1f8 ; 3d227 Function3d227: ; 3d227 - call Function3edd1 + call EmptyBattleTextBox call Function1d6e call Function3d2f7 call Function3d362 @@ -39268,7 +39289,7 @@ Function3d227: ; 3d227 call Function3dbde call Function3dc18 call Function3db5f - call Function3edd1 + call EmptyBattleTextBox call Function309d call SetPlayerTurn call Function3dc23 @@ -39290,7 +39311,7 @@ Function3d2b3: ; 3d2b3 call Function3dbde call Function3dc18 call Function3db5f - call Function3edd1 + call EmptyBattleTextBox call Function309d call SetPlayerTurn jp Function3dc23 @@ -39454,7 +39475,7 @@ LostBattle: ; 3d38e ld c, 40 call DelayFrames - call Function3edd1 + call EmptyBattleTextBox ld c, 2 ld a, $47 ld hl, $4000 @@ -39728,7 +39749,7 @@ Function3d557: ; 3d557 ld hl, $c4b2 ld a, $8 call Function3d490 - call Function3edd1 + call EmptyBattleTextBox jp Function1d6e ; 3d57a @@ -40544,7 +40565,7 @@ Function3db32: ; 3db32 call Function3dbde call Function3dc18 call Function3db5f - call Function3edd1 + call EmptyBattleTextBox call Function309d ld hl, EnemyMonHPHi ld a, [hli] @@ -40892,7 +40913,7 @@ Function3ddc8: ; 3ddc8 push hl push de push bc - call Function3edd1 + call EmptyBattleTextBox ld a, $69 ld [FXAnimIDLo], a call Function3c8e4 @@ -41165,7 +41186,7 @@ DrawPlayerHUD: ; 3df58 ld b, OTPARTYMON xor a ld [MonType], a - ld a, $26 ; PREDEF_DRAW_HP + ld a, PREDEF_DRAW_PLAYER_HP call Predef ; Exp bar @@ -41275,7 +41296,7 @@ PrintPlayerHUD: ; 3dfbf .asm_3e02d ld a, [BattleMonLevel] ld [TempMonLevel], a - jp Function382d + jp PrintLevel ; 3e036 Function3e036: ; 3e036 @@ -41352,7 +41373,7 @@ Function3e043: ; 3e043 .asm_3e0b5 ld a, [EnemyMonLevel] ld [TempMonLevel], a - call Function382d + call PrintLevel .asm_3e0be ld hl, EnemyMonHPHi @@ -41415,7 +41436,7 @@ Function3e043: ; 3e043 ld [$d10a], a ld hl, $c4ca ld b, $0 - call Function3750 + call DrawHPBar ret ; 3e127 @@ -41447,9 +41468,9 @@ Function3e139: ; 3e139 jr z, .asm_3e156 cp $3 jr z, .asm_3e156 - call Function3edd1 + call EmptyBattleTextBox call UpdateBattleHuds - call Function3edd1 + call EmptyBattleTextBox call Function309d .asm_3e156 @@ -41849,7 +41870,7 @@ Function3e40b: ; 3e40b call Function3dbde call Function3dc18 call Function3db5f - call Function3edd1 + call EmptyBattleTextBox call Function309d call SetPlayerTurn call Function3dc23 @@ -41872,7 +41893,7 @@ Function3e459: ; 3e459 ld [$d265], a call Function3ecab call Function3db5f - call Function3edd1 + call EmptyBattleTextBox call Function309d call SetPlayerTurn jp Function3dc23 @@ -42303,7 +42324,7 @@ Function3e75f: ; 3e75f push hl ld de, StringBuffer1 ld bc, $0102 - call Function3198 + call PrintNum pop hl inc hl inc hl @@ -42311,7 +42332,7 @@ Function3e75f: ; 3e75f inc hl ld de, $d265 ld bc, $0102 - call Function3198 + call PrintNum ret ; 3e786 @@ -42370,7 +42391,7 @@ Function3e7c1: ; 3e7c1 ld a, [InLinkBattle] and a jr z, .asm_3e817 - call Function3edd1 + call EmptyBattleTextBox call Function309d ld a, [$d0ec] and a @@ -42744,7 +42765,7 @@ LoadEnemyMon: ; 3e8eb ; Get letter based on DVs ld hl, EnemyMonDVs - ld a, PREDEF_GETUNOWNLETTER + ld a, PREDEF_GET_UNOWN_LETTER call Predef ; Can't use any letters that haven't been unlocked ; If combined with forced shiny battletype, causes an infinite loop @@ -43567,7 +43588,7 @@ Function3edad: ; 3edad ; 3edd1 -Function3edd1: ; 3edd1 +EmptyBattleTextBox: ; 3edd1 ld hl, .empty jp BattleTextBox .empty @@ -43979,7 +44000,7 @@ Function3ee3b: ; 3ee3b ld hl, Function3df48 ld a, $f rst FarCall - call Function3edd1 + call EmptyBattleTextBox call Function309d ld a, $1 ld [hBGMapMode], a @@ -44797,7 +44818,7 @@ Function3f4dd: ; 3f4dd set 6, [hl] xor a ld [hBGMapMode], a - call Function3edd1 + call EmptyBattleTextBox ld hl, $c535 ld bc, $050b call ClearBox @@ -45273,20 +45294,20 @@ Function3f85f: ; 3f85f push hl ld de, $d00d ld bc, $0204 - call Function3198 + call PrintNum pop hl ld de, $0005 add hl, de push hl ld de, $d00f ld bc, $0204 - call Function3198 + call PrintNum pop hl ld de, $0005 add hl, de ld de, $d011 ld bc, $0204 - call Function3198 + call PrintNum jr .asm_3f8cf .asm_3f8c9 @@ -45326,21 +45347,21 @@ Function3f85f: ; 3f85f jr c, .asm_3f92a ld bc, $0204 - call Function3198 + call PrintNum ld hl, $c4fb ld de, $b262 call .asm_3f92b ld bc, $0204 - call Function3198 + call PrintNum ld hl, $c500 ld de, $b264 call .asm_3f92b ld bc, $0204 - call Function3198 + call PrintNum .asm_3f92a ret @@ -46802,7 +46823,128 @@ Function42487: ; 42487 ret ; 424e1 -INCBIN "baserom.gbc", $424e1, $42577 - $424e1 + +FillMoves: ; 424e1 +; Fill in moves at de for CurPartySpecies at CurPartyLevle + + push hl + push de + push bc + ld hl, EvosAttacksPointers + ld b, 0 + ld a, [CurPartySpecies] + dec a + add a + rl b + ld c, a + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a +.GoToAttacks + ld a, [hli] + and a + jr nz, .GoToAttacks + jr .GetLevel + +.NextMove + pop de +.GetMove + inc hl +.GetLevel + ld a, [hli] + and a + jp z, .done + ld b, a + ld a, [CurPartyLevel] + cp b + jp c, .done + ld a, [Buffer1] + and a + jr z, .CheckMove + ld a, [DefaultFlypoint] + cp b + jr nc, .GetMove + +.CheckMove + push de + ld c, NUM_MOVES +.CheckRepeat + ld a, [de] + inc de + cp [hl] + jr z, .NextMove + dec c + jr nz, .CheckRepeat + pop de + push de + ld c, NUM_MOVES +.CheckSlot + ld a, [de] + and a + jr z, .LearnMove + inc de + dec c + jr nz, .CheckSlot + pop de + push de + push hl + ld h, d + ld l, e + call ShiftMoves + ld a, [Buffer1] + and a + jr z, .ShiftedMove + push de + ld bc, PartyMon1PP - PartyMon1Move4 + add hl, bc + ld d, h + ld e, l + call ShiftMoves + pop de + +.ShiftedMove + pop hl + +.LearnMove + ld a, [hl] + ld [de], a + ld a, [Buffer1] + and a + jr z, .NextMove + push hl + ld a, [hl] + ld hl, PartyMon1PP - PartyMon1Moves + add hl, de + push hl + dec a + ld hl, Moves + MOVE_PP + ld bc, Move2 - Move1 + call AddNTimes + ld a, BANK(Moves) + call GetFarByte + pop hl + ld [hl], a + pop hl + jr .NextMove + +.done + pop bc + pop de + pop hl + ret +; 4256e + +ShiftMoves: ; 4256e + ld c, $3 +.asm_42570 + inc de + ld a, [de] + ld [hli], a + dec c + jr nz, .asm_42570 + ret +; 42577 Function42577: ; 42577 @@ -48247,7 +48389,7 @@ Function49e3d: ; 49e3d inc hl ld de, hMinutes ld bc, $8102 - call Function3198 + call PrintNum ret ; 49e70 @@ -51070,7 +51212,7 @@ Function500cf: ; 500cf pop hl ld d, $6 ld b, $0 - call Function3750 + call DrawHPBar ld hl, $cd9b ld a, [$cda9] ld c, a @@ -51145,14 +51287,14 @@ Function50138: ; 50138 pop hl push de ld bc, $0203 - call Function3198 + call PrintNum pop de ld a, $f3 ld [hli], a inc de inc de ld bc, $0203 - call Function3198 + call PrintNum .asm_5016b pop hl @@ -51194,7 +51336,7 @@ Function50176: ; 50176 .asm_501a1 ld bc, $4103 - call Function3198 + call PrintNum .asm_501a7 pop hl @@ -51962,7 +52104,7 @@ PrintType: ; 50953 ; 50964 -LoadTypeName: ; 50964 +GetTypeName: ; 50964 ; Copy the name of type $d265 to StringBuffer1. ld a, [$d265] ld hl, TypeNames @@ -52050,7 +52192,96 @@ Dark: ; 50a28 -INCBIN "baserom.gbc", $50a28, $50bdd - $50a28 +INCBIN "baserom.gbc", $50a28, $50b0a - $50a28 + + +DrawPlayerHP: ; 50b0a + ld a, $1 + jr DrawHP + +DrawEnemyHP: ; 50b0e + ld a, $2 + +DrawHP: ; 50b10 + ld [$d10a], a + push hl + push bc + ld a, [MonType] + cp BOXMON + jr z, .asm_50b30 + + ld a, [TempMonCurHP] + ld b, a + ld a, [TempMonCurHP + 1] + ld c, a + +; Any HP? + or b + jr nz, .asm_50b30 + + xor a + ld c, a + ld e, a + ld a, 6 + ld d, a + jp .asm_50b4a + +.asm_50b30 + ld a, [TempMonMaxHP] + ld d, a + ld a, [TempMonMaxHP + 1] + ld e, a + ld a, [MonType] + cp BOXMON + jr nz, .asm_50b41 + + ld b, d + ld c, e + +.asm_50b41 + ld a, $4 + call Predef + ld a, 6 + ld d, a + ld c, a + +.asm_50b4a + ld a, c + pop bc + ld c, a + pop hl + push de + push hl + push hl + call DrawHPBar + pop hl + +; Print HP + ld bc, $0015 ; move (1,1) + add hl, bc + ld de, TempMonCurHP + ld a, [MonType] + cp BOXMON + jr nz, .asm_50b66 + ld de, TempMonMaxHP +.asm_50b66 + ld bc, $0203 + call PrintNum + + ld a, "/" + ld [hli], a + +; Print max HP + ld de, TempMonMaxHP + ld bc, $0203 + call PrintNum + pop hl + pop de + ret +; 50b7b + + +INCBIN "baserom.gbc", $50b7b, $50bdd - $50b7b GetGender: ; 50bdd @@ -52392,7 +52623,63 @@ Function50eed: ; 50eed jp Multiply ; 50efa -INCBIN "baserom.gbc", $50efa, $511c5 - $50efa + +INCBIN "baserom.gbc", $50efa, $51040 - $50efa + + +GetUnownLetter: ; 51040 +; Return Unown letter in UnownLetter based on DVs at hl + +; Take the middle 2 bits of each DV and place them in order: +; AtkDefDV | SpdSpcDV +; .ww..xx. .yy..zz. + + ; atk + ld a, [hl] + and %01100000 + sla a + ld b, a + ; def + ld a, [hli] + and %00000110 + swap a + srl a + or b + ld b, a + + ; spd + ld a, [hl] + and %01100000 + swap a + sla a + or b + ld b, a + ; spc + ld a, [hl] + and %00000110 + srl a + or b + +; Divide by 10 to get 0-25 + ld [hDividend + 3], a + xor a + ld [hDividend], a + ld [hDividend + 1], a + ld [hDividend + 2], a + ld a, 10 + ld [hDivisor], a + ld b, $4 + call Divide + +; Increment to get 1-26 + ld a, [hQuotient + 2] + inc a + ld [UnownLetter], a + ret +; 51077 + + +INCBIN "baserom.gbc", $51077, $511c5 - $51077 Function511c5: ; 511c5 @@ -52400,7 +52687,7 @@ Function511c5: ; 511c5 push bc sub $12 ld c, a - ld b, $0 + ld b, 0 ld hl, $51d4 add hl, bc ld a, [hl] @@ -54587,7 +54874,7 @@ Function86748: ; 86748 ld hl, $c5a7 ld de, $d265 ld bc, $8103 - call Function3198 + call PrintNum call GetBasePokemonName ld hl, $c5ab call PlaceString @@ -54609,7 +54896,7 @@ Function86748: ; 86748 ld de, StringBuffer2 call PlaceString ld hl, $c5e1 - call Function382d + call PrintLevel .asm_867f8 ld hl, $c5e7 @@ -54621,7 +54908,7 @@ Function86748: ; 86748 ld hl, $c5ea ld de, TempMonID ld bc, $8205 - call Function3198 + call PrintNum ret ; 86810 @@ -54698,19 +54985,19 @@ Function86810: ; 86810 ld hl, $c51c ld de, PlayerID ld bc, $8205 - call Function3198 + call PrintNum ld hl, $c541 ld de, $68ed call PlaceString ld hl, $c557 ld de, GameTimeHours ld bc, $0203 - call Function3198 + call PrintNum ld [hl], $63 inc hl ld de, GameTimeMinutes ld bc, $8102 - call Function3198 + call PrintNum call WaitBGMap callba Function26601 ret @@ -61995,7 +62282,7 @@ Functioncc000: ; cc000 ld l, c ld a, [$dfbb] ld [TempMonLevel], a - call Function382d + call PrintLevel ld de, EnemyMonNick ld hl, $c541 call PlaceString @@ -62003,14 +62290,14 @@ Functioncc000: ; cc000 ld l, c ld a, [EnemyMonLevel] ld [TempMonLevel], a - call Function382d + call PrintLevel ld hl, $c4fb ld de, $dfc0 ld bc, $0203 - call Function3198 + call PrintNum ld hl, $c573 ld de, EnemyMonMaxHPHi - call Function3198 + call PrintNum ld hl, $40c2 call PrintText pop af @@ -66063,7 +66350,7 @@ Function100902: ; 100902 ld hl, $c584 ld bc, $0102 ld de, StringBuffer2 - call Function3198 + call PrintNum ld de, SFX_TWO_PC_BEEPS call StartSFX callba Function104061 From 0e50b4c79833bbe07058a08fa91e59f4307e83a3 Mon Sep 17 00:00:00 2001 From: yenatch Date: Fri, 2 Aug 2013 05:46:14 -0400 Subject: [PATCH 40/84] more bank 1 incbins --- main.asm | 478 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 434 insertions(+), 44 deletions(-) diff --git a/main.asm b/main.asm index 233f24b65..15f8fe373 100644 --- a/main.asm +++ b/main.asm @@ -18398,7 +18398,244 @@ Function64db: ; 64db ret ; 6508 -INCBIN "baserom.gbc", $6508, $669f - $6508 +Function6508: ; 6508 + call Function309d + ld a, [CurPartyMon] + ld hl, PartyMon1Nickname + call GetNick + ld hl, StringBuffer1 + ld de, $d050 + ld bc, $000b + call CopyBytes + ld hl, PartyMon1Move1 + ld bc, $0030 + ld a, [CurPartyMon] + call AddNTimes + ld d, h + ld e, l + ld b, $4 +.asm_6530 + ld a, [hl] + and a + jr z, .asm_6564 + inc hl + dec b + jr nz, .asm_6530 + push de + call $65d3 + pop de + jp c, $65b5 + push hl + push de + ld [$d265], a + ld b, a + ld a, [IsInBattle] + and a + jr z, .asm_6559 + ld a, [DisabledMove] + cp b + jr nz, .asm_6559 + xor a + ld [DisabledMove], a + ld [PlayerDisableCount], a + +.asm_6559 + call GetMoveName + ld hl, UnknownText_0x6684 + call PrintText + pop de + pop hl + +.asm_6564 + ld a, [$d262] + ld [hl], a + ld bc, $0015 + add hl, bc + push hl + push de + dec a + ld hl, $5b00 + ld bc, $0007 + call AddNTimes + ld a, $10 + call GetFarByte + pop de + pop hl + ld [hl], a + ld a, [IsInBattle] + and a + jp z, $65ca + ld a, [CurPartyMon] + ld b, a + ld a, [CurBattleMon] + cp b + jp nz, $65ca + ld a, [PlayerSubStatus5] + bit 3, a + jp nz, $65ca + ld h, d + ld l, e + ld de, BattleMonMove1 + ld bc, $0004 + call CopyBytes + ld bc, $0011 + add hl, bc + ld de, BattleMonPPMove1 + ld bc, $0004 + call CopyBytes + jp $65ca +; 65b5 + +Function65b5: ; 65b5 + ld hl, $6675 + call PrintText + call Function1dcf + jp c, $6520 + ld hl, $667a + call PrintText + ld b, $0 + ret +; 65ca + +Function65ca: ; 65ca + ld hl, $666b + call PrintText + ld b, $1 + ret +; 65d3 + +Function65d3: ; 65d3 + push hl + ld hl, UnknownText_0x667f + call PrintText + call Function1dcf + pop hl + ret c + ld bc, $fffc + add hl, bc + push hl + ld de, $d25e + ld bc, $0004 + call CopyBytes + pop hl +.asm_65ee + push hl + ld hl, UnknownText_0x6670 + call PrintText + ld hl, $c4cd + ld b, $8 + ld c, $d + call TextBox + ld hl, $c4f7 + ld a, $28 + ld [Buffer1], a + ld a, $20 + call Predef + ld a, $4 + ld [$cfa1], a + ld a, $6 + ld [$cfa2], a + ld a, [$d0eb] + inc a + ld [$cfa3], a + ld a, $1 + ld [$cfa4], a + ld [$cfa9], a + ld [$cfaa], a + ld a, $3 + ld [$cfa8], a + ld a, $20 + ld [$cfa5], a + xor a + ld [$cfa6], a + ld a, $20 + ld [$cfa7], a + call Function1bc9 + push af + call Function30b4 + pop af + pop hl + bit 1, a + jr nz, .asm_6669 + push hl + ld a, [$cfa9] + dec a + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + push af + push bc + call IsHMMove + pop bc + pop de + ld a, d + jr c, .asm_6660 + pop hl + add hl, bc + and a + ret + +.asm_6660 + ld hl, UnknownText_0x669a + call PrintText + pop hl + jr .asm_65ee + +.asm_6669 + scf + ret +; 666b + +UnknownText_0x666b: ; 666b + text_jump UnknownText_0x1c5660, BANK(UnknownText_0x1c5660) + db "@" +; 6670 + +UnknownText_0x6670: ; 6670 + text_jump UnknownText_0x1c5678, BANK(UnknownText_0x1c5678) + db "@" +; 6675 + +UnknownText_0x6675: ; 6675 + text_jump UnknownText_0x1c5699, BANK(UnknownText_0x1c5699) + db "@" +; 667a + +UnknownText_0x667a: ; 667a + text_jump UnknownText_0x1c56af, BANK(UnknownText_0x1c56af) + db "@" +; 667f + +UnknownText_0x667f: ; 667f + text_jump UnknownText_0x1c56c9, BANK(UnknownText_0x1c56c9) + db "@" +; 6684 + +UnknownText_0x6684: ; 6684 + text_jump UnknownText_0x1c5740, BANK(UnknownText_0x1c5740) + start_asm +; 6689 + +; 6689 + push de + ld de, SFX_SWITCH_POKEMON + call StartSFX + pop de + ld hl, UnknownText_0x6695 + ret +; 6695 + +UnknownText_0x6695: ; 6695 + text_jump UnknownText_0x1c574e, BANK(UnknownText_0x1c574e) + db "@" +; 669a + +UnknownText_0x669a: ; 669a + text_jump UnknownText_0x1c5772, BANK(UnknownText_0x1c5772) + db "@" +; 669f + CheckNickErrors: ; 669f ; error-check monster nick before use @@ -18682,8 +18919,42 @@ INCLUDE "items/item_attributes.asm" ; 6ec1 -INCBIN "baserom.gbc", $6ec1, $6eef - $6ec1 +Function6ec1: ; 6ec1 + ld hl, $0006 + add hl, bc + bit 5, [hl] + jr z, .asm_6ed9 + ld hl, $0004 + add hl, bc + bit 4, [hl] + push hl + push bc + call $6f2c + pop bc + pop hl + ret c + jr .asm_6ee9 + +.asm_6ed9 + ld hl, $0004 + add hl, bc + bit 4, [hl] + jr nz, .asm_6ee9 + push hl + push bc + call Function6f07 + pop bc + pop hl + ret c + +.asm_6ee9 + bit 6, [hl] + jr nz, Function6ef5 + push hl + push bc + ; fallthrough +; 6eef DrawGraphic: ; 6eef ; input: @@ -18696,6 +18967,10 @@ DrawGraphic: ; 6eef pop bc pop hl ret c + ; fallthrough +; 6ef5 + +Function6ef5: ; 6ef5 bit 5, [hl] jr nz, .asm_6f05 push hl @@ -18731,10 +19006,12 @@ Function6f07: ; 6f07 ld d, a call GetTileType and a - jr z, .asm_6f3e + jr z, Function6f3e scf ret +; 6f2c +Function6f2c: ; 6f2c call Function6f5f ret c ld hl, $000e @@ -18742,11 +19019,12 @@ Function6f07: ; 6f07 ld a, [hl] call GetTileType cp $1 - jr z, .asm_6f3e + jr z, Function6f3e scf ret +; 6f3e -.asm_6f3e +Function6f3e: ; 6f3e ld hl, $000e add hl, bc ld a, [hl] @@ -18756,10 +19034,10 @@ Function6f07: ; 6f07 ld hl, $0007 add hl, bc ld a, [hl] - and $3 + and 3 ld e, a - ld d, $0 - ld hl, $6f5b + ld d, 0 + ld hl, .data_6f5b add hl, de pop af and [hl] @@ -18768,8 +19046,9 @@ Function6f07: ; 6f07 ret ; 6f5b -INCBIN "baserom.gbc", $6f5b, $6f5f - $6f5b - +.data_6f5b + db 1, 2, 8, 4 +; 6f5f Function6f5f: ; 6f5f ld hl, $000f @@ -18780,10 +19059,10 @@ Function6f5f: ; 6f5f push af ld hl, $0007 add hl, bc - and $3 + and 3 ld e, a - ld d, $0 - ld hl, $6f7b + ld d, 0 + ld hl, .data_6f7b add hl, de pop af and [hl] @@ -18792,8 +19071,9 @@ Function6f5f: ; 6f5f ret ; 6f7b -INCBIN "baserom.gbc", $6f7b, $6f7f - $6f7b - +.data_6f7b + db 2, 1, 4, 8 +; 6f7f Function6f7f: ; 6f7f ld d, a @@ -18807,24 +19087,26 @@ Function6f7f: ; 6f7f .asm_6f8c ld a, d - and $7 + and 7 ld e, a - ld d, $0 - ld hl, $6f99 + ld d, 0 + ld hl, .data_6f99 add hl, de ld a, [hl] scf ret ; 6f99 -INCBIN "baserom.gbc", $6f99, $6fa1 - $6f99 - +.data_6f99 + db 8, 4, 1, 2 + db 10, 6, 9, 5 +; 6fa1 Function6fa1: ; 6fa1 ld hl, $0007 add hl, bc ld a, [hl] - and $3 + and 3 jr z, .asm_6fb2 dec a jr z, .asm_6fb7 @@ -18899,7 +19181,7 @@ CheckFacingObject: ; 6fd9 ld bc, $d4d6 ld a, 0 ld [hConnectionStripLength], a - call $7041 + call Function7041 ret nc ld hl, $0007 add hl, bc @@ -18922,14 +19204,17 @@ Function7009: ; 7009 ld hl, $0011 add hl, bc ld e, [hl] - jr .asm_7041 + jr Function7041 +; 7015 +Function7015: ; 7015 ld a, [hConnectionStripLength] call Function1ae5 - call $7021 - call $7041 + call Function7021 + call Function7041 ret +Function7021: ; 7021 ld hl, $0010 add hl, bc ld d, [hl] @@ -18957,8 +19242,9 @@ Function7009: ; 7009 .asm_703f dec d ret +; 7041 -.asm_7041 +Function7041: ; 7041 ld bc, $d4d6 xor a .asm_7045 @@ -19121,7 +19407,71 @@ Function70ed: ; 70ed ret ; 7113 -INCBIN "baserom.gbc", $7113, $7171 - $7113 +Function7113: ; 7113 + ld a, [MapX] + ld d, a + ld a, [MapY] + ld e, a + ld bc, $d4d6 + xor a +.asm_711f + ld [hConnectedMapWidth], a + call Function1af1 + jr z, .asm_7160 + ld hl, $0003 + add hl, bc + ld a, [hl] + cp $15 + jr nz, .asm_7136 + call Function7171 + jr c, .asm_716f + jr .asm_7160 + +.asm_7136 + ld hl, $0011 + add hl, bc + ld a, [hl] + cp e + jr nz, .asm_714e + ld hl, $0010 + add hl, bc + ld a, [hl] + cp d + jr nz, .asm_714e + ld a, [hConnectedMapWidth] + cp $0 + jr z, .asm_7160 + jr .asm_716f + +.asm_714e + ld hl, $0013 + add hl, bc + ld a, [hl] + cp e + jr nz, .asm_7160 + ld hl, $0012 + add hl, bc + ld a, [hl] + cp d + jr nz, .asm_7160 + jr .asm_716f + +.asm_7160 + ld hl, $0028 + add hl, bc + ld b, h + ld c, l + ld a, [hConnectedMapWidth] + inc a + cp $d + jr nz, .asm_711f + xor a + ret + +.asm_716f + scf + ret +; 7171 Function7171: ; 7171 @@ -19147,7 +19497,39 @@ Function7171: ; 7171 ret ; 718d -INCBIN "baserom.gbc", $718d, $71c2 - $718d +Function718d: ; 718d + ld hl, PartyMon1Happiness + ld bc, $0030 + ld de, PartySpecies +.asm_7196 + ld a, [de] + cp $fd + jr nz, .asm_719f + inc de + add hl, bc + jr .asm_7196 + +.asm_719f + ld [$d265], a + ld a, [hl] + ld [ScriptVar], a + call GetPokemonName + jp $746e +; 71ac + +Function71ac: ; 71ac + ld a, [PartySpecies] + ld [$d265], a + cp $fd + ld a, $1 + jr z, .asm_71b9 + xor a + +.asm_71b9 + ld [ScriptVar], a + call GetPokemonName + jp $746e +; 71c2 Function71c2: ; 71c2 @@ -19297,7 +19679,16 @@ SpecialGiveShuckle: ; 7305 ; 737e -INCBIN "baserom.gbc", $737e, $747b - $737e +INCBIN "baserom.gbc", $737e, $746e - $737e + +Function746e: ; 746e + ld hl, StringBuffer1 + ld de, StringBuffer3 + ld bc, $000b + jp CopyBytes +; 747a + +INCBIN "baserom.gbc", $747a, $747b - $747a SECTION "bank2",DATA,BANK[$2] @@ -19875,7 +20266,7 @@ PredefPointers: ; 856b ; $4b Predef pointers ; address, bank - dwb $6508, $01 + dwb Function6508, BANK(Function6508) dwb $747a, $01 dwb $4658, $03 dwb $57c1, $13 ; Flag, BANK(Flag) @@ -22920,12 +23311,8 @@ Functiondf47: ; df47 Functiondf8c: ; df8c ld a, [CurPartySpecies] push af - ld hl, $6581 - ld a, $10 - rst FarCall - ld hl, $6581 - ld a, $10 - rst FarCall + callab GetPreEvolution + callab GetPreEvolution ld a, [CurPartySpecies] dec a push af @@ -46956,11 +47343,16 @@ Function42577: ; 42577 ret ; 42581 -Function42581: ; 42581 - ld c, $0 +GetPreEvolution: ; 42581 +; Find the first mon to evolve into CurPartySpecies. + +; Return carry and the new species in CurPartySpecies +; if a pre-evolution is found. + + ld c, BULBASAUR - 1 .asm_42583 ld hl, EvosAttacksPointers - ld b, $0 + ld b, 0 add hl, bc add hl, bc ld a, [hli] @@ -46970,7 +47362,7 @@ Function42581: ; 42581 ld a, [hli] and a jr z, .asm_425a2 - cp $5 + cp EVOLVE_STAT jr nz, .asm_42596 inc hl @@ -46987,7 +47379,7 @@ Function42581: ; 42581 .asm_425a2 inc c ld a, c - cp $fb + cp CELEBI jr c, .asm_42583 and a ret @@ -53636,9 +54028,7 @@ Function80341: ; 80341 add e ld e, a ld bc, $d4d6 - ld a, $1 - ld hl, $7041 - rst FarCall + callba Function7041 jr nc, .asm_80369 call Function8036f jr c, .asm_8036c From b07ab26c35ddc3a6a1bdc0f6fb7ae3771e480591 Mon Sep 17 00:00:00 2001 From: yenatch Date: Fri, 2 Aug 2013 14:21:16 -0400 Subject: [PATCH 41/84] more predef constants --- constants.asm | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/constants.asm b/constants.asm index 4e8f4c53e..cfa3317ba 100644 --- a/constants.asm +++ b/constants.asm @@ -221,10 +221,22 @@ PREDEF_FLAG EQU $03 PREDEF_FILLPP EQU $05 PREDEF_ADDPARTYMON EQU $06 PREDEF_FILLSTATS EQU $0C +PREDEF_PRINT_MOVE_DESCRIPTION EQU $11 +PREDEF_UPDATE_PLAYER_HUD EQU $12 +PREDEF_FILL_BOX EQU $13 +PREDEF_UPDATE_ENEMY_HUD EQU $15 +PREDEF_FILL_IN_EXP_BAR EQU $17 PREDEF_FILLMOVES EQU $1B +PREDEF_GET_GENDER EQU $24 +PREDEF_STATS_SCREEN EQU $25 PREDEF_DRAW_PLAYER_HP EQU $26 PREDEF_DRAW_ENEMY_HP EQU $27 -PREDEF_GETUNOWNLETTER EQU $2D +PREDEF_GET_TYPE_NAME EQU $29 +PREDEF_PRINT_MOVE_TYPE EQU $2A +PREDEF_PRINT_TYPE EQU $2B +PREDEF_GET_UNOWN_LETTER EQU $2D +PREDEF_LOAD_SGB_LAYOUT EQU $31 +PREDEF_PARTYMON_ITEM_NAME EQU $3B PREDEF_DECOMPRESS EQU $40 From 09dfa9f09e8aa854cea3532143858b81c7f33bb5 Mon Sep 17 00:00:00 2001 From: yenatch Date: Fri, 2 Aug 2013 14:40:47 -0400 Subject: [PATCH 42/84] incbin unown font --- main.asm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/main.asm b/main.asm index 15f8fe373..ac670e103 100644 --- a/main.asm +++ b/main.asm @@ -71394,7 +71394,11 @@ SECTION "bank76",DATA,BANK[$76] SECTION "bank77",DATA,BANK[$77] -INCBIN "baserom.gbc", $1dc000, $1dc5a1 - $1dc000 +UnownFont: ; 1dc000 +INCBIN "gfx/misc/unown_font.2bpp" +; 1dc1b0 + +INCBIN "baserom.gbc", $1dc1b0, $1dc5a1 - $1dc1b0 Tileset26GFX: ; 0x1dc5a1 Tileset32GFX: ; 0x1dc5a1 From 46fea9799482a7d767f0d59ff080b20f1b0445e6 Mon Sep 17 00:00:00 2001 From: yenatch Date: Fri, 2 Aug 2013 20:14:39 -0400 Subject: [PATCH 43/84] more step handling --- main.asm | 530 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 497 insertions(+), 33 deletions(-) diff --git a/main.asm b/main.asm index ac670e103..4f019369b 100644 --- a/main.asm +++ b/main.asm @@ -19532,54 +19532,60 @@ Function71ac: ; 71ac ; 71c2 -Function71c2: ; 71c2 +ChangeHappiness: ; 71c2 +; Perform happiness action c on CurPartyMon + ld a, [CurPartyMon] inc a ld e, a - ld d, $0 - ld hl, PartyCount + ld d, 0 + ld hl, PartySpecies - 1 add hl, de ld a, [hl] - cp $fd + cp EGG ret z + push bc ld hl, PartyMon1Happiness - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 ld a, [CurPartyMon] call AddNTimes pop bc + ld d, h ld e, l + push de ld a, [de] - cp $64 - ld e, $0 + cp 100 + ld e, 0 jr c, .asm_71ef inc e - cp $c8 + cp 200 jr c, .asm_71ef inc e .asm_71ef dec c - ld b, $0 - ld hl, $7221 + ld b, 0 + ld hl, .Actions add hl, bc add hl, bc add hl, bc - ld d, $0 + ld d, 0 add hl, de ld a, [hl] - cp $64 + cp 100 pop de + ld a, [de] - jr nc, .asm_7209 + jr nc, .negative add [hl] jr nc, .asm_720d ld a, $ff jr .asm_720d -.asm_7209 +.negative add [hl] jr c, .asm_720d xor a @@ -19599,7 +19605,147 @@ Function71c2: ; 71c2 ret ; 7221 -INCBIN "baserom.gbc", $7221, $7305 - $7221 +.Actions + db +5, +3, +2 + db +5, +3, +2 + db +1, +1, +0 + db +3, +2, +1 + db +1, +1, +0 + db -1, -1, -1 + db -5, -5, -10 + db -5, -5, -10 + db +1, +1, +1 + db +3, +3, +1 + db +5, +5, +2 + db +1, +1, +1 + db +3, +3, +1 + db +10, +10, +4 + db -5, -5, -10 + db -10, -10, -15 + db -15, -15, -20 + db +3, +3, +1 + db +10, +6, +4 +; 725a + + +StepHappiness: ; 725a +; Raise the party's happiness by 1 point every other step cycle. + + ld hl, $dc77 + ld a, [hl] + inc a + and 1 + ld [hl], a + ret nz + + ld de, PartyCount + ld a, [de] + and a + ret z + + ld c, a + ld hl, PartyMon1Happiness +.loop + inc de + ld a, [de] + cp EGG + jr z, .next + inc [hl] + jr nz, .next + ld [hl], $ff + +.next + push de + ld de, PartyMon2 - PartyMon1 + add hl, de + pop de + dec c + jr nz, .loop + ret +; 7282 + + +DaycareStep: ; 7282 + + ld a, [DaycareMan] + bit 0, a + jr z, .asm_72a4 + + ld a, [$df2b] ; level + cp 100 + jr nc, .asm_72a4 + ld hl, $df16 ; exp + inc [hl] + jr nz, .asm_72a4 + dec hl + inc [hl] + jr nz, .asm_72a4 + dec hl + inc [hl] + ld a, [hl] + cp $50 + jr c, .asm_72a4 + ld a, $50 + ld [hl], a + +.asm_72a4 + ld a, [DaycareLady] + bit 0, a + jr z, .asm_72c6 + + ld a, [$df64] ; level + cp 100 + jr nc, .asm_72c6 + ld hl, $df4f ; exp + inc [hl] + jr nz, .asm_72c6 + dec hl + inc [hl] + jr nz, .asm_72c6 + dec hl + inc [hl] + ld a, [hl] + cp $50 + jr c, .asm_72c6 + ld a, $50 + ld [hl], a + +.asm_72c6 + ld hl, DaycareMan + bit 5, [hl] ; egg + ret z + ld hl, StepsToEgg + dec [hl] + ret nz + + call RNG + ld [hl], a + ld hl, $6e1d + ld a, $5 + rst FarCall + ld a, [$d265] + cp $e6 + ld b, $50 + jr nc, .asm_72f8 + ld a, [$d265] + cp $aa + ld b, $28 + jr nc, .asm_72f8 + ld a, [$d265] + cp $6e + ld b, $1e + jr nc, .asm_72f8 + ld b, $a + +.asm_72f8 + call RNG + cp b + ret nc + ld hl, DaycareMan + res 5, [hl] + set 6, [hl] + ret +; 7305 SpecialGiveShuckle: ; 7305 @@ -31281,7 +31427,98 @@ Function160a1: ; 160a1 jp $600d ; 160a9 -INCBIN "baserom.gbc", $160a9, $16ecd - $160a9 +INCBIN "baserom.gbc", $160a9, $16e1d - $160a9 + +Function16e1d: ; 16e1d + call $6ed6 + ld c, $0 + jp nc, $6eb7 + ld a, [BreedMon1Species] + ld [CurPartySpecies], a + ld a, [$df21] + ld [TempMonDVs], a + ld a, [$df22] + ld [$d124], a + ld a, $3 + ld [MonType], a + ld a, $24 + call Predef + jr c, .asm_16e70 + ld b, $1 + jr nz, .asm_16e48 + inc b + +.asm_16e48 + push bc + ld a, [BreedMon2Species] + ld [CurPartySpecies], a + ld a, [$df5a] + ld [TempMonDVs], a + ld a, [$df5b] + ld [$d124], a + ld a, $3 + ld [MonType], a + ld a, $24 + call Predef + pop bc + jr c, .asm_16e70 + ld a, $1 + jr nz, .asm_16e6d + inc a + +.asm_16e6d + cp b + jr nz, .asm_16e89 + +.asm_16e70 + ld c, $0 + ld a, [BreedMon1Species] + cp $84 + jr z, .asm_16e82 + ld a, [BreedMon2Species] + cp $84 + jr nz, .asm_16eb7 + jr .asm_16e89 + +.asm_16e82 + ld a, [BreedMon2Species] + cp $84 + jr z, .asm_16eb7 + +.asm_16e89 + call $6ebc + ld c, $ff + jp z, $6eb7 + ld a, [BreedMon2Species] + ld b, a + ld a, [BreedMon1Species] + cp b + ld c, $fe + jr z, .asm_16e9f + ld c, $80 + +.asm_16e9f + ld a, [$df12] + ld b, a + ld a, [$df4b] + cp b + jr nz, .asm_16eb7 + ld a, [$df13] + ld b, a + ld a, [$df4c] + cp b + jr nz, .asm_16eb7 + ld a, c + sub $4d + ld c, a + +.asm_16eb7 + ld a, c + ld [$d265], a + ret +; 16ebc + +INCBIN "baserom.gbc", $16ebc, $16ecd - $16ebc Function16ecd: ; 16ecd @@ -31293,7 +31530,93 @@ Function16ecd: ; 16ecd ret ; 16ed6 -INCBIN "baserom.gbc", $16ed6, $174ba - $16ed6 +Function16ed6: ; 16ed6 + ld a, [BreedMon2Species] + ld [CurSpecies], a + call GetBaseData + ld a, [BaseEggGroups] + cp $ff + jr z, .asm_16f3a + ld a, [BreedMon1Species] + ld [CurSpecies], a + call GetBaseData + ld a, [BaseEggGroups] + cp $ff + jr z, .asm_16f3a + ld a, [BreedMon2Species] + cp $84 + jr z, .asm_16f3c + ld [CurSpecies], a + call GetBaseData + ld a, [BaseEggGroups] + push af + and $f + ld b, a + pop af + and $f0 + swap a + ld c, a + ld a, [BreedMon1Species] + cp $84 + jr z, .asm_16f3c + ld [CurSpecies], a + push bc + call GetBaseData + pop bc + ld a, [BaseEggGroups] + push af + and $f + ld d, a + pop af + and $f0 + swap a + ld e, a + ld a, d + cp b + jr z, .asm_16f3c + cp c + jr z, .asm_16f3c + ld a, e + cp b + jr z, .asm_16f3c + cp c + jr z, .asm_16f3c + +.asm_16f3a + and a + ret + +.asm_16f3c + scf + ret +; 16f3e + +Function16f3e: ; 16f3e + ld de, PartySpecies + ld hl, PartyMon1Happiness + ld c, 0 +.loop + ld a, [de] + inc de + cp $ff + ret z + cp EGG + jr nz, .next + dec [hl] + jr nz, .next + ld a, 1 + and a + ret + +.next + push de + ld de, PartyMon2 - PartyMon1 + add hl, de + pop de + jr .loop +; 16f5e + +INCBIN "baserom.gbc", $16f5e, $174ba - $16f5e SECTION "bank6",DATA,BANK[$6] @@ -34474,7 +34797,7 @@ Function2709e: ; 2709e ld c, $13 .asm_270bd - callab Function71c2 + callab ChangeHappiness ret ; 270c4 @@ -39585,7 +39908,7 @@ Function3d1aa: ; 3d1aa .asm_3d1dc ld a, [CurBattleMon] ld [CurPartyMon], a - callab Function71c2 + callab ChangeHappiness ld a, [$d0ee] and $c0 add $1 @@ -45314,7 +45637,7 @@ Function3f594: ; 3f594 or [hl] jr z, .asm_3f5fc ld c, $4 - callab Function71c2 + callab ChangeHappiness .asm_3f5fc pop bc @@ -48461,9 +48784,7 @@ Function492b9: ; 492b9 and a jr z, .asm_49300 ld c, $5 - ld hl, $71c2 - ld a, $1 - rst FarCall + callab ChangeHappiness jr .asm_49305 .asm_49300 @@ -52246,7 +52567,156 @@ Function505c1: ; 505c1 ret ; 505da -INCBIN "baserom.gbc", $505da, $506bc - $505da +Function505da: ; 505da + ld a, [PartyCount] + and a + jr z, .asm_5062c + xor a + ld c, 7 + ld hl, EngineBuffer1 +.asm_505e6 + ld [hli], a + dec c + jr nz, .asm_505e6 + xor a + ld [CurPartyMon], a +.asm_505ee + call Function5062e + jr nc, .asm_50605 + ld a, [CurPartyMon] + ld e, a + ld d, 0 + ld hl, CurFruit + add hl, de + ld [hl], c + ld a, [EngineBuffer1] + or c + ld [EngineBuffer1], a + +.asm_50605 + ld a, [PartyCount] + ld hl, CurPartyMon + inc [hl] + cp [hl] + jr nz, .asm_505ee + ld a, [EngineBuffer1] + and $2 + jr nz, .asm_50622 + ld a, [EngineBuffer1] + and $1 + jr z, .asm_5062c + call Function50658 + xor a + ret + +.asm_50622 + ld a, $14 + ld hl, $4669 + call PushScriptPointer + scf + ret + +.asm_5062c + xor a + ret +; 5062e + +Function5062e: ; 5062e + ld a, $20 + call GetPartyParamLocation + ld a, [hl] + and $8 + ret z + ld a, $22 + call GetPartyParamLocation + ld a, [hli] + ld b, a + ld c, [hl] + or c + ret z + dec bc + ld [hl], c + dec hl + ld [hl], b + ld a, b + or c + jr nz, .asm_50654 + ld a, $20 + call GetPartyParamLocation + ld [hl], $0 + ld c, $2 + scf + ret + +.asm_50654 + ld c, $1 + scf + ret +; 50658 + +Function50658: ; 50658 + ld de, SFX_POISON + call StartSFX + ld b, $2 + ld a, $2e + call Predef + call DelayFrame + ret +; 50669 + +UnknownScript_0x50669: ; 50669 + 3callasm $14, $4658 + loadfont + 3callasm $14, $467b + iffalse UnknownScript_0x50677 + loadmovesprites + end +; 50677 + +UnknownScript_0x50677: ; 50677 + 3jump BANK(UnknownScript_0x124c8), UnknownScript_0x124c8 +; 5067b + +Function5067b: ; 5067b + xor a + ld [CurPartyMon], a + ld de, CurFruit +.asm_50682 + push de + ld a, [de] + and 2 + jr z, .asm_5069c + ld c, 7 + callba Function71c2 + callba GetPartyNick + ld hl, PoisonFaintText + call PrintText + +.asm_5069c + pop de + inc de + ld hl, CurPartyMon + inc [hl] + ld a, [PartyCount] + cp [hl] + jr nz, .asm_50682 + ld a, $14 + call Predef + ld a, d + ld [ScriptVar], a + ret +; 506b2 + +PoisonFaintText: ; 506b2 + text_jump UnknownText_0x1c0acc, BANK(UnknownText_0x1c0acc) + db "@" +; 506b7 + +PoisonWhiteOutText: ; 506b7 + text_jump UnknownText_0x1c0ada, BANK(UnknownText_0x1c0ada) + db "@" +; 506bc + Function506bc: ; 506bc ld hl, $46c8 @@ -59261,24 +59731,18 @@ CountStep: ; 96b79 inc [hl] jr nz, .asm_96b9c - ld a, $1 - ld hl, $725a - rst FarCall + callba StepHappiness .asm_96b9c ld a, [StepCount] cp $80 jr nz, .asm_96bab - ld a, $5 - ld hl, $6f3e - rst FarCall + callba Function16f3e jr nz, .asm_96bcf .asm_96bab - ld a, $1 - ld hl, $7282 - rst FarCall + callba DaycareStep ld hl, PoisonStepCount ld a, [hl] From 0ee006a145dbe45a8844ad2dc6d8bf04b51f63bc Mon Sep 17 00:00:00 2001 From: yenatch Date: Sat, 3 Aug 2013 16:19:29 -0400 Subject: [PATCH 44/84] more item effects --- items/item_effects.asm | 34 +- main.asm | 766 +++++++++++++++++++++++++++++++++++++---- maps/Route36.asm | 4 + 3 files changed, 718 insertions(+), 86 deletions(-) diff --git a/items/item_effects.asm b/items/item_effects.asm index 1ed4c3111..cdca23be0 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -754,6 +754,7 @@ Function_0xed12: ; ed12 ld a, [TempBattleMonSpecies] cp c ret nz + push bc ld a, [TempBattleMonSpecies] ld [CurPartySpecies], a @@ -764,14 +765,13 @@ Function_0xed12: ; ed12 ld a, $14 ld hl, $4bdd rst FarCall - jr c, .asm_ed66 - ld d, $0 + ld d, 0 jr nz, .asm_ed39 inc d - .asm_ed39 + push de ld a, [TempEnemyMonSpecies] ld [CurPartySpecies], a @@ -780,28 +780,25 @@ Function_0xed12: ; ed12 ld a, $14 ld hl, $4bdd rst FarCall - jr c, .asm_ed65 - ld d, $0 + ld d, 0 jr nz, .asm_ed52 inc d - .asm_ed52 + ld a, d pop de cp d pop bc ret nz - sla b - jr c, .asm_ed62 sla b jr c, .asm_ed62 - + sla b + jr c, .asm_ed62 sla b ret nc - .asm_ed62 ld b, $ff ret @@ -1657,34 +1654,25 @@ INCBIN "baserom.gbc", $f652, $f73e - $f652 Squirtbottle: ; f73e - ld a, $14 - ld hl, $4730 - rst FarCall + callba _Squirtbottle ret ; f745 CardKey: ; f745 - ld a, $14 - ld hl, $4779 - rst FarCall + callba _CardKey ret ; f74c BasementKey: ; f74c - ld a, $14 - ld hl, $47b4 - rst FarCall + callba _BasementKey ret ; f753 SacredAsh: ; f753 - ld a, $14 - ld hl, $47e6 - rst FarCall - + callba _SacredAsh ld a, [$d0ec] cp $1 ret nz diff --git a/main.asm b/main.asm index 4f019369b..27bfa6b0d 100644 --- a/main.asm +++ b/main.asm @@ -366,25 +366,29 @@ Function4dd: ; 4dd jr z, .asm_4e9 ld hl, $0522 ld b, $4 - jr .asm_501 + jr Function501 .asm_4e9 ld hl, $053a ld b, $4 - jr .asm_501 + jr Function501 +; 4f0 +Function4f0: ; 4f0 ld a, [hCGB] and a jr z, .asm_4fc ld hl, $052b ld b, $3 - jr .asm_501 + jr Function501 .asm_4fc ld hl, $0543 ld b, $3 + ; fallthrough +; 501 -.asm_501 +Function501: ; 501 push de ld a, [hld] ld d, a @@ -397,7 +401,7 @@ Function4dd: ; 4dd call DelayFrames pop de dec b - jr nz, .asm_501 + jr nz, Function501 ret ; 517 @@ -17733,7 +17737,7 @@ NamePlayer: ; 0x6074 ld b, $1c call GetSGBLayout - call $04f0 + call Function4f0 ld hl, PlayerName ld de, .Chris @@ -19499,11 +19503,11 @@ Function7171: ; 7171 Function718d: ; 718d ld hl, PartyMon1Happiness - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 ld de, PartySpecies .asm_7196 ld a, [de] - cp $fd + cp EGG jr nz, .asm_719f inc de add hl, bc @@ -19520,7 +19524,7 @@ Function718d: ; 718d Function71ac: ; 71ac ld a, [PartySpecies] ld [$d265], a - cp $fd + cp EGG ld a, $1 jr z, .asm_71b9 xor a @@ -20456,7 +20460,7 @@ PredefPointers: ; 856b dwb GetTypeName, BANK(GetTypeName) dwb PrintMoveType, BANK(PrintMoveType) dwb PrintType, BANK(PrintType) - dwb $490d, $14 + dwb PrintMonTypes, BANK(PrintMonTypes) dwb $5040, $14 ; GetUnownLetter dwb $7cdd, $32 dwb $40d5, $33 @@ -22087,7 +22091,7 @@ Functionceeb: ; ceeb ; cef4 Functioncef4: ; cef4 - call $4f0d + call Functioncf0d jr c, .asm_cf07 ld a, d cp $18 @@ -25487,7 +25491,54 @@ BoxNameInputUpper: db "lower DEL END " -INCBIN "baserom.gbc", $11e5d, $12513 - $11e5d +INCBIN "baserom.gbc", $11e5d, $122c1 - $11e5d + +UnknownScript_0x122c1: ; 0x122c1 + checkbit2 $0011 + iffalse $62cd + setbit2 $0051 + special $0017 + end +; 0x122ce + +INCBIN "baserom.gbc", $122ce, $124c8 - $122ce + +UnknownScript_0x124c8: ; 0x124c8 + refreshscreen $0 + 3callasm BANK(Function124fa), Function124fa + 2writetext UnknownText_0x124f5 + closetext + special $002e + pause 40 + special $001b + checkbit2 $0011 + iftrue .script_64f2 + 3callasm BANK(HalveMoney), HalveMoney + 3callasm BANK(Function12527), Function12527 + 3call BANK(UnknownScript_0x122c1), UnknownScript_0x122c1 + special $0000 + newloadmap $f1 + resetfuncs + +.script_64f2 + jumpstd $0016 +; 0x124f5 + +UnknownText_0x124f5: ; 0x124f5 + text_jump UnknownText_0x1c0a4e, BANK(UnknownText_0x1c0a4e) + db $50 +; 0x124fa + +Function124fa: ; 124fa + call ClearPalettes + call Functionfdb + call Function3200 + call HideSprites + call Function4f0 + ret +; 1250a + +INCBIN "baserom.gbc", $1250a, $12513 - $1250a HalveMoney: ; 12513 @@ -25512,7 +25563,24 @@ HalveMoney: ; 12513 ; 12527 -INCBIN "baserom.gbc", $12527, $12580 - $12527 +Function12527: ; 12527 + ld a, [$dcb2] + ld d, a + ld a, [$dcb3] + ld e, a + ld a, $5 + ld hl, $5344 + rst FarCall + ld a, c + jr c, .asm_12539 + xor a + +.asm_12539 + ld [$d001], a + ret +; 1253d + +INCBIN "baserom.gbc", $1253d, $12580 - $1253d Function12580: ; 12580 @@ -27723,7 +27791,37 @@ Function13575: ; 13575 ret ; 13583 -INCBIN "baserom.gbc", $13583, $13b87 - $13583 +INCBIN "baserom.gbc", $13583, $135eb - $13583 + +UnknownScript_0x135eb: ; 0x135eb + writecode $3, $6 + battlecheck + startbattle + returnafterbattle + copybytetovar $dc79 + iffalse UnknownScript_0x13603 + end +; 0x135f8 + +INCBIN "baserom.gbc", $135f8, $13603 - $135f8 + +UnknownScript_0x13603: ; 0x13603 + playsound $0027 + loadfont + 2writetext UnknownText_0x13614 + closetext + loadmovesprites + jumpstd $0016 +; 0x1360f + +INCBIN "baserom.gbc", $1360f, $13614 - $1360f + +UnknownText_0x13614: ; 0x13614 + text_jump UnknownText_0x1bd2e7, BANK(UnknownText_0x1bd2e7) + db $50 +; 0x13619 + +INCBIN "baserom.gbc", $13619, $13b87 - $13619 GetSquareRoot: ; 13b87 @@ -29436,7 +29534,17 @@ Function149af: ; 149af ret ; 149c6 -INCBIN "baserom.gbc", $149c6, $14a07 - $149c6 +INCBIN "baserom.gbc", $149c6, $149dd - $149c6 + +Function149dd: ; 149dd + ld a, [StandingTile] + ld hl, $49ea + ld de, $0001 + call IsInArray + ret +; 149ea + +INCBIN "baserom.gbc", $149ea, $14a07 - $149ea Function14a07: ; 14a07 @@ -30078,7 +30186,38 @@ BlackoutPoints: ; 0x152ab db GROUP_FAST_SHIP_CABINS_SW_SSW_NW, MAP_FAST_SHIP_CABINS_SW_SSW_NW, 6, 2 db $ff, $ff, $ff, $ff -INCBIN "baserom.gbc", $1531f, $15363 - $1531f +INCBIN "baserom.gbc", $1531f, $15344 - $1531f + +Function15344: ; 15344 + ld hl, BlackoutPoints + ld c, $0 +.asm_15349 + ld a, [hl] + cp $ff + jr z, .asm_1535f + cp d + jr nz, .asm_15356 + inc hl + ld a, [hld] + cp e + jr z, .asm_15361 + +.asm_15356 + push bc + ld bc, $0004 + add hl, bc + pop bc + inc c + jr .asm_15349 + +.asm_1535f + and a + ret + +.asm_15361 + scf + ret +; 15363 Function15363: ; 15363 @@ -34987,7 +35126,220 @@ INCBIN "baserom.gbc", $27a28, $27a2d - $27a28 SECTION "bankA",DATA,BANK[$A] -INCBIN "baserom.gbc", $28000, $2a2a0 - $28000 +INCBIN "baserom.gbc", $28000, $2a111 - $28000 + +Function2a111: ; 2a111 + ld hl, $d25a + call Function1852 + ld a, $3 + jr z, .asm_2a11e + ld a, [TimeOfDay] + +.asm_2a11e + ld c, a + ld b, $0 + add hl, bc + ld b, [hl] + ret +; 2a124 + +INCBIN "baserom.gbc", $2a124, $2a14f - $2a124 + +Function2a14f: ; 2a14f + call $6200 + jp nc, $61c1 + call $62ce + jp c, $61c9 + inc hl + inc hl + inc hl + call Function1852 + ld de, $61d9 + jr z, .asm_2a174 + inc hl + inc hl + ld a, [TimeOfDay] + ld bc, $000e + call AddNTimes + ld de, $61cb + +.asm_2a174 + push hl +.asm_2a175 + call RNG + cp $64 + jr nc, .asm_2a175 + inc a + ld b, a + ld h, d + ld l, e +.asm_2a180 + ld a, [hli] + cp b + jr nc, .asm_2a187 + inc hl + jr .asm_2a180 + +.asm_2a187 + ld c, [hl] + ld b, $0 + pop hl + add hl, bc + ld a, [hli] + ld b, a + call Function1852 + jr nz, .asm_2a1aa + call RNG + cp $59 + jr c, .asm_2a1aa + inc b + cp $a5 + jr c, .asm_2a1aa + inc b + cp $d8 + jr c, .asm_2a1aa + inc b + cp $f2 + jr c, .asm_2a1aa + inc b + +.asm_2a1aa + ld a, b + ld [CurPartyLevel], a + ld b, [hl] + call $64a0 + jr c, .asm_2a1c1 + ld a, b + cp $c9 + jr nz, .asm_2a1bf + ld a, [UnlockedUnowns] + and a + jr z, .asm_2a1c1 + +.asm_2a1bf + jr .asm_2a1c5 + +.asm_2a1c1 + ld a, $1 + and a + ret + +.asm_2a1c5 + ld a, b + ld [$d22e], a + xor a + ret +; 2a1cb + +INCBIN "baserom.gbc", $2a1cb, $2a200 - $2a1cb + +Function2a200: ; 2a200 + call Function1852 + jr z, .asm_2a21d + ld hl, WildMons5 + ld bc, $002f + call $623d + ret c + ld hl, WildMons1 + ld de, WildMons3 + call $6235 + ld bc, $002f + jr .asm_2a27a + +.asm_2a21d + ld hl, WildMons6 + ld bc, $0009 + call $623d + ret c + ld hl, WildMons2 + ld de, WildMons4 + call $6235 + ld bc, $0009 + jr .asm_2a27a + + call Function2f17 + and a + ret z + ld h, d + ld l, e + ret + + call $627f + push hl + ld hl, $dc20 + bit 2, [hl] + pop hl + jr z, .asm_2a25c + ld a, [$dfcc] + cp d + jr nz, .asm_2a25c + ld a, [$dfcd] + cp e + jr nz, .asm_2a25c + call $6288 + jr nc, .asm_2a278 + scf + ret + +.asm_2a25c + push hl + ld hl, $dc20 + bit 3, [hl] + pop hl + jr z, .asm_2a278 + ld a, [$dc5a] + cp d + jr nz, .asm_2a278 + ld a, [$dc5b] + cp e + jr nz, .asm_2a278 + call $6288 + jr nc, .asm_2a278 + scf + ret + +.asm_2a278 + and a + ret + +.asm_2a27a + call $627f + jr .asm_2a288 + + ld a, [MapGroup] + ld d, a + ld a, [MapNumber] + ld e, a + ret + +.asm_2a288 + push hl + ld a, [hl] + inc a + jr z, .asm_2a29a + ld a, d + cp [hl] + jr nz, .asm_2a296 + inc hl + ld a, e + cp [hl] + jr z, .asm_2a29d + +.asm_2a296 + pop hl + add hl, bc + jr .asm_2a288 + +.asm_2a29a + pop hl + and a + ret + +.asm_2a29d + pop hl + scf + ret +; 2a2a0 SpecialRoamMons: ; 2a2a0 ; initialize RoamMon structs @@ -35035,7 +35387,47 @@ SpecialRoamMons: ; 2a2a0 ; 2a2ce -INCBIN "baserom.gbc", $2a2ce, $2a30d - $2a2ce +Function2a2ce: ; 2a2ce + push hl + call Function1852 + jr z, .asm_2a30a + call $627f + call RNG + cp $64 + jr nc, .asm_2a30a + and $3 + jr z, .asm_2a30a + dec a + ld hl, RoamMon1MapGroup + ld c, a + ld b, $0 + ld a, $7 + call AddNTimes + ld a, d + cp [hl] + jr nz, .asm_2a30a + inc hl + ld a, e + cp [hl] + jr nz, .asm_2a30a + dec hl + dec hl + dec hl + ld a, [hli] + ld [$d22e], a + ld a, [hl] + ld [CurPartyLevel], a + ld a, $5 + ld [BattleType], a + pop hl + scf + ret + +.asm_2a30a + pop hl + and a + ret +; 2a30d Function2a30d: ; 2a30d @@ -35214,7 +35606,22 @@ Function2a3f6: ; 2a3f6 ret ; 2a40f -INCBIN "baserom.gbc", $2a40f, $2a5e9 - $2a40f +INCBIN "baserom.gbc", $2a40f, $2a4a0 - $2a40f + +Function2a4a0: ; 2a4a0 + and a + jr z, .asm_2a4a9 + cp $fc + jr nc, .asm_2a4a9 + and a + ret + +.asm_2a4a9 + scf + ret +; 2a4ab + +INCBIN "baserom.gbc", $2a4ab, $2a5e9 - $2a4ab WildMons1: ; 0x2a5e9 @@ -52665,9 +53072,9 @@ Function50658: ; 50658 ; 50669 UnknownScript_0x50669: ; 50669 - 3callasm $14, $4658 + 3callasm BANK(Function50658), Function50658 loadfont - 3callasm $14, $467b + 3callasm BANK(Function5067b), Function5067b iffalse UnknownScript_0x50677 loadmovesprites end @@ -52687,7 +53094,7 @@ Function5067b: ; 5067b and 2 jr z, .asm_5069c ld c, 7 - callba Function71c2 + callba ChangeHappiness callba GetPartyNick ld hl, PoisonFaintText call PrintText @@ -52719,17 +53126,85 @@ PoisonWhiteOutText: ; 506b7 Function506bc: ; 506bc - ld hl, $46c8 + ld hl, UnknownScript_0x506c8 call Function31cd ld a, $1 ld [$d0ec], a ret ; 506c8 -INCBIN "baserom.gbc", $506c8, $50730 - $506c8 +UnknownScript_0x506c8: ; 0x506c8 + reloadmappart + special $0035 + 3callasm $03, $4706 + 2writetext UnknownText_0x50726 + closetext + 3callasm BANK(Function506ef), Function506ef + iffalse UnknownScript_0x506e9 + checkbit2 $0011 + iftrue UnknownScript_0x506e5 + battlecheck + startbattle + returnafterbattle + end +; 0x506e5 + +UnknownScript_0x506e5: ; 0x506e5 + 3jump BANK(UnknownScript_0x135eb), UnknownScript_0x135eb +; 0x506e9 + +UnknownScript_0x506e9: ; 0x506e9 + 2writetext UnknownText_0x5072b + closetext + loadmovesprites + end +; 0x506ef + +Function506ef: ; 506ef + callba Function97cfd + jr nc, .asm_5071e + ld hl, StatusFlags2 + bit 2, [hl] + jr nz, .asm_50712 + ld a, $a + ld hl, $6111 + rst FarCall + ld a, b + and a + jr z, .asm_5071e + ld a, $a + ld hl, $614f + rst FarCall + jr nz, .asm_5071e + jr .asm_50718 + +.asm_50712 + callba Function97d31 + +.asm_50718 + ld a, $1 + ld [ScriptVar], a + ret + +.asm_5071e + xor a + ld [ScriptVar], a + ld [BattleType], a + ret +; 50726 + +UnknownText_0x50726: ; 0x50726 + text_jump UnknownText_0x1c0b03, BANK(UnknownText_0x1c0b03) + db $50 +; 0x5072b + +UnknownText_0x5072b: ; 0x5072b + text_jump UnknownText_0x1c0b1a, BANK(UnknownText_0x1c0b1a) + db $50 +; 0x50730 -Function50730: ; 50730 +_Squirtbottle: ; 50730 ld hl, $473c call Function31cd ld a, $1 @@ -52737,28 +53212,73 @@ Function50730: ; 50730 ret ; 5073c -INCBIN "baserom.gbc", $5073c, $50779 - $5073c +UnknownScript_0x5073c: ; 0x5073c + reloadmappart + special $0035 + 3callasm BANK(Function50753), Function50753 + iffalse UnknownScript_0x5074b + 3jump BANK(WateredWeirdTreeScript), WateredWeirdTreeScript +; 0x5074b +UnknownScript_0x5074b: ; 0x5074b + jumptext UnknownText_0x5074e +; 0x5074e -Function50779: ; 50779 +UnknownText_0x5074e: ; 0x5074e + text_jump UnknownText_0x1c0b3b, BANK(UnknownText_0x1c0b3b) + db $50 +; 0x50753 + +Function50753: ; 50753 ld a, [MapGroup] - cp $3 - jr nz, .asm_507a9 + cp GROUP_ROUTE_36 + jr nz, .asm_50774 + ld a, [MapNumber] - cp $13 + cp MAP_ROUTE_36 + jr nz, .asm_50774 + + callba Functioncf0d + jr c, .asm_50774 + + ld a, d + cp 23 + jr nz, .asm_50774 + + ld a, $1 + ld [ScriptVar], a + ret + +.asm_50774 + xor a + ld [ScriptVar], a + ret +; 50779 + + +_CardKey: ; 50779 + ld a, [MapGroup] + cp GROUP_RADIO_TOWER_3F jr nz, .asm_507a9 + + ld a, [MapNumber] + cp MAP_RADIO_TOWER_3F + jr nz, .asm_507a9 + ld a, [PlayerDirection] and $c - cp $4 + cp UP << 2 jr nz, .asm_507a9 + call GetFacingTileCoord ld a, d - cp $12 + cp 18 jr nz, .asm_507a9 ld a, e - cp $6 + cp 6 jr nz, .asm_507a9 - ld hl, $47af + + ld hl, UnknownScript_0x507af call Function31cd ld a, $1 ld [$d0ec], a @@ -52770,23 +53290,29 @@ Function50779: ; 50779 ret ; 507af -INCBIN "baserom.gbc", $507af, $507b4 - $507af +UnknownScript_0x507af: ; 0x507af + loadmovesprites + 3jump BANK(MapRadioTower3FSignpost2Script), MapRadioTower3FSignpost2Script +; 0x507b4 -Function507b4: ; 507b4 +_BasementKey: ; 507b4 ld a, [MapGroup] - cp $3 + cp GROUP_WAREHOUSE_ENTRANCE jr nz, .asm_507db + ld a, [MapNumber] - cp $35 + cp MAP_WAREHOUSE_ENTRANCE jr nz, .asm_507db + call GetFacingTileCoord ld a, d - cp $16 + cp 22 jr nz, .asm_507db ld a, e - cp $a + cp 10 jr nz, .asm_507db + ld hl, $47e1 call Function31cd ld a, $1 @@ -52799,45 +53325,51 @@ Function507b4: ; 507b4 ret ; 507e1 -INCBIN "baserom.gbc", $507e1, $507e6 - $507e1 +UnknownScript_0x507e1: ; 0x507e1 + loadmovesprites + 3jump BANK(MapWarehouseEntranceSignpost0Script), MapWarehouseEntranceSignpost0Script +; 0x507e6 -Function507e6: ; 507e6 +_SacredAsh: ; 507e6 ld a, $0 ld [$d0ec], a - call Function507fb + call CheckAnyFaintedMon ret nc - ld hl, $4821 + + ld hl, UnknownScript_0x50821 call Function31cd ld a, $1 ld [$d0ec], a ret ; 507fb -Function507fb: ; 507fb - ld de, $0030 +CheckAnyFaintedMon: ; 507fb + ld de, PartyMon2 - PartyMon1 ld bc, PartySpecies ld hl, PartyMon1CurHP ld a, [PartyCount] and a ret z -.asm_50809 + +.loop push af push hl ld a, [bc] inc bc - cp $fd - jr z, .asm_50815 + cp EGG + jr z, .next + ld a, [hli] or [hl] jr z, .asm_5081d -.asm_50815 +.next pop hl add hl, de pop af dec a - jr nz, .asm_50809 + jr nz, .loop xor a ret @@ -52848,22 +53380,45 @@ Function507fb: ; 507fb ret ; 50821 -INCBIN "baserom.gbc", $50821, $5084a - $50821 +UnknownScript_0x50821: ; 0x50821 + special $001b + reloadmappart + playsound SFX_WARP_TO + special $002e + special $0031 + special $002e + special $0031 + special $002e + special $0031 + waitbutton + 2writetext UnknownText_0x50845 + playsound SFX_CAUGHT_MON + waitbutton + closetext + loadmovesprites + end +; 0x50845 + +UnknownText_0x50845: ; 0x50845 + text_jump UnknownText_0x1c0b65, BANK(UnknownText_0x1c0b65) + db $50 +; 0x5084a Function5084a: ; 5084a ld a, [CurPartyMon] ld e, a - call $48d5 + call Function508d5 ld a, [CurPartySpecies] ld [CurSpecies], a call GetBaseData + ld a, [MonType] ld hl, PartyMon1Species - ld bc, $0030 + ld bc, PartyMon2 - PartyMon1 and a jr z, .asm_5087b ld hl, OTPartyMon1Species - ld bc, $0030 + ld bc, OTPartyMon2 - OTPartyMon1 cp $1 jr z, .asm_5087b ld bc, $0020 @@ -52883,18 +53438,74 @@ Function5084a: ; 5084a ret ; 5088b -INCBIN "baserom.gbc", $5088b, $508d5 - $5088b + +Function5088b: ; 5088b + ld bc, $d018 + jr Function50893 +; 50890 + +Function50890: ; 50890 + ld bc, TempMon + ; fallthrough +; 50893 + +Function50893: ; 50893 + ld hl, TempMonLevel - TempMon + add hl, bc + ld a, [hl] + ld [CurPartyLevel], a + ld hl, TempMonMaxHP - TempMon + add hl, bc + ld d, h + ld e, l + ld hl, TempMonExp + 2 - TempMon + add hl, bc + push bc + ld b, $1 + ld a, $c + call Predef + pop bc + ld hl, TempMonCurHP - TempMon + add hl, bc + ld d, h + ld e, l + ld a, [CurPartySpecies] + cp EGG + jr nz, .asm_508c1 + xor a + ld [de], a + inc de + ld [de], a + jr .asm_508cd + +.asm_508c1 + push bc + ld hl, TempMonMaxHP - TempMon + add hl, bc + ld bc, 2 + call CopyBytes + pop bc + +.asm_508cd + ld hl, TempMonStatus - TempMon + add hl, bc + xor a + ld [hli], a + ld [hl], a + ret +; 508d5 Function508d5: ; 508d5 ld a, [MonType] - and a + and a ; PARTYMON jr z, .asm_508e7 - cp $1 + cp OTPARTYMON jr z, .asm_508ec - cp $2 + cp BOXMON jr z, .asm_508f1 cp $3 jr z, .asm_50900 + ; WILDMON .asm_508e7 ld hl, PartySpecies @@ -52908,7 +53519,7 @@ Function508d5: ; 508d5 ld a, $1 call GetSRAMBank ld hl, $ad11 - call $4905 + call .asm_50905 call CloseSRAM ret @@ -52917,7 +53528,7 @@ Function508d5: ; 508d5 jr .asm_50909 .asm_50905 - ld d, $0 + ld d, 0 add hl, de ld a, [hl] @@ -52926,8 +53537,37 @@ Function508d5: ; 508d5 ret ; 5090d -INCBIN "baserom.gbc", $5090d, $5093a - $5090d +PrintMonTypes: ; 5090d + push hl + call GetBaseData + pop hl + push hl + ld a, [BaseType1] + call .asm_50928 + ld a, [BaseType1] + ld b, a + ld a, [BaseType2] + cp b + pop hl + jr z, .asm_5092b + ld bc, 20 + add hl, bc + +.asm_50928 + ld b, a + jr PrintType + +.asm_5092b + ld a, " " + ld bc, 20 - 3 + add hl, bc + ld [hl], a + inc bc + add hl, bc + ld bc, 5 + jp ByteFill +; 5093a PrintMoveType: ; 5093a ; Print the type of move b at hl. @@ -59826,7 +60466,7 @@ ScriptPointers96c0c: ; 96c0c dbw BANK(UnknownScript_0x96c4d), UnknownScript_0x96c4d dbw BANK(UnknownScript_0x96c34), UnknownScript_0x96c34 dbw BANK(FallIntoMapScript), FallIntoMapScript - dbw $04, $64c8 ; BANK(UnknownScript_0x124c8), UnknownScript_0x124c8 + dbw BANK(UnknownScript_0x124c8), UnknownScript_0x124c8 dbw BANK(UnknownScript_0x96c2f), UnknownScript_0x96c2f dbw BANK(UnknownScript_0x96c4f), UnknownScript_0x96c4f dbw BANK(UnknownScript_0x96c2d), UnknownScript_0x96c2d diff --git a/maps/Route36.asm b/maps/Route36.asm index 4a7783fb8..a7525ea81 100644 --- a/maps/Route36.asm +++ b/maps/Route36.asm @@ -64,6 +64,10 @@ UnknownScript_0x19404a: ; 0x19404a yesorno iffalse UnknownScript_0x194079 loadmovesprites + ; fallthrough +; 0x194053 + +WateredWeirdTreeScript: ; 0x194053 loadfont 2writetext UnknownText_0x194290 closetext From c01c2ad3c4d7cdcc2989fcc4319a4be0612a0f94 Mon Sep 17 00:00:00 2001 From: yenatch Date: Sat, 3 Aug 2013 17:23:28 -0400 Subject: [PATCH 45/84] dump marts and related asm --- main.asm | 653 ++++++++++++++++++++++++++++++++++++++++++++++++------- wram.asm | 9 +- 2 files changed, 582 insertions(+), 80 deletions(-) diff --git a/main.asm b/main.asm index 27bfa6b0d..91ec5fe31 100644 --- a/main.asm +++ b/main.asm @@ -22855,7 +22855,8 @@ Function0xd47f: ; d47f ; d486 -Functiond486: ; d486 +GetItemPrice: ; d486 +; Return the price of CurItem in de. push hl push bc ld a, $0 @@ -30716,22 +30717,36 @@ MenuData15a08: ; 0x15a08 INCBIN "baserom.gbc", $15a20, $15a45 - $15a20 -Function15a45: ; 15a45 - call Function15b31 +OpenMartDialog: ; 15a45 + call GetMart ld a, c ld [EngineBuffer1], a call Function15b10 ld a, [EngineBuffer1] - ld hl, $5a57 + ld hl, .dialogs rst JumpTable ret ; 15a57 -INCBIN "baserom.gbc", $15a57, $15a6e - $15a57 +.dialogs + dw MartDialog + dw HerbShop + dw BargainShop + dw Pharmacist + dw VendingMachine +; 15a61 +MartDialog: ; 15a61 + ld a, 0 + ld [EngineBuffer1], a + xor a + ld [MovementAnimation], a + call Function15b47 + ret +; 15a6e -Function15a6e: ; 15a6e - call Function15bbb +HerbShop: ; 15a6e + call ReadMart call Function1d6e ld hl, $5e4a call Function15fcd @@ -30741,7 +30756,7 @@ Function15a6e: ; 15a6e ret ; 15a84 -Function15a84: ; 15a84 +BargainShop: ; 15a84 ld b, $5 ld de, $5c51 call Function15b10 @@ -30763,8 +30778,8 @@ Function15a84: ; 15a84 ret ; 15aae -Function15aae: ; 15aae - call Function15bbb +Pharmacist: ; 15aae + call ReadMart call Function1d6e ld hl, $5e90 call Function15fcd @@ -30774,7 +30789,7 @@ Function15aae: ; 15aae ret ; 15ac4 -Function15ac4: ; 15ac4 +VendingMachine: ; 15ac4 ld b, $5 ld de, $5aee ld hl, StatusFlags @@ -30787,7 +30802,7 @@ Function15ac4: ; 15ac4 call Function15b10 call Function15c25 call Function1d6e - ld hl, $5f83 + ld hl, UnknownText_0x15f83 call Function15fcd call Function15c62 ld hl, $5fb4 @@ -30802,12 +30817,12 @@ Function15b10: ; 15b10 ld a, b ld [CurFruit], a ld a, e - ld [$d040], a + ld [MartPointer], a ld a, d - ld [$d041], a - ld hl, $d0f0 + ld [MartPointer + 1], a + ld hl, CurMart xor a - ld bc, $0010 + ld bc, CurMartEnd - CurMart call ByteFill xor a ld [MovementAnimation], a @@ -30816,16 +30831,16 @@ Function15b10: ; 15b10 ret ; 15b31 -Function15b31: ; 15b31 +GetMart: ; 15b31 ld a, e - cp $22 - jr c, .asm_15b3c + cp (MartsEnd - Marts) / 2 + jr c, .IsAMart ld b, $5 - ld de, $6214 + ld de, DefaultMart ret -.asm_15b3c - ld hl, $60a9 +.IsAMart + ld hl, Marts add hl, de add hl, de ld e, [hl] @@ -30837,21 +30852,26 @@ Function15b31: ; 15b31 Function15b47: ; 15b47 .asm_15b47 - ld a, [MovementAnimation] - ld hl, $5b56 + ld a, [$d042] + ld hl, .table_15b56 rst JumpTable - ld [MovementAnimation], a + ld [$d042], a cp $ff jr nz, .asm_15b47 ret -; 15b56 - -INCBIN "baserom.gbc", $15b56, $15b62 - $15b56 +.table_15b56 + dw Function15b62 + dw Function15b6e + dw Function15b8d + dw Function15b9a + dw Function15ba3 + dw Function15baf +; 15b62 Function15b62: ; 15b62 call Function1d6e - ld hl, $5f83 + ld hl, UnknownText_0x15f83 call PrintText ld a, $1 ret @@ -30867,15 +30887,12 @@ Function15b6e: ; 15b6e jr z, .asm_15b87 cp $2 jr z, .asm_15b8a - .asm_15b84 ld a, $4 ret - .asm_15b87 ld a, $2 ret - .asm_15b8a ld a, $3 ret @@ -30883,7 +30900,7 @@ Function15b6e: ; 15b6e Function15b8d: ; 15b8d call Function1c07 - call Function15bbb + call ReadMart call Function15c62 and a ld a, $5 @@ -30907,66 +30924,69 @@ Function15ba3: ; 15ba3 Function15baf: ; 15baf call Function1d6e - ld hl, $5fb9 + ld hl, UnknownText_0x15fb9 call PrintText ld a, $1 ret ; 15bbb -Function15bbb: ; 15bbb - ld hl, $d040 +ReadMart: ; 15bbb + ld hl, MartPointer ld a, [hli] ld h, [hl] ld l, a - ld de, $d0f0 -.asm_15bc4 + ld de, CurMart +.CopyMart ld a, [CurFruit] call GetFarByte ld [de], a inc hl inc de cp $ff - jr nz, .asm_15bc4 + jr nz, .CopyMart ld hl, DefaultFlypoint - ld de, $d0f1 -.asm_15bd7 + ld de, CurMart + 1 +.ReadMartItem ld a, [de] inc de cp $ff jr z, .asm_15be4 push de - call Function15be5 + call GetMartItemPrice pop de - jr .asm_15bd7 + jr .ReadMartItem .asm_15be4 ret ; 15be5 -Function15be5: ; 15be5 +GetMartItemPrice: ; 15be5 +; Return the price of item a in BCD at hl and in tiles at StringBuffer1. push hl ld [CurItem], a - ld a, $3 - ld hl, $5486 - rst FarCall + callba GetItemPrice pop hl + +GetMartPrice: ; 15bf0 +; Return price de in BCD at hl and in tiles at StringBuffer1. push hl ld a, d ld [StringBuffer2], a ld a, e - ld [$d087], a + ld [StringBuffer2 + 1], a ld hl, StringBuffer1 ld de, StringBuffer2 - ld bc, $8206 + ld bc, $82 << 8 + 6 ; 6 digits call PrintNum pop hl + ld de, StringBuffer1 - ld c, $3 + ld c, 6 / 2 ; 6 digits .asm_15c0b - call Function15c1a + call .TileToNum swap a ld b, a - call Function15c1a + call .TileToNum or b ld [hli], a dec c @@ -30974,33 +30994,34 @@ Function15be5: ; 15be5 ret ; 15c1a -Function15c1a: ; 15c1a +.TileToNum ; 15c1a ld a, [de] inc de - cp $7f + cp " " jr nz, .asm_15c22 - ld a, $f6 + ld a, "0" .asm_15c22 - sub $f6 + sub "0" ret ; 15c25 Function15c25: ; 15c25 - ld hl, $d040 + ld hl, MartPointer ld a, [hli] ld h, [hl] ld l, a push hl inc hl ld bc, DefaultFlypoint - ld de, $d0f1 + ld de, CurMart + 1 .asm_15c33 ld a, [hli] ld [de], a inc de cp $ff jr z, .asm_15c4b + push de ld a, [hli] ld e, a @@ -31009,7 +31030,7 @@ Function15c25: ; 15c25 push hl ld h, b ld l, c - call $5bf0 + call GetMartPrice ld b, h ld c, l pop hl @@ -31019,7 +31040,7 @@ Function15c25: ; 15c25 .asm_15c4b pop hl ld a, [hl] - ld [$d0f0], a + ld [CurMart], a ret ; 15c51 @@ -31028,13 +31049,11 @@ INCBIN "baserom.gbc", $15c51, $15c62 - $15c51 Function15c62: ; 15c62 call FadeToMenu - ld a, $2 - ld hl, $4000 - rst FarCall + callba Function8000 xor a - ld [WalkingY], a - ld a, $1 - ld [WalkingX], a + ld [$d046], a + ld a, 1 + ld [$d045], a .asm_15c74 call Function15cef jr nc, .asm_15c74 @@ -31050,7 +31069,7 @@ Function15c7d: ; 15c7d ld l, a pop af ld e, a - ld d, $0 + ld d, 0 add hl, de add hl, de ld a, [hli] @@ -31067,7 +31086,7 @@ Function15c91: ; 15c91 ld a, [hl] and a jp z, Function15d83 - cp $1 + cp 1 jp z, Function15da5 jp Function15de2 ; 15ca3 @@ -31075,15 +31094,23 @@ Function15c91: ; 15c91 Function15ca3: ; 15ca3 ld a, [EngineBuffer1] ld e, a - ld d, $0 - ld hl, $5cb0 + ld d, 0 + ld hl, .data_15cb0 add hl, de add hl, de add hl, de ret ; 15cb0 -INCBIN "baserom.gbc", $15cb0, $15cef - $15cb0 +.data_15cb0 ; 15cb0 + dwb $5cbf, 0 + dwb $5ccb, 0 + dwb $5cd7, 1 + dwb $5ce3, 0 + dwb $5cbf, 2 +; 15cbf + +INCBIN "baserom.gbc", $15cbf, $15cef - $15cbf Function15cef: ; 15cef @@ -31346,8 +31373,34 @@ Function15efd: ; 15efd ret ; 15f73 -INCBIN "baserom.gbc", $15f73, $15fc3 - $15f73 +UnknownText_0x15f73: ; 0x15f73 + text_jump UnknownText_0x1c4f33, BANK(UnknownText_0x1c4f33) + db "@" +; 0x15f78 +UnknownText_0x15f78: ; 0x15f78 + text_jump UnknownText_0x1c4f3e, BANK(UnknownText_0x1c4f3e) + db "@" +; 0x15f7d + +INCBIN "baserom.gbc", $15f7d, $15f83 - $15f7d + +UnknownText_0x15f83: ; 0x15f83 + text_jump UnknownText_0x1c4f62, BANK(UnknownText_0x1c4f62) + db "@" +; 0x15f88 + +INCBIN "baserom.gbc", $15f88, $15fb9 - $15f88 + +UnknownText_0x15fb9: ; 0x15fb9 + text_jump UnknownText_0x1c500d, BANK(UnknownText_0x1c500d) + db "@" +; 0x15fbe + +UnknownText_0x15fbe: ; 0x15fbe + text_jump UnknownText_0x1c502e, BANK(UnknownText_0x1c502e) + db "@" +; 0x15fc3 Function15fc3: ; 15fc3 call WaitSFX @@ -31566,7 +31619,453 @@ Function160a1: ; 160a1 jp $600d ; 160a9 -INCBIN "baserom.gbc", $160a9, $16e1d - $160a9 + +Marts: ; 160a9 + dw Mart0 + dw Mart1 + dw Mart2 + dw Mart3 + dw Mart4 + dw Mart5 + dw Mart6 + dw Mart7 + dw Mart8 + dw Mart9 + dw Mart10 + dw Mart11 + dw Mart12 + dw Mart13 + dw Mart14 + dw Mart15 + dw Mart16 + dw Mart17 + dw Mart18 + dw Mart19 + dw Mart20 + dw Mart21 + dw Mart22 + dw Mart23 + dw Mart24 + dw Mart25 + dw Mart26 + dw Mart27 + dw Mart28 + dw Mart29 + dw Mart30 + dw Mart31 + dw Mart32 + dw Mart33 +MartsEnd +; 160ed + + +Mart0: ; 160ed + db 4 ; # items + db POTION + db ANTIDOTE + db PARLYZ_HEAL + db AWAKENING + db $ff +; 160f3 + +Mart1: ; 160f3 + db 5 ; # items + db POKE_BALL + db POTION + db ANTIDOTE + db PARLYZ_HEAL + db AWAKENING + db $ff +; 160fa + +Mart2: ; 160fa + db 10 ; # items + db POKE_BALL + db POTION + db ESCAPE_ROPE + db ANTIDOTE + db PARLYZ_HEAL + db AWAKENING + db X_DEFEND + db X_ATTACK + db X_SPEED + db FLOWER_MAIL + db $ff +; 16106 + +Mart3: ; 16106 + db 9 ; # items + db CHARCOAL + db POKE_BALL + db POTION + db SUPER_POTION + db ESCAPE_ROPE + db REPEL + db ANTIDOTE + db PARLYZ_HEAL + db FLOWER_MAIL + db $ff +; 16111 + +Mart4: ; 16111 + db 5 ; # items + db POTION + db SUPER_POTION + db HYPER_POTION + db FULL_HEAL + db REVIVE + db $ff +; 16118 + +Mart5: ; 16118 + db 7 ; # items + db POTION + db SUPER_POTION + db ANTIDOTE + db PARLYZ_HEAL + db AWAKENING + db BURN_HEAL + db ICE_HEAL + db $ff +; 16121 + +Mart6: ; 16121 + db 8 ; # items + db POKE_BALL + db GREAT_BALL + db ESCAPE_ROPE + db REPEL + db REVIVE + db FULL_HEAL + db POKE_DOLL + db FLOWER_MAIL + db $ff +; 1612b + +Mart7: ; 1612b + db 7 ; # items + db X_SPEED + db X_SPECIAL + db X_DEFEND + db X_ATTACK + db DIRE_HIT + db GUARD_SPEC + db X_ACCURACY + db $ff +; 16134 + +Mart8: ; 16134 + db 5 ; # items + db PROTEIN + db IRON + db CARBOS + db CALCIUM + db HP_UP + db $ff +; 1613b + +Mart9: ; 1613b + db 3 ; # items + db TM_41 + db TM_48 + db TM_33 + db $ff +; 16140 + +Mart10: ; 16140 + db 4 ; # items + db TM_41 + db TM_48 + db TM_33 + db TM_02 + db $ff +; 16146 + +Mart11: ; 16146 + db 4 ; # items + db TM_41 + db TM_48 + db TM_33 + db TM_08 + db $ff +; 1614c + +Mart12: ; 1614c + db 5 ; # items + db TM_41 + db TM_48 + db TM_33 + db TM_02 + db TM_08 + db $ff +; 16153 + +Mart13: ; 16153 + db 9 ; # items + db GREAT_BALL + db SUPER_POTION + db HYPER_POTION + db ANTIDOTE + db PARLYZ_HEAL + db AWAKENING + db ICE_HEAL + db SUPER_REPEL + db SURF_MAIL + db $ff +; 1615e + +Mart14: ; 1615e + db 10 ; # items + db POKE_BALL + db GREAT_BALL + db POTION + db SUPER_POTION + db ANTIDOTE + db PARLYZ_HEAL + db AWAKENING + db BURN_HEAL + db ICE_HEAL + db REVIVE + db $ff +; 1616a + +Mart15: ; 1616a + db 4 ; # items + db TINYMUSHROOM + db SLOWPOKETAIL + db POKE_BALL + db POTION + db $ff +; 16170 + +Mart16: ; 16170 + db 9 ; # items + db RAGECANDYBAR + db GREAT_BALL + db SUPER_POTION + db HYPER_POTION + db ANTIDOTE + db PARLYZ_HEAL + db SUPER_REPEL + db REVIVE + db FLOWER_MAIL + db $ff +; 1617b + +Mart17: ; 1617b + db 9 ; # items + db GREAT_BALL + db ULTRA_BALL + db HYPER_POTION + db MAX_POTION + db FULL_HEAL + db REVIVE + db MAX_REPEL + db X_DEFEND + db X_ATTACK + db $ff +; 16186 + +Mart18: ; 16186 + db 9 ; # items + db ULTRA_BALL + db HYPER_POTION + db FULL_HEAL + db REVIVE + db ANTIDOTE + db PARLYZ_HEAL + db AWAKENING + db BURN_HEAL + db FLOWER_MAIL + db $ff +; 16191 + +Mart19: ; 16191 + db 7 ; # items + db GREAT_BALL + db SUPER_POTION + db SUPER_REPEL + db ANTIDOTE + db PARLYZ_HEAL + db AWAKENING + db BURN_HEAL + db $ff +; 1619a + +Mart20: ; 1619a + db 9 ; # items + db GREAT_BALL + db ULTRA_BALL + db SUPER_POTION + db SUPER_REPEL + db FULL_HEAL + db X_DEFEND + db X_ATTACK + db DIRE_HIT + db SURF_MAIL + db $ff +; 161a5 + +Mart21: ; 161a5 + db 8 ; # items + db GREAT_BALL + db POTION + db SUPER_POTION + db MAX_REPEL + db ANTIDOTE + db PARLYZ_HEAL + db AWAKENING + db BURN_HEAL + db $ff +; 161af + +Mart22: ; 161af + db 8 ; # items + db ULTRA_BALL + db SUPER_POTION + db HYPER_POTION + db REVIVE + db PARLYZ_HEAL + db AWAKENING + db BURN_HEAL + db LITEBLUEMAIL + db $ff +; 161b9 + +Mart23: ; 161b9 + db 7 ; # items + db POTION + db SUPER_POTION + db HYPER_POTION + db MAX_POTION + db REVIVE + db SUPER_REPEL + db MAX_REPEL + db $ff +; 161c2 + +Mart24: ; 161c2 + db 10 ; # items + db POKE_BALL + db GREAT_BALL + db ULTRA_BALL + db ESCAPE_ROPE + db FULL_HEAL + db ANTIDOTE + db BURN_HEAL + db ICE_HEAL + db AWAKENING + db PARLYZ_HEAL + db $ff +; 161ce + +Mart25: ; 161ce + db 5 ; # items + db TM_10 + db TM_11 + db TM_17 + db TM_18 + db TM_37 + db $ff +; 161d5 + +Mart26: ; 161d5 + db 3 ; # items + db POKE_DOLL + db LOVELY_MAIL + db SURF_MAIL + db $ff +; 161da + +Mart27: ; 161da + db 5 ; # items + db HP_UP + db PROTEIN + db IRON + db CARBOS + db CALCIUM + db $ff +; 161e1 + +Mart28: ; 161e1 + db 7 ; # items + db X_ACCURACY + db GUARD_SPEC + db DIRE_HIT + db X_ATTACK + db X_DEFEND + db X_SPEED + db X_SPECIAL + db $ff +; 161ea + +Mart29: ; 161ea + db 7 ; # items + db GREAT_BALL + db ULTRA_BALL + db SUPER_POTION + db HYPER_POTION + db FULL_HEAL + db MAX_REPEL + db FLOWER_MAIL + db $ff +; 161f3 + +Mart30: ; 161f3 + db 8 ; # items + db GREAT_BALL + db ULTRA_BALL + db HYPER_POTION + db MAX_POTION + db FULL_HEAL + db X_ATTACK + db X_DEFEND + db FLOWER_MAIL + db $ff +; 161fd + +Mart31: ; 161fd + db 6 ; # items + db POKE_DOLL + db FRESH_WATER + db SODA_POP + db LEMONADE + db REPEL + db PORTRAITMAIL + db $ff +; 16205 + +Mart32: ; 16205 + db 7 ; # items + db ULTRA_BALL + db MAX_REPEL + db HYPER_POTION + db MAX_POTION + db FULL_RESTORE + db REVIVE + db FULL_HEAL + db $ff +; 1620e + +Mart33: ; 1620e + db 4 ; # items + db ENERGYPOWDER + db ENERGY_ROOT + db HEAL_POWDER + db REVIVAL_HERB + db $ff +; 16214 + +DefaultMart: ; 16214 + db 2 ; # items + db POKE_BALL + db POTION + db $ff +; 16218 + + +INCBIN "baserom.gbc", $16218, $16e1d - $16218 + Function16e1d: ; 16e1d call $6ed6 @@ -34180,9 +34679,7 @@ Function24fbf: ; 24fbf Function24fc9: ; 24fc9 - ld a, $3 - ld hl, $5486 - rst FarCall + callba GetItemPrice ld a, d ld [Buffer1], a ld a, e @@ -34194,9 +34691,7 @@ Function24fc9: ; 24fc9 ; 24fe1 Function24fe1: ; 24fe1 - ld a, $3 - ld hl, $5486 - rst FarCall + callba GetItemPrice ld a, d ld [Buffer1], a ld a, e diff --git a/wram.asm b/wram.asm index 7e744b989..a2a0e61d0 100644 --- a/wram.asm +++ b/wram.asm @@ -928,6 +928,7 @@ EngineBuffer1: ; d03e CurFruit: ; d03f ds 1 +MartPointer: ; d040 ds 2 MovementAnimation: ; d042 @@ -983,7 +984,13 @@ VramState: ; d0ed ; flickers when climbing waterfall ds 1 - ds 24 + ds 2 + +CurMart: ; d0f0 + ds 16 +CurMartEnd + + ds 6 CurItem: ; d106 ds 1 From 94e9a3f7649b95eff276d8a42b820b74bad5c199 Mon Sep 17 00:00:00 2001 From: yenatch Date: Fri, 9 Aug 2013 16:24:58 -0400 Subject: [PATCH 46/84] specials cleanup --- main.asm | 190 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 177 insertions(+), 13 deletions(-) diff --git a/main.asm b/main.asm index 91ec5fe31..786b9f19b 100644 --- a/main.asm +++ b/main.asm @@ -11511,7 +11511,7 @@ GetBaseData: ; 3856 ; 389c -GetCurNick; 389c +GetCurNick: ; 389c ld a, [CurPartyMon] ld hl, PartyMonNicknames @@ -19798,7 +19798,7 @@ SpecialGiveShuckle: ; 7305 dec a ld hl, PartyMon1Nickname call SkipNames - ld de, .Shuckie + ld de, SpecialShuckleNick call CopyName2 ; OT. @@ -19806,7 +19806,7 @@ SpecialGiveShuckle: ; 7305 dec a ld hl, PartyMon1OT call SkipNames - ld de, .Mania + ld de, SpecialShuckleOT call CopyName2 ; Bittable2 flag for this event. @@ -19822,14 +19822,164 @@ SpecialGiveShuckle: ; 7305 ld [ScriptVar], a ret -.Mania +SpecialShuckleOT: db "MANIA@" -.Shuckie +SpecialShuckleNick: db "SHUCKIE@" ; 737e -INCBIN "baserom.gbc", $737e, $746e - $737e +SpecialReturnShuckle: ; 737e + callba Function50000 + jr c, .asm_73e6 + + ld a, [CurPartySpecies] + cp SHUCKLE + jr nz, .DontReturn + + ld a, [CurPartyMon] + ld hl, PartyMon1ID + ld bc, PartyMon2 - PartyMon1 + call AddNTimes + +; OT ID + ld a, [hli] + cp $2 + jr nz, .DontReturn + ld a, [hl] + cp $6 + jr nz, .DontReturn + +; OT + ld a, [CurPartyMon] + ld hl, PartyMon1OT + call SkipNames + ld de, SpecialShuckleOT +.CheckOT + ld a, [de] + cp [hl] + jr nz, .DontReturn + cp "@" + jr z, .asm_73bb + inc de + inc hl + jr .CheckOT + +.asm_73bb + callba Functione538 + jr c, .asm_73f1 + ld a, [CurPartyMon] + ld hl, PartyMon1Happiness + ld bc, PartyMon2 - PartyMon1 + call AddNTimes + ld a, [hl] + cp 150 + ld a, $3 + jr nc, .asm_73e2 + xor a + ld [$d10b], a + callab Functione039 + ld a, $2 + +.asm_73e2 + ld [ScriptVar], a + ret + +.asm_73e6 + ld a, $1 + ld [ScriptVar], a + ret + +.DontReturn + xor a + ld [ScriptVar], a + ret + +.asm_73f1 + ld a, $4 + ld [ScriptVar], a + ret +; 73f7 + +Function73f7: ; 73f7 + callba Function50000 + jr c, .asm_740e + ld a, [CurPartySpecies] + ld [ScriptVar], a + ld [$d265], a + call GetPokemonName + jp Function746e + +.asm_740e + xor a + ld [ScriptVar], a + ret +; 7413 + +Function7413: ; 7413 + ld hl, Data7459 + jr Function7420 + +Function7418: ; 7418 + ld hl, Data7462 + jr Function7420 + +Function741d: ; 741d + ld hl, Data746b + +Function7420: ; 7420 + push hl + callba Function50000 + pop hl + jr c, .asm_744e + ld a, [CurPartySpecies] + cp EGG + jr z, .asm_7453 + push hl + call GetCurNick + call Function746e + pop hl + call RNG +.next + sub [hl] + jr c, .asm_7444 + inc hl + inc hl + inc hl + jr .next + +.asm_7444 + inc hl + ld a, [hli] + ld [ScriptVar], a + ld c, [hl] + call ChangeHappiness + ret + +.asm_744e + xor a + ld [ScriptVar], a + ret + +.asm_7453 + ld a, $1 + ld [ScriptVar], a + ret +; 7459 + +Data7459: ; 7459 + db $4c, $02, $09 + db $80, $03, $0a + db $ff, $04, $0b + +Data7462: ; 7462 + db $9a, $02, $0c + db $4c, $03, $0d + db $ff, $04, $0e + +Data746b: ; 746b + db $ff, $02, $12 +; 746e Function746e: ; 746e ld hl, StringBuffer1 @@ -19838,7 +19988,9 @@ Function746e: ; 746e jp CopyBytes ; 747a -INCBIN "baserom.gbc", $747a, $747b - $747a +Function747a: ; 747a + ret +; 747b SECTION "bank2",DATA,BANK[$2] @@ -19851,7 +20003,7 @@ Function8000: ; 8000 call ClearSprites ld hl, TileMap ld bc, $0168 - ld a, $7f + ld a, " " call ByteFill ld hl, AttrMap ld bc, $0168 @@ -21049,7 +21201,7 @@ SpecialsPointers: ; c029 dbw $09, $6feb dbw $09, $7043 dbw BANK(SpecialGiveShuckle), SpecialGiveShuckle - dbw $01, $737e + dbw BANK(SpecialReturnShuckle), SpecialReturnShuckle dbw $01, $73f7 dbw BANK(SpecialCheckPokerus),SpecialCheckPokerus dbw BANK(Function24b25), Function24b25 @@ -26227,7 +26379,7 @@ PokemonActionSubmenu: ; 12a88 ld a, $9 ld hl, $4d19 rst FarCall - call $389c + call GetCurNick ld a, [MenuSelection] ld hl, .Actions ld de, 3 @@ -26346,7 +26498,7 @@ GiveTakePartyMonItem: ; 12b60 call Function1c07 jr c, .asm_12ba6 - call $389c + call GetCurNick ld hl, StringBuffer1 ld de, $d050 ld bc, $b @@ -26669,7 +26821,7 @@ Function12d45: ; 12d45 jr nc, .asm_12dbe call GetPartyItemLocation ld [hl], $0 - call $389c + call GetCurNick ld hl, $6de7 call Function1d67 jr .asm_12dc6 @@ -52738,7 +52890,19 @@ Function4f301: ; 4f301 SECTION "bank14",DATA,BANK[$14] -INCBIN "baserom.gbc", $50000, $5001d - $50000 +Function50000: ; 50000 + call Function2ed3 + xor a + ld [PartyMenuActionText], a + call WhiteBGMap + call Function5003f + call WaitBGMap + call Function32f9 + call DelayFrame + call PartyMenuSelect + call Function2b74 + ret +; 5001d Function5001d: ; 5001d From 14160a180f8a898d2c282155e32a3c907083cba0 Mon Sep 17 00:00:00 2001 From: yenatch Date: Fri, 9 Aug 2013 17:42:04 -0400 Subject: [PATCH 47/84] hidden power type/power calculation --- battle/effect_commands.asm | 6 +-- battle/hidden_power.asm | 108 +++++++++++++++++++++++++++++++++++++ main.asm | 6 ++- 3 files changed, 114 insertions(+), 6 deletions(-) create mode 100644 battle/hidden_power.asm diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index f52dfa483..afe822a16 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -10623,11 +10623,7 @@ BattleCommand6d: ; 37be8 ld a, [AttackMissed] and a ret nz - - ld a, $3e - ld hl, $7ced - rst FarCall - + callba GetHiddenPower ret ; 37bf4 diff --git a/battle/hidden_power.asm b/battle/hidden_power.asm new file mode 100644 index 000000000..995acea2d --- /dev/null +++ b/battle/hidden_power.asm @@ -0,0 +1,108 @@ +GetHiddenPower: ; fbced +; Override Hidden Power's type and power based on the actor's DVs. + + ld hl, BattleMonDVs + ld a, [hBattleTurn] + and a + jr z, .GotDVs + ld hl, EnemyMonDVs +.GotDVs + + +; Power: + +; Take the top bit from... + +; Atk + ld a, [hl] + swap a + and 8 + ld b, a +; Def + ld a, [hli] + and 8 + srl a + or b + ld b, a +; Spd + ld a, [hl] + swap a + and 8 + srl a + srl a + or b + ld b, a +; Spc + ld a, [hl] + and 8 + srl a + srl a + srl a + or b + ld b, a + +; * 5 + add a + add a + add b + ld b, a + +; + (Spc & 3) + ld a, [hld] + and 3 + add b + +; / 2 + srl a + +; + 30 + add 30 +; + 1 + inc a + ld d, a + + +; Type: + +; Def & 3 + ld a, [hl] + and 3 + ld b, a + +; + (Atk & 3) << 2 + ld a, [hl] + and 3 << 4 + swap a + add a + add a + or b + +; Skip Normal + inc a + +; Skip type 6 (unused) + cp 6 + jr c, .GotType + inc a + +; Skip unused types between Steel and Fire + cp STEEL + 1 + jr c, .GotType + add FIRE - (STEEL + 1) + + +.GotType + push af + ld a, BATTLE_VARS_MOVE_TYPE + call GetBattleVarPair + pop af + ld [hl], a + + ld a, d + push af + callba BattleCommand06 + pop af + ld d, a + ret +; fbd54 + diff --git a/main.asm b/main.asm index 786b9f19b..9ce03109a 100644 --- a/main.asm +++ b/main.asm @@ -66168,7 +66168,11 @@ INCBIN "baserom.gbc", $fba2e, $fbbfc - $fba2e INCLUDE "battle/magikarp_length.asm" -INCBIN "baserom.gbc", $fbccf, $fbda4 - $fbccf +INCBIN "baserom.gbc", $fbccf, $fbced - $fbccf + +INCLUDE "battle/hidden_power.asm" + +INCBIN "baserom.gbc", $fbd54, $fbda4 - $fbd54 DoWeatherModifiers: ; fbda4 From 693171a858a556fdca1f2cd22ffaa46a12d22c69 Mon Sep 17 00:00:00 2001 From: yenatch Date: Mon, 12 Aug 2013 12:33:28 -0400 Subject: [PATCH 48/84] generate a mapfile and symfile on compile the symfile is convenient and the mapfile is a better source for labels.json --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index d66ab3257..f44b4eb89 100644 --- a/Makefile +++ b/Makefile @@ -21,7 +21,7 @@ pokecrystal.o: $(TEXTFILES:.asm=.tx) wram.asm constants.asm $(shell find constan @rm -f $@ pokecrystal.gbc: pokecrystal.o - rgblink -o $@ $< + rgblink -n pokecrystal.sym -m pokecrystal.map -o $@ $< rgbfix -Cjv -i BYTE -k 01 -l 0x33 -m 0x10 -p 0 -r 3 -t PM_CRYSTAL $@ pngs: From 27e82a68c9ec4374190f0a0814d39747e0b12e69 Mon Sep 17 00:00:00 2001 From: yenatch Date: Mon, 12 Aug 2013 12:36:27 -0400 Subject: [PATCH 49/84] rework install instructions apt-cyg no longer works and rgbds has been updated --- INSTALL.md | 135 +++++++++++++++++++++++++++-------------------------- 1 file changed, 70 insertions(+), 65 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index 50b180c9a..e74db0e9e 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,6 +1,6 @@ # Getting Started -Compiling **pokecrystal.gbc** requires a certain **Pokemon Crystal** rom: +Assembling **pokecrystal.gbc** requires a certain **Pokemon Crystal** rom: ``` Pokemon - Crystal Version (UE) (V1.0) [C][!].gbc @@ -10,11 +10,16 @@ md5: 9f2922b235a5eeb78d65594e82ef5dde Save it as **baserom.gbc** in the repository. -Feel free to ask us on **[nucleus.kafuka.org #skeetendo](https://kiwiirc.com/client/irc.nolimitzone.com/?#skeetendo)** if something goes wrong! +Feel free to ask us on +**[nucleus.kafuka.org #skeetendo](https://kiwiirc.com/client/irc.nolimitzone.com/?#skeetendo)** +if something goes wrong. + + # Windows -If you are on Windows and can't install Linux, **Cygwin** is a great alternative. +If you're on Windows and can't install Linux, **Cygwin** is a great alternative. + ## Installing Cygwin @@ -25,15 +30,21 @@ Cygwin provides a virtual Linux environment on Windows systems. Just get **setup During the install: * Keep the defaults. - * Most mirrors are molasses. Use **http://mirrors.kernel.org**. - -* From the package selection, select **wget**. +* From the package selection, pick: + * **wget** + * **make** + * **git** + * **python** + * **python-setuptools** + * **unzip** ## Using Cygwin -Launch the **Cygwin terminal**. Maybe you know your way around the Linux terminal, **bash**. If not, a crash course: +Launch the **Cygwin terminal**. +Maybe you know your way around the Linux terminal ( **bash** ). +If not, a crash course: ```bash # list files in current directory ls @@ -48,119 +59,113 @@ cd /away/we/go ## Getting up and running -We need a couple more things to be able to compile. +We need three things to assemble the source into a rom. +1. **rgbds** +2. a **pokecrystal** repository +3. a **base rom** -If you're feeling lazy, just paste these commands into your terminal. - - -**apt-cyg** lets you install new packages without running Cygwin setup. +- +We use **rgbds** to spit out a Game Boy rom from source. ```bash -wget http://apt-cyg.googlecode.com/svn/trunk/apt-cyg -chmod +x apt-cyg -mv apt-cyg /usr/local/bin/ +cd /usr/local/bin +wget http://iimarck.us/etc/rgbds-20130811.zip +unzip -j rgbds-20130811.zip +rm rgbds-20130811.zip ``` -Now we can use apt-cyg to install everything else. - -```bash -apt-cyg install make git python python-setuptools unzip -easy_install pip -``` - -**rgbds** will let you compile Game Boy roms. - -```bash -wget http://diyhpl.us/~bryan/irc/pokered/rgbds/rgbds-0.0.1.zip -unzip rgbds-0.0.1.zip -mv rgbds-0.0.1/* /usr/local/bin -rm -r rgbds-0.0.1* -``` - -Set up the **pokecrystal** repository: - +The **pokecrystal** repository contains the source files used to create the rom. ```bash cd ~ git clone https://github.com/kanzure/pokecrystal cd pokecrystal # install python requirements +easy_install pip pip install -r requirements.txt ``` -## Don't forget baserom.gbc!! +Not everything is included in the source yet. +Missing patches are copied from a **base rom** (not included). -Make sure you downloaded a base rom. Name it **baserom.gbc**. +``` +Pokemon - Crystal Version (UE) (V1.0) [C][!].gbc +md5: 9f2922b235a5eeb78d65594e82ef5dde +``` + +Name it **baserom.gbc**. + +- Now you should be able to build **pokecrystal.gbc** for the first time. - -This compiles a new rom from the source code, with any patches filled in from the base rom. +This assembles a new rom from the source code. ```bash make ``` This ought to take **between 3 and 15 seconds**, depending on your computer. -If you see `cmp baserom.gbc pokecrystal.gbc` as the last line, the build was successful! +If the last line is `cmp baserom.gbc pokecrystal.gbc`, the build was successful! -Your first compile processes every source file at once. After that, **only modified source files have to be reprocessed**, so compiling again should be a few seconds faster. +Your first build processes every source file at once. +After that, **only modified source files have to be processed again**, +so compiling again should be a few seconds faster. -Other **make targets** that may come in handy: - -`make clean` deletes any preprocessed source files (.tx), rgbds object files and pokecrystal.gbc, in case something goes wrong. - -`make pngs` decompresses any **lz** files in gfx/ and then exports any graphics files to **png**. - -`make lzs` does the reverse. This is already part of the build process, so **modified pngs will automatically be converted to 2bpp and lz-compressed** without any additional work. # Linux ```bash sudo apt-get install make gcc bison git python python-setuptools - -# unittest2 is required if using python2.6 -sudo easy_install unittest2 sudo easy_install pip -# download rgbds source code +# install rgbds git clone git://github.com/bentley/rgbds.git - -# compile rgbds cd rgbds make sudo make install -# check if rgbasm is installed now -which rgbasm +cd .. # download pokecrystal git clone git://github.com/kanzure/pokecrystal.git cd pokecrystal - -# install python requirements pip install -r requirements.txt - -# use hexdump to diff binary files -git config diff.hex.textconv hexdump ``` -To compile the rom from asm source: +Put your base rom in the pokecrystal repository. Name it **baserom.gbc**. + +To compile the rom from source: ```bash make ``` -That will take between 3 and 15 seconds, depending on your computer. If you see `cmp baserom.gbc pokecrystal.gbc` as the last line, the build was successful! Rejoice! +That will take between 3 and 15 seconds, depending on your computer. +If you see `cmp baserom.gbc pokecrystal.gbc` as the last line, the build was successful! Rejoice! + # Now what? -**main.asm** is a good starting point. The structure of the source is laid out here. +**[pokecrystal.asm](https://github.com/kanzure/pokecrystal/blob/master/pokecrystal.asm)** is a good starting point. +The structure of the source is laid out here. -* **Can't find something?** Anyone can add to the source. There's lots to be uncovered. -* **Do your own thing!** The asm source is hack-friendly, and the supplementary scripts in extras/ can be used for other projects. +* Other **make targets** that may come in handy: + + * `make clean` deletes any preprocessed source files (.tx), rgbds object files and pokecrystal.gbc. + * `make pngs` decompresses any **lz** files in gfx/ and then exports any graphics files to **png**. + * `make lzs` does the reverse. This is already part of the build process, so **modified pngs will automatically be converted to 2bpp and lz-compressed** without any additional work. + + +* **Can't find something?** +Anyone can add to the source. There's lots to be uncovered. + +* **Do your own thing!** +The asm source is hack-friendly, and the supplementary scripts in extras/ can be used for other projects. + +We'll be happy to answer any **questions** on +**[nucleus.kafuka.org #skeetendo](https://kiwiirc.com/client/irc.nolimitzone.com/?#skeetendo)**. -* We'll be happy to answer any **questions** on **[nucleus.kafuka.org #skeetendo](https://kiwiirc.com/client/irc.nolimitzone.com/?#skeetendo)**. From 7a8eb4e434cb1e050634a3aecb0dda5124cc52f1 Mon Sep 17 00:00:00 2001 From: yenatch Date: Mon, 12 Aug 2013 16:33:17 -0400 Subject: [PATCH 50/84] sort out player/battle backpic asm --- main.asm | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/main.asm b/main.asm index 9ce03109a..524cdba32 100644 --- a/main.asm +++ b/main.asm @@ -35691,7 +35691,7 @@ Function2715c: ; 2715c jr .asm_27177 .asm_27171 - callba GetPlayerBackpic + callba GetBattleBackpic .asm_27177 callba Function3f47c @@ -47540,13 +47540,13 @@ Function3fbd6: ; 3fbd6 ; 3fbf8 Function3fbf8: ; 3fbf8 - call GetPlayerBackpic + call GetBattleBackpic call Function3fc30 ret ; 3fbff -GetPlayerBackpic: ; 3fbff +GetBattleBackpic: ; 3fbff ; Load the player character's backpic (6x6) into VRAM starting from $9310. ; Special exception for Dude. @@ -57081,9 +57081,7 @@ Function86810: ; 86810 ld bc, $0168 ld a, $7f call ByteFill - ld a, $22 - ld hl, $4825 - rst FarCall + callba GetPlayerBackpic ld a, $31 ld [$ffad], a ld hl, $c51e @@ -57233,16 +57231,16 @@ GetPlayerIcon: ; 8832c ; Get the player icon corresponding to gender ; Male - ld de, $4000 ; KrissMIcon - ld b, $30 ; BANK(KrissMIcon) + ld de, ChrisSpriteGFX + ld b, BANK(ChrisSpriteGFX) ld a, [PlayerGender] bit 0, a jr z, .done ; Female - ld de, $7a40 ; KrissFIcon - ld b, $31 ; BANK(KrissFIcon) + ld de, KrisSpriteGFX + ld b, BANK(KrisSpriteGFX) .done ret @@ -57252,7 +57250,7 @@ GetPlayerIcon: ; 8832c INCBIN "baserom.gbc", $8833e, $88825 - $8833e -Function88825: ; 88825 +GetPlayerBackpic: ; 88825 ld a, [PlayerGender] bit 0, a jr z, .asm_88830 @@ -57260,8 +57258,8 @@ Function88825: ; 88825 ret .asm_88830 - ld hl, $7a1a - ld b, $a + ld hl, ChrisBackpic + ld b, BANK(ChrisBackpic) ld de, $9310 ld c, $31 ld a, $40 From 2fb8d10c235b8c737441f4d77225b760a048605b Mon Sep 17 00:00:00 2001 From: yenatch Date: Wed, 14 Aug 2013 05:38:12 -0400 Subject: [PATCH 51/84] more bank 2 incbins --- main.asm | 876 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 863 insertions(+), 13 deletions(-) diff --git a/main.asm b/main.asm index 524cdba32..f8665fef3 100644 --- a/main.asm +++ b/main.asm @@ -20014,7 +20014,43 @@ Function8000: ; 8000 ret ; 8029 -INCBIN "baserom.gbc", $8029, $807e - $8029 +Function8029: ; 8029 + ld a, $ff + ld [$d4cd], a + ld [$d4ce], a + ld a, $0 + ld hl, $4071 + call Function19a6 + ld b, $0 + call $408f + ld a, $0 + call GetMapObject + ld hl, $0008 + add hl, bc + ld e, $80 + ld a, [$d45b] + bit 2, a + jr nz, .asm_8059 + ld a, [PlayerGender] + bit 0, a + jr z, .asm_8059 + ld e, $90 + +.asm_8059 + ld [hl], e + ld a, $0 + ld [hConnectionStripLength], a + ld bc, MapObjects + ld a, $0 + ld [hConnectedMapWidth], a + ld de, $d4d6 + call Function8116 + ld a, $0 + ld [$d4cf], a + ret +; 8071 + +INCBIN "baserom.gbc", $8071, $807e - $8071 Function807e: ; 807e @@ -20031,7 +20067,18 @@ Function807e: ; 807e ret ; 808f -INCBIN "baserom.gbc", $808f, $80a1 - $808f +Function808f: ; 808f + push bc + ld a, [XCoord] + add $4 + ld d, a + ld a, [YCoord] + add $4 + ld e, a + pop bc + call Function807e + ret +; 80a1 Function80a1: ; 80a1 @@ -20051,7 +20098,34 @@ Function80a1: ; 80a1 ret ; 80b8 -INCBIN "baserom.gbc", $80b8, $80e7 - $80b8 +Function80b8: ; 80b8 + ld a, [XCoord] + add $4 + ld d, a + ld hl, MapX + sub [hl] + ld [hl], d + ld hl, $d721 + ld [hl], d + ld hl, MapX2 + ld [hl], d + ld d, a + ld a, [YCoord] + add $4 + ld e, a + ld hl, MapY + sub [hl] + ld [hl], e + ld hl, $d720 + ld [hl], e + ld hl, MapY2 + ld [hl], e + ld e, a + ld a, [$d4cd] + cp $0 + ret nz + ret +; 80e7 Function80e7: ; 80e7 @@ -20142,7 +20216,194 @@ Function811d: ; 811d ret ; 8177 -INCBIN "baserom.gbc", $8177, $8286 - $8177 +Function8177: ; 8177 + ld bc, $d72e + ld a, $1 +.asm_817c + ld [hConnectionStripLength], a + ld hl, $0001 + add hl, bc + ld a, [hl] + and a + jr z, .asm_81bb + ld hl, $0000 + add hl, bc + ld a, [hl] + cp $ff + jr nz, .asm_81bb + ld a, [XCoord] + ld d, a + ld a, [YCoord] + ld e, a + ld hl, $0003 + add hl, bc + ld a, [hl] + add $1 + sub d + jr c, .asm_81bb + cp $c + jr nc, .asm_81bb + ld hl, $0002 + add hl, bc + ld a, [hl] + add $1 + sub e + jr c, .asm_81bb + cp $b + jr nc, .asm_81bb + push bc + call Function80e7 + pop bc + jp c, Function81c9 + +.asm_81bb + ld hl, $0010 + add hl, bc + ld b, h + ld c, l + ld a, [hConnectionStripLength] + inc a + cp $10 + jr nz, .asm_817c + ret +; 81c9 + +Function81c9: ; 81c9 + ret +; 81ca + +Function81ca: ; 81ca + nop + ld a, [$d151] + cp $ff + ret z + ld hl, Table81d6 + rst JumpTable + ret +; 81d6 + +Table81d6: ; 81d6 + dw Function81e5 + dw Function81de + dw Function8232 + dw Function8239 +; 81de + +Function81de: ; 81de + ld a, [YCoord] + sub $1 + jr Function81ea + +Function81e5: ; 81e5 + ld a, [YCoord] + add $9 + +Function81ea: ; 81ea + ld d, a + ld a, [XCoord] + ld e, a + ld bc, $d72e + ld a, $1 +.asm_81f4 + ld [hConnectionStripLength], a + ld hl, $0001 + add hl, bc + ld a, [hl] + and a + jr z, .asm_8224 + ld hl, $0002 + add hl, bc + ld a, d + cp [hl] + jr nz, .asm_8224 + ld hl, $0000 + add hl, bc + ld a, [hl] + cp $ff + jr nz, .asm_8224 + ld hl, $0003 + add hl, bc + ld a, [hl] + add $1 + sub e + jr c, .asm_8224 + cp $c + jr nc, .asm_8224 + push de + push bc + call Function80e7 + pop bc + pop de + +.asm_8224 + ld hl, $0010 + add hl, bc + ld b, h + ld c, l + ld a, [hConnectionStripLength] + inc a + cp $10 + jr nz, .asm_81f4 + ret +; 8232 + +Function8232: ; 8232 + ld a, [XCoord] + sub $1 + jr Function823e + +Function8239: ; 8239 + ld a, [XCoord] + add $a + +Function823e: ; 823e + ld e, a + ld a, [YCoord] + ld d, a + ld bc, $d72e + ld a, $1 +.asm_8248 + ld [hConnectionStripLength], a + ld hl, $0001 + add hl, bc + ld a, [hl] + and a + jr z, .asm_8278 + ld hl, $0003 + add hl, bc + ld a, e + cp [hl] + jr nz, .asm_8278 + ld hl, $0000 + add hl, bc + ld a, [hl] + cp $ff + jr nz, .asm_8278 + ld hl, $0002 + add hl, bc + ld a, [hl] + add $1 + sub d + jr c, .asm_8278 + cp $b + jr nc, .asm_8278 + push de + push bc + call Function80e7 + pop bc + pop de + +.asm_8278 + ld hl, $0010 + add hl, bc + ld b, h + ld c, l + ld a, [hConnectionStripLength] + inc a + cp $10 + jr nz, .asm_8248 + ret +; 8286 Function8286: ; 8286 @@ -20238,7 +20499,89 @@ Function830d: ; 830d ret ; 831e -INCBIN "baserom.gbc", $831e, $839e - $831e +Function831e: ; 831e + ld a, [$ffe0] + call Function1b1e + ld a, $3e + call Function1b3f + ld a, [CurFruit] + dec a + jr z, .asm_833b + ld a, [$ffe0] + ld b, a + ld c, $0 + ld d, $1 + call $4341 + call Function1b35 + +.asm_833b + ld a, $47 + call Function1b3f + ret +; 8341 + +Function8341: ; 8341 + push de + push bc + ld a, c + call GetMapObject + ld hl, $0000 + add hl, bc + ld a, [hl] + call Function1ae5 + ld d, b + ld e, c + pop bc + ld a, b + call GetMapObject + ld hl, $0000 + add hl, bc + ld a, [hl] + call Function1ae5 + ld hl, $0010 + add hl, bc + ld a, [hl] + ld hl, $0011 + add hl, bc + ld c, [hl] + ld b, a + ld hl, $0010 + add hl, de + ld a, [hl] + ld hl, $0011 + add hl, de + ld e, [hl] + ld d, a + pop af + call Function1b5f + ret +; 8379 + +Function8379: ; 8379 + call Function1b1e + call $4388 + call Function1b3f + ld a, $47 + call Function1b3f + ret +; 8388 + +Function8388: ; 8388 + ld a, [PlayerDirection] + srl a + srl a + and 3 + ld e, a + ld d, 0 + ld hl, .data_839a + add hl, de + ld a, [hl] + ret +; 839a + +.data_839a + db 8, 9, 10, 11 +; 839e Function839e: ; 839e @@ -20528,6 +20871,7 @@ Function84ef: ; 84ef INCBIN "baserom.gbc", $850b, $854b - $850b + GetPredefFn: ; 854b ; input: ; [$cfb4] id @@ -20645,7 +20989,40 @@ PredefPointers: ; 856b dwb $43ff, $2d ; 864c -INCBIN "baserom.gbc", $864c, $8a68 - $864c + +Function864c: ; 864c + call Function8d55 + jp nz, $4d59 + ld a, b + cp $ff + jr nz, .asm_865a + ld a, [SGBPredef] + +.asm_865a + cp $fc + jp z, $4ade + ld l, a + ld h, 0 + add hl, hl + ld de, $466f + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld de, Function8a60 + push de + jp [hl] +; 866f + +INCBIN "baserom.gbc", $866f, $8a60 - $866f + +Function8a60: ; 8a60 + push de + call $5809 + pop hl + jp $5809 +; 8a68 + CheckShininess: ; 0x8a68 ; given a pointer to Attack/Defense DV in bc, determine if monster is shiny. @@ -20672,8 +21049,55 @@ CheckShininess: ; 0x8a68 .NotShiny and a ; clear carry flag ret +; 8a88 -INCBIN "baserom.gbc", $8a88, $8ad1 - $8a88 + +Function8a88: ; 8a88 + ld a, [hl] + cp $a0 + jr c, .asm_8aa2 + ld a, [hli] + and $f + cp $a + jr c, .asm_8aa2 + ld a, [hl] + cp $a0 + jr c, .asm_8aa2 + ld a, [hl] + and $f + cp $a + jr c, .asm_8aa2 + scf + ret + +.asm_8aa2 + and a + ret +; 8aa4 + +Function8aa4: ; 8aa4 + push de + push bc + ld hl, $5ce6 + ld de, $cda9 + ld bc, $0010 + call CopyBytes + pop bc + pop de + ld a, c + ld [$cdac], a + ld a, b + ld [$cdad], a + ld a, e + ld [$cdae], a + ld a, d + ld [$cdaf], a + ld hl, $cda9 + call $5809 + ld hl, $5a86 + call $5809 + ret +; 8ad1 Function8ad1: ; 8ad1 @@ -20684,7 +21108,54 @@ Function8ad1: ; 8ad1 ret ; 8ade -INCBIN "baserom.gbc", $8ade, $8cb4 - $8ade +Function8ade: ; 8ade + ld hl, $cd9b + ld a, [$cda9] + ld e, a + ld d, $0 + add hl, de + ld e, l + ld d, h + ld a, [de] + and a + ld e, $5 + jr z, .asm_8af7 + dec a + ld e, $a + jr z, .asm_8af7 + ld e, $f + +.asm_8af7 + push de + ld hl, $cdb3 + ld bc, $0006 + ld a, [$cda9] + call AddNTimes + pop de + ld [hl], e + ret +; 8b07 + +Function8b07: ; 8b07 + call Function8d55 + ret z + ld hl, $4b2f + ld de, $d000 + ld bc, $0008 + ld a, $5 + call Function306b + ld hl, $4b37 + ld de, MartPointer + ld bc, $0008 + ld a, $5 + call Function306b + call Function96a4 + ld a, $1 + ld [hCGBPalUpdate], a + ret +; 8b2f + +INCBIN "baserom.gbc", $8b2f, $8cb4 - $8b2f Function8cb4: ; 8cb4 ld l, e @@ -20738,7 +21209,122 @@ Function8d55: ; 8d55 ret ; 8d59 -INCBIN "baserom.gbc", $8d59, $8e85 - $8d59 +Function8d59: ; 8d59 + ld a, b + cp $ff + jr nz, .asm_8d61 + ld a, [SGBPredef] + +.asm_8d61 + cp $fc + jp z, $56f3 + call $5673 + ld l, a + ld h, $0 + add hl, hl + ld de, $4d7a + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld de, $4d79 + push de + jp [hl] +; 8d79 + +Function8d79: ; 8d79 + ret +; 8d7a + +INCBIN "baserom.gbc", $8d7a, $8db8 - $8d7a + +Function8db8: ; 8db8 + ld hl, $5c67 + ld de, $d000 + ld c, $4 + call $5615 + ld hl, $5c67 + ld de, $d020 + ld c, $4 + call $5615 + ld hl, $5c67 + ld de, MartPointer + ld c, $2 + call $5615 + jr .asm_8e23 + + ld de, $d000 + call $5729 + push hl + call $5643 + call $573a + push hl + call $5643 + ld a, [EnemyHPPal] + ld l, a + ld h, $0 + add hl, hl + add hl, hl + ld bc, $68be + add hl, bc + call $5643 + ld a, [PlayerHPPal] + ld l, a + ld h, $0 + add hl, hl + add hl, hl + ld bc, $68be + add hl, bc + call $5643 + ld hl, $68ca + call $5643 + ld de, MartPointer + pop hl + call $5643 + pop hl + call $5643 + ld a, $1 + ld [SGBPredef], a + call Function96a4 + +.asm_8e23 + call Function8e85 + ld hl, AttrMap + ld bc, $0168 + ld a, $2 + call ByteFill + ld hl, $ce29 + ld bc, $080a + ld a, $0 + call $5663 + ld hl, $cde3 + ld bc, $070a + ld a, $1 + call $5663 + ld hl, AttrMap + ld bc, $040a + ld a, $2 + call $5663 + ld hl, $ce6f + ld bc, $050a + ld a, $3 + call $5663 + ld hl, $cebf + ld bc, $0109 + ld a, $4 + call $5663 + ld hl, $cec9 + ld bc, $0078 + ld a, $7 + call ByteFill + ld hl, $579c + ld de, $d050 + ld bc, $0030 + ld a, $5 + call Function306b + call $56b3 + ret +; 8e85 Function8e85: ; 8e85 @@ -20757,7 +21343,91 @@ Function8e85: ; 8e85 ret ; 8e9f -INCBIN "baserom.gbc", $8e9f, $9610 - $8e9f +Function8e9f: ; 8e9f + callba Function100dc0 + ld hl, $7311 + jr nc, .asm_8ead + ld hl, $7309 + +.asm_8ead + ld de, $d000 + ld bc, $0008 + ld a, $5 + call Function306b + ret +; 8eb9 + +Function8eb9: ; 8eb9 + ld a, [PlayerGender] + bit 0, a + jr z, .asm_8ec5 + ld hl, $7759 + jr .asm_8ec8 + +.asm_8ec5 + ld hl, $7729 + +.asm_8ec8 + ld de, $d000 + ld bc, $0030 + ld a, $5 + call Function306b + call Function96a4 + ld a, $1 + ld [hCGBPalUpdate], a + ret +; 8edb + +Function8edb: ; 8edb + ld de, $d000 + ld a, [$cda1] + ld l, a + ld h, $0 + add hl, hl + add hl, hl + ld bc, $68be + add hl, bc + call $5643 + ld a, [CurPartySpecies] + ld bc, TempMonDVs + call $574b + call $5643 + ld hl, $68ca + call $5643 + ld hl, $4f52 + ld de, $d018 + ld bc, $0018 + ld a, $5 + call Function306b + call Function9699 + ld hl, AttrMap + ld bc, $0814 + ld a, $1 + call $5663 + ld hl, $cf23 + ld bc, $000a + ld a, $2 + call ByteFill + ld hl, $ce4a + ld bc, $0202 + ld a, $3 + call $5663 + ld hl, $ce4c + ld bc, $0202 + ld a, $4 + call $5663 + ld hl, $ce4e + ld bc, $0202 + ld a, $5 + call $5663 + call $56b3 + call Function96a4 + ld a, $1 + ld [hCGBPalUpdate], a + ret +; 8f52 + +INCBIN "baserom.gbc", $8f52, $9610 - $8f52 Function9610: ; 9610 @@ -20805,7 +21475,83 @@ Function9630: ; 9630 ret ; 9643 -INCBIN "baserom.gbc", $9643, $9699 - $9643 +Function9643: ; 9643 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld a, $ff + ld [de], a + inc de + ld a, $7f + ld [de], a + inc de + ld c, $4 +.asm_9654 + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .asm_9654 + xor a + ld [de], a + inc de + ld [de], a + inc de + pop af + ld [rSVBK], a + ret +; 9663 + +Function9663: ; 9663 +.asm_9663 + push bc + push hl +.asm_9665 + ld [hli], a + dec c + jr nz, .asm_9665 + pop hl + ld bc, $0014 + add hl, bc + pop bc + dec b + jr nz, .asm_9663 + ret +; 9673 + +Function9673: ; 9673 + push af + push bc + push de + push hl + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, $d000 + ld c, $8 +.asm_9683 + ld a, $ff + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + xor a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + dec c + jr nz, .asm_9683 + pop af + ld [rSVBK], a + pop hl + pop de + pop bc + pop af + ret +; 9699 Function9699: ; 9699 @@ -20869,7 +21615,33 @@ Function96b3: ; 96b3 ret ; 96f3 -INCBIN "baserom.gbc", $96f3, $971a - $96f3 +Function96f3: ; 96f3 + ld hl, $cd9b + ld a, [$cda9] + ld e, a + ld d, $0 + add hl, de + ld e, l + ld d, h + ld a, [de] + inc a + ld e, a + ld hl, $ce0c + ld bc, $0028 + ld a, [$cda9] +.asm_970b + and a + jr z, .asm_9712 + add hl, bc + dec a + jr .asm_970b + +.asm_9712 + ld bc, $0208 + ld a, e + call $5663 + ret +; 971a Function971a: ; 971a @@ -20881,7 +21653,85 @@ Function971a: ; 971a ret ; 9729 -INCBIN "baserom.gbc", $9729, $9809 - $9729 +Function9729: ; 9729 + push de + callba Function3da85 + ld c, l + ld b, h + ld a, [TempBattleMonSpecies] + call $574b + pop de + ret +; 973a + +Function973a: ; 973a + push de + callba Function3da97 + ld c, l + ld b, h + ld a, [TempEnemyMonSpecies] + call $5764 + pop de + ret +; 974b + +Function974b: ; 974b + and a + jp nz, $57f9 + ld a, [$d45b] + bit 2, a + jr nz, .asm_9760 + ld a, [PlayerGender] + and a + jr z, .asm_9760 + ld hl, FalknerPalette + ret + +.asm_9760 + ld hl, $70ce + ret +; 9764 + +Function9764: ; 9764 + and a + jp nz, $57f9 + ld a, [TrainerClass] + ld l, a + ld h, $0 + add hl, hl + add hl, hl + ld bc, $70ce + add hl, bc + ret +; 9775 + +INCBIN "baserom.gbc", $9775, $97ee - $9775 + +Function97ee: ; 97ee + ld l, a + ld h, $0 + add hl, hl + add hl, hl + add hl, hl + ld bc, $68ce + add hl, bc + ret +; 97f9 + +Function97f9: ; 97f9 + push bc + call $57ee + pop bc + push hl + call CheckShininess + pop hl + ret nc + inc hl + inc hl + inc hl + inc hl + ret +; 9809 Function9809: ; 9809 ld a, [$cfbe] From 8ecd66f5d58087988fdd4a8aaffb0c380914da4c Mon Sep 17 00:00:00 2001 From: yenatch Date: Wed, 14 Aug 2013 05:42:28 -0400 Subject: [PATCH 52/84] replace more addresses with labels --- main.asm | 344 +++++++++++++++++++++++++++---------------------------- 1 file changed, 172 insertions(+), 172 deletions(-) diff --git a/main.asm b/main.asm index f8665fef3..f78a0a365 100644 --- a/main.asm +++ b/main.asm @@ -2039,7 +2039,7 @@ Functioncf8: ; cf8 ld a, $5 ld [rSVBK], a ld hl, $d0c0 - ld de, $d040 + ld de, MartPointer ld a, [rOBP0] ld b, a ld c, $1 @@ -11037,13 +11037,13 @@ CheckTrainerBattle: ; 360d ld a, b ld [CurFruit], a ld a, c - ld [$d040], a + ld [MartPointer], a jr .asm_367e ld a, $1 ld [CurFruit], a ld a, $ff - ld [$d040], a + ld [MartPointer], a .asm_367e call GetMapEventBank @@ -14356,7 +14356,7 @@ Function48b3: ; 48b3 and $3 or $0 call Function4690 - call $6ec1 + call Function6ec1 jr c, .asm_48eb ld de, SFX_STRENGTH call StartSFX @@ -14738,7 +14738,7 @@ Function4ade: ; 4ade Function4af0: ; 4af0 call Function4690 - call $6ec1 + call Function6ec1 jr c, Function4b17 call Function463f ld hl, $000b @@ -17809,7 +17809,7 @@ Function610f: ; 610f call ClearBox ld c, $3 call DelayFrames - call $61cd + call Function61cd call Functione5f ld c, $32 call DelayFrames @@ -18253,7 +18253,7 @@ INCBIN "baserom.gbc", $63ca, $63e2 - $63ca Function63e2: ; 63e2 call ClearTileMap call Functione5f - ld de, $4000 + ld de, Function4000 ld hl, $9600 ld bc, $391d call Functioneba @@ -18426,9 +18426,9 @@ Function6508: ; 6508 dec b jr nz, .asm_6530 push de - call $65d3 + call Function65d3 pop de - jp c, $65b5 + jp c, Function65b5 push hl push de ld [$d265], a @@ -18468,15 +18468,15 @@ Function6508: ; 6508 ld [hl], a ld a, [IsInBattle] and a - jp z, $65ca + jp z, Function65ca ld a, [CurPartyMon] ld b, a ld a, [CurBattleMon] cp b - jp nz, $65ca + jp nz, Function65ca ld a, [PlayerSubStatus5] bit 3, a - jp nz, $65ca + jp nz, Function65ca ld h, d ld l, e ld de, BattleMonMove1 @@ -18487,22 +18487,22 @@ Function6508: ; 6508 ld de, BattleMonPPMove1 ld bc, $0004 call CopyBytes - jp $65ca + jp Function65ca ; 65b5 Function65b5: ; 65b5 - ld hl, $6675 + ld hl, UnknownText_0x6675 call PrintText call Function1dcf jp c, $6520 - ld hl, $667a + ld hl, UnknownText_0x667a call PrintText ld b, $0 ret ; 65ca Function65ca: ; 65ca - ld hl, $666b + ld hl, UnknownText_0x666b call PrintText ld b, $1 ret @@ -18934,7 +18934,7 @@ Function6ec1: ; 6ec1 bit 4, [hl] push hl push bc - call $6f2c + call Function6f2c pop bc pop hl ret c @@ -19518,7 +19518,7 @@ Function718d: ; 718d ld a, [hl] ld [ScriptVar], a call GetPokemonName - jp $746e + jp Function746e ; 71ac Function71ac: ; 71ac @@ -19532,7 +19532,7 @@ Function71ac: ; 71ac .asm_71b9 ld [ScriptVar], a call GetPokemonName - jp $746e + jp Function746e ; 71c2 @@ -20022,7 +20022,7 @@ Function8029: ; 8029 ld hl, $4071 call Function19a6 ld b, $0 - call $408f + call Function808f ld a, $0 call GetMapObject ld hl, $0008 @@ -20511,7 +20511,7 @@ Function831e: ; 831e ld b, a ld c, $0 ld d, $1 - call $4341 + call Function8341 call Function1b35 .asm_833b @@ -20559,7 +20559,7 @@ Function8341: ; 8341 Function8379: ; 8379 call Function1b1e - call $4388 + call Function8388 call Function1b3f ld a, $47 call Function1b3f @@ -20992,7 +20992,7 @@ PredefPointers: ; 856b Function864c: ; 864c call Function8d55 - jp nz, $4d59 + jp nz, Function8d59 ld a, b cp $ff jr nz, .asm_865a @@ -21000,7 +21000,7 @@ Function864c: ; 864c .asm_865a cp $fc - jp z, $4ade + jp z, Function8ade ld l, a ld h, 0 add hl, hl @@ -21018,9 +21018,9 @@ INCBIN "baserom.gbc", $866f, $8a60 - $866f Function8a60: ; 8a60 push de - call $5809 + call Function9809 pop hl - jp $5809 + jp Function9809 ; 8a68 @@ -21093,9 +21093,9 @@ Function8aa4: ; 8aa4 ld a, d ld [$cdaf], a ld hl, $cda9 - call $5809 + call Function9809 ld hl, $5a86 - call $5809 + call Function9809 ret ; 8ad1 @@ -21184,9 +21184,9 @@ Function8cb4: ; 8cb4 ld a, [hli] ld [$cdaf], a ld hl, $cda9 - call $5809 + call Function9809 ld hl, $5a86 - call $5809 + call Function9809 ret .asm_8cf0 @@ -21196,7 +21196,7 @@ Function8cb4: ; 8cb4 call Function306b call Function96a4 call Function9699 - call $56b3 + call Function96b3 ret ; 8d05 @@ -21217,8 +21217,8 @@ Function8d59: ; 8d59 .asm_8d61 cp $fc - jp z, $56f3 - call $5673 + jp z, Function96f3 + call Function9673 ld l, a ld h, $0 add hl, hl @@ -21227,7 +21227,7 @@ Function8d59: ; 8d59 ld a, [hli] ld h, [hl] ld l, a - ld de, $4d79 + ld de, Function8d79 push de jp [hl] ; 8d79 @@ -21254,12 +21254,12 @@ Function8db8: ; 8db8 jr .asm_8e23 ld de, $d000 - call $5729 + call Function9729 push hl - call $5643 - call $573a + call Function9643 + call Function973a push hl - call $5643 + call Function9643 ld a, [EnemyHPPal] ld l, a ld h, $0 @@ -21267,7 +21267,7 @@ Function8db8: ; 8db8 add hl, hl ld bc, $68be add hl, bc - call $5643 + call Function9643 ld a, [PlayerHPPal] ld l, a ld h, $0 @@ -21275,14 +21275,14 @@ Function8db8: ; 8db8 add hl, hl ld bc, $68be add hl, bc - call $5643 + call Function9643 ld hl, $68ca - call $5643 + call Function9643 ld de, MartPointer pop hl - call $5643 + call Function9643 pop hl - call $5643 + call Function9643 ld a, $1 ld [SGBPredef], a call Function96a4 @@ -21296,23 +21296,23 @@ Function8db8: ; 8db8 ld hl, $ce29 ld bc, $080a ld a, $0 - call $5663 + call Function9663 ld hl, $cde3 ld bc, $070a ld a, $1 - call $5663 + call Function9663 ld hl, AttrMap ld bc, $040a ld a, $2 - call $5663 + call Function9663 ld hl, $ce6f ld bc, $050a ld a, $3 - call $5663 + call Function9663 ld hl, $cebf ld bc, $0109 ld a, $4 - call $5663 + call Function9663 ld hl, $cec9 ld bc, $0078 ld a, $7 @@ -21322,7 +21322,7 @@ Function8db8: ; 8db8 ld bc, $0030 ld a, $5 call Function306b - call $56b3 + call Function96b3 ret ; 8e85 @@ -21387,13 +21387,13 @@ Function8edb: ; 8edb add hl, hl ld bc, $68be add hl, bc - call $5643 + call Function9643 ld a, [CurPartySpecies] ld bc, TempMonDVs - call $574b - call $5643 + call Function974b + call Function9643 ld hl, $68ca - call $5643 + call Function9643 ld hl, $4f52 ld de, $d018 ld bc, $0018 @@ -21403,7 +21403,7 @@ Function8edb: ; 8edb ld hl, AttrMap ld bc, $0814 ld a, $1 - call $5663 + call Function9663 ld hl, $cf23 ld bc, $000a ld a, $2 @@ -21411,16 +21411,16 @@ Function8edb: ; 8edb ld hl, $ce4a ld bc, $0202 ld a, $3 - call $5663 + call Function9663 ld hl, $ce4c ld bc, $0202 ld a, $4 - call $5663 + call Function9663 ld hl, $ce4e ld bc, $0202 ld a, $5 - call $5663 - call $56b3 + call Function9663 + call Function96b3 call Function96a4 ld a, $1 ld [hCGBPalUpdate], a @@ -21639,14 +21639,14 @@ Function96f3: ; 96f3 .asm_9712 ld bc, $0208 ld a, e - call $5663 + call Function9663 ret ; 971a Function971a: ; 971a ld hl, $7681 - ld de, $d040 + ld de, MartPointer ld bc, $0010 ld a, $5 call Function306b @@ -21659,7 +21659,7 @@ Function9729: ; 9729 ld c, l ld b, h ld a, [TempBattleMonSpecies] - call $574b + call Function974b pop de ret ; 973a @@ -21670,14 +21670,14 @@ Function973a: ; 973a ld c, l ld b, h ld a, [TempEnemyMonSpecies] - call $5764 + call Function9764 pop de ret ; 974b Function974b: ; 974b and a - jp nz, $57f9 + jp nz, Function97f9 ld a, [$d45b] bit 2, a jr nz, .asm_9760 @@ -21694,7 +21694,7 @@ Function974b: ; 974b Function9764: ; 9764 and a - jp nz, $57f9 + jp nz, Function97f9 ld a, [TrainerClass] ld l, a ld h, $0 @@ -21720,7 +21720,7 @@ Function97ee: ; 97ee Function97f9: ; 97f9 push bc - call $57ee + call Function97ee pop bc push hl call CheckShininess @@ -21738,7 +21738,7 @@ Function9809: ; 9809 push af set 7, a ld [$cfbe], a - call $581a + call Function981a pop af ld [$cfbe], a ret @@ -21779,7 +21779,7 @@ Function981a: ; 981a ld [rJOYP], a ld a, $30 ld [rJOYP], a - call $5a7a + call Function9a7a pop bc dec b jr nz, .asm_981f @@ -22664,12 +22664,12 @@ Functionc8b5: ; c8b5 jr nz, .asm_c8d7 .asm_c8d1 - call $48e0 + call Functionc8e0 ld a, $81 ret .asm_c8d7 - call $4779 + call Functionc779 ld a, $80 ret @@ -22944,7 +22944,7 @@ Functioncae7: ; cae7 rst FarCall ld a, $80 ret c - call $4b07 + call Functioncb07 jr c, .asm_cb01 ld hl, $4b1c call Function31cd @@ -22952,7 +22952,7 @@ Functioncae7: ; cae7 ret .asm_cb01 - call $4779 + call Functionc779 ld a, $80 ret ; cb07 @@ -23011,7 +23011,7 @@ Functioncc61: ; cc61 INCBIN "baserom.gbc", $cc72, $cce5 - $cc72 Functioncce5: ; cce5 - call $4cee + call Functionccee and $7f ld [$d0ec], a ret @@ -23062,7 +23062,7 @@ Functioncd9d: ; cd9d INCBIN "baserom.gbc", $cdae, $ce7d - $cdae Functionce7d: ; ce7d - call $4e86 + call Functionce86 and $7f ld [$d0ec], a ret @@ -23078,7 +23078,7 @@ Functionce86: ; ce86 ret .asm_ce97 - call $4779 + call Functionc779 ld a, $80 ret ; ce9d @@ -23086,7 +23086,7 @@ Functionce86: ; ce86 INCBIN "baserom.gbc", $ce9d, $ceeb - $ce9d Functionceeb: ; ceeb - call $4ef4 + call Functioncef4 and $7f ld [$d0ec], a ret @@ -23104,7 +23104,7 @@ Functioncef4: ; cef4 ret .asm_cf07 - call $4779 + call Functionc779 ld a, $80 ret ; cf0d @@ -27024,7 +27024,7 @@ StartMenu_Quit: ; 128f0 ; Retire from the bug catching contest. ld hl, .EndTheContestText - call $6cf5 + call Function12cf5 jr c, .asm_12903 ld a, $4 ld hl, $760b @@ -27449,7 +27449,7 @@ Function12bd9: ; 12bd9 ld [$d265], a call GetItemName ld hl, SwitchAlreadyHoldingText - call $6cf5 + call Function12cf5 jr c, .asm_12c4b call $6cea @@ -27459,7 +27459,7 @@ Function12bd9: ; 12bd9 ld [$d265], a pop af ld [CurItem], a - call $6cdf + call Function12cdf jr nc, .asm_12c3c ld hl, TookAndMadeHoldText @@ -27472,7 +27472,7 @@ Function12bd9: ; 12bd9 .asm_12c3c ld a, [$d265] ld [CurItem], a - call $6cdf + call Function12cdf ld hl, ItemStorageIsFullText call Function1d67 @@ -27507,7 +27507,7 @@ TakePartyItem: ; 12c60 jr z, .asm_12c8c ld [CurItem], a - call $6cdf + call Function12cdf jr nc, .asm_12c94 ld a, $2e @@ -27645,7 +27645,7 @@ Function12d45: ; 12d45 .asm_12d76 ld hl, $6df1 - call $6cf5 + call Function12cf5 jr c, .asm_12d9a ld a, [CurPartyMon] ld b, a @@ -27662,12 +27662,12 @@ Function12d45: ; 12d45 .asm_12d9a ld hl, $6de2 - call $6cf5 + call Function12cf5 jr c, .asm_12dc6 call GetPartyItemLocation ld a, [hl] ld [CurItem], a - call $6cdf + call Function12cdf jr nc, .asm_12dbe call GetPartyItemLocation ld [hl], $0 @@ -27860,7 +27860,7 @@ Function12ed1: ; 12ed1 ; 12ee6 Function12ee6: ; 12ee6 - call $6f05 + call Function12f05 jr nc, .asm_12ef3 ld a, $3 ld hl, $73df @@ -27952,7 +27952,7 @@ Function12fba: ; 12fba ld a, [hl] push af set 4, [hl] - call $6fd5 + call Function12fd5 pop af ld [Options], a call WhiteBGMap @@ -27966,31 +27966,31 @@ Function12fd5: ; 12fd5 ld a, [CurPartyMon] inc a ld [$d0d8], a - call $7172 - call $72d3 + call Function13172 + call Function132d3 ld de, $7163 call Function1bb1 - call $71ef + call Function131ef ld hl, $cfa5 set 6, [hl] jr .asm_13009 call Function1bd3 bit 1, a - jp nz, $7038 + jp nz, Function13038 bit 0, a - jp nz, $70c6 + jp nz, Function130c6 bit 4, a - jp nz, $705b + jp nz, Function1305b bit 5, a - jp nz, $7075 + jp nz, Function13075 .asm_13009 - call $7235 + call Function13235 ld a, [$d0e3] and a jr nz, .asm_13018 - call $7256 + call Function13256 jp $6ff2 .asm_13018 @@ -28012,7 +28012,7 @@ Function13038: ; 13038 call WaitSFX ld a, [$d0e3] and a - jp z, $7154 + jp z, Function13154 ld a, [$d0e3] ld [$cfa9], a xor a @@ -28030,12 +28030,12 @@ Function1305b: ; 1305b ld a, [CurPartyMon] ld b, a push bc - call $708f + call Function1308f pop bc ld a, [CurPartyMon] cp b jp z, $6ff2 - jp $6fd5 + jp Function12fd5 ; 13075 Function13075: ; 13075 @@ -28050,7 +28050,7 @@ Function13075: ; 13075 ld a, [CurPartyMon] cp b jp z, $6ff2 - jp $6fd5 + jp Function12fd5 ; 1308f Function1308f: ; 1308f @@ -28107,11 +28107,11 @@ Function130c6: ; 130c6 ld a, [CurPartyMon] call AddNTimes push hl - call $713a + call Function1313a pop hl ld bc, $0015 add hl, bc - call $713a + call Function1313a ld a, [IsInBattle] jr z, .asm_13113 ld hl, BattleMonMove1 @@ -28119,11 +28119,11 @@ Function130c6: ; 130c6 ld a, [CurPartyMon] call AddNTimes push hl - call $713a + call Function1313a pop hl ld bc, $0006 add hl, bc - call $713a + call Function1313a .asm_13113 ld de, $0020 @@ -28325,8 +28325,8 @@ Function13256: ; 13256 INCBIN "baserom.gbc", $132ba, $132d3 - $132ba Function132d3: ; 132d3 - call $72da - call $72fe + call Function132da + call Function132fe ret ; 132da @@ -28609,13 +28609,13 @@ Function1344a: ; 1344a ld a, e ld [CurFruit], a ld a, d - ld [$d040], a + ld [MartPointer], a call Function1345a ret ; 1345a Function1345a: ; 1345a - ld de, $d0f0 + ld de, CurMart ld bc, $0004 ld hl, CurFruit ld a, [hli] @@ -31854,10 +31854,10 @@ GetMart: ; 15b31 Function15b47: ; 15b47 .asm_15b47 - ld a, [$d042] + ld a, [MovementAnimation] ld hl, .table_15b56 rst JumpTable - ld [$d042], a + ld [MovementAnimation], a cp $ff jr nz, .asm_15b47 ret @@ -32053,9 +32053,9 @@ Function15c62: ; 15c62 call FadeToMenu callba Function8000 xor a - ld [$d046], a + ld [WalkingY], a ld a, 1 - ld [$d045], a + ld [WalkingX], a .asm_15c74 call Function15cef jr nc, .asm_15c74 @@ -32225,7 +32225,7 @@ Function15da5: ; 15da5 ld a, [$d107] ld e, a ld d, $0 - ld hl, $d040 + ld hl, MartPointer ld a, [hli] ld h, [hl] ld l, a @@ -32268,7 +32268,7 @@ Function15df9: ; 15df9 ld a, [$d107] ld e, a ld d, $0 - ld hl, $d040 + ld hl, MartPointer ld a, [hli] ld h, [hl] ld l, a @@ -32333,7 +32333,7 @@ Function15efd: ; 15efd ret .asm_15f11 - ld hl, $5f73 + ld hl, UnknownText_0x15f73 call PrintText ld a, $9 ld hl, $4af8 @@ -32346,7 +32346,7 @@ Function15efd: ; 15efd ld hl, $c5b9 ld bc, $0312 call ClearBox - ld hl, $5f78 + ld hl, UnknownText_0x15f78 call PrintTextBoxText call Function1dcf jr c, .asm_15f6e @@ -32361,7 +32361,7 @@ Function15efd: ; 15efd ld hl, $c5b9 ld bc, $0312 call ClearBox - ld hl, $5fbe + ld hl, UnknownText_0x15fbe call PrintTextBoxText call Function15fc3 ld a, $9 @@ -33070,7 +33070,7 @@ INCBIN "baserom.gbc", $16218, $16e1d - $16218 Function16e1d: ; 16e1d - call $6ed6 + call Function16ed6 ld c, $0 jp nc, $6eb7 ld a, [BreedMon1Species] @@ -35090,7 +35090,7 @@ Function24be7: ; 24be7 ld a, [hl] push af set 4, [hl] - call $4bdc + call Function24bdc ld hl, $c505 ld de, String24c52 call PlaceString @@ -35548,7 +35548,7 @@ MenuData2_0x24edc: ; 24edc Function24ef2: ; 4ef2 - ld hl, $4f2c + ld hl, MenuDataHeader_0x24f2c call Function1d35 ld a, [$d0d2] ld [$cf88], a @@ -36643,9 +36643,9 @@ Function2a111: ; 2a111 INCBIN "baserom.gbc", $2a124, $2a14f - $2a124 Function2a14f: ; 2a14f - call $6200 + call Function2a200 jp nc, $61c1 - call $62ce + call Function2a2ce jp c, $61c9 inc hl inc hl @@ -36704,7 +36704,7 @@ Function2a14f: ; 2a14f ld a, b ld [CurPartyLevel], a ld b, [hl] - call $64a0 + call Function2a4a0 jr c, .asm_2a1c1 ld a, b cp $c9 @@ -37343,7 +37343,7 @@ Function2c012: ; 2c012 ; 2c01c Function2c01c: ; 2c01c - call $40ad + call Function2c0ad ld hl, PartyMon1CurHP ld de, PartyCount call Function2c059 @@ -37360,7 +37360,7 @@ Function2c01c: ; 2c01c Function2c03a: ; 2c03a - call $40c5 + call Function2c0c5 ld hl, OTPartyMon1CurHP ld de, OTPartyCount call Function2c059 @@ -50336,7 +50336,7 @@ Function447fb: ; 0x447fb Function44806: ; 0x44806 xor a - ld [$d0f0], a + ld [CurMart], a ld a, $1 ld [$d0f1], a .asm_4480f @@ -50349,11 +50349,11 @@ Function44806: ; 0x44806 call Function1ad2 ld a, [$d0f1] ld [$cf88], a - ld a, [$d0f0] + ld a, [CurMart] ld [$d0e4], a call Function350c ld a, [$d0e4] - ld [$d0f0], a + ld [CurMart], a ld a, [$cfa9] ld [$d0f1], a ld a, [$cf73] @@ -51786,13 +51786,13 @@ TileTypeTable: ; 4ce1f Function4cf1f: ; 4cf1f ld a, $0 - call $4f34 + call Function4cf34 ld a, $1 - call $4f34 + call Function4cf34 ld a, $2 - call $4f34 + call Function4cf34 ld a, $3 - call $4f34 + call Function4cf34 ret ; 4cf34 @@ -52120,7 +52120,7 @@ Function4d3b1: ; 4d3b1 ld a, [$cfa9] cp $1 ret z - call $541e + call Function4d41e jr c, .asm_4d3f7 ld a, $0 call GetSRAMBank @@ -52140,7 +52140,7 @@ Function4d3b1: ; 4d3b1 INCBIN "baserom.gbc", $4d3fe, $4d41e - $4d3fe Function4d41e: ; 4d41e - call $550f + call Function4d50f push de ld hl, StringBuffer2 ld bc, $0005 @@ -52151,7 +52151,7 @@ Function4d41e: ; 4d41e ld hl, $5463 call PrintText .asm_4d437 - call $5468 + call Function4d468 .asm_4d43a call Functiona57 ld a, [$ffa9] @@ -52161,13 +52161,13 @@ Function4d41e: ; 4d41e ld a, b and $f0 jr z, .asm_4d43a - call $5490 + call Function4d490 ld c, $3 call DelayFrames jr .asm_4d437 .asm_4d453 - call $54e0 + call Function4d4e0 pop de ld a, e cp l @@ -52241,7 +52241,7 @@ Function4d490: ; 4d490 ret .asm_4d4ba - call $54d5 + call Function4d4d5 ld a, [hl] cp $9 jr z, .asm_4d4c5 @@ -52254,7 +52254,7 @@ Function4d490: ; 4d490 ret .asm_4d4c8 - call $54d5 + call Function4d4d5 ld a, [hl] and a jr z, .asm_4d4d2 @@ -52306,13 +52306,13 @@ Function4d50f: ; 4d50f ld de, $0000 ld hl, $a009 ld c, $2 - call $5533 + call Function4d533 ld hl, $a00b ld c, $5 - call $553e + call Function4d53e ld hl, $a3dc ld c, $3 - call $5533 + call Function4d533 call CloseSRAM ret ; 4d533 @@ -54527,7 +54527,7 @@ Function505da: ; 505da .asm_50622 ld a, $14 - ld hl, $4669 + ld hl, UnknownScript_0x50669 call PushScriptPointer scf ret @@ -54714,7 +54714,7 @@ UnknownText_0x5072b: ; 0x5072b _Squirtbottle: ; 50730 - ld hl, $473c + ld hl, UnknownScript_0x5073c call Function31cd ld a, $1 ld [$d0ec], a @@ -54822,7 +54822,7 @@ _BasementKey: ; 507b4 cp 10 jr nz, .asm_507db - ld hl, $47e1 + ld hl, UnknownScript_0x507e1 call Function31cd ld a, $1 ld [$d0ec], a @@ -55719,7 +55719,7 @@ Function5120d: ; 5120d call WaitBGMap xor a ld [hBGMapMode], a - ld hl, $4000 + ld hl, Function50000 ld a, [TrainerClass] dec a ld bc, $0003 @@ -56349,7 +56349,7 @@ TryStep: ; 8016b TrySurfStep: ; 801c0 call CheckWaterPermissions - ld [$d040], a + ld [MartPointer], a jr c, .asm_801f1 call Function80341 @@ -56359,7 +56359,7 @@ TrySurfStep: ; 801c0 cp 2 jr z, .asm_801f1 - ld a, [$d040] + ld a, [MartPointer] and a jr nz, .ExitWater @@ -56963,7 +56963,7 @@ Function84000: ; 84000 ld hl, OverworldMap ld bc, $040c xor a - call $42ab + call Function842ab xor a ld [rSB], a ld [rSC], a @@ -57028,14 +57028,14 @@ INCBIN "baserom.gbc", $842ea, $843f0 - $842ea Function843f0: ; 843f0 .asm_843f0 call Functiona57 - call $46f6 + call Function846f6 jr c, .asm_8440f ld a, [$cf63] bit 7, a jr nz, .asm_8440d - call $4022 - call $4757 - call $4785 + call Function84022 + call Function84757 + call Function84785 call DelayFrame jr .asm_843f0 @@ -57057,24 +57057,24 @@ Function84411: ; 84411 Function84419: ; 84419 push af - call $4000 + call Function84000 pop af ld [$cbfa], a - call $4728 + call Function84728 ret ; 84425 Function84425: ; 84425 call Function222a - call $4753 + call Function84753 ret ; 8442c INCBIN "baserom.gbc", $8442c, $845d4 - $8442c Function845d4: ; 845d4 - call $45db - call $4425 + call Function845db + call Function84425 ret ; 845db @@ -57083,7 +57083,7 @@ Function845db: ; 845db push af xor a ld [$ffac], a - call $474c + call Function8474c ld a, [rIE] push af xor a @@ -57093,18 +57093,18 @@ Function845db: ; 845db xor a ld [hBGMapMode], a ld a, $13 - call $4419 + call Function84419 ld hl, $ff9e ld a, [hl] push af ld [hl], $4 ld a, $9 ld [$cf65], a - call $43f0 + call Function843f0 pop af ld [$ff9e], a - call $4411 - call $4735 + call Function84411 + call Function84735 xor a ld [rIF], a pop af @@ -59506,7 +59506,7 @@ Function8e83f: ; 8e83f push hl push de push bc - call $6849 + call Function8e849 pop bc pop de pop hl @@ -60252,7 +60252,7 @@ Function91af3: ; 91af3 ld bc, $2406 call Functionf1e call FlyMap - call $5c8f + call Function91c8f ld b, $2 call GetSGBLayout call Function32f9 @@ -60265,8 +60265,8 @@ Function91af3: ; 91af3 ld a, [hl] and $1 jr nz, .asm_91b4e - call $5b73 - call $5c17 + call Function91b73 + call Function91c17 callba Function8cf69 call DelayFrame jr .asm_91b29 @@ -60325,7 +60325,7 @@ Function91b73: ; 91b73 .asm_91b93 inc [hl] - call $5c3c + call Function91c3c jr z, .asm_91b89 jr .asm_91bab @@ -60340,7 +60340,7 @@ Function91b73: ; 91b73 .asm_91ba5 dec [hl] - call $5c3c + call Function91c3c jr z, .asm_91b9b .asm_91bab @@ -61615,7 +61615,7 @@ TryReadSign: ; 96a38 ret .IsSign - ld a, [$d040] + ld a, [MartPointer] ld hl, .signs rst JumpTable ret @@ -64703,7 +64703,7 @@ Functionb9229: ; b9229 ld bc, $7780 call Functionf9d pop de - call $52b8 + call Functionb92b8 call EnableLCD call WaitBGMap ld a, [$d1ec] @@ -64714,7 +64714,7 @@ Functionb9229: ; b9229 call Function32f9 xor a ld [hJoyPressed], a - call $529a + call Functionb929a call WhiteBGMap call DisableLCD call Functione51 @@ -65716,7 +65716,7 @@ Functioncc91a: ; cc91a ld c, $7 call CopyPals ld hl, $d0c0 - ld de, $d040 + ld de, MartPointer ld a, [rBGP] ld b, a ld c, $2 From 000c6d134952b8fdf9cae24792c91b64348c5db7 Mon Sep 17 00:00:00 2001 From: yenatch Date: Thu, 15 Aug 2013 06:06:50 -0400 Subject: [PATCH 53/84] CheckContestMon and a couple labels in bank 0 --- constants.asm | 1 + main.asm | 29 +++++++++++++++-------------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/constants.asm b/constants.asm index cfa3317ba..02f402bcb 100644 --- a/constants.asm +++ b/constants.asm @@ -236,6 +236,7 @@ PREDEF_PRINT_MOVE_TYPE EQU $2A PREDEF_PRINT_TYPE EQU $2B PREDEF_GET_UNOWN_LETTER EQU $2D PREDEF_LOAD_SGB_LAYOUT EQU $31 +PREDEF_CHECK_CONTEST_MON EQU $33 PREDEF_PARTYMON_ITEM_NAME EQU $3B PREDEF_DECOMPRESS EQU $40 diff --git a/main.asm b/main.asm index f78a0a365..e749af974 100644 --- a/main.asm +++ b/main.asm @@ -143,10 +143,14 @@ Function17d: ; 17d call Function245 call ClearSprites call Function270 - ld a, $1 - rst Bankswitch - call $4031 + + ld a, BANK(Function4031) + rst Bankswitch + call Function4031 + +; Note that Function642e is called later assuming it's in the same bank. + xor a ld [$ffde], a ld [$ffcf], a @@ -164,25 +168,22 @@ Function17d: ; 17d ld [rLCDC], a ld a, $ff ld [$ffcb], a - ld a, $2 - ld hl, $5890 - rst FarCall + callba Function9890 ld a, $9c ld [$ffd7], a xor a ld [hBGMapAddress], a - ld a, $5 - ld hl, $4089 - rst FarCall + callba Function14089 xor a ld [$6000], a ld [$0000], a + ld a, [hCGB] and a jr z, .asm_22b call Function2ff7 - .asm_22b + xor a ld [rIF], a ld a, $f @@ -194,7 +195,7 @@ Function17d: ; 17d call CleanSoundRestart xor a ld [CurMusic], a - jp $642e + jp Function642e ; 245 Function245: ; 245 @@ -319,7 +320,7 @@ Function4a3: ; 4a3 ld a, [hCGB] and a jr z, .asm_4af - ld hl, $0517 + ld hl, IncGradGBPalTable_00 ld b, $4 jr Function4c7 @@ -20963,7 +20964,7 @@ PredefPointers: ; 856b dwb $5853, $02 dwb $464c, $02 ; LoadSGBLayout, BANK(LoadSGBLayout) dwb $5d11, $24 - dwb $4a88, $02 + dwb CheckContestMon, BANK(CheckContestMon) dwb $420f, $23 dwb $4000, $23 dwb $4000, $23 @@ -21052,7 +21053,7 @@ CheckShininess: ; 0x8a68 ; 8a88 -Function8a88: ; 8a88 +CheckContestMon: ; 8a88 ld a, [hl] cp $a0 jr c, .asm_8aa2 From 627914195d00e4810b091e716d0e6a49a26a87c2 Mon Sep 17 00:00:00 2001 From: yenatch Date: Thu, 15 Aug 2013 06:09:12 -0400 Subject: [PATCH 54/84] battle tower trainer text (bank 7b) --- main.asm | 2 +- text/battle_tower.asm | 616 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 617 insertions(+), 1 deletion(-) create mode 100644 text/battle_tower.asm diff --git a/main.asm b/main.asm index e749af974..947a5f4df 100644 --- a/main.asm +++ b/main.asm @@ -74214,7 +74214,7 @@ SECTION "bank7A",DATA,BANK[$7A] SECTION "bank7B",DATA,BANK[$7B] -INCBIN "baserom.gbc", $1ec000, $1ecf02 - $1ec000 +INCLUDE "text/battle_tower.asm" SECTION "bank7C",DATA,BANK[$7C] diff --git a/text/battle_tower.asm b/text/battle_tower.asm new file mode 100644 index 000000000..72db31f7b --- /dev/null +++ b/text/battle_tower.asm @@ -0,0 +1,616 @@ + +UnknownText_0x1ec000: ; 0x1ec000 + db $0, "Hello, glad to", $4f + db "meet you!", $51 + db "I do hope we have", $4f + db "a good battle.", $57 +; 0x1ec03b + +UnknownText_0x1ec03b: ; 0x1ec03b + db $0, "Thank you! A most", $4f + db "enjoyable battle!", $57 +; 0x1ec060 + +UnknownText_0x1ec060: ; 0x1ec060 + db $0, "Thank you. You are", $4f + db "formidable.", $57 +; 0x1ec080 + +UnknownText_0x1ec080: ; 0x1ec080 + db $0, "Work, work, work…", $4f + db "I'm always busy!", $57 +; 0x1ec0a3 + +UnknownText_0x1ec0a3: ; 0x1ec0a3 + db $0, "But, I work hard", $4f + db "in battle too!", $57 +; 0x1ec0c4 + +UnknownText_0x1ec0c4: ; 0x1ec0c4 + db $0, "I'm too busy to be", $4f + db "battling!", $57 +; 0x1ec0e1 + +UnknownText_0x1ec0e1: ; 0x1ec0e1 + db $0, "Brace yourself for", $4f + db "my all-out attack!", $57 +; 0x1ec108 + +UnknownText_0x1ec108: ; 0x1ec108 + db $0, "What a cakewalk!", $4f + db "You're too easy!", $57 +; 0x1ec12a + +UnknownText_0x1ec12a: ; 0x1ec12a + db $0, "I won't lose next", $4f + db "time, all right?", $57 +; 0x1ec14d + +UnknownText_0x1ec14d: ; 0x1ec14d + db $0, "Heh, your #MON", $4f + db "look pretty cool.", $57 +; 0x1ec16f + +UnknownText_0x1ec16f: ; 0x1ec16f + db $0, "Hey, hey, no way!", $4f + db "You won't win!", $57 +; 0x1ec190 + +UnknownText_0x1ec190: ; 0x1ec190 + db $0, "You serious?", $4f + db "This is brutal!", $57 +; 0x1ec1ae + +UnknownText_0x1ec1ae: ; 0x1ec1ae + db $0, "#MON every day!", $4f + db "I love battling!", $57 +; 0x1ec1d0 + +UnknownText_0x1ec1d0: ; 0x1ec1d0 + db $0, "I'm on top of my", $4f + db "game, but not you!", $57 +; 0x1ec1f4 + +UnknownText_0x1ec1f4: ; 0x1ec1f4 + db $0, "I don't care that", $4f + db "I lost, really!", $57 +; 0x1ec216 + +UnknownText_0x1ec216: ; 0x1ec216 + db $0, "Hi, there! Let's", $4f + db "keep this clean!", $57 +; 0x1ec238 + +UnknownText_0x1ec238: ; 0x1ec238 + db $0, "Whoops, sorry for", $4f + db "that wipeout!", $57 +; 0x1ec259 + +UnknownText_0x1ec259: ; 0x1ec259 + db $0, "Whoops! Come on,", $4f + db "let me win one!", $57 +; 0x1ec27b + +UnknownText_0x1ec27b: ; 0x1ec27b + db $0, "Do you want to see", $4f + db "my battle level?", $57 +; 0x1ec2a0 + +UnknownText_0x1ec2a0: ; 0x1ec2a0 + db $0, "Hehehe, I know", $4f + db "your level now!", $57 +; 0x1ec2c0 + +UnknownText_0x1ec2c0: ; 0x1ec2c0 + db $0, "Ouch… I'm just too", $4f + db "weak…", $57 +; 0x1ec2d9 + +UnknownText_0x1ec2d9: ; 0x1ec2d9 + db $0, "Hey, let's battle.", $4f + db "I'm your opponent.", $57 +; 0x1ec2fe + +UnknownText_0x1ec2fe: ; 0x1ec2fe + db $0, "Wow, you're not", $4f + db "serious about it!", $57 +; 0x1ec320 + +UnknownText_0x1ec320: ; 0x1ec320 + db $0, "…Urgh… Nothing", $4f + db "positive here…", $57 +; 0x1ec33f + +UnknownText_0x1ec33f: ; 0x1ec33f + db $0, "I'm your", $4f + db "opponent.", $51 + db "Get ready to be", $4f + db "hammered.", $57 +; 0x1ec36c + +UnknownText_0x1ec36c: ; 0x1ec36c + db $0, "Hahah! That was a", $4f + db "pushover!", $57 +; 0x1ec389 + +UnknownText_0x1ec389: ; 0x1ec389 + db $0, "No way! There has", $4f + db "to be a mistake!", $57 +; 0x1ec3ad + +UnknownText_0x1ec3ad: ; 0x1ec3ad + db $0, "Hah!", $4f + db "Let's get rolling!", $57 +; 0x1ec3c5 + +UnknownText_0x1ec3c5: ; 0x1ec3c5 + db $0, "Wahahaha! Didn't", $4f + db "break a sweat!", $57 +; 0x1ec3e5 + +UnknownText_0x1ec3e5: ; 0x1ec3e5 + db $0, "Tough! I'm no", $4f + db "match for you!", $57 +; 0x1ec402 + +UnknownText_0x1ec402: ; 0x1ec402 + db $0, $56, $56, $56, $4f + db $56, $56, "Battle?", $57 +; 0x1ec411 + +UnknownText_0x1ec411: ; 0x1ec411 + db $0, $56, $56, $56, $4f + db $56, $56, "I won?", $57 +; 0x1ec41f + +UnknownText_0x1ec41f: ; 0x1ec41f + db $0, $56, $56, $56, $4f + db $56, $56, "I lost?", $57 +; 0x1ec42e + +UnknownText_0x1ec42e: ; 0x1ec42e + db $0, "You want to be a", $4f + db "leader?", $51 + db "Let me battle you,", $4f + db "then!", $57 +; 0x1ec461 + +UnknownText_0x1ec461: ; 0x1ec461 + db $0, "You need another", $4f + db "ten years of", $51 + db "training to get", $4f + db "better, I'd say.", $57 +; 0x1ec4a0 + +UnknownText_0x1ec4a0: ; 0x1ec4a0 + db $0, "You're incredibly", $4f + db "talented.", $51 + db "No one can touch", $4f + db "you now!", $57 +; 0x1ec4d6 + +UnknownText_0x1ec4d6: ; 0x1ec4d6 + db $0, "Today, I'm going", $4f + db "to whomp you.", $57 +; 0x1ec4f5 + +UnknownText_0x1ec4f5: ; 0x1ec4f5 + db $0, "I knew I'd win.", $4f + db "I'm so great!", $57 +; 0x1ec512 + +UnknownText_0x1ec512: ; 0x1ec512 + db $0, "Uh? My plans are", $4f + db "out of whack…", $57 +; 0x1ec532 + +UnknownText_0x1ec532: ; 0x1ec532 + db $0, "I bet you can't", $4f + db "beat me!", $57 +; 0x1ec54b + +UnknownText_0x1ec54b: ; 0x1ec54b + db $0, "Those #MON", $4f + db "aren't enough!", $57 +; 0x1ec565 + +UnknownText_0x1ec565: ; 0x1ec565 + db $0, "I want your", $4f + db "#MON. Please?", $57 +; 0x1ec580 + +UnknownText_0x1ec580: ; 0x1ec580 + db $0, "I'll show you a", $4f + db "real battle!", $57 +; 0x1ec59d + +UnknownText_0x1ec59d: ; 0x1ec59d + db $0, "This battle…", $4f + db "I'm bored!", $57 +; 0x1ec5b5 + +UnknownText_0x1ec5b5: ; 0x1ec5b5 + db $0, "…I won't turn tail", $4f + db "in battle!", $57 +; 0x1ec5d3 + +UnknownText_0x1ec5d3: ; 0x1ec5d3 + db $0, "Let's go!", $4f + db "No holds barred!", $57 +; 0x1ec5ee + +UnknownText_0x1ec5ee: ; 0x1ec5ee + db $0, "Sorry! I wanted", $4f + db "the win more!", $57 +; 0x1ec60d + +UnknownText_0x1ec60d: ; 0x1ec60d + db $0, "Wahah! Congrats!", $4f + db "I can't do better!", $57 +; 0x1ec631 + +UnknownText_0x1ec631: ; 0x1ec631 + db $0, "My #MON skills", $4f + db "are phenomenal!", $57 +; 0x1ec651 + +UnknownText_0x1ec651: ; 0x1ec651 + db $0, "You've got a long", $4f + db "way to go.", $51 + db "Well, keep trying!", $4f + db "Best of luck!", $57 +; 0x1ec68f + +UnknownText_0x1ec68f: ; 0x1ec68f + db $0, "Aww… Don't lose", $4f + db "after beating me.", $57 +; 0x1ec6b1 + +UnknownText_0x1ec6b1: ; 0x1ec6b1 + db $0, "Who are you?", $4f + db "I don't know you…", $57 +; 0x1ec6d0 + +UnknownText_0x1ec6d0: ; 0x1ec6d0 + db $0, "I must've imagined", $4f + db "that.", $51 + db "There seems to be", $4f + db "no one here…", $57 +; 0x1ec708 + +UnknownText_0x1ec708: ; 0x1ec708 + db $0, "Who am I?", $4f + db "I don't know…", $57 +; 0x1ec720 + +UnknownText_0x1ec720: ; 0x1ec720 + db $0, "Um… Are you that…", $4f + db "um…person?", $57 +; 0x1ec73e + +UnknownText_0x1ec73e: ; 0x1ec73e + db $0, "It doesn't appear", $4f + db "to be you…", $57 +; 0x1ec75b + +UnknownText_0x1ec75b: ; 0x1ec75b + db $0, "Then you really", $4f + db "are the legendary…", $57 +; 0x1ec77f + +UnknownText_0x1ec77f: ; 0x1ec77f + db $0, "I heard that", $4f + db "you're hot!", $57 +; 0x1ec798 + +UnknownText_0x1ec798: ; 0x1ec798 + db $0, "Not bad. I was", $4f + db "just a bit better.", $57 +; 0x1ec7bb + +UnknownText_0x1ec7bb: ; 0x1ec7bb + db $0, "Eh, you're not", $4f + db "that special.", $57 +; 0x1ec7d8 + +UnknownText_0x1ec7d8: ; 0x1ec7d8 + db $0, "I'm scared about", $4f + db "what might happen.", $51 + db "My #MON are way", $4f + db "too strong.", $57 +; 0x1ec818 + +UnknownText_0x1ec818: ; 0x1ec818 + db $0, "See? My #MON", $4f + db "were too strong.", $57 +; 0x1ec837 + +UnknownText_0x1ec837: ; 0x1ec837 + db $0, "Graa! My #MON", $4f + db "were total wimps!", $57 +; 0x1ec858 + +UnknownText_0x1ec858: ; 0x1ec858 + db $0, "Hey, there!", $4f + db "I'll take you on!", $57 +; 0x1ec876 + +UnknownText_0x1ec876: ; 0x1ec876 + db $0, "Don't you have a", $4f + db "better strategy?", $57 +; 0x1ec898 + +UnknownText_0x1ec898: ; 0x1ec898 + db $0, "You've got decent", $4f + db "style!", $57 +; 0x1ec8b1 + +UnknownText_0x1ec8b1: ; 0x1ec8b1 + db $0, "I wonder if I can", $4f + db "battle properly…", $57 +; 0x1ec8d5 + +UnknownText_0x1ec8d5: ; 0x1ec8d5 + db $0, "Um… Sorry…", $4f + db "I think I won.", $57 +; 0x1ec8f0 + +UnknownText_0x1ec8f0: ; 0x1ec8f0 + db $0, "I guess I'm not", $4f + db "good enough yet…", $57 +; 0x1ec911 + +UnknownText_0x1ec911: ; 0x1ec911 + db $0, "Wrrooar!", $4f + db "I won't lose!", $57 +; 0x1ec928 + +UnknownText_0x1ec928: ; 0x1ec928 + db $0, "Wrrooar! I knew", $4f + db "I was a genius!", $57 +; 0x1ec949 + +UnknownText_0x1ec949: ; 0x1ec949 + db $0, "Arrooh! I hate it", $4f + db "when I lose!", $57 +; 0x1ec969 + +UnknownText_0x1ec969: ; 0x1ec969 + db $0, "Sorry, but I'm", $4f + db "going to win.", $57 +; 0x1ec986 + +UnknownText_0x1ec986: ; 0x1ec986 + db $0, "Yeah! My #MON", $4f + db "rule!", $57 +; 0x1ec99b + +UnknownText_0x1ec99b: ; 0x1ec99b + db $0, "Oh, close! I lost", $4f + db "by just a bit!", $57 +; 0x1ec9bd + +UnknownText_0x1ec9bd: ; 0x1ec9bd + db $0, "OK, I'm not", $4f + db "fooling around!", $57 +; 0x1ec9d9 + +UnknownText_0x1ec9d9: ; 0x1ec9d9 + db $0, "Yay! Too easy!", $4f + db "Like, no way!", $57 +; 0x1ec9f7 + +UnknownText_0x1ec9f7: ; 0x1ec9f7 + db $0, "No!", $4f + db "Like, no way!", $57 +; 0x1eca0a + +UnknownText_0x1eca0a: ; 0x1eca0a + db $0, "Look! My #MON", $4f + db "are really cute!", $57 +; 0x1eca2a + +UnknownText_0x1eca2a: ; 0x1eca2a + db $0, "Aren't they really", $4f + db "adorable?", $57 +; 0x1eca47 + +UnknownText_0x1eca47: ; 0x1eca47 + db $0, "I'm sorry, it's", $4f + db "all my fault!", $57 +; 0x1eca64 + +UnknownText_0x1eca64: ; 0x1eca64 + db $0, "Let's get our", $4f + db "battle started!", $57 +; 0x1eca82 + +UnknownText_0x1eca82: ; 0x1eca82 + db $0, "Was I too strong", $4f + db "for you?", $57 +; 0x1eca9d + +UnknownText_0x1eca9d: ; 0x1eca9d + db $0, "Ooh, you're in a", $4f + db "different class.", $57 +; 0x1ecabf + +UnknownText_0x1ecabf: ; 0x1ecabf + db $0, "Are we going to", $4f + db "battle? Let's!", $57 +; 0x1ecade + +UnknownText_0x1ecade: ; 0x1ecade + db $0, "Oh, you're too", $4f + db "weak. Shame.", $57 +; 0x1ecafa + +UnknownText_0x1ecafa: ; 0x1ecafa + db $0, "Wow! Are you quite", $4f + db "satisfied?", $57 +; 0x1ecb19 + +UnknownText_0x1ecb19: ; 0x1ecb19 + db $0, "Oh, you have some", $4f + db "rare #MON.", $57 +; 0x1ecb37 + +UnknownText_0x1ecb37: ; 0x1ecb37 + db $0, "May I have one of", $4f + db "your #MON?", $57 +; 0x1ecb55 + +UnknownText_0x1ecb55: ; 0x1ecb55 + db $0, "…I want one of", $4f + db "your #MON.", $57 +; 0x1ecb70 + +UnknownText_0x1ecb70: ; 0x1ecb70 + db $0, "Want to hear about", $4f + db "my cute #MON?", $57 +; 0x1ecb92 + +UnknownText_0x1ecb92: ; 0x1ecb92 + db $0, "What do you think", $4f + db "about my cuties?", $57 +; 0x1ecbb6 + +UnknownText_0x1ecbb6: ; 0x1ecbb6 + db $0, "Oh! My! You're a", $4f + db "dreadful trainer!", $57 +; 0x1ecbd9 + +UnknownText_0x1ecbd9: ; 0x1ecbd9 + db $0, "Battle? Sure!", $4f + db "Right now!", $57 +; 0x1ecbf3 + +UnknownText_0x1ecbf3: ; 0x1ecbf3 + db $0, "Oh, I love it!", $4f + db "Battling is wild!", $57 +; 0x1ecc15 + +UnknownText_0x1ecc15: ; 0x1ecc15 + db $0, "Oh, how rude! Wait", $4f + db "till next time!", $57 +; 0x1ecc39 + +UnknownText_0x1ecc39: ; 0x1ecc39 + db $0, "Please let me win!", $4f + db "Please?", $57 +; 0x1ecc55 + +UnknownText_0x1ecc55: ; 0x1ecc55 + db $0, "Wow, thank you!", $4f + db "You're so nice!", $57 +; 0x1ecc75 + +UnknownText_0x1ecc75: ; 0x1ecc75 + db $0, "You're mean!", $4f + db "I hate meanies!", $57 +; 0x1ecc92 + +UnknownText_0x1ecc92: ; 0x1ecc92 + db $0, "Well, can we", $4f + db "begin?", $57 +; 0x1ecca7 + +UnknownText_0x1ecca7: ; 0x1ecca7 + db $0, "Well, I beg your", $4f + db "pardon…", $57 +; 0x1eccc1 + +UnknownText_0x1eccc1: ; 0x1eccc1 + db $0, "Sob… That's not", $4f + db "fair!", $57 +; 0x1eccd7 + +UnknownText_0x1eccd7: ; 0x1eccd7 + db $0, "I'm good!", $4f + db "You can't win.", $57 +; 0x1eccef + +UnknownText_0x1eccef: ; 0x1eccef + db $0, "Giving up? You're", $4f + db "pretty weak!", $57 +; 0x1ecd0e + +UnknownText_0x1ecd0e: ; 0x1ecd0e + db $0, "I won't accept", $4f + db "this… No way!", $57 +; 0x1ecd2b + +UnknownText_0x1ecd2b: ; 0x1ecd2b + db $0, "Are you treating", $4f + db "this seriously?", $57 +; 0x1ecd4d + +UnknownText_0x1ecd4d: ; 0x1ecd4d + db $0, "Oh, sorry! Looks", $4f + db "like I won!", $57 +; 0x1ecd6b + +UnknownText_0x1ecd6b: ; 0x1ecd6b + db $0, "Oh, how nasty!", $4f + db "You were serious!", $57 +; 0x1ecd8d + +UnknownText_0x1ecd8d: ; 0x1ecd8d + db $0, "Ahahah! I'll take", $4f + db "it easy on you!", $57 +; 0x1ecdaf + +UnknownText_0x1ecdaf: ; 0x1ecdaf + db $0, "Oops, sorry! But", $4f + db "I'm happy too!", $57 +; 0x1ecdcf + +UnknownText_0x1ecdcf: ; 0x1ecdcf + db $0, "Oh, oh, I lost!", $4f + db "Thanks. Bye!", $57 +; 0x1ecded + +UnknownText_0x1ecded: ; 0x1ecded + db $0, "BATTLE TOWER is a", $4f + db "tough place!", $57 +; 0x1ece0d + +UnknownText_0x1ece0d: ; 0x1ece0d + db $0, "You might have a", $4f + db "hard time.", $57 +; 0x1ece2a + +UnknownText_0x1ece2a: ; 0x1ece2a + db $0, "Ooh, you might", $4f + db "make a run here!", $57 +; 0x1ece4b + +UnknownText_0x1ece4b: ; 0x1ece4b + db $0, "I want to see your", $4f + db "style in action!", $57 +; 0x1ece70 + +UnknownText_0x1ece70: ; 0x1ece70 + db $0, "Every battle is a", $4f + db "drama!", $57 +; 0x1ece8a + +UnknownText_0x1ece8a: ; 0x1ece8a + db $0, "Oh… Want to trade", $4f + db "something?", $57 +; 0x1ecea8 + +UnknownText_0x1ecea8: ; 0x1ecea8 + db $0, "OK, here goes!", $4f + db "I have momentum!", $57 +; 0x1ecec9 + +UnknownText_0x1ecec9: ; 0x1ecec9 + db $0, "See, I rolled", $4f + db "right over you!", $57 +; 0x1ecee8 + +UnknownText_0x1ecee8: ; 0x1ecee8 + db $0, "No! This did not", $4f + db "happen!", $57 +; 0x1ecf02 From caa7865ce7e1264924221fe65a1c1ff33eb8b61f Mon Sep 17 00:00:00 2001 From: yenatch Date: Thu, 15 Aug 2013 21:54:16 -0400 Subject: [PATCH 55/84] extra phone text (bank 19) --- main.asm | 2 +- text/phone/extra.asm | 1448 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1449 insertions(+), 1 deletion(-) create mode 100644 text/phone/extra.asm diff --git a/main.asm b/main.asm index 947a5f4df..53b6b2600 100644 --- a/main.asm +++ b/main.asm @@ -55874,7 +55874,7 @@ INCLUDE "maps/DayCare.asm" SECTION "bank19",DATA,BANK[$19] -INCBIN "baserom.gbc", $64000, $67308 - $64000 +INCLUDE "text/phone/extra.asm" SECTION "bank1A",DATA,BANK[$1A] diff --git a/text/phone/extra.asm b/text/phone/extra.asm new file mode 100644 index 000000000..97142beee --- /dev/null +++ b/text/phone/extra.asm @@ -0,0 +1,1448 @@ + +UnknownText_0x64000: ; 0x64000 + db $0, "I hate having to", $4f + db "hang up on you!", $51 + db "Call you later!", $57 +; 0x64032 + +UnknownText_0x64032: ; 0x64032 + db $0, $14, ", have you", $4f + db "heard?", $51 + db "GOLDENROD's RADIO", $4f + db "TOWER has been", $51 + db "taken over by TEAM", $4f + db "ROCKET!", $51 + db "…Um… What's TEAM", $4f + db "ROCKET?", $57 +; 0x64099 + +UnknownText_0x64099: ; 0x64099 + db $0, $14, ", I heard!", $51 + db "You defeated that", $4f + db "WHITNEY?", $51 + db "It makes me proud", $4f + db "to be your friend!", $57 +; 0x640e6 + +UnknownText_0x640e6: ; 0x640e6 + db $0, "Hey, I heard about", $4f + db "you!", $51 + db "You saved that", $4f + db "#MON at the", $51 + db "LIGHTHOUSE, didn't", $4f + db "you?", $51 + db $14, ", I wish", $4f + db "you'd come see me", $51 + db "when I'm sick in", $4f + db "bed with a cold!", $57 +; 0x6416d + +UnknownText_0x6416d: ; 0x6416d + db $0, "I heard, I heard,", $4f + db "I heard!", $51 + db "You smashed TEAM", $4f + db "ROCKET's hideout!", $51 + db "You're like a", $4f + db "movie hero, even!", $51 + db "But um… What was", $4f + db "TEAM ROCKET?", $57 +; 0x641e8 + +UnknownText_0x641e8: ; 0x641e8 + db $0, "I heard, I heard,", $4f + db "I heard!", $51 + db "About your heroic", $4f + db "liberation of the", $51 + db "RADIO TOWER! You", $4f + db "rock so hard!", $57 +; 0x64247 + +UnknownText_0x64247: ; 0x64247 + db $0, "I saw, I saw!", $51 + db "I saw you go into", $4f + db "the DRAGON'S DEN!", $51 + db "I'm certain you", $4f + db "passed! Aww, no", $51 + db "need to be modest!", $4f + db "You can't fail!", $57 +; 0x642bb + +UnknownText_0x642bb: ; 0x642bb + db $0, "Yesterday, I went", $4f + db "out to NEW BARK", $51 + db "TOWN. There was a", $4f + db "lady who looked a", $51 + db "lot like you,", $4f + db $14, ".", $51 + db "What? That lady", $4f + db "was your mom?", $51 + db "Aww, I should've", $4f + db "introduced myself!", $51 + db "I bet your mom's", $4f + db "really proud of", $51 + db "all that you've", $4f + db "accomplished.", $51 + db "Heh, put it this", $4f + db "way. I'd be proud", $51 + db "if I were your", $4f + db "mom, believe me!", $57 +; 0x643d4 + +UnknownText_0x643d4: ; 0x643d4 + db $0, "I saw, I saw,", $4f + db "I saw!", $51 + db "You striding onto", $4f + db "a ship, ", $14, "!", $51 + db "I can't get over", $4f + db "how good you look", $51 + db "with the sea as", $4f + db "your backdrop!", $57 +; 0x64448 + +UnknownText_0x64448: ; 0x64448 + db $0, "I heard, I heard!", $51 + db "You got a MAGNET", $4f + db "TRAIN PASS!", $51 + db "When I saw you", $4f + db "departing on the", $51 + db "ship, I felt sad", $4f + db "that I wouldn't be", $51 + db "able to see you", $4f + db "for a while.", $51 + db "But since you have", $4f + db "that PASS, you can", $51 + db "zip back anytime!", $4f + db "That's reassuring!", $51 + db "What? You can FLY", $4f + db "back anytime?", $51 + db "What do you mean", $4f + db "by FLY?", $57 +; 0x6455b + +UnknownText_0x6455b: ; 0x6455b + db $0, "I saw, I saw!", $51 + db "You waking up", $4f + db "SNORLAX!", $51 + db "I was watching you", $4f + db "from afar, so I", $51 + db "couldn't tell what", $4f + db "you did exactly.", $51 + db "Did you play a", $4f + db "flute to wake it?", $51 + db "Wow! That's like", $4f + db "magic!", $57 +; 0x645ff + +UnknownText_0x645ff: ; 0x645ff + db $0, "I hear rumors", $4f + db "about you all over", $55 + db "the place.", $51 + db "It just makes me", $4f + db "sigh, ", $14, ".", $51 + db "How did you get so", $4f + db "strong?", $51 + db "Go for the world", $4f + db "championship now!", $51 + db "I'll always be", $4f + db "cheering you on!", $57 +; 0x646a3 + +UnknownText_0x646a3: ; 0x646a3 + db $0, "Hehe, I called", $4f + db "right away!", $51 + db "I think we can be", $4f + db "good friends!", $57 +; 0x646df + +UnknownText_0x646df: ; 0x646df + db $0, "I saw, I heard!", $51 + db "You beat MORTY of", $4f + db "ECRUTEAK GYM!", $51 + db "Th-that's just", $4f + db "incredible!", $51 + db "I actually went to", $4f + db "the GYM's entrance", $51 + db "to cheer you on.", $4f + db "Did you know that?", $51 + db "But everyone was", $4f + db "floating, and", $51 + db "there were ghosts", $4f + db "all over! So I", $51 + db "chickened out and", $4f + db "took off for home…", $57 +; 0x647d8 + +UnknownText_0x647d8: ; 0x647d8 + db $0, $14, ", I heard!", $51 + db "You're kicking up", $4f + db "a mighty ruckus", $51 + db "over in KANTO!", $4f + db "What a glorious", $51 + db "rampage it must", $4f + db "be!", $51 + db "You so rock!", $57 +; 0x64846 + +UnknownText_0x64846: ; 0x64846 + db $0, "Hearing about your", $4f + db "escapades rocks my", $51 + db "soul!", $4f + db "It sure does!", $57 +; 0x64881 + +UnknownText_0x64881: ; 0x64881 + db $0, "I'm so glad you", $4f + db "called!", $51 + db "I was just about", $4f + db "to call you too!", $51 + db "I guess we must be", $4f + db "a good match!", $57 +; 0x648dc + +UnknownText_0x648dc: ; 0x648dc + db $0, "How are you?", $51 + db "What are you", $4f + db "doing?", $51 + db "Where are you?", $51 + db "How many BADGES do", $4f + db "you have now?", $51 + db "How much money", $4f + db "have you saved?", $51 + db "How's your mom?", $51 + db "Have you got lots", $4f + db "of #MON?", $51 + db "Is it going to be", $4f + db "sunny tomorrow?", $51 + db "Arrgh, there's so", $4f + db "much I want to", $51 + db "chat about! This", $4f + db "is going nowhere!", $57 +; 0x649dc + +UnknownText_0x649dc: ; 0x649dc + db $0, "I'm always with my", $4f + db "@" + text_from_ram $d0ac + db $0, "!", $51 + db "It's so cute!", $4f + db "I just love it!", $57 +; 0x64a13 + +UnknownText_0x64a13: ; 0x64a13 + db $0, "Changing the topic", $4f + db "here, I saw this", $51 + db "@" + text_from_ram $d0ac + db $0, " for the", $4f + db "first time.", $51 + db "It was easy to", $4f + db "beat, actually.", $57 +; 0x64a71 + +UnknownText_0x64a71: ; 0x64a71 + db $0, "I was wondering,", $4f + db "do you happen to", $55 + db "have @" + text_from_ram $d0ac + db $0, "?", $51 + db "I can't seem to", $4f + db "catch one. What is", $51 + db "its weakness, I", $4f + db "wonder.", $57 +; 0x64ada + +UnknownText_0x64ada: ; 0x64ada + db $0, "Hey, let's battle", $4f + db "our #MON!", $51 + db "I won't lose to", $4f + db "you battling or in", $51 + db "the Bug-Catching", $4f + db "Contest!", $51 + db "I'll be here on", $4f + db "@" + text_from_ram $d0bf + db $0, "!", $57 +; 0x64b48 + +UnknownText_0x64b48: ; 0x64b48 + db $0, "Let's talk again,", $4f + db "huh?", $57 +; 0x64b5f + +UnknownText_0x64b5f: ; 0x64b5f + db $0, "Boy, am I glad I", $4f + db "caught you!", $51 + db "A whole bunch of", $4f + db "@" + text_from_ram $d0ac + db $0, " have", $51 + db "appeared around", $4f + db "@" + text_from_ram $d0bf + db $0, "!", $51 + db "You have to see", $4f + db "this!", $57 +; 0x64bc6 + +UnknownText_0x64bc6: ; 0x64bc6 + db $0, "I haven't had any", $4f + db "luck seeing rare", $55 + db "#MON lately…", $51 + db "But I know they're", $4f + db "out there!", $57 +; 0x64c13 + +UnknownText_0x64c13: ; 0x64c13 + db $0, "Hey, where are you", $4f + db "now?", $51 + db "Let's battle. I'll", $4f + db "be waiting for you", $55 + db "on @" + text_from_ram $d0bf + db $0, "!", $57 +; 0x64c5a + +UnknownText_0x64c5a: ; 0x64c5a + db $0, "Hello? Are you", $4f + db "coming or what?", $51 + db "You're missing out", $4f + db "on seeing YANMA!", $51 + db "Get down to ROUTE", $4f + db "35 right now!", $57 +; 0x64cbd + +UnknownText_0x64cbd: ; 0x64cbd + db $0, "My @" + text_from_ram $d0ac + db $0, "'s", $4f + db "getting stronger,", $51 + db "exactly as I", $4f + db "calculated!", $57 +; 0x64cf3 + +UnknownText_0x64cf3: ; 0x64cf3 + db $0, "By the way, we", $4f + db "knocked out a wild", $51 + db "@" + text_from_ram $d0ac + db $0, " just", $4f + db "the other day.", $51 + db "Studying up in", $4f + db "advance worked!", $57 +; 0x64d4f + +UnknownText_0x64d4f: ; 0x64d4f + db $0, "By the way, a wild", $4f + db "@" + text_from_ram $d0ac + db $0, " escaped", $55 + db "on me yesterday.", $51 + db "A computational", $4f + db "error on my part…", $57 +; 0x64da4 + +UnknownText_0x64da4: ; 0x64da4 + db $0, "I've studied quite", $4f + db "a bit since then,", $51 + db "and I've gotten a", $4f + db "lot better!", $51 + db "I'm hanging out on", $4f + db "@" + text_from_ram $d0bf + db $0, ".", $51 + db "Can you come down", $4f + db "for a battle?", $57 +; 0x64e1f + +UnknownText_0x64e1f: ; 0x64e1f + db $0, "See you later!", $57 +; 0x64e2f + +UnknownText_0x64e2f: ; 0x64e2f + db $0, "Hehehe, I picked", $4f + db "up something nice!", $51 + db "You can have it!", $4f + db "Why don't you come", $51 + db "to @" + text_from_ram $d0bf + db $0, $4f + db "and pick it up?", $57 +; 0x64e90 + +UnknownText_0x64e90: ; 0x64e90 + db $0, "I haven't picked", $4f + db "up anything yet.", $51 + db "I'll call you if I", $4f + db "find something.", $57 +; 0x64ed4 + +UnknownText_0x64ed4: ; 0x64ed4 + db $0, "If we don't battle", $4f + db "soon, I'll forget", $55 + db "my strategy!", $51 + db "I'm waiting on", $4f + db "@" + text_from_ram $d0bf + db $0, "!", $57 +; 0x64f1a + +UnknownText_0x64f1a: ; 0x64f1a + db $0, "I have to do my", $4f + db "homework, so can", $51 + db "you come get your", $4f + db "gift right away?", $51 + db "I'm waiting on", $4f + db "@" + text_from_ram $d0bf + db $0, "!", $57 +; 0x64f74 + +UnknownText_0x64f74: ; 0x64f74 + db $0, "My @" + text_from_ram $d0ac + db $0, " is", $4f + db "getting prettier!", $51 + db "I've been taking", $4f + db "photos galore!", $57 +; 0x64fb2 + +UnknownText_0x64fb2: ; 0x64fb2 + db $0, "It took only an", $4f + db "instant to KO a", $55 + db "wild @" + text_from_ram $d0ac + db $0, ".", $51 + db "It must be because", $4f + db "you gave me some", $51 + db "battling tips last", $4f + db "time.", $57 +; 0x6501c + +UnknownText_0x6501c: ; 0x6501c + db $0, "You know what?", $4f + db "A wild @" + text_from_ram $d0ac + db $0, $51 + db "got away from me", $4f + db "again.", $51 + db "It was so close!", $4f + db "Really, just a", $51 + db "little bit more,", $4f + db "and I would've…", $57 +; 0x65091 + +UnknownText_0x65091: ; 0x65091 + db $0, "Right now, I'm on", $4f + db "@" + text_from_ram $d0bf + db $0, ".", $51 + db "If you're close", $4f + db "by, let's battle!", $51 + db "I'll be waiting", $4f + db "for you!", $57 +; 0x650e2 + +UnknownText_0x650e2: ; 0x650e2 + db $0, "See you!", $57 +; 0x650ec + +UnknownText_0x650ec: ; 0x650ec + db $0, "You know what?", $4f + db "I got a good gift!", $51 + db "As I promised,", $4f + db "it's yours!", $51 + db "I'm sure you'd", $4f + db "like it. Come get", $51 + db "it! I'm waiting on", $4f + db "@" + text_from_ram $d0bf + db $0, "!", $57 +; 0x65161 + +UnknownText_0x65161: ; 0x65161 + db $0, "Oh! You wanted a", $4f + db "gift, right?", $51 + db "I got one, but I", $4f + db "want to keep this.", $51 + db "Can you wait a bit", $4f + db "longer?", $57 +; 0x651bf + +UnknownText_0x651bf: ; 0x651bf + db $0, "Hi! You haven't", $4f + db "forgotten about", $51 + db "your promise to", $4f + db "battle me?", $51 + db "I'm waiting on", $4f + db "@" + text_from_ram $d0bf + db $0, "!", $57 +; 0x6520f + +UnknownText_0x6520f: ; 0x6520f + db $0, "Hello?", $51 + db "If you don't come", $4f + db "get your present", $51 + db "soon, I'll give it", $4f + db "to someone else.", $51 + db "I'm waiting on", $4f + db "@" + text_from_ram $d0bf + db $0, "!", $57 +; 0x65271 + +UnknownText_0x65271: ; 0x65271 + db $0, "I recently began", $4f + db "observing wild", $55 + db "@" + text_from_ram $d0ac + db $0, ".", $51 + db "I've been learning", $4f + db "all sorts of new", $51 + db "things through my", $4f + db "observations.", $51 + db "I wish I could", $4f + db "become a #MON", $51 + db "researcher like", $4f + db "PROF.OAK soon.", $57 +; 0x65318 + +UnknownText_0x65318: ; 0x65318 + db $0, "Oh yes, I managed", $4f + db "to knock out a", $51 + db "wild @" + text_from_ram $d0ac + db $0, " a", $4f + db "while back.", $51 + db "Well, considering", $4f + db "all the studying I", $51 + db "do every day, it", $4f + db "was inevitable.", $57 +; 0x65399 + +UnknownText_0x65399: ; 0x65399 + db $0, "Oh yes, I came", $4f + db "close to catching", $51 + db "a wild @" + text_from_ram $d0ac + db $0, ",", $4f + db "but it got away.", $51 + db "For the longest", $4f + db "time, I've been", $51 + db "wanting to observe", $4f + db "@" + text_from_ram $d0ac + db $0, ". Rats…", $57 +; 0x65419 + +UnknownText_0x65419: ; 0x65419 + db $0, "Want to battle?", $4f + db "I have to battle", $51 + db "every so often to", $4f + db "avoid rusting out.", $51 + db "I'll be on", $4f + db "@" + text_from_ram $d0bf + db $0, "!", $57 +; 0x65471 + +UnknownText_0x65471: ; 0x65471 + db $0, "See you later!", $57 +; 0x65481 + +UnknownText_0x65481: ; 0x65481 + db $0, "Do you know BLUE?", $51 + db "He's PROF.OAK's", $4f + db "grandson and a", $51 + db "former #MON", $4f + db "LEAGUE CHAMPION!", $51 + db "He's one super", $4f + db "#MON trainer!", $57 +; 0x654ea + +UnknownText_0x654ea: ; 0x654ea + db $0, "PROF.OAK has a", $4f + db "granddaughter", $55 + db "named DAISY.", $51 + db "When she's around,", $4f + db "even the most", $51 + db "ferocious #MON", $4f + db "calm right down.", $57 +; 0x65555 + +UnknownText_0x65555: ; 0x65555 + db $0, "Everyone's talking", $4f + db "about PROF.ELM.", $51 + db "He used to be an", $4f + db "assistant to the", $55 + db "great PROF.OAK!", $51 + db "That is so cool!", $4f + db "I envy him!", $57 +; 0x655c7 + +UnknownText_0x655c7: ; 0x655c7 + db $0, "PROF.OAK's dream", $4f + db "is to compile a", $51 + db "comprehensive", $4f + db "#DEX.", $51 + db "I envy you for", $4f + db "taking part in", $55 + db "that project…", $57 +; 0x65628 + +UnknownText_0x65628: ; 0x65628 + db $0, "Do you know KURT,", $4f + db "the BALL creator?", $51 + db "He and PROF.OAK go", $4f + db "back a long way.", $51 + db "I guess great", $4f + db "people attract one", $55 + db "another!", $57 +; 0x6569b + +UnknownText_0x6569b: ; 0x6569b + db $0, "#MON LEAGUE is", $4f + db "the great gather-", $55 + db "ing place for all", $51 + db "trainers who wish", $4f + db "to become CHAMP.", $51 + db "PROF.OAK acts as", $4f + db "an advisor to the", $51 + db "#MON LEAGUE's", $4f + db "headquarters.", $51 + db "He really is a", $4f + db "great man.", $57 +; 0x6574a + +UnknownText_0x6574a: ; 0x6574a + db $0, "PROF.OAK'S #MON", $4f + db "TALK is a popular", $55 + db "radio show, right?", $51 + db "Did you know that", $4f + db "he was going to", $51 + db "turn down the show", $4f + db "at first?", $51 + db "But MARY's energy", $4f + db "and persistence", $55 + db "wore him down.", $51 + db "So we have MARY to", $4f + db "thank for it!", $57 +; 0x65810 + +UnknownText_0x65810: ; 0x65810 + db $0, "PROF.OAK used to", $4f + db "be a trainer a", $55 + db "long time ago.", $51 + db "But rather than", $4f + db "battling, he found", $51 + db "#MON themselves", $4f + db "to be interesting.", $51 + db "So he abandoned", $4f + db "his training to", $51 + db "focus on becoming", $4f + db "a researcher.", $57 +; 0x658c6 + +UnknownText_0x658c6: ; 0x658c6 + db $0, "PROF.OAK has a", $4f + db "granddaughter", $55 + db "named DAISY.", $51 + db "She has tea every", $4f + db "day for an hour", $51 + db "from three in the", $4f + db "afternoon.", $51 + db "I wish I could", $4f + db "join her for tea", $51 + db "and chat about", $4f + db "PROF.OAK.", $57 +; 0x65969 + +UnknownText_0x65969: ; 0x65969 + db $0, "Did you know?", $4f + db "PROF.OAK traveled", $51 + db "all over the world", $4f + db "when he was young.", $51 + db "While traveling,", $4f + db "he must've learned", $51 + db "about #MON", $4f + db "naturally.", $51 + db "I envy him…", $4f + db "I'd like to travel", $51 + db "and learn about", $4f + db "things too…", $57 +; 0x65a23 + +UnknownText_0x65a23: ; 0x65a23 + db $0, "I'm going to study", $4f + db "hard so PROF.OAK", $51 + db "will make me his", $4f + db "assistant!", $57 +; 0x65a63 + +UnknownText_0x65a63: ; 0x65a63 + db $0, "Do you remember", $4f + db "about our battle?", $51 + db "The place is", $4f + db "@" + text_from_ram $d0bf + db $0, ".", $51 + db "Hurry over--I'm", $4f + db "waiting.", $57 +; 0x65ab2 + +UnknownText_0x65ab2: ; 0x65ab2 + db $0, "Listen to this.", $4f + db "My @" + text_from_ram $d0ac + db $0, $51 + db "grins happily when", $4f + db "I pinch its cheek.", $51 + db "But it never grins", $4f + db "for anyone else.", $51 + db "I must be special.", $57 +; 0x65b29 + +UnknownText_0x65b29: ; 0x65b29 + db $0, "Oh, and recently,", $4f + db "my PIKACHU beat a", $55 + db "wild @" + text_from_ram $d0ac + db $0, "!", $51 + db "A wild @" + text_from_ram $d0ac + db $0, ",", $4f + db "I tell you!", $51 + db "Don't you think", $4f + db "that's astounding?", $51 + db "My PIKACHU is", $4f + db "awesome!", $51 + db "My PIKACHU is the", $4f + db "greatest!", $57 +; 0x65bc8 + +UnknownText_0x65bc8: ; 0x65bc8 + db $0, "Oh, and I saw a", $4f + db "wild @" + text_from_ram $d0ac + db $0, " a", $55 + db "little while ago.", $51 + db "But it wasn't very", $4f + db "cute, so I left", $51 + db "it…", $4f + db "#MON have to be", $51 + db "cute. They're no", $4f + db "good otherwise.", $57 +; 0x65c4e + +UnknownText_0x65c4e: ; 0x65c4e + db $0, "Well, let's talk", $4f + db "again!", $57 +; 0x65c66 + +UnknownText_0x65c66: ; 0x65c66 + db $0, "Did you remember?", $4f + db "The Bug-Catching", $55 + db "Contest is today.", $51 + db "You're going to", $4f + db "go, aren't you?", $51 + db "I think I'll", $4f + db "participate with", $51 + db "PIKACHU to show", $4f + db "off its cuteness.", $57 +; 0x65cf9 + +UnknownText_0x65cf9: ; 0x65cf9 + db $0, "I'd like you to", $4f + db "have a NUGGET.", $51 + db "My PIKACHU just", $4f + db "loves it.", $51 + db "I'm certain your", $4f + db "PIKACHU will love", $55 + db "it too!", $57 +; 0x65d5c + +UnknownText_0x65d5c: ; 0x65d5c + db $0, "How is your", $4f + db "PIKACHU doing?", $51 + db "Let's get together", $4f + db "and brag about our", $55 + db "PIKACHU!", $57 +; 0x65da6 + +UnknownText_0x65da6: ; 0x65da6 + db $0, "What's wrong?", $51 + db "I'm waiting on", $4f + db "@" + text_from_ram $d0bf + db $0, ".", $51 + db "Come pick this up", $4f + db "anytime.", $57 +; 0x65de4 + +UnknownText_0x65de4: ; 0x65de4 + db $0, "My @" + text_from_ram $d0ac + db $0, " has", $4f + db "grown again.", $51 + db "It was only about", $4f + db "so big when I", $51 + db "caught it, but now", $4f + db "it's way bigger.", $57 +; 0x65e42 + +UnknownText_0x65e42: ; 0x65e42 + db $0, "Oh yeah, I KO'd a", $4f + db "wild @" + text_from_ram $d0ac + db $0, ".", $51 + db "It was huge, like", $4f + db "this big even.", $51 + db "Heh, I guess you", $4f + db "can't tell over", $55 + db "the phone…", $57 +; 0x65eac + +UnknownText_0x65eac: ; 0x65eac + db $0, "Oh yeah, I lost a", $4f + db "wild @" + text_from_ram $d0ac + db $0, ".", $51 + db "It was huge, like", $4f + db "this big even.", $51 + db "Heh, I guess you", $4f + db "can't tell over", $55 + db "the phone…", $57 +; 0x65f17 + +UnknownText_0x65f17: ; 0x65f17 + db $0, "We should get a", $4f + db "battle going!", $51 + db "I'll be fishing on", $4f + db "@" + text_from_ram $d0bf + db $0, ".", $51 + db "Swing by if you", $4f + db "have the time.", $57 +; 0x65f6e + +UnknownText_0x65f6e: ; 0x65f6e + db $0, "Well, I'll be", $4f + db "seeing you.", $57 +; 0x65f88 + +UnknownText_0x65f88: ; 0x65f88 + db $0, "I picked up a good", $4f + db "little thing at", $55 + db "the water's edge.", $51 + db "Like I promised,", $4f + db "it's yours.", $51 + db "I'll be waiting on", $4f + db "@" + text_from_ram $d0bf + db $0, ".", $57 +; 0x65ff2 + +UnknownText_0x65ff2: ; 0x65ff2 + db $0, "Have I found", $4f + db "anything good?", $51 + db "Nope, not yet.", $51 + db "It's like fishing,", $4f + db "you need patience.", $57 +; 0x66043 + +UnknownText_0x66043: ; 0x66043 + db $0, "Yup, TULLY here…", $51 + db $14, "? What?", $4f + db "You're lost?", $51 + db "Our battle will be", $4f + db "on @" + text_from_ram $d0bf + db $0, ".", $57 +; 0x66087 + +UnknownText_0x66087: ; 0x66087 + db $0, "I've got something", $4f + db "good for you.", $51 + db "Hustle over to", $4f + db "@" + text_from_ram $d0bf + db $0, ".", $57 +; 0x660be + +UnknownText_0x660be: ; 0x660be + db $0, "Oh yeah, I got an", $4f + db "extremely rare", $51 + db "#MON in a trade", $4f + db "a while back.", $51 + db "Do you want to", $4f + db "know what it is?", $51 + db "Hehe, I'm keeping", $4f + db "it a secret!", $57 +; 0x6613c + +UnknownText_0x6613c: ; 0x6613c + db $0, "Oh yeah, I took", $4f + db "down this wild", $51 + db "@" + text_from_ram $d0ac + db $0, ".", $4f + db "It wasn't rare", $51 + db "enough to bother", $4f + db "catching.", $57 +; 0x6618c + +UnknownText_0x6618c: ; 0x6618c + db $0, "Oh yeah, I saw a", $4f + db "rare #MON about", $55 + db "an hour ago.", $51 + db "It was my first", $4f + db "sighting. But I", $51 + db "didn't have any", $4f + db "# BALLS…", $51 + db "Would BILL laugh", $4f + db "at my mistakes?", $57 +; 0x66214 + +UnknownText_0x66214: ; 0x66214 + db $0, "You've got time", $4f + db "like usual, right?", $51 + db "Feel like having a", $4f + db "battle?", $51 + db "It'll be a chance", $4f + db "to see my rare", $51 + db "#MON. It'll be", $4f + db "worth your time!", $51 + db "You know where--", $4f + db "@" + text_from_ram $d0bf + db $0, ".", $57 +; 0x662a9 + +UnknownText_0x662a9: ; 0x662a9 + db $0, "So that's it then.", $57 +; 0x662bc + +UnknownText_0x662bc: ; 0x662bc + db $0, "Did you know…?", $4f + db "BILL's father is", $51 + db "supposed to be a", $4f + db "great #MANIAC.", $57 +; 0x662fc + +UnknownText_0x662fc: ; 0x662fc + db $0, "Did you know…?", $4f + db "Apparently BILL's", $51 + db "grandpa isn't a", $4f + db "#MANIAC.", $57 +; 0x66335 + +UnknownText_0x66335: ; 0x66335 + db $0, "Did you know…?", $4f + db "BILL's originally", $55 + db "from GOLDENROD.", $57 +; 0x66366 + +UnknownText_0x66366: ; 0x66366 + db $0, "Did you know…?", $4f + db "BILL evidently", $51 + db "lives on ROUTE 25", $4f + db "in KANTO.", $57 +; 0x663a1 + +UnknownText_0x663a1: ; 0x663a1 + db $0, "Did you know…?", $4f + db "ABRA was the first", $51 + db "#MON that BILL", $4f + db "ostensibly caught.", $57 +; 0x663e6 + +UnknownText_0x663e6: ; 0x663e6 + db $0, "Did you know…?", $4f + db "BILL's younger", $51 + db "sister apparently", $4f + db "can't wink.", $57 +; 0x66421 + +UnknownText_0x66421: ; 0x66421 + db $0, "Did you know…?", $4f + db "BILL supposedly", $51 + db "hates milk and", $4f + db "can't drink it.", $57 +; 0x6645f + +UnknownText_0x6645f: ; 0x6645f + db $0, "Did you know…?", $4f + db "Evidently, BILL", $51 + db "isn't very good at", $4f + db "battling.", $57 +; 0x6649b + +UnknownText_0x6649b: ; 0x6649b + db $0, "Did you know…?", $4f + db "BILL appears to", $51 + db "like the lady at", $4f + db "the FLOWER SHOP.", $57 +; 0x664dd + +UnknownText_0x664dd: ; 0x664dd + db $0, "Did you know…?", $4f + db "BILL's mother is", $51 + db "said to have been", $4f + db "a KIMONO GIRL.", $57 +; 0x6651e + +UnknownText_0x6651e: ; 0x6651e + db $0, "You wanted to hear", $4f + db "about BILL?", $51 + db "Sorry, but I'm too", $4f + db "busy for you.", $51 + db "I'll call when I", $4f + db "have time.", $57 +; 0x66579 + +UnknownText_0x66579: ; 0x66579 + db $0, "You want to see my", $4f + db "rare #MON.", $51 + db "Hurry over to", $4f + db "@" + text_from_ram $d0bf + db $0, ".", $57 +; 0x665ad + +UnknownText_0x665ad: ; 0x665ad + db $0, "My @" + text_from_ram $d0ac + db $0, "'s", $4f + db "adorable, don't", $51 + db "you think so?", $4f + db "I always sleep", $51 + db "with it--it's so", $4f + db "fluffy and warm!", $57 +; 0x66605 + +UnknownText_0x66605: ; 0x66605 + db $0, "Oh, and we had to", $4f + db "battle a wild", $51 + db "@" + text_from_ram $d0ac + db $0, " a while", $4f + db "ago…", $51 + db "My CLEFAIRY came", $4f + db "close to fainting!", $51 + db "Isn't that awful?", $51 + db "I hate those nasty", $4f + db "@" + text_from_ram $d0ac + db $0, "!", $57 +; 0x66688 + +UnknownText_0x66688: ; 0x66688 + db $0, "Oh, and we had to", $4f + db "battle a wild", $51 + db "@" + text_from_ram $d0ac + db $0, " a while", $4f + db "ago…", $51 + db "My CLEFAIRY got", $4f + db "frightened, so we", $51 + db "ran away as fast", $4f + db "as we could!", $51 + db "I just can't help", $4f + db "feeling protective", $55 + db "of my CLEFAIRY.", $57 +; 0x66730 + +UnknownText_0x66730: ; 0x66730 + db $0, "I know this might", $4f + db "surprise you, but", $51 + db "would you like to", $4f + db "battle?", $51 + db "I'll be waiting", $4f + db "with CLEFAIRY on", $55 + db "@" + text_from_ram $d0bf + db $0, ".", $57 +; 0x66796 + +UnknownText_0x66796: ; 0x66796 + text_from_ram $d0ac + db $0, "!", $51 + db "It's awful.", $4f + db "My CLEFAIRY…", $51 + db "Huh? ", $14, "?", $51 + db "Oh, sorry! I was", $4f + db "in a hurry, and I…", $51 + db "I have to go!", $4f + db "Bye-bye!", $57 +; 0x667f7 + +UnknownText_0x667f7: ; 0x667f7 + db $0, "Bye-bye!", $57 +; 0x66801 + +UnknownText_0x66801: ; 0x66801 + db $0, "I bought some PINK", $4f + db "BOWS at GOLDENROD", $51 + db "DEPT.STORE for my", $4f + db "CLEFAIRY.", $51 + db "I got too many, so", $4f + db "I'll give you one!", $51 + db "Come collect it on", $4f + db "@" + text_from_ram $d0bf + db $0, ".", $57 +; 0x66882 + +UnknownText_0x66882: ; 0x66882 + db $0, "I love dressing up", $4f + db "my CLEFAIRY!", $57 +; 0x668a3 + +UnknownText_0x668a3: ; 0x668a3 + db $0, "What's wrong?", $4f + db "Can't you visit?", $51 + db "CLEFAIRY got tired", $4f + db "and fell asleep.", $51 + db "I'm not sure if I", $4f + db "can wake it up…", $51 + db "Please hurry to", $4f + db "@" + text_from_ram $d0bf + db $0, "!", $57 +; 0x6691d + +UnknownText_0x6691d: ; 0x6691d + db $0, "What's wrong?", $4f + db "Can't you visit?", $51 + db "I'm sure this will", $4f + db "look good on your", $55 + db "CLEFAIRY.", $51 + db "Please hurry to", $4f + db "@" + text_from_ram $d0bf + db $0, "!", $57 +; 0x66980 + +UnknownText_0x66980: ; 0x66980 + db $0, "My @" + text_from_ram $d0ac + db $0, "'s", $4f + db "become tougher.", $51 + db "We've achieved", $4f + db "liftoff!", $57 +; 0x669b2 + +UnknownText_0x669b2: ; 0x669b2 + db $0, "We can easily beat", $4f + db "@" + text_from_ram $d0ac + db $0, "!", $51 + db "…Huh? You too?", $4f + db "Isn't that great?", $57 +; 0x669ed + +UnknownText_0x669ed: ; 0x669ed + db $0, "But get this, a", $4f + db "wild @" + text_from_ram $d0ac + db $0, $51 + db "just barely eluded", $4f + db "us.", $51 + db "I wanted to FLY", $4f + db "after it…", $57 +; 0x66a3a + +UnknownText_0x66a3a: ; 0x66a3a + db $0, "Right now, I'm on", $4f + db "@" + text_from_ram $d0bf + db $0, ".", $51 + db "You know, where I", $4f + db "first met you?", $51 + db "Want to battle?", $4f + db "I'll wait here.", $57 +; 0x66a93 + +UnknownText_0x66a93: ; 0x66a93 + db $0, "OK, bye for now!", $57 +; 0x66aa5 + +UnknownText_0x66aa5: ; 0x66aa5 + db $0, "I'll be looking", $4f + db "forward to our", $55 + db "next battle!", $57 +; 0x66ad1 + +UnknownText_0x66ad1: ; 0x66ad1 + db $0, "Oh, ", $14, "!", $4f + db "Hurry, hurry!", $51 + db "@" + text_from_ram $d0bf + db $0, "!", $4f + db "FLY over now!", $57 +; 0x66afc + +UnknownText_0x66afc: ; 0x66afc + db $0, "My @" + text_from_ram $d0ac + db $0, "'s", $4f + db "grown impressive!", $51 + db "My fishing skills", $4f + db "have improved too!", $57 +; 0x66b3e + +UnknownText_0x66b3e: ; 0x66b3e + db $0, "We beat a wild", $4f + db "@" + text_from_ram $d0ac + db $0, "…", $51 + db "You know, I have", $4f + db "more fun fishing", $51 + db "than beating wild", $4f + db "#MON.", $57 +; 0x66b8f + +UnknownText_0x66b8f: ; 0x66b8f + db $0, "But a while back,", $4f + db "we came this close", $51 + db "to landing a wild", $4f + db "@" + text_from_ram $d0ac + db $0, ".", $51 + db "I tell you, it was", $4f + db "huge. Believe me.", $57 +; 0x66bf3 + +UnknownText_0x66bf3: ; 0x66bf3 + db $0, "I'm fishing on", $4f + db "@" + text_from_ram $d0bf + db $0, ",", $51 + db "but nothing's", $4f + db "biting today.", $51 + db "Help me while my", $4f + db "time away, come", $55 + db "over for a battle.", $57 +; 0x66c58 + +UnknownText_0x66c58: ; 0x66c58 + db $0, "All right, later.", $57 +; 0x66c6b + +UnknownText_0x66c6b: ; 0x66c6b + db $0, "I snagged an item", $4f + db "while fishing.", $51 + db "Come pick it up on", $4f + db "@" + text_from_ram $d0bf + db $0, ".", $57 +; 0x66ca7 + +UnknownText_0x66ca7: ; 0x66ca7 + db $0, "Nah, I haven't", $4f + db "found anything", $51 + db "that's worth your", $4f + db "time.", $51 + db "You have to have", $4f + db "patience.", $57 +; 0x66cf7 + +UnknownText_0x66cf7: ; 0x66cf7 + db $0, "Sigh…", $4f + db "They're not biting", $51 + db "like before on", $4f + db "@" + text_from_ram $d0bf + db $0, "…", $51 + db "You have to come", $4f + db "for a battle!", $57 +; 0x66d45 + +UnknownText_0x66d45: ; 0x66d45 + db $0, "Don't you want", $4f + db "this item?", $51 + db "Hah? You don't", $4f + db "know where?", $51 + db "@" + text_from_ram $d0bf + db $0, "…", $4f + db "Just head from", $51 + db "MAHOGANY toward", $4f + db "BLACKTHORN!", $57 +; 0x66dab + +UnknownText_0x66dab: ; 0x66dab + db $0, "Anyway, we'll chat", $4f + db "again!", $57 +; 0x66dc5 + +UnknownText_0x66dc5: ; 0x66dc5 + db $0, "Are you still on", $4f + db "your journey?", $51 + db "I remain dedicated", $4f + db "to my training.", $51 + db "Oooooaaarrrgh!", $57 +; 0x66e17 + +UnknownText_0x66e17: ; 0x66e17 + db $0, "I'm in training", $4f + db "now. I apologize,", $51 + db "but call me back", $4f + db "another time.", $51 + db "Oooooaaarrrgh!", $57 +; 0x66e67 + +UnknownText_0x66e67: ; 0x66e67 + db $0, "I apologize, but I", $4f + db "don't have time to", $51 + db "chat while I am in", $4f + db "training!", $51 + db "I'll have time to", $4f + db "chat tomorrow!", $51 + db "Yiiihah!", $57 +; 0x66ed3 + +UnknownText_0x66ed3: ; 0x66ed3 + db $0, "I plan to take a", $4f + db "lunch break, so", $51 + db "come see me then!", $4f + db "Ayiiiyah!", $57 +; 0x66f11 + +UnknownText_0x66f11: ; 0x66f11 + db $0, "I'm taking a break", $4f + db "on ROUTE 45!", $51 + db "Why not drop by if", $4f + db "you are free?", $57 +; 0x66f52 + +UnknownText_0x66f52: ; 0x66f52 + db $0, "I rested up over", $4f + db "my lunch break.", $51 + db "Now it's time to", $4f + db "resume training!", $51 + db "Oooryaah!", $57 +; 0x66f9f + +UnknownText_0x66f9f: ; 0x66f9f + db $0, "Nothing can match", $4f + db "my @" + text_from_ram $d0ac + db $0, " now.", $57 +; 0x66fc0 + +UnknownText_0x66fc0: ; 0x66fc0 + db $0, "Yeah, we KO'd a", $4f + db "wild @" + text_from_ram $d0ac + db $0, "!", $51 + db "That was OK, but I", $4f + db "wanted to get it…", $57 +; 0x67001 + +UnknownText_0x67001: ; 0x67001 + db $0, "And yesterday, we", $4f + db "spotted a wild", $51 + db "@" + text_from_ram $d0ac + db $0, ".", $4f + db "We were debating", $51 + db "whether to catch", $4f + db "it or beat it.", $51 + db "When along came", $4f + db "another guy who", $51 + db "caught it!", $4f + db "How about that!", $57 +; 0x67096 + +UnknownText_0x67096: ; 0x67096 + db $0, "You're thinking", $4f + db "you'd like to", $51 + db "battle me. Am I", $4f + db "right or what?", $51 + db "Yep! We'll meet on", $4f + db "@" + text_from_ram $d0bf + db $0, "!", $57 +; 0x670eb + +UnknownText_0x670eb: ; 0x670eb + db $0, "OK, give me a call", $4f + db "again!", $57 +; 0x67106 + +UnknownText_0x67106: ; 0x67106 + db $0, "You'll battle with", $4f + db "me again, right?", $57 +; 0x6712a + +UnknownText_0x6712a: ; 0x6712a + db $0, "Haven't you gotten", $4f + db "to @" + text_from_ram $d0bf + db $0, "?", $51 + db "Waiting here isn't", $4f + db "bad, but I'd sure", $55 + db "like to battle!", $57 +; 0x6717a + +UnknownText_0x6717a: ; 0x6717a + text_from_ram $d099 + db $0, "'s @" + text_from_ram $d0ac + db $0, $4f + db "is much stronger", $55 + db "than before!", $57 +; 0x671a4 + +UnknownText_0x671a4: ; 0x671a4 + db $0, "And, and…", $4f + db "I just battled and", $55 + db "beat @" + text_from_ram $d0ac + db $0, "!", $51 + db "I've raised my", $4f + db "#MON properly!", $57 +; 0x671eb + +UnknownText_0x671eb: ; 0x671eb + db $0, "But, but…", $51 + db "A wild @" + text_from_ram $d0ac + db $0, $4f + db "got away from me", $51 + db "again. It's just", $4f + db "not fair!", $57 +; 0x6722e + +UnknownText_0x6722e: ; 0x6722e + db $0, "I'm ERIN. Want to", $4f + db "battle me again?", $51 + db "I won't lose this", $4f + db "time!", $51 + db "I'll be waiting on", $4f + db "@" + text_from_ram $d0bf + db $0, "!", $57 +; 0x67281 + +UnknownText_0x67281: ; 0x67281 + db $0, "See you. Bye-bye!", $57 +; 0x67294 + +UnknownText_0x67294: ; 0x67294 + db $0, "I'm working hard", $4f + db "to raise my", $55 + db "#MON!", $51 + db "Come back for", $4f + db "another battle!", $57 +; 0x672d5 + +UnknownText_0x672d5: ; 0x672d5 + db $0, "Oh, ", $14, "!", $4f + db "Come battle ERIN!", $51 + db "I'll be waiting on", $4f + db "@" + text_from_ram $d0bf + db $0, "!", $57 +; 0x67308 From ff453a514b8fae87a65470b8e7da3b8f0d2adae6 Mon Sep 17 00:00:00 2001 From: yenatch Date: Fri, 16 Aug 2013 04:58:14 -0400 Subject: [PATCH 56/84] LoadMenuDataHeader and intro player name menu --- main.asm | 122 ++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 84 insertions(+), 38 deletions(-) diff --git a/main.asm b/main.asm index 53b6b2600..6836badab 100644 --- a/main.asm +++ b/main.asm @@ -5592,7 +5592,7 @@ Function1d19: ; 1d19 ; 1d35 -Function1d35: ; 0x1d35 +LoadMenuDataHeader: ; 0x1d35 call Function1d3c call Function1c00 ret @@ -5625,7 +5625,7 @@ Function1d57: ; 1d57 Function1d58: ; 1d58 ld hl, MenuDataHeader_0x1d5f - call Function1d35 + call LoadMenuDataHeader ret ; 1d5f @@ -5645,7 +5645,7 @@ Function1d67: ; 1d67 Function1d6e: ; 1d6e ld hl, MenuDataHeader_0x1d75 - call Function1d35 + call LoadMenuDataHeader ret ; 1d75 @@ -5687,7 +5687,7 @@ Function1d81: ; 0x1d81 ; 0x1dab Function1dab: ; 1dab - call Function1d35 + call LoadMenuDataHeader call Function1d81 call Function1c17 ld a, [$cfa9] @@ -5718,7 +5718,7 @@ Function1dcf: ; 1dcf ld bc, $0e07 jr .asm_1dd9 - call Function1d35 + call LoadMenuDataHeader jr .asm_1dfe .asm_1dd9 @@ -17757,7 +17757,7 @@ NamePlayer: ; 0x6074 ; 60e9 Function60e9: ; 60e9 - call Function1d35 + call LoadMenuDataHeader call Function1d81 ld a, [$cfa9] dec a @@ -26626,7 +26626,7 @@ StartMenu: ; 125cd ld hl, .ContestMenuDataHeader .GotMenuData - call Function1d35 + call LoadMenuDataHeader call .SetUpMenuItems ld a, [$d0d2] ld [$cf88], a @@ -27344,7 +27344,7 @@ GiveTakePartyMonItem: ; 12b60 jr z, .asm_12ba6 ld hl, GiveTakeItemMenuData - call Function1d35 + call LoadMenuDataHeader call Function1d81 call Function1c07 jr c, .asm_12ba6 @@ -27626,7 +27626,7 @@ Function12d45: ; 12d45 cp $2 jr z, .asm_12d6d ld hl, $6dc9 - call Function1d35 + call LoadMenuDataHeader call Function1d81 call Function1c07 jp c, $6dc6 @@ -35248,7 +35248,7 @@ Function24d19: ; 24d19 call Function24dd4 callba Function8ea4a ld hl, MenuDataHeader_0x24d3f - call Function1d35 + call LoadMenuDataHeader call Function24d47 call Function24d91 @@ -35550,7 +35550,7 @@ MenuData2_0x24edc: ; 24edc Function24ef2: ; 4ef2 ld hl, MenuDataHeader_0x24f2c - call Function1d35 + call LoadMenuDataHeader ld a, [$d0d2] ld [$cf88], a call Function2039 @@ -35564,14 +35564,14 @@ Function24ef2: ; 4ef2 Function24f0b: ; 24f0b ; Safari battle menu (untranslated). ld hl, MenuDataHeader_0x24f4e - call Function1d35 + call LoadMenuDataHeader jr Function24f19 ; 24f13 Function24f13: ; 24f13 ; Park battle menu. ld hl, MenuDataHeader_0x24f89 - call Function1d35 + call LoadMenuDataHeader ; 24f19 Function24f19: ; 24f19 @@ -35675,7 +35675,7 @@ Function24fb2: ; 24fb2 Function24fbf: ; 24fbf ld hl, $50ed - call Function1d35 + call LoadMenuDataHeader call Function24ff9 ret ; 24fc9 @@ -35688,7 +35688,7 @@ Function24fc9: ; 24fc9 ld a, e ld [Buffer2], a ld hl, $50f5 - call Function1d35 + call LoadMenuDataHeader call Function24ff9 ret ; 24fe1 @@ -35700,7 +35700,7 @@ Function24fe1: ; 24fe1 ld a, e ld [Buffer2], a ld hl, $50fd - call Function1d35 + call LoadMenuDataHeader call Function24ff9 ret ; 24ff9 @@ -36180,7 +36180,7 @@ _KrisDecorationMenu: ; 0x2675c ld a, [$cf76] push af ld hl, $679a - call Function1d35 + call LoadMenuDataHeader xor a ld [$d1ee], a ld a, $1 @@ -50370,7 +50370,7 @@ Function44806: ; 0x44806 Function4484a: ; 0x4484a ld hl, MenuData44964 - call Function1d35 + call LoadMenuDataHeader call Function1d81 call Function1c07 jr c, .asm_44860 @@ -50658,7 +50658,7 @@ Function492a5: ; 492a5 Function492b9: ; 492b9 ld hl, $530a - call Function1d35 + call LoadMenuDataHeader ld a, $e call Predef push bc @@ -50739,7 +50739,7 @@ MainMenu: ; 49cdc ld [$cf76], a call Function49e09 ld hl, MenuDataHeader_0x49d14 - call Function1d35 + call LoadMenuDataHeader call Function49de4 call Function1c17 jr c, .quit @@ -58017,15 +58017,18 @@ SECTION "bank22",DATA,BANK[$22] INCBIN "baserom.gbc", $88000, $88258 - $88000 -MovePlayerPicRight: ; 0x88258 - ld hl, $c4f6 - ld de, $0001 +MovePlayerPicRight: ; 88258 + hlcoord 6, 4 + ld de, 1 jr MovePlayerPic -MovePlayerPicLeft - ld hl, $c4fd + +MovePlayerPicLeft: ; 88260 + hlcoord 13, 4 ld de, -1 ; fallthrough -MovePlayerPic: ; 0x88266 + +MovePlayerPic: ; 88266 +; Move player pic at hl by de * 7 tiles. ld c, $8 .loop push bc @@ -58059,24 +58062,67 @@ MovePlayerPic: ; 0x88266 pop bc pop hl jr .loop +; 88297 -ShowPlayerNamingChoices: ; 0x88297 - ld hl, $42b5 ; male +ShowPlayerNamingChoices: ; 88297 + ld hl, ChrisNameMenuHeader ld a, [PlayerGender] bit 0, a - jr z, .skip - ld hl, $42e5 ; female -.skip - call Function1d35 + jr z, .GotGender + ld hl, KrisNameMenuHeader +.GotGender + call LoadMenuDataHeader call Function1d81 ld a, [$cfa9] dec a call Function1db8 call Function1c17 ret -; 0x882b5 +; 882b5 -INCBIN "baserom.gbc", $882b5, $8832c - $882b5 +ChrisNameMenuHeader: ; 882b5 + db $40 ; flags + db 00, 00 ; start coords + db 11, 10 ; end coords + dw MenuData2_0x882be + db 1 ; ???? + db 0 ; default option +; 882be + +MenuData2_0x882be: ; 882be + db $91 ; flags + db 5 ; items + db "NEW NAME@" + db "CHRIS@" + db "MAT@" + db "ALLAN@" + db "JON@" + db 2 ; displacement + db " NAME @" ; title +; 882e5 + +KrisNameMenuHeader: ; 882e5 + db $40 ; flags + db 00, 00 ; start coords + db 11, 10 ; end coords + dw MenuData2_0x882ee + db 1 ; ???? + db 0 ; default option +; 882ee + +MenuData2_0x882ee: ; 882ee + db $91 ; flags + db 5 ; items + db "NEW NAME@" + db "KRIS@" + db "AMANDA@" + db "JUANA@" + db "JODI@" + db 2 ; displacement + db " NAME @" ; title +; 88318 + +INCBIN "baserom.gbc", $88318, $8832c - $88318 GetPlayerIcon: ; 8832c ; Get the player icon corresponding to gender @@ -69646,7 +69692,7 @@ Function100b12: ; 100b12 ret c ld hl, $4f2c ld a, $9 - ld de, Function1d35 + ld de, LoadMenuDataHeader call FarJpDe ld a, $9 ld [$cf94], a @@ -72104,7 +72150,7 @@ Function117b14: dec [hl] ret nz ld hl, Data117cbc - call Function1d35 + call LoadMenuDataHeader call Function1cbb call Function1cfd jp Function117cdd @@ -72116,7 +72162,7 @@ Function117b28: Function117b31: ld hl, Data117cc4 - call Function1d35 + call LoadMenuDataHeader call Function1cbb call Function1cfd ld hl, $c550 @@ -72264,7 +72310,7 @@ Function117bb6: Function117c4a: ld hl, Data117cbc - call Function1d35 + call LoadMenuDataHeader call Function1cbb call Function1cfd ld a, $41 From b3dcb0e87529179111f65465fa7090af94008a65 Mon Sep 17 00:00:00 2001 From: yenatch Date: Fri, 16 Aug 2013 14:38:59 -0400 Subject: [PATCH 57/84] pokegear radio channel names --- main.asm | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/main.asm b/main.asm index 6836badab..0aca6fd01 100644 --- a/main.asm +++ b/main.asm @@ -60264,8 +60264,21 @@ PokegearSpritesGFX: ; 914dd INCBIN "gfx/misc/pokegear_sprites.lz" ; 91508 -INCBIN "baserom.gbc", $91508, $91ae1 - $91508 +INCBIN "baserom.gbc", $91508, $918bf - $91508 +RadioChannels: ; 918bf +; Buena's Password is at 0x917c3 + db "OAK's ", $e1, $e2, " Talk@" + db "#DEX Show@" + db "#MON Music@" + db "Lucky Channel@" + db "?????@" + db "Places & People@" + db "Let's All Sing!@" + db "# FLUTE@" +; 9191c + +INCBIN "baserom.gbc", $9191c, $91ae1 - $9191c Function91ae1: ; 91ae1 ld a, e From f458f96427746b8410a88b0162e894ea9d527399 Mon Sep 17 00:00:00 2001 From: yenatch Date: Fri, 16 Aug 2013 14:43:21 -0400 Subject: [PATCH 58/84] even more phone text (bank 29) --- main.asm | 2 +- text/phone/extra2.asm | 951 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 952 insertions(+), 1 deletion(-) create mode 100644 text/phone/extra2.asm diff --git a/main.asm b/main.asm index 0aca6fd01..c70190dd7 100644 --- a/main.asm +++ b/main.asm @@ -62874,7 +62874,7 @@ INCBIN "baserom.gbc", $a0000, $a1eca - $a0000 SECTION "bank29",DATA,BANK[$29] -INCBIN "baserom.gbc", $a4000, $a64ad - $a4000 +INCLUDE "text/phone/extra2.asm" SECTION "bank2A",DATA,BANK[$2A] diff --git a/text/phone/extra2.asm b/text/phone/extra2.asm new file mode 100644 index 000000000..aa807e821 --- /dev/null +++ b/text/phone/extra2.asm @@ -0,0 +1,951 @@ + +UnknownText_0xa4000: ; 0xa4000 + db $0, "By the way, I'm a", $4f + db "HIKER, so I often", $51 + db "go to mountains", $4f + db "and caves.", $51 + db "I occasionally see", $4f + db "rare #MON.", $51 + db "I could call you", $4f + db "the next time I", $55 + db "see one.", $51 + db "Feel like swapping", $4f + db "phone numbers?", $57 +; 0xa40a9 + +UnknownText_0xa40a9: ; 0xa40a9 + db $0, "I could call you", $4f + db "when I see some", $55 + db "rare #MON.", $51 + db "Feel like swapping", $4f + db "phone numbers?", $57 +; 0xa40f8 + +UnknownText_0xa40f8: ; 0xa40f8 + db $0, "Be patient. I'll", $4f + db "find some rare", $55 + db "#MON for you!", $57 +; 0xa4126 + +UnknownText_0xa4126: ; 0xa4126 + db $0, "You're cold. I may", $4f + db "as well head to", $55 + db "the mountains…", $57 +; 0xa4158 + +UnknownText_0xa4158: ; 0xa4158 + db $0, "Your phone's full.", $51 + db "It can't register", $4f + db "my phone number.", $57 +; 0xa418d + +UnknownText_0xa418d: ; 0xa418d + db $0, "All righty, then!", $51 + db "My #MON and I", $4f + db "are raring to go!", $57 +; 0xa41c0 + +UnknownText_0xa41c0: ; 0xa41c0 + db $0, "From here, I can", $4f + db "see GOLDENROD's", $51 + db "DEPT.STORE. They", $4f + db "have bargain sales", $51 + db "up on the rooftop", $4f + db "every so often.", $51 + db "Could I get your", $4f + db "phone number?", $51 + db "I'll call you when", $4f + db "they have a sale.", $57 +; 0xa426a + +UnknownText_0xa426a: ; 0xa426a + db $0, "If you give me", $4f + db "your number, I'll", $51 + db "call you when they", $4f + db "have a sale.", $57 +; 0xa42ab + +UnknownText_0xa42ab: ; 0xa42ab + db $0, "I check GOLDENROD", $4f + db "DEPT.STORE every", $51 + db "day, so I know", $4f + db "when there's a", $55 + db "sale.", $57 +; 0xa42f2 + +UnknownText_0xa42f2: ; 0xa42f2 + db $0, "Anyway…", $51 + db "If you're short on", $4f + db "money, take down", $55 + db "my number.", $51 + db "I'll call you when", $4f + db "there's a sale.", $57 +; 0xa434a + +UnknownText_0xa434a: ; 0xa434a + db $0, "Your phone doesn't", $4f + db "have enough memory", $55 + db "for more numbers.", $57 +; 0xa4382 + +UnknownText_0xa4382: ; 0xa4382 + db $0, "I waited for you!", $4f + db "I even cut back my", $51 + db "shopping to raise", $4f + db "my #MON better!", $57 +; 0xa43ca + +UnknownText_0xa43ca: ; 0xa43ca + db $0, "Shopping under the", $4f + db "sky!", $51 + db "It feels so nice", $4f + db "up on a rooftop.", $57 +; 0xa4405 + +UnknownText_0xa4405: ; 0xa4405 + db $0, "Whenever I see a", $4f + db "strong trainer, I", $51 + db "want to be their", $4f + db "cheerleader.", $51 + db "When I'm on my", $4f + db "walk, I sometimes", $55 + db "pick up items.", $51 + db "If I get anything,", $4f + db "you can have it!", $51 + db "Want to give me", $4f + db "your number?", $51 + db "I'll call as soon", $4f + db "as I get anything.", $57 +; 0xa44db + +UnknownText_0xa44db: ; 0xa44db + db $0, "If I find an item,", $4f + db "you can have it!", $51 + db "Want to give me", $4f + db "your number?", $57 +; 0xa451d + +UnknownText_0xa451d: ; 0xa451d + db $0, "I'll call as soon", $4f + db "as I get anything!", $57 +; 0xa4542 + +UnknownText_0xa4542: ; 0xa4542 + db $0, "Is that so? Well,", $4f + db "I'll still be", $55 + db "rooting for you!", $57 +; 0xa4573 + +UnknownText_0xa4573: ; 0xa4573 + db $0, "But your phone is", $4f + db "all filled up!", $57 +; 0xa4595 + +UnknownText_0xa4595: ; 0xa4595 + db $0, "I've been waiting!", $51 + db "I've gotten a bit", $4f + db "better at this!", $57 +; 0xa45c9 + +UnknownText_0xa45c9: ; 0xa45c9 + db $0, "So you're finally", $4f + db "here!", $51 + db "I think this will", $4f + db "make you happy.", $57 +; 0xa4603 + +UnknownText_0xa4603: ; 0xa4603 + db $0, "Your PACK looks", $4f + db "completely full.", $51 + db "I'll have to hold", $4f + db "on to this.", $57 +; 0xa4642 + +UnknownText_0xa4642: ; 0xa4642 + db $0, "You're the best", $4f + db "I've ever battled!", $51 + db "Huh? You're the", $4f + db "one who saved all", $55 + db "the SLOWPOKE?", $51 + db "Well, no wonder I", $4f + db "couldn't beat you!", $51 + db "Would it be OK to", $4f + db "get your number?", $51 + db "I don't want to", $4f + db "miss anything you", $55 + db "do from now on!", $57 +; 0xa470b + +UnknownText_0xa470b: ; 0xa470b + db $0, "You will tell me", $4f + db "your phone number?", $57 +; 0xa4730 + +UnknownText_0xa4730: ; 0xa4730 + db $0, "Wow! Gee, thanks!", $4f + db "Now I can call you", $51 + db "anytime, whether", $4f + db "anything's up or", $51 + db "not. You know,", $4f + db "just to chat!", $57 +; 0xa4794 + +UnknownText_0xa4794: ; 0xa4794 + db $0, "Oh, but…", $4f + db "I'm not dangerous!", $51 + db "I just want to", $4f + db "call and chat", $51 + db "about everything", $4f + db "and nothing!", $57 +; 0xa47eb + +UnknownText_0xa47eb: ; 0xa47eb + db $0, "Your phone list is", $4f + db "already full…", $51 + db "You must be really", $4f + db "popular…", $57 +; 0xa4829 + +UnknownText_0xa4829: ; 0xa4829 + db $0, "Do you get the", $4f + db "feeling that there", $51 + db "are more rare", $4f + db "#MON around?", $51 + db "I'm positive there", $4f + db "are, so I look all", $55 + db "the time.", $51 + db "If I find one, I", $4f + db "want to share the", $51 + db "good news with", $4f + db "everyone I know.", $51 + db "I know! Give me", $4f + db "your phone number.", $57 +; 0xa48fc + +UnknownText_0xa48fc: ; 0xa48fc + db $0, "I want to let", $4f + db "people know if I", $55 + db "see rare #MON.", $51 + db "Please give me", $4f + db "your phone number!", $57 +; 0xa494d + +UnknownText_0xa494d: ; 0xa494d + db $0, "If I spot any", $4f + db "awesome #MON,", $51 + db "I'll be sure to", $4f + db "give you a call!", $57 +; 0xa498a + +UnknownText_0xa498a: ; 0xa498a + db $0, "Aww! I want to", $4f + db "tell someone about", $55 + db "my discoveries!", $57 +; 0xa49bd + +UnknownText_0xa49bd: ; 0xa49bd + db $0, "There's no space", $4f + db "for my number.", $51 + db "If you make room,", $4f + db "register me!", $57 +; 0xa49fc + +UnknownText_0xa49fc: ; 0xa49fc + db $0, "It's my turn to", $4f + db "win now!", $51 + db "I've turned over a", $4f + db "new leaf!", $57 +; 0xa4a31 + +UnknownText_0xa4a31: ; 0xa4a31 + db $0, "Reading textbooks", $4f + db "is worthwhile", $55 + db "every so often.", $51 + db "When I'm reading", $4f + db "and walking, I", $55 + db "have to look down.", $51 + db "So I notice items", $4f + db "on the ground.", $51 + db "Next time I find", $4f + db "something, I'll", $55 + db "give it to you.", $51 + db "May I have your", $4f + db "phone number?", $57 +; 0xa4b03 + +UnknownText_0xa4b03: ; 0xa4b03 + db $0, "If I find some-", $4f + db "thing, it's yours.", $51 + db "So may I have your", $4f + db "phone number?", $57 +; 0xa4b47 + +UnknownText_0xa4b47: ; 0xa4b47 + db $0, "I'll call you as", $4f + db "soon as I find", $51 + db "something. You can", $4f + db "count on it!", $57 +; 0xa4b87 + +UnknownText_0xa4b87: ; 0xa4b87 + db $0, "Oh… I thought it", $4f + db "would be a good", $51 + db "break to call you", $4f + db "when I'm studying…", $57 +; 0xa4bcd + +UnknownText_0xa4bcd: ; 0xa4bcd + db $0, "There's no room", $4f + db "for my number.", $57 +; 0xa4bec + +UnknownText_0xa4bec: ; 0xa4bec + db $0, "I waited around", $4f + db "for you!", $51 + db "I'm thoroughly", $4f + db "prepared today!", $57 +; 0xa4c24 + +UnknownText_0xa4c24: ; 0xa4c24 + db $0, "This, this! This", $4f + db "is yours! Ta-da!", $57 +; 0xa4c47 + +UnknownText_0xa4c47: ; 0xa4c47 + db $0, "Whoops!", $51 + db "You can't carry", $4f + db "any more items!", $51 + db "I'll hold it until", $4f + db "next time.", $57 +; 0xa4c8c + +UnknownText_0xa4c8c: ; 0xa4c8c + db $0, "You're really good", $4f + db "at #MON!", $51 + db "Boys give me items", $4f + db "after battles, but", $51 + db "sometimes they", $4f + db "give me too much.", $51 + db "Next time, I can", $4f + db "share some if you", $51 + db "want. Let me get", $4f + db "your phone number.", $57 +; 0xa4d36 + +UnknownText_0xa4d36: ; 0xa4d36 + db $0, "I'll share my", $4f + db "gifts with you.", $51 + db "Let me get your", $4f + db "phone number.", $57 +; 0xa4d72 + +UnknownText_0xa4d72: ; 0xa4d72 + db $0, "Next time a boy", $4f + db "gives me something", $51 + db "after a battle,", $4f + db "I'll share some!", $51 + db "Does that make me", $4f + db "bad?", $57 +; 0xa4dcd + +UnknownText_0xa4dcd: ; 0xa4dcd + db $0, "Aww, you don't", $4f + db "want anything?", $51 + db "But it's all for", $4f + db "free…", $57 +; 0xa4e01 + +UnknownText_0xa4e01: ; 0xa4e01 + db $0, "But your phone's", $4f + db "out of memory!", $57 +; 0xa4e21 + +UnknownText_0xa4e21: ; 0xa4e21 + db $0, "You're really", $4f + db "late!", $51 + db "I'm eager to get", $4f + db "going!", $57 +; 0xa4e4c + +UnknownText_0xa4e4c: ; 0xa4e4c + db $0, "Hi! Are you here", $4f + db "for your gift?", $51 + db "This should really", $4f + db "make your day!", $57 +; 0xa4e8f + +UnknownText_0xa4e8f: ; 0xa4e8f + db $0, "Where are you", $4f + db "going to put this?", $51 + db "I'll keep it, so", $4f + db "come get it later!", $57 +; 0xa4ed4 + +UnknownText_0xa4ed4: ; 0xa4ed4 + db $0, "Huh? Is that thing", $4f + db "a #DEX? Have", $55 + db "you met PROF.OAK?", $51 + db "Huh? You have? ", $4f + db "That's way cool!", $51 + db "I have a dream of", $4f + db "becoming a #MON", $51 + db "researcher like", $4f + db "PROF.OAK.", $51 + db "May I please have", $4f + db "your phone number?", $51 + db "We should chat", $4f + db "about PROF.OAK.", $51 + db "I'm sure it will", $4f + db "be loads of fun!", $57 +; 0xa4fc8 + +UnknownText_0xa4fc8: ; 0xa4fc8 + db $0, "May I please have", $4f + db "your phone number?", $51 + db "We should chat", $4f + db "about PROF.OAK.", $51 + db "I'm sure it will", $4f + db "be loads of fun!", $57 +; 0xa502e + +UnknownText_0xa502e: ; 0xa502e + db $0, "You must listen to", $4f + db "PROF.OAK'S #MON", $55 + db "TALK, right?", $57 +; 0xa505f + +UnknownText_0xa505f: ; 0xa505f + db $0, "Oh… I wish I had a", $4f + db "chance to meet", $55 + db "PROF.OAK…", $57 +; 0xa508c + +UnknownText_0xa508c: ; 0xa508c + db $0, "Your phone list is", $4f + db "completely full!", $57 +; 0xa50b1 + +UnknownText_0xa50b1: ; 0xa50b1 + db $0, "I've been waiting!", $4f + db "Let's battle now!", $57 +; 0xa50d5 + +UnknownText_0xa50d5: ; 0xa50d5 + db $0, "Oh, wow! PIKACHU!", $4f + db "It's so soft and", $55 + db "furry! How cute!", $51 + db "Let's be friends!", $4f + db "PIKACHU-lovers are", $55 + db "never bad people!", $51 + db "Let's chat about", $4f + db "PIKACHU!", $51 + db "Can I get your", $4f + db "phone number?", $57 +; 0xa5175 + +UnknownText_0xa5175: ; 0xa5175 + db $0, "Let's chat about", $4f + db "PIKACHU!", $51 + db "Can I get your", $4f + db "phone number?", $57 +; 0xa51ac + +UnknownText_0xa51ac: ; 0xa51ac + db $0, "PIKACHU is the", $4f + db "one! If anything", $51 + db "comes up, I'll", $4f + db "give you a jingle.", $57 +; 0xa51ee + +UnknownText_0xa51ee: ; 0xa51ee + db $0, "You…", $51 + db "I bet you don't", $4f + db "even like PIKACHU…", $57 +; 0xa5216 + +UnknownText_0xa5216: ; 0xa5216 + db $0, "Wait a sec! Your", $4f + db "phone list's full!", $57 +; 0xa523a + +UnknownText_0xa523a: ; 0xa523a + db $0, "I've been looking", $4f + db "for you! Here, see", $55 + db "this? This is it!", $51 + db "I'm certain your", $4f + db "PIKACHU will love", $55 + db "my gift too!", $57 +; 0xa52a0 + +UnknownText_0xa52a0: ; 0xa52a0 + db $0, "Uh-oh, too bad.", $4f + db "You don't have any", $51 + db "room. Be sure to", $4f + db "get it later.", $57 +; 0xa52e2 + +UnknownText_0xa52e2: ; 0xa52e2 + db $0, "Hey, you're trying", $4f + db "to be the ultimate", $51 + db "trainer too? Then", $4f + db "we're comrades!", $51 + db "If I find any more", $4f + db "items by the", $51 + db "water, I'll give", $4f + db "you some.", $51 + db "Just give me your", $4f + db "phone number.", $57 +; 0xa5383 + +UnknownText_0xa5383: ; 0xa5383 + db $0, "If I find any more", $4f + db "items by the", $51 + db "water, I'll give", $4f + db "you some.", $51 + db "Just give me your", $4f + db "phone number.", $57 +; 0xa53de + +UnknownText_0xa53de: ; 0xa53de + db $0, "You'll be hearing", $4f + db "from me if I find", $55 + db "something good.", $57 +; 0xa5412 + +UnknownText_0xa5412: ; 0xa5412 + db $0, "Is that so? Then", $4f + db "I'll just have to", $55 + db "use them myself.", $57 +; 0xa5446 + +UnknownText_0xa5446: ; 0xa5446 + db $0, "Your phone list is", $4f + db "all filled up.", $51 + db "Come back if you", $4f + db "make room for me.", $57 +; 0xa548c + +UnknownText_0xa548c: ; 0xa548c + db $0, "I've been doing", $4f + db "more than just", $51 + db "fishing since we", $4f + db "last met.", $51 + db "You're in for a", $4f + db "big surprise!", $57 +; 0xa54e3 + +UnknownText_0xa54e3: ; 0xa54e3 + db $0, "Hey, there you", $4f + db "are!", $51 + db "Here's a gift, as", $4f + db "promised!", $57 +; 0xa5513 + +UnknownText_0xa5513: ; 0xa5513 + db $0, "Your PACK's full?", $51 + db "Come back later--", $4f + db "that'll do it.", $57 +; 0xa5545 + +UnknownText_0xa5545: ; 0xa5545 + db $0, "By the way, you're", $4f + db "a #MANIAC…", $51 + db "I can tell.", $4f + db "Yes, you are.", $51 + db "But your knowledge", $4f + db "is shallow still!", $51 + db "Do you know BILL?", $4f + db "He's an incredible", $51 + db "#MANIAC.", $4f + db "I revere him.", $51 + db "I'll teach you all", $4f + db "I know about BILL,", $51 + db "so leave me your", $4f + db "phone number.", $57 +; 0xa5621 + +UnknownText_0xa5621: ; 0xa5621 + db $0, "I'll teach you all", $4f + db "I know about BILL,", $51 + db "so leave me your", $4f + db "phone number.", $57 +; 0xa5666 + +UnknownText_0xa5666: ; 0xa5666 + db $0, "BILL--he's more", $4f + db "than amazing!", $51 + db "To be a #MANIAC", $4f + db "like him someday…", $51 + db "That's my dream.", $57 +; 0xa56b6 + +UnknownText_0xa56b6: ; 0xa56b6 + db $0, "You're going to", $4f + db "regret it…", $51 + db "And I won't care…", $57 +; 0xa56e2 + +UnknownText_0xa56e2: ; 0xa56e2 + db $0, "Huh? Your phone", $4f + db "list's full.", $51 + db "A #MANIAC has", $4f + db "to be more tidy!", $57 +; 0xa571e + +UnknownText_0xa571e: ; 0xa571e + db $0, "I've been waiting.", $51 + db "Look, check out my", $4f + db "#MON!", $57 +; 0xa574a + +UnknownText_0xa574a: ; 0xa574a + db $0, "Hi! You like", $4f + db "CLEFAIRY too?", $51 + db "They're so very", $4f + db "cute, aren't they?", $51 + db "I think we can be", $4f + db "good friends!", $51 + db "I want to know", $4f + db "your phone number!", $51 + db "Let's talk about", $4f + db "CLEFAIRY!", $57 +; 0xa57e3 + +UnknownText_0xa57e3: ; 0xa57e3 + db $0, "I want to know", $4f + db "your phone number!", $51 + db "Let's talk about", $4f + db "CLEFAIRY!", $57 +; 0xa5820 + +UnknownText_0xa5820: ; 0xa5820 + db $0, "Isn't my CLEFAIRY", $4f + db "super-adorable?", $57 +; 0xa5842 + +UnknownText_0xa5842: ; 0xa5842 + db $0, "Aww… Oh well.", $4f + db "Look for me if you", $51 + db "want to talk about", $4f + db "CLEFAIRY.", $57 +; 0xa5881 + +UnknownText_0xa5881: ; 0xa5881 + db $0, "Oh? Your phone", $4f + db "registry is full.", $57 +; 0xa58a3 + +UnknownText_0xa58a3: ; 0xa58a3 + db $0, "There you are!", $51 + db "CLEFAIRY, I want", $4f + db "you to try hard!", $57 +; 0xa58d5 + +UnknownText_0xa58d5: ; 0xa58d5 + db $0, "You took a long", $4f + db "time. See this?", $51 + db "Isn't it cute?", $4f + db "It's a PINK BOW.", $57 +; 0xa5914 + +UnknownText_0xa5914: ; 0xa5914 + db $0, "Uh-oh. Your PACK", $4f + db "is crammed full.", $57 +; 0xa5937 + +UnknownText_0xa5937: ; 0xa5937 + db $0, "You know, you are", $4f + db "really strong.", $51 + db "But I don't want", $4f + db "to just slink off…", $51 + db "I know! Could I", $4f + db "get your number?", $51 + db "Let's meet up for", $4f + db "more battles!", $57 +; 0xa59bc + +UnknownText_0xa59bc: ; 0xa59bc + db $0, "I want to battle", $4f + db "tough trainers as", $55 + db "often as I can!", $51 + db "Could I get your", $4f + db "number?", $51 + db "Let's meet up for", $4f + db "more battles!", $57 +; 0xa5a28 + +UnknownText_0xa5a28: ; 0xa5a28 + db $0, "Don't forget to", $4f + db "come see me when I", $55 + db "challenge you!", $57 +; 0xa5a5a + +UnknownText_0xa5a5a: ; 0xa5a5a + db $0, "A bird-user friend", $4f + db "isn't a bad thing", $55 + db "to have, I think…", $51 + db "Won't you", $4f + db "reconsider?", $57 +; 0xa5aa6 + +UnknownText_0xa5aa6: ; 0xa5aa6 + db $0, "Your phone's out", $4f + db "of memory. Delete", $55 + db "a number for me!", $57 +; 0xa5ada + +UnknownText_0xa5ada: ; 0xa5ada + db $0, "Am I happy to see", $4f + db "you! I won't lose!", $57 +; 0xa5aff + +UnknownText_0xa5aff: ; 0xa5aff + db $0, "Oh, too bad. You", $4f + db "don't have room.", $51 + db "I'll give it to", $4f + db "you next time!", $57 +; 0xa5b3f + +UnknownText_0xa5b3f: ; 0xa5b3f + db $0, "You are really,", $4f + db "really strong!", $51 + db "Thanks for taking", $4f + db "me on so often--I", $51 + db "learned a whole", $4f + db "lot from you.", $51 + db "I know! This will", $4f + db "do as my thanks!", $57 +; 0xa5bc4 + +UnknownText_0xa5bc4: ; 0xa5bc4 + db $0, "Eh, our battle was", $4f + db "fun, I'd say…", $51 + db "When I'm fishing,", $4f + db "I sometimes snag", $51 + db "items that people", $4f + db "have dropped.", $51 + db "Do you want them?", $4f + db "What's the number?", $57 +; 0xa5c4b + +UnknownText_0xa5c4b: ; 0xa5c4b + db $0, "If I snag an item", $4f + db "while I'm fishing,", $51 + db "it's yours. What's", $4f + db "your number?", $57 +; 0xa5c8e + +UnknownText_0xa5c8e: ; 0xa5c8e + db $0, "If I snag anything", $4f + db "good, I'll be sure", $55 + db "to let you know.", $57 +; 0xa5cc5 + +UnknownText_0xa5cc5: ; 0xa5cc5 + db $0, "All right… Come", $4f + db "back if you have a", $55 + db "change of heart.", $57 +; 0xa5cfa + +UnknownText_0xa5cfa: ; 0xa5cfa + db $0, "You can't register", $4f + db "another number.", $57 +; 0xa5d1d + +UnknownText_0xa5d1d: ; 0xa5d1d + db $0, "Argh! You startled", $4f + db "POLIWAG into", $55 + db "fleeing again!", $57 +; 0xa5d4d + +UnknownText_0xa5d4d: ; 0xa5d4d + db $0, "So here you are.", $51 + db "See this?", $4f + db "I snagged it just", $51 + db "a little while", $4f + db "ago. It's yours.", $57 +; 0xa5d9a + +UnknownText_0xa5d9a: ; 0xa5d9a + db $0, "Your PACK's full?", $51 + db "I'll give it to", $4f + db "you later.", $57 +; 0xa5dc6 + +UnknownText_0xa5dc6: ; 0xa5dc6 + db $0, "Our battle was", $4f + db "remarkable!", $51 + db "I wish for some-", $4f + db "thing to remember", $55 + db "you by!", $51 + db "Perhaps your phone", $4f + db "number will do?", $51 + db "My training makes", $4f + db "it impossible to", $55 + db "chat much, but…", $57 +; 0xa5e63 + +UnknownText_0xa5e63: ; 0xa5e63 + db $0, "My training makes", $4f + db "chatting tough,", $51 + db "but will you take", $4f + db "down my number?", $57 +; 0xa5ea8 + +UnknownText_0xa5ea8: ; 0xa5ea8 + db $0, "I must train", $4f + db "harder to become", $55 + db "the mightiest!", $57 +; 0xa5ed6 + +UnknownText_0xa5ed6: ; 0xa5ed6 + db $0, "If you decide you", $4f + db "want my number,", $55 + db "come see me.", $57 +; 0xa5f06 + +UnknownText_0xa5f06: ; 0xa5f06 + db $0, "Your phone appears", $4f + db "to be full.", $51 + db "Come back later!", $57 +; 0xa5f37 + +UnknownText_0xa5f37: ; 0xa5f37 + db $0, "I wish to thank", $4f + db "you, ", $52, "!", $51 + db "I've been training", $4f + db "all alone…", $51 + db "I was happy that", $4f + db "you cared to call…", $51 + db "I want you to have", $4f + db "this!", $57 +; 0xa5faa + +UnknownText_0xa5faa: ; 0xa5faa + db $0, "Your strength will", $4f + db "not let you carry", $51 + db "another thing!", $4f + db "I will hold this", $51 + db "till you lighten", $4f + db "your PACK!", $57 +; 0xa600c + +UnknownText_0xa600c: ; 0xa600c + db $0, "Sheesh, the way", $4f + db "you attacked! That", $51 + db "was something! We", $4f + db "should meet again!", $51 + db "How about giving", $4f + db "me your number?", $57 +; 0xa6076 + +UnknownText_0xa6076: ; 0xa6076 + db $0, "So you want to", $4f + db "register my phone", $51 + db "number for a re-", $4f + db "match, huh?", $57 +; 0xa60b5 + +UnknownText_0xa60b5: ; 0xa60b5 + db $0, "I'll call you", $4f + db "whenever I feel", $55 + db "like battling!", $57 +; 0xa60e2 + +UnknownText_0xa60e2: ; 0xa60e2 + db $0, "No? That's fine.", $51 + db "A definite no is", $4f + db "easy to take!", $51 + db "I'll be right here", $4f + db "when you're ready", $55 + db "for a rematch.", $57 +; 0xa6144 + +UnknownText_0xa6144: ; 0xa6144 + db $0, "Oh? There's no", $4f + db "room to register", $55 + db "my phone number.", $57 +; 0xa6175 + +UnknownText_0xa6175: ; 0xa6175 + db $0, "Hey, here comes", $4f + db "the kid! Let's go!", $51 + db "Ready for my usual", $4f + db "no-brainer, all-", $55 + db "out offense?", $57 +; 0xa61c9 + +UnknownText_0xa61c9: ; 0xa61c9 + db $0, "Your PACK looks", $4f + db "stuffed full!", $51 + db "You can't have", $4f + db "this now.", $57 +; 0xa6200 + +UnknownText_0xa6200: ; 0xa6200 + db $0, "Well, you're", $4f + db "special all right.", $51 + db "If only I'd begun", $4f + db "#MON when I was", $55 + db "a tad younger…", $51 + db "I want you to work", $4f + db "and succeed for", $51 + db "the both of us.", $4f + db "So take this, OK?", $57 +; 0xa6295 + +UnknownText_0xa6295: ; 0xa6295 + db $0, "It really made me", $4f + db "angry to lose.", $51 + db "I'll have to train", $4f + db "much harder…", $51 + db "Here's my number.", $4f + db "I'm ERIN--don't", $51 + db "forget! Want to", $4f + db "battle me again?", $57 +; 0xa6316 + +UnknownText_0xa6316: ; 0xa6316 + db $0, "I want to battle", $4f + db "with you again.", $51 + db "Do you want to", $4f + db "exchange numbers?", $57 +; 0xa6359 + +UnknownText_0xa6359: ; 0xa6359 + db $0, "I'll remember to", $4f + db "call when I want", $55 + db "to battle again!", $57 +; 0xa638c + +UnknownText_0xa638c: ; 0xa638c + db $0, "Oh… I'm sad…", $4f + db "If you do want to", $51 + db "battle, come see", $4f + db "ERIN--that's me!", $57 +; 0xa63cc + +UnknownText_0xa63cc: ; 0xa63cc + db $0, "Oh no. Your phone", $4f + db "is all filled up.", $57 +; 0xa63f1 + +UnknownText_0xa63f1: ; 0xa63f1 + db $0, "Yay! I waited!", $4f + db "Let's start now!", $57 +; 0xa6411 + +UnknownText_0xa6411: ; 0xa6411 + db $0, "That's too bad!", $4f + db "You have no room…", $51 + db "I'll give it to", $4f + db "you another time.", $57 +; 0xa6454 + +UnknownText_0xa6454: ; 0xa6454 + db $0, "Aww… I lost again!", $51 + db "I wonder how many", $4f + db "times that is…", $51 + db "Thanks for coming!", $4f + db "Here's a present!", $57 +; 0xa64ad From d83f8228cef5624745cc96b29a91a9663985d365 Mon Sep 17 00:00:00 2001 From: yenatch Date: Fri, 16 Aug 2013 15:15:06 -0400 Subject: [PATCH 59/84] dump some mobile link text --- main.asm | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 102 insertions(+), 1 deletion(-) diff --git a/main.asm b/main.asm index c70190dd7..fe24f3cc7 100644 --- a/main.asm +++ b/main.asm @@ -72438,7 +72438,108 @@ IndexDownloadURL: ; 0x118ce4 db $0 -INCBIN "baserom.gbc", $118d35, $11bc9e - $118d35 +INCBIN "baserom.gbc", $118d35, $11aa13 - $118d35 + +UnknownText_0x11aa13: ; 0x11aa13 + db $0, "SAVE FILE will be", $4f + db "sent.", $57 +; 0x11aa2c + +UnknownText_0x11aa2c: ; 0x11aa2c + db $0, "Sent SAVE FILE.", $4f + db "Reading NEWS…", $57 +; 0x11aa4b + +UnknownText_0x11aa4b: ; 0x11aa4b + db $0, "Reading NEWS…", $57 +; 0x11aa5a + +UnknownText_0x11aa5a: ; 0x11aa5a + db $0, "Received NEWS!", $57 +; 0x11aa6a + +UnknownText_0x11aa6a: ; 0x11aa6a + db $0, "Quit reading NEWS?", $57 +; 0x11aa7e + +UnknownText_0x11aa7e: ; 0x11aa7e + db $0, "Canceled sending", $4f + db "SAVE FILE.", $57 +; 0x11aa9b + +UnknownText_0x11aa9b: ; 0x11aa9b + db $0, "ODD EGG", $4f + db "was received!", $57 +; 0x11aab2 + +UnknownText_0x11aab2: ; 0x11aab2 + db $0, "Registering your", $4f + db "record…", $57 +; 0x11aacc + +UnknownText_0x11aacc: ; 0x11aacc + db $0, "One visit per day", $4f + db "per BATTLE ROOM!", $57 +; 0x11aaf0 + +UnknownText_0x11aaf0: ; 0x11aaf0 + db $0, "A party #MON", $4f + db "tops this level.", $57 +; 0x11ab0f + +UnknownText_0x11ab0f: ; 0x11ab0f + text_from_ram $cd49 + db $0, " may go", $4f + db "only to BATTLE", $51 + db "ROOMS that are", $4f + db "Lv.70 or higher.", $57 +; 0x11ab4a + +UnknownText_0x11ab4a: ; 0x11ab4a + db $0, "Cancel your BATTLE", $4f + db "ROOM challenge?", $57 +; 0x11ab6e + +UnknownText_0x11ab6e: ; 0x11ab6e + db $0, "Exit GYM LEADER", $4f + db "HONOR ROLL?", $57 +; 0x11ab8b + +UnknownText_0x11ab8b: ; 0x11ab8b + db $0, "Linking with the", $4f + db "CENTER…", $57 +; 0x11aba5 + +UnknownText_0x11aba5: ; 0x11aba5 + db $0, "What level do you", $4f + db "want to challenge?", $57 +; 0x11abcb + +UnknownText_0x11abcb: ; 0x11abcb + db $0, "Check BATTLE ROOM", $4f + db "list by max level?", $57 +; 0x11abf1 + +UnknownText_0x11abf1: ; 0x11abf1 + db $0, "Enter which", $4f + db "BATTLE ROOM?", $57 +; 0x11ac0b + +UnknownText_0x11ac0b: ; 0x11ac0b + db $0, "Which BATTLE ROOM?", $57 +; 0x11ac1f + +UnknownText_0x11ac1f: ; 0x11ac1f + text_from_ram $d099 + db $0, "'s ROOM", $4f + db "@" + text_from_ram $d0ac + db $0, "?", $55 + db "Please wait…", $57 +; 0x11ac3e + +INCBIN "baserom.gbc", $11ac3e, $11bc9e - $11ac3e + SECTION "bank47",DATA,BANK[$47] From 4398dde8cb96a2ee62a0fd995eba68e17a108a3b Mon Sep 17 00:00:00 2001 From: yenatch Date: Fri, 16 Aug 2013 15:24:30 -0400 Subject: [PATCH 60/84] even more phone text (bank 5d) --- main.asm | 2 +- text/phone/extra3.asm | 1474 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1475 insertions(+), 1 deletion(-) create mode 100644 text/phone/extra3.asm diff --git a/main.asm b/main.asm index fe24f3cc7..07804879a 100644 --- a/main.asm +++ b/main.asm @@ -73636,7 +73636,7 @@ INCBIN "baserom.gbc", $17093c, $17367f - $17093c SECTION "bank5D",DATA,BANK[$5D] -INCBIN "baserom.gbc", $174000, $177561 - $174000 +INCLUDE "text/phone/extra3.asm" SECTION "bank5E",DATA,BANK[$5E] diff --git a/text/phone/extra3.asm b/text/phone/extra3.asm new file mode 100644 index 000000000..025a533ec --- /dev/null +++ b/text/phone/extra3.asm @@ -0,0 +1,1474 @@ + +UnknownText_0x174000: ; 0x174000 + db $0, "Hi, ", $14, "!", $4f + db "Our BICYCLE sales", $51 + db "have gone through", $4f + db "the roof!", $51 + db "We owe it all to", $4f + db "your advertising", $51 + db "by riding around", $4f + db "on our BICYCLE.", $51 + db "As our way of say-", $4f + db "ing thanks, please", $51 + db "keep that BICYCLE.", $4f + db "Thanks again!", $57 +; 0x1740c0 + +UnknownText_0x1740c0: ; 0x1740c0 + db $0, "My @" + text_from_ram $d0ac + db $0, "'s", $4f + db "intelligence keeps", $51 + db "rising. It might", $4f + db "be smarter than", $55 + db "yours!", $57 +; 0x174106 + +UnknownText_0x174106: ; 0x174106 + db $0, "The other day, I", $4f + db "easily defeated a", $55 + db "@" + text_from_ram $d0ac + db $0, ".", $51 + db "I think swapping", $4f + db "tips with you is", $55 + db "starting to help.", $57 +; 0x174165 + +UnknownText_0x174165: ; 0x174165 + db $0, "Oh, and listen.", $4f + db "I missed catching", $51 + db "a @" + text_from_ram $d0ac + db $0, " by", $4f + db "just a tiny bit.", $51 + db "If I'd been a bit", $4f + db "more informed, I'm", $51 + db "sure I would've", $4f + db "caught it…", $57 +; 0x1741e1 + +UnknownText_0x1741e1: ; 0x1741e1 + db $0, "Do you want to", $4f + db "battle? I'll show", $51 + db "you how to battle", $4f + db "logically.", $51 + db "I'll be in", $4f + db "@" + text_from_ram $d0bf + db $0, ".", $51 + db "Give me a shout if", $4f + db "you're nearby.", $57 +; 0x174251 + +UnknownText_0x174251: ; 0x174251 + db $0, "See you later!", $57 +; 0x174261 + +UnknownText_0x174261: ; 0x174261 + db $0, "Did you know?", $51 + db "When it's raining,", $4f + db "THUNDER is sure to", $55 + db "strike.", $57 +; 0x17429d + +UnknownText_0x17429d: ; 0x17429d + db $0, "Did you know…?", $51 + db "If you use DEFENSE", $4f + db "CURL, ROLLOUT's", $51 + db "power goes way up", $4f + db "past normal.", $57 +; 0x1742ee + +UnknownText_0x1742ee: ; 0x1742ee + db $0, "Did you know…?", $51 + db "If the sunlight is", $4f + db "harsh, SOLARBEAM", $51 + db "doesn't need to be", $4f + db "charged up.", $57 +; 0x174340 + +UnknownText_0x174340: ; 0x174340 + db $0, "Did you know…?", $51 + db "If the opponent", $4f + db "uses MINIMIZE,", $51 + db "your STOMP becomes", $4f + db "more powerful.", $57 +; 0x174391 + +UnknownText_0x174391: ; 0x174391 + db $0, "Did you know…?", $51 + db "If your opponent", $4f + db "is FLYing, your", $51 + db "GUST becomes much", $4f + db "more powerful.", $57 +; 0x1743e3 + +UnknownText_0x1743e3: ; 0x1743e3 + db $0, "Did you know…?", $51 + db "If your opponent", $4f + db "is FLYing, your", $51 + db "TWISTER becomes", $4f + db "more powerful.", $57 +; 0x174433 + +UnknownText_0x174433: ; 0x174433 + db $0, "Did you know…?", $51 + db "If your opponent", $4f + db "uses DIG, your", $51 + db "EARTHQUAKE becomes", $4f + db "more powerful.", $57 +; 0x174485 + +UnknownText_0x174485: ; 0x174485 + db $0, "Did you know…?", $51 + db "If your opponent", $4f + db "uses DIG, your", $51 + db "MAGNITUDE becomes", $4f + db "more powerful.", $57 +; 0x1744d6 + +UnknownText_0x1744d6: ; 0x1744d6 + db $0, "Did you know…?", $51 + db "The rock, ground", $4f + db "and steel types", $51 + db "can't be hurt by", $4f + db "SANDSTORM.", $57 +; 0x174522 + +UnknownText_0x174522: ; 0x174522 + db $0, "Did you know…?", $51 + db "If the sunlight is", $4f + db "harsh, water-type", $51 + db "moves become much", $4f + db "weaker.", $57 +; 0x174571 + +UnknownText_0x174571: ; 0x174571 + db $0, "Did you know…?", $51 + db "When it's raining,", $4f + db "fire-type moves", $51 + db "become much weaker", $4f + db "than usual.", $57 +; 0x1745c2 + +UnknownText_0x1745c2: ; 0x1745c2 + db $0, "My friend heard", $4f + db "some great tips.", $51 + db "He's going to let", $4f + db "me in on some.", $51 + db "When he tells me,", $4f + db "I'll call right", $55 + db "away and tell you.", $57 +; 0x174638 + +UnknownText_0x174638: ; 0x174638 + db $0, "Hey, ", $14, "!", $51 + db "Do you remember", $4f + db "your promise?", $51 + db "We have to battle", $4f + db "soon!", $51 + db "I'll be at", $4f + db "@" + text_from_ram $d0bf + db $0, ".", $57 +; 0x174688 + +UnknownText_0x174688: ; 0x174688 + db $0, "I fancied up my", $4f + db "@" + text_from_ram $d0ac + db $0, " and", $51 + db "made it even cuter", $4f + db "than before!", $57 +; 0x1746c3 + +UnknownText_0x1746c3: ; 0x1746c3 + db $0, "I happened to come", $4f + db "across a wild", $55 + db "SNUBBULL recently.", $51 + db "My SNUBBULL, I", $4f + db "assure you, was", $51 + db "far cuter than the", $4f + db "wild one.", $57 +; 0x174734 + +UnknownText_0x174734: ; 0x174734 + db $0, "I happened to see", $4f + db "a wild MARILL the", $51 + db "other day.", $4f + db "Or so I thought.", $51 + db "A closer look", $4f + db "showed it was", $51 + db "@" + text_from_ram $d0ac + db $0, ". I was", $4f + db "quite miffed.", $57 +; 0x1747ac + +UnknownText_0x1747ac: ; 0x1747ac + db $0, "You can expect a", $4f + db "call from me.", $57 +; 0x1747cc + +UnknownText_0x1747cc: ; 0x1747cc + db $0, "My husband got", $4f + db "some NUGGETS.", $51 + db "If you'd like, you", $4f + db "could have one as", $51 + db "thanks for helping", $4f + db "me out.", $51 + db "I'll be at", $4f + db "@" + text_from_ram $d0bf + db $0, ".", $51 + db "Please come see me", $4f + db "when you can.", $57 +; 0x17485b + +UnknownText_0x17485b: ; 0x17485b + db $0, "Are your #MON", $4f + db "in prime form?", $51 + db "Let's chat about", $4f + db "#MON again.", $57 +; 0x174895 + +UnknownText_0x174895: ; 0x174895 + db $0, "Pardon?", $4f + db "Oh, the NUGGET?", $51 + db "There's no need to", $4f + db "hurry. Come see me", $51 + db "in @" + text_from_ram $d0bf + db $0, $4f + db "when you can.", $57 +; 0x1748ea + +UnknownText_0x1748ea: ; 0x1748ea + db $0, "Hey, I challenge", $4f + db "you to a battle!", $51 + db "It won't be like", $4f + db "last time!", $51 + db "@" + text_from_ram $d0bf + db $0, "'s", $4f + db "where I'm waiting", $51 + db "for you. Hustle", $4f + db "over here pronto!", $57 +; 0x174962 + +UnknownText_0x174962: ; 0x174962 + db $0, "See ya!", $57 +; 0x17496b + +UnknownText_0x17496b: ; 0x17496b + db $0, "We have to battle", $4f + db "again sometime.", $51 + db "You can bet I'm", $4f + db "going to keep", $51 + db "challenging you", $4f + db "till I win.", $57 +; 0x1749c7 + +UnknownText_0x1749c7: ; 0x1749c7 + db $0, "Hey, you'd better", $4f + db "not have forgotten", $55 + db "about our battle!", $51 + db "@" + text_from_ram $d0bf + db $0, "!", $51 + db "Hustle over quick!", $4f + db "I'm waiting!", $57 +; 0x174a24 + +UnknownText_0x174a24: ; 0x174a24 + db $0, "My @" + text_from_ram $d0ac + db $0, $4f + db "might be greater", $55 + db "than I imagined.", $51 + db "I doubt I'll see a", $4f + db "@" + text_from_ram $d0ac + db $0, " that's", $55 + db "better than mine.", $57 +; 0x174a80 + +UnknownText_0x174a80: ; 0x174a80 + db $0, "Oh, and I managed", $4f + db "to barely defeat", $51 + db "@" + text_from_ram $d0ac + db $0, " the", $4f + db "other day.", $51 + db "I've never seen a", $4f + db "@" + text_from_ram $d0ac + db $0, " get", $55 + db "that strong…", $51 + db "You shouldn't let", $4f + db "your guard down,", $51 + db "even against a", $4f + db "#MON you're", $55 + db "used to seeing.", $57 +; 0x174b2d + +UnknownText_0x174b2d: ; 0x174b2d + db $0, "And a while back,", $4f + db "I tried to catch a", $55 + db "wild @" + text_from_ram $d0ac + db $0, ".", $51 + db "But it managed to", $4f + db "elude me.", $51 + db "One wrong decision", $4f + db "could mean total", $51 + db "failure… You ought", $4f + db "to be careful too.", $57 +; 0x174bc5 + +UnknownText_0x174bc5: ; 0x174bc5 + db $0, "Let's battle!", $51 + db "I'll be waiting on", $4f + db "@" + text_from_ram $d0bf + db $0, ".", $51 + db "Give me a shout", $4f + db "when you're close.", $57 +; 0x174c0e + +UnknownText_0x174c0e: ; 0x174c0e + db $0, "OK, I'll talk to", $4f + db "you soon!", $57 +; 0x174c29 + +UnknownText_0x174c29: ; 0x174c29 + db $0, "I obsess over how", $4f + db "to beat you.", $57 +; 0x174c49 + +UnknownText_0x174c49: ; 0x174c49 + db $0, $14, ", why", $4f + db "aren't you here?", $51 + db "I'll take you down", $4f + db "with @" + text_from_ram $d0bf + db $0, "!", $57 +; 0x174c7f + +UnknownText_0x174c7f: ; 0x174c7f + db $0, "Do you remember my", $4f + db "sweet @" + text_from_ram $d0ac + db $0, "?", $51 + db "@" + text_from_ram $d0ac + db $0, " runs", $4f + db "very fast.", $51 + db "It's exhilarating", $4f + db "to ride on its", $51 + db "back when it", $4f + db "really gets going.", $57 +; 0x174cf6 + +UnknownText_0x174cf6: ; 0x174cf6 + db $0, "Oh, have you ever", $4f + db "seen a @" + text_from_ram $d0ac + db $0, $55 + db "before?", $51 + db "I just battled", $4f + db "one…", $51 + db "It was much faster", $4f + db "than I expected.", $51 + db "I was a little", $4f + db "shocked.", $51 + db "I still won, of", $4f + db "course.", $57 +; 0x174d86 + +UnknownText_0x174d86: ; 0x174d86 + db $0, "Oh, I just saw a", $4f + db "wild @" + text_from_ram $d0ac + db $0, ".", $51 + db "I was trying to", $4f + db "catch it when I", $51 + db "noticed that I was", $4f + db "all out of #", $55 + db "BALLS.", $51 + db "If you don't check", $4f + db "your items, you", $51 + db "may run out at the", $4f + db "worst time.", $51 + db "I hope you learn", $4f + db "from my mistake.", $57 +; 0x174e4e + +UnknownText_0x174e4e: ; 0x174e4e + db $0, "Do you want to", $4f + db "battle? I'm going", $55 + db "to win this time!", $51 + db "I'll be waiting", $4f + db "for you around", $51 + db "@" + text_from_ram $d0bf + db $0, ".", $4f + db "Look for me, OK?", $57 +; 0x174eb7 + +UnknownText_0x174eb7: ; 0x174eb7 + db $0, "OK, bye-bye!", $57 +; 0x174ec5 + +UnknownText_0x174ec5: ; 0x174ec5 + db $0, "Let's battle again", $4f + db "sometime!", $57 +; 0x174ee2 + +UnknownText_0x174ee2: ; 0x174ee2 + db $0, "Um… ", $14, "?", $4f + db "What's wrong?", $51 + db "Did you forget our", $4f + db "deal?", $51 + db "@" + text_from_ram $d0bf + db $0, ".", $51 + db "That's where I'm", $4f + db "waiting.", $57 +; 0x174f2f + +UnknownText_0x174f2f: ; 0x174f2f + db $0, "Hey listen, my", $4f + db "@" + text_from_ram $d0ac + db $0, "'s stick", $51 + db "has this really", $4f + db "delicious aroma.", $51 + db "That aroma gets my", $4f + db "appetite going!", $57 +; 0x174f90 + +UnknownText_0x174f90: ; 0x174f90 + db $0, "A while ago, my", $4f + db "FARFETCH'D KO'd", $55 + db "this @" + text_from_ram $d0ac + db $0, ".", $51 + db "You should have", $4f + db "seen FARFETCH'D", $51 + db "wield that stick.", $4f + db "Amazing stuff!", $57 +; 0x174ffd + +UnknownText_0x174ffd: ; 0x174ffd + db $0, "I ran into a wild", $4f + db "@" + text_from_ram $d0ac + db $0, "…", $51 + db "I was trying to", $4f + db "catch it, but it", $51 + db "took off faster", $4f + db "than I thought it", $51 + db "would. It was a", $4f + db "bit disappointing.", $57 +; 0x17507d + +UnknownText_0x17507d: ; 0x17507d + db $0, "Want to battle", $4f + db "again?", $51 + db "For some reason,", $4f + db "my FARFETCH'D is", $51 + db "all worked up and", $4f + db "raring to go.", $51 + db "@" + text_from_ram $d0bf + db $0, "'s", $4f + db "where I'm at.", $51 + db "Keep an eye out", $4f + db "for me, OK?", $57 +; 0x175106 + +UnknownText_0x175106: ; 0x175106 + db $0, "Be seeing you!", $57 +; 0x175116 + +UnknownText_0x175116: ; 0x175116 + db $0, "My FARFETCH'D had", $4f + db "something pretty", $55 + db "in its beak.", $51 + db "Like I promised,", $4f + db "you can have it.", $51 + db "Catch up to me on", $4f + db "@" + text_from_ram $d0bf + db $0, ",", $51 + db "and I'll let you", $4f + db "have it.", $57 +; 0x17519b + +UnknownText_0x17519b: ; 0x17519b + db $0, "I haven't gotten", $4f + db "what I promised", $55 + db "you yet.", $51 + db "I'll call you as", $4f + db "soon as I get it,", $51 + db "so could you wait", $4f + db "a little longer?", $57 +; 0x17520a + +UnknownText_0x17520a: ; 0x17520a + db $0, $14, ", could you", $4f + db "hurry over?", $51 + db "FARFETCH'D is", $4f + db "agitated.", $51 + db "If you don't come", $4f + db "soon, it might", $51 + db "smack me with its", $4f + db "stick!", $51 + db "@" + text_from_ram $d0bf + db $0, "!", $51 + db "Please come as", $4f + db "soon as you can!", $57 +; 0x17529c + +UnknownText_0x17529c: ; 0x17529c + db $0, "What's wrong?", $51 + db "Don't you want", $4f + db "this gift?", $51 + db "Catch up to me on", $4f + db "@" + text_from_ram $d0bf + db $0, ",", $51 + db "and I'll let you", $4f + db "have it.", $57 +; 0x1752f5 + +UnknownText_0x1752f5: ; 0x1752f5 + db $0, "Listen, dear…", $51 + db "Do you recall my", $4f + db "@" + text_from_ram $d0ac + db $0, "?", $51 + db "Yes, exactly. That", $4f + db "lovely @" + text_from_ram $d0ac + db $0, ".", $51 + db "Wouldn't you agree", $4f + db "it's a perfect", $55 + db "match for me?", $57 +; 0x17536b + +UnknownText_0x17536b: ; 0x17536b + db $0, "Have I ever faced", $4f + db "a wild @" + text_from_ram $d0ac + db $0, "?", $51 + db "You need to ask?", $51 + db "@" + text_from_ram $d0ac + db $0, " I've", $4f + db "beaten on numerous", $55 + db "occasions!", $57 +; 0x1753c5 + +UnknownText_0x1753c5: ; 0x1753c5 + db $0, "Have I ever failed", $4f + db "to catch a wild", $55 + db "#MON?", $51 + db "You need to ask?", $51 + db "I would never fail", $4f + db "to catch a wild", $51 + db "@" + text_from_ram $d0ac + db $0, "…", $4f + db "Oh! Never mind!", $57 +; 0x17543a + +UnknownText_0x17543a: ; 0x17543a + db $0, "We are going to", $4f + db "battle!", $51 + db "The place shall be", $4f + db "@" + text_from_ram $d0bf + db $0, "!", $51 + db "Don't make me", $4f + db "wait! Got it?", $57 +; 0x175488 + +UnknownText_0x175488: ; 0x175488 + db $0, "Fine, you may go.", $57 +; 0x17549b + +UnknownText_0x17549b: ; 0x17549b + db $0, "Don't be too proud", $4f + db "just because you", $51 + db "happened to beat", $4f + db "me… ", $51 + db "It was a fluke!", $57 +; 0x1754e5 + +UnknownText_0x1754e5: ; 0x1754e5 + db $0, "What are you", $4f + db "doing?", $51 + db "I told you that", $4f + db "the place was", $51 + db "@" + text_from_ram $d0bf + db $0, "!", $4f + db "Don't try to run!", $57 +; 0x175530 + +UnknownText_0x175530: ; 0x175530 + db $0, "My @" + text_from_ram $d0ac + db $0, "'s", $4f + db "looking sharper", $55 + db "than before!", $51 + db "I doubt there's a", $4f + db "#MON as cool as", $51 + db "this guy in your", $4f + db "party!", $57 +; 0x175591 + +UnknownText_0x175591: ; 0x175591 + db $0, "Oh yeah, I took", $4f + db "down a @" + text_from_ram $d0ac + db $0, $51 + db "in the wild the", $4f + db "other day.", $51 + db "It was a cakewalk.", $4f + db "Well, I guess it", $51 + db "can't be helped,", $4f + db "us being so tough.", $57 +; 0x175611 + +UnknownText_0x175611: ; 0x175611 + db $0, "Oh yeah, I saw a", $4f + db "wild @" + text_from_ram $d0ac + db $0, "!", $51 + db "I thought about", $4f + db "going for it, but", $51 + db "I decided to work", $4f + db "with my one-and-", $51 + db "only right to the", $4f + db "extreme end.", $57 +; 0x175693 + +UnknownText_0x175693: ; 0x175693 + db $0, "Let's get together", $4f + db "and battle!", $51 + db "I promise things", $4f + db "will be different!", $51 + db "@" + text_from_ram $d0bf + db $0, "'s", $4f + db "where I'll be.", $51 + db "Give me a shout", $4f + db "when you come.", $57 +; 0x17570a + +UnknownText_0x17570a: ; 0x17570a + db $0, "All right. Later!", $57 +; 0x17571d + +UnknownText_0x17571d: ; 0x17571d + db $0, "I'm checking out", $4f + db "@" + text_from_ram $d0ac + db $0, "'s moves", $51 + db "and devising some", $4f + db "strategies.", $51 + db "When I come up", $4f + db "with a good one,", $55 + db "let's battle!", $57 +; 0x175786 + +UnknownText_0x175786: ; 0x175786 + db $0, "What's keeping", $4f + db "you, ", $52, "!", $51 + db "Let's get down and", $4f + db "battle already!", $51 + db "I'm waiting on", $4f + db "@" + text_from_ram $d0bf + db $0, "!", $57 +; 0x1757d4 + +UnknownText_0x1757d4: ; 0x1757d4 + db $0, "Are your #MON", $4f + db "growing?", $51 + db "My #MON are", $4f + db "growing a bit too", $51 + db "quickly for me.", $4f + db "It's overwhelming!", $51 + db "@" + text_from_ram $d0ac + db $0, "'s grow-", $4f + db "ing especially", $51 + db "quickly. I think", $4f + db "it'll get tough.", $57 +; 0x175869 + +UnknownText_0x175869: ; 0x175869 + db $0, "Oh yeah, we KO'd a", $4f + db "wild @" + text_from_ram $d0ac + db $0, $51 + db "with one hit a", $4f + db "while back.", $51 + db "It went down so", $4f + db "easily, I felt a", $51 + db "little sorry for", $4f + db "the poor thing.", $57 +; 0x1758e4 + +UnknownText_0x1758e4: ; 0x1758e4 + db $0, "Oh yeah, a wild", $4f + db "@" + text_from_ram $d0ac + db $0, " got", $51 + db "away from me at", $4f + db "the last second.", $51 + db "I know it's a", $4f + db "common #MON…", $51 + db "But it does annoy", $4f + db "me that it got", $51 + db "away when I almost", $4f + db "had it.", $57 +; 0x175976 + +UnknownText_0x175976: ; 0x175976 + db $0, "Do you feel like a", $4f + db "#MON battle?", $51 + db "It won't be like", $4f + db "last time!", $51 + db "@" + text_from_ram $d0bf + db $0, "'s", $4f + db "where I'll be.", $51 + db "Let me know when", $4f + db "you get there.", $57 +; 0x1759e7 + +UnknownText_0x1759e7: ; 0x1759e7 + db $0, "See you later!", $57 +; 0x1759f7 + +UnknownText_0x1759f7: ; 0x1759f7 + db $0, "The Bug-Catching", $4f + db "Contest is at the", $51 + db "NATIONAL PARK", $4f + db "today.", $51 + db "Are you going,", $4f + db $14, "?", $51 + db "I'm trying to make", $4f + db "up my mind.", $57 +; 0x175a60 + +UnknownText_0x175a60: ; 0x175a60 + db $0, "I found all kinds", $4f + db "of BERRIES. If you", $51 + db "want, I'll share", $4f + db "some with you.", $51 + db "I'll be waiting on", $4f + db "@" + text_from_ram $d0bf + db $0, ".", $57 +; 0x175abe + +UnknownText_0x175abe: ; 0x175abe + db $0, "Huh? BERRIES?", $51 + db "Sorry, I haven't", $4f + db "found any yet.", $51 + db "I'll call you if I", $4f + db "find any. Will you", $55 + db "please wait?", $57 +; 0x175b1e + +UnknownText_0x175b1e: ; 0x175b1e + db $0, "Let's battle", $4f + db "already!", $51 + db "@" + text_from_ram $d0bf + db $0, " is", $4f + db "where I am.", $51 + db "Please get here as", $4f + db "soon as you can!", $57 +; 0x175b6d + +UnknownText_0x175b6d: ; 0x175b6d + db $0, "How come you're", $4f + db "not here yet?", $51 + db "@" + text_from_ram $d0bf + db $0, " is", $4f + db "where I am.", $51 + db "Please get here as", $4f + db "soon as you can!", $57 +; 0x175bc4 + +UnknownText_0x175bc4: ; 0x175bc4 + db $0, "I've been spending", $4f + db "more time with my", $51 + db "@" + text_from_ram $d0ac + db $0, " than I", $4f + db "have with my kids.", $51 + db "That's a bit sad,", $4f + db "actually.", $57 +; 0x175c24 + +UnknownText_0x175c24: ; 0x175c24 + db $0, "I just beat a wild", $4f + db "@" + text_from_ram $d0ac + db $0, ".", $51 + db "I told my kid, but", $4f + db "he scoffed that he", $51 + db "could do the same", $4f + db "thing easily.", $51 + db "Boy, has he gotten", $4f + db "cocky…", $57 +; 0x175c9f + +UnknownText_0x175c9f: ; 0x175c9f + db $0, "Yesterday a wild", $4f + db "@" + text_from_ram $d0ac + db $0, " slipped", $51 + db "away from me, in", $4f + db "front of my kid.", $51 + db "I was feeling down", $4f + db "about it until he", $51 + db "shared his #", $4f + db "BALLS with me.", $51 + db "Hahah, that sure", $4f + db "made my day!", $57 +; 0x175d40 + +UnknownText_0x175d40: ; 0x175d40 + db $0, "What do you say to", $4f + db "a battle with me?", $51 + db "Good, you're going", $4f + db "to do it!", $51 + db "For a kid, you're", $4f + db "quite agreeable.", $51 + db "@" + text_from_ram $d0bf + db $0, " is", $4f + db "the spot!", $57 +; 0x175db7 + +UnknownText_0x175db7: ; 0x175db7 + db $0, "You call your mom", $4f + db "sometimes too!", $57 +; 0x175dd9 + +UnknownText_0x175dd9: ; 0x175dd9 + db $0, "Listen, I… Yowch!", $51 + db "Uh, sorry! See,", $4f + db "@" + text_from_ram $d0ac + db $0, " are", $51 + db "biting like there", $4f + db "is no tomorrow", $51 + db "over here on", $4f + db "@" + text_from_ram $d0bf + db $0, "!", $51 + db "Aiyee! Ouch!", $4f + db "One jabbed me!", $51 + db "Heh, they're some", $4f + db "kind of feisty!", $51 + db $14, ", you have", $4f + db "to see this rare", $51 + db "sight! Get ready", $4f + db "to fish!", $57 +; 0x175eaf + +UnknownText_0x175eaf: ; 0x175eaf + db $0, "Yeah, I know.", $51 + db "You're looking for", $4f + db "rare #MON.", $51 + db "Recently, all I've", $4f + db "been catching are", $55 + db "MAGIKARP, though…", $57 +; 0x175f11 + +UnknownText_0x175f11: ; 0x175f11 + db $0, "So where are you?", $4f + db "I'm waiting for", $51 + db "you to show up on", $4f + db "@" + text_from_ram $d0bf + db $0, ".", $51 + db "You shouldn't make", $4f + db "your elders wait!", $57 +; 0x175f70 + +UnknownText_0x175f70: ; 0x175f70 + db $0, "Hey, what's the", $4f + db "matter with you?", $51 + db "Aren't you coming", $4f + db "over to fish for", $55 + db "QWILFISH?", $51 + db "I'm on ROUTE 32,", $4f + db "so hurry up!", $57 +; 0x175fda + +UnknownText_0x175fda: ; 0x175fda + db $0, "Oh, you have to", $4f + db "hear this.", $51 + db "My @" + text_from_ram $d0ac + db $0, " is", $4f + db "so adorable!", $51 + db "It always wants to", $4f + db "nuzzle me!", $57 +; 0x17602d + +UnknownText_0x17602d: ; 0x17602d + db $0, "And, and! Um…", $51 + db "We beat a wild", $4f + db "@" + text_from_ram $d0ac + db $0, " with", $51 + db "just one hit a", $4f + db "little while ago.", $51 + db "We felt sorry for", $4f + db "it, though.", $57 +; 0x176095 + +UnknownText_0x176095: ; 0x176095 + db $0, "And, and! Uh…", $51 + db "We just saw a", $4f + db "really gorgeous", $55 + db "@" + text_from_ram $d0ac + db $0, ".", $51 + db "But I was on the", $4f + db "phone, so it got", $51 + db "away. It made us", $4f + db "really angry!", $57 +; 0x17610a + +UnknownText_0x17610a: ; 0x17610a + db $0, "Hi! Do you have", $4f + db "some free time?", $51 + db "I've got all sorts", $4f + db "of time. If you're", $51 + db "free, would you", $4f + db "like to battle?", $51 + db "I'll be waiting on", $4f + db "@" + text_from_ram $d0bf + db $0, ".", $51 + db "Let me know when", $4f + db "you get here!", $57 +; 0x1761a7 + +UnknownText_0x1761a7: ; 0x1761a7 + db $0, "Hi, TANIA. How are", $4f + db "you? This is LIZ.", $51 + db "I'm fine, but I'm", $4f + db "bored silly!", $51 + db "Huh… Wrong number?", $4f + db "Oops! Sorry!", $57 +; 0x17620a + +UnknownText_0x17620a: ; 0x17620a + db $0, "OK, I'll call you", $4f + db "later!", $57 +; 0x176223 + +UnknownText_0x176223: ; 0x176223 + db $0, "Listen, listen!", $51 + db "I was listening to", $4f + db "the radio in the", $51 + db "RUINS OF ALPH when", $4f + db "an odd broadcast", $51 + db "suddenly cut it on", $4f + db "the regular show.", $51 + db "I wonder what it", $4f + db "was. So strange!", $57 +; 0x1762c3 + +UnknownText_0x1762c3: ; 0x1762c3 + db $0, "Listen, listen!", $51 + db "Don't you think", $4f + db "FALKNER of VIOLET", $51 + db "GYM is cool and", $4f + db "handsome?", $51 + db "But they say his", $4f + db "dad, who's out", $51 + db "training on the", $4f + db "road, is even more", $51 + db "cool and handsome", $4f + db "than FALKNER.", $51 + db "I wish I could", $4f + db "meet him!", $57 +; 0x17638a + +UnknownText_0x17638a: ; 0x17638a + db $0, "Listen, listen!", $51 + db "Do you know EARL,", $4f + db "the teacher who", $51 + db "runs the #MON", $4f + db "ACADEMY in VIOLET?", $51 + db "I saw him doing", $4f + db "pirouettes while", $51 + db "he was running. It", $4f + db "was wildly funny!", $57 +; 0x176424 + +UnknownText_0x176424: ; 0x176424 + db $0, "Listen, listen!", $51 + db "I collect #MON", $4f + db "plush dolls.", $51 + db "But I can't seem", $4f + db "to get a hold of a", $51 + db "SURF PIKACHU DOLL.", $4f + db "None of my friends", $51 + db "have it. It must", $4f + db "be totally rare!", $51 + db "You could really", $4f + db "brag about it if", $55 + db "you had one.", $57 +; 0x1764eb + +UnknownText_0x1764eb: ; 0x1764eb + db $0, "Listen, listen!", $51 + db "Do you know about", $4f + db "MOOMOO MILK?", $51 + db "You can buy it at", $4f + db "MOOMOO FARM.", $51 + db "It's supposed to", $4f + db "be good for health", $51 + db "and beauty.", $4f + db "I really want to", $51 + db "try some. I bet", $4f + db "it's delicious!", $57 +; 0x176599 + +UnknownText_0x176599: ; 0x176599 + db $0, "Listen, listen!", $51 + db "There's a #MON", $4f + db "SALON in GOLDENROD", $51 + db "that's run by two", $4f + db "brothers.", $51 + db "The older brother", $4f + db "is good, but the", $51 + db "younger one really", $4f + db "isn't.", $51 + db "But sometimes the", $4f + db "younger one does a", $51 + db "better job than", $4f + db "his brother.", $51 + db "Every time I go, I", $4f + db "have a hard time", $51 + db "trying to decide", $4f + db "whom I should use…", $57 +; 0x1766ac + +UnknownText_0x1766ac: ; 0x1766ac + db $0, "Listen, listen!", $51 + db "GOLDENROD GYM's", $4f + db "WHITNEY began", $51 + db "battling only a", $4f + db "little while ago!", $51 + db "But the #MON", $4f + db "LEAGUE chose her", $55 + db "as a GYM LEADER!", $51 + db "I bet she must be", $4f + db "totally talented.", $57 +; 0x17674f + +UnknownText_0x17674f: ; 0x17674f + db $0, "Listen, listen!", $51 + db "Have you ever", $4f + db "taken part in a", $51 + db "Bug-Catching", $4f + db "Contest at the", $55 + db "NATIONAL PARK?", $51 + db "I did once, but", $4f + db "all I could catch", $55 + db "was a CATERPIE.", $51 + db "But guess what!", $51 + db "I won with that", $4f + db "CATERPIE. Isn't", $55 + db "that great?", $57 +; 0x176816 + +UnknownText_0x176816: ; 0x176816 + db $0, "Listen, listen!", $51 + db "I saw a beautiful", $4f + db "@" + text_from_ram $d0ac + db $0, "!", $51 + db "I wish I could", $4f + db "become a beautiful", $55 + db "@" + text_from_ram $d0ac + db $0, " too.", $57 +; 0x17686d + +UnknownText_0x17686d: ; 0x17686d + db $0, "Listen, listen!", $51 + db "Uh… Um… Whoops!", $51 + db "I forgot what I", $4f + db "was going to say!", $57 +; 0x1768b0 + +UnknownText_0x1768b0: ; 0x1768b0 + db $0, "Listen, listen!", $51 + db "My @" + text_from_ram $d0ac + db $0, "…", $4f + db "it… so pretty…", $51 + db "and… giggle… so", $4f + db "awesome… yes… but…", $51 + db "very much… eeek!", $4f + db "And… lovely…", $51 + db "Just ravishing…", $4f + db "Oh, too much!", $51 + db "…Hug it… sleeping…", $4f + db "That's right…", $51 + db "pretty… sigh… So", $4f + db "nice… Cute…", $51 + db "…Oops! Look at the", $4f + db "time! I chatted", $55 + db "too long!", $51 + db "I'm sorry I took", $4f + db "so much of your", $51 + db "time!", $4f + db "I love chatting!", $57 +; 0x1769da + +UnknownText_0x1769da: ; 0x1769da + db $0, "I've got too much", $4f + db "time on my hands!", $51 + db "Let's battle right", $4f + db "away!", $51 + db "I'll be waiting on", $4f + db "@" + text_from_ram $d0bf + db $0, "!", $57 +; 0x176a2f + +UnknownText_0x176a2f: ; 0x176a2f + db $0, "The other day, I", $4f + db "was watching my", $51 + db "@" + text_from_ram $d0ac + db $0, " eat", $4f + db "some BERRIES.", $51 + db "It looked like it", $4f + db "was enjoying its", $51 + db "meal, so I decided", $4f + db "to try some.", $51 + db "I'm not sure if", $4f + db "people should eat", $51 + db "that stuff, but it", $4f + db "was delicious!", $57 +; 0x176aef + +UnknownText_0x176aef: ; 0x176aef + db $0, "Lately, I've been", $4f + db "running across", $51 + db "wild @" + text_from_ram $d0ac + db $0, $4f + db "quite often.", $51 + db "They're easily", $4f + db "taken care of.", $57 +; 0x176b45 + +UnknownText_0x176b45: ; 0x176b45 + db $0, "Oh yeah, I was", $4f + db "battling this", $51 + db "@" + text_from_ram $d0ac + db $0, " the", $4f + db "other day…", $51 + db "It took off when I", $4f + db "got distracted by", $55 + db "a passing BEAUTY.", $51 + db "Learn from my", $4f + db "mistake--always", $51 + db "stay focused on", $4f + db "the job at hand!", $57 +; 0x176bee + +UnknownText_0x176bee: ; 0x176bee + db $0, "Come on--let's", $4f + db "battle right now!", $51 + db "@" + text_from_ram $d0bf + db $0, " is", $4f + db "where I am.", $51 + db "Come on down if", $4f + db "you feel up to it!", $57 +; 0x176c47 + +UnknownText_0x176c47: ; 0x176c47 + db $0, "All right then!", $4f + db "Be good!", $57 +; 0x176c61 + +UnknownText_0x176c61: ; 0x176c61 + db $0, $52, "! It's", $4f + db "mind-blowing!", $51 + db "I took a hike in", $4f + db "@" + text_from_ram $d0bf + db $0, $55 + db "yesterday, see?", $51 + db "Well, there were", $4f + db "tons of @" + text_from_ram $d0ac + db $0, $51 + db "around! You have", $4f + db "to see it!", $51 + db "I get this feeling", $4f + db "that @" + text_from_ram $d0ac + db $0, $51 + db "may be timid.", $4f + db "I didn't see any", $51 + db "where there are", $4f + db "strong #MON.", $57 +; 0x176d32 + +UnknownText_0x176d32: ; 0x176d32 + db $0, "Rare #MON?", $51 + db "Hey, sorry! I was", $4f + db "too focused on my", $51 + db "hike, so I wasn't", $4f + db "paying attention.", $57 +; 0x176d85 + +UnknownText_0x176d85: ; 0x176d85 + db $0, "Hello! You haven't", $4f + db "forgotten about", $51 + db "our battle, have", $4f + db "you?", $51 + db "@" + text_from_ram $d0bf + db $0, "!", $4f + db "I'm waiting!", $57 +; 0x176dd1 + +UnknownText_0x176dd1: ; 0x176dd1 + db $0, "Hello? What? Where", $4f + db "is DUNSPARCE?", $51 + db "DARK CAVE! Hurry!", $51 + db "I know I've said", $4f + db "it before, but", $51 + db "DUNSPARCE don't", $4f + db "appear when there", $51 + db "are strong #MON", $4f + db "around.", $57 +; 0x176e5d + +UnknownText_0x176e5d: ; 0x176e5d + db $0, "My @" + text_from_ram $d0ac + db $0, " is", $4f + db "looking more and", $51 + db "more like me. It's", $4f + db "getting cuter!", $57 +; 0x176e9c + +UnknownText_0x176e9c: ; 0x176e9c + db $0, "And, you know?", $51 + db "Now we can KO", $4f + db "@" + text_from_ram $d0ac + db $0, " easily.", $51 + db "I should challenge", $4f + db "the GOLDENROD GYM.", $57 +; 0x176eee + +UnknownText_0x176eee: ; 0x176eee + db $0, "And, you know?", $4f + db "We just failed to", $51 + db "beat @" + text_from_ram $d0ac + db $0, " by", $4f + db "a tiny margin.", $51 + db "I'm guessing my", $4f + db "#MON's levels", $51 + db "aren't high enough", $4f + db "yet…", $57 +; 0x176f60 + +UnknownText_0x176f60: ; 0x176f60 + db $0, "You must be a lot", $4f + db "better now, huh?", $51 + db "How about showing", $4f + db "me your technique", $51 + db "in a real battle", $4f + db "with me?", $51 + db "I'll be waiting on", $4f + db "@" + text_from_ram $d0bf + db $0, ".", $57 +; 0x176fdb + +UnknownText_0x176fdb: ; 0x176fdb + db $0, "See you later!", $57 +; 0x176feb + +UnknownText_0x176feb: ; 0x176feb + db $0, "This is it--the", $4f + db "one we've all been", $55 + db "waiting for!", $51 + db "GOLDENROD DEPT.", $4f + db "STORE's bargain", $55 + db "sale is on now!", $51 + db "Want it cheap?", $4f + db "Want it lots?", $51 + db "Don't miss this", $4f + db "GOLDENROD chance!", $51 + db "Huh? I sound like", $4f + db "a huckster?", $51 + db "Well, yeah. I was", $4f + db "mimicking them…", $51 + db "Anyway, you've got", $4f + db "to get there as", $55 + db "soon as you can!", $57 +; 0x1770fb + +UnknownText_0x1770fb: ; 0x1770fb + db $0, "I'm saving up for", $4f + db "the next bargain", $51 + db "sale. When's the", $4f + db "next one?", $57 +; 0x177138 + +UnknownText_0x177138: ; 0x177138 + db $0, "Where are you?", $51 + db "Let's have our", $4f + db "battle soon!", $51 + db "I'll be waiting on", $4f + db "@" + text_from_ram $d0bf + db $0, ".", $57 +; 0x17717c + +UnknownText_0x17717c: ; 0x17717c + db $0, "Haven't you gone", $4f + db "to GOLDENROD DEPT.", $51 + db "STORE? I've scoped", $4f + db "it out already!", $51 + db "They had some real", $4f + db "bargains.", $51 + db "You should get", $4f + db "there quickly.", $57 +; 0x1771fd + +UnknownText_0x1771fd: ; 0x1771fd + db $0, "My @" + text_from_ram $d0ac + db $0, " and", $4f + db "I are getting more", $51 + db "in sync with each", $4f + db "other.", $57 +; 0x177237 + +UnknownText_0x177237: ; 0x177237 + db $0, "We battled a wild", $4f + db "@" + text_from_ram $d0ac + db $0, " and", $51 + db "managed to drop it", $4f + db "in a close match.", $51 + db "We're getting into", $4f + db "the groove!", $57 +; 0x177297 + +UnknownText_0x177297: ; 0x177297 + db $0, "But, you know?", $51 + db "I still haven't", $4f + db "caught @" + text_from_ram $d0ac + db $0, ".", $51 + db "It's getting past", $4f + db "frustrating…", $57 +; 0x1772e2 + +UnknownText_0x1772e2: ; 0x1772e2 + db $0, "Would you be my", $4f + db "practice partner", $55 + db "again sometime?", $51 + db "I'll be waiting on", $4f + db "@" + text_from_ram $d0bf + db $0, ".", $51 + db "…Could you take it", $4f + db "a little easier on", $55 + db "me next time?", $57 +; 0x177361 + +UnknownText_0x177361: ; 0x177361 + db $0, "Bye! Let's chat", $4f + db "again!", $57 +; 0x177378 + +UnknownText_0x177378: ; 0x177378 + db $0, "Have you heard", $4f + db "about TEAM ROCKET?", $51 + db "They've taken over", $4f + db "the RADIO TOWER in", $55 + db "GOLDENROD.", $51 + db "Are the people", $4f + db "inside safe?", $57 +; 0x1773e7 + +UnknownText_0x1773e7: ; 0x1773e7 + db $0, "I picked up some-", $4f + db "thing nice today.", $51 + db "I want you to have", $4f + db "it, so I called!", $51 + db "You will come for", $4f + db "it, won't you?", $51 + db "@" + text_from_ram $d0bf + db $0, " is", $4f + db "where I am.", $57 +; 0x177465 + +UnknownText_0x177465: ; 0x177465 + db $0, "Sorry, I haven't", $4f + db "found anything", $51 + db "useful yet…", $4f + db "I promise, if I", $51 + db "find anything, you", $4f + db "can have it!", $57 +; 0x1774c1 + +UnknownText_0x1774c1: ; 0x1774c1 + db $0, "Oh, ", $14, "!", $4f + db "How soon can I", $51 + db "expect to see you", $4f + db "for our battle?", $51 + db "Don't forget,", $4f + db "@" + text_from_ram $d0bf + db $0, "!", $57 +; 0x17750e + +UnknownText_0x17750e: ; 0x17750e + db $0, "I'm getting really", $4f + db "impatient, waiting", $51 + db "to give you my", $4f + db "present!", $51 + db "Hurry over to", $4f + db "@" + text_from_ram $d0bf + db $0, "!", $57 +; 0x177561 From 570d2ab1cf6576a77a801001ef2e7caa5d034828 Mon Sep 17 00:00:00 2001 From: yenatch Date: Fri, 16 Aug 2013 22:35:31 -0400 Subject: [PATCH 61/84] dt: three-byte value used for pokemon exp --- constants.asm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/constants.asm b/constants.asm index 02f402bcb..e929a48f2 100644 --- a/constants.asm +++ b/constants.asm @@ -36,6 +36,12 @@ dn: MACRO db \1 << 4 + \2 ENDM +dt: MACRO ; three-byte (big-endian) + db (\1 >> 16) & $ff + db (\1 >> 8) & $ff + db \1 & $ff + ENDM + bigdw: MACRO ; big-endian word dw ((\1)/$100) + (((\1)&$ff)*$100) ENDM From 4105ac8102826e08ed2500230a17e9e21e6f07b6 Mon Sep 17 00:00:00 2001 From: yenatch Date: Fri, 16 Aug 2013 22:36:13 -0400 Subject: [PATCH 62/84] battle tower trainers and mons --- main.asm | 102 +- stats/battle_tower.asm | 5711 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 5802 insertions(+), 11 deletions(-) create mode 100644 stats/battle_tower.asm diff --git a/main.asm b/main.asm index 07804879a..d4cdcd96c 100644 --- a/main.asm +++ b/main.asm @@ -74441,15 +74441,15 @@ Function1f8000: ; 1f8000 ld a, [$be46] ld c, a ld a, b - ld b, $0 + ld b, 0 add hl, bc ld [hl], a call CloseSRAM push af - ld hl, $414e - ld bc, $000b + ld hl, BattleTowerTrainers + ld bc, 11 call AddNTimes - ld bc, $000b + ld bc, 11 call CopyBytes call Function1f8081 pop af @@ -74480,9 +74480,10 @@ Function1f8081: ; 1f8081 .asm_1f8089 ld a, [$d800] dec a - ld hl, $4450 - ld bc, $04d7 + ld hl, BattleTowerMons + ld bc, BattleTowerMons2 - BattleTowerMons1 call AddNTimes + ld a, [hRandomAdd] ld b, a .asm_1f8099 @@ -74491,9 +74492,10 @@ Function1f8081: ; 1f8081 add b ld b, a and $1f - cp $15 + cp (BattleTowerMons2 - BattleTowerMons1) / ($3b) jr nc, .asm_1f8099 - ld bc, $003b + + ld bc, $3b call AddNTimes ld a, [hli] ld b, a @@ -74535,12 +74537,13 @@ Function1f8081: ; 1f8081 ld a, [$be56] cp b jr z, .asm_1f8089 - ld bc, $003b + + ld bc, $3b call CopyBytes ld a, [$d265] push af push de - ld hl, $ffc5 + ld hl, -$3b add hl, de ld a, [hl] ld [$d265], a @@ -74575,7 +74578,84 @@ Function1f8081: ; 1f8081 ret ; 1f814e -INCBIN "baserom.gbc", $1f814e, $1fb8a8 - $1f814e +BattleTowerTrainers: ; 1f814e + db "HANSON@@@@", FISHER + db "SAWYER@@@@", POKEMANIAC + db "MASUDA@@@@", GUITARIST + db "NICKEL@@@@", SCIENTIST + db "OLSON@@@@@", POKEFANM + db "ZABOROWSKI", LASS + db "WRIGHT@@@@", YOUNGSTER + db "ALEXANDER@", HIKER + db "KAWAKAMI@@", TEACHER + db "BICKETT@@@", POKEFANM + db "SAITO@@@@@", KIMONO_GIRL + db "CRAWFORD@@", BOARDER + db "DIAZ@@@@@@", PICNICKER + db "ERICKSON@@", BIKER + db "FAIRFIELD@", JUGGLER + db "HUNTER@@@@", POKEFANF + db "HILL@@@@@@", FIREBREATHER + db "JAVIER@@@@", SWIMMERF + db "KAUFMAN@@@", SWIMMERM + db "LANCASTER@", SKIER + db "McMAHILL@@", CAMPER + db "OBRIEN@@@@", GENTLEMAN + db "FROST@@@@@", BEAUTY + db "MORSE@@@@@", SUPER_NERD + db "YUFUNE@@@@", BLACKBELT_T + db "RAJAN@@@@@", COOLTRAINERF + db "RODRIGUEZ@", OFFICER + db "SANTIAGO@@", PSYCHIC_T + db "STOCK@@@@@", POKEFANM + db "THURMAN@@@", SCIENTIST + db "VALENTINO@", BEAUTY + db "WAGNER@@@@", CAMPER + db "YATES@@@@@", BIRD_KEEPER + db "ANDREWS@@@", PICNICKER + db "BAHN@@@@@@", POKEMANIAC + db "MORI@@@@@@", SCIENTIST + db "BUCKMAN@@@", SAGE + db "COBB@@@@@@", SCHOOLBOY + db "HUGHES@@@@", FISHER + db "ARITA@@@@@", KIMONO_GIRL + db "EASTON@@@@", PSYCHIC_T + db "FREEMAN@@@", CAMPER + db "GIESE@@@@@", LASS + db "HATCHER@@@", GENTLEMAN + db "JACKSON@@@", POKEFANF + db "KAHN@@@@@@", POKEMANIAC + db "LEONG@@@@@", YOUNGSTER + db "MARINO@@@@", TEACHER + db "NEWMAN@@@@", SAILOR + db "NGUYEN@@@@", BLACKBELT_T + db "OGDEN@@@@@", SUPER_NERD + db "PARK@@@@@@", COOLTRAINERF + db "RAINE@@@@@", SWIMMERM + db "SELLS@@@@@", BIRD_KEEPER + db "ROCKWELL@@", BOARDER + db "THORNTON@@", LASS + db "TURNER@@@@", OFFICER + db "VAN DYKE@@", SKIER + db "WALKER@@@@", SCHOOLBOY + db "MEYER@@@@@", SWIMMERF + db "JOHNSON@@@", YOUNGSTER + db "ADAMS@@@@@", GUITARIST + db "SMITH@@@@@", BUG_CATCHER + db "TAJIRI@@@@", BUG_CATCHER + db "BAKER@@@@@", POKEMANIAC + db "COLLINS@@@", SCIENTIST + db "SMART@@@@@", SUPER_NERD + db "DYKSTRA@@@", SWIMMERF + db "EATON@@@@@", BIKER + db "WONG@@@@@@", FIREBREATHER +; 1f8450 + +BattleTowerMons: ; 1f8450 + INCLUDE "stats/battle_tower.asm" +; 1fb4b6 + +INCBIN "baserom.gbc", $1fb4b6, $1fb8a8 - $1fb4b6 SECTION "bank7F",DATA,BANK[$7F] diff --git a/stats/battle_tower.asm b/stats/battle_tower.asm new file mode 100644 index 000000000..4a74fe0f5 --- /dev/null +++ b/stats/battle_tower.asm @@ -0,0 +1,5711 @@ + + +BattleTowerMons1: + + db JOLTEON + db MIRACLEBERRY + db THUNDERBOLT, HYPER_BEAM, SHADOW_BALL, ROAR + dw 0 ; OT ID + dt 1000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 40000 + bigdw 40000 + bigdw 35000 + bigdw 40000 + db $dd, $bd ; DVs + db 15, 5, 15, 20 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 10 ; Level + db 0, 0 ; Status + bigdw 41 ; HP + bigdw 41 ; Max HP + bigdw 25 ; Atk + bigdw 24 ; Def + bigdw 37 ; Spd + bigdw 34 ; SAtk + bigdw 31 ; SDef + db "SANDA-SU@@@" + + + db ESPEON + db LEFTOVERS + db MUD_SLAP, PSYCHIC_M, PSYCH_UP, TOXIC + dw 0 ; OT ID + dt 1000 ; Exp + ; Stat exp + bigdw 40000 + bigdw 50000 + bigdw 35000 + bigdw 40000 + bigdw 40000 + db $ed, $fb ; DVs + db 10, 10, 10, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 10 ; Level + db 0, 0 ; Status + bigdw 39 ; HP + bigdw 39 ; Max HP + bigdw 26 ; Atk + bigdw 24 ; Def + bigdw 35 ; Spd + bigdw 38 ; SAtk + bigdw 31 ; SDef + db "E-HUi@@@@@@" + + + db UMBREON + db GOLD_BERRY + db SHADOW_BALL, IRON_TAIL, PSYCH_UP, TOXIC + dw 0 ; OT ID + dt 1000 ; Exp + ; Stat exp + bigdw 40000 + bigdw 40000 + bigdw 45000 + bigdw 50000 + bigdw 40000 + db $db, $ef ; DVs + db 15, 15, 10, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 10 ; Level + db 0, 0 ; Status + bigdw 46 ; HP + bigdw 46 ; Max HP + bigdw 25 ; Atk + bigdw 34 ; Def + bigdw 26 ; Spd + bigdw 25 ; SAtk + bigdw 39 ; SDef + db "BURAtuKI-@@" + + + db WOBBUFFET + db FOCUS_BAND + db COUNTER, MIRROR_COAT, SAFEGUARD, DESTINY_BOND + dw 0 ; OT ID + dt 1000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $7f, $d7 ; DVs + db 20, 20, 25, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 10 ; Level + db 0, 0 ; Status + bigdw 66 ; HP + bigdw 66 ; Max HP + bigdw 18 ; Atk + bigdw 25 ; Def + bigdw 19 ; Spd + bigdw 18 ; SAtk + bigdw 23 ; SDef + db "SO-NANSU@@@" + + + db KANGASKHAN + db MIRACLEBERRY + db REVERSAL, HYPER_BEAM, EARTHQUAKE, ATTRACT + dw 0 ; OT ID + dt 1000 ; Exp + ; Stat exp + bigdw 40000 + bigdw 30000 + bigdw 40000 + bigdw 30000 + bigdw 30000 + db $ef, $cf ; DVs + db 15, 5, 10, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 10 ; Level + db 0, 0 ; Status + bigdw 47 ; HP + bigdw 47 ; Max HP + bigdw 31 ; Atk + bigdw 29 ; Def + bigdw 29 ; Spd + bigdw 20 ; SAtk + bigdw 28 ; SDef + db "GARU-RA@@@@" + + + db CORSOLA + db SCOPE_LENS + db SURF, PSYCHIC_M, RECOVER, ANCIENTPOWER + dw 0 ; OT ID + dt 1000 ; Exp + ; Stat exp + bigdw 40000 + bigdw 30000 + bigdw 33300 + bigdw 30000 + bigdw 30000 + db $fe, $fd ; DVs + db 15, 10, 20, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 10 ; Level + db 0, 0 ; Status + bigdw 38 ; HP + bigdw 38 ; Max HP + bigdw 23 ; Atk + bigdw 29 ; Def + bigdw 19 ; Spd + bigdw 24 ; SAtk + bigdw 28 ; SDef + db "SANI-GO@@@@" + + + db MILTANK + db GOLD_BERRY + db BLIZZARD, EARTHQUAKE, HYPER_BEAM, TOXIC + dw 0 ; OT ID + dt 1000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 35000 + db $bb, $df ; DVs + db 5, 10, 5, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 10 ; Level + db 0, 0 ; Status + bigdw 46 ; HP + bigdw 46 ; Max HP + bigdw 27 ; Atk + bigdw 32 ; Def + bigdw 31 ; Spd + bigdw 20 ; SAtk + bigdw 26 ; SDef + db "MIRUTANKU@@" + + + db AERODACTYL + db LEFTOVERS + db HYPER_BEAM, SUPERSONIC, EARTHQUAKE, BITE + dw 0 ; OT ID + dt 1000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $db, $fb ; DVs + db 5, 20, 10, 25 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 10 ; Level + db 0, 0 ; Status + bigdw 43 ; HP + bigdw 43 ; Max HP + bigdw 32 ; Atk + bigdw 24 ; Def + bigdw 38 ; Spd + bigdw 23 ; SAtk + bigdw 26 ; SDef + db "PUTERA@@@@@" + + + db LAPRAS + db MIRACLEBERRY + db BLIZZARD, SURF, THUNDERBOLT, PSYCHIC_M + dw 0 ; OT ID + dt 1000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $fd, $eb ; DVs + db 5, 15, 15, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 10 ; Level + db 0, 0 ; Status + bigdw 52 ; HP + bigdw 52 ; Max HP + bigdw 29 ; Atk + bigdw 27 ; Def + bigdw 24 ; Spd + bigdw 28 ; SAtk + bigdw 30 ; SDef + db "RAPURASU@@@" + + + db SNEASEL + db GOLD_BERRY + db SLASH, FAINT_ATTACK, SURF, BLIZZARD + dw 0 ; OT ID + dt 1000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 35000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $fb, $bf ; DVs + db 20, 20, 15, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 10 ; Level + db 0, 0 ; Status + bigdw 38 ; HP + bigdw 38 ; Max HP + bigdw 31 ; Atk + bigdw 22 ; Def + bigdw 34 ; Spd + bigdw 19 ; SAtk + bigdw 27 ; SDef + db "NIyu-RA@@@@" + + + db PORYGON2 + db BRIGHTPOWDER + db PSYCHIC_M, BLIZZARD, HYPER_BEAM, TRI_ATTACK + dw 0 ; OT ID + dt 1000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 40000 + bigdw 30000 + bigdw 30000 + db $fb, $de ; DVs + db 10, 5, 5, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 10 ; Level + db 0, 0 ; Status + bigdw 44 ; HP + bigdw 44 ; Max HP + bigdw 28 ; Atk + bigdw 30 ; Def + bigdw 23 ; Spd + bigdw 33 ; SAtk + bigdw 31 ; SDef + db "PORIGON2@@@" + + + db MISDREAVUS + db FOCUS_BAND + db PERISH_SONG, MEAN_LOOK, PAIN_SPLIT, SHADOW_BALL + dw 0 ; OT ID + dt 1000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $ef, $df ; DVs + db 5, 5, 20, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 10 ; Level + db 0, 0 ; Status + bigdw 37 ; HP + bigdw 37 ; Max HP + bigdw 24 ; Atk + bigdw 24 ; Def + bigdw 28 ; Spd + bigdw 29 ; SAtk + bigdw 29 ; SDef + db "MUUMA@@@@@@" + + + db HOUNDOUR + db GOLD_BERRY + db FAINT_ATTACK, SOLARBEAM, ROAR, SUNNY_DAY + dw 0 ; OT ID + dt 1000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 33000 + bigdw 30000 + db $fd, $fe ; DVs + db 20, 10, 20, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 10 ; Level + db 0, 0 ; Status + bigdw 36 ; HP + bigdw 36 ; Max HP + bigdw 24 ; Atk + bigdw 17 ; Def + bigdw 25 ; Spd + bigdw 28 ; SAtk + bigdw 22 ; SDef + db "DERUBIRU@@@" + + + db GIRAFARIG + db KINGS_ROCK + db PSYBEAM, MUD_SLAP, SHADOW_BALL, AGILITY + dw 0 ; OT ID + dt 1000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $ed, $fd ; DVs + db 20, 10, 15, 30 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 10 ; Level + db 0, 0 ; Status + bigdw 39 ; HP + bigdw 39 ; Max HP + bigdw 28 ; Atk + bigdw 24 ; Def + bigdw 29 ; Spd + bigdw 29 ; SAtk + bigdw 24 ; SDef + db "KIRINRIKI@@" + + + db BLISSEY + db QUICK_CLAW + db HEADBUTT, SOLARBEAM, ROLLOUT, STRENGTH + dw 0 ; OT ID + dt 1000 ; Exp + ; Stat exp + bigdw 32000 + bigdw 40000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $df, $ce ; DVs + db 15, 10, 20, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 10 ; Level + db 0, 0 ; Status + bigdw 77 ; HP + bigdw 77 ; Max HP + bigdw 14 ; Atk + bigdw 14 ; Def + bigdw 22 ; Spd + bigdw 27 ; SAtk + bigdw 39 ; SDef + db "HAPINASU@@@" + + + db SNORLAX + db MIRACLEBERRY + db HEADBUTT, PROTECT, SNORE, SURF + dw 0 ; OT ID + dt 1000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $ef, $f7 ; DVs + db 15, 10, 15, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 10 ; Level + db 0, 0 ; Status + bigdw 57 ; HP + bigdw 57 ; Max HP + bigdw 34 ; Atk + bigdw 25 ; Def + bigdw 18 ; Spd + bigdw 23 ; SAtk + bigdw 32 ; SDef + db "KABIGON@@@@" + + + db EXEGGUTOR + db KINGS_ROCK + db TOXIC, GIGA_DRAIN, THIEF, CONFUSION + dw 0 ; OT ID + dt 1000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $fe, $fe ; DVs + db 10, 5, 10, 25 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 10 ; Level + db 0, 0 ; Status + bigdw 45 ; HP + bigdw 45 ; Max HP + bigdw 31 ; Atk + bigdw 29 ; Def + bigdw 23 ; Spd + bigdw 37 ; SAtk + bigdw 25 ; SDef + db "NAtuSI-@@@@" + + + db HERACROSS + db GOLD_BERRY + db REVERSAL, ENDURE, COUNTER, ROCK_SMASH + dw 0 ; OT ID + dt 1000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $f7, $f7 ; DVs + db 15, 10, 20, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 10 ; Level + db 0, 0 ; Status + bigdw 43 ; HP + bigdw 43 ; Max HP + bigdw 37 ; Atk + bigdw 25 ; Def + bigdw 29 ; Spd + bigdw 18 ; SAtk + bigdw 29 ; SDef + db "HERAKUROSU@" + + + db UNOWN + db BERRY + db HIDDEN_POWER, NONE, NONE, NONE + dw 0 ; OT ID + dt 1000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $ff, $ff ; DVs + db 15, 0, 0, 0 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 10 ; Level + db 0, 0 ; Status + bigdw 36 ; HP + bigdw 36 ; Max HP + bigdw 26 ; Atk + bigdw 21 ; Def + bigdw 21 ; Spd + bigdw 26 ; SAtk + bigdw 21 ; SDef + db "ANNO-N@@@@@" + + + db TAUROS + db KINGS_ROCK + db HEADBUTT, SWAGGER, TAIL_WHIP, ICY_WIND + dw 0 ; OT ID + dt 1000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $65, $57 ; DVs + db 15, 15, 30, 15 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 10 ; Level + db 0, 0 ; Status + bigdw 40 ; HP + bigdw 40 ; Max HP + bigdw 30 ; Atk + bigdw 29 ; Def + bigdw 32 ; Spd + bigdw 18 ; SAtk + bigdw 24 ; SDef + db "KENTAROSU@@" + + + db MR__MIME + db QUICK_CLAW + db TOXIC, PSYCH_UP, FIRE_PUNCH, HEADBUTT + dw 0 ; OT ID + dt 1000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $73, $67 ; DVs + db 10, 10, 15, 15 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 10 ; Level + db 0, 0 ; Status + bigdw 34 ; HP + bigdw 34 ; Max HP + bigdw 19 ; Atk + bigdw 22 ; Def + bigdw 28 ; Spd + bigdw 30 ; SAtk + bigdw 34 ; SDef + db "BARIYA-DO@@" + + + + +BattleTowerMons2: + + db UMBREON + db LEFTOVERS + db PROTECT, TOXIC, MUD_SLAP, ATTRACT + dw 0 ; OT ID + dt 8000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $cf, $bc ; DVs + db 10, 10, 10, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 20 ; Level + db 0, 0 ; Status + bigdw 81 ; HP + bigdw 81 ; Max HP + bigdw 46 ; Atk + bigdw 66 ; Def + bigdw 46 ; Spd + bigdw 44 ; SAtk + bigdw 72 ; SDef + db "BURAtuKI-@@" + + + db STARMIE + db GOLD_BERRY + db RECOVER, PSYCHIC_M, SURF, PSYCH_UP + dw 0 ; OT ID + dt 8000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $db, $db ; DVs + db 20, 10, 15, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 20 ; Level + db 0, 0 ; Status + bigdw 71 ; HP + bigdw 71 ; Max HP + bigdw 51 ; Atk + bigdw 54 ; Def + bigdw 67 ; Spd + bigdw 60 ; SAtk + bigdw 54 ; SDef + db "SUTA-MI-@@@" + + + db GYARADOS + db MIRACLEBERRY + db HYPER_BEAM, DRAGON_RAGE, THUNDERBOLT, FIRE_BLAST + dw 0 ; OT ID + dt 8000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $fa, $fd ; DVs + db 5, 10, 15, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 20 ; Level + db 0, 0 ; Status + bigdw 83 ; HP + bigdw 83 ; Max HP + bigdw 72 ; Atk + bigdw 51 ; Def + bigdw 54 ; Spd + bigdw 45 ; SAtk + bigdw 61 ; SDef + db "GIyaRADOSU@" + + + db STEELIX + db GOLD_BERRY + db ROAR, IRON_TAIL, SWAGGER, EARTHQUAKE + dw 0 ; OT ID + dt 8000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 45000 + bigdw 50000 + bigdw 30000 + bigdw 50000 + db $ff, $ff ; DVs + db 20, 15, 15, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 20 ; Level + db 0, 0 ; Status + bigdw 77 ; HP + bigdw 77 ; Max HP + bigdw 55 ; Atk + bigdw 102 ; Def + bigdw 31 ; Spd + bigdw 44 ; SAtk + bigdw 48 ; SDef + db "HAGANE-RU@@" + + + db ALAKAZAM + db BERRY_JUICE + db PSYCHIC_M, PSYCH_UP, TOXIC, THUNDERPUNCH + dw 0 ; OT ID + dt 8000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 30000 + bigdw 50000 + bigdw 40000 + db $fd, $ef ; DVs + db 10, 10, 10, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 20 ; Level + db 0, 0 ; Status + bigdw 68 ; HP + bigdw 68 ; Max HP + bigdw 42 ; Atk + bigdw 36 ; Def + bigdw 69 ; Spd + bigdw 75 ; SAtk + bigdw 55 ; SDef + db "HU-DEiN@@@@" + + + db ARCANINE + db BRIGHTPOWDER + db FLAMETHROWER, ROAR, HYPER_BEAM, IRON_TAIL + dw 0 ; OT ID + dt 8000 ; Exp + ; Stat exp + bigdw 35000 + bigdw 45000 + bigdw 50000 + bigdw 55000 + bigdw 50000 + db $db, $fb ; DVs + db 15, 20, 5, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 20 ; Level + db 0, 0 ; Status + bigdw 81 ; HP + bigdw 81 ; Max HP + bigdw 64 ; Atk + bigdw 52 ; Def + bigdw 60 ; Spd + bigdw 60 ; SAtk + bigdw 52 ; SDef + db "UINDEi@@@@@" + + + db HERACROSS + db FOCUS_BAND + db ENDURE, REVERSAL, MEGAHORN, EARTHQUAKE + dw 0 ; OT ID + dt 8000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 30000 + bigdw 45000 + bigdw 30000 + bigdw 45000 + db $df, $de ; DVs + db 10, 15, 10, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 20 ; Level + db 0, 0 ; Status + bigdw 78 ; HP + bigdw 78 ; Max HP + bigdw 68 ; Atk + bigdw 51 ; Def + bigdw 52 ; Spd + bigdw 37 ; SAtk + bigdw 59 ; SDef + db "HERAKUROSU@" + + + db EXEGGUTOR + db LEFTOVERS + db HYPER_BEAM, PSYCHIC_M, TOXIC, DREAM_EATER + dw 0 ; OT ID + dt 8000 ; Exp + ; Stat exp + bigdw 45000 + bigdw 50000 + bigdw 50000 + bigdw 45000 + bigdw 45000 + db $fd, $eb ; DVs + db 5, 10, 10, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 20 ; Level + db 0, 0 ; Status + bigdw 83 ; HP + bigdw 83 ; Max HP + bigdw 60 ; Atk + bigdw 55 ; Def + bigdw 43 ; Spd + bigdw 70 ; SAtk + bigdw 46 ; SDef + db "NAtuSI-@@@@" + + + db AERODACTYL + db GOLD_BERRY + db REST, HYPER_BEAM, EARTHQUAKE, DRAGON_RAGE + dw 0 ; OT ID + dt 8000 ; Exp + ; Stat exp + bigdw 45000 + bigdw 50000 + bigdw 40000 + bigdw 50000 + bigdw 45000 + db $fb, $bb ; DVs + db 10, 5, 10, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 20 ; Level + db 0, 0 ; Status + bigdw 78 ; HP + bigdw 78 ; Max HP + bigdw 64 ; Atk + bigdw 45 ; Def + bigdw 72 ; Spd + bigdw 44 ; SAtk + bigdw 50 ; SDef + db "PUTERA@@@@@" + + + db BLISSEY + db BRIGHTPOWDER + db PSYCHIC_M, SUBMISSION, SOFTBOILED, COUNTER + dw 0 ; OT ID + dt 8000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 30000 + bigdw 30000 + bigdw 50000 + db $bd, $fe ; DVs + db 10, 25, 10, 20 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 20 ; Level + db 0, 0 ; Status + bigdw 148 ; HP + bigdw 148 ; Max HP + bigdw 24 ; Atk + bigdw 22 ; Def + bigdw 41 ; Spd + bigdw 51 ; SAtk + bigdw 75 ; SDef + db "HAPINASU@@@" + + + db LAPRAS + db GOLD_BERRY + db PSYCHIC_M, THUNDERBOLT, BLIZZARD, CONFUSE_RAY + dw 0 ; OT ID + dt 8000 ; Exp + ; Stat exp + bigdw 55000 + bigdw 30000 + bigdw 40000 + bigdw 55000 + bigdw 30000 + db $fe, $d7 ; DVs + db 10, 15, 5, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 20 ; Level + db 0, 0 ; Status + bigdw 98 ; HP + bigdw 98 ; Max HP + bigdw 53 ; Atk + bigdw 52 ; Def + bigdw 45 ; Spd + bigdw 50 ; SAtk + bigdw 54 ; SDef + db "RAPURASU@@@" + + + db PIKACHU + db LIGHT_BALL + db THUNDERBOLT, THUNDER_WAVE, STRENGTH, TOXIC + dw 0 ; OT ID + dt 8000 ; Exp + ; Stat exp + bigdw 45000 + bigdw 50000 + bigdw 45000 + bigdw 50000 + bigdw 50000 + db $fc, $fe ; DVs + db 15, 20, 15, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 20 ; Level + db 0, 0 ; Status + bigdw 58 ; HP + bigdw 58 ; Max HP + bigdw 44 ; Atk + bigdw 32 ; Def + bigdw 58 ; Spd + bigdw 41 ; SAtk + bigdw 37 ; SDef + db "PIKATIyuU@@" + + + db SCIZOR + db FOCUS_BAND + db STEEL_WING, SLASH, TOXIC, SANDSTORM + dw 0 ; OT ID + dt 8000 ; Exp + ; Stat exp + bigdw 40000 + bigdw 45000 + bigdw 40000 + bigdw 45000 + bigdw 50000 + db $fd, $fe ; DVs + db 25, 20, 10, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 20 ; Level + db 0, 0 ; Status + bigdw 73 ; HP + bigdw 73 ; Max HP + bigdw 73 ; Atk + bigdw 60 ; Def + bigdw 47 ; Spd + bigdw 43 ; SAtk + bigdw 53 ; SDef + db "HAtuSAMU@@@" + + + db HITMONCHAN + db GOLD_BERRY + db THUNDERPUNCH, ICE_PUNCH, FIRE_PUNCH, MEGA_PUNCH + dw 0 ; OT ID + dt 8000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 45000 + bigdw 35000 + bigdw 50000 + bigdw 30000 + db $fb, $fd ; DVs + db 15, 15, 15, 20 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 20 ; Level + db 0, 0 ; Status + bigdw 67 ; HP + bigdw 67 ; Max HP + bigdw 63 ; Atk + bigdw 50 ; Def + bigdw 52 ; Spd + bigdw 32 ; SAtk + bigdw 62 ; SDef + db "EBIWARA-@@@" + + + db TAUROS + db BRIGHTPOWDER + db THUNDERBOLT, EARTHQUAKE, HYPER_BEAM, BLIZZARD + dw 0 ; OT ID + dt 8000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 40000 + bigdw 50000 + bigdw 30000 + bigdw 30000 + db $fb, $ef ; DVs + db 15, 10, 5, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 20 ; Level + db 0, 0 ; Status + bigdw 76 ; HP + bigdw 76 ; Max HP + bigdw 61 ; Atk + bigdw 58 ; Def + bigdw 63 ; Spd + bigdw 35 ; SAtk + bigdw 47 ; SDef + db "KENTAROSU@@" + + + db AZUMARILL + db MYSTIC_WATER + db SURF, BLIZZARD, ATTRACT, RAIN_DANCE + dw 0 ; OT ID + dt 8000 ; Exp + ; Stat exp + bigdw 40000 + bigdw 40000 + bigdw 40000 + bigdw 40000 + bigdw 40000 + db $ed, $f7 ; DVs + db 15, 5, 15, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 20 ; Level + db 0, 0 ; Status + bigdw 82 ; HP + bigdw 82 ; Max HP + bigdw 40 ; Atk + bigdw 52 ; Def + bigdw 41 ; Spd + bigdw 37 ; SAtk + bigdw 49 ; SDef + db "MARIRURI@@@" + + + db MILTANK + db KINGS_ROCK + db EARTHQUAKE, THUNDER, ATTRACT, SURF + dw 0 ; OT ID + dt 8000 ; Exp + ; Stat exp + bigdw 40000 + bigdw 40000 + bigdw 40000 + bigdw 40000 + bigdw 40000 + db $df, $fe ; DVs + db 10, 10, 15, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 20 ; Level + db 0, 0 ; Status + bigdw 83 ; HP + bigdw 83 ; Max HP + bigdw 52 ; Atk + bigdw 63 ; Def + bigdw 61 ; Spd + bigdw 36 ; SAtk + bigdw 48 ; SDef + db "MIRUTANKU@@" + + + db WIGGLYTUFF + db GOLD_BERRY + db HYPER_BEAM, BLIZZARD, FIRE_BLAST, ATTRACT + dw 0 ; OT ID + dt 8000 ; Exp + ; Stat exp + bigdw 40000 + bigdw 40000 + bigdw 40000 + bigdw 40000 + bigdw 40000 + db $c7, $fe ; DVs + db 5, 5, 5, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 20 ; Level + db 0, 0 ; Status + bigdw 98 ; HP + bigdw 98 ; Max HP + bigdw 47 ; Atk + bigdw 35 ; Def + bigdw 39 ; Spd + bigdw 50 ; SAtk + bigdw 40 ; SDef + db "PUKURIN@@@@" + + + db WIGGLYTUFF + db PINK_BOW + db PSYCHIC_M, SWAGGER, PSYCH_UP, HEADBUTT + dw 0 ; OT ID + dt 8000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $c7, $77 ; DVs + db 10, 15, 10, 15 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 20 ; Level + db 0, 0 ; Status + bigdw 97 ; HP + bigdw 97 ; Max HP + bigdw 46 ; Atk + bigdw 34 ; Def + bigdw 34 ; Spd + bigdw 46 ; SAtk + bigdw 36 ; SDef + db "PUKURIN@@@@" + + + db NIDOKING + db BERRY + db BLIZZARD, EARTHQUAKE, SURF, THUNDERPUNCH + dw 0 ; OT ID + dt 8000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $56, $46 ; DVs + db 5, 10, 15, 15 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 20 ; Level + db 0, 0 ; Status + bigdw 74 ; HP + bigdw 74 ; Max HP + bigdw 52 ; Atk + bigdw 46 ; Def + bigdw 49 ; Spd + bigdw 50 ; SAtk + bigdw 46 ; SDef + db "NIDOKINGU@@" + + + db QUAGSIRE + db QUICK_CLAW + db AMNESIA, EARTHQUAKE, SURF, RAIN_DANCE + dw 0 ; OT ID + dt 8000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $55, $47 ; DVs + db 20, 10, 15, 5 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 20 ; Level + db 0, 0 ; Status + bigdw 81 ; HP + bigdw 81 ; Max HP + bigdw 49 ; Atk + bigdw 49 ; Def + bigdw 29 ; Spd + bigdw 42 ; SAtk + bigdw 42 ; SDef + db "NUO-@@@@@@@" + + + + +BattleTowerMons3: + + db JOLTEON + db MIRACLEBERRY + db THUNDERBOLT, THUNDER_WAVE, ROAR, MUD_SLAP + dw 0 ; OT ID + dt 27000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 55000 + db $db, $ed ; DVs + db 15, 20, 20, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 30 ; Level + db 0, 0 ; Status + bigdw 103 ; HP + bigdw 103 ; Max HP + bigdw 68 ; Atk + bigdw 64 ; Def + bigdw 107 ; Spd + bigdw 96 ; SAtk + bigdw 87 ; SDef + db "SANDA-SU@@@" + + + db POLIWRATH + db BRIGHTPOWDER + db DOUBLE_TEAM, SURF, FISSURE, SUBMISSION + dw 0 ; OT ID + dt 27000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 55000 + bigdw 55000 + bigdw 55000 + bigdw 50000 + db $dd, $fb ; DVs + db 15, 15, 5, 25 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 30 ; Level + db 0, 0 ; Status + bigdw 119 ; HP + bigdw 119 ; Max HP + bigdw 81 ; Atk + bigdw 87 ; Def + bigdw 73 ; Spd + bigdw 70 ; SAtk + bigdw 82 ; SDef + db "NIyoROBON@@" + + + db STARMIE + db LEFTOVERS + db THUNDER_WAVE, PSYCHIC_M, RECOVER, SURF + dw 0 ; OT ID + dt 27000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $ff, $ff ; DVs + db 20, 10, 20, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 30 ; Level + db 0, 0 ; Status + bigdw 101 ; HP + bigdw 101 ; Max HP + bigdw 75 ; Atk + bigdw 81 ; Def + bigdw 99 ; Spd + bigdw 90 ; SAtk + bigdw 81 ; SDef + db "SUTA-MI-@@@" + + + db JYNX + db GOLD_BERRY + db BLIZZARD, LOVELY_KISS, DREAM_EATER, ATTRACT + dw 0 ; OT ID + dt 27000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 30000 + bigdw 50000 + db $fb, $ee ; DVs + db 5, 10, 15, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 30 ; Level + db 0, 0 ; Status + bigdw 102 ; HP + bigdw 102 ; Max HP + bigdw 60 ; Atk + bigdw 49 ; Def + bigdw 83 ; Spd + bigdw 98 ; SAtk + bigdw 86 ; SDef + db "RU-ZIyuRA@@" + + + db DUGTRIO + db KINGS_ROCK + db EARTHQUAKE, SLUDGE_BOMB, SLASH, MUD_SLAP + dw 0 ; OT ID + dt 27000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 30000 + bigdw 50000 + bigdw 50000 + db $ef, $ff ; DVs + db 10, 10, 20, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 30 ; Level + db 0, 0 ; Status + bigdw 81 ; HP + bigdw 81 ; Max HP + bigdw 77 ; Atk + bigdw 56 ; Def + bigdw 102 ; Spd + bigdw 60 ; SAtk + bigdw 72 ; SDef + db "DAGUTORIO@@" + + + db BELLOSSOM + db BRIGHTPOWDER + db GIGA_DRAIN, SUNNY_DAY, SOLARBEAM, DOUBLE_TEAM + dw 0 ; OT ID + dt 27000 ; Exp + ; Stat exp + bigdw 45000 + bigdw 45000 + bigdw 50000 + bigdw 55000 + bigdw 50000 + db $df, $db ; DVs + db 5, 5, 10, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 30 ; Level + db 0, 0 ; Status + bigdw 109 ; HP + bigdw 109 ; Max HP + bigdw 76 ; Atk + bigdw 81 ; Def + bigdw 60 ; Spd + bigdw 82 ; SAtk + bigdw 88 ; SDef + db "KIREIHANA@@" + + + db BLISSEY + db LEFTOVERS + db TOXIC, REFLECT, SOFTBOILED, PROTECT + dw 0 ; OT ID + dt 27000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 30000 + bigdw 45000 + bigdw 30000 + bigdw 45000 + db $fb, $ed ; DVs + db 10, 20, 10, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 30 ; Level + db 0, 0 ; Status + bigdw 217 ; HP + bigdw 217 ; Max HP + bigdw 32 ; Atk + bigdw 33 ; Def + bigdw 59 ; Spd + bigdw 73 ; SAtk + bigdw 109 ; SDef + db "HAPINASU@@@" + + + db HOUNDOOM + db CHARCOAL + db FLAMETHROWER, CRUNCH, SHADOW_BALL, DREAM_EATER + dw 0 ; OT ID + dt 27000 ; Exp + ; Stat exp + bigdw 45000 + bigdw 50000 + bigdw 50000 + bigdw 45000 + bigdw 45000 + db $fd, $ed ; DVs + db 15, 15, 15, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 30 ; Level + db 0, 0 ; Status + bigdw 108 ; HP + bigdw 108 ; Max HP + bigdw 84 ; Atk + bigdw 59 ; Def + bigdw 86 ; Spd + bigdw 94 ; SAtk + bigdw 76 ; SDef + db "HERUGA-@@@@" + + + db MACHAMP + db MIRACLEBERRY + db CROSS_CHOP, ICE_PUNCH, EARTHQUAKE, FIRE_BLAST + dw 0 ; OT ID + dt 27000 ; Exp + ; Stat exp + bigdw 45000 + bigdw 50000 + bigdw 40000 + bigdw 50000 + bigdw 45000 + db $fd, $be ; DVs + db 5, 15, 10, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 30 ; Level + db 0, 0 ; Status + bigdw 118 ; HP + bigdw 118 ; Max HP + bigdw 108 ; Atk + bigdw 75 ; Def + bigdw 61 ; Spd + bigdw 68 ; SAtk + bigdw 80 ; SDef + db "KAIRIKI-@@@" + + + db CROBAT + db GOLD_BERRY + db ATTRACT, CONFUSE_RAY, TOXIC, WING_ATTACK + dw 0 ; OT ID + dt 27000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 30000 + bigdw 30000 + bigdw 50000 + db $ef, $dc ; DVs + db 15, 10, 10, 35 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 30 ; Level + db 0, 0 ; Status + bigdw 111 ; HP + bigdw 111 ; Max HP + bigdw 83 ; Atk + bigdw 74 ; Def + bigdw 103 ; Spd + bigdw 70 ; SAtk + bigdw 76 ; SDef + db "KUROBAtuTO@" + + + db PORYGON2 + db BRIGHTPOWDER + db PSYCHIC_M, RECOVER, HYPER_BEAM, TRI_ATTACK + dw 0 ; OT ID + dt 27000 ; Exp + ; Stat exp + bigdw 55000 + bigdw 30000 + bigdw 40000 + bigdw 55000 + bigdw 30000 + db $df, $db ; DVs + db 10, 20, 5, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 30 ; Level + db 0, 0 ; Status + bigdw 117 ; HP + bigdw 117 ; Max HP + bigdw 73 ; Atk + bigdw 83 ; Def + bigdw 66 ; Spd + bigdw 87 ; SAtk + bigdw 81 ; SDef + db "PORIGON2@@@" + + + db MAROWAK + db THICK_CLUB + db EARTHQUAKE, RETURN, HYPER_BEAM, BONEMERANG + dw 0 ; OT ID + dt 27000 ; Exp + ; Stat exp + bigdw 45000 + bigdw 50000 + bigdw 45000 + bigdw 50000 + bigdw 30000 + db $dd, $eb ; DVs + db 10, 20, 5, 10 ; PP + db 255 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 30 ; Level + db 0, 0 ; Status + bigdw 99 ; HP + bigdw 99 ; Max HP + bigdw 77 ; Atk + bigdw 94 ; Def + bigdw 56 ; Spd + bigdw 54 ; SAtk + bigdw 72 ; SDef + db "GARAGARA@@@" + + + db ELECTRODE + db BRIGHTPOWDER + db LIGHT_SCREEN, THUNDERBOLT, PROTECT, THUNDER + dw 0 ; OT ID + dt 27000 ; Exp + ; Stat exp + bigdw 40000 + bigdw 45000 + bigdw 40000 + bigdw 45000 + bigdw 50000 + db $bd, $ef ; DVs + db 30, 15, 10, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 30 ; Level + db 0, 0 ; Status + bigdw 98 ; HP + bigdw 98 ; Max HP + bigdw 57 ; Atk + bigdw 69 ; Def + bigdw 113 ; Spd + bigdw 78 ; SAtk + bigdw 78 ; SDef + db "MARUMAIN@@@" + + + db LAPRAS + db LEFTOVERS + db RAIN_DANCE, WATER_GUN, ICY_WIND, STRENGTH + dw 0 ; OT ID + dt 27000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 45000 + bigdw 35000 + bigdw 50000 + bigdw 30000 + db $fd, $eb ; DVs + db 5, 25, 15, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 30 ; Level + db 0, 0 ; Status + bigdw 142 ; HP + bigdw 142 ; Max HP + bigdw 80 ; Atk + bigdw 74 ; Def + bigdw 65 ; Spd + bigdw 75 ; SAtk + bigdw 81 ; SDef + db "RAPURASU@@@" + + + db LANTURN + db GOLD_BERRY + db RAIN_DANCE, THUNDER, SURF, FLAIL + dw 0 ; OT ID + dt 27000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 40000 + bigdw 50000 + bigdw 30000 + bigdw 30000 + db $dd, $eb ; DVs + db 5, 10, 15, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 30 ; Level + db 0, 0 ; Status + bigdw 139 ; HP + bigdw 139 ; Max HP + bigdw 62 ; Atk + bigdw 64 ; Def + bigdw 66 ; Spd + bigdw 70 ; SAtk + bigdw 70 ; SDef + db "RANTA-N@@@@" + + + db ESPEON + db MIRACLEBERRY + db CONFUSION, SWIFT, TOXIC, PSYCH_UP + dw 0 ; OT ID + dt 27000 ; Exp + ; Stat exp + bigdw 45000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $ef, $f7 ; DVs + db 25, 20, 10, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 30 ; Level + db 0, 0 ; Status + bigdw 99 ; HP + bigdw 99 ; Max HP + bigdw 68 ; Atk + bigdw 66 ; Def + bigdw 96 ; Spd + bigdw 103 ; SAtk + bigdw 82 ; SDef + db "E-HUi@@@@@@" + + + db TENTACRUEL + db KINGS_ROCK + db WRAP, TOXIC, SLUDGE_BOMB, BUBBLEBEAM + dw 0 ; OT ID + dt 27000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 45000 + bigdw 50000 + bigdw 47000 + bigdw 45000 + db $fe, $fe ; DVs + db 20, 10, 10, 20 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 30 ; Level + db 0, 0 ; Status + bigdw 110 ; HP + bigdw 110 ; Max HP + bigdw 71 ; Atk + bigdw 68 ; Def + bigdw 90 ; Spd + bigdw 77 ; SAtk + bigdw 101 ; SDef + db "DOKUKURAGE@" + + + db GENGAR + db GOLD_BERRY + db THIEF, LICK, NIGHT_SHADE, GIGA_DRAIN + dw 0 ; OT ID + dt 27000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 45000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $f7, $f7 ; DVs + db 10, 30, 15, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 30 ; Level + db 0, 0 ; Status + bigdw 101 ; HP + bigdw 101 ; Max HP + bigdw 68 ; Atk + bigdw 61 ; Def + bigdw 96 ; Spd + bigdw 103 ; SAtk + bigdw 70 ; SDef + db "GENGA-@@@@@" + + + db URSARING + db GOLD_BERRY + db HEADBUTT, PROTECT, ROAR, LEER + dw 0 ; OT ID + dt 27000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $77, $45 ; DVs + db 15, 10, 20, 30 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 30 ; Level + db 0, 0 ; Status + bigdw 114 ; HP + bigdw 114 ; Max HP + bigdw 100 ; Atk + bigdw 67 ; Def + bigdw 53 ; Spd + bigdw 65 ; SAtk + bigdw 65 ; SDef + db "RINGUMA@@@@" + + + db FEAROW + db BRIGHTPOWDER + db MIRROR_MOVE, PURSUIT, PECK, SWIFT + dw 0 ; OT ID + dt 27000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $67, $77 ; DVs + db 20, 20, 35, 20 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 30 ; Level + db 0, 0 ; Status + bigdw 96 ; HP + bigdw 96 ; Max HP + bigdw 75 ; Atk + bigdw 61 ; Def + bigdw 82 ; Spd + bigdw 58 ; SAtk + bigdw 58 ; SDef + db "ONIDORIRU@@" + + + db PRIMEAPE + db MIRACLEBERRY + db LOW_KICK, KARATE_CHOP, REVERSAL, FOCUS_ENERGY + dw 0 ; OT ID + dt 27000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $77, $67 ; DVs + db 20, 25, 15, 30 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 30 ; Level + db 0, 0 ; Status + bigdw 99 ; HP + bigdw 99 ; Max HP + bigdw 85 ; Atk + bigdw 58 ; Def + bigdw 78 ; Spd + bigdw 58 ; SAtk + bigdw 64 ; SDef + db "OKORIZARU@@" + + + + +BattleTowerMons4: + + db TAUROS + db GOLD_BERRY + db RETURN, HYPER_BEAM, EARTHQUAKE, IRON_TAIL + dw 0 ; OT ID + dt 64000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $fd, $fe ; DVs + db 20, 5, 10, 15 ; PP + db 255 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 40 ; Level + db 0, 0 ; Status + bigdw 143 ; HP + bigdw 143 ; Max HP + bigdw 119 ; Atk + bigdw 113 ; Def + bigdw 127 ; Spd + bigdw 70 ; SAtk + bigdw 94 ; SDef + db "KENTAROSU@@" + + + db KINGDRA + db LEFTOVERS + db SURF, DRAGONBREATH, HYPER_BEAM, BLIZZARD + dw 0 ; OT ID + dt 64000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $fd, $ef ; DVs + db 15, 20, 5, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 40 ; Level + db 0, 0 ; Status + bigdw 142 ; HP + bigdw 142 ; Max HP + bigdw 115 ; Atk + bigdw 113 ; Def + bigdw 106 ; Spd + bigdw 115 ; SAtk + bigdw 115 ; SDef + db "KINGUDORA@@" + + + db SNORLAX + db QUICK_CLAW + db ATTRACT, BODY_SLAM, PSYCH_UP, EARTHQUAKE + dw 0 ; OT ID + dt 64000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $ed, $dd ; DVs + db 15, 15, 10, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 40 ; Level + db 0, 0 ; Status + bigdw 205 ; HP + bigdw 205 ; Max HP + bigdw 126 ; Atk + bigdw 89 ; Def + bigdw 61 ; Spd + bigdw 89 ; SAtk + bigdw 125 ; SDef + db "KABIGON@@@@" + + + db LAPRAS + db LEFTOVERS + db THUNDERBOLT, ICE_BEAM, CONFUSE_RAY, SURF + dw 0 ; OT ID + dt 64000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $fd, $eb ; DVs + db 15, 10, 10, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 40 ; Level + db 0, 0 ; Status + bigdw 186 ; HP + bigdw 186 ; Max HP + bigdw 107 ; Atk + bigdw 101 ; Def + bigdw 86 ; Spd + bigdw 103 ; SAtk + bigdw 111 ; SDef + db "RAPURASU@@@" + + + db STEELIX + db GOLD_BERRY + db SANDSTORM, IRON_TAIL, EARTHQUAKE, TOXIC + dw 0 ; OT ID + dt 64000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $ef, $db ; DVs + db 10, 15, 10, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 40 ; Level + db 0, 0 ; Status + bigdw 137 ; HP + bigdw 137 ; Max HP + bigdw 106 ; Atk + bigdw 199 ; Def + bigdw 61 ; Spd + bigdw 79 ; SAtk + bigdw 87 ; SDef + db "HAGANE-RU@@" + + + db ALAKAZAM + db KINGS_ROCK + db PSYCHIC_M, THUNDERPUNCH, RECOVER, FIRE_PUNCH + dw 0 ; OT ID + dt 64000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 45000 + bigdw 50000 + bigdw 55000 + bigdw 50000 + db $dd, $ef ; DVs + db 10, 15, 20, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 40 ; Level + db 0, 0 ; Status + bigdw 126 ; HP + bigdw 126 ; Max HP + bigdw 76 ; Atk + bigdw 73 ; Def + bigdw 135 ; Spd + bigdw 147 ; SAtk + bigdw 107 ; SDef + db "HU-DEiN@@@@" + + + db STARMIE + db LEFTOVERS + db BLIZZARD, THUNDERBOLT, SURF, PSYCHIC_M + dw 0 ; OT ID + dt 64000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 45000 + bigdw 50000 + bigdw 45000 + db $fd, $be ; DVs + db 5, 15, 15, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 40 ; Level + db 0, 0 ; Status + bigdw 131 ; HP + bigdw 131 ; Max HP + bigdw 99 ; Atk + bigdw 104 ; Def + bigdw 127 ; Spd + bigdw 117 ; SAtk + bigdw 105 ; SDef + db "SUTA-MI-@@@" + + + db WOBBUFFET + db GOLD_BERRY + db COUNTER, MIRROR_COAT, SAFEGUARD, DESTINY_BOND + dw 0 ; OT ID + dt 64000 ; Exp + ; Stat exp + bigdw 45000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $bf, $e7 ; DVs + db 20, 20, 25, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 40 ; Level + db 0, 0 ; Status + bigdw 233 ; HP + bigdw 233 ; Max HP + bigdw 62 ; Atk + bigdw 85 ; Def + bigdw 64 ; Spd + bigdw 59 ; SAtk + bigdw 79 ; SDef + db "SO-NANSU@@@" + + + db GOLEM + db FOCUS_BAND + db EXPLOSION, EARTHQUAKE, MEGA_PUNCH, ROCK_SLIDE + dw 0 ; OT ID + dt 64000 ; Exp + ; Stat exp + bigdw 45000 + bigdw 50000 + bigdw 40000 + bigdw 50000 + bigdw 45000 + db $dd, $ed ; DVs + db 5, 10, 20, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 40 ; Level + db 0, 0 ; Status + bigdw 145 ; HP + bigdw 145 ; Max HP + bigdw 125 ; Atk + bigdw 139 ; Def + bigdw 74 ; Spd + bigdw 80 ; SAtk + bigdw 88 ; SDef + db "GORO-NIya@@" + + + db SCIZOR + db SCOPE_LENS + db SLASH, STEEL_WING, PURSUIT, HYPER_BEAM + dw 0 ; OT ID + dt 64000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 40000 + bigdw 50000 + db $bd, $fe ; DVs + db 20, 25, 20, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 40 ; Level + db 0, 0 ; Status + bigdw 139 ; HP + bigdw 139 ; Max HP + bigdw 139 ; Atk + bigdw 117 ; Def + bigdw 89 ; Spd + bigdw 82 ; SAtk + bigdw 102 ; SDef + db "HAtuSAMU@@@" + + + db DUGTRIO + db KINGS_ROCK + db EARTHQUAKE, HYPER_BEAM, SLUDGE_BOMB, MUD_SLAP + dw 0 ; OT ID + dt 64000 ; Exp + ; Stat exp + bigdw 45000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $fe, $bb ; DVs + db 10, 5, 10, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 40 ; Level + db 0, 0 ; Status + bigdw 108 ; HP + bigdw 108 ; Max HP + bigdw 103 ; Atk + bigdw 78 ; Def + bigdw 131 ; Spd + bigdw 75 ; SAtk + bigdw 91 ; SDef + db "DAGUTORIO@@" + + + db SLOWBRO + db MIRACLEBERRY + db SURF, PSYCHIC_M, EARTHQUAKE, BLIZZARD + dw 0 ; OT ID + dt 64000 ; Exp + ; Stat exp + bigdw 45000 + bigdw 50000 + bigdw 45000 + bigdw 50000 + bigdw 50000 + db $bf, $cf ; DVs + db 15, 10, 10, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 40 ; Level + db 0, 0 ; Status + bigdw 157 ; HP + bigdw 157 ; Max HP + bigdw 95 ; Atk + bigdw 126 ; Def + bigdw 60 ; Spd + bigdw 119 ; SAtk + bigdw 103 ; SDef + db "YADORAN@@@@" + + + db PORYGON2 + db NO_ITEM + db CONVERSION2, CONVERSION, PSYBEAM, THIEF + dw 0 ; OT ID + dt 64000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 45000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $bc, $ef ; DVs + db 30, 30, 20, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 40 ; Level + db 0, 0 ; Status + bigdw 147 ; HP + bigdw 147 ; Max HP + bigdw 99 ; Atk + bigdw 108 ; Def + bigdw 86 ; Spd + bigdw 123 ; SAtk + bigdw 115 ; SDef + db "PORIGON2@@@" + + + db ARCANINE + db CHARCOAL + db FLAME_WHEEL, LEER, BODY_SLAM, ROAR + dw 0 ; OT ID + dt 64000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $fe, $bb ; DVs + db 25, 30, 15, 20 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 40 ; Level + db 0, 0 ; Status + bigdw 152 ; HP + bigdw 152 ; Max HP + bigdw 127 ; Atk + bigdw 102 ; Def + bigdw 111 ; Spd + bigdw 115 ; SAtk + bigdw 99 ; SDef + db "UINDEi@@@@@" + + + db FORRETRESS + db LEFTOVERS + db RAPID_SPIN, PROTECT, TOXIC, SANDSTORM + dw 0 ; OT ID + dt 64000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $fa, $7f ; DVs + db 40, 10, 10, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 40 ; Level + db 0, 0 ; Status + bigdw 140 ; HP + bigdw 140 ; Max HP + bigdw 111 ; Atk + bigdw 147 ; Def + bigdw 64 ; Spd + bigdw 87 ; SAtk + bigdw 87 ; SDef + db "HUoRETOSU@@" + + + db OMASTAR + db GOLD_BERRY + db CURSE, WATER_GUN, ANCIENTPOWER, ROCK_SMASH + dw 0 ; OT ID + dt 64000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $ef, $f7 ; DVs + db 10, 25, 5, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 40 ; Level + db 0, 0 ; Status + bigdw 133 ; HP + bigdw 133 ; Max HP + bigdw 86 ; Atk + bigdw 139 ; Def + bigdw 83 ; Spd + bigdw 124 ; SAtk + bigdw 88 ; SDef + db "OMUSUTA-@@@" + + + db CHARIZARD + db KINGS_ROCK + db FIRE_SPIN, DRAGON_RAGE, FLY, SLASH + dw 0 ; OT ID + dt 64000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $fe, $fe ; DVs + db 15, 10, 15, 20 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 40 ; Level + db 0, 0 ; Status + bigdw 142 ; HP + bigdw 142 ; Max HP + bigdw 106 ; Atk + bigdw 100 ; Def + bigdw 119 ; Spd + bigdw 125 ; SAtk + bigdw 106 ; SDef + db "RIZA-DON@@@" + + + db EXEGGUTOR + db BRIGHTPOWDER + db EGG_BOMB, STOMP, PSYCH_UP, CONFUSION + dw 0 ; OT ID + dt 64000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $f7, $e7 ; DVs + db 10, 20, 10, 25 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 40 ; Level + db 0, 0 ; Status + bigdw 158 ; HP + bigdw 158 ; Max HP + bigdw 115 ; Atk + bigdw 100 ; Def + bigdw 82 ; Spd + bigdw 132 ; SAtk + bigdw 84 ; SDef + db "NAtuSI-@@@@" + + + db HYPNO + db BRIGHTPOWDER + db CONFUSION, THUNDERPUNCH, HEADBUTT, DISABLE + dw 0 ; OT ID + dt 64000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $77, $7a ; DVs + db 25, 15, 15, 20 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 40 ; Level + db 0, 0 ; Status + bigdw 146 ; HP + bigdw 146 ; Max HP + bigdw 86 ; Atk + bigdw 83 ; Def + bigdw 81 ; Spd + bigdw 88 ; SAtk + bigdw 122 ; SDef + db "SURI-PA-@@@" + + + db MUK + db QUICK_CLAW + db SCREECH, TOXIC, SLUDGE, HARDEN + dw 0 ; OT ID + dt 64000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $75, $6b ; DVs + db 40, 10, 20, 30 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 40 ; Level + db 0, 0 ; Status + bigdw 161 ; HP + bigdw 161 ; Max HP + bigdw 111 ; Atk + bigdw 86 ; Def + bigdw 67 ; Spd + bigdw 83 ; SAtk + bigdw 111 ; SDef + db "BETOBETON@@" + + + db ELECTABUZZ + db KINGS_ROCK + db LIGHT_SCREEN, THUNDERPUNCH, SWIFT, SNORE + dw 0 ; OT ID + dt 64000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $65, $77 ; DVs + db 30, 15, 20, 15 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 40 ; Level + db 0, 0 ; Status + bigdw 124 ; HP + bigdw 124 ; Max HP + bigdw 93 ; Atk + bigdw 71 ; Def + bigdw 111 ; Spd + bigdw 103 ; SAtk + bigdw 95 ; SDef + db "EREBU-@@@@@" + + + + +BattleTowerMons5: + + db KINGDRA + db GOLD_BERRY + db SURF, HYPER_BEAM, BLIZZARD, DRAGONBREATH + dw 0 ; OT ID + dt 125000 ; Exp + ; Stat exp + bigdw 55000 + bigdw 55000 + bigdw 60000 + bigdw 50000 + bigdw 55000 + db $dd, $ff ; DVs + db 15, 5, 5, 20 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 50 ; Level + db 0, 0 ; Status + bigdw 179 ; HP + bigdw 179 ; Max HP + bigdw 142 ; Atk + bigdw 143 ; Def + bigdw 132 ; Spd + bigdw 144 ; SAtk + bigdw 144 ; SDef + db "KINGUDORA@@" + + + db HOUNDOOM + db MIRACLEBERRY + db REST, CRUNCH, DREAM_EATER, FLAMETHROWER + dw 0 ; OT ID + dt 125000 ; Exp + ; Stat exp + bigdw 55000 + bigdw 50000 + bigdw 60000 + bigdw 60000 + bigdw 60000 + db $dd, $fc ; DVs + db 10, 15, 15, 15 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 50 ; Level + db 0, 0 ; Status + bigdw 178 ; HP + bigdw 178 ; Max HP + bigdw 135 ; Atk + bigdw 98 ; Def + bigdw 145 ; Spd + bigdw 157 ; SAtk + bigdw 127 ; SDef + db "HERUGA-@@@@" + + + db SHUCKLE + db LEFTOVERS + db SANDSTORM, REST, TOXIC, WRAP + dw 0 ; OT ID + dt 125000 ; Exp + ; Stat exp + bigdw 60000 + bigdw 60000 + bigdw 60000 + bigdw 60000 + bigdw 55000 + db $fd, $cf ; DVs + db 10, 10, 10, 20 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 50 ; Level + db 0, 0 ; Status + bigdw 123 ; HP + bigdw 123 ; Max HP + bigdw 60 ; Atk + bigdw 278 ; Def + bigdw 52 ; Spd + bigdw 59 ; SAtk + bigdw 279 ; SDef + db "TUBOTUBO@@@" + + + db SNORLAX + db LEFTOVERS + db HYPER_BEAM, EARTHQUAKE, SURF, PSYCH_UP + dw 0 ; OT ID + dt 125000 ; Exp + ; Stat exp + bigdw 60000 + bigdw 55000 + bigdw 55000 + bigdw 60000 + bigdw 55000 + db $fd, $ef ; DVs + db 5, 10, 15, 10 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 50 ; Level + db 0, 0 ; Status + bigdw 263 ; HP + bigdw 263 ; Max HP + bigdw 159 ; Atk + bigdw 112 ; Def + bigdw 79 ; Spd + bigdw 114 ; SAtk + bigdw 159 ; SDef + db "KABIGON@@@@" + + + db LAPRAS + db GOLD_BERRY + db THUNDERBOLT, SURF, CONFUSE_RAY, BLIZZARD + dw 0 ; OT ID + dt 125000 ; Exp + ; Stat exp + bigdw 55000 + bigdw 60000 + bigdw 60000 + bigdw 55000 + bigdw 60000 + db $dd, $dd ; DVs + db 15, 15, 10, 5 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 50 ; Level + db 0, 0 ; Status + bigdw 234 ; HP + bigdw 234 ; Max HP + bigdw 133 ; Atk + bigdw 128 ; Def + bigdw 107 ; Spd + bigdw 133 ; SAtk + bigdw 143 ; SDef + db "RAPURASU@@@" + + + db JOLTEON + db KINGS_ROCK + db THUNDERBOLT, THUNDER_WAVE, SHADOW_BALL, HIDDEN_POWER + dw 0 ; OT ID + dt 125000 ; Exp + ; Stat exp + bigdw 55000 + bigdw 60000 + bigdw 57000 + bigdw 55000 + bigdw 55000 + db $ed, $ff ; DVs + db 15, 20, 15, 15 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 50 ; Level + db 0, 0 ; Status + bigdw 161 ; HP + bigdw 161 ; Max HP + bigdw 114 ; Atk + bigdw 107 ; Def + bigdw 179 ; Spd + bigdw 159 ; SAtk + bigdw 144 ; SDef + db "SANDA-SU@@@" + + + db SCIZOR + db LEFTOVERS + db HYPER_BEAM, SLASH, AGILITY, METAL_CLAW + dw 0 ; OT ID + dt 125000 ; Exp + ; Stat exp + bigdw 45000 + bigdw 50000 + bigdw 40000 + bigdw 50000 + bigdw 45000 + db $df, $ed ; DVs + db 5, 20, 30, 35 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 50 ; Level + db 0, 0 ; Status + bigdw 169 ; HP + bigdw 169 ; Max HP + bigdw 175 ; Atk + bigdw 145 ; Def + bigdw 111 ; Spd + bigdw 99 ; SAtk + bigdw 124 ; SDef + db "HAtuSAMU@@@" + + + db SLOWKING + db MINT_BERRY + db REST, SURF, PSYCHIC_M, AMNESIA + dw 0 ; OT ID + dt 125000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 40000 + bigdw 45000 + bigdw 50000 + bigdw 50000 + db $df, $de ; DVs + db 10, 15, 10, 20 ; PP + db 15 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 50 ; Level + db 0, 0 ; Status + bigdw 196 ; HP + bigdw 196 ; Max HP + bigdw 118 ; Atk + bigdw 126 ; Def + bigdw 75 ; Spd + bigdw 146 ; SAtk + bigdw 156 ; SDef + db "YADOKINGU@@" + + + db MACHAMP + db GOLD_BERRY + db CROSS_CHOP, EARTHQUAKE, FIRE_BLAST, THUNDERPUNCH + dw 0 ; OT ID + dt 125000 ; Exp + ; Stat exp + bigdw 40000 + bigdw 45000 + bigdw 50000 + bigdw 40000 + bigdw 44000 + db $ff, $ec ; DVs + db 5, 10, 5, 15 ; PP + db 13 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 50 ; Level + db 0, 0 ; Status + bigdw 187 ; HP + bigdw 187 ; Max HP + bigdw 176 ; Atk + bigdw 127 ; Def + bigdw 99 ; Spd + bigdw 108 ; SAtk + bigdw 128 ; SDef + db "KAIRIKI-@@@" + + + db STARMIE + db SCOPE_LENS + db THUNDER_WAVE, RECOVER, THUNDERBOLT, SURF + dw 0 ; OT ID + dt 125000 ; Exp + ; Stat exp + bigdw 45000 + bigdw 44000 + bigdw 40000 + bigdw 45000 + bigdw 40000 + db $ff, $ff ; DVs + db 20, 20, 15, 15 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 50 ; Level + db 0, 0 ; Status + bigdw 161 ; HP + bigdw 161 ; Max HP + bigdw 121 ; Atk + bigdw 130 ; Def + bigdw 161 ; Spd + bigdw 145 ; SAtk + bigdw 130 ; SDef + db "SUTA-MI-@@@" + + + db DUGTRIO + db KINGS_ROCK + db EARTHQUAKE, SLASH, HYPER_BEAM, SLUDGE_BOMB + dw 0 ; OT ID + dt 125000 ; Exp + ; Stat exp + bigdw 45000 + bigdw 40000 + bigdw 50000 + bigdw 45000 + bigdw 50000 + db $f7, $fe ; DVs + db 10, 20, 5, 10 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 50 ; Level + db 0, 0 ; Status + bigdw 135 ; HP + bigdw 135 ; Max HP + bigdw 125 ; Atk + bigdw 89 ; Def + bigdw 166 ; Spd + bigdw 96 ; SAtk + bigdw 116 ; SDef + db "DAGUTORIO@@" + + + db ELECTRODE + db MIRACLEBERRY + db THUNDERBOLT, EXPLOSION, MIRROR_COAT, REST + dw 0 ; OT ID + dt 125000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 45000 + bigdw 54000 + bigdw 40000 + bigdw 50000 + db $7d, $fe ; DVs + db 15, 5, 20, 10 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 50 ; Level + db 0, 0 ; Status + bigdw 161 ; HP + bigdw 161 ; Max HP + bigdw 88 ; Atk + bigdw 117 ; Def + bigdw 185 ; Spd + bigdw 126 ; SAtk + bigdw 126 ; SDef + db "MARUMAIN@@@" + + + db AERODACTYL + db KINGS_ROCK + db HYPER_BEAM, EARTHQUAKE, FIRE_BLAST, IRON_TAIL + dw 0 ; OT ID + dt 125000 ; Exp + ; Stat exp + bigdw 45000 + bigdw 50000 + bigdw 50000 + bigdw 45000 + bigdw 45000 + db $fd, $dd ; DVs + db 5, 10, 5, 15 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 50 ; Level + db 0, 0 ; Status + bigdw 181 ; HP + bigdw 181 ; Max HP + bigdw 152 ; Atk + bigdw 110 ; Def + bigdw 174 ; Spd + bigdw 104 ; SAtk + bigdw 119 ; SDef + db "PUTERA@@@@@" + + + db CROBAT + db LEFTOVERS + db CONFUSE_RAY, ATTRACT, HYPER_BEAM, TOXIC + dw 0 ; OT ID + dt 125000 ; Exp + ; Stat exp + bigdw 45000 + bigdw 40000 + bigdw 50000 + bigdw 40000 + bigdw 50000 + db $ef, $ff ; DVs + db 10, 15, 5, 10 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 50 ; Level + db 0, 0 ; Status + bigdw 178 ; HP + bigdw 178 ; Max HP + bigdw 134 ; Atk + bigdw 127 ; Def + bigdw 175 ; Spd + bigdw 117 ; SAtk + bigdw 127 ; SDef + db "KUROBAtuTO@" + + + db ZAPDOS + db MIRACLEBERRY + db DRILL_PECK, THUNDERBOLT, THUNDER_WAVE, HYPER_BEAM + dw 0 ; OT ID + dt 125000 ; Exp + ; Stat exp + bigdw 45000 + bigdw 50000 + bigdw 45000 + bigdw 40000 + bigdw 50000 + db $fd, $de ; DVs + db 20, 15, 20, 5 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 50 ; Level + db 0, 0 ; Status + bigdw 190 ; HP + bigdw 190 ; Max HP + bigdw 137 ; Atk + bigdw 129 ; Def + bigdw 143 ; Spd + bigdw 171 ; SAtk + bigdw 136 ; SDef + db "SANDA-@@@@@" + + + db SKARMORY + db GOLD_BERRY + db SANDSTORM, FLY, STEEL_WING, TOXIC + dw 0 ; OT ID + dt 125000 ; Exp + ; Stat exp + bigdw 45000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 40000 + db $d7, $ed ; DVs + db 10, 15, 25, 10 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 50 ; Level + db 0, 0 ; Status + bigdw 164 ; HP + bigdw 164 ; Max HP + bigdw 125 ; Atk + bigdw 179 ; Def + bigdw 116 ; Spd + bigdw 83 ; SAtk + bigdw 113 ; SDef + db "EA-MUDO@@@@" + + + db FORRETRESS + db LEFTOVERS + db SANDSTORM, TOXIC, EXPLOSION, SWAGGER + dw 0 ; OT ID + dt 125000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 55000 + bigdw 45000 + bigdw 40000 + db $cf, $dd ; DVs + db 10, 10, 5, 15 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 50 ; Level + db 0, 0 ; Status + bigdw 169 ; HP + bigdw 169 ; Max HP + bigdw 134 ; Atk + bigdw 189 ; Def + bigdw 84 ; Spd + bigdw 103 ; SAtk + bigdw 103 ; SDef + db "HUoRETOSU@@" + + + db STEELIX + db MIRACLEBERRY + db SANDSTORM, IRON_TAIL, REST, EARTHQUAKE + dw 0 ; OT ID + dt 125000 ; Exp + ; Stat exp + bigdw 45000 + bigdw 50000 + bigdw 50000 + bigdw 40000 + bigdw 45000 + db $dd, $dd ; DVs + db 10, 15, 10, 10 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 50 ; Level + db 0, 0 ; Status + bigdw 176 ; HP + bigdw 176 ; Max HP + bigdw 130 ; Atk + bigdw 245 ; Def + bigdw 73 ; Spd + bigdw 99 ; SAtk + bigdw 109 ; SDef + db "HAGANE-RU@@" + + + db GIRAFARIG + db SCOPE_LENS + db DREAM_EATER, CRUNCH, PSYCHIC_M, EARTHQUAKE + dw 0 ; OT ID + dt 125000 ; Exp + ; Stat exp + bigdw 40000 + bigdw 40000 + bigdw 40000 + bigdw 40000 + bigdw 40000 + db $45, $56 ; DVs + db 15, 15, 10, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 50 ; Level + db 0, 0 ; Status + bigdw 161 ; HP + bigdw 161 ; Max HP + bigdw 114 ; Atk + bigdw 100 ; Def + bigdw 120 ; Spd + bigdw 126 ; SAtk + bigdw 101 ; SDef + db "KIRINRIKI@@" + + + db GYARADOS + db MIRACLEBERRY + db HYPER_BEAM, SURF, RAIN_DANCE, ZAP_CANNON + dw 0 ; OT ID + dt 125000 ; Exp + ; Stat exp + bigdw 40000 + bigdw 40000 + bigdw 40000 + bigdw 40000 + bigdw 40000 + db $75, $65 ; DVs + db 5, 15, 5, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 50 ; Level + db 0, 0 ; Status + bigdw 193 ; HP + bigdw 193 ; Max HP + bigdw 162 ; Atk + bigdw 114 ; Def + bigdw 117 ; Spd + bigdw 95 ; SAtk + bigdw 135 ; SDef + db "GIyaRADOSU@" + + + db ARTICUNO + db GOLD_BERRY + db BLIZZARD, HYPER_BEAM, ROAR, ICY_WIND + dw 0 ; OT ID + dt 125000 ; Exp + ; Stat exp + bigdw 40000 + bigdw 40000 + bigdw 40000 + bigdw 40000 + bigdw 40000 + db $45, $56 ; DVs + db 5, 5, 20, 15 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 50 ; Level + db 0, 0 ; Status + bigdw 181 ; HP + bigdw 181 ; Max HP + bigdw 119 ; Atk + bigdw 135 ; Def + bigdw 120 ; Spd + bigdw 131 ; SAtk + bigdw 161 ; SDef + db "HURI-ZA-@@@" + + + + +BattleTowerMons6: + + db KINGDRA + db LEFTOVERS + db DRAGONBREATH, SURF, HYPER_BEAM, BLIZZARD + dw 0 ; OT ID + dt 216000 ; Exp + ; Stat exp + bigdw 55000 + bigdw 55000 + bigdw 50000 + bigdw 60000 + bigdw 60000 + db $dd, $fe ; DVs + db 20, 15, 5, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 60 ; Level + db 0, 0 ; Status + bigdw 211 ; HP + bigdw 211 ; Max HP + bigdw 169 ; Atk + bigdw 167 ; Def + bigdw 161 ; Spd + bigdw 172 ; SAtk + bigdw 172 ; SDef + db "KINGUDORA@@" + + + db TYRANITAR + db GOLD_BERRY + db CRUNCH, EARTHQUAKE, ROCK_SLIDE, HYPER_BEAM + dw 0 ; OT ID + dt 216000 ; Exp + ; Stat exp + bigdw 55000 + bigdw 60000 + bigdw 55000 + bigdw 60000 + bigdw 55000 + db $fd, $ed ; DVs + db 15, 10, 10, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 60 ; Level + db 0, 0 ; Status + bigdw 240 ; HP + bigdw 240 ; Max HP + bigdw 220 ; Atk + bigdw 187 ; Def + bigdw 131 ; Spd + bigdw 169 ; SAtk + bigdw 175 ; SDef + db "BANGIRASU@@" + + + db HOUNDOOM + db MIRACLEBERRY + db FLAMETHROWER, CRUNCH, DREAM_EATER, REST + dw 0 ; OT ID + dt 216000 ; Exp + ; Stat exp + bigdw 60000 + bigdw 55000 + bigdw 55000 + bigdw 60000 + bigdw 55000 + db $fb, $ef ; DVs + db 15, 15, 15, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 60 ; Level + db 0, 0 ; Status + bigdw 212 ; HP + bigdw 212 ; Max HP + bigdw 165 ; Atk + bigdw 113 ; Def + bigdw 172 ; Spd + bigdw 189 ; SAtk + bigdw 153 ; SDef + db "HERUGA-@@@@" + + + db PORYGON2 + db LEFTOVERS + db BLIZZARD, RECOVER, TOXIC, PSYCHIC_M + dw 0 ; OT ID + dt 216000 ; Exp + ; Stat exp + bigdw 55000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 55000 + db $dd, $de ; DVs + db 5, 20, 10, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 60 ; Level + db 0, 0 ; Status + bigdw 223 ; HP + bigdw 223 ; Max HP + bigdw 149 ; Atk + bigdw 161 ; Def + bigdw 125 ; Spd + bigdw 182 ; SAtk + bigdw 170 ; SDef + db "PORIGON2@@@" + + + db MACHAMP + db QUICK_CLAW + db FIRE_PUNCH, CROSS_CHOP, THUNDERPUNCH, EARTHQUAKE + dw 0 ; OT ID + dt 216000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 45000 + bigdw 50000 + bigdw 50000 + db $fd, $ef ; DVs + db 15, 5, 15, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 60 ; Level + db 0, 0 ; Status + bigdw 226 ; HP + bigdw 226 ; Max HP + bigdw 212 ; Atk + bigdw 148 ; Def + bigdw 120 ; Spd + bigdw 134 ; SAtk + bigdw 158 ; SDef + db "KAIRIKI-@@@" + + + db ZAPDOS + db MINT_BERRY + db REST, DRILL_PECK, THUNDERBOLT, THUNDER_WAVE + dw 0 ; OT ID + dt 216000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 45000 + bigdw 50000 + bigdw 55000 + bigdw 50000 + db $dd, $fd ; DVs + db 10, 20, 15, 20 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 60 ; Level + db 0, 0 ; Status + bigdw 229 ; HP + bigdw 229 ; Max HP + bigdw 160 ; Atk + bigdw 155 ; Def + bigdw 177 ; Spd + bigdw 203 ; SAtk + bigdw 161 ; SDef + db "SANDA-@@@@@" + + + db WOBBUFFET + db GOLD_BERRY + db COUNTER, MIRROR_COAT, DESTINY_BOND, SAFEGUARD + dw 0 ; OT ID + dt 216000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 45000 + bigdw 50000 + bigdw 45000 + db $fd, $ed ; DVs + db 20, 20, 5, 25 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 60 ; Level + db 0, 0 ; Status + bigdw 346 ; HP + bigdw 346 ; Max HP + bigdw 95 ; Atk + bigdw 122 ; Def + bigdw 94 ; Spd + bigdw 92 ; SAtk + bigdw 122 ; SDef + db "SO-NANSU@@@" + + + db AERODACTYL + db LEFTOVERS + db HYPER_BEAM, SUPERSONIC, EARTHQUAKE, BITE + dw 0 ; OT ID + dt 216000 ; Exp + ; Stat exp + bigdw 45000 + bigdw 50000 + bigdw 50000 + bigdw 45000 + bigdw 45000 + db $fd, $dd ; DVs + db 5, 20, 10, 25 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 60 ; Level + db 0, 0 ; Status + bigdw 215 ; HP + bigdw 215 ; Max HP + bigdw 182 ; Atk + bigdw 131 ; Def + bigdw 208 ; Spd + bigdw 124 ; SAtk + bigdw 142 ; SDef + db "PUTERA@@@@@" + + + db DRAGONITE + db MIRACLEBERRY + db HYPER_BEAM, ICY_WIND, THUNDERBOLT, SURF + dw 0 ; OT ID + dt 216000 ; Exp + ; Stat exp + bigdw 45000 + bigdw 50000 + bigdw 40000 + bigdw 50000 + bigdw 45000 + db $dd, $fd ; DVs + db 5, 15, 15, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 60 ; Level + db 0, 0 ; Status + bigdw 229 ; HP + bigdw 229 ; Max HP + bigdw 214 ; Atk + bigdw 164 ; Def + bigdw 152 ; Spd + bigdw 172 ; SAtk + bigdw 172 ; SDef + db "KAIRIyu-@@@" + + + db UMBREON + db GOLD_BERRY + db MUD_SLAP, MOONLIGHT, PSYCHIC_M, FAINT_ATTACK + dw 0 ; OT ID + dt 216000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $fd, $ef ; DVs + db 10, 5, 10, 20 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 60 ; Level + db 0, 0 ; Status + bigdw 232 ; HP + bigdw 232 ; Max HP + bigdw 134 ; Atk + bigdw 185 ; Def + bigdw 132 ; Spd + bigdw 128 ; SAtk + bigdw 212 ; SDef + db "BURAtuKI-@@" + + + db ARCANINE + db CHARCOAL + db FLAMETHROWER, CRUNCH, EXTREMESPEED, IRON_TAIL + dw 0 ; OT ID + dt 216000 ; Exp + ; Stat exp + bigdw 55000 + bigdw 50000 + bigdw 40000 + bigdw 55000 + bigdw 50000 + db $fd, $ed ; DVs + db 15, 15, 5, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 60 ; Level + db 0, 0 ; Status + bigdw 228 ; HP + bigdw 228 ; Max HP + bigdw 188 ; Atk + bigdw 146 ; Def + bigdw 170 ; Spd + bigdw 173 ; SAtk + bigdw 149 ; SDef + db "UINDEi@@@@@" + + + db SKARMORY + db MIRACLEBERRY + db STEEL_WING, FLY, TOXIC, PROTECT + dw 0 ; OT ID + dt 216000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 45000 + bigdw 50000 + bigdw 50000 + db $fb, $eb ; DVs + db 25, 15, 10, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 60 ; Level + db 0, 0 ; Status + bigdw 196 ; HP + bigdw 196 ; Max HP + bigdw 152 ; Atk + bigdw 218 ; Def + bigdw 138 ; Spd + bigdw 99 ; SAtk + bigdw 135 ; SDef + db "EA-MUDO@@@@" + + + db BLISSEY + db LEFTOVERS + db SOFTBOILED, TOXIC, PROTECT, PSYCHIC_M + dw 0 ; OT ID + dt 216000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 45000 + bigdw 50000 + bigdw 45000 + bigdw 50000 + db $fb, $cd ; DVs + db 10, 10, 10, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 60 ; Level + db 0, 0 ; Status + bigdw 424 ; HP + bigdw 424 ; Max HP + bigdw 66 ; Atk + bigdw 63 ; Def + bigdw 117 ; Spd + bigdw 143 ; SAtk + bigdw 215 ; SDef + db "HAPINASU@@@" + + + db SNORLAX + db PINK_BOW + db ROCK_SLIDE, SURF, BODY_SLAM, EARTHQUAKE + dw 0 ; OT ID + dt 216000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 45000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $fa, $fc ; DVs + db 10, 15, 15, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 60 ; Level + db 0, 0 ; Status + bigdw 307 ; HP + bigdw 307 ; Max HP + bigdw 186 ; Atk + bigdw 128 ; Def + bigdw 92 ; Spd + bigdw 130 ; SAtk + bigdw 184 ; SDef + db "KABIGON@@@@" + + + db HERACROSS + db FOCUS_BAND + db REVERSAL, MEGAHORN, EARTHQUAKE, COUNTER + dw 0 ; OT ID + dt 216000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 40000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $df, $ed ; DVs + db 15, 10, 10, 20 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 60 ; Level + db 0, 0 ; Status + bigdw 214 ; HP + bigdw 214 ; Max HP + bigdw 200 ; Atk + bigdw 146 ; Def + bigdw 156 ; Spd + bigdw 101 ; SAtk + bigdw 167 ; SDef + db "HERAKUROSU@" + + + db JYNX + db MIRACLEBERRY + db BLIZZARD, PSYCHIC_M, SHADOW_BALL, ICY_WIND + dw 0 ; OT ID + dt 216000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $ff, $eb ; DVs + db 5, 10, 15, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 60 ; Level + db 0, 0 ; Status + bigdw 196 ; HP + bigdw 196 ; Max HP + bigdw 116 ; Atk + bigdw 98 ; Def + bigdw 168 ; Spd + bigdw 189 ; SAtk + bigdw 165 ; SDef + db "RU-ZIyuRA@@" + + + db BLASTOISE + db GOLD_BERRY + db SURF, EARTHQUAKE, RAPID_SPIN, BLIZZARD + dw 0 ; OT ID + dt 216000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $fe, $fe ; DVs + db 15, 10, 40, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 60 ; Level + db 0, 0 ; Status + bigdw 209 ; HP + bigdw 209 ; Max HP + bigdw 155 ; Atk + bigdw 174 ; Def + bigdw 149 ; Spd + bigdw 156 ; SAtk + bigdw 180 ; SDef + db "KAMEtuKUSU@" + + + db RHYDON + db QUICK_CLAW + db EARTHQUAKE, SURF, IRON_TAIL, ROCK_SLIDE + dw 0 ; OT ID + dt 216000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $fb, $fa ; DVs + db 10, 15, 15, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 60 ; Level + db 0, 0 ; Status + bigdw 245 ; HP + bigdw 245 ; Max HP + bigdw 212 ; Atk + bigdw 195 ; Def + bigdw 104 ; Spd + bigdw 104 ; SAtk + bigdw 104 ; SDef + db "SAIDON@@@@@" + + + db SANDSLASH + db SCOPE_LENS + db EARTHQUAKE, SLASH, HYPER_BEAM, SNORE + dw 0 ; OT ID + dt 216000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $b7, $67 ; DVs + db 10, 20, 5, 15 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 60 ; Level + db 0, 0 ; Status + bigdw 201 ; HP + bigdw 201 ; Max HP + bigdw 164 ; Atk + bigdw 171 ; Def + bigdw 116 ; Spd + bigdw 93 ; SAtk + bigdw 105 ; SDef + db "SANDOPAN@@@" + + + db PARASECT + db GOLD_BERRY + db SPORE, GIGA_DRAIN, HYPER_BEAM, SLUDGE_BOMB + dw 0 ; OT ID + dt 216000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $66, $5f ; DVs + db 15, 5, 5, 10 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 60 ; Level + db 0, 0 ; Status + bigdw 171 ; HP + bigdw 171 ; Max HP + bigdw 152 ; Atk + bigdw 134 ; Def + bigdw 72 ; Spd + bigdw 120 ; SAtk + bigdw 144 ; SDef + db "PARASEKUTO@" + + + db GOLEM + db BRIGHTPOWDER + db EXPLOSION, EARTHQUAKE, FIRE_PUNCH, FRUSTRATION + dw 0 ; OT ID + dt 216000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $76, $57 ; DVs + db 5, 10, 15, 20 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 60 ; Level + db 0, 0 ; Status + bigdw 205 ; HP + bigdw 205 ; Max HP + bigdw 171 ; Atk + bigdw 194 ; Def + bigdw 90 ; Spd + bigdw 105 ; SAtk + bigdw 117 ; SDef + db "GORO-NIya@@" + + + + +BattleTowerMons7: + + db JOLTEON + db MIRACLEBERRY + db THUNDERBOLT, HYPER_BEAM, SHADOW_BALL, ROAR + dw 0 ; OT ID + dt 343000 ; Exp + ; Stat exp + bigdw 60000 + bigdw 56000 + bigdw 55000 + bigdw 50000 + bigdw 60000 + db $fb, $ef ; DVs + db 15, 5, 15, 20 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 70 ; Level + db 0, 0 ; Status + bigdw 231 ; HP + bigdw 231 ; Max HP + bigdw 158 ; Atk + bigdw 145 ; Def + bigdw 245 ; Spd + bigdw 222 ; SAtk + bigdw 201 ; SDef + db "SANDA-SU@@@" + + + db VAPOREON + db LEFTOVERS + db BLIZZARD, SHADOW_BALL, SURF, MUD_SLAP + dw 0 ; OT ID + dt 343000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 60000 + bigdw 60000 + bigdw 50000 + db $bf, $ef ; DVs + db 5, 15, 15, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 70 ; Level + db 0, 0 ; Status + bigdw 318 ; HP + bigdw 318 ; Max HP + bigdw 149 ; Atk + bigdw 152 ; Def + bigdw 158 ; Spd + bigdw 218 ; SAtk + bigdw 197 ; SDef + db "SIyaWA-ZU@@" + + + db UMBREON + db GOLD_BERRY + db FAINT_ATTACK, MOONLIGHT, PSYCH_UP, TOXIC + dw 0 ; OT ID + dt 343000 ; Exp + ; Stat exp + bigdw 54000 + bigdw 60000 + bigdw 55000 + bigdw 50000 + bigdw 58000 + db $dd, $dd ; DVs + db 20, 5, 10, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 70 ; Level + db 0, 0 ; Status + bigdw 274 ; HP + bigdw 274 ; Max HP + bigdw 156 ; Atk + bigdw 217 ; Def + bigdw 152 ; Spd + bigdw 149 ; SAtk + bigdw 247 ; SDef + db "BURAtuKI-@@" + + + db BLISSEY + db GOLD_BERRY + db COUNTER, SOFTBOILED, SHADOW_BALL, THUNDERBOLT + dw 0 ; OT ID + dt 343000 ; Exp + ; Stat exp + bigdw 55000 + bigdw 55000 + bigdw 55000 + bigdw 58000 + bigdw 50000 + db $df, $ed ; DVs + db 20, 10, 15, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 70 ; Level + db 0, 0 ; Status + bigdw 495 ; HP + bigdw 495 ; Max HP + bigdw 77 ; Atk + bigdw 80 ; Def + bigdw 143 ; Spd + bigdw 166 ; SAtk + bigdw 250 ; SDef + db "HAPINASU@@@" + + + db SNORLAX + db LEFTOVERS + db ROCK_SLIDE, EARTHQUAKE, BLIZZARD, SHADOW_BALL + dw 0 ; OT ID + dt 343000 ; Exp + ; Stat exp + bigdw 55000 + bigdw 55000 + bigdw 60000 + bigdw 55000 + bigdw 50000 + db $dd, $dd ; DVs + db 10, 10, 5, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 70 ; Level + db 0, 0 ; Status + bigdw 365 ; HP + bigdw 365 ; Max HP + bigdw 217 ; Atk + bigdw 156 ; Def + bigdw 105 ; Spd + bigdw 152 ; SAtk + bigdw 215 ; SDef + db "KABIGON@@@@" + + + db HOUNDOOM + db KINGS_ROCK + db CRUNCH, FLAMETHROWER, FAINT_ATTACK, ROAR + dw 0 ; OT ID + dt 343000 ; Exp + ; Stat exp + bigdw 58000 + bigdw 50000 + bigdw 55000 + bigdw 60000 + bigdw 55000 + db $dd, $cd ; DVs + db 15, 15, 20, 20 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 70 ; Level + db 0, 0 ; Status + bigdw 245 ; HP + bigdw 245 ; Max HP + bigdw 187 ; Atk + bigdw 133 ; Def + bigdw 197 ; Spd + bigdw 217 ; SAtk + bigdw 175 ; SDef + db "HERUGA-@@@@" + + + db TYRANITAR + db LEFTOVERS + db EARTHQUAKE, CRUNCH, ROCK_SLIDE, HYPER_BEAM + dw 0 ; OT ID + dt 343000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 45000 + bigdw 45000 + bigdw 50000 + bigdw 45000 + db $db, $df ; DVs + db 10, 15, 10, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 70 ; Level + db 0, 0 ; Status + bigdw 279 ; HP + bigdw 279 ; Max HP + bigdw 247 ; Atk + bigdw 211 ; Def + bigdw 147 ; Spd + bigdw 196 ; SAtk + bigdw 203 ; SDef + db "BANGIRASU@@" + + + db ZAPDOS + db GOLD_BERRY + db THUNDERBOLT, DRILL_PECK, THUNDER_WAVE, HYPER_BEAM + dw 0 ; OT ID + dt 343000 ; Exp + ; Stat exp + bigdw 45000 + bigdw 50000 + bigdw 50000 + bigdw 45000 + bigdw 45000 + db $db, $df ; DVs + db 15, 20, 20, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 70 ; Level + db 0, 0 ; Status + bigdw 264 ; HP + bigdw 264 ; Max HP + bigdw 187 ; Atk + bigdw 177 ; Def + bigdw 200 ; Spd + bigdw 238 ; SAtk + bigdw 189 ; SDef + db "SANDA-@@@@@" + + + db EXEGGUTOR + db MIRACLEBERRY + db REST, EXPLOSION, PSYCHIC_M, GIGA_DRAIN + dw 0 ; OT ID + dt 343000 ; Exp + ; Stat exp + bigdw 45000 + bigdw 50000 + bigdw 40000 + bigdw 50000 + bigdw 45000 + db $dd, $ed ; DVs + db 10, 5, 10, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 70 ; Level + db 0, 0 ; Status + bigdw 268 ; HP + bigdw 268 ; Max HP + bigdw 194 ; Atk + bigdw 177 ; Def + bigdw 140 ; Spd + bigdw 235 ; SAtk + bigdw 151 ; SDef + db "NAtuSI-@@@@" + + + db UMBREON + db GOLD_BERRY + db MOONLIGHT, FAINT_ATTACK, PSYCHIC_M, SHADOW_BALL + dw 0 ; OT ID + dt 343000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 45000 + bigdw 45000 + bigdw 50000 + db $fd, $eb ; DVs + db 5, 20, 10, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 70 ; Level + db 0, 0 ; Status + bigdw 269 ; HP + bigdw 269 ; Max HP + bigdw 155 ; Atk + bigdw 214 ; Def + bigdw 152 ; Spd + bigdw 142 ; SAtk + bigdw 240 ; SDef + db "BURAtuKI-@@" + + + db GYARADOS + db BRIGHTPOWDER + db SURF, THUNDERBOLT, HYPER_BEAM, ROAR + dw 0 ; OT ID + dt 343000 ; Exp + ; Stat exp + bigdw 55000 + bigdw 45000 + bigdw 50000 + bigdw 55000 + bigdw 50000 + db $db, $ef ; DVs + db 15, 15, 5, 20 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 70 ; Level + db 0, 0 ; Status + bigdw 271 ; HP + bigdw 271 ; Max HP + bigdw 235 ; Atk + bigdw 169 ; Def + bigdw 178 ; Spd + bigdw 148 ; SAtk + bigdw 204 ; SDef + db "GIyaRADOSU@" + + + db QUAGSIRE + db MIRACLEBERRY + db EARTHQUAKE, SURF, SLUDGE_BOMB, IRON_TAIL + dw 0 ; OT ID + dt 343000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 45000 + bigdw 50000 + bigdw 50000 + db $de, $dd ; DVs + db 10, 15, 10, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 70 ; Level + db 0, 0 ; Status + bigdw 266 ; HP + bigdw 266 ; Max HP + bigdw 180 ; Atk + bigdw 180 ; Def + bigdw 110 ; Spd + bigdw 152 ; SAtk + bigdw 152 ; SDef + db "NUO-@@@@@@@" + + + db URSARING + db SCOPE_LENS + db SLASH, EARTHQUAKE, HYPER_BEAM, THUNDERPUNCH + dw 0 ; OT ID + dt 343000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 45000 + bigdw 50000 + bigdw 45000 + bigdw 50000 + db $fd, $ed ; DVs + db 20, 10, 5, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 70 ; Level + db 0, 0 ; Status + bigdw 262 ; HP + bigdw 262 ; Max HP + bigdw 245 ; Atk + bigdw 166 ; Def + bigdw 138 ; Spd + bigdw 166 ; SAtk + bigdw 166 ; SDef + db "RINGUMA@@@@" + + + db MR__MIME + db KINGS_ROCK + db REFLECT, FIRE_PUNCH, PSYCHIC_M, ENCORE + dw 0 ; OT ID + dt 343000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 45000 + bigdw 45000 + bigdw 50000 + bigdw 50000 + db $bd, $fb ; DVs + db 20, 15, 10, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 70 ; Level + db 0, 0 ; Status + bigdw 195 ; HP + bigdw 195 ; Max HP + bigdw 120 ; Atk + bigdw 151 ; Def + bigdw 190 ; Spd + bigdw 198 ; SAtk + bigdw 226 ; SDef + db "BARIYA-DO@@" + + + db PRIMEAPE + db QUICK_CLAW + db CROSS_CHOP, ICE_PUNCH, THUNDERPUNCH, ROCK_SLIDE + dw 0 ; OT ID + dt 343000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 40000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $bd, $ef ; DVs + db 5, 15, 15, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 70 ; Level + db 0, 0 ; Status + bigdw 227 ; HP + bigdw 227 ; Max HP + bigdw 202 ; Atk + bigdw 145 ; Def + bigdw 196 ; Spd + bigdw 148 ; SAtk + bigdw 162 ; SDef + db "OKORIZARU@@" + + + db GIRAFARIG + db GOLD_BERRY + db AGILITY, BATON_PASS, CRUNCH, EARTHQUAKE + dw 0 ; OT ID + dt 343000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $fe, $fd ; DVs + db 30, 40, 15, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 70 ; Level + db 0, 0 ; Status + bigdw 231 ; HP + bigdw 231 ; Max HP + bigdw 176 ; Atk + bigdw 154 ; Def + bigdw 183 ; Spd + bigdw 187 ; SAtk + bigdw 152 ; SDef + db "KIRINRIKI@@" + + + db HITMONLEE + db FOCUS_BAND + db REVERSAL, ENDURE, BODY_SLAM, MEGA_KICK + dw 0 ; OT ID + dt 343000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $fe, $fe ; DVs + db 15, 10, 15, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 70 ; Level + db 0, 0 ; Status + bigdw 202 ; HP + bigdw 202 ; Max HP + bigdw 232 ; Atk + bigdw 137 ; Def + bigdw 186 ; Spd + bigdw 112 ; SAtk + bigdw 217 ; SDef + db "SAWAMURA-@@" + + + db HERACROSS + db BRIGHTPOWDER + db REVERSAL, ENDURE, MEGAHORN, EARTHQUAKE + dw 0 ; OT ID + dt 343000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $f7, $f7 ; DVs + db 15, 10, 10, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 70 ; Level + db 0, 0 ; Status + bigdw 251 ; HP + bigdw 251 ; Max HP + bigdw 239 ; Atk + bigdw 158 ; Def + bigdw 183 ; Spd + bigdw 109 ; SAtk + bigdw 186 ; SDef + db "HERAKUROSU@" + + + db VENUSAUR + db BRIGHTPOWDER + db SUNNY_DAY, SOLARBEAM, SYNTHESIS, HYPER_BEAM + dw 0 ; OT ID + dt 343000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $76, $44 ; DVs + db 5, 10, 5, 5 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 70 ; Level + db 0, 0 ; Status + bigdw 233 ; HP + bigdw 233 ; Max HP + bigdw 159 ; Atk + bigdw 159 ; Def + bigdw 152 ; Spd + bigdw 180 ; SAtk + bigdw 180 ; SDef + db "HUSIGIBANA@" + + + db CHARIZARD + db SCOPE_LENS + db SLASH, EARTHQUAKE, HYPER_BEAM, FLAMETHROWER + dw 0 ; OT ID + dt 343000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $56, $44 ; DVs + db 20, 10, 5, 15 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 70 ; Level + db 0, 0 ; Status + bigdw 230 ; HP + bigdw 230 ; Max HP + bigdw 159 ; Atk + bigdw 152 ; Def + bigdw 180 ; Spd + bigdw 193 ; SAtk + bigdw 159 ; SDef + db "RIZA-DON@@@" + + + db BLASTOISE + db QUICK_CLAW + db HYDRO_PUMP, ICE_PUNCH, HYPER_BEAM, IRON_TAIL + dw 0 ; OT ID + dt 343000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $76, $64 ; DVs + db 5, 15, 5, 15 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 70 ; Level + db 0, 0 ; Status + bigdw 231 ; HP + bigdw 231 ; Max HP + bigdw 161 ; Atk + bigdw 183 ; Def + bigdw 152 ; Spd + bigdw 159 ; SAtk + bigdw 187 ; SDef + db "KAMEtuKUSU@" + + + + +BattleTowerMons8: + + db JOLTEON + db MIRACLEBERRY + db THUNDER_WAVE, THUNDERBOLT, IRON_TAIL, ROAR + dw 0 ; OT ID + dt 512000 ; Exp + ; Stat exp + bigdw 60000 + bigdw 55000 + bigdw 60000 + bigdw 55000 + bigdw 55000 + db $fd, $eb ; DVs + db 20, 15, 15, 20 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 80 ; Level + db 0, 0 ; Status + bigdw 263 ; HP + bigdw 263 ; Max HP + bigdw 179 ; Atk + bigdw 170 ; Def + bigdw 281 ; Spd + bigdw 245 ; SAtk + bigdw 221 ; SDef + db "SANDA-SU@@@" + + + db SNORLAX + db LEFTOVERS + db REST, BELLY_DRUM, SNORE, EARTHQUAKE + dw 0 ; OT ID + dt 512000 ; Exp + ; Stat exp + bigdw 60000 + bigdw 55000 + bigdw 50000 + bigdw 55500 + bigdw 60000 + db $db, $ed ; DVs + db 10, 10, 15, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 80 ; Level + db 0, 0 ; Status + bigdw 415 ; HP + bigdw 415 ; Max HP + bigdw 248 ; Atk + bigdw 170 ; Def + bigdw 121 ; Spd + bigdw 178 ; SAtk + bigdw 250 ; SDef + db "KABIGON@@@@" + + + db HOUNDOOM + db MINT_BERRY + db REST, CRUNCH, FLAMETHROWER, SUNNY_DAY + dw 0 ; OT ID + dt 512000 ; Exp + ; Stat exp + bigdw 55000 + bigdw 50000 + bigdw 55000 + bigdw 55000 + bigdw 55000 + db $fd, $db ; DVs + db 10, 15, 15, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 80 ; Level + db 0, 0 ; Status + bigdw 280 ; HP + bigdw 280 ; Max HP + bigdw 217 ; Atk + bigdw 152 ; Def + bigdw 224 ; Spd + bigdw 245 ; SAtk + bigdw 197 ; SDef + db "HERUGA-@@@@" + + + db TAUROS + db GOLD_BERRY + db EARTHQUAKE, BODY_SLAM, IRON_TAIL, HYPER_BEAM + dw 0 ; OT ID + dt 512000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 30000 + bigdw 50000 + db $fd, $de ; DVs + db 10, 15, 15, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 80 ; Level + db 0, 0 ; Status + bigdw 276 ; HP + bigdw 276 ; Max HP + bigdw 233 ; Atk + bigdw 221 ; Def + bigdw 236 ; Spd + bigdw 135 ; SAtk + bigdw 183 ; SDef + db "KENTAROSU@@" + + + db LAPRAS + db MINT_BERRY + db REST, SURF, CONFUSE_RAY, PSYCHIC_M + dw 0 ; OT ID + dt 512000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 55000 + bigdw 50000 + db $df, $db ; DVs + db 10, 15, 10, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 80 ; Level + db 0, 0 ; Status + bigdw 366 ; HP + bigdw 366 ; Max HP + bigdw 205 ; Atk + bigdw 201 ; Def + bigdw 168 ; Spd + bigdw 202 ; SAtk + bigdw 218 ; SDef + db "RAPURASU@@@" + + + db TYRANITAR + db MIRACLEBERRY + db REST, CRUNCH, EARTHQUAKE, ROCK_SLIDE + dw 0 ; OT ID + dt 512000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 55000 + bigdw 50000 + bigdw 55000 + bigdw 50000 + db $df, $db ; DVs + db 10, 15, 10, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 80 ; Level + db 0, 0 ; Status + bigdw 318 ; HP + bigdw 318 ; Max HP + bigdw 286 ; Atk + bigdw 249 ; Def + bigdw 169 ; Spd + bigdw 218 ; SAtk + bigdw 226 ; SDef + db "BANGIRASU@@" + + + db GENGAR + db NO_ITEM + db THUNDERBOLT, SHADOW_BALL, CONFUSE_RAY, THIEF + dw 0 ; OT ID + dt 512000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 45000 + bigdw 55000 + bigdw 50000 + db $de, $dd ; DVs + db 15, 15, 10, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 80 ; Level + db 0, 0 ; Status + bigdw 247 ; HP + bigdw 247 ; Max HP + bigdw 173 ; Atk + bigdw 165 ; Def + bigdw 248 ; Spd + bigdw 277 ; SAtk + bigdw 189 ; SDef + db "GENGA-@@@@@" + + + db FORRETRESS + db LEFTOVERS + db EXPLOSION, TOXIC, SOLARBEAM, SWAGGER + dw 0 ; OT ID + dt 512000 ; Exp + ; Stat exp + bigdw 45000 + bigdw 50000 + bigdw 50000 + bigdw 45000 + bigdw 50000 + db $fd, $ed ; DVs + db 5, 10, 10, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 80 ; Level + db 0, 0 ; Status + bigdw 273 ; HP + bigdw 273 ; Max HP + bigdw 217 ; Atk + bigdw 293 ; Def + bigdw 133 ; Spd + bigdw 165 ; SAtk + bigdw 165 ; SDef + db "HUoRETOSU@@" + + + db KINGDRA + db MINT_BERRY + db REST, SURF, BLIZZARD, DRAGONBREATH + dw 0 ; OT ID + dt 512000 ; Exp + ; Stat exp + bigdw 45000 + bigdw 50000 + bigdw 40000 + bigdw 55000 + bigdw 50000 + db $fb, $ed ; DVs + db 10, 15, 5, 20 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 80 ; Level + db 0, 0 ; Status + bigdw 273 ; HP + bigdw 273 ; Max HP + bigdw 225 ; Atk + bigdw 214 ; Def + bigdw 209 ; Spd + bigdw 221 ; SAtk + bigdw 221 ; SDef + db "KINGUDORA@@" + + + db DRAGONITE + db GOLD_BERRY + db THUNDER_WAVE, SURF, THUNDERBOLT, OUTRAGE + dw 0 ; OT ID + dt 512000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 45000 + db $dd, $dd ; DVs + db 20, 15, 15, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 80 ; Level + db 0, 0 ; Status + bigdw 303 ; HP + bigdw 303 ; Max HP + bigdw 284 ; Atk + bigdw 221 ; Def + bigdw 197 ; Spd + bigdw 228 ; SAtk + bigdw 228 ; SDef + db "KAIRIyu-@@@" + + + db PORYGON2 + db LEFTOVERS + db PSYCHIC_M, RECOVER, HYPER_BEAM, TRI_ATTACK + dw 0 ; OT ID + dt 512000 ; Exp + ; Stat exp + bigdw 55000 + bigdw 50000 + bigdw 40000 + bigdw 55000 + bigdw 50000 + db $df, $ed ; DVs + db 10, 20, 5, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 80 ; Level + db 0, 0 ; Status + bigdw 293 ; HP + bigdw 293 ; Max HP + bigdw 197 ; Atk + bigdw 213 ; Def + bigdw 169 ; Spd + bigdw 237 ; SAtk + bigdw 221 ; SDef + db "PORIGON2@@@" + + + db JYNX + db QUICK_CLAW + db LOVELY_KISS, BLIZZARD, DREAM_EATER, PSYCHIC_M + dw 0 ; OT ID + dt 512000 ; Exp + ; Stat exp + bigdw 55000 + bigdw 50000 + bigdw 45000 + bigdw 50000 + bigdw 50000 + db $df, $df ; DVs + db 10, 5, 15, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 80 ; Level + db 0, 0 ; Status + bigdw 264 ; HP + bigdw 264 ; Max HP + bigdw 149 ; Atk + bigdw 127 ; Def + bigdw 221 ; Spd + bigdw 257 ; SAtk + bigdw 225 ; SDef + db "RU-ZIyuRA@@" + + + db MANTINE + db GOLD_BERRY + db SURF, CONFUSE_RAY, BLIZZARD, WING_ATTACK + dw 0 ; OT ID + dt 512000 ; Exp + ; Stat exp + bigdw 40000 + bigdw 45000 + bigdw 40000 + bigdw 45000 + bigdw 50000 + db $df, $dc ; DVs + db 15, 10, 5, 35 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 80 ; Level + db 0, 0 ; Status + bigdw 256 ; HP + bigdw 256 ; Max HP + bigdw 132 ; Atk + bigdw 181 ; Def + bigdw 180 ; Spd + bigdw 196 ; SAtk + bigdw 292 ; SDef + db "MANTAIN@@@@" + + + db SKARMORY + db QUICK_CLAW + db STEEL_WING, FLY, MUD_SLAP, TOXIC + dw 0 ; OT ID + dt 512000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 45000 + bigdw 35000 + bigdw 50000 + bigdw 50000 + db $dd, $ef ; DVs + db 25, 15, 10, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 80 ; Level + db 0, 0 ; Status + bigdw 258 ; HP + bigdw 258 ; Max HP + bigdw 196 ; Atk + bigdw 286 ; Def + bigdw 183 ; Spd + bigdw 137 ; SAtk + bigdw 185 ; SDef + db "EA-MUDO@@@@" + + + db MOLTRES + db CHARCOAL + db FLAMETHROWER, SKY_ATTACK, STEEL_WING, HYPER_BEAM + dw 0 ; OT ID + dt 512000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 40000 + bigdw 50000 + bigdw 40000 + bigdw 50000 + db $dd, $fe ; DVs + db 15, 5, 25, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 80 ; Level + db 0, 0 ; Status + bigdw 300 ; HP + bigdw 300 ; Max HP + bigdw 225 ; Atk + bigdw 213 ; Def + bigdw 213 ; Spd + bigdw 271 ; SAtk + bigdw 207 ; SDef + db "HUaIYA-@@@@" + + + db AERODACTYL + db MIRACLEBERRY + db HYPER_BEAM, REST, EARTHQUAKE, ROAR + dw 0 ; OT ID + dt 512000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 40000 + bigdw 50000 + bigdw 40000 + bigdw 50000 + db $ff, $ed ; DVs + db 5, 10, 10, 20 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 80 ; Level + db 0, 0 ; Status + bigdw 282 ; HP + bigdw 282 ; Max HP + bigdw 237 ; Atk + bigdw 177 ; Def + bigdw 275 ; Spd + bigdw 165 ; SAtk + bigdw 189 ; SDef + db "PUTERA@@@@@" + + + db ELECTRODE + db KINGS_ROCK + db THUNDERBOLT, EXPLOSION, MIRROR_COAT, TOXIC + dw 0 ; OT ID + dt 512000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 40000 + bigdw 40000 + bigdw 50000 + db $ff, $ef ; DVs + db 15, 5, 20, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 80 ; Level + db 0, 0 ; Status + bigdw 250 ; HP + bigdw 250 ; Max HP + bigdw 153 ; Atk + bigdw 181 ; Def + bigdw 291 ; Spd + bigdw 201 ; SAtk + bigdw 201 ; SDef + db "MARUMAIN@@@" + + + db DUGTRIO + db SCOPE_LENS + db SLASH, EARTHQUAKE, THIEF, MUD_SLAP + dw 0 ; OT ID + dt 512000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 40000 + bigdw 50000 + bigdw 40000 + db $fd, $dd ; DVs + db 20, 10, 10, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 80 ; Level + db 0, 0 ; Status + bigdw 214 ; HP + bigdw 214 ; Max HP + bigdw 201 ; Atk + bigdw 145 ; Def + bigdw 261 ; Spd + bigdw 145 ; SAtk + bigdw 177 ; SDef + db "DAGUTORIO@@" + + + db VICTREEBEL + db QUICK_CLAW + db GIGA_DRAIN, SLUDGE_BOMB, HYPER_BEAM, TOXIC + dw 0 ; OT ID + dt 512000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $65, $65 ; DVs + db 5, 10, 5, 10 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 80 ; Level + db 0, 0 ; Status + bigdw 260 ; HP + bigdw 260 ; Max HP + bigdw 217 ; Atk + bigdw 151 ; Def + bigdw 161 ; Spd + bigdw 207 ; SAtk + bigdw 143 ; SDef + db "UTUBOtuTO@@" + + + db PINSIR + db GOLD_BERRY + db HYPER_BEAM, SUBMISSION, STRENGTH, TOXIC + dw 0 ; OT ID + dt 512000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $74, $64 ; DVs + db 5, 25, 15, 10 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 80 ; Level + db 0, 0 ; Status + bigdw 241 ; HP + bigdw 241 ; Max HP + bigdw 250 ; Atk + bigdw 205 ; Def + bigdw 185 ; Spd + bigdw 133 ; SAtk + bigdw 157 ; SDef + db "KAIROSU@@@@" + + + db GRANBULL + db BRIGHTPOWDER + db ROAR, SHADOW_BALL, HYPER_BEAM, THUNDERPUNCH + dw 0 ; OT ID + dt 512000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $76, $57 ; DVs + db 20, 15, 5, 15 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 80 ; Level + db 0, 0 ; Status + bigdw 286 ; HP + bigdw 286 ; Max HP + bigdw 242 ; Atk + bigdw 169 ; Def + bigdw 119 ; Spd + bigdw 146 ; SAtk + bigdw 146 ; SDef + db "GURANBURU@@" + + + + +BattleTowerMons9: + + db UMBREON + db KINGS_ROCK + db FAINT_ATTACK, MUD_SLAP, MOONLIGHT, CONFUSE_RAY + dw 0 ; OT ID + dt 729000 ; Exp + ; Stat exp + bigdw 60000 + bigdw 60000 + bigdw 55000 + bigdw 60000 + bigdw 55000 + db $fd, $ed ; DVs + db 20, 10, 5, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 90 ; Level + db 0, 0 ; Status + bigdw 349 ; HP + bigdw 349 ; Max HP + bigdw 203 ; Atk + bigdw 278 ; Def + bigdw 202 ; Spd + bigdw 188 ; SAtk + bigdw 314 ; SDef + db "BURAtuKI-@@" + + + db DRAGONITE + db QUICK_CLAW + db FIRE_BLAST, HYPER_BEAM, OUTRAGE, BLIZZARD + dw 0 ; OT ID + dt 729000 ; Exp + ; Stat exp + bigdw 65000 + bigdw 50000 + bigdw 56000 + bigdw 60000 + bigdw 60000 + db $fd, $ed ; DVs + db 5, 5, 15, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 90 ; Level + db 0, 0 ; Status + bigdw 343 ; HP + bigdw 343 ; Max HP + bigdw 322 ; Atk + bigdw 252 ; Def + bigdw 229 ; Spd + bigdw 263 ; SAtk + bigdw 263 ; SDef + db "KAIRIyu-@@@" + + + db STARMIE + db LEFTOVERS + db RECOVER, THUNDERBOLT, SURF, PSYCHIC_M + dw 0 ; OT ID + dt 729000 ; Exp + ; Stat exp + bigdw 60000 + bigdw 60000 + bigdw 60000 + bigdw 55000 + bigdw 60000 + db $df, $dd ; DVs + db 20, 15, 15, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 90 ; Level + db 0, 0 ; Status + bigdw 289 ; HP + bigdw 289 ; Max HP + bigdw 218 ; Atk + bigdw 239 ; Def + bigdw 287 ; Spd + bigdw 263 ; SAtk + bigdw 236 ; SDef + db "SUTA-MI-@@@" + + + db CLOYSTER + db LEFTOVERS + db EXPLOSION, BLIZZARD, SURF, ICY_WIND + dw 0 ; OT ID + dt 729000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $db, $df ; DVs + db 5, 5, 15, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 90 ; Level + db 0, 0 ; Status + bigdw 266 ; HP + bigdw 266 ; Max HP + bigdw 248 ; Atk + bigdw 398 ; Def + bigdw 203 ; Spd + bigdw 234 ; SAtk + bigdw 162 ; SDef + db "PARUSIeN@@@" + + + db CROBAT + db GOLD_BERRY + db WING_ATTACK, HAZE, HYPER_BEAM, GIGA_DRAIN + dw 0 ; OT ID + dt 729000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $fd, $cf ; DVs + db 35, 30, 5, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 90 ; Level + db 0, 0 ; Status + bigdw 325 ; HP + bigdw 325 ; Max HP + bigdw 243 ; Atk + bigdw 221 ; Def + bigdw 310 ; Spd + bigdw 207 ; SAtk + bigdw 225 ; SDef + db "KUROBAtuTO@" + + + db PORYGON2 + db QUICK_CLAW + db TOXIC, PSYCHIC_M, RECOVER, PROTECT + dw 0 ; OT ID + dt 729000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 45000 + bigdw 50000 + bigdw 55000 + bigdw 50000 + db $fd, $ed ; DVs + db 10, 10, 20, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 90 ; Level + db 0, 0 ; Status + bigdw 325 ; HP + bigdw 325 ; Max HP + bigdw 223 ; Atk + bigdw 239 ; Def + bigdw 190 ; Spd + bigdw 266 ; SAtk + bigdw 248 ; SDef + db "PORIGON2@@@" + + + db KINGDRA + db LEFTOVERS + db DRAGONBREATH, SURF, HYPER_BEAM, BLIZZARD + dw 0 ; OT ID + dt 729000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 55000 + bigdw 50000 + bigdw 45000 + db $df, $de ; DVs + db 20, 15, 5, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 90 ; Level + db 0, 0 ; Status + bigdw 309 ; HP + bigdw 309 ; Max HP + bigdw 248 ; Atk + bigdw 255 ; Def + bigdw 230 ; Spd + bigdw 248 ; SAtk + bigdw 248 ; SDef + db "KINGUDORA@@" + + + db TYRANITAR + db QUICK_CLAW + db HYPER_BEAM, CRUNCH, EARTHQUAKE, ROCK_SLIDE + dw 0 ; OT ID + dt 729000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 55000 + bigdw 50000 + bigdw 45000 + bigdw 50000 + db $df, $de ; DVs + db 5, 15, 10, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 90 ; Level + db 0, 0 ; Status + bigdw 354 ; HP + bigdw 354 ; Max HP + bigdw 321 ; Atk + bigdw 279 ; Def + bigdw 185 ; Spd + bigdw 250 ; SAtk + bigdw 259 ; SDef + db "BANGIRASU@@" + + + db LAPRAS + db MINT_BERRY + db REST, SURF, THUNDERBOLT, PSYCHIC_M + dw 0 ; OT ID + dt 729000 ; Exp + ; Stat exp + bigdw 45000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 55000 + db $bd, $ef ; DVs + db 10, 15, 15, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 90 ; Level + db 0, 0 ; Status + bigdw 405 ; HP + bigdw 405 ; Max HP + bigdw 227 ; Atk + bigdw 221 ; Def + bigdw 187 ; Spd + bigdw 237 ; SAtk + bigdw 255 ; SDef + db "RAPURASU@@@" + + + db ESPEON + db GOLD_BERRY + db PSYCHIC_M, SHADOW_BALL, SUNNY_DAY, MORNING_SUN + dw 0 ; OT ID + dt 729000 ; Exp + ; Stat exp + bigdw 55000 + bigdw 50000 + bigdw 50000 + bigdw 55000 + bigdw 50000 + db $dd, $fe ; DVs + db 10, 15, 5, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 90 ; Level + db 0, 0 ; Status + bigdw 294 ; HP + bigdw 294 ; Max HP + bigdw 194 ; Atk + bigdw 185 ; Def + bigdw 282 ; Spd + bigdw 313 ; SAtk + bigdw 250 ; SDef + db "E-HUi@@@@@@" + + + db MACHAMP + db QUICK_CLAW + db CROSS_CHOP, VITAL_THROW, FIRE_BLAST, EARTHQUAKE + dw 0 ; OT ID + dt 729000 ; Exp + ; Stat exp + bigdw 55000 + bigdw 55000 + bigdw 50000 + bigdw 55000 + bigdw 50000 + db $dd, $ed ; DVs + db 5, 10, 5, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 90 ; Level + db 0, 0 ; Status + bigdw 337 ; HP + bigdw 337 ; Max HP + bigdw 314 ; Atk + bigdw 221 ; Def + bigdw 181 ; Spd + bigdw 194 ; SAtk + bigdw 230 ; SDef + db "KAIRIKI-@@@" + + + db SNORLAX + db MIRACLEBERRY + db FIRE_BLAST, SURF, EARTHQUAKE, HYPER_BEAM + dw 0 ; OT ID + dt 729000 ; Exp + ; Stat exp + bigdw 45000 + bigdw 50000 + bigdw 55000 + bigdw 50000 + bigdw 50000 + db $fe, $fd ; DVs + db 5, 15, 10, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 90 ; Level + db 0, 0 ; Status + bigdw 455 ; HP + bigdw 455 ; Max HP + bigdw 279 ; Atk + bigdw 199 ; Def + bigdw 135 ; Spd + bigdw 194 ; SAtk + bigdw 275 ; SDef + db "KABIGON@@@@" + + + db ARCANINE + db MINT_BERRY + db SUNNY_DAY, FLAMETHROWER, EXTREMESPEED, REST + dw 0 ; OT ID + dt 729000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 45000 + bigdw 50000 + bigdw 45000 + bigdw 55000 + db $df, $de ; DVs + db 5, 15, 5, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 90 ; Level + db 0, 0 ; Status + bigdw 336 ; HP + bigdw 336 ; Max HP + bigdw 274 ; Atk + bigdw 225 ; Def + bigdw 247 ; Spd + bigdw 262 ; SAtk + bigdw 226 ; SDef + db "UINDEi@@@@@" + + + db BLISSEY + db LEFTOVERS + db SOLARBEAM, SUNNY_DAY, SOFTBOILED, FIRE_BLAST + dw 0 ; OT ID + dt 729000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 45000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $bd, $fe ; DVs + db 10, 5, 10, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 90 ; Level + db 0, 0 ; Status + bigdw 633 ; HP + bigdw 633 ; Max HP + bigdw 90 ; Atk + bigdw 95 ; Def + bigdw 180 ; Spd + bigdw 214 ; SAtk + bigdw 322 ; SDef + db "HAPINASU@@@" + + + db HOUNDOOM + db BRIGHTPOWDER + db FLAMETHROWER, CRUNCH, SUNNY_DAY, SOLARBEAM + dw 0 ; OT ID + dt 729000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 40000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $db, $fe ; DVs + db 15, 15, 5, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 90 ; Level + db 0, 0 ; Status + bigdw 309 ; HP + bigdw 309 ; Max HP + bigdw 235 ; Atk + bigdw 164 ; Def + bigdw 252 ; Spd + bigdw 277 ; SAtk + bigdw 223 ; SDef + db "HERUGA-@@@@" + + + db SKARMORY + db QUICK_CLAW + db SANDSTORM, STEEL_WING, TOXIC, RETURN + dw 0 ; OT ID + dt 729000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $ef, $f7 ; DVs + db 10, 25, 10, 20 ; PP + db 255 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 90 ; Level + db 0, 0 ; Status + bigdw 279 ; HP + bigdw 279 ; Max HP + bigdw 223 ; Atk + bigdw 333 ; Def + bigdw 207 ; Spd + bigdw 139 ; SAtk + bigdw 193 ; SDef + db "EA-MUDO@@@@" + + + db SHUCKLE + db LEFTOVERS + db TOXIC, WRAP, PROTECT, ENCORE + dw 0 ; OT ID + dt 729000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $fe, $fe ; DVs + db 10, 20, 10, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 90 ; Level + db 0, 0 ; Status + bigdw 203 ; HP + bigdw 203 ; Max HP + bigdw 99 ; Atk + bigdw 493 ; Def + bigdw 90 ; Spd + bigdw 97 ; SAtk + bigdw 493 ; SDef + db "TUBOTUBO@@@" + + + db FLAREON + db MINT_BERRY + db HYPER_BEAM, FLAMETHROWER, SHADOW_BALL, ROAR + dw 0 ; OT ID + dt 729000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $f7, $f7 ; DVs + db 5, 15, 15, 20 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 90 ; Level + db 0, 0 ; Status + bigdw 293 ; HP + bigdw 293 ; Max HP + bigdw 315 ; Atk + bigdw 175 ; Def + bigdw 198 ; Spd + bigdw 238 ; SAtk + bigdw 265 ; SDef + db "BU-SUTA-@@@" + + + db MILTANK + db LEFTOVERS + db MILK_DRINK, EARTHQUAKE, ATTRACT, BODY_SLAM + dw 0 ; OT ID + dt 729000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $47, $57 ; DVs + db 10, 10, 15, 15 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 90 ; Level + db 0, 0 ; Status + bigdw 322 ; HP + bigdw 322 ; Max HP + bigdw 194 ; Atk + bigdw 245 ; Def + bigdw 232 ; Spd + bigdw 128 ; SAtk + bigdw 182 ; SDef + db "MIRUTANKU@@" + + + db TAUROS + db PINK_BOW + db THUNDERBOLT, HYPER_BEAM, ATTRACT, EARTHQUAKE + dw 0 ; OT ID + dt 729000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $65, $76 ; DVs + db 15, 5, 15, 10 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 90 ; Level + db 0, 0 ; Status + bigdw 284 ; HP + bigdw 284 ; Max HP + bigdw 234 ; Atk + bigdw 223 ; Def + bigdw 254 ; Spd + bigdw 126 ; SAtk + bigdw 180 ; SDef + db "KENTAROSU@@" + + + db MUK + db QUICK_CLAW + db TOXIC, SLUDGE_BOMB, ATTRACT, GIGA_DRAIN + dw 0 ; OT ID + dt 729000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $54, $44 ; DVs + db 10, 10, 15, 5 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 90 ; Level + db 0, 0 ; Status + bigdw 342 ; HP + bigdw 342 ; Max HP + bigdw 241 ; Atk + bigdw 185 ; Def + bigdw 140 ; Spd + bigdw 167 ; SAtk + bigdw 230 ; SDef + db "BETOBETON@@" + + + + +BattleTowerMons10: + + db HOUNDOOM + db MINT_BERRY + db CRUNCH, FLAMETHROWER, ROAR, REST + dw 0 ; OT ID + dt 1000000 ; Exp + ; Stat exp + bigdw 60000 + bigdw 60000 + bigdw 60000 + bigdw 60000 + bigdw 60000 + db $fd, $ed ; DVs + db 15, 15, 20, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 100 ; Level + db 0, 0 ; Status + bigdw 347 ; HP + bigdw 347 ; Max HP + bigdw 276 ; Atk + bigdw 192 ; Def + bigdw 284 ; Spd + bigdw 312 ; SAtk + bigdw 252 ; SDef + db "HERUGA-@@@@" + + + db MACHAMP + db QUICK_CLAW + db CROSS_CHOP, EARTHQUAKE, HYPER_BEAM, VITAL_THROW + dw 0 ; OT ID + dt 1000000 ; Exp + ; Stat exp + bigdw 60000 + bigdw 60000 + bigdw 60000 + bigdw 60000 + bigdw 60000 + db $fd, $ef ; DVs + db 5, 10, 5, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 100 ; Level + db 0, 0 ; Status + bigdw 377 ; HP + bigdw 377 ; Max HP + bigdw 356 ; Atk + bigdw 252 ; Def + bigdw 204 ; Spd + bigdw 226 ; SAtk + bigdw 266 ; SDef + db "KAIRIKI-@@@" + + + db KINGDRA + db LEFTOVERS + db SURF, DRAGONBREATH, REST, TOXIC + dw 0 ; OT ID + dt 1000000 ; Exp + ; Stat exp + bigdw 60000 + bigdw 60000 + bigdw 60000 + bigdw 60000 + bigdw 60000 + db $df, $fe ; DVs + db 15, 20, 10, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 100 ; Level + db 0, 0 ; Status + bigdw 349 ; HP + bigdw 349 ; Max HP + bigdw 282 ; Atk + bigdw 286 ; Def + bigdw 266 ; Spd + bigdw 284 ; SAtk + bigdw 284 ; SDef + db "KINGUDORA@@" + + + db JOLTEON + db BRIGHTPOWDER + db THUNDERBOLT, ROAR, THUNDER_WAVE, IRON_TAIL + dw 0 ; OT ID + dt 1000000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 30000 + bigdw 50000 + db $fd, $fe ; DVs + db 15, 20, 20, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 100 ; Level + db 0, 0 ; Status + bigdw 323 ; HP + bigdw 323 ; Max HP + bigdw 220 ; Atk + bigdw 206 ; Def + bigdw 338 ; Spd + bigdw 308 ; SAtk + bigdw 278 ; SDef + db "SANDA-SU@@@" + + + db TAUROS + db KINGS_ROCK + db HYPER_BEAM, EARTHQUAKE, IRON_TAIL, THUNDERBOLT + dw 0 ; OT ID + dt 1000000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $fd, $ef ; DVs + db 5, 10, 15, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 100 ; Level + db 0, 0 ; Status + bigdw 341 ; HP + bigdw 341 ; Max HP + bigdw 290 ; Atk + bigdw 276 ; Def + bigdw 308 ; Spd + bigdw 170 ; SAtk + bigdw 230 ; SDef + db "KENTAROSU@@" + + + db ARCANINE + db LEFTOVERS + db FLAMETHROWER, EXTREMESPEED, IRON_TAIL, HYPER_BEAM + dw 0 ; OT ID + dt 1000000 ; Exp + ; Stat exp + bigdw 55000 + bigdw 50000 + bigdw 50000 + bigdw 55000 + bigdw 50000 + db $dd, $ef ; DVs + db 15, 5, 15, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 100 ; Level + db 0, 0 ; Status + bigdw 374 ; HP + bigdw 374 ; Max HP + bigdw 306 ; Atk + bigdw 246 ; Def + bigdw 281 ; Spd + bigdw 290 ; SAtk + bigdw 250 ; SDef + db "UINDEi@@@@@" + + + db CHARIZARD + db SCOPE_LENS + db FLAMETHROWER, EARTHQUAKE, SLASH, FLY + dw 0 ; OT ID + dt 1000000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 55000 + bigdw 55000 + bigdw 55000 + db $fe, $df ; DVs + db 15, 10, 20, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 100 ; Level + db 0, 0 ; Status + bigdw 343 ; HP + bigdw 343 ; Max HP + bigdw 258 ; Atk + bigdw 247 ; Def + bigdw 289 ; Spd + bigdw 311 ; SAtk + bigdw 263 ; SDef + db "RIZA-DON@@@" + + + db ELECTRODE + db BRIGHTPOWDER + db THUNDER_WAVE, THUNDERBOLT, EXPLOSION, MIRROR_COAT + dw 0 ; OT ID + dt 1000000 ; Exp + ; Stat exp + bigdw 45000 + bigdw 50000 + bigdw 50000 + bigdw 45000 + bigdw 45000 + db $fb, $ef ; DVs + db 20, 15, 5, 20 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 100 ; Level + db 0, 0 ; Status + bigdw 309 ; HP + bigdw 309 ; Max HP + bigdw 190 ; Atk + bigdw 222 ; Def + bigdw 366 ; Spd + bigdw 248 ; SAtk + bigdw 248 ; SDef + db "MARUMAIN@@@" + + + db RHYDON + db MIRACLEBERRY + db SURF, EARTHQUAKE, HYPER_BEAM, ROCK_SLIDE + dw 0 ; OT ID + dt 1000000 ; Exp + ; Stat exp + bigdw 55000 + bigdw 50000 + bigdw 55000 + bigdw 50000 + bigdw 45000 + db $fd, $ef ; DVs + db 15, 10, 5, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 100 ; Level + db 0, 0 ; Status + bigdw 404 ; HP + bigdw 404 ; Max HP + bigdw 350 ; Atk + bigdw 329 ; Def + bigdw 168 ; Spd + bigdw 178 ; SAtk + bigdw 178 ; SDef + db "SAIDON@@@@@" + + + db STEELIX + db LEFTOVERS + db EARTHQUAKE, HYPER_BEAM, SWAGGER, CRUNCH + dw 0 ; OT ID + dt 1000000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 55000 + bigdw 60000 + bigdw 50000 + db $fd, $de ; DVs + db 10, 5, 15, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 100 ; Level + db 0, 0 ; Status + bigdw 343 ; HP + bigdw 343 ; Max HP + bigdw 260 ; Atk + bigdw 489 ; Def + bigdw 152 ; Spd + bigdw 198 ; SAtk + bigdw 218 ; SDef + db "HAGANE-RU@@" + + + db FEAROW + db KINGS_ROCK + db DRILL_PECK, STEEL_WING, HYPER_BEAM, MUD_SLAP + dw 0 ; OT ID + dt 1000000 ; Exp + ; Stat exp + bigdw 55000 + bigdw 50000 + bigdw 50000 + bigdw 55000 + bigdw 50000 + db $fd, $cf ; DVs + db 20, 25, 5, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 100 ; Level + db 0, 0 ; Status + bigdw 324 ; HP + bigdw 324 ; Max HP + bigdw 270 ; Atk + bigdw 216 ; Def + bigdw 287 ; Spd + bigdw 212 ; SAtk + bigdw 212 ; SDef + db "ONIDORIRU@@" + + + db MISDREAVUS + db FOCUS_BAND + db PERISH_SONG, MEAN_LOOK, PAIN_SPLIT, SHADOW_BALL + dw 0 ; OT ID + dt 1000000 ; Exp + ; Stat exp + bigdw 45000 + bigdw 50000 + bigdw 55000 + bigdw 50000 + bigdw 55000 + db $bd, $ef ; DVs + db 5, 5, 20, 15 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 100 ; Level + db 0, 0 ; Status + bigdw 309 ; HP + bigdw 309 ; Max HP + bigdw 202 ; Atk + bigdw 209 ; Def + bigdw 258 ; Spd + bigdw 263 ; SAtk + bigdw 263 ; SDef + db "MUUMA@@@@@@" + + + db SNEASEL + db SCOPE_LENS + db SLASH, BLIZZARD, DREAM_EATER, FAINT_ATTACK + dw 0 ; OT ID + dt 1000000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 48000 + bigdw 45000 + bigdw 50000 + db $fd, $ef ; DVs + db 20, 5, 15, 20 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 100 ; Level + db 0, 0 ; Status + bigdw 301 ; HP + bigdw 301 ; Max HP + bigdw 280 ; Atk + bigdw 195 ; Def + bigdw 316 ; Spd + bigdw 160 ; SAtk + bigdw 240 ; SDef + db "NIyu-RA@@@@" + + + db SCIZOR + db QUICK_CLAW + db STEEL_WING, HYPER_BEAM, SLASH, TOXIC + dw 0 ; OT ID + dt 1000000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 45000 + db $fb, $fe ; DVs + db 25, 5, 20, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 100 ; Level + db 0, 0 ; Status + bigdw 333 ; HP + bigdw 333 ; Max HP + bigdw 350 ; Atk + bigdw 282 ; Def + bigdw 220 ; Spd + bigdw 196 ; SAtk + bigdw 246 ; SDef + db "HAtuSAMU@@@" + + + db BLISSEY + db LEFTOVERS + db THUNDERBOLT, BLIZZARD, FIRE_BLAST, SOFTBOILED + dw 0 ; OT ID + dt 1000000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 40000 + bigdw 50000 + bigdw 30000 + bigdw 30000 + db $dd, $fe ; DVs + db 15, 5, 5, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 100 ; Level + db 0, 0 ; Status + bigdw 703 ; HP + bigdw 703 ; Max HP + bigdw 101 ; Atk + bigdw 106 ; Def + bigdw 188 ; Spd + bigdw 226 ; SAtk + bigdw 346 ; SDef + db "HAPINASU@@@" + + + db PILOSWINE + db MINT_BERRY + db REST, BLIZZARD, HYPER_BEAM, EARTHQUAKE + dw 0 ; OT ID + dt 1000000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $fe, $f7 ; DVs + db 10, 5, 5, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 100 ; Level + db 0, 0 ; Status + bigdw 387 ; HP + bigdw 387 ; Max HP + bigdw 290 ; Atk + bigdw 248 ; Def + bigdw 190 ; Spd + bigdw 194 ; SAtk + bigdw 194 ; SDef + db "INOMU-@@@@@" + + + db EXEGGUTOR + db QUICK_CLAW + db PSYCHIC_M, TOXIC, EXPLOSION, GIGA_DRAIN + dw 0 ; OT ID + dt 1000000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $fe, $fe ; DVs + db 10, 10, 5, 5 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 100 ; Level + db 0, 0 ; Status + bigdw 375 ; HP + bigdw 375 ; Max HP + bigdw 280 ; Atk + bigdw 258 ; Def + bigdw 200 ; Spd + bigdw 338 ; SAtk + bigdw 218 ; SDef + db "NAtuSI-@@@@" + + + db OMASTAR + db LEFTOVERS + db SURF, ANCIENTPOWER, BLIZZARD, TOXIC + dw 0 ; OT ID + dt 1000000 ; Exp + ; Stat exp + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + bigdw 50000 + db $fb, $e7 ; DVs + db 15, 5, 5, 10 ; PP + db 100 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 100 ; Level + db 0, 0 ; Status + bigdw 331 ; HP + bigdw 331 ; Max HP + bigdw 210 ; Atk + bigdw 332 ; Def + bigdw 198 ; Spd + bigdw 304 ; SAtk + bigdw 214 ; SDef + db "OMUSUTA-@@@" + + + db GOLEM + db BRIGHTPOWDER + db EXPLOSION, EARTHQUAKE, ROCK_SLIDE, FIRE_BLAST + dw 0 ; OT ID + dt 1000000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $74, $46 ; DVs + db 5, 10, 10, 5 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 100 ; Level + db 0, 0 ; Status + bigdw 329 ; HP + bigdw 329 ; Max HP + bigdw 282 ; Atk + bigdw 316 ; Def + bigdw 146 ; Spd + bigdw 170 ; SAtk + bigdw 190 ; SDef + db "GORO-NIya@@" + + + db HITMONCHAN + db FOCUS_BAND + db COUNTER, FIRE_PUNCH, THUNDERPUNCH, ICE_PUNCH + dw 0 ; OT ID + dt 1000000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $67, $76 ; DVs + db 20, 15, 15, 15 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 100 ; Level + db 0, 0 ; Status + bigdw 265 ; HP + bigdw 265 ; Max HP + bigdw 270 ; Atk + bigdw 220 ; Def + bigdw 214 ; Spd + bigdw 130 ; SAtk + bigdw 280 ; SDef + db "EBIWARA-@@@" + + + db LANTURN + db QUICK_CLAW + db SURF, RAIN_DANCE, ZAP_CANNON, CONFUSE_RAY + dw 0 ; OT ID + dt 1000000 ; Exp + ; Stat exp + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + bigdw 30000 + db $76, $57 ; DVs + db 15, 5, 5, 10 ; PP + db 0 ; Happiness + db 0, 0, 0 ; Pokerus, Caught data + db 100 ; Level + db 0, 0 ; Status + bigdw 425 ; HP + bigdw 425 ; Max HP + bigdw 178 ; Atk + bigdw 176 ; Def + bigdw 192 ; Spd + bigdw 214 ; SAtk + bigdw 214 ; SDef + db "RANTA-N@@@@" + + + From a29c13837d4e1e432d004bb8bdbfdc4f190481a1 Mon Sep 17 00:00:00 2001 From: yenatch Date: Sat, 17 Aug 2013 00:53:19 -0400 Subject: [PATCH 63/84] labels for IncGradGBPalTable --- main.asm | 51 ++++++++++++++++++++++++++------------------------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/main.asm b/main.asm index d4cdcd96c..21de1e735 100644 --- a/main.asm +++ b/main.asm @@ -298,7 +298,7 @@ Function485: ; 485 Function48c: ; 48c ld a, [TimeOfDayPal] ld b, a - ld hl, $0538 + ld hl, IncGradGBPalTable_11 ld a, l sub b ld l, a @@ -325,7 +325,7 @@ Function4a3: ; 4a3 jr Function4c7 .asm_4af - ld hl, IncGradGBPalTable_01 + ld hl, IncGradGBPalTable_08 ld b, $4 jr Function4c7 ; 4b6 @@ -334,12 +334,12 @@ Function4b6: ; 4b6 ld a, [hCGB] and a jr z, .asm_4c2 - ld hl, $0526 + ld hl, IncGradGBPalTable_05 ld b, $3 jr Function4c7 .asm_4c2 - ld hl, $053e + ld hl, IncGradGBPalTable_13 ld b, $3 ; 4c7 @@ -365,12 +365,12 @@ Function4dd: ; 4dd ld a, [hCGB] and a jr z, .asm_4e9 - ld hl, $0522 + ld hl, IncGradGBPalTable_04 - 1 ld b, $4 jr Function501 .asm_4e9 - ld hl, $053a + ld hl, IncGradGBPalTable_12 - 1 ld b, $4 jr Function501 ; 4f0 @@ -379,12 +379,12 @@ Function4f0: ; 4f0 ld a, [hCGB] and a jr z, .asm_4fc - ld hl, $052b + ld hl, IncGradGBPalTable_07 - 1 ld b, $3 jr Function501 .asm_4fc - ld hl, $0543 + ld hl, IncGradGBPalTable_15 - 1 ld b, $3 ; fallthrough ; 501 @@ -412,64 +412,65 @@ IncGradGBPalTable_00: ; 517 db %11111111 ; obp1 db %11111111 ; obp2 ; and so on... +IncGradGBPalTable_01: ; 51a db %11111110 db %11111110 db %11111110 - +IncGradGBPalTable_02: ; 51d db %11111001 db %11111001 db %11111001 - +IncGradGBPalTable_03: ; 520 db %11100100 db %11100100 db %11100100 - +IncGradGBPalTable_04: ; 523 db %11100100 db %11100100 db %11100100 - +IncGradGBPalTable_05: ; 526 db %10010000 db %10010000 db %10010000 - +IncGradGBPalTable_06: ; 529 db %01000000 db %01000000 db %01000000 - +IncGradGBPalTable_07: ; 52c db %00000000 db %00000000 db %00000000 ; 52f -IncGradGBPalTable_01: ; 52f - db %11111111 ; bgp - db %11111111 ; obp1 - db %11111111 ; obp2 - ; and so on... +IncGradGBPalTable_08: ; 52f + db %11111111 + db %11111111 + db %11111111 +IncGradGBPalTable_09: ; 532 db %11111110 db %11111110 db %11111000 - +IncGradGBPalTable_10: ; 535 db %11111001 db %11100100 db %11100100 - +IncGradGBPalTable_11: ; 538 db %11100100 db %11010000 db %11100000 - +IncGradGBPalTable_12: ; 53b db %11100100 db %11010000 db %11100000 - +IncGradGBPalTable_13: ; 53e db %10010000 db %10000000 db %10010000 - +IncGradGBPalTable_14: ; 541 db %01000000 db %01000000 db %01000000 - +IncGradGBPalTable_15: ; 544 db %00000000 db %00000000 db %00000000 From deb5d1ed4609292708f4d70fbf7152685c356d5c Mon Sep 17 00:00:00 2001 From: yenatch Date: Sat, 17 Aug 2013 01:12:03 -0400 Subject: [PATCH 64/84] <&iimarckus> kill those labels please --- main.asm | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/main.asm b/main.asm index 21de1e735..5e1f164c2 100644 --- a/main.asm +++ b/main.asm @@ -50770,18 +50770,12 @@ MenuData2_0x49d1c: ; 49d1c dw MainMenuText ; 49d20 -MainMenuText: -ContinueText: ; 0x49d24 +MainMenuText: ; 49d24 db "CONTINUE@" -NewGameText: ; 0x49d2d db "NEW GAME@" -OptionText: ; 0x49d36 db "OPTION@" -MysteryGiftText: ; 0x49d3d db "MYSTERY GIFT@" -MobileText: ; 0x49d4a db "MOBILE@" -MobileStudiumText: ; 0x49d51 db "MOBILE STUDIUM@" Label49d60: ; 0x49d60 From 75d5cc3bb66b24fa23ad0c925a25cad8ff5d6c6e Mon Sep 17 00:00:00 2001 From: yenatch Date: Sat, 17 Aug 2013 05:57:14 -0400 Subject: [PATCH 65/84] options menu --- main.asm | 586 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 582 insertions(+), 4 deletions(-) diff --git a/main.asm b/main.asm index 5e1f164c2..6fca3c687 100644 --- a/main.asm +++ b/main.asm @@ -16985,9 +16985,7 @@ MysteryGift: ; 5b54 ; 5b64 OptionsMenu: ; 5b64 - ld a, $39 - ld hl, $41d0 - rst FarCall + callba _OptionsMenu ret ; 5b6b @@ -66373,7 +66371,587 @@ INCBIN "baserom.gbc", $e0000, $e37f9 - $e0000 SECTION "bank39",DATA,BANK[$39] -INCBIN "baserom.gbc", $e4000, $e4579 - $e4000 +INCBIN "baserom.gbc", $e4000, $e41d0 - $e4000 + +_OptionsMenu: ; e41d0 + ld hl, $ffaa + ld a, [hl] + push af + ld [hl], $1 + call WhiteBGMap + ld hl, TileMap + ld b, $10 + ld c, $12 + call TextBox + ld hl, $c4ca + ld de, Stringe4241 + call PlaceString + xor a + ld [$cf63], a + ld c, $6 +.asm_e41f3 + push bc + xor a + ld [$ffa9], a + call Functione42d6 + pop bc + ld hl, $cf63 + inc [hl] + dec c + jr nz, .asm_e41f3 + call Functione4512 + xor a + ld [$cf63], a + inc a + ld [hBGMapMode], a + call WaitBGMap + ld b, $8 + call GetSGBLayout + call Function32f9 +.asm_e4217 + call Functiona57 + ld a, [hJoyPressed] + and $a + jr nz, .asm_e4234 + call Functione452a + jr c, .asm_e422a + call Functione42d6 + jr c, .asm_e4234 + +.asm_e422a + call Functione455c + ld c, $3 + call DelayFrames + jr .asm_e4217 + +.asm_e4234 + ld de, SFX_TRANSACTION + call StartSFX + call WaitSFX + pop af + ld [$ffaa], a + ret +; e4241 + +Stringe4241: ; e4241 + db "TEXT SPEED", $22 + db " :", $22 + db "BATTLE SCENE", $22 + db " :", $22 + db "BATTLE STYLE", $22 + db " :", $22 + db "SOUND", $22 + db " :", $22 + db "PRINT", $22 + db " :", $22 + db "MENU ACCOUNT", $22 + db " :", $22 + db "FRAME", $22 + db " :TYPE", $22 + db "CANCEL@" +; e42d6 + + +Functione42d6: ; e42d6 + ld a, [$cf63] + ld e, a + ld d, 0 + ld hl, .Pointers + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; e42e5 + +.Pointers + dw Options_TextSpeed + dw Options_BattleScene + dw Options_BattleStyle + dw Options_Sound + dw Options_Print + dw Options_MenuAccount + dw Options_Frame + dw Options_Cancel +; e42f5 + + +Options_TextSpeed: ; e42f5 + call Functione4346 + ld a, [hJoyPressed] + bit 5, a + jr nz, .asm_e430d + bit 4, a + jr z, .asm_e431f + ld a, c + cp $2 + jr c, .asm_e4309 + ld c, $ff + +.asm_e4309 + inc c + ld a, e + jr .asm_e4315 + +.asm_e430d + ld a, c + and a + jr nz, .asm_e4313 + ld c, $3 + +.asm_e4313 + dec c + ld a, d + +.asm_e4315 + ld b, a + ld a, [Options] + and $f0 + or b + ld [Options], a + +.asm_e431f + ld b, 0 + ld hl, .Strings + add hl, bc + add hl, bc + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $c4e7 + call PlaceString + and a + ret +; e4331 + +.Strings + dw .Fast + dw .Mid + dw .Slow + +.Fast + db "FAST@" +.Mid + db "MID @" +.Slow + db "SLOW@" +; e4346 + + +Functione4346: ; e4346 + ld a, [Options] + and $7 + cp $5 + jr z, .asm_e4359 + cp $1 + jr z, .asm_e435f + ld c, $1 + ld de, $0105 + ret + +.asm_e4359 + ld c, $2 + ld de, $0301 + ret + +.asm_e435f + ld c, $0 + ld de, $0503 + ret +; e4365 + + +Options_BattleScene: ; e4365 + ld hl, Options + ld a, [hJoyPressed] + bit 5, a + jr nz, .asm_e4378 + bit 4, a + jr z, .asm_e437e + bit 7, [hl] + jr nz, .asm_e4384 + jr .asm_e438b + +.asm_e4378 + bit 7, [hl] + jr z, .asm_e438b + jr .asm_e4384 + +.asm_e437e + bit 7, [hl] + jr z, .asm_e4384 + jr .asm_e438b + +.asm_e4384 + res 7, [hl] + ld de, .On + jr .asm_e4390 + +.asm_e438b + set 7, [hl] + ld de, .Off + +.asm_e4390 + ld hl, $c50f + call PlaceString + and a + ret +; e4398 + +.On + db "ON @" +.Off + db "OFF@" +; e43a0 + + +Options_BattleStyle: ; e43a0 + ld hl, Options + ld a, [hJoyPressed] + bit 5, a + jr nz, .asm_e43b3 + bit 4, a + jr z, .asm_e43b9 + bit 6, [hl] + jr nz, .asm_e43bd + jr .asm_e43c4 + +.asm_e43b3 + bit 6, [hl] + jr z, .asm_e43c4 + jr .asm_e43bd + +.asm_e43b9 + bit 6, [hl] + jr nz, .asm_e43c4 + +.asm_e43bd + res 6, [hl] + ld de, .Shift + jr .asm_e43c9 + +.asm_e43c4 + set 6, [hl] + ld de, .Set + +.asm_e43c9 + ld hl, $c537 + call PlaceString + and a + ret +; e43d1 + +.Shift + db "SHIFT@" +.Set + db "SET @" +; e43dd + + +Options_Sound: ; e43dd + ld hl, Options + ld a, [hJoyPressed] + bit 5, a + jr nz, .asm_e43f0 + bit 4, a + jr z, .asm_e43f6 + bit 5, [hl] + jr nz, .asm_e43fc + jr .asm_e4406 + +.asm_e43f0 + bit 5, [hl] + jr z, .asm_e4406 + jr .asm_e43fc + +.asm_e43f6 + bit 5, [hl] + jr nz, .asm_e440b + jr .asm_e4401 + +.asm_e43fc + res 5, [hl] + call Function3d47 + +.asm_e4401 + ld de, .Mono + jr .asm_e440e + +.asm_e4406 + set 5, [hl] + call Function3d47 + +.asm_e440b + ld de, .Stereo + +.asm_e440e + ld hl, $c55f + call PlaceString + and a + ret +; e4416 + +.Mono + db "MONO @" +.Stereo + db "STEREO@" +; e4424 + + +Options_Print: ; e4424 + call $4491 + ld a, [hJoyPressed] + bit 5, a + jr nz, .asm_e443c + bit 4, a + jr z, .asm_e4448 + ld a, c + cp $4 + jr c, .asm_e4438 + ld c, $ff + +.asm_e4438 + inc c + ld a, e + jr .asm_e4444 + +.asm_e443c + ld a, c + and a + jr nz, .asm_e4442 + ld c, $5 + +.asm_e4442 + dec c + ld a, d + +.asm_e4444 + ld b, a + ld [GBPrinter], a + +.asm_e4448 + ld b, $0 + ld hl, $445a + add hl, bc + add hl, bc + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $c587 + call PlaceString + and a + ret +; e445a + +.Strings + dw .Lightest + dw .Lighter + dw .Normal + dw .Darker + dw .Darkest + +.Lightest + db "LIGHTEST@" +.Lighter + db "LIGHTER @" +.Normal + db "NORMAL @" +.Darker + db "DARKER @" +.Darkest + db "DARKEST @" +; e4491 + + +Functione4491: ; e4491 + ld a, [GBPrinter] + and a + jr z, .asm_e44a9 + cp $20 + jr z, .asm_e44af + cp $60 + jr z, .asm_e44b5 + cp $7f + jr z, .asm_e44bb + ld c, $2 + ld de, $2060 + ret + +.asm_e44a9 + ld c, $0 + ld de, $7f20 + ret + +.asm_e44af + ld c, $1 + ld de, $0040 + ret + +.asm_e44b5 + ld c, $3 + ld de, $407f + ret + +.asm_e44bb + ld c, $4 + ld de, $6000 + ret +; e44c1 + +Options_MenuAccount: ; e44c1 + ld hl, Options2 + ld a, [hJoyPressed] + bit 5, a + jr nz, .asm_e44d4 + bit 4, a + jr z, .asm_e44da + bit 0, [hl] + jr nz, .asm_e44de + jr .asm_e44e5 + +.asm_e44d4 + bit 0, [hl] + jr z, .asm_e44e5 + jr .asm_e44de + +.asm_e44da + bit 0, [hl] + jr nz, .asm_e44e5 + +.asm_e44de + res 0, [hl] + ld de, .Off + jr .asm_e44ea + +.asm_e44e5 + set 0, [hl] + ld de, .On + +.asm_e44ea + ld hl, $c5af + call PlaceString + and a + ret +; e44f2 + +.Off + db "OFF@" +.On + db "ON @" +; e44fa + + +Options_Frame: ; e44fa + ld hl, TextBoxFrame + ld a, [hJoyPressed] + bit 5, a + jr nz, .asm_e450d + bit 4, a + jr nz, .asm_e4509 + and a + ret + +.asm_e4509 + ld a, [hl] + inc a + jr .asm_e450f + +.asm_e450d + ld a, [hl] + dec a + +.asm_e450f + and $7 + ld [hl], a + ; fallthrough +; e4512 + +Functione4512: ; e4512 + ld a, [TextBoxFrame] + ld hl, $c5dc + add "1" + ld [hl], a + call Functione5f + and a + ret +; e4520 + +Options_Cancel: ; e4520 + ld a, [hJoyPressed] + and BUTTON_A + jr nz, .asm_e4528 + and a + ret + +.asm_e4528 + scf + ret +; e452a + +Functione452a: ; e452a + ld hl, $cf63 + ld a, [$ffa9] + cp $80 + jr z, .asm_e4539 + cp $40 + jr z, .asm_e454b + and a + ret + +.asm_e4539 + ld a, [hl] + cp $7 + jr nz, .asm_e4542 + ld [hl], $0 + scf + ret + +.asm_e4542 + cp $5 + jr nz, .asm_e4548 + ld [hl], $5 + +.asm_e4548 + inc [hl] + scf + ret + +.asm_e454b + ld a, [hl] + cp $6 + jr nz, .asm_e4554 + ld [hl], $5 + scf + ret + +.asm_e4554 + and a + jr nz, .asm_e4559 + ld [hl], $8 + +.asm_e4559 + dec [hl] + scf + ret +; e455c + +Functione455c: ; e455c + ld hl, $c4b5 + ld de, $0014 + ld c, $10 +.asm_e4564 + ld [hl], $7f + add hl, de + dec c + jr nz, .asm_e4564 + ld hl, $c4c9 + ld bc, $0028 + ld a, [$cf63] + call AddNTimes + ld [hl], $ed + ret +; e4579 Functione4579: ; e4579 From 8af06f3cc2961f085cb8d0328f6d7c2093323132 Mon Sep 17 00:00:00 2001 From: yenatch Date: Mon, 19 Aug 2013 18:40:59 -0400 Subject: [PATCH 66/84] rename and clean up _Start, Init --- main.asm | 55 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 31 insertions(+), 24 deletions(-) diff --git a/main.asm b/main.asm index 6fca3c687..178ee3480 100644 --- a/main.asm +++ b/main.asm @@ -20,7 +20,7 @@ SECTION "rst20",HOME[$20] ; Unused SECTION "rst28",HOME[$28] ; JumpTable push de ld e, a - ld d, 00 + ld d, 0 add hl, de add hl, de ld a, [hli] @@ -52,7 +52,7 @@ SECTION "joypad",HOME[$60] ; joypad interrupt SECTION "romheader",HOME[$100] Start: nop - jp Function16e + jp _Start SECTION "start",HOME[$150] @@ -71,10 +71,10 @@ Reset: ; 150 set 7, [hl] ld c, $20 call DelayFrames - jr Function17d + jr Init ; 16e -Function16e: ; 16e +_Start: ; 16e cp $11 jr z, .asm_175 xor a @@ -89,7 +89,7 @@ Function16e: ; 16e ld [$ffea], a ; 17d -Function17d: ; 17d +Init: ; 17d di xor a ld [rIF], a @@ -109,10 +109,12 @@ Function17d: ; 17d ld [$d000], a ld a, $4 ld [rTAC], a -.asm_1a2 + +.wait ld a, [rLY] - cp $91 - jr nz, .asm_1a2 + cp 145 + jr nz, .wait + xor a ld [rLCDC], a ld hl, $c000 @@ -137,20 +139,18 @@ Function17d: ; 17d ld [$ffea], a pop af ld [hCGB], a - call Function25a + call ClearWRAM ld a, $1 ld [rSVBK], a - call Function245 + call ClearVRAM call ClearSprites call Function270 ld a, BANK(Function4031) rst Bankswitch + call Function4031 - -; Note that Function642e is called later assuming it's in the same bank. - xor a ld [$ffde], a ld [$ffcf], a @@ -174,9 +174,10 @@ Function17d: ; 17d xor a ld [hBGMapAddress], a callba Function14089 + xor a - ld [$6000], a - ld [$0000], a + ld [MBC3LatchClock], a + ld [MBC3SRAMEnable], a ld a, [hCGB] and a @@ -189,6 +190,7 @@ Function17d: ; 17d ld a, $f ld [rIE], a ei + call DelayFrame ld a, $30 call Predef @@ -198,12 +200,16 @@ Function17d: ; 17d jp Function642e ; 245 -Function245: ; 245 - ld a, $1 +ClearVRAM: ; 245 +; Wipe VRAM banks 0 and 1 + + ld a, 1 ld [rVBK], a - call $024f + call .clear + xor a ld [rVBK], a +.clear ld hl, VTiles0 ld bc, $2000 xor a @@ -211,8 +217,10 @@ Function245: ; 245 ret ; 25a -Function25a: ; 25a - ld a, $1 +ClearWRAM: ; 25a +; Wipe swappable WRAM banks (1-7) + + ld a, 1 .asm_25c push af ld [rSVBK], a @@ -222,7 +230,7 @@ Function25a: ; 25a call ByteFill pop af inc a - cp $8 + cp 8 jr nc, .asm_25c ret ; 270 @@ -239,7 +247,6 @@ Function270: ; 270 ; 283 - VBlank: ; 283 INCLUDE "engine/vblank.asm" @@ -18205,14 +18212,14 @@ Function6389: ; 6389 ld a, $13 ld hl, $554c rst FarCall - jp Function17d + jp Init ; 6392 Function6392: ; 6392 ld a, $13 ld hl, $53b1 rst FarCall - jp Function17d + jp Init ; 639b Function639b: ; 639b From 084083add038cf3618803be76282640ca071bbc4 Mon Sep 17 00:00:00 2001 From: yenatch Date: Mon, 19 Aug 2013 18:42:01 -0400 Subject: [PATCH 67/84] hram: hWX, hWY --- hram.asm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/hram.asm b/hram.asm index 4bbd5ddb2..3301c7262 100644 --- a/hram.asm +++ b/hram.asm @@ -41,6 +41,9 @@ hMathBuffer EQU $ffb8 hLCDStatCustom EQU $ffc6 +hWX EQU $ffd1 +hWY EQU $ffd2 + hBGMapMode EQU $ffd4 hBGMapThird EQU $ffd5 hBGMapAddress EQU $ffd6 From 449bda272ae8f85a7a2a23fd1e1b80bcf4157245 Mon Sep 17 00:00:00 2001 From: yenatch Date: Mon, 19 Aug 2013 18:42:26 -0400 Subject: [PATCH 68/84] $ffd1 $ffd2 -> hWX hWY --- engine/vblank.asm | 4 ++-- main.asm | 60 +++++++++++++++++++++++------------------------ 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/engine/vblank.asm b/engine/vblank.asm index ea1d47260..f2f36b96d 100644 --- a/engine/vblank.asm +++ b/engine/vblank.asm @@ -92,10 +92,10 @@ VBlank0: ; 2b1 ld a, [$ffd0] ld [rSCY], a ; window y - ld a, [$ffd2] + ld a, [hWY] ld [rWY], a ; window x + 7 - ld a, [$ffd1] + ld a, [hWX] ld [rWX], a ; some time management is in order diff --git a/main.asm b/main.asm index 178ee3480..ec3d29877 100644 --- a/main.asm +++ b/main.asm @@ -159,10 +159,10 @@ Init: ; 17d ld a, $8 ld [rSTAT], a ld a, $90 - ld [$ffd2], a + ld [hWY], a ld [rWY], a ld a, $7 - ld [$ffd1], a + ld [hWX], a ld [rWX], a ld a, $e3 ld [rLCDC], a @@ -8966,7 +8966,7 @@ Function2de2: ; 2de2 ld [hBGMapMode], a call Function2e31 ld a, $90 - ld [$ffd2], a + ld [hWY], a call Functione4a ld a, $2e ld hl, $4000 @@ -17849,17 +17849,17 @@ IntroFadePalettes: ; 0x617c Function6182: ; 6182 ld a, $77 - ld [$ffd1], a + ld [hWX], a call DelayFrame ld a, $e4 call DmgToCgbBGPals .asm_618e call DelayFrame - ld a, [$ffd1] + ld a, [hWX] sub $8 cp $ff ret z - ld [$ffd1], a + ld [hWX], a jr .asm_618e ; 619c @@ -17964,9 +17964,9 @@ Function620b: ; 620b ld [$ffcf], a ld [$ffd0], a ld a, $7 - ld [$ffd1], a + ld [hWX], a ld a, $90 - ld [$ffd2], a + ld [hWY], a ld b, $8 call GetSGBLayout call Function485 @@ -18101,7 +18101,7 @@ TitleScreenEntrance: ; 62bc call StartMusic ld a, $88 - ld [$ffd2], a + ld [hWY], a ret ; 62f6 @@ -18295,7 +18295,7 @@ Function642e: ; 642e ld [$ffcf], a ld [$ffd0], a ld a, $90 - ld [$ffd2], a + ld [hWY], a call WaitBGMap jp Function620b ; 6454 @@ -18325,7 +18325,7 @@ Function6473: ; 6473 ld [hLCDStatCustom], a ld [hBGMapMode], a ld a, $90 - ld [$ffd2], a + ld [hWY], a call Function2173 ld a, $9c call Function64b9 @@ -18340,7 +18340,7 @@ Function6473: ; 6473 ld [hCGBPalUpdate], a xor a ld [hBGMapMode], a - ld [$ffd2], a + ld [hWY], a ld a, $1 ld hl, $64db rst FarCall @@ -18378,7 +18378,7 @@ Function64bf: ; 64bf Function64cd: ; 64cd call Functione5f ld a, $90 - ld [$ffd2], a + ld [hWY], a call Function2e31 call $0e51 ret @@ -26467,7 +26467,7 @@ Function11c51: ; 11c51 ld [hBGMapMode], a ld [PlayerEvaLevel], a ld a, $7 - ld [$ffd1], a + ld [hWX], a ret ; 11cb7 @@ -37949,7 +37949,7 @@ Function2ee2f: ; 2ee2f call ClearTileMap xor a ld [hBGMapMode], a - ld [$ffd2], a + ld [hWY], a ld [rWY], a ld [$ffde], a ret @@ -48347,7 +48347,7 @@ Function3fb6c: ; 3fb6c ld [$ffde], a ld [$ffd0], a ld a, $90 - ld [$ffd2], a + ld [hWY], a ld [rWY], a call WaitBGMap xor a @@ -48364,7 +48364,7 @@ Function3fb6c: ; 3fb6c ld a, $13 call Predef xor a - ld [$ffd2], a + ld [hWY], a ld [rWY], a call WaitBGMap call HideSprites @@ -48372,7 +48372,7 @@ Function3fb6c: ; 3fb6c call GetSGBLayout call Function32f9 ld a, $90 - ld [$ffd2], a + ld [hWY], a xor a ld [$ffcf], a ret @@ -48606,9 +48606,9 @@ INCLUDE "battle/effect_command_pointers.asm" SECTION "bank10",DATA,BANK[$10] Function40000: ; 40000 - ld a, [$ffd1] + ld a, [hWX] ld l, a - ld a, [$ffd2] + ld a, [hWY] ld h, a push hl ld a, [$ffcf] @@ -48655,9 +48655,9 @@ Function40000: ; 40000 ld [$ffcf], a pop hl ld a, l - ld [$ffd1], a + ld [hWX], a ld a, h - ld [$ffd2], a + ld [hWY], a ret ; 40063 @@ -60350,7 +60350,7 @@ Function91af3: ; 91af3 ld [$ffaa], a call WhiteBGMap ld a, $90 - ld [$ffd2], a + ld [hWY], a xor a ld [hBGMapAddress], a ld a, $98 @@ -64264,7 +64264,7 @@ Functionb800a: ; b800a ld [$c2d8], a ld a, $90 ld [rWY], a - ld [$ffd2], a + ld [hWY], a xor a ld [hLCDStatCustom], a ret @@ -66974,7 +66974,7 @@ Functione4579: ; e4579 ld [$ffcf], a ld [$ffd0], a ld a, $90 - ld [$ffd2], a + ld [hWY], a call WaitBGMap ld b, $19 call GetSGBLayout @@ -67065,7 +67065,7 @@ Functione45e8: ; e45e8 ld a, $1 ld [hBGMapMode], a ld a, $90 - ld [$ffd2], a + ld [hWY], a ld de, $e4e4 call DmgToCgbObjPals ret @@ -67132,9 +67132,9 @@ Functione48ac: ; e48ac ld [$ffcf], a ld [$ffd0], a ld a, $7 - ld [$ffd1], a + ld [hWX], a ld a, $90 - ld [$ffd2], a + ld [hWY], a pop af ld [$ff9e], a pop af @@ -72335,9 +72335,9 @@ StartTitleScreen: ; 10ed67 ld a, $8 ld [$ffd0], a ld a, $7 - ld [$ffd1], a + ld [hWX], a ld a, $90 - ld [$ffd2], a + ld [hWY], a ld a, $1 ld [hCGBPalUpdate], a From b66bac8a449fd6b418094c21ed5c4fdc151dc293 Mon Sep 17 00:00:00 2001 From: yenatch Date: Mon, 19 Aug 2013 18:44:57 -0400 Subject: [PATCH 69/84] hram: hSCX, hSCY --- hram.asm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hram.asm b/hram.asm index 3301c7262..d8e8d0f34 100644 --- a/hram.asm +++ b/hram.asm @@ -41,6 +41,8 @@ hMathBuffer EQU $ffb8 hLCDStatCustom EQU $ffc6 +hSCX EQU $ffcf +hSCY EQU $ffd0 hWX EQU $ffd1 hWY EQU $ffd2 From df21dbccb740b05a649f00f5e0f8c1a63eb75f8e Mon Sep 17 00:00:00 2001 From: yenatch Date: Mon, 19 Aug 2013 18:46:56 -0400 Subject: [PATCH 70/84] $ffcf $ffd0 -> hSCX hSCY --- engine/vblank.asm | 14 +++--- main.asm | 106 +++++++++++++++++++++++----------------------- 2 files changed, 60 insertions(+), 60 deletions(-) diff --git a/engine/vblank.asm b/engine/vblank.asm index f2f36b96d..3088df7e3 100644 --- a/engine/vblank.asm +++ b/engine/vblank.asm @@ -86,10 +86,10 @@ VBlank0: ; 2b1 ld [$ff8a], a ; scroll x - ld a, [$ffcf] + ld a, [hSCX] ld [rSCX], a ; scroll y - ld a, [$ffd0] + ld a, [hSCY] ld [rSCY], a ; window y ld a, [hWY] @@ -215,11 +215,11 @@ VBlank1: ; 337 ld [$ff8a], a ; scroll x - ld a, [$ffcf] + ld a, [hSCX] ld [rSCX], a ; scroll y - ld a, [$ffd0] + ld a, [hSCY] ld [rSCY], a ; time-sensitive fns @@ -323,10 +323,10 @@ VBlank3: ; 396 ld [$ff8a], a ; scroll x - ld a, [$ffcf] + ld a, [hSCX] ld [rSCX], a ; scroll y - ld a, [$ffd0] + ld a, [hSCY] ld [rSCY], a ; any pals to update? @@ -455,7 +455,7 @@ VBlank5: ; 400 ld [$ff8a], a ; scroll x - ld a, [$ffcf] + ld a, [hSCX] ld [rSCX], a ; if we can update pals, skip this part diff --git a/main.asm b/main.asm index ec3d29877..7870a6684 100644 --- a/main.asm +++ b/main.asm @@ -153,8 +153,8 @@ Init: ; 17d call Function4031 xor a ld [$ffde], a - ld [$ffcf], a - ld [$ffd0], a + ld [hSCX], a + ld [hSCY], a ld [rJOYP], a ld a, $8 ld [rSTAT], a @@ -17961,8 +17961,8 @@ Function620b: ; 620b call Function3200 xor a ld [hLCDStatCustom], a - ld [$ffcf], a - ld [$ffd0], a + ld [hSCX], a + ld [hSCY], a ld a, $7 ld [hWX], a ld a, $90 @@ -18060,11 +18060,11 @@ TitleScreenEntrance: ; 62bc ; Animate the logo: ; Move each line by 4 pixels until our count hits 0. - ld a, [$ffcf] + ld a, [hSCX] and a jr z, .done sub 4 - ld [$ffcf], a + ld [hSCX], a ; Lay out a base (all lines scrolling together). ld e, a @@ -18292,8 +18292,8 @@ Function642e: ; 642e xor a ld [hBGMapAddress], a ld [hJoyDown], a - ld [$ffcf], a - ld [$ffd0], a + ld [hSCX], a + ld [hSCY], a ld a, $90 ld [hWY], a call WaitBGMap @@ -18351,8 +18351,8 @@ Function6473: ; 6473 ld a, $98 ld [$d153], a xor a - ld [$ffcf], a - ld [$ffd0], a + ld [hSCX], a + ld [hSCY], a call Function5958 ret ; 64b9 @@ -26361,8 +26361,8 @@ Function11915: ; 11915 callab Function8cf53 call ClearSprites xor a - ld [$ffcf], a - ld [$ffd0], a + ld [hSCX], a + ld [hSCY], a scf ret ; 11940 @@ -26458,9 +26458,9 @@ Function11c51: ; 11c51 ld [hli], a ld [hl], $7e xor a - ld [$ffd0], a + ld [hSCY], a ld [$c3bf], a - ld [$ffcf], a + ld [hSCX], a ld [$c3c0], a ld [$cf63], a ld [$cf64], a @@ -48345,7 +48345,7 @@ Function3fb6c: ; 3fb6c call Function3fbd6 xor a ld [$ffde], a - ld [$ffd0], a + ld [hSCY], a ld a, $90 ld [hWY], a ld [rWY], a @@ -48374,7 +48374,7 @@ Function3fb6c: ; 3fb6c ld a, $90 ld [hWY], a xor a - ld [$ffcf], a + ld [hSCX], a ret ; 3fbd6 @@ -48611,7 +48611,7 @@ Function40000: ; 40000 ld a, [hWY] ld h, a push hl - ld a, [$ffcf] + ld a, [hSCX] push af ld hl, Options ld a, [hl] @@ -48652,7 +48652,7 @@ Function40000: ; 40000 pop af ld [Options], a pop af - ld [$ffcf], a + ld [hSCX], a pop hl ld a, l ld [hWX], a @@ -53352,8 +53352,8 @@ Function4e881: ; 4e881 xor a call ByteFill xor a - ld [$ffd0], a - ld [$ffcf], a + ld [hSCY], a + ld [hSCX], a call EnableLCD ld hl, $68bd call PrintText @@ -53390,8 +53390,8 @@ Function4e8c2: ; 4e8c2 dec c jr nz, .asm_4e8ee xor a - ld [$ffd0], a - ld [$ffcf], a + ld [hSCY], a + ld [hSCX], a call EnableLCD call Function3200 call Function32f9 @@ -53439,7 +53439,7 @@ Function4e980: ; 4e980 Function4e998: ; 4e998 call Function4e9e5 ld a, $90 - ld [$ffcf], a + ld [hSCX], a ld a, $e4 call DmgToCgbBGPals ld de, $e4e4 @@ -53459,7 +53459,7 @@ Function4e9ab: ; 4e9ab cp $60 jr c, .asm_4e9b3 ld a, d - ld [$ffcf], a + ld [hSCX], a call Function4e9f1 inc e inc e @@ -57755,9 +57755,9 @@ Function865b5: ; 865b5 ld a, $13 call Predef ld a, $d0 - ld [$ffd0], a + ld [hSCY], a ld a, $90 - ld [$ffcf], a + ld [hSCX], a call WaitBGMap xor a ld [hBGMapMode], a @@ -57776,30 +57776,30 @@ Function865b5: ; 865b5 call WaitBGMap xor a ld [hBGMapMode], a - ld [$ffd0], a + ld [hSCY], a call Function86643 ret ; 86635 Function86635: ; 86635 .asm_86635 - ld a, [$ffcf] + ld a, [hSCX] cp $70 ret z add $4 - ld [$ffcf], a + ld [hSCX], a call DelayFrame jr .asm_86635 ; 86643 Function86643: ; 86643 .asm_86643 - ld a, [$ffcf] + ld a, [hSCX] and a ret z dec a dec a - ld [$ffcf], a + ld [hSCX], a call DelayFrame jr .asm_86643 ; 86650 @@ -57940,9 +57940,9 @@ Function86810: ; 86810 ld a, $13 call Predef ld a, $d0 - ld [$ffd0], a + ld [hSCY], a ld a, $90 - ld [$ffcf], a + ld [hSCX], a call WaitBGMap xor a ld [hBGMapMode], a @@ -57967,11 +57967,11 @@ Function86810: ; 86810 ld a, $13 call Predef ld a, $c0 - ld [$ffcf], a + ld [hSCX], a call WaitBGMap xor a ld [hBGMapMode], a - ld [$ffd0], a + ld [hSCY], a call Function86643 xor a ld [hBGMapMode], a @@ -62668,7 +62668,7 @@ Function97ebc: ; 97ebc ; 97ec3 Function97ec3: ; 97ec3 - ld a, [$ffd0] + ld a, [hSCY] ld hl, $0004 add hl, bc ld [hl], a @@ -62686,24 +62686,24 @@ Function97ecd: ; 97ecd jr z, .asm_97ee4 ld hl, $0002 add hl, bc - ld a, [$ffd0] + ld a, [hSCY] sub [hl] - ld [$ffd0], a + ld [hSCY], a ret .asm_97ee4 ld hl, $0002 add hl, bc - ld a, [$ffd0] + ld a, [hSCY] add [hl] - ld [$ffd0], a + ld [hSCY], a ret .asm_97eee ld hl, $0004 add hl, bc ld a, [hl] - ld [$ffd0], a + ld [hSCY], a call Function97e72 ret ; 97ef9 @@ -65436,8 +65436,8 @@ Functioncc11c: ; cc11c call Functioncc8a4 call Functioncc1e2 xor a - ld [$ffcf], a - ld [$ffd0], a + ld [hSCX], a + ld [hSCY], a call Functioncc1fb call Functioncc1bb @@ -65752,8 +65752,8 @@ Functioncc8f6: ; cc8f6 ld de, $e4e4 call DmgToCgbObjPals xor a - ld [$ffcf], a - ld [$ffd0], a + ld [hSCX], a + ld [hSCY], a call Functioncc1fb ld a, $1 ld [hBGMapMode], a @@ -66971,8 +66971,8 @@ Functione4579: ; e4579 xor a ld [hBGMapAddress], a ld [hJoyDown], a - ld [$ffcf], a - ld [$ffd0], a + ld [hSCX], a + ld [hSCY], a ld a, $90 ld [hWY], a call WaitBGMap @@ -67060,8 +67060,8 @@ Functione45e8: ; e45e8 ld [$cf63], a ld [$cf64], a ld [$cf65], a - ld [$ffcf], a - ld [$ffd0], a + ld [hSCX], a + ld [hSCY], a ld a, $1 ld [hBGMapMode], a ld a, $90 @@ -67129,8 +67129,8 @@ Functione48ac: ; e48ac call ClearSprites call ClearTileMap xor a - ld [$ffcf], a - ld [$ffd0], a + ld [hSCX], a + ld [hSCY], a ld a, $7 ld [hWX], a ld a, $90 @@ -72331,9 +72331,9 @@ StartTitleScreen: ; 10ed67 ; ld a, $70 - ld [$ffcf], a + ld [hSCX], a ld a, $8 - ld [$ffd0], a + ld [hSCY], a ld a, $7 ld [hWX], a ld a, $90 From 3460b82d22d023511692e1aa7ccec520d2514268 Mon Sep 17 00:00:00 2001 From: yenatch Date: Mon, 19 Aug 2013 20:49:16 -0400 Subject: [PATCH 71/84] update hram addresses in engine/vblank.asm --- engine/vblank.asm | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/engine/vblank.asm b/engine/vblank.asm index 3088df7e3..6a319356c 100644 --- a/engine/vblank.asm +++ b/engine/vblank.asm @@ -71,18 +71,18 @@ VBlank0: ; 2b1 ; advance rng ld a, [rDIV] ld b, a - ld a, [$ffe1] + ld a, [hRandomAdd] adc b - ld [$ffe1], a + ld [hRandomAdd], a ld a, [rDIV] ld b, a - ld a, [$ffe2] + ld a, [hRandomSub] sbc b - ld [$ffe2], a + ld [hRandomSub], a ; save bank - ld a, [$ff9d] ; current bank + ld a, [hROMBank] ; current bank ld [$ff8a], a ; scroll x @@ -123,7 +123,7 @@ VBlank0: ; 2b1 .doneframeaction ; oam update off? - ld a, [$ffd8] + ld a, [hOAMUpdate] and a jr nz, .vblankoccurred @@ -172,7 +172,7 @@ VBlank0: ; 2b1 rst Bankswitch ; restore bank ; - ld a, [$ff98] + ld a, [hSeconds] ld [$ffe3], a ret @@ -183,7 +183,7 @@ VBlank2: ; 325 ; sound only ; save bank - ld a, [$ff9d] + ld a, [hROMBank] ld [$ff8a], a ; update sound @@ -211,7 +211,7 @@ VBlank1: ; 337 ; sound / lcd stat ; save bank - ld a, [$ff9d] + ld a, [hROMBank] ld [$ff8a], a ; scroll x @@ -291,7 +291,7 @@ UpdatePals: ; 37f ; update pals for either dmg or cgb ; check cgb - ld a, [$ffe6] + ld a, [hCGB] and a jp nz, UpdateCGBPals @@ -319,7 +319,7 @@ VBlank3: ; 396 ; sound / lcd stat ; save bank - ld a, [$ff9d] + ld a, [hROMBank] ld [$ff8a], a ; scroll x @@ -330,7 +330,7 @@ VBlank3: ; 396 ld [rSCY], a ; any pals to update? - ld a, [$ffe5] + ld a, [hCGBPalUpdate] and a call nz, ForceUpdateCGBPals jr c, .vblankoccurred @@ -404,7 +404,7 @@ VBlank4: ; 3df ; sound ; save bank - ld a, [$ff9d] + ld a, [hROMBank] ld [$ff8a], a call UpdateBGMap @@ -451,7 +451,7 @@ VBlank5: ; 400 ; ; save bank - ld a, [$ff9d] + ld a, [hROMBank] ld [$ff8a], a ; scroll x @@ -509,7 +509,7 @@ VBlank6: ; 436 ; sound ; save bank - ld a, [$ff9d] + ld a, [hROMBank] ld [$ff8a], a ; inc frame counter From 5b7d887f9db07bb510ada5abd2ce5224346cae3b Mon Sep 17 00:00:00 2001 From: yenatch Date: Tue, 20 Aug 2013 01:35:15 -0400 Subject: [PATCH 72/84] comment program init functions --- main.asm | 77 ++++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 56 insertions(+), 21 deletions(-) diff --git a/main.asm b/main.asm index 7870a6684..6919e9a00 100644 --- a/main.asm +++ b/main.asm @@ -27,7 +27,7 @@ SECTION "rst28",HOME[$28] ; JumpTable ld h, [hl] ld l, a pop de - jp [hl] ; (actually jp hl) + jp [hl] ; rst30 is midst rst28 @@ -64,16 +64,20 @@ Reset: ; 150 call ClearPalettes xor a ld [rIF], a - ld a, $1 + ld a, 1 ; VBlank int ld [rIE], a ei + ld hl, $cfbe set 7, [hl] - ld c, $20 + + ld c, 32 call DelayFrames + jr Init ; 16e + _Start: ; 16e cp $11 jr z, .asm_175 @@ -89,8 +93,11 @@ _Start: ; 16e ld [$ffea], a ; 17d + Init: ; 17d + di + xor a ld [rIF], a ld [rIE], a @@ -107,7 +114,8 @@ Init: ; 17d ld [rTMA], a ld [rTAC], a ld [$d000], a - ld a, $4 + + ld a, %100 ; Start timer at 4096Hz ld [rTAC], a .wait @@ -117,63 +125,87 @@ Init: ; 17d xor a ld [rLCDC], a + +; Clear WRAM bank 0 ld hl, $c000 - ld bc, $1000 + ld bc, $d000 - $c000 .asm_1b1 - ld [hl], $0 + ld [hl], 0 inc hl dec bc ld a, b or c jr nz, .asm_1b1 - ld sp, $c0ff + + ld sp, Stack - 1 + +; Clear HRAM ld a, [hCGB] push af ld a, [$ffea] push af xor a - ld hl, hPushOAM - ld bc, $007f + ld hl, $ff80 + ld bc, $ffff - $ff80 call ByteFill pop af ld [$ffea], a pop af ld [hCGB], a + call ClearWRAM - ld a, $1 + ld a, 1 ld [rSVBK], a call ClearVRAM call ClearSprites call Function270 - ld a, BANK(Function4031) + ld a, BANK(LoadPushOAM) rst Bankswitch - call Function4031 + call LoadPushOAM + xor a ld [$ffde], a ld [hSCX], a ld [hSCY], a ld [rJOYP], a - ld a, $8 + + ld a, $8 ; HBlank int enable ld [rSTAT], a + ld a, $90 ld [hWY], a ld [rWY], a - ld a, $7 + + ld a, 7 ld [hWX], a ld [rWX], a - ld a, $e3 + + ld a, %11100011 + ; LCD on + ; Win tilemap 1 + ; Win on + ; BG/Win tiledata 0 + ; BG Tilemap 0 + ; OBJ 8x8 + ; OBJ on + ; BG on ld [rLCDC], a + ld a, $ff ld [$ffcb], a + callba Function9890 + ld a, $9c ld [$ffd7], a + xor a ld [hBGMapAddress], a - callba Function14089 + + callba StartClock xor a ld [MBC3LatchClock], a @@ -187,19 +219,22 @@ Init: ; 17d xor a ld [rIF], a - ld a, $f + ld a, %1111 ; VBlank, LCDStat, Timer, Serial interrupts ld [rIE], a ei call DelayFrame + ld a, $30 call Predef + call CleanSoundRestart xor a ld [CurMusic], a - jp Function642e + jp GameInit ; 245 + ClearVRAM: ; 245 ; Wipe VRAM banks 0 and 1 @@ -13043,7 +13078,7 @@ Function4000: ; 4000 db "Waiting...!@" ; 4031 -Function4031: ; 4031 +LoadPushOAM: ; 4031 ld c, hPushOAM & $ff ld b, PushOAMEnd - PushOAM ld hl, PushOAM @@ -18280,7 +18315,7 @@ Function63e2: ; 63e2 db $75, $76, $77, $78, $79, $7a, $7b, $7c, "@" ; 642e -Function642e: ; 642e +GameInit: ; 642e ld a, $5 ld hl, $4f1c rst FarCall @@ -28969,7 +29004,7 @@ Function1406a: ; 1406a -Function14089: ; 14089 +StartClock: ; 14089 call GetClock call Function1409b call FixDays From 91474f1b86557c057404a023a03f7ee299d01443 Mon Sep 17 00:00:00 2001 From: yenatch Date: Tue, 20 Aug 2013 01:38:05 -0400 Subject: [PATCH 73/84] MBC3SRAMEnable is actually MBC3SRamEnable --- main.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.asm b/main.asm index 6919e9a00..29ae12a40 100644 --- a/main.asm +++ b/main.asm @@ -209,7 +209,7 @@ Init: ; 17d xor a ld [MBC3LatchClock], a - ld [MBC3SRAMEnable], a + ld [MBC3SRamEnable], a ld a, [hCGB] and a From 29085399a2342a104c1afd0b9fea5b6d6d7455a3 Mon Sep 17 00:00:00 2001 From: yenatch Date: Tue, 20 Aug 2013 02:09:35 -0400 Subject: [PATCH 74/84] copyright graphics --- gfx/misc/copyright.2bpp | Bin 0 -> 464 bytes main.asm | 41 ++++++++++++++++++++++++---------------- 2 files changed, 25 insertions(+), 16 deletions(-) create mode 100644 gfx/misc/copyright.2bpp diff --git a/gfx/misc/copyright.2bpp b/gfx/misc/copyright.2bpp new file mode 100644 index 0000000000000000000000000000000000000000..ba11614b1869ce675a80c062fb78e413e820b59e GIT binary patch literal 464 zcmYMuv1-CV7{KuZ!9~P15b+rTfvX_N0Lg8e>jdG-|=yNm-Uyk`FuHJeZPxD-$%!BUE6jaq!5bRgv9Y= z61TyZA4-ctQ7%v5;JMih4BHNTFh7toegJRZzn~YeuJ?L3B3%btR;%Tdfi=zZ2noY* z0Y)f_2*H>Tu%dY5OyrHL`JP&$Jq4Q`t<3CHbAC+I^?H+3HjGD+X@V&|ol? Date: Tue, 20 Aug 2013 02:55:14 -0400 Subject: [PATCH 75/84] johto/kanto maps --- gfx/misc/johto.bin | Bin 0 -> 361 bytes gfx/misc/kanto.bin | Bin 0 -> 361 bytes main.asm | 14 ++++++++------ 3 files changed, 8 insertions(+), 6 deletions(-) create mode 100644 gfx/misc/johto.bin create mode 100644 gfx/misc/kanto.bin diff --git a/gfx/misc/johto.bin b/gfx/misc/johto.bin new file mode 100644 index 0000000000000000000000000000000000000000..faa5efe7094faa4219e736bb01ff0ec394839073 GIT binary patch literal 361 zcmZXQ+YZ7o3`4mLCOU?QC?SLwx|aL@e;?Q#;srmn>5=V7UABKZXk5roxkN}c#-?e$ zJf-|)xGvQ?Y$mcBeKGFG^weeES5}Hc!Ph)IkRj%i!9Nqu` literal 0 HcmV?d00001 diff --git a/gfx/misc/kanto.bin b/gfx/misc/kanto.bin new file mode 100644 index 0000000000000000000000000000000000000000..8a08cd8267d48e7795ac91e39c51da58ff9faaf7 GIT binary patch literal 361 zcmZXQ%MOAt5JiPV!O|#~KpiJ8pnz_C{QuYKoyvlQN!p~RXL{QnicMWYyQ*nM6bUOv zVrb1e01Xk@Jo&d_#`ET;!}z^Qsw&gzjH)1)$h4YNlR0{2)j$vk(C zi|3%jU=7fi&eNVN6{*Z)a`L23Or)mQkTEZ>65C~VLu2fT;-Zq!vZokhUBx0fFj&UI cq#qbfV()#v-k+N*Pi1*b+hq66mlluj4-zaL&Hw-a literal 0 HcmV?d00001 diff --git a/main.asm b/main.asm index 7cb9812c2..f4ec0c134 100644 --- a/main.asm +++ b/main.asm @@ -60936,19 +60936,21 @@ TownMapPlayerIcon: ; 91fa6 ; 0x91ff2 Function91ff2: ; 91ff2 - ld hl, $4ba0 + ld hl, TownMapGFX ld de, VTiles2 - ld bc, $3e30 + ld bc, BANK(TownMapGFX) << 8 + $30 call Functione73 ret ; 91fff -JohtoMap: -INCBIN "baserom.gbc", $91fff, $92168 - $91fff +JohtoMap: ; 91fff +INCBIN "gfx/misc/johto.bin" +; 92168 -KantoMap: -INCBIN "baserom.gbc", $92168, $922d1 - $92168 +KantoMap: ; 92168 +INCBIN "gfx/misc/kanto.bin" +; 922d1 INCBIN "baserom.gbc", $922d1, $92402 - $922d1 From 6b2faef6f10ed872f01c6f3436fd7244c3619040 Mon Sep 17 00:00:00 2001 From: yenatch Date: Tue, 20 Aug 2013 03:18:35 -0400 Subject: [PATCH 76/84] remove garbage data in tileset 31 metatile defs --- tilesets/31_metatiles.bin | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tilesets/31_metatiles.bin b/tilesets/31_metatiles.bin index d932c1ef1..a8b82d8cf 100644 --- a/tilesets/31_metatiles.bin +++ b/tilesets/31_metatiles.bin @@ -1 +1 @@ - ,-./<=>?**** ,-./<=>? ***&'&'6767&'67&'&'6767&'67&'67*** &'67&'67(9&'8:67&'67&'&'6767&'&'6767&'67&'&'6767&'67&'67&'67&'67)**********+** !!! !!! !!!!!!!!!!!!!!!!!!"!!!"!!!"02 !!!0111#$$$#$!!!!1111$$$$$$!!!"1112$$$%$%#$$$#$$$#$34#$$$#$$$#$$$3444$$$$$$$$$$$$4444$$$%$$$%$$$%4445}PP }PP}PPPPPPPP}PP}P&}P,}PPP2}P8}PP@}PPPPH}PPPN}PT}PPY}Pa}Pe}Pk}Pp}Py}P}P}PP}PP}PP}PP}P}PP}P}PPP}}P}P}P}P}PP}}P}PPP}P}PPP}}P}P}~~ ~P~PPP~~PPP#~PPP&~P)~PPPP,~P2~P8~<~PPP>~PPPPC~PPJ~PPQ~PPX~P^~Pe~Pi~PPo~Ps~y~~~P~P~PPP~P~P~PP~PP \ No newline at end of file + ,-./<=>?**** ,-./<=>? ***&'&'6767&'67&'&'6767&'67&'67*** &'67&'67(9&'8:67&'67&'&'6767&'&'6767&'67&'&'6767&'67&'67&'67&'67)**********+** !!! !!! !!!!!!!!!!!!!!!!!!"!!!"!!!"02 !!!0111#$$$#$!!!!1111$$$$$$!!!"1112$$$%$%#$$$#$$$#$34#$$$#$$$#$$$3444$$$$$$$$$$$$4444$$$%$$$%$$$%4445 \ No newline at end of file From 4b0889b3962fa48d0ddf07de5880151cbe735065 Mon Sep 17 00:00:00 2001 From: yenatch Date: Tue, 20 Aug 2013 03:20:49 -0400 Subject: [PATCH 77/84] remove unnecessary incbin lengths --- main.asm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/main.asm b/main.asm index f4ec0c134..97fe6ae30 100644 --- a/main.asm +++ b/main.asm @@ -33624,7 +33624,7 @@ INCBIN "tilesets/17_collision.bin" ; todo Tileset31Meta: ; 0x23891 -INCBIN "tilesets/31_metatiles.bin", $0, $280 +INCBIN "tilesets/31_metatiles.bin" ; 0x23b11 EggMovePointers: ; 0x23b11 @@ -67517,13 +67517,13 @@ Music_BugCatchingContest: INCLUDE "audio/music/bugcatchingcontest.asm" SECTION "bank3E",DATA,BANK[$3E] FontExtra: -INCBIN "gfx/misc/font_extra.2bpp", $0, $200 +INCBIN "gfx/misc/font_extra.2bpp" Font: -INCBIN "gfx/misc/font.1bpp", $0, $400 +INCBIN "gfx/misc/font.1bpp" FontBattleExtra: -INCBIN "gfx/misc/font_battle_extra.2bpp", $0, $200 +INCBIN "gfx/misc/font_battle_extra.2bpp" Frames: ; f8800 INCBIN "gfx/frames/1.1bpp" From 99d2ee2bdc0c3ed7206a91bbeee61b32c83584ca Mon Sep 17 00:00:00 2001 From: yenatch Date: Tue, 20 Aug 2013 03:26:37 -0400 Subject: [PATCH 78/84] split out program init --- engine/init.asm | 225 +++++++++++++++++++++++++++++++++++++++++++++++ main.asm | 226 +----------------------------------------------- 2 files changed, 226 insertions(+), 225 deletions(-) create mode 100644 engine/init.asm diff --git a/engine/init.asm b/engine/init.asm new file mode 100644 index 000000000..d7594ae1d --- /dev/null +++ b/engine/init.asm @@ -0,0 +1,225 @@ +Reset: ; 150 + di + call CleanSoundRestart + xor a + ld [$ffde], a + call ClearPalettes + xor a + ld [rIF], a + ld a, 1 ; VBlank int + ld [rIE], a + ei + + ld hl, $cfbe + set 7, [hl] + + ld c, 32 + call DelayFrames + + jr Init +; 16e + + +_Start: ; 16e + cp $11 + jr z, .asm_175 + xor a + jr .asm_177 + +.asm_175 + ld a, $1 + +.asm_177 + ld [hCGB], a + ld a, $1 + ld [$ffea], a +; 17d + + +Init: ; 17d + + di + + xor a + ld [rIF], a + ld [rIE], a + ld [rRP], a + ld [rSCX], a + ld [rSCY], a + ld [rSB], a + ld [rSC], a + ld [rWX], a + ld [rWY], a + ld [rBGP], a + ld [rOBP0], a + ld [rOBP1], a + ld [rTMA], a + ld [rTAC], a + ld [$d000], a + + ld a, %100 ; Start timer at 4096Hz + ld [rTAC], a + +.wait + ld a, [rLY] + cp 145 + jr nz, .wait + + xor a + ld [rLCDC], a + +; Clear WRAM bank 0 + ld hl, $c000 + ld bc, $d000 - $c000 +.asm_1b1 + ld [hl], 0 + inc hl + dec bc + ld a, b + or c + jr nz, .asm_1b1 + + ld sp, Stack - 1 + +; Clear HRAM + ld a, [hCGB] + push af + ld a, [$ffea] + push af + xor a + ld hl, $ff80 + ld bc, $ffff - $ff80 + call ByteFill + pop af + ld [$ffea], a + pop af + ld [hCGB], a + + call ClearWRAM + ld a, 1 + ld [rSVBK], a + call ClearVRAM + call ClearSprites + call Function270 + + + ld a, BANK(LoadPushOAM) + rst Bankswitch + + call LoadPushOAM + + xor a + ld [$ffde], a + ld [hSCX], a + ld [hSCY], a + ld [rJOYP], a + + ld a, $8 ; HBlank int enable + ld [rSTAT], a + + ld a, $90 + ld [hWY], a + ld [rWY], a + + ld a, 7 + ld [hWX], a + ld [rWX], a + + ld a, %11100011 + ; LCD on + ; Win tilemap 1 + ; Win on + ; BG/Win tiledata 0 + ; BG Tilemap 0 + ; OBJ 8x8 + ; OBJ on + ; BG on + ld [rLCDC], a + + ld a, $ff + ld [$ffcb], a + + callba Function9890 + + ld a, $9c + ld [$ffd7], a + + xor a + ld [hBGMapAddress], a + + callba StartClock + + xor a + ld [MBC3LatchClock], a + ld [MBC3SRamEnable], a + + ld a, [hCGB] + and a + jr z, .asm_22b + call Function2ff7 +.asm_22b + + xor a + ld [rIF], a + ld a, %1111 ; VBlank, LCDStat, Timer, Serial interrupts + ld [rIE], a + ei + + call DelayFrame + + ld a, $30 + call Predef + + call CleanSoundRestart + xor a + ld [CurMusic], a + jp GameInit +; 245 + + +ClearVRAM: ; 245 +; Wipe VRAM banks 0 and 1 + + ld a, 1 + ld [rVBK], a + call .clear + + xor a + ld [rVBK], a +.clear + ld hl, VTiles0 + ld bc, $2000 + xor a + call ByteFill + ret +; 25a + +ClearWRAM: ; 25a +; Wipe swappable WRAM banks (1-7) + + ld a, 1 +.asm_25c + push af + ld [rSVBK], a + xor a + ld hl, $d000 + ld bc, $1000 + call ByteFill + pop af + inc a + cp 8 + jr nc, .asm_25c + ret +; 270 + +Function270: ; 270 + ld a, $0 + call GetSRAMBank + ld hl, $a000 + ld bc, $0020 + xor a + call ByteFill + call CloseSRAM + ret +; 283 + diff --git a/main.asm b/main.asm index 97fe6ae30..0ea083173 100644 --- a/main.asm +++ b/main.asm @@ -56,231 +56,7 @@ Start: SECTION "start",HOME[$150] -Reset: ; 150 - di - call CleanSoundRestart - xor a - ld [$ffde], a - call ClearPalettes - xor a - ld [rIF], a - ld a, 1 ; VBlank int - ld [rIE], a - ei - - ld hl, $cfbe - set 7, [hl] - - ld c, 32 - call DelayFrames - - jr Init -; 16e - - -_Start: ; 16e - cp $11 - jr z, .asm_175 - xor a - jr .asm_177 - -.asm_175 - ld a, $1 - -.asm_177 - ld [hCGB], a - ld a, $1 - ld [$ffea], a -; 17d - - -Init: ; 17d - - di - - xor a - ld [rIF], a - ld [rIE], a - ld [rRP], a - ld [rSCX], a - ld [rSCY], a - ld [rSB], a - ld [rSC], a - ld [rWX], a - ld [rWY], a - ld [rBGP], a - ld [rOBP0], a - ld [rOBP1], a - ld [rTMA], a - ld [rTAC], a - ld [$d000], a - - ld a, %100 ; Start timer at 4096Hz - ld [rTAC], a - -.wait - ld a, [rLY] - cp 145 - jr nz, .wait - - xor a - ld [rLCDC], a - -; Clear WRAM bank 0 - ld hl, $c000 - ld bc, $d000 - $c000 -.asm_1b1 - ld [hl], 0 - inc hl - dec bc - ld a, b - or c - jr nz, .asm_1b1 - - ld sp, Stack - 1 - -; Clear HRAM - ld a, [hCGB] - push af - ld a, [$ffea] - push af - xor a - ld hl, $ff80 - ld bc, $ffff - $ff80 - call ByteFill - pop af - ld [$ffea], a - pop af - ld [hCGB], a - - call ClearWRAM - ld a, 1 - ld [rSVBK], a - call ClearVRAM - call ClearSprites - call Function270 - - - ld a, BANK(LoadPushOAM) - rst Bankswitch - - call LoadPushOAM - - xor a - ld [$ffde], a - ld [hSCX], a - ld [hSCY], a - ld [rJOYP], a - - ld a, $8 ; HBlank int enable - ld [rSTAT], a - - ld a, $90 - ld [hWY], a - ld [rWY], a - - ld a, 7 - ld [hWX], a - ld [rWX], a - - ld a, %11100011 - ; LCD on - ; Win tilemap 1 - ; Win on - ; BG/Win tiledata 0 - ; BG Tilemap 0 - ; OBJ 8x8 - ; OBJ on - ; BG on - ld [rLCDC], a - - ld a, $ff - ld [$ffcb], a - - callba Function9890 - - ld a, $9c - ld [$ffd7], a - - xor a - ld [hBGMapAddress], a - - callba StartClock - - xor a - ld [MBC3LatchClock], a - ld [MBC3SRamEnable], a - - ld a, [hCGB] - and a - jr z, .asm_22b - call Function2ff7 -.asm_22b - - xor a - ld [rIF], a - ld a, %1111 ; VBlank, LCDStat, Timer, Serial interrupts - ld [rIE], a - ei - - call DelayFrame - - ld a, $30 - call Predef - - call CleanSoundRestart - xor a - ld [CurMusic], a - jp GameInit -; 245 - - -ClearVRAM: ; 245 -; Wipe VRAM banks 0 and 1 - - ld a, 1 - ld [rVBK], a - call .clear - - xor a - ld [rVBK], a -.clear - ld hl, VTiles0 - ld bc, $2000 - xor a - call ByteFill - ret -; 25a - -ClearWRAM: ; 25a -; Wipe swappable WRAM banks (1-7) - - ld a, 1 -.asm_25c - push af - ld [rSVBK], a - xor a - ld hl, $d000 - ld bc, $1000 - call ByteFill - pop af - inc a - cp 8 - jr nc, .asm_25c - ret -; 270 - -Function270: ; 270 - ld a, $0 - call GetSRAMBank - ld hl, $a000 - ld bc, $0020 - xor a - call ByteFill - call CloseSRAM - ret -; 283 - +INCLUDE "engine/init.asm" VBlank: ; 283 INCLUDE "engine/vblank.asm" From 35de889dd714744c8657190bbee6cae743e34f2d Mon Sep 17 00:00:00 2001 From: yenatch Date: Tue, 20 Aug 2013 03:34:54 -0400 Subject: [PATCH 79/84] split out decompression --- engine/decompress.asm | 367 +++++++++++++++++++++++++++++++++++++++++ main.asm | 369 +----------------------------------------- 2 files changed, 368 insertions(+), 368 deletions(-) create mode 100644 engine/decompress.asm diff --git a/engine/decompress.asm b/engine/decompress.asm new file mode 100644 index 000000000..8d39cd968 --- /dev/null +++ b/engine/decompress.asm @@ -0,0 +1,367 @@ +FarDecompress: ; b40 +; Decompress graphics data at a:hl to de + +; put a away for a sec + ld [$c2c4], a +; save bank + ld a, [hROMBank] + push af +; bankswitch + ld a, [$c2c4] + rst Bankswitch + +; what we came here for + call Decompress + +; restore bank + pop af + rst Bankswitch + ret +; b50 + + +Decompress: ; b50 +; Pokemon Crystal uses an lz variant for compression. + +; This is mainly used for graphics, but the intro's +; tilemaps also use this compression. + +; This function decompresses lz-compressed data at hl to de. + + +; Basic rundown: + +; A typical control command consists of: +; -the command (bits 5-7) +; -the count (bits 0-4) +; -and any additional params + +; $ff is used as a terminator. + + +; Commands: + +; 0: literal +; literal data for some number of bytes +; 1: iterate +; one byte repeated for some number of bytes +; 2: alternate +; two bytes alternated for some number of bytes +; 3: zero (whitespace) +; 0x00 repeated for some number of bytes + +; Repeater control commands have a signed parameter used to determine the start point. +; Wraparound is simulated: +; Positive values are added to the start address of the decompressed data +; and negative values are subtracted from the current position. + +; 4: repeat +; repeat some number of bytes from decompressed data +; 5: flipped +; repeat some number of flipped bytes from decompressed data +; ex: $ad = %10101101 -> %10110101 = $b5 +; 6: reverse +; repeat some number of bytes in reverse from decompressed data + +; If the value in the count needs to be larger than 5 bits, +; control code 7 can be used to expand the count to 10 bits. + +; A new control command is read in bits 2-4. +; The new 10-bit count is split: +; bits 0-1 contain the top 2 bits +; another byte is added containing the latter 8 + +; So, the structure of the control command becomes: +; 111xxxyy yyyyyyyy +; | | | | +; | | our new count +; | the control command for this count +; 7 (this command) + +; For more information, refer to the code below and in extras/gfx.py . + +; save starting output address + ld a, e + ld [$c2c2], a + ld a, d + ld [$c2c3], a + +.loop +; get next byte + ld a, [hl] +; done? + cp $ff ; end + ret z + +; get control code + and %11100000 + +; 10-bit param? + cp $e0 ; LZ_HI + jr nz, .normal + + +; 10-bit param: + +; get next 3 bits (%00011100) + ld a, [hl] + add a + add a ; << 3 + add a + +; this is our new control code + and %11100000 + push af + +; get param hi + ld a, [hli] + and %00000011 + ld b, a + +; get param lo + ld a, [hli] + ld c, a + +; read at least 1 byte + inc bc + jr .readers + + +.normal +; push control code + push af +; get param + ld a, [hli] + and %00011111 + ld c, a + ld b, $0 +; read at least 1 byte + inc c + +.readers +; let's get started + +; inc loop counts since we bail as soon as they hit 0 + inc b + inc c + +; get control code + pop af +; command type + bit 7, a ; 80, a0, c0 + jr nz, .repeatertype + +; literals + cp $20 ; LZ_ITER + jr z, .iter + cp $40 ; LZ_ALT + jr z, .alt + cp $60 ; LZ_ZERO + jr z, .zero + ; else $00 + +; 00 ; LZ_LIT +; literal data for bc bytes +.loop1 +; done? + dec c + jr nz, .next1 + dec b + jp z, .loop + +.next1 + ld a, [hli] + ld [de], a + inc de + jr .loop1 + + +; 20 ; LZ_ITER +; write byte for bc bytes +.iter + ld a, [hli] + +.iterloop + dec c + jr nz, .iternext + dec b + jp z, .loop + +.iternext + ld [de], a + inc de + jr .iterloop + + +; 40 ; LZ_ALT +; alternate two bytes for bc bytes + +; next pair +.alt +; done? + dec c + jr nz, .alt0 + dec b + jp z, .altclose0 + +; alternate for bc +.alt0 + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .alt1 +; done? + dec b + jp z, .altclose1 +.alt1 + ld a, [hld] + ld [de], a + inc de + jr .alt + +; skip past the bytes we were alternating +.altclose0 + inc hl +.altclose1 + inc hl + jr .loop + + +; 60 ; LZ_ZERO +; write 00 for bc bytes +.zero + xor a + +.zeroloop + dec c + jr nz, .zeronext + dec b + jp z, .loop + +.zeronext + ld [de], a + inc de + jr .zeroloop + + +; repeats +; 80, a0, c0 +; repeat decompressed data from output +.repeatertype + push hl + push af +; get next byte + ld a, [hli] +; absolute? + bit 7, a + jr z, .absolute + +; relative +; a = -a + and %01111111 ; forget the bit we just looked at + cpl +; add de (current output address) + add e + ld l, a + ld a, $ff ; -1 + adc d + ld h, a + jr .repeaters + +.absolute +; get next byte (lo) + ld l, [hl] +; last byte (hi) + ld h, a +; add starting output address + ld a, [$c2c2] + add l + ld l, a + ld a, [$c2c3] + adc h + ld h, a + +.repeaters + pop af + cp $80 ; LZ_REPEAT + jr z, .repeat + cp $a0 ; LZ_FLIP + jr z, .flip + cp $c0 ; LZ_REVERSE + jr z, .reverse + +; e0 -> 80 + +; 80 ; LZ_REPEAT +; repeat some decompressed data +.repeat +; done? + dec c + jr nz, .repeatnext + dec b + jr z, .cleanup + +.repeatnext + ld a, [hli] + ld [de], a + inc de + jr .repeat + + +; a0 ; LZ_FLIP +; repeat some decompressed data w/ flipped bit order +.flip + dec c + jr nz, .flipnext + dec b + jp z, .cleanup + +.flipnext + ld a, [hli] + push bc + ld bc, $0008 + +.fliploop + rra + rl b + dec c + jr nz, .fliploop + ld a, b + pop bc + ld [de], a + inc de + jr .flip + + +; c0 ; LZ_REVERSE +; repeat some decompressed data in reverse +.reverse + dec c + jr nz, .reversenext + + dec b + jp z, .cleanup + +.reversenext + ld a, [hld] + ld [de], a + inc de + jr .reverse + + +.cleanup +; get type of repeat we just used + pop hl +; was it relative or absolute? + bit 7, [hl] + jr nz, .next + +; skip two bytes for absolute + inc hl +; skip one byte for relative +.next + inc hl + jp .loop +; c2f + diff --git a/main.asm b/main.asm index 0ea083173..698970b2a 100644 --- a/main.asm +++ b/main.asm @@ -1314,374 +1314,7 @@ Functionb06: ; b06 ; b40 -FarDecompress: ; b40 -; Decompress graphics data at a:hl to de - -; put a away for a sec - ld [$c2c4], a -; save bank - ld a, [hROMBank] - push af -; bankswitch - ld a, [$c2c4] - rst Bankswitch - -; what we came here for - call Decompress - -; restore bank - pop af - rst Bankswitch - ret -; b50 - - -Decompress: ; b50 -; Pokemon Crystal uses an lz variant for compression. - -; This is mainly used for graphics, but the intro's -; tilemaps also use this compression. - -; This function decompresses lz-compressed data at hl to de. - - -; Basic rundown: - -; A typical control command consists of: -; -the command (bits 5-7) -; -the count (bits 0-4) -; -and any additional params - -; $ff is used as a terminator. - - -; Commands: - -; 0: literal -; literal data for some number of bytes -; 1: iterate -; one byte repeated for some number of bytes -; 2: alternate -; two bytes alternated for some number of bytes -; 3: zero (whitespace) -; 0x00 repeated for some number of bytes - -; Repeater control commands have a signed parameter used to determine the start point. -; Wraparound is simulated: -; Positive values are added to the start address of the decompressed data -; and negative values are subtracted from the current position. - -; 4: repeat -; repeat some number of bytes from decompressed data -; 5: flipped -; repeat some number of flipped bytes from decompressed data -; ex: $ad = %10101101 -> %10110101 = $b5 -; 6: reverse -; repeat some number of bytes in reverse from decompressed data - -; If the value in the count needs to be larger than 5 bits, -; control code 7 can be used to expand the count to 10 bits. - -; A new control command is read in bits 2-4. -; The new 10-bit count is split: -; bits 0-1 contain the top 2 bits -; another byte is added containing the latter 8 - -; So, the structure of the control command becomes: -; 111xxxyy yyyyyyyy -; | | | | -; | | our new count -; | the control command for this count -; 7 (this command) - -; For more information, refer to the code below and in extras/gfx.py . - -; save starting output address - ld a, e - ld [$c2c2], a - ld a, d - ld [$c2c3], a - -.loop -; get next byte - ld a, [hl] -; done? - cp $ff ; end - ret z - -; get control code - and %11100000 - -; 10-bit param? - cp $e0 ; LZ_HI - jr nz, .normal - - -; 10-bit param: - -; get next 3 bits (%00011100) - ld a, [hl] - add a - add a ; << 3 - add a - -; this is our new control code - and %11100000 - push af - -; get param hi - ld a, [hli] - and %00000011 - ld b, a - -; get param lo - ld a, [hli] - ld c, a - -; read at least 1 byte - inc bc - jr .readers - - -.normal -; push control code - push af -; get param - ld a, [hli] - and %00011111 - ld c, a - ld b, $0 -; read at least 1 byte - inc c - -.readers -; let's get started - -; inc loop counts since we bail as soon as they hit 0 - inc b - inc c - -; get control code - pop af -; command type - bit 7, a ; 80, a0, c0 - jr nz, .repeatertype - -; literals - cp $20 ; LZ_ITER - jr z, .iter - cp $40 ; LZ_ALT - jr z, .alt - cp $60 ; LZ_ZERO - jr z, .zero - ; else $00 - -; 00 ; LZ_LIT -; literal data for bc bytes -.loop1 -; done? - dec c - jr nz, .next1 - dec b - jp z, .loop - -.next1 - ld a, [hli] - ld [de], a - inc de - jr .loop1 - - -; 20 ; LZ_ITER -; write byte for bc bytes -.iter - ld a, [hli] - -.iterloop - dec c - jr nz, .iternext - dec b - jp z, .loop - -.iternext - ld [de], a - inc de - jr .iterloop - - -; 40 ; LZ_ALT -; alternate two bytes for bc bytes - -; next pair -.alt -; done? - dec c - jr nz, .alt0 - dec b - jp z, .altclose0 - -; alternate for bc -.alt0 - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .alt1 -; done? - dec b - jp z, .altclose1 -.alt1 - ld a, [hld] - ld [de], a - inc de - jr .alt - -; skip past the bytes we were alternating -.altclose0 - inc hl -.altclose1 - inc hl - jr .loop - - -; 60 ; LZ_ZERO -; write 00 for bc bytes -.zero - xor a - -.zeroloop - dec c - jr nz, .zeronext - dec b - jp z, .loop - -.zeronext - ld [de], a - inc de - jr .zeroloop - - -; repeats -; 80, a0, c0 -; repeat decompressed data from output -.repeatertype - push hl - push af -; get next byte - ld a, [hli] -; absolute? - bit 7, a - jr z, .absolute - -; relative -; a = -a - and %01111111 ; forget the bit we just looked at - cpl -; add de (current output address) - add e - ld l, a - ld a, $ff ; -1 - adc d - ld h, a - jr .repeaters - -.absolute -; get next byte (lo) - ld l, [hl] -; last byte (hi) - ld h, a -; add starting output address - ld a, [$c2c2] - add l - ld l, a - ld a, [$c2c3] - adc h - ld h, a - -.repeaters - pop af - cp $80 ; LZ_REPEAT - jr z, .repeat - cp $a0 ; LZ_FLIP - jr z, .flip - cp $c0 ; LZ_REVERSE - jr z, .reverse - -; e0 -> 80 - -; 80 ; LZ_REPEAT -; repeat some decompressed data -.repeat -; done? - dec c - jr nz, .repeatnext - dec b - jr z, .cleanup - -.repeatnext - ld a, [hli] - ld [de], a - inc de - jr .repeat - - -; a0 ; LZ_FLIP -; repeat some decompressed data w/ flipped bit order -.flip - dec c - jr nz, .flipnext - dec b - jp z, .cleanup - -.flipnext - ld a, [hli] - push bc - ld bc, $0008 - -.fliploop - rra - rl b - dec c - jr nz, .fliploop - ld a, b - pop bc - ld [de], a - inc de - jr .flip - - -; c0 ; LZ_REVERSE -; repeat some decompressed data in reverse -.reverse - dec c - jr nz, .reversenext - - dec b - jp z, .cleanup - -.reversenext - ld a, [hld] - ld [de], a - inc de - jr .reverse - - -.cleanup -; get type of repeat we just used - pop hl -; was it relative or absolute? - bit 7, [hl] - jr nz, .next - -; skip two bytes for absolute - inc hl -; skip one byte for relative -.next - inc hl - jp .loop -; c2f - - +INCLUDE "engine/decompress.asm" UpdatePalsIfCGB: ; c2f From c1d0253162e326fc872a81bdc400a1b6b38faa5e Mon Sep 17 00:00:00 2001 From: yenatch Date: Tue, 20 Aug 2013 06:09:39 -0400 Subject: [PATCH 80/84] graphics loading functions (2bpp and 1bpp) --- main.asm | 167 ++++++++++++++++++++++++++++++++----------------------- 1 file changed, 98 insertions(+), 69 deletions(-) diff --git a/main.asm b/main.asm index 698970b2a..a5e476151 100644 --- a/main.asm +++ b/main.asm @@ -1670,13 +1670,13 @@ Functiondbd: ; dbd Functiondc9: ; dc9 ld a, [rLCDC] bit 7, a - jp z, $0f89 + jp z, Copy2bpp + ld a, [hROMBank] push af - ld a, $41 + ld a, BANK(Function104284) rst Bankswitch - - call $4284 + call Function104284 pop af rst Bankswitch @@ -1686,13 +1686,13 @@ Functiondc9: ; dc9 Functionddc: ; ddc ld a, [rLCDC] bit 7, a - jp z, $0fa4 + jp z, Copy1bpp + ld a, [hROMBank] push af - ld a, $41 + ld a, BANK(Function1042b2) rst Bankswitch - - call $42b2 + call Function1042b2 pop af rst Bankswitch @@ -1705,11 +1705,9 @@ Functiondef: ; def push af ld a, [hBuffer] rst Bankswitch - call FarCopyBytesDouble pop af rst Bankswitch - ret ; dfd @@ -1826,7 +1824,7 @@ Functione73: ; e73 pop bc pop hl ld de, $a000 - call Functioneba + call Request2bpp call CloseSRAM ret ; e8d @@ -1889,11 +1887,12 @@ FarCopyBytesDouble: ; e9b ; 0xeba -Functioneba: ; eba +Request2bpp: ; eba ld a, [hBGMapMode] push af xor a ld [hBGMapMode], a + ld a, [hROMBank] push af ld a, b @@ -1901,6 +1900,7 @@ Functioneba: ; eba ld a, [$ffd3] push af + ld a, $8 ld [$ffd3], a ld a, [InLinkBattle] @@ -1921,19 +1921,23 @@ Functioneba: ; eba ld [$cf6a], a ld a, h ld [$cf6b], a + .asm_eec ld a, c ld hl, $ffd3 cp [hl] jr nc, .asm_f08 + ld [$cf67], a -.asm_ef6 +.wait call DelayFrame ld a, [$cf67] and a - jr nz, .asm_ef6 + jr nz, .wait + pop af ld [$ffd3], a + pop af rst Bankswitch @@ -1956,11 +1960,13 @@ Functioneba: ; eba jr .asm_eec ; f1e -Functionf1e: ; f1e + +Request1bpp: ; f1e ld a, [hBGMapMode] push af xor a ld [hBGMapMode], a + ld a, [hROMBank] push af ld a, b @@ -1968,6 +1974,7 @@ Functionf1e: ; f1e ld a, [$ffd3] push af + ld a, $8 ld [$ffd3], a ld a, [InLinkBattle] @@ -1993,14 +2000,17 @@ Functionf1e: ; f1e ld hl, $ffd3 cp [hl] jr nc, .asm_f6c + ld [$cf6c], a -.asm_f5a +.wait call DelayFrame ld a, [$cf6c] and a - jr nz, .asm_f5a + jr nz, .wait + pop af ld [$ffd3], a + pop af rst Bankswitch @@ -2023,15 +2033,24 @@ Functionf1e: ; f1e jr .asm_f50 ; f82 -Functionf82: ; f82 + +Get2bpp: ; f82 ld a, [rLCDC] bit 7, a - jp nz, Functioneba + jp nz, Request2bpp + +Copy2bpp: ; f89 +; copy c 2bpp tiles from b:de to hl + push hl ld h, d ld l, e pop de + +; bank ld a, b + +; bc = c * $10 push af swap c ld a, $f @@ -2041,19 +2060,29 @@ Functionf82: ; f82 and c ld c, a pop af + jp FarCopyBytes ; f9d -Functionf9d: ; f9d + +Get1bpp: ; f9d ld a, [rLCDC] bit 7, a - jp nz, Functionf1e + jp nz, Request1bpp + +Copy1bpp: ; fa4 +; copy c 1bpp tiles from b:de to hl + push de ld d, h ld e, l + +; bank ld a, b + +; bc = c * $10 / 2 push af - ld h, $0 + ld h, 0 ld l, c add hl, hl add hl, hl @@ -2061,12 +2090,12 @@ Functionf9d: ; f9d ld b, h ld c, l pop af + pop hl jp FarCopyBytesDouble ; fb6 - ClearBox: ; fb6 ; Fill a c*b box at hl with blank tiles. @@ -17337,7 +17366,7 @@ Function61cd: ; 61cd callba GetPlayerIcon ld c, $c ld hl, VTiles0 - call Functioneba + call Request2bpp ld hl, Sprites ld de, .data_61fe ld a, [de] @@ -17707,7 +17736,7 @@ Copyright: ; 63e2 ld de, CopyrightGFX ld hl, VTiles2 + $600 ; tile $60 ld bc, BANK(CopyrightGFX) << 8 + $1d - call Functioneba + call Request2bpp hlcoord 2, 7 ld de, CopyrightString jp PlaceString @@ -25440,7 +25469,7 @@ Function1089d: ; 1089d ld d, [hl] ld hl, $9500 ld bc, $040f - call Functioneba + call Request2bpp ret .asm_108c5 @@ -25891,11 +25920,11 @@ Function11c51: ; 11c51 ld de, $5e65 ld hl, $8eb0 ld bc, $0401 - call Functionf9d + call Get1bpp ld de, $5e6d ld hl, $8f20 ld bc, $0401 - call Functionf9d + call Get1bpp ld de, $9600 ld hl, $5cb7 ld bc, $0010 @@ -28537,7 +28566,7 @@ Function140ed: ; 140ed Function1412a: ; 1412a ld a, $1 ld [rVBK], a - call Functionf82 + call Get2bpp xor a ld [rVBK], a ret @@ -29188,7 +29217,7 @@ Function14418: ; 14418 .asm_14426 ld [rVBK], a - call Functionf82 + call Get2bpp pop af ld [rVBK], a ret @@ -45650,15 +45679,15 @@ Function3edad: ; 3edad ld de, $4ac0 ld hl, $96c0 ld bc, $3e04 - call Functionf9d + call Get1bpp ld de, $4ae0 ld hl, $9730 ld bc, $3e06 - call Functionf9d + call Get1bpp ld de, $4b10 ld hl, $9550 ld bc, $3e08 - jp Functionf82 + jp Get2bpp ; 3edd1 @@ -46943,7 +46972,7 @@ Function3f568: ; 3f568 ld de, $d000 ld hl, VBGMap0 ld bc, $0f40 - call Functioneba + call Request2bpp pop af ld [rVBK], a pop af @@ -47843,7 +47872,7 @@ Function3fbd6: ; 3fbd6 ld de, $d000 ld hl, VBGMap0 ld bc, $0f40 - call Functioneba + call Request2bpp pop af ld [rSVBK], a ret @@ -47902,7 +47931,7 @@ Function3fc30: ; 3fc30 ld a, [hROMBank] ld b, a ld c, $31 - call Functionf82 + call Get2bpp pop af ld [rSVBK], a call Function3fc5b @@ -48378,7 +48407,7 @@ Function4143b: ; 4143b ld c, $31 ld a, [hROMBank] ld b, a - call Functionf82 + call Get2bpp call CloseSRAM ret ; 41478 @@ -48460,7 +48489,7 @@ Function41a2c: ; 41a2c ld de, $a188 ld hl, $9400 ld bc, $101b - call Functioneba + call Request2bpp call CloseSRAM ret ; 41a58 @@ -50046,7 +50075,7 @@ Function48e81: ; 48e81 ld d, [hl] ld hl, $9500 ld bc, $120f - call Functioneba + call Request2bpp ret ; 48e93 @@ -52475,7 +52504,7 @@ Function4e607: ; 4e607 ld de, $6831 ld hl, VTiles0 ld bc, $1308 - call Functioneba + call Request2bpp xor a ld [Danger], a call WaitBGMap @@ -52492,7 +52521,7 @@ Function4e607: ; 4e607 ld de, VTiles2 ld hl, $9310 ld bc, $0031 - call Functioneba + call Request2bpp ld a, $31 ld [$d1ec], a call Function4e755 @@ -52864,7 +52893,7 @@ Function4e906: ; 4e906 ld de, $d000 ld b, $0 ld c, $40 - call Functioneba + call Request2bpp pop af ld [rSVBK], a ret @@ -53074,11 +53103,11 @@ Function4ea82: ; 4ea82 ld de, $d000 ld hl, VTiles2 ld bc, Text_1354 - call Functionf82 + call Get2bpp ld de, $4200 ld hl, VTiles1 ld bc, Function3e80 - call Functionf9d + call Get1bpp call Function4eac5 call WaitBGMap .asm_4eac0 @@ -55198,7 +55227,7 @@ Function5120d: ; 5120d ld c, $31 ld a, [hROMBank] ld b, a - call Functionf82 + call Get2bpp pop af ld [rSVBK], a call WaitBGMap @@ -55227,7 +55256,7 @@ DecompressPredef: ; 5125d pop hl ld a, [hROMBank] ld b, a - call Functionf82 + call Get2bpp pop af ld [rSVBK], a @@ -57380,7 +57409,7 @@ Function86810: ; 86810 ld hl, $9630 ld de, $40d0 ld bc, $3e01 - call Functioneba + call Request2bpp ld hl, TileMap ld bc, $0168 ld a, $7f @@ -57640,7 +57669,7 @@ Function88840: ; 88840 ld hl, VTiles2 ld b, $22 ld c, $31 - call Functionf82 + call Get2bpp call WaitBGMap ld a, $1 ld [hBGMapMode], a @@ -57672,7 +57701,7 @@ DrawIntroPlayerPic: ; 88874 ld hl, VTiles2 ld b, BANK(ChrisPic) ld c, $31 - call Functionf82 + call Get2bpp ; Draw xor a @@ -57699,7 +57728,7 @@ GetKrisBackpic: ; 88ec9 ld de, KrisBackpic ld hl, $9310 ld bc, $2231 - call Functionf82 + call Get2bpp ret ; 88ed6 @@ -58911,7 +58940,7 @@ Function8e79d: ; 8e79d .asm_8e7a8 ld hl, VTiles0 ld bc, $2301 - call Functioneba + call Request2bpp ld c, $8 ld d, $0 .asm_8e7b5 @@ -59104,7 +59133,7 @@ GetIcon: ; 8ea1e GetGFXUnlessMobile: ; 8ea3f ld a, [InLinkBattle] cp 4 ; Mobile Link Battle - jp nz, Functioneba + jp nz, Request2bpp jp Functiondc9 ; 8ea4a @@ -59763,7 +59792,7 @@ Function91af3: ; 91af3 ld de, $62e1 ld hl, $9300 ld bc, $2406 - call Functionf1e + call Request1bpp call FlyMap call Function91c8f ld b, $2 @@ -60301,7 +60330,7 @@ TownMapPlayerIcon: ; 91fa6 ; Standing icon ld hl, $8100 ld c, 4 ; # tiles - call Functioneba + call Request2bpp ; Walking icon ld hl, $00c0 @@ -60311,7 +60340,7 @@ TownMapPlayerIcon: ; 91fa6 ld hl, $8140 ld c, 4 ; # tiles ld a, $30 - call Functioneba + call Request2bpp ; Animation/palette ld de, $0000 @@ -63773,7 +63802,7 @@ Functionb80c6: ; b80c6 ld de, $5344 ld hl, $9600 ld bc, $3e0e - call Functionf82 + call Get2bpp ret ; b80d3 @@ -64216,7 +64245,7 @@ Functionb9229: ; b9229 .asm_b9268 ld hl, VTiles1 ld bc, $7780 - call Functionf9d + call Get1bpp pop de call Functionb92b8 call EnableLCD @@ -66477,7 +66506,7 @@ Functione45e8: ; e45e8 ld de, $47cc ld hl, VTiles2 ld bc, $391c - call Functionf9d + call Get1bpp ld a, [rSVBK] push af ld a, $6 @@ -66489,11 +66518,11 @@ Functione45e8: ; e45e8 ld hl, VTiles0 ld de, $d000 ld bc, $0180 - call Functioneba + call Request2bpp ld hl, VTiles1 ld de, $d800 ld bc, $0180 - call Functioneba + call Request2bpp pop af ld [rSVBK], a ld a, $23 @@ -66961,7 +66990,7 @@ Functionfb449: ; fb449 ld bc, Function3e80 ld a, [rLCDC] bit 7, a - jp z, $0fa4 + jp z, Copy1bpp ld de, $4200 ld hl, VTiles1 ld bc, $3e20 @@ -69547,7 +69576,7 @@ Function1009d2: ; 1009d2 ld hl, $d800 ld de, VBGMap0 ld bc, $0324 - call Functionf82 + call Get2bpp pop af ld [rVBK], a pop af @@ -71407,11 +71436,11 @@ Function106594: ; 106594 ld de, $65ad ld hl, VTiles1 ld bc, $4180 - call Functionf82 + call Get2bpp ld de, $6dad ld hl, $97f0 ld bc, $4101 - call Functionf82 + call Get2bpp ret ; 1065ad @@ -71457,15 +71486,15 @@ Function109847: ; 109847 ld de, $5c24 ld hl, $9200 ld bc, $4209 - call Functioneba + call Request2bpp ld de, $4000 ld hl, $9600 ld bc, $391d - call Functioneba + call Request2bpp ld de, $7d2e ld hl, $9400 ld bc, $3210 - call Functioneba + call Request2bpp ld a, $ff ld [$cf64], a xor a @@ -71475,7 +71504,7 @@ Function109847: ; 109847 ld d, h ld hl, VTiles2 ld bc, $4210 - call Functioneba + call Request2bpp call $5a95 xor a ld [$cf66], a @@ -73641,7 +73670,7 @@ Function16d69a: ; 16d69a ld de, $52c1 ld hl, $9760 ld bc, $5b08 - call Functionf82 + call Get2bpp ret ; 16d6a7 From 636a960909c2cad683b73a8fb77cb0305f0b3a7f Mon Sep 17 00:00:00 2001 From: yenatch Date: Tue, 20 Aug 2013 15:58:08 -0400 Subject: [PATCH 81/84] split out text engine --- engine/text.asm | 1229 +++++++++++++++++++++++++++++++++++++++++++++++ main.asm | 1229 +---------------------------------------------- 2 files changed, 1230 insertions(+), 1228 deletions(-) create mode 100644 engine/text.asm diff --git a/engine/text.asm b/engine/text.asm new file mode 100644 index 000000000..ccc8623cf --- /dev/null +++ b/engine/text.asm @@ -0,0 +1,1229 @@ +ClearBox: ; fb6 +; Fill a c*b box at hl with blank tiles. + + ld a, " " +.y + push bc + push hl +.x + ld [hli], a + dec c + jr nz, .x + pop hl + ld bc, 20 ; screen width + add hl, bc + pop bc + dec b + jr nz, .y + ret +; fc8 + + +ClearTileMap: ; fc8 +; Fill TileMap with blank tiles. + + ld hl, TileMap + ld a, " " + ld bc, 360 ; screen dimensions 20*18 + call ByteFill + +; We aren't done if the LCD is on. + ld a, [rLCDC] + bit 7, a + ret z + jp WaitBGMap +; fdb + + +Functionfdb: ; fdb + ld a, $7 + ld hl, AttrMap + ld bc, $0168 + call ByteFill + jr ClearTileMap +; fe8 + + + +TextBox: ; fe8 +; Draw a text box width c height b at hl +; Dimensions do not include the border. + push bc + push hl + call TextBoxBorder + pop hl + pop bc + jr TextBoxPalette +; ff1 + + +TextBoxBorder: ; ff1 + +; Top + push hl + ld a, "┌" + ld [hli], a + inc a ; "─" + call NPlaceChar + inc a ; "┐" + ld [hl], a + +; Middle + pop hl + ld de, 20 ; screen width + add hl, de +.PlaceRow + push hl + ld a, "│" + ld [hli], a + ld a, " " + call NPlaceChar + ld [hl], "│" + pop hl + ld de, 20 ; screen width + add hl, de + dec b + jr nz, .PlaceRow + +; Bottom + ld a, "└" + ld [hli], a + ld a, "─" + call NPlaceChar + ld [hl], "┘" + + ret +; 101e + + +NPlaceChar: ; 101e +; Place char a c times + ld d,c +.loop + ld [hli],a + dec d + jr nz, .loop + ret +; 1024 + + +TextBoxPalette: ; 1024 +; Fill text box width c height b at hl with pal 7 + ld de, AttrMap - TileMap + add hl, de + inc b + inc b + inc c + inc c + ld a, 7 ; pal +.gotoy + push bc + push hl +.gotox + ld [hli], a + dec c + jr nz, .gotox + pop hl + ld de, 20 ; screen width + add hl, de + pop bc + dec b + jr nz, .gotoy + ret +; 103e + + +SpeechTextBox: ; 103e +; Standard textbox. + hlcoord 0, 12 + ld b, 4 ; height + ld c, 18 ; screen width - 2 (border) + jp TextBox +; 1048 + +UnknownText_0x1048: ; 1048 + db $0, "ゲームフりーク!", $57 +; 1052 + +Function1052: ; 1052 + ld hl, .text_1056 + ret +.text_1056 + db "@" +; 1057 + + +PrintText: ; 1057 + call Function106c + push hl + hlcoord 1, 14 + ld bc, 18 + 3<<8 + call ClearBox + pop hl + +PrintTextBoxText: ; 1065 + bccoord 1, 14 + call Function13e5 + ret +; 106c + + +Function106c: ; 106c + push hl + call SpeechTextBox + call Function1ad2 + call Function321c + pop hl + ret +; 1078 + + + +PlaceString: ; 1078 + push hl + +PlaceNextChar: ; 1079 + ld a, [de] + cp "@" + jr nz, CheckDict + ld b, h + ld c, l + pop hl + ret + pop de + +NextChar: ; 1083 + inc de + jp PlaceNextChar + +CheckDict: ; 1087 + cp $15 + jp z, Function117b + cp $4f + jp z, Char4F + cp $4e + jp z, Function12a7 + cp $16 + jp z, Function12b9 + and a + jp z, Function1383 + cp $4c + jp z, $1337 + cp $4b + jp z, Char4B + cp $51 ; Player name + jp z, Function12f2 + cp $49 + jp z, Function1186 + cp $52 ; Mother name + jp z, Function118d + cp $53 + jp z, Function1194 + cp $35 + jp z, Function11e8 + cp $36 + jp z, Function11ef + cp $37 + jp z, Function11f6 + cp $38 + jp z, Function119b + cp $39 + jp z, Function11a2 + cp $54 + jp z, Function11c5 + cp $5b + jp z, Function11b7 + cp $5e + jp z, Function11be + cp $5c + jp z, Function11b0 + cp $5d + jp z, Function11a9 + cp $23 + jp z, Function11cc + cp $22 + jp z, Function12b0 + cp $55 + jp z, Char55 + cp $56 + jp z, Function11d3 + cp $57 + jp z, $137c + cp $58 + jp z, Function135a + cp $4a + jp z, Function11da + cp $24 + jp z, Function11e1 + cp $25 + jp z, NextChar + cp $1f + jr nz, .asm_1122 + ld a, $7f +.asm_1122 + cp $5f + jp z, Char5F + cp $59 + jp z, Function11fd + cp $5a + jp z, Char5D + cp $3f + jp z, $121b + cp $14 + jp z, $1252 + cp $e4 + jr z, .asm_1174 ; 0x113d $35 + cp $e5 + jr z, .asm_1174 ; 0x1141 $31 + jr .asm_114c ; 0x1143 $7 + ld b, a + call Function13c6 + jp NextChar +.asm_114c + cp $60 + jr nc, .asm_1174 ; 0x114e $24 + cp $40 + jr nc, .asm_1165 ; 0x1152 $11 + cp $20 + jr nc, .asm_115c ; 0x1156 $4 + add $80 + jr .asm_115e ; 0x115a $2 +.asm_115c + add $90 +.asm_115e + ld b, $e5 + call Function13c6 + jr .asm_1174 ; 0x1163 $f +.asm_1165 + cp $44 + jr nc, .asm_116d ; 0x1167 $4 + add $59 + jr .asm_116f ; 0x116b $2 +.asm_116d + add $86 +.asm_116f + ld b, $e4 + call Function13c6 +.asm_1174 + ld [hli], a + call PrintLetterDelay + jp NextChar +; 0x117b + + +Function117b: ; 117b + ld c, l + ld b, h + ld a, $5f + ld hl, $7036 + rst FarCall + jp PlaceNextChar +; 1186 + +Function1186: ; 1186 + push de + ld de, MomsName + jp $126a +; 118d + +Function118d: ; 118d + push de + ld de, PlayerName + jp $126a +; 1194 + +Function1194: ; 1194 + push de + ld de, RivalName + jp $126a +; 119b + +Function119b: ; 119b + push de + ld de, RedsName + jp $126a +; 11a2 + +Function11a2: ; 11a2 + push de + ld de, GreensName + jp $126a +; 11a9 + +Function11a9: ; 11a9 + push de + ld de, Char5DText + jp $126a +; 11b0 + +Function11b0: ; 11b0 + push de + ld de, Char5CText + jp $126a +; 11b7 + +Function11b7: ; 11b7 + push de + ld de, Char5BText + jp $126a +; 11be + +Function11be: ; 11be + push de + ld de, Char5EText + jp $126a +; 11c5 + +Function11c5: ; 11c5 + push de + ld de, Char54Text + jp $126a +; 11cc + +Function11cc: ; 11cc + push de + ld de, Char23Text + jp $126a +; 11d3 + +Function11d3: ; 11d3 + push de + ld de, $1292 + jp $126a +; 11da + +Function11da: ; 11da + push de + ld de, Char4AText + jp $126a +; 11e1 + +Function11e1: ; 11e1 + push de + ld de, Char24Text + jp $126a +; 11e8 + +Function11e8: ; 11e8 + push de + ld de, Char37Text + jp $126a +; 11ef + +Function11ef: ; 11ef + push de + ld de, Char37Text + jp $126a +; 11f6 + +Function11f6: ; 11f6 + push de + ld de, Char37Text + jp $126a +; 11fd + + +Function11fd: ; 11fd + ld a, [hBattleTurn] + xor $1 + jr Function1205 +; 1203 + +Char5D: ; 1203 + ld a, [hBattleTurn] +; 1205 + +Function1205: ; 1205 + push de + and a + jr nz, .asm_120e ; 0x1207 $5 + ld de, BattleMonNick + jr .asm_126a ; 0x120c $5c +.asm_120e + ld de, Char5AText ; Enemy + call PlaceString + ld h, b + ld l, c + ld de, EnemyMonNick + jr .asm_126a ; 0x1219 $4f + push de + ld a, [InLinkBattle] + and a + jr nz, .linkbattle + ld a, [TrainerClass] + cp $9 + jr z, .asm_1248 ; 0x1227 $1f + cp $2a + jr z, .asm_1248 ; 0x122b $1b + ld de, $c656 + call PlaceString + ld h, b + ld l, c + ld de, String12a2 + call PlaceString + push bc + ld hl, $5939 + ld a, $e + rst FarCall + pop hl + ld de, StringBuffer1 + jr .asm_126a ; 0x1246 $22 +.asm_1248 + ld de, RivalName + jr .asm_126a ; 0x124b $1d +.linkbattle + ld de, $c656 + jr .asm_126a ; 0x1250 $18 + push de + ld de, PlayerName + call PlaceString + ld h, b + ld l, c + ld a, [PlayerGender] + bit 0, a + ld de, String12a5 + jr z, .asm_126a ; 0x1263 $5 + ld de, String12a6 + jr .asm_126a ; 0x1268 $0 +.asm_126a + call PlaceString + ld h, b + ld l, c + pop de + jp NextChar +; 0x1273 + +Char5CText: ; 1273 + db "TM@" +Char5DText: ; 1276 + db "TRAINER@" +Char5BText: ; 127e + db "PC@" +Char5EText: ; 1281 + db "ROCKET@" +Char54Text: ; 1288 + db "POKé@" +Char23Text: ; 128d + db "こうげき@" +Char56Text:; 1292 + db "……@" +Char5AText: ; 1295 + db "Enemy @" +Char4AText: ; 129c + db $e1, $e2, "@" ; PK MN +Char24Text: ; 129f + db $70, $71, "@" ; PO KE +String12a2: ; 12a2 + db " @" +Char35Text: +Char36Text: +Char37Text: ; 12a4 + db "@" +String12a5: ; 12a5 + db "@" +String12a6: ; 12a6 + db "@" +; 12a7 + +Function12a7: ; 12a7 + pop hl + ld bc, $0028 + add hl, bc + push hl + jp NextChar +; 12b0 + +Function12b0: ; 12b0 + pop hl + ld bc, $0014 + add hl, bc + push hl + jp NextChar +; 12b9 + +Function12b9: ; 12b9 + pop hl + push de + ld bc, $3b60 + add hl, bc + ld de, $ffec + ld c, $1 +.asm_12c4 + ld a, h + and a + jr nz, .asm_12cd + ld a, l + cp $14 + jr c, .asm_12d1 + +.asm_12cd + add hl, de + inc c + jr .asm_12c4 + +.asm_12d1 + ld hl, TileMap + ld de, $0014 + ld a, c +.asm_12d8 + and a + jr z, .asm_12df + add hl, de + dec a + jr .asm_12d8 + +.asm_12df + pop de + inc de + ld a, [de] + ld c, a + ld b, $0 + add hl, bc + push hl + jp NextChar +; 12ea + + +Char4F: ; 12ea + pop hl + hlcoord 1, 16 + push hl + jp NextChar +; 0x12f2 + +Function12f2: ; 12f2 + push de + ld a, [InLinkBattle] + cp $3 + jr z, .asm_1301 + cp $4 + jr z, .asm_1301 + call Function13c7 + +.asm_1301 + call Function13b6 + call Functionaaf + ld hl, $c5b9 + ld bc, $0312 + call ClearBox + call Function13cd + ld c, $14 + call DelayFrames + ld hl, $c5b9 + pop de + jp NextChar +; 131f + + +Char4B: ; 131f + ld a, [InLinkBattle] + or a + jr nz, .asm_1328 + call Function13c7 + +.asm_1328 + call Function13b6 + + push de + call Functionaaf + pop de + + ld a, [InLinkBattle] + or a + call z, Function13cd + + push de + call Function138c + call Function138c + hlcoord 1, 16 + pop de + jp NextChar +; 1345 + + +Char55: ; 1345 + push de + ld de, Text_1354 + ld b, h + ld c, l + call PlaceString + ld h, b + ld l, c + pop de + jp NextChar +; 1354 + +Text_1354: ; 1354 + db $4b, "@" +; 1356 + + +Char5F: ; 1356 +; ends a Pokédex entry + ld [hl], "." + pop hl + ret +; 135a + +Function135a: ; 135a + ld a, [InLinkBattle] + cp $3 + jr z, .asm_1368 + cp $4 + jr z, .asm_1368 + call Function13c7 + +.asm_1368 + call Function13b6 + call Functionaaf + ld a, [InLinkBattle] + cp $3 + jr z, .asm_137c + cp $4 + jr z, .asm_137c + call Function13cd + +.asm_137c + pop hl + ld de, .string_1382 + dec de + ret + +.string_1382 + db "@" +; 1383 + +Function1383: ; 1383 + ld a, $e6 + ld [hli], a + call PrintLetterDelay + jp NextChar +; 138c + +Function138c: ; 138c + ld hl, $c5b9 + ld de, $c5a5 + ld a, $3 +.asm_1394 + push af + ld c, $12 +.asm_1397 + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .asm_1397 + inc de + inc de + inc hl + inc hl + pop af + dec a + jr nz, .asm_1394 + ld hl, $c5e1 + ld a, $7f + ld bc, $0012 + call ByteFill + ld c, $5 + call DelayFrames + ret +; 13b6 + +Function13b6: ; 13b6 + push bc + ld a, [hOAMUpdate] + push af + ld a, $1 + ld [hOAMUpdate], a + call WaitBGMap + pop af + ld [hOAMUpdate], a + pop bc + ret +; 13c6 + +Function13c6: ; 13c6 + ret +; 13c7 + +Function13c7: ; 13c7 + ld a, $ee + ld [$c606], a + ret +; 13cd + +Function13cd: ; 13cd + ld a, [$c605] + ld [$c606], a + ret +; 13d4 + +Function13d4: ; 13d4 + ld b, a + ld a, [hROMBank] + push af + ld a, b + rst Bankswitch + + call PlaceString + pop af + rst Bankswitch + + ret +; 13e0 + +Function13e0: ; 13e0 + ld hl, $13e4 + ret + +.string_13e4 + db "@" +; 13e5 + + +Function13e5: ; 13e5 + ld a, [$cfcf] + push af + set 1, a + ld [$cfcf], a + call Function13f6 + pop af + ld [$cfcf], a + ret +; 13f6 + +Function13f6: ; 13f6 +.asm_13f6 + ld a, [hli] + cp "@" + ret z + call Function13ff + jr .asm_13f6 +; 13ff + +Function13ff: ; 13ff + push hl + push bc + ld c, a + ld b, 0 + ld hl, TextCommands + add hl, bc + add hl, bc + ld e, [hl] + inc hl + ld d, [hl] + pop bc + pop hl + +; jp de + push de + ret +; 1410 + +TextCommands: ; 1410 + dw Text_00 + dw Text_01 + dw Text_02 + dw Text_03 + dw Text_04 + dw Text_05 + dw Text_06 + dw Text_07 + dw Text_08 + dw Text_09 + dw Text_0A + dw Text_PlaySound ; $0b + dw Text_0C + dw Text_0D + dw Text_PlaySound ; $0e + dw Text_PlaySound ; $0f + dw Text_PlaySound ; $10 + dw Text_PlaySound ; $11 + dw Text_PlaySound ; $12 + dw Text_PlaySound ; $13 + dw Text_14 + dw Text_15 + dw Text_16 +; 143e + +Text_00: ; 143e +; TX +; write text until "@" +; [$00]["...@"] + + ld d, h + ld e, l + ld h, b + ld l, c + call PlaceString + ld h, d + ld l, e + inc hl + ret +; 1449 + +Text_01: ; 1449 +; TX_RAM +; write text from a ram address +; little endian +; [$01][addr] + + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + push hl + ld h, b + ld l, c + call PlaceString + pop hl + ret +; 1455 + +Text_16: ; 1455 +; TX_FAR +; write text from a different bank +; little endian +; [$16][addr][bank] + + ld a, [hROMBank] + push af + + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + + ld [hROMBank], a + ld [MBC3RomBank], a + + push hl + ld h, d + ld l, e + call Function13f6 + pop hl + + pop af + ld [hROMBank], a + ld [MBC3RomBank], a + ret +; 1470 + +Text_02: ; 1470 +; TX_NUM +; write bcdnumber from address, typically ram +; little endian +; [$02][addr][flags] +; flags: see PrintBCDNumber + + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + push hl + ld h, b + ld l, c + ld c, a + call PrintBCDNumber + ld b, h + ld c, l + pop hl + ret +; 1480 + +Text_03: ; 1480 +; TX_MOVE +; move to a new tile +; little endian +; [$03][tileaddr] + + ld a, [hli] + ld [$d0e6], a + ld c, a + ld a, [hli] + ld [$d0e7], a + ld b, a + ret +; 148b + +Text_04: ; 148b +; TX_BOX +; draw a box +; little endian +; [$04][tileaddr][height][width] + + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld b, a + ld a, [hli] + ld c, a + push hl + ld h, d + ld l, e + call TextBox + pop hl + ret +; 149b + +Text_05: ; 149b +; TX_LOW +; write text at (1,16) +; [$05] + + bccoord 1, 16 + ret +; 149f + +Text_06:: ; 149f +; TX_WAITBUTTON +; wait for button press +; show arrow +; [06] + + ld a, [InLinkBattle] + cp $3 + jp z, Text_0D + cp $4 + jp z, Text_0D + push hl + call Function13c7 + push bc + call Functionaaf + pop bc + call Function13cd + pop hl + ret +; 14ba + +Text_07: ; 14ba + push hl + call Function13cd + call Function138c + call Function138c + pop hl + bccoord 1, 16 + ret +; 14c9 + +Text_08: ; 14c9 +; TX_ASM + +; rom only? + bit 7, h + jr nz, .asm_14ce + jp [hl] + +.asm_14ce + ld a, "@" + ld [hl], a + ret +; 14d2 + +Text_09: ; 14d2 + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + push hl + ld h, b + ld l, c + ld b, a + and $f + ld c, a + ld a, b + and $f0 + swap a + set 6, a + ld b, a + call PrintNum + ld b, h + ld c, l + pop hl + ret +; 14ed + +Text_0A: ; 14ed + push hl + push bc + call GetJoypadPublic + ld a, [hJoyDown] + and BUTTON_A | BUTTON_B + jr nz, .asm_14fd + ld c, 30 + call DelayFrames + +.asm_14fd + pop bc + pop hl + ret +; 1500 + +Text_PlaySound:: ; 1500 +; chars: +; $0b, $0e, $0f, $10, $11, $12, $13 +; see TextSFX + + push bc + dec hl + ld a, [hli] + ld b, a + push hl + ld hl, TextSFX +.asm_1508 + ld a, [hli] + cp $ff + jr z, .asm_151f + cp b + jr z, .asm_1514 + inc hl + inc hl + jr .asm_1508 + +.asm_1514 + push de + ld e, [hl] + inc hl + ld d, [hl] + call StartSFX + call WaitSFX + pop de + +.asm_151f + pop hl + pop bc + ret +; 1522 + +Function1522: ; 1522 + push de + ld e, [hl] + inc hl + ld d, [hl] + call Function37ce + pop de + pop hl + pop bc + ret +; 152d + +TextSFX: ; 152d + dbw $0b, SFX_DEX_FANFARE_50_79 + dbw $12, SFX_FANFARE + dbw $0e, SFX_DEX_FANFARE_20_49 + dbw $0f, SFX_ITEM + dbw $10, SFX_CAUGHT_MON + dbw $11, SFX_DEX_FANFARE_80_109 + dbw $13, SFX_SLOT_MACHINE_START + db $ff ; end +; 1543 + +Text_0C: ; 1543 + ld a, [hli] + ld d, a + push hl + ld h, b + ld l, c +.asm_1548 + push de + ld a, "…" + ld [hli], a + call GetJoypadPublic + ld a, [hJoyDown] + and BUTTON_A | BUTTON_B + jr nz, .asm_155a + ld c, 10 + call DelayFrames +.asm_155a + pop de + dec d + jr nz, .asm_1548 + ld b, h + ld c, l + pop hl + ret +; 1562 + +Text_0D: ; 1562 +; wait for key down +; display arrow + push hl + push bc + call Functionaaf + pop bc + pop hl + ret +; 156a + +Text_14: ; 156a +; TX_PREDEF +; [$14][id] + + ld a, [hli] + push hl + ld e, a + ld d, 0 + ld hl, $4000 + add hl, de + add hl, de + ld a, $9 + call GetFarHalfword + ld d, h + ld e, l + ld h, b + ld l, c + call PlaceString + pop hl + ret +; 1582 + +Text_15: ; 1582 +; TX_DAY + + call GetWeekday + push hl + push bc + ld c, a + ld b, 0 + ld hl, .Days + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld d, h + ld e, l + pop hl + call PlaceString + ld h, b + ld l, c + ld de, .Day + call PlaceString + pop hl + ret +; 15a2 + +.Days ; 15a2 + dw .Sun + dw .Mon + dw .Tues + dw .Wednes + dw .Thurs + dw .Fri + dw .Satur + +.Sun db "SUN@" +.Mon db "MON@" +.Tues db "TUES@" +.Wednes db "WEDNES@" +.Thurs db "THURS@" +.Fri db "FRI@" +.Satur db "SATUR@" +.Day db "DAY@" +; 15d8 + diff --git a/main.asm b/main.asm index a5e476151..9f5a9d6c8 100644 --- a/main.asm +++ b/main.asm @@ -2096,1234 +2096,7 @@ Copy1bpp: ; fa4 ; fb6 -ClearBox: ; fb6 -; Fill a c*b box at hl with blank tiles. - - ld a, " " -.y - push bc - push hl -.x - ld [hli], a - dec c - jr nz, .x - pop hl - ld bc, 20 ; screen width - add hl, bc - pop bc - dec b - jr nz, .y - ret -; fc8 - - -ClearTileMap: ; fc8 -; Fill TileMap with blank tiles. - - ld hl, TileMap - ld a, " " - ld bc, 360 ; screen dimensions 20*18 - call ByteFill - -; We aren't done if the LCD is on. - ld a, [rLCDC] - bit 7, a - ret z - jp WaitBGMap -; fdb - - -Functionfdb: ; fdb - ld a, $7 - ld hl, AttrMap - ld bc, $0168 - call ByteFill - jr ClearTileMap -; fe8 - - - -TextBox: ; fe8 -; Draw a text box width c height b at hl -; Dimensions do not include the border. - push bc - push hl - call TextBoxBorder - pop hl - pop bc - jr TextBoxPalette -; ff1 - - -TextBoxBorder: ; ff1 - -; Top - push hl - ld a, "┌" - ld [hli], a - inc a ; "─" - call NPlaceChar - inc a ; "┐" - ld [hl], a - -; Middle - pop hl - ld de, 20 ; screen width - add hl, de -.PlaceRow - push hl - ld a, "│" - ld [hli], a - ld a, " " - call NPlaceChar - ld [hl], "│" - pop hl - ld de, 20 ; screen width - add hl, de - dec b - jr nz, .PlaceRow - -; Bottom - ld a, "└" - ld [hli], a - ld a, "─" - call NPlaceChar - ld [hl], "┘" - - ret -; 101e - - -NPlaceChar: ; 101e -; Place char a c times - ld d,c -.loop - ld [hli],a - dec d - jr nz, .loop - ret -; 1024 - - -TextBoxPalette: ; 1024 -; Fill text box width c height b at hl with pal 7 - ld de, AttrMap - TileMap - add hl, de - inc b - inc b - inc c - inc c - ld a, 7 ; pal -.gotoy - push bc - push hl -.gotox - ld [hli], a - dec c - jr nz, .gotox - pop hl - ld de, 20 ; screen width - add hl, de - pop bc - dec b - jr nz, .gotoy - ret -; 103e - - -SpeechTextBox: ; 103e -; Standard textbox. - hlcoord 0, 12 - ld b, 4 ; height - ld c, 18 ; screen width - 2 (border) - jp TextBox -; 1048 - -UnknownText_0x1048: ; 1048 - db $0, "ゲームフりーク!", $57 -; 1052 - -Function1052: ; 1052 - ld hl, .text_1056 - ret -.text_1056 - db "@" -; 1057 - - -PrintText: ; 1057 - call Function106c - push hl - hlcoord 1, 14 - ld bc, 18 + 3<<8 - call ClearBox - pop hl - -PrintTextBoxText: ; 1065 - bccoord 1, 14 - call Function13e5 - ret -; 106c - - -Function106c: ; 106c - push hl - call SpeechTextBox - call Function1ad2 - call Function321c - pop hl - ret -; 1078 - - - -PlaceString: ; 1078 - push hl - -PlaceNextChar: ; 1079 - ld a, [de] - cp "@" - jr nz, CheckDict - ld b, h - ld c, l - pop hl - ret - pop de - -NextChar: ; 1083 - inc de - jp PlaceNextChar - -CheckDict: ; 1087 - cp $15 - jp z, Function117b - cp $4f - jp z, Char4F - cp $4e - jp z, Function12a7 - cp $16 - jp z, Function12b9 - and a - jp z, Function1383 - cp $4c - jp z, $1337 - cp $4b - jp z, Char4B - cp $51 ; Player name - jp z, Function12f2 - cp $49 - jp z, Function1186 - cp $52 ; Mother name - jp z, Function118d - cp $53 - jp z, Function1194 - cp $35 - jp z, Function11e8 - cp $36 - jp z, Function11ef - cp $37 - jp z, Function11f6 - cp $38 - jp z, Function119b - cp $39 - jp z, Function11a2 - cp $54 - jp z, Function11c5 - cp $5b - jp z, Function11b7 - cp $5e - jp z, Function11be - cp $5c - jp z, Function11b0 - cp $5d - jp z, Function11a9 - cp $23 - jp z, Function11cc - cp $22 - jp z, Function12b0 - cp $55 - jp z, Char55 - cp $56 - jp z, Function11d3 - cp $57 - jp z, $137c - cp $58 - jp z, Function135a - cp $4a - jp z, Function11da - cp $24 - jp z, Function11e1 - cp $25 - jp z, NextChar - cp $1f - jr nz, .asm_1122 - ld a, $7f -.asm_1122 - cp $5f - jp z, Char5F - cp $59 - jp z, Function11fd - cp $5a - jp z, Char5D - cp $3f - jp z, $121b - cp $14 - jp z, $1252 - cp $e4 - jr z, .asm_1174 ; 0x113d $35 - cp $e5 - jr z, .asm_1174 ; 0x1141 $31 - jr .asm_114c ; 0x1143 $7 - ld b, a - call Function13c6 - jp NextChar -.asm_114c - cp $60 - jr nc, .asm_1174 ; 0x114e $24 - cp $40 - jr nc, .asm_1165 ; 0x1152 $11 - cp $20 - jr nc, .asm_115c ; 0x1156 $4 - add $80 - jr .asm_115e ; 0x115a $2 -.asm_115c - add $90 -.asm_115e - ld b, $e5 - call Function13c6 - jr .asm_1174 ; 0x1163 $f -.asm_1165 - cp $44 - jr nc, .asm_116d ; 0x1167 $4 - add $59 - jr .asm_116f ; 0x116b $2 -.asm_116d - add $86 -.asm_116f - ld b, $e4 - call Function13c6 -.asm_1174 - ld [hli], a - call PrintLetterDelay - jp NextChar -; 0x117b - - -Function117b: ; 117b - ld c, l - ld b, h - ld a, $5f - ld hl, $7036 - rst FarCall - jp PlaceNextChar -; 1186 - -Function1186: ; 1186 - push de - ld de, MomsName - jp $126a -; 118d - -Function118d: ; 118d - push de - ld de, PlayerName - jp $126a -; 1194 - -Function1194: ; 1194 - push de - ld de, RivalName - jp $126a -; 119b - -Function119b: ; 119b - push de - ld de, RedsName - jp $126a -; 11a2 - -Function11a2: ; 11a2 - push de - ld de, GreensName - jp $126a -; 11a9 - -Function11a9: ; 11a9 - push de - ld de, Char5DText - jp $126a -; 11b0 - -Function11b0: ; 11b0 - push de - ld de, Char5CText - jp $126a -; 11b7 - -Function11b7: ; 11b7 - push de - ld de, Char5BText - jp $126a -; 11be - -Function11be: ; 11be - push de - ld de, Char5EText - jp $126a -; 11c5 - -Function11c5: ; 11c5 - push de - ld de, Char54Text - jp $126a -; 11cc - -Function11cc: ; 11cc - push de - ld de, Char23Text - jp $126a -; 11d3 - -Function11d3: ; 11d3 - push de - ld de, $1292 - jp $126a -; 11da - -Function11da: ; 11da - push de - ld de, Char4AText - jp $126a -; 11e1 - -Function11e1: ; 11e1 - push de - ld de, Char24Text - jp $126a -; 11e8 - -Function11e8: ; 11e8 - push de - ld de, Char37Text - jp $126a -; 11ef - -Function11ef: ; 11ef - push de - ld de, Char37Text - jp $126a -; 11f6 - -Function11f6: ; 11f6 - push de - ld de, Char37Text - jp $126a -; 11fd - - -Function11fd: ; 11fd - ld a, [hBattleTurn] - xor $1 - jr Function1205 -; 1203 - -Char5D: ; 1203 - ld a, [hBattleTurn] -; 1205 - -Function1205: ; 1205 - push de - and a - jr nz, .asm_120e ; 0x1207 $5 - ld de, BattleMonNick - jr .asm_126a ; 0x120c $5c -.asm_120e - ld de, Char5AText ; Enemy - call PlaceString - ld h, b - ld l, c - ld de, EnemyMonNick - jr .asm_126a ; 0x1219 $4f - push de - ld a, [InLinkBattle] - and a - jr nz, .linkbattle - ld a, [TrainerClass] - cp $9 - jr z, .asm_1248 ; 0x1227 $1f - cp $2a - jr z, .asm_1248 ; 0x122b $1b - ld de, $c656 - call PlaceString - ld h, b - ld l, c - ld de, String12a2 - call PlaceString - push bc - ld hl, $5939 - ld a, $e - rst FarCall - pop hl - ld de, StringBuffer1 - jr .asm_126a ; 0x1246 $22 -.asm_1248 - ld de, RivalName - jr .asm_126a ; 0x124b $1d -.linkbattle - ld de, $c656 - jr .asm_126a ; 0x1250 $18 - push de - ld de, PlayerName - call PlaceString - ld h, b - ld l, c - ld a, [PlayerGender] - bit 0, a - ld de, String12a5 - jr z, .asm_126a ; 0x1263 $5 - ld de, String12a6 - jr .asm_126a ; 0x1268 $0 -.asm_126a - call PlaceString - ld h, b - ld l, c - pop de - jp NextChar -; 0x1273 - -Char5CText: ; 1273 - db "TM@" -Char5DText: ; 1276 - db "TRAINER@" -Char5BText: ; 127e - db "PC@" -Char5EText: ; 1281 - db "ROCKET@" -Char54Text: ; 1288 - db "POKé@" -Char23Text: ; 128d - db "こうげき@" -Char56Text:; 1292 - db "……@" -Char5AText: ; 1295 - db "Enemy @" -Char4AText: ; 129c - db $e1, $e2, "@" ; PK MN -Char24Text: ; 129f - db $70, $71, "@" ; PO KE -String12a2: ; 12a2 - db " @" -Char35Text: -Char36Text: -Char37Text: ; 12a4 - db "@" -String12a5: ; 12a5 - db "@" -String12a6: ; 12a6 - db "@" -; 12a7 - -Function12a7: ; 12a7 - pop hl - ld bc, $0028 - add hl, bc - push hl - jp NextChar -; 12b0 - -Function12b0: ; 12b0 - pop hl - ld bc, $0014 - add hl, bc - push hl - jp NextChar -; 12b9 - -Function12b9: ; 12b9 - pop hl - push de - ld bc, $3b60 - add hl, bc - ld de, $ffec - ld c, $1 -.asm_12c4 - ld a, h - and a - jr nz, .asm_12cd - ld a, l - cp $14 - jr c, .asm_12d1 - -.asm_12cd - add hl, de - inc c - jr .asm_12c4 - -.asm_12d1 - ld hl, TileMap - ld de, $0014 - ld a, c -.asm_12d8 - and a - jr z, .asm_12df - add hl, de - dec a - jr .asm_12d8 - -.asm_12df - pop de - inc de - ld a, [de] - ld c, a - ld b, $0 - add hl, bc - push hl - jp NextChar -; 12ea - - -Char4F: ; 12ea - pop hl - hlcoord 1, 16 - push hl - jp NextChar -; 0x12f2 - -Function12f2: ; 12f2 - push de - ld a, [InLinkBattle] - cp $3 - jr z, .asm_1301 - cp $4 - jr z, .asm_1301 - call Function13c7 - -.asm_1301 - call Function13b6 - call Functionaaf - ld hl, $c5b9 - ld bc, $0312 - call ClearBox - call Function13cd - ld c, $14 - call DelayFrames - ld hl, $c5b9 - pop de - jp NextChar -; 131f - - -Char4B: ; 131f - ld a, [InLinkBattle] - or a - jr nz, .asm_1328 - call Function13c7 - -.asm_1328 - call Function13b6 - - push de - call Functionaaf - pop de - - ld a, [InLinkBattle] - or a - call z, Function13cd - - push de - call Function138c - call Function138c - hlcoord 1, 16 - pop de - jp NextChar -; 1345 - - -Char55: ; 1345 - push de - ld de, Text_1354 - ld b, h - ld c, l - call PlaceString - ld h, b - ld l, c - pop de - jp NextChar -; 1354 - -Text_1354: ; 1354 - db $4b, "@" -; 1356 - - -Char5F: ; 1356 -; ends a Pokédex entry - ld [hl], "." - pop hl - ret -; 135a - -Function135a: ; 135a - ld a, [InLinkBattle] - cp $3 - jr z, .asm_1368 - cp $4 - jr z, .asm_1368 - call Function13c7 - -.asm_1368 - call Function13b6 - call Functionaaf - ld a, [InLinkBattle] - cp $3 - jr z, .asm_137c - cp $4 - jr z, .asm_137c - call Function13cd - -.asm_137c - pop hl - ld de, .string_1382 - dec de - ret - -.string_1382 - db "@" -; 1383 - -Function1383: ; 1383 - ld a, $e6 - ld [hli], a - call PrintLetterDelay - jp NextChar -; 138c - -Function138c: ; 138c - ld hl, $c5b9 - ld de, $c5a5 - ld a, $3 -.asm_1394 - push af - ld c, $12 -.asm_1397 - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .asm_1397 - inc de - inc de - inc hl - inc hl - pop af - dec a - jr nz, .asm_1394 - ld hl, $c5e1 - ld a, $7f - ld bc, $0012 - call ByteFill - ld c, $5 - call DelayFrames - ret -; 13b6 - -Function13b6: ; 13b6 - push bc - ld a, [hOAMUpdate] - push af - ld a, $1 - ld [hOAMUpdate], a - call WaitBGMap - pop af - ld [hOAMUpdate], a - pop bc - ret -; 13c6 - -Function13c6: ; 13c6 - ret -; 13c7 - -Function13c7: ; 13c7 - ld a, $ee - ld [$c606], a - ret -; 13cd - -Function13cd: ; 13cd - ld a, [$c605] - ld [$c606], a - ret -; 13d4 - -Function13d4: ; 13d4 - ld b, a - ld a, [hROMBank] - push af - ld a, b - rst Bankswitch - - call PlaceString - pop af - rst Bankswitch - - ret -; 13e0 - -Function13e0: ; 13e0 - ld hl, $13e4 - ret - -.string_13e4 - db "@" -; 13e5 - - -Function13e5: ; 13e5 - ld a, [$cfcf] - push af - set 1, a - ld [$cfcf], a - call Function13f6 - pop af - ld [$cfcf], a - ret -; 13f6 - -Function13f6: ; 13f6 -.asm_13f6 - ld a, [hli] - cp "@" - ret z - call Function13ff - jr .asm_13f6 -; 13ff - -Function13ff: ; 13ff - push hl - push bc - ld c, a - ld b, 0 - ld hl, TextCommands - add hl, bc - add hl, bc - ld e, [hl] - inc hl - ld d, [hl] - pop bc - pop hl - -; jp de - push de - ret -; 1410 - -TextCommands: ; 1410 - dw Text_00 - dw Text_01 - dw Text_02 - dw Text_03 - dw Text_04 - dw Text_05 - dw Text_06 - dw Text_07 - dw Text_08 - dw Text_09 - dw Text_0A - dw Text_PlaySound ; $0b - dw Text_0C - dw Text_0D - dw Text_PlaySound ; $0e - dw Text_PlaySound ; $0f - dw Text_PlaySound ; $10 - dw Text_PlaySound ; $11 - dw Text_PlaySound ; $12 - dw Text_PlaySound ; $13 - dw Text_14 - dw Text_15 - dw Text_16 -; 143e - -Text_00: ; 143e -; TX -; write text until "@" -; [$00]["...@"] - - ld d, h - ld e, l - ld h, b - ld l, c - call PlaceString - ld h, d - ld l, e - inc hl - ret -; 1449 - -Text_01: ; 1449 -; TX_RAM -; write text from a ram address -; little endian -; [$01][addr] - - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - push hl - ld h, b - ld l, c - call PlaceString - pop hl - ret -; 1455 - -Text_16: ; 1455 -; TX_FAR -; write text from a different bank -; little endian -; [$16][addr][bank] - - ld a, [hROMBank] - push af - - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - - ld [hROMBank], a - ld [MBC3RomBank], a - - push hl - ld h, d - ld l, e - call Function13f6 - pop hl - - pop af - ld [hROMBank], a - ld [MBC3RomBank], a - ret -; 1470 - -Text_02: ; 1470 -; TX_NUM -; write bcdnumber from address, typically ram -; little endian -; [$02][addr][flags] -; flags: see PrintBCDNumber - - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - push hl - ld h, b - ld l, c - ld c, a - call PrintBCDNumber - ld b, h - ld c, l - pop hl - ret -; 1480 - -Text_03: ; 1480 -; TX_MOVE -; move to a new tile -; little endian -; [$03][tileaddr] - - ld a, [hli] - ld [$d0e6], a - ld c, a - ld a, [hli] - ld [$d0e7], a - ld b, a - ret -; 148b - -Text_04: ; 148b -; TX_BOX -; draw a box -; little endian -; [$04][tileaddr][height][width] - - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld b, a - ld a, [hli] - ld c, a - push hl - ld h, d - ld l, e - call TextBox - pop hl - ret -; 149b - -Text_05: ; 149b -; TX_LOW -; write text at (1,16) -; [$05] - - bccoord 1, 16 - ret -; 149f - -Text_06:: ; 149f -; TX_WAITBUTTON -; wait for button press -; show arrow -; [06] - - ld a, [InLinkBattle] - cp $3 - jp z, Text_0D - cp $4 - jp z, Text_0D - push hl - call Function13c7 - push bc - call Functionaaf - pop bc - call Function13cd - pop hl - ret -; 14ba - -Text_07: ; 14ba - push hl - call Function13cd - call Function138c - call Function138c - pop hl - bccoord 1, 16 - ret -; 14c9 - -Text_08: ; 14c9 -; TX_ASM - -; rom only? - bit 7, h - jr nz, .asm_14ce - jp [hl] - -.asm_14ce - ld a, "@" - ld [hl], a - ret -; 14d2 - -Text_09: ; 14d2 - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - push hl - ld h, b - ld l, c - ld b, a - and $f - ld c, a - ld a, b - and $f0 - swap a - set 6, a - ld b, a - call PrintNum - ld b, h - ld c, l - pop hl - ret -; 14ed - -Text_0A: ; 14ed - push hl - push bc - call GetJoypadPublic - ld a, [hJoyDown] - and BUTTON_A | BUTTON_B - jr nz, .asm_14fd - ld c, 30 - call DelayFrames - -.asm_14fd - pop bc - pop hl - ret -; 1500 - -Text_PlaySound:: ; 1500 -; chars: -; $0b, $0e, $0f, $10, $11, $12, $13 -; see TextSFX - - push bc - dec hl - ld a, [hli] - ld b, a - push hl - ld hl, TextSFX -.asm_1508 - ld a, [hli] - cp $ff - jr z, .asm_151f - cp b - jr z, .asm_1514 - inc hl - inc hl - jr .asm_1508 - -.asm_1514 - push de - ld e, [hl] - inc hl - ld d, [hl] - call StartSFX - call WaitSFX - pop de - -.asm_151f - pop hl - pop bc - ret -; 1522 - -Function1522: ; 1522 - push de - ld e, [hl] - inc hl - ld d, [hl] - call Function37ce - pop de - pop hl - pop bc - ret -; 152d - -TextSFX: ; 152d - dbw $0b, SFX_DEX_FANFARE_50_79 - dbw $12, SFX_FANFARE - dbw $0e, SFX_DEX_FANFARE_20_49 - dbw $0f, SFX_ITEM - dbw $10, SFX_CAUGHT_MON - dbw $11, SFX_DEX_FANFARE_80_109 - dbw $13, SFX_SLOT_MACHINE_START - db $ff ; end -; 1543 - -Text_0C: ; 1543 - ld a, [hli] - ld d, a - push hl - ld h, b - ld l, c -.asm_1548 - push de - ld a, "…" - ld [hli], a - call GetJoypadPublic - ld a, [hJoyDown] - and BUTTON_A | BUTTON_B - jr nz, .asm_155a - ld c, 10 - call DelayFrames -.asm_155a - pop de - dec d - jr nz, .asm_1548 - ld b, h - ld c, l - pop hl - ret -; 1562 - -Text_0D: ; 1562 -; wait for key down -; display arrow - push hl - push bc - call Functionaaf - pop bc - pop hl - ret -; 156a - -Text_14: ; 156a -; TX_PREDEF -; [$14][id] - - ld a, [hli] - push hl - ld e, a - ld d, 0 - ld hl, $4000 - add hl, de - add hl, de - ld a, $9 - call GetFarHalfword - ld d, h - ld e, l - ld h, b - ld l, c - call PlaceString - pop hl - ret -; 1582 - -Text_15: ; 1582 -; TX_DAY - - call GetWeekday - push hl - push bc - ld c, a - ld b, 0 - ld hl, .Days - add hl, bc - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld d, h - ld e, l - pop hl - call PlaceString - ld h, b - ld l, c - ld de, .Day - call PlaceString - pop hl - ret -; 15a2 - -.Days ; 15a2 - dw .Sun - dw .Mon - dw .Tues - dw .Wednes - dw .Thurs - dw .Fri - dw .Satur - -.Sun db "SUN@" -.Mon db "MON@" -.Tues db "TUES@" -.Wednes db "WEDNES@" -.Thurs db "THURS@" -.Fri db "FRI@" -.Satur db "SATUR@" -.Day db "DAY@" -; 15d8 +INCLUDE "engine/text.asm" DMATransfer: ; 15d8 From 9ac0fc631b313af94ee4fcc9f261e72550884a5f Mon Sep 17 00:00:00 2001 From: yenatch Date: Tue, 20 Aug 2013 17:08:00 -0400 Subject: [PATCH 82/84] formatting in TileTypeTable and tile checks --- main.asm | 58 ++++++++++++++++++++++++++++++-------------------------- 1 file changed, 31 insertions(+), 27 deletions(-) diff --git a/main.asm b/main.asm index 9f5a9d6c8..9e683a9c4 100644 --- a/main.asm +++ b/main.asm @@ -2797,23 +2797,27 @@ Function1852: ; 1852 GetTileType: ; 185d -; checks the properties of a tile -; input: a = tile id +; Get the properties of tile a in TileTypeTable + push de push hl + ld hl, TileTypeTable ld e, a - ld d, $00 + ld d, 0 add hl, de - ld a, [hROMBank] ; current bank + + ld a, [hROMBank] push af ld a, BANK(TileTypeTable) rst Bankswitch - ld e, [hl] ; get tile type + ld e, [hl] pop af - rst Bankswitch ; return to current bank + rst Bankswitch + ld a, e - and a, $0f ; lo nybble only + and $f ; lo nybble only + pop hl pop de ret @@ -2852,22 +2856,20 @@ Function188e: ; 188e ret ; 1894 -Function1894: ; 1894 +CheckCutTreeTile: ; 1894 cp $12 ret z cp $1a ret ; 189a -Function189a: ; 189a +CheckHeadbuttTreeTile: ; 189a cp $15 ret z cp $1d ret ; 18a0 - - CheckCounterTile: ; 18a0 cp $90 ret z @@ -2893,9 +2895,9 @@ CheckIceTile: ; 18ac CheckWhirlpoolTile: ; 18b4 nop - cp $24 ; whirlpool 1 + cp $24 ret z - cp $2c ; whirlpool 2 + cp $2c ret z scf ret @@ -2908,21 +2910,19 @@ CheckWaterfallTile: ; 18bd ret ; 18c3 - -Function18c3: ; 18c3 +CheckStandingOnEntrance: ; 18c3 ld a, [StandingTile] - cp $71 + cp $71 ; door ret z cp $79 ret z - cp $7a + cp $7a ; stairs ret z - cp $7b + cp $7b ; cave ret ; 18d2 - GetMapObject: ; 18d2 ; Return the location of map object a in bc. ld hl, MapObjects @@ -21332,7 +21332,7 @@ Functionce7d: ; ce7d Functionce86: ; ce86 call GetFacingTileCoord - call Function189a + call CheckHeadbuttTreeTile jr nz, .asm_ce97 ld hl, $4ea7 call Function31cd @@ -50001,8 +50001,12 @@ INCBIN "baserom.gbc", $4ce05, $4ce1f - $4ce05 TileTypeTable: ; 4ce1f ; 256 tiletypes -; 00 = land -; 01 = water +; 00 land +; 01 water +; 0f wall +; 11 talkable water +; 1f talkable wall + db $00, $00, $00, $00, $00, $00, $00, $0f db $00, $00, $00, $00, $00, $00, $00, $0f db $00, $00, $1f, $00, $00, $1f, $00, $00 @@ -50011,7 +50015,7 @@ TileTypeTable: ; 4ce1f db $01, $01, $11, $00, $11, $01, $01, $0f db $01, $01, $01, $01, $01, $01, $01, $01 db $01, $01, $01, $01, $01, $01, $01, $01 - + db $00, $00, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 @@ -50020,7 +50024,7 @@ TileTypeTable: ; 4ce1f db $00, $00, $0f, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 - + db $0f, $0f, $0f, $0f, $0f, $00, $00, $00 db $0f, $0f, $0f, $0f, $0f, $00, $00, $00 db $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f @@ -50029,7 +50033,7 @@ TileTypeTable: ; 4ce1f db $00, $00, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 db $00, $00, $00, $00, $00, $00, $00, $00 - + db $01, $01, $01, $01, $01, $01, $01, $01 db $01, $01, $01, $01, $01, $01, $01, $01 db $00, $00, $00, $00, $00, $00, $00, $00 @@ -60477,7 +60481,7 @@ Function97c5f: ; 97c5f ld hl, $765b rst FarCall jr c, .asm_97cb9 - call Function1894 + call CheckCutTreeTile jr nz, .asm_97c7b ld a, $3 ld hl, $5186 @@ -60504,7 +60508,7 @@ Function97c5f: ; 97c5f .asm_97c9b ld a, [EngineBuffer1] - call Function189a + call CheckHeadbuttTreeTile jr nz, .asm_97cad ld a, $3 ld hl, $4ec9 From 5db04abdabe7215a04d14d411a2c00d38a0a8300 Mon Sep 17 00:00:00 2001 From: yenatch Date: Tue, 20 Aug 2013 18:05:49 -0400 Subject: [PATCH 83/84] TileType is actually TileCollision --- main.asm | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/main.asm b/main.asm index 9e683a9c4..50f2277e1 100644 --- a/main.asm +++ b/main.asm @@ -2780,14 +2780,14 @@ Function1836: ; 1836 Function184a: ; 184a ld a, [StandingTile] - call GetTileType + call GetTileCollision ld b, a ret ; 1852 Function1852: ; 1852 ld a, [StandingTile] - call GetTileType + call GetTileCollision sub $1 ret z and a @@ -2796,20 +2796,20 @@ Function1852: ; 1852 -GetTileType: ; 185d -; Get the properties of tile a in TileTypeTable +GetTileCollision: ; 185d +; Get the collision type of tile a. push de push hl - ld hl, TileTypeTable + ld hl, TileCollisionTable ld e, a ld d, 0 add hl, de ld a, [hROMBank] push af - ld a, BANK(TileTypeTable) + ld a, BANK(TileCollisionTable) rst Bankswitch ld e, [hl] pop af @@ -17270,7 +17270,7 @@ Function6f07: ; 6f07 add hl, bc ld a, [hl] ld d, a - call GetTileType + call GetTileCollision and a jr z, Function6f3e scf @@ -17283,7 +17283,7 @@ Function6f2c: ; 6f2c ld hl, $000e add hl, bc ld a, [hl] - call GetTileType + call GetTileCollision cp $1 jr z, Function6f3e scf @@ -17403,12 +17403,12 @@ Function6fa1: ; 6fa1 .asm_6fc2 call Function2a3c - call GetTileType + call GetTileCollision pop de and a jr nz, .asm_6fd7 call Function2a3c - call GetTileType + call GetTileCollision and a jr nz, .asm_6fd7 xor a @@ -21065,7 +21065,7 @@ CheckSurfOW: ; c9e7 ; Must be facing water. ld a, [EngineBuffer1] - call GetTileType + call GetTileCollision cp 1 ; surfable jr nz, .quit @@ -49999,8 +49999,7 @@ INCBIN "tilesets/04_palette_map.bin" INCBIN "baserom.gbc", $4ce05, $4ce1f - $4ce05 -TileTypeTable: ; 4ce1f -; 256 tiletypes +TileCollisionTable: ; 4ce1f ; 00 land ; 01 water ; 0f wall @@ -55022,7 +55021,7 @@ CheckRiding: ; 803ca CheckWalkable: ; 803d3 ; Return 0 if tile a is land. Otherwise, return carry. - call GetTileType + call GetTileCollision and a ; land ret z scf @@ -55034,7 +55033,7 @@ CheckSurfable: ; 803da ; Return 0 if tile a is water, or 1 if land. ; Otherwise, return carry. - call GetTileType + call GetTileCollision cp 1 jr z, .Water From 7b5ffb547570329321976cbee4b50df31951c8d5 Mon Sep 17 00:00:00 2001 From: yenatch Date: Tue, 20 Aug 2013 20:08:03 -0400 Subject: [PATCH 84/84] more field move asm/scripts --- main.asm | 531 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 484 insertions(+), 47 deletions(-) diff --git a/main.asm b/main.asm index 50f2277e1..9a72813e1 100644 --- a/main.asm +++ b/main.asm @@ -2836,14 +2836,14 @@ Function1875: ; 1875 .asm_1882 ld a, d - and $7 + and 7 ret z scf ret .asm_1888 ld a, d - and $7 + and 7 ret z scf ret @@ -20900,7 +20900,109 @@ Functionc785: ; c785 ret ; c796 -INCBIN "baserom.gbc", $c796, $c8ac - $c796 +INCBIN "baserom.gbc", $c796, $c7c4 - $c796 + +UnknownText_0xc7c4: ; 0xc7c4 + text_jump UnknownText_0x1c05dd, BANK(UnknownText_0x1c05dd) + db $50 +; 0xc7c9 + +INCBIN "baserom.gbc", $c7c9, $c7ce - $c7c9 + +Functionc7ce: ; c7ce + call GetFacingTileCoord + ld c, a + push de + ld a, $5 + ld hl, $49f5 + rst FarCall + pop de + jr nc, .asm_c7fc + call Function2a66 + ld c, [hl] + push hl + ld hl, $4862 + call $4840 + pop hl + jr nc, .asm_c7fc + ld a, l + ld [$d1ec], a + ld a, h + ld [$d1ed], a + ld a, b + ld [$d1ee], a + ld a, c + ld [$d1ef], a + xor a + ret + +.asm_c7fc + scf + ret +; c7fe + +INCBIN "baserom.gbc", $c7fe, $c802 - $c7fe + +UnknownScript_0xc802: ; 0xc802 + 3callasm BANK(GetPartyNick), GetPartyNick + 2writetext UnknownText_0xc7c4 + reloadmappart + 3callasm BANK(Functionc810), Functionc810 + loadmovesprites + end +; 0xc810 + +Functionc810: ; c810 + ld hl, $d1ec + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [$d1ee] + ld [hl], a + xor a + ld [hBGMapMode], a + call Function2173 + call Function1ad2 + call DelayFrame + ld a, [$d1ef] + ld e, a + callba Function8c940 + call Function2879 + call Function2914 + call Function1ad2 + call DelayFrame + call Functione51 + ret +; c840 + +Functionc840: ; c840 + push bc + ld a, [$d199] + ld de, 3 + call IsInArray + pop bc + jr nc, .asm_c860 + inc hl + ld a, [hli] + ld h, [hl] + ld l, a + ld de, 3 + ld a, c + call IsInArray + jr nc, .asm_c860 + inc hl + ld b, [hl] + inc hl + ld c, [hl] + scf + ret + +.asm_c860 + xor a + ret +; c862 + +INCBIN "baserom.gbc", $c862, $c8ac - $c862 Functionc8ac: ; c8ac call Functionc8b5 @@ -21052,7 +21154,7 @@ CheckDirection: ; c9cb ; c9e7 -CheckSurfOW: ; c9e7 +TrySurfOW: ; c9e7 ; Checking a tile in the overworld. ; Return carry if surfing is allowed. @@ -21235,7 +21337,90 @@ Functioncb07: ; cb07 ret ; cb1c -INCBIN "baserom.gbc", $cb1c, $cb95 - $cb1c +INCBIN "baserom.gbc", $cb1c, $cb20 - $cb1c + +UnknownScript_0xcb20: ; 0xcb20 + 3callasm BANK(GetPartyNick), GetPartyNick + 2writetext UnknownText_0xcb51 + closetext + loadmovesprites + playsound SFX_BUBBLEBEAM +.loop + applymovement $0, WaterfallStep + 3callasm BANK(Functioncb38), Functioncb38 + iffalse .loop + end +; 0xcb38 + +Functioncb38: ; cb38 + xor a + ld [ScriptVar], a + ld a, [StandingTile] + call CheckWaterfallTile + ret z + ld a, $41 + ld hl, $60c1 + rst FarCall + ld a, $1 + ld [ScriptVar], a + ret +; cb4f + +WaterfallStep: ; cb4f + turn_waterfall_up + step_end +; cb51 + +UnknownText_0xcb51: ; 0xcb51 + text_jump UnknownText_0x1c068e, BANK(UnknownText_0x1c068e) + db "@" +; 0xcb56 + +TryWaterfallOW: ; cb56 + ld d, WATERFALL + call CheckPartyMove + jr c, .asm_cb74 + ld de, $0022 + call CheckFlag2 + jr c, .asm_cb74 + call Functioncb07 + jr c, .asm_cb74 + ld a, BANK(UnknownScript_0xcb86) + ld hl, UnknownScript_0xcb86 + call PushScriptPointer + scf + ret + +.asm_cb74 + ld a, BANK(UnknownScript_0xcb7e) + ld hl, UnknownScript_0xcb7e + call PushScriptPointer + scf + ret +; cb7e + +UnknownScript_0xcb7e: ; 0xcb7e + jumptext UnknownText_0xcb81 +; 0xcb81 + +UnknownText_0xcb81: ; 0xcb81 + text_jump UnknownText_0x1c06a3, BANK(UnknownText_0x1c06a3) + db "@" +; 0xcb86 + +UnknownScript_0xcb86: ; 0xcb86 + loadfont + 2writetext UnknownText_0xcb90 + yesorno + iftrue UnknownScript_0xcb20 + loadmovesprites + end +; 0xcb90 + +UnknownText_0xcb90: ; 0xcb90 + text_jump UnknownText_0x1c06bf, BANK(UnknownText_0x1c06bf) + db "@" +; 0xcb95 Functioncb95: ; cb95 @@ -21282,33 +21467,46 @@ Functioncce5: ; cce5 Functionccee: ; ccee ld de, $001d call CheckBadge - jr c, .asm_cd06 - jr .asm_cd09 + jr c, Functioncd06 + jr Functioncd09 +; ccf8 - ld hl, .data_cd01 +Functionccf8: ; ccf8 + ld hl, UnknownText_0xcd01 call Function1d67 ld a, $80 ret +; cd01 -.data_cd01 - db $16 - db $51 - db $47 - db $70 - db $50 +UnknownText_0xcd01: ; 0xcd01 + text_jump UnknownText_0x1c0751, BANK(UnknownText_0x1c0751) + db "@" +; 0xcd06 -.asm_cd06 +Functioncd06: ; cd06 ld a, $80 ret +; cd09 -.asm_cd09 +Functioncd09: ; cd09 ld hl, $4d29 call Function31cd ld a, $81 ret ; cd12 -INCBIN "baserom.gbc", $cd12, $cd9d - $cd12 +INCBIN "baserom.gbc", $cd12, $cd1d - $cd12 + +Functioncd1d: ; cd1d + ld hl, PartySpecies + add hl, de + ld a, [hl] + ld [$d1ef], a + call GetPartyNick + ret +; cd29 + +INCBIN "baserom.gbc", $cd29, $cd9d - $cd29 Functioncd9d: ; cd9d call Functionc6ea @@ -21321,7 +21519,101 @@ Functioncd9d: ; cd9d ret ; cdae -INCBIN "baserom.gbc", $cdae, $ce7d - $cdae +INCBIN "baserom.gbc", $cdae, $cdd9 - $cdae + +UnknownText_0xcdd9: ; 0xcdd9 + text_jump UnknownText_0x1c0816, BANK(UnknownText_0x1c0816) + db "@" +; 0xcdde + +Functioncdde: ; cdde + call GetFacingTileCoord + ld c, a + push de + call CheckWhirlpoolTile + pop de + jr c, .asm_ce09 + call Function2a66 + ld c, [hl] + push hl + ld hl, $48a4 + call $4840 + pop hl + jr nc, .asm_ce09 + ld a, l + ld [$d1ec], a + ld a, h + ld [$d1ed], a + ld a, b + ld [$d1ee], a + ld a, c + ld [$d1ef], a + xor a + ret + +.asm_ce09 + scf + ret +; ce0b + +INCBIN "baserom.gbc", $ce0b, $ce0f - $ce0b + +UnknownScript_0xce0f: ; 0xce0f + 3callasm $03, $4706 + 2writetext UnknownText_0xcdd9 + reloadmappart + 3callasm $03, $4e1d + loadmovesprites + end +; 0xce1d + +INCBIN "baserom.gbc", $ce1d, $ce3e - $ce1d + +TryWhirlpoolOW: ; ce3e + ld d, WHIRLPOOL + call CheckPartyMove + jr c, .asm_ce5c + ld de, $0021 + call CheckFlag2 + jr c, .asm_ce5c + call Functioncdde + jr c, .asm_ce5c + ld a, BANK(UnknownScript_0xce6e) + ld hl, UnknownScript_0xce6e + call PushScriptPointer + scf + ret + +.asm_ce5c + ld a, BANK(UnknownScript_0xce66) + ld hl, UnknownScript_0xce66 + call PushScriptPointer + scf + ret +; ce66 + +UnknownScript_0xce66: ; 0xce66 + jumptext UnknownText_0xce69 +; 0xce69 + +UnknownText_0xce69: ; 0xce69 + text_jump UnknownText_0x1c082b, BANK(UnknownText_0x1c082b) + db "@" +; 0xce6e + +UnknownScript_0xce6e: ; 0xce6e + loadfont + 2writetext UnknownText_0xce78 + yesorno + iftrue UnknownScript_0xce0f + loadmovesprites + end +; 0xce78 + +UnknownText_0xce78: ; 0xce78 + text_jump UnknownText_0x1c0864, BANK(UnknownText_0x1c0864) + db "@" +; 0xce7d Functionce7d: ; ce7d call Functionce86 @@ -21345,7 +21637,24 @@ Functionce86: ; ce86 ret ; ce9d -INCBIN "baserom.gbc", $ce9d, $ceeb - $ce9d +INCBIN "baserom.gbc", $ce9d, $cec9 - $ce9d + +TryHeadbuttOW: ; cec9 + ld d, $1d + call CheckPartyMove + jr c, .asm_ceda + ld a, $3 + ld hl, $4edc + call PushScriptPointer + scf + ret + +.asm_ceda + xor a + ret +; cedc + +INCBIN "baserom.gbc", $cedc, $ceeb - $cedc Functionceeb: ; ceeb call Functioncef4 @@ -21504,7 +21813,64 @@ Functiond121: ; d121 ret ; d13e -INCBIN "baserom.gbc", $d13e, $d1d5 - $d13e +INCBIN "baserom.gbc", $d13e, $d186 - $d13e + +TryCutOW: ; d186 + ld d, CUT + call CheckPartyMove + jr c, .asm_d19f + ld de, $001c + call CheckFlag2 + jr c, .asm_d19f + ld a, BANK(UnknownScript_0xd1a9) + ld hl, UnknownScript_0xd1a9 + call PushScriptPointer + scf + ret + +.asm_d19f + ld a, BANK(UnknownScript_0xd1cd) + ld hl, UnknownScript_0xd1cd + call PushScriptPointer + scf + ret +; d1a9 + +UnknownScript_0xd1a9: ; 0xd1a9 + loadfont + 2writetext UnknownText_0xd1c8 + yesorno + iffalse .script_d1b8 + 3callasm BANK(Functiond1ba), Functiond1ba + iftrue UnknownScript_0xc802 +.script_d1b8 + loadmovesprites + end +; 0xd1ba + +Functiond1ba: ; d1ba + xor a + ld [ScriptVar], a + call Functionc7ce + ret c + ld a, $1 + ld [ScriptVar], a + ret +; d1c8 + +UnknownText_0xd1c8: ; 0xd1c8 + text_jump UnknownText_0x1c09dd, BANK(UnknownText_0x1c09dd) + db "@" +; 0xd1cd + +UnknownScript_0xd1cd: ; 0xd1cd + jumptext UnknownText_0xd1d0 +; 0xd1d0 + +UnknownText_0xd1d0: ; 0xd1d0 + text_jump UnknownText_0x1c0a05, BANK(UnknownText_0x1c0a05) + db "@" +; 0xd1d5 Functiond1d5: ; d1d5 @@ -21515,13 +21881,17 @@ Functiond1d5: ; d1d5 pop de ld a, [$d142] dec a - ld hl, $51e9 + ld hl, Tabled1e9 rst JumpTable ret ; d1e9 -INCBIN "baserom.gbc", $d1e9, $d1f1 - $d1e9 - +Tabled1e9: ; d1e9 + dw Functiond1f1 + dw Functiond1f6 + dw Functiond1fb + dw Functiond201 +; d1f1 Functiond1f1: ; d1f1 ld h, d @@ -21549,6 +21919,7 @@ Functiond201: ; d201 jp Functiond3c4 ; d20d + Functiond20d: ; d20d call Functiond27b jr nz, .asm_d241 @@ -28809,7 +29180,17 @@ Function149dd: ; 149dd ret ; 149ea -INCBIN "baserom.gbc", $149ea, $14a07 - $149ea +INCBIN "baserom.gbc", $149ea, $149f5 - $149ea + +Function149f5: ; 149f5 + ld a, c + ld hl, $4a00 + ld de, $0001 + call IsInArray + ret +; 14a00 + +INCBIN "baserom.gbc", $14a00, $14a07 - $14a00 Function14a07: ; 14a07 @@ -57198,7 +57579,64 @@ GetTimePalFade: ; 8c17c db %00000000 ; 8c20f -INCBIN "baserom.gbc", $8c20f, $8cf53 - $8c20f +INCBIN "baserom.gbc", $8c20f, $8c940 - $8c20f + +Function8c940: ; 8c940 + ld a, e + and $1 + ld [$cf63], a + call $496d + call WaitSFX + ld de, $001e + call StartSFX +.asm_8c952 + ld a, [$cf63] + bit 7, a + jr nz, .asm_8c96c + ld a, $90 + ld [$c3b5], a + ld hl, $4f7a + ld a, $23 + rst FarCall + call $4a0c + call DelayFrame + jr .asm_8c952 + +.asm_8c96c + ret +; 8c96d + +Function8c96d: ; 8c96d + ld hl, $4f53 + ld a, $23 + rst FarCall + ld de, $49cc + ld hl, VTiles1 + ld bc, $2304 + call Request2bpp + ld de, $498c + ld hl, $8840 + ld bc, $2304 + call Request2bpp + ret +; 8c98c + +INCBIN "baserom.gbc", $8c98c, $8ca0c - $8c98c + +Function8ca0c: ; 8ca0c + ld a, [$cf63] + ld e, a + ld d, $0 + ld hl, $4a1b + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 8ca1b + +INCBIN "baserom.gbc", $8ca1b, $8cf53 - $8ca1b Function8cf53: ; 8cf53 @@ -60480,43 +60918,36 @@ Function97c5f: ; 97c5f ld hl, $765b rst FarCall jr c, .asm_97cb9 + call CheckCutTreeTile - jr nz, .asm_97c7b - ld a, $3 - ld hl, $5186 - rst FarCall + jr nz, .whirlpool + callba TryCutOW jr .asm_97cb9 -.asm_97c7b +.whirlpool ld a, [EngineBuffer1] call CheckWhirlpoolTile - jr nz, .asm_97c8b - ld a, $3 - ld hl, $4e3e - rst FarCall + jr nz, .waterfall + callba TryWhirlpoolOW jr .asm_97cb9 -.asm_97c8b +.waterfall ld a, [EngineBuffer1] call CheckWaterfallTile - jr nz, .asm_97c9b - ld a, $3 - ld hl, $4b56 - rst FarCall + jr nz, .headbutt + callba TryWaterfallOW jr .asm_97cb9 -.asm_97c9b +.headbutt ld a, [EngineBuffer1] call CheckHeadbuttTreeTile - jr nz, .asm_97cad - ld a, $3 - ld hl, $4ec9 - rst FarCall + jr nz, .surf + callba TryHeadbuttOW jr c, .asm_97cb9 jr .asm_97cb7 -.asm_97cad - callba CheckSurfOW +.surf + callba TrySurfOW jr nc, .asm_97cb7 jr .asm_97cb9 @@ -69959,7 +70390,13 @@ Function1060bb: ; 1060bb ret ; 1060bc -INCBIN "baserom.gbc", $1060bc, $1060d3 - $1060bc +INCBIN "baserom.gbc", $1060bc, $1060c1 - $1060bc + +Function1060c1: ; 1060c1 + ret +; 1060c2 + +INCBIN "baserom.gbc", $1060c2, $1060d3 - $1060c2 Function1060d3: ; 1060d3