diff options
-rw-r--r-- | constants.asm | 2 | ||||
-rw-r--r-- | main.asm | 275 |
2 files changed, 144 insertions, 133 deletions
diff --git a/constants.asm b/constants.asm index 537c3c65..10cb6d91 100644 --- a/constants.asm +++ b/constants.asm @@ -259,6 +259,8 @@ W_HPBARDELTA EQU $CEEF W_HPBARHPDIFFERENCE EQU $CEFD +W_BUFFER EQU $CEE9 ; used for temporary things + W_ANIMSOUNDID EQU $CF07 ; sound ID during battle animations ; movement byte 2 of current sprite @@ -15194,7 +15194,8 @@ Func_64ea: ; 64ea (1:64ea) ret ; known jump sources: e834 (3:6834), f33c (3:733c) -Func_64eb: ; 64eb (1:64eb) +;Func_64eb: +AskForMonNickname: ; 64eb (1:64eb) call SaveScreenTilesToBuffer1 call Load16BitRegisters push hl @@ -15203,11 +15204,11 @@ Func_64eb: ; 64eb (1:64eb) ld hl, W_SCREENTILESBUFFER ld b, $4 ld c, $b - call z, ClearScreenArea + call z, ClearScreenArea ; only if in wild batle ld a, [$cf91] ld [$d11e], a call GetMonName - ld hl, UnnamedText_6557 ; $6557 + ld hl, DoYouWantToNicknameText ; $6557 call PrintText FuncCoord 14, 7 ; $c43a ld hl, Coord @@ -15243,11 +15244,12 @@ Func_64eb: ; 64eb (1:64eb) ld d, h ld e, l ld hl, $cd6d - ld bc, $b + ld bc, $000b jp CopyData -; 6557 (1:6557) -UnnamedText_6557: ; 6557 (1:6557) - TX_FAR _UnnamedText_6557 +; 0x6557 + +DoYouWantToNicknameText: ; 0x6557 + TX_FAR _DoYouWantToNicknameText db $50 ; 0x6557 + 5 bytes @@ -33158,8 +33160,8 @@ BillsPC: ; 17ee4 (5:7ee4) ld hl, UnnamedText_17f28 ;accessed bill's pc .printText call PrintText - ld b, BANK(Func_214c2) - ld hl, Func_214c2 + ld b, BANK(BillsPC_) + ld hl, BillsPC_ call Bankswitch ReloadMainMenu: ; 17f06 (5:7f06) xor a @@ -42510,6 +42512,7 @@ LogOffPCText: ; 214ba (8:54ba) ; known jump sources: 17f03 (5:7f03) Func_214c2: ; 214c2 (8:54c2) +BillsPC_: ; 0x214c2 ld hl, $d730 set 6, [hl] xor a @@ -42521,14 +42524,15 @@ Func_214c2: ; 214c2 (8:54c2) push af ld a, [W_FLAGS_CD60] bit 3, a - jr nz, Func_214e8 + jr nz, BillsPCMenu ld a, $99 call PlaySound - ld hl, UnnamedText_217e9 ; $57e9 + ld hl, SwitchOnText call PrintText ; known jump sources: 214db (8:54db), 215b8 (8:55b8), 215c8 (8:55c8), 215d1 (8:55d1), 215d7 (8:55d7), 21615 (8:5615), 21624 (8:5624), 21634 (8:5634), 2163d (8:563d), 21643 (8:5643), 21670 (8:5670), 2167f (8:567f), 21688 (8:5688), 216b0 (8:56b0), 216bb (8:56bb) Func_214e8: ; 214e8 (8:54e8) +BillsPCMenu: ld a, [$ccd3] ld [W_CURMENUITEMID], a ; $cc26 ld hl, $9780 @@ -42562,7 +42566,7 @@ Func_214e8: ; 214e8 (8:54e8) ld [hli], a ld [hl], a ld [W_PLAYERMONNUMBER], a ; $cc2f - ld hl, UnnamedText_217ee ; $57ee + ld hl, WhatText call PrintText FuncCoord 9, 14 ; $c4c1 ld hl, Coord @@ -42593,18 +42597,18 @@ Func_214e8: ; 214e8 (8:54e8) call Delay3 call HandleMenuInput bit 1, a - jp nz, Func_21588 + jp nz, Func_21588 ; b button call PlaceUnfilledArrowMenuCursor ld a, [W_CURMENUITEMID] ; $cc26 ld [$ccd3], a and a - jp z, Func_21618 + jp z, Func_21618 ; withdraw cp $1 - jp z, Func_215ac + jp z, Func_215ac ; deposit cp $2 - jp z, Func_21673 + jp z, Func_21673 ; release cp $3 - jp z, Func_216b3 + jp z, Func_216b3 ; change box ; known jump sources: 21569 (8:5569) Func_21588: ; 21588 (8:5588) @@ -42627,25 +42631,26 @@ Func_21588: ; 21588 (8:5588) ; known jump sources: 2157b (8:557b) Func_215ac: ; 215ac (8:55ac) +BillsPCDeposit: ld a, [W_NUMINPARTY] ; $d163 dec a jr nz, .asm_215bb - ld hl, UnnamedText_217fd ; $57fd + ld hl, CantDepositLastMonText call PrintText - jp Func_214e8 + jp BillsPCMenu .asm_215bb ld a, [W_NUMINBOX] ; $da80 cp $14 jr nz, .asm_215cb - ld hl, UnnamedText_21802 ; $5802 + ld hl, BoxFullText ; $5802 call PrintText - jp Func_214e8 + jp BillsPCMenu .asm_215cb ld hl, W_NUMINPARTY ; $d163 call Func_216be - jp c, Func_214e8 + jp c, BillsPCMenu call Func_2174b - jp nc, Func_214e8 + jp nc, BillsPCMenu ld a, [$cf91] call GetCryData call PlaySoundWaitForCurrent @@ -42671,23 +42676,23 @@ Func_215ac: ; 215ac (8:55ac) .asm_2160c ld [hli], a ld [hl], $50 - ld hl, UnnamedText_217f8 ; $57f8 + ld hl, MonWasStoredText ; $57f8 call PrintText - jp Func_214e8 + jp BillsPCMenu ; known jump sources: 21576 (8:5576) Func_21618: ; 21618 (8:5618) ld a, [W_NUMINBOX] ; $da80 and a jr nz, .asm_21627 - ld hl, UnnamedText_2180c ; $580c + ld hl, NoMonText ; $580c call PrintText jp Func_214e8 .asm_21627 ld a, [W_NUMINPARTY] ; $d163 cp $6 jr nz, .asm_21637 - ld hl, UnnamedText_21811 ; $5811 + ld hl, CantTakeMonText ; $5811 call PrintText jp Func_214e8 .asm_21637 @@ -42709,7 +42714,7 @@ Func_21618: ; 21618 (8:5618) ld [$cf95], a call RemovePokemon call WaitForSoundToFinish - ld hl, UnnamedText_21807 ; $5807 + ld hl, MonIsTakenOutText ; $5807 call PrintText jp Func_214e8 @@ -42718,14 +42723,14 @@ Func_21673: ; 21673 (8:5673) ld a, [W_NUMINBOX] ; $da80 and a jr nz, .asm_21682 - ld hl, UnnamedText_2180c ; $580c + ld hl, NoMonText ; $580c call PrintText jp Func_214e8 .asm_21682 ld hl, W_NUMINBOX ; $da80 call Func_216be jp c, Func_214e8 - ld hl, UnnamedText_2181b ; $581b + ld hl, OnceReleasedText ; $581b call PrintText call YesNoChoice ld a, [W_CURMENUITEMID] ; $cc26 @@ -42737,7 +42742,7 @@ Func_21673: ; 21673 (8:5673) call WaitForSoundToFinish ld a, [$cf91] call PlayCry - ld hl, UnnamedText_21820 ; $5820 + ld hl, MonWasReleasedText ; $5820 call PrintText jp Func_214e8 @@ -42888,63 +42893,63 @@ WithdrawPCText: ; 217d3 (8:57d3) StatsCancelPCText: ; 217dc (8:57dc) db "STATS",$4e,"CANCEL@" -UnnamedText_217e9: ; 217e9 (8:57e9) - TX_FAR _UnnamedText_217e9 +SwitchOnText: ; 0x217e9 + TX_FAR _SwitchOnText db $50 ; 0x217e9 + 5 bytes -UnnamedText_217ee: ; 217ee (8:57ee) - TX_FAR _UnnamedText_217ee +WhatText: ; 0x217ee + TX_FAR _WhatText db $50 ; 0x217ee + 5 bytes -UnnamedText_217f3: ; 217f3 (8:57f3) - TX_FAR _UnnamedText_217f3 +DepositWhichMonText: ; 0x217f3 + TX_FAR _DepositWhichMonText db $50 ; 0x217f3 + 5 bytes -UnnamedText_217f8: ; 217f8 (8:57f8) - TX_FAR _UnnamedText_217f8 +MonWasStoredText: ; 0x217f8 + TX_FAR _MonWasStoredText db $50 ; 0x217f8 + 5 bytes -UnnamedText_217fd: ; 217fd (8:57fd) - TX_FAR _UnnamedText_217fd +CantDepositLastMonText: ; 0x217fd + TX_FAR _CantDepositLastMonText db $50 ; 0x217fd + 5 bytes -UnnamedText_21802: ; 21802 (8:5802) - TX_FAR _UnnamedText_21802 +BoxFullText: ; 0x21802 + TX_FAR _BoxFullText db $50 ; 0x21802 + 5 bytes -UnnamedText_21807: ; 21807 (8:5807) - TX_FAR _UnnamedText_21807 +MonIsTakenOutText: ; 0x21807 + TX_FAR _MonIsTakenOutText db $50 ; 0x21807 + 5 bytes -UnnamedText_2180c: ; 2180c (8:580c) - TX_FAR _UnnamedText_2180c +NoMonText: ; 0x2180c + TX_FAR _NoMonText db $50 ; 0x2180c + 5 bytes -UnnamedText_21811: ; 21811 (8:5811) - TX_FAR _UnnamedText_21811 +CantTakeMonText: ; 0x21811 + TX_FAR _CantTakeMonText db $50 ; 0x21811 + 5 bytes -UnnamedText_21816: ; 21816 (8:5816) - TX_FAR _UnnamedText_21816 +ReleaseWhichMonText: ; 0x21816 + TX_FAR _ReleaseWhichMonText db $50 ; 0x21816 + 5 bytes -UnnamedText_2181b: ; 2181b (8:581b) - TX_FAR _UnnamedText_2181b +OnceReleasedText: ; 0x2181b + TX_FAR _OnceReleasedText db $50 ; 0x2181b + 5 bytes -UnnamedText_21820: ; 21820 (8:5820) - TX_FAR _UnnamedText_21820 +MonWasReleasedText: ; 0x21820 + TX_FAR _MonWasReleasedText db $50 ; 0x21820 + 5 bytes @@ -54441,29 +54446,30 @@ AIBattleUseItemText: ; 3a844 (e:6844) ; known jump sources: 58dcf (16:4dcf) Func_3a849: ; 3a849 (e:6849) - call Func_3a85d - call Func_3a869 +DrawAllPokeballs: ; 0x3a849 + call LoadPartyPokeballGfx + call SetupOwnPartyPokeballs ld a, [W_ISINBATTLE] ; $d057 dec a - ret z - jp Func_3a887 + ret z ; return if wild pokémon + jp SetupEnemyPartyPokeballs ; known jump sources: 3c671 (f:4671) -Func_3a857: ; 3a857 (e:6857) - call Func_3a85d - jp Func_3a887 +DrawEnemyPokeballs: ; 0x3a857 + call LoadPartyPokeballGfx + jp SetupEnemyPartyPokeballs ; known jump sources: 3a849 (e:6849), 3a857 (e:6857), 3a948 (e:6948) -Func_3a85d: ; 3a85d (e:685d) +LoadPartyPokeballGfx: ; 3a85d (e:685d) ld de, PokeballTileGraphics ; $697e ld hl, $8310 ld bc, (BANK(PokeballTileGraphics) << 8) + $04 jp CopyVideoData ; known jump sources: 3a84c (e:684c) -Func_3a869: ; 3a869 (e:6869) +SetupOwnPartyPokeballs: ; 3a869 (e:6869) call Func_3a902 - ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA) + ld hl, W_PARTYMON1DATA ld de, W_NUMINPARTY ; $d163 call Func_3a8a6 ld a, $60 @@ -54476,11 +54482,11 @@ Func_3a869: ; 3a869 (e:6869) jp Func_3a8e1 ; known jump sources: 3a854 (e:6854), 3a85a (e:685a) -Func_3a887: ; 3a887 (e:6887) +SetupEnemyPartyPokeballs: ; 3a887 (e:6887) call Func_3a919 - ld hl, W_WATERRATE ; $d8a4 + ld hl, $d8a4 ld de, W_ENEMYMONCOUNT ; $d89c - call Func_3a8a6 + call SetupPokeballs ld hl, W_BASECOORDX ; $d081 ld a, $48 ld [hli], a @@ -54491,54 +54497,55 @@ Func_3a887: ; 3a887 (e:6887) jp Func_3a8e1 ; known jump sources: 3a872 (e:6872), 3a890 (e:6890), 3a951 (e:6951), 3a96d (e:696d) +SetupPokeballs: ; 0x3a8a6 Func_3a8a6: ; 3a8a6 (e:68a6) ld a, [de] push af - ld de, $cee9 - ld c, $6 - ld a, $34 -.asm_3a8af + ld de, W_BUFFER + ld c, $6 ; max num of partymons + ld a, $34 ; empty pokeball +.emptyloop ld [de], a inc de dec c - jr nz, .asm_3a8af + jr nz, .emptyloop ; 0x3a8b2 $fb pop af - ld de, $cee9 -.asm_3a8b8 + ld de, W_BUFFER +.monloop push af - call Func_3a8c2 + call PickPokeball inc de pop af dec a - jr nz, .asm_3a8b8 + jr nz, .monloop ret ; known jump sources: 3a8b9 (e:68b9) -Func_3a8c2: ; 3a8c2 (e:68c2) +PickPokeball: ; 3a8c2 (e:68c2) inc hl ld a, [hli] and a - jr nz, .asm_3a8cd + jr nz, .alive ld a, [hl] and a - ld b, $33 - jr z, .asm_3a8d8 -.asm_3a8cd + ld b, $33 ; crossed ball (fainted) + jr z, .done_fainted +.alive inc hl inc hl - ld a, [hl] + ld a, [hl] ; status and a - ld b, $32 - jr nz, .asm_3a8da - dec b - jr .asm_3a8da -.asm_3a8d8 + ld b, $32 ; black ball (status) + jr nz, .done + dec b ; regular ball + jr .done +.done_fainted inc hl inc hl -.asm_3a8da +.done ld a, b ld [de], a - ld bc, $28 + ld bc, $0028 ; rest of mon struct add hl, bc ret @@ -54611,7 +54618,7 @@ asm_3a930: ; 3a930 (e:6930) ; known jump sources: 37306 (d:7306) Func_3a948: ; 3a948 (e:6948) - call Func_3a85d + call LoadPartyPokeballGfx ld hl, W_PARTYMON1_NUM ; $d16b (aliases: W_PARTYMON1DATA) ld de, W_NUMINPARTY ; $d163 call Func_3a8a6 @@ -58410,24 +58417,25 @@ Func_3c525: ; 3c525 (f:4525) jp MainInBattleLoop ; known jump sources: 3c529 (f:4529), 3c717 (f:4717) +FaintEnemyPokemon ; 0x3c567 Func_3c567: ; 3c567 (f:4567) call ReadPlayerMonCurHPAndStatus ld a, [W_ISINBATTLE] ; $d057 dec a - jr z, .asm_3c57f + jr z, .wild ld a, [W_ENEMYMONNUMBER] ; $cfe8 - ld hl, W_WATERMONS ; $d8a5 (aliases: W_ENEMYMON1HP) - ld bc, $2c + ld hl, W_ENEMYMON1HP + ld bc, $2c ; mon struct len call AddNTimes xor a ld [hli], a ld [hl], a -.asm_3c57f +.wild ld hl, W_PLAYERBATTSTATUS1 ; $d062 res 2, [hl] xor a ld [W_NUMHITS], a ; $d074 - ld hl, $d065 + ld hl, $d065 ; enemy statuses ld [hli], a ld [hli], a ld [hli], a @@ -58449,56 +58457,56 @@ Func_3c567: ; 3c567 (f:4567) call ClearScreenArea ld a, [W_ISINBATTLE] ; $d057 dec a - jr z, .asm_3c5d3 + jr z, .wild_win xor a ld [$c0f1], a ld [$c0f2], a - ld a, $9e + ld a, $9e ; SFX_FALL? call PlaySoundWaitForCurrent -.asm_3c5c2 +.sfxwait ld a, [$c02a] cp $9e - jr z, .asm_3c5c2 - ld a, $95 + jr z, .sfxwait + ld a, $95 ; SFX_DROP call PlaySound call WaitForSoundToFinish - jr .asm_3c5db -.asm_3c5d3 + jr .sfxplayed +.wild_win call Func_3c643 - ld a, $f9 + ld a, $f9 ; SONG_WIN call Func_3c6ee -.asm_3c5db +.sfxplayed ld hl, W_PLAYERMONCURHP ; $d015 ld a, [hli] or [hl] - jr nz, .asm_3c5eb + jr nz, .playermonnotfaint ld a, [$ccf0] and a - jr nz, .asm_3c5eb + jr nz, .playermonnotfaint call Func_3c741 -.asm_3c5eb +.playermonnotfaint call AnyPokemonAliveCheck ld a, d and a ret z - ld hl, UnnamedText_3c63e ; $463e + ld hl, EnemyMonFainted ; $463e call PrintText call Func_3ee94 call SaveScreenTilesToBuffer1 xor a ld [$cf0b], a - ld b, $4b + ld b, EXP__ALL call IsItemInBag push af - jr z, .asm_3c614 + jr z, .no_exp_all ld hl, $d002 ld b, $7 -.asm_3c60e +.exp_all_loop srl [hl] inc hl dec b - jr nz, .asm_3c60e -.asm_3c614 + jr nz, .exp_all_loop +.no_exp_all xor a ld [$cc5b], a ld hl, Func_5524f @@ -58521,8 +58529,9 @@ Func_3c567: ; 3c567 (f:4567) ld b, BANK(Func_5524f) jp Bankswitch ; indirect jump to Func_5524f (5524f (15:524f)) ; 3c63e (f:463e) -UnnamedText_3c63e: ; 3c63e (f:463e) - TX_FAR _UnnamedText_3c63e + +EnemyMonFainted: ; 0x3c63e + TX_FAR _EnemyMonFainted db $50 ; 0x3c63e + 5 bytes @@ -58558,8 +58567,8 @@ Func_3c664: ; 3c664 (f:4664) ld hl, $cf1e ld e, $30 call Func_3ce90 - ld hl, Func_3a857 - ld b, BANK(Func_3a857) + ld hl, DrawEnemyPokeballs + ld b, BANK(DrawEnemyPokeballs) call Bankswitch ; indirect jump to Func_3a857 (3a857 (e:6857)) ld a, [W_ISLINKBATTLE] ; $d12b cp $4 @@ -117824,7 +117833,7 @@ _HurtByLeechSeedText: ; 896b3 (22:56b3) db $5a, "!", $58 ; 0x896b3 + 20 bytes -_UnnamedText_3c63e: ; 896c7 (22:56c7) +_EnemyMonFainted: ; 0x896c7 db $0, "Enemy @" TX_RAM W_ENEMYMONNAME db $0, $4f @@ -118484,20 +118493,20 @@ _UnnamedText_76683: ; 8a0f4 (22:60f4) db "OF FAME List.", $58 ; 0x8a0f4 + 61 bytes -_UnnamedText_217e9: ; 8a131 (22:6131) +_SwitchOnText: ; 0x8a131 db $0, "Switch on!", $58 ; 0x8a131 + 12 bytes -_UnnamedText_217ee: ; 8a13d (22:613d) +_WhatText: ; 0x8a13d db $0, "What?", $57 ; 0x8a13d + 7 bytes -_UnnamedText_217f3: ; 8a144 (22:6144) +_DepositWhichMonText: ; 0x8a144 db $0, "Deposit which", $4f db "#MON?", $57 ; 0x8a144 + 21 bytes -_UnnamedText_217f8: ; 8a159 (22:6159) +_MonWasStoredText: ; 0x8a159 TX_RAM $cf4b db $0, " was", $4f db "stored in Box @" @@ -118505,17 +118514,17 @@ _UnnamedText_217f8: ; 8a159 (22:6159) db $0, ".", $58 ; 30 bytes -_UnnamedText_217fd: ; 8a177 (22:6177) +_CantDepositLastMonText: ; 0x8a177 db $0, "You can't deposit", $4f db "the last #MON!", $58 ; 0x8a177 + 33 bytes -_UnnamedText_21802: ; 8a198 (22:6198) +_BoxFullText: ; 0x8a198 db $0, "Oops! This Box is", $4f db "full of #MON.", $58 ; 0x8a198 + 33 bytes -_UnnamedText_21807: ; 8a1b9 (22:61b9) +_MonIsTakenOutText: ; 0x8a1b9 TX_RAM $cf4b db $0, " is", $4f db "taken out.", $55 @@ -118526,35 +118535,35 @@ UnknownText_8a1d1: ; 8a1d1 (22:61d1) db $0, ".", $58 ; 0x8a1d1 + 6 bytes -_UnnamedText_2180c: ; 8a1d7 (22:61d7) +_NoMonText: ; 0x8a1d7 db $0, "What? There are", $4f db "no #MON here!", $58 ; 0x8a1d7 + 31 bytes -_UnnamedText_21811: ; 8a1f6 (22:61f6) +_CantTakeMonText: ; 0x8a1f6 db $0, "You can't take", $4f db "any more #MON.", $51 db "Deposit #MON", $4f db "first.", $58 ; 0x8a1f6 + 50 bytes -_UnnamedText_21816: ; 8a228 (22:6228) +_ReleaseWhichMonText: ; 0x8a228 db $0, "Release which", $4f db "#MON?", $57 ; 0x8a228 + 21 bytes -_UnnamedText_2181b: ; 8a23d (22:623d) +_OnceReleasedText: ; 0x8a23d db $0, "Once released,", $4f db "@" ; 0x8a23d + 17 bytes -UnknownText_8a24e: ; 8a24e (22:624e) +MonIsGoneForeverText: ; 0x8a24e TX_RAM $cf4b db $0, " is", $55 db "gone forever. OK?", $57 ; 0x8a24e + 26 bytes -_UnnamedText_21820: ; 8a268 (22:6268) +_MonWasReleasedText: ; 0x8a268 TX_RAM $cf4b db $0, " was", $4f db "released outside.", $55 @@ -118633,7 +118642,7 @@ _UnnamedText_5d4d: ; 8a40d (22:640d) INCLUDE "text/oakspeech.tx" -_UnnamedText_6557: ; 8a605 (22:6605) +_DoYouWantToNicknameText: ; 0x8a605 db $0, "Do you want to", $4f db "give a nickname", $55 db "to @" |