From 8f605a2bd0af6f6db90bad86c12eda4bb16c4585 Mon Sep 17 00:00:00 2001 From: Sanky Date: Mon, 1 Jul 2013 22:01:21 +0200 Subject: Some Bill's PC stuff --- main.asm | 240 ++++++++++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 200 insertions(+), 40 deletions(-) (limited to 'main.asm') diff --git a/main.asm b/main.asm index 836cbae1..4baf7f6c 100644 --- a/main.asm +++ b/main.asm @@ -21440,8 +21440,8 @@ BillsPC: ld hl, UnnamedText_17f28 ;accessed bill's pc .printText call PrintText - ld b, 8 - ld hl, $54C2 + ld b, BANK(BillsPC_) + ld hl, BillsPC_ call Bankswitch ReloadMainMenu: xor a @@ -29649,65 +29649,225 @@ UnnamedText_1ecbd: ; 0x1ecbd SECTION "bank8",DATA,BANK[$8] -INCBIN "baserom.gbc",$20000,$217e9 - $20000 +INCBIN "baserom.gbc",$20000,$214c2 - $20000 + +BillsPC_: ; 0x214c2 + ld hl, $d730 + set 6, [hl] + xor a + ld [$ccd3], a + inc a ; MONSTER_NAME + ld [$d0b6], a + call LoadHpBarAndStatusTilePatterns + ld a, [W_LISTSCROLLOFFSET] + push af + ld a, [$cd60] + bit 3, a + jr nz, BillsPCMenu ; 0x214db $b + ld a, $99 + call $23b1 + ld hl, SwitchOnText + call PrintText +BillsPCMenu: ;.asm_214e8 + ld a, [$ccd3] + ld [W_CURMENUITEMID], a + ld hl, $9780 + ld de, $697e + ld bc, $0e01 + call CopyVideoData + call $3709 + ld hl, $c3a0 + ld b, $a + ld c, $c + call TextBoxBorder + ld hl, $c3ca + ld de, $56e1 ; Probably menu text + call PlaceString + ld hl, $cc24 + ld a, $2 + ld [hli], a + dec a + ld [hli], a + inc hl + inc hl + ld a, $4 + ld [hli], a + ld a, $3 + ld [hli], a + xor a + ld [hli], a + ld [hli], a + ld hl, $cc36 + ld [hli], a + ld [hl], a + ld [$cc2f], a + ld hl, WhatText + call PrintText + ld hl, $c4c1 + ld b, $2 + ld c, $9 + call TextBoxBorder + ld a, [$d5a0] + and $7f + cp $9 + jr c, .asm_2154f ; 0x21542 $b + sub $9 + ld hl, $c4f1 + ld [hl], $f7 + add $f6 + jr .asm_21551 ; 0x2154d $2 +.asm_2154f + add $f7 +.asm_21551 + ld [$c4f2], a + ld hl, $c4ea + ld de, $5713 + call PlaceString + ld a, $1 + ld [$ff00+$ba], a + call Delay3 + call HandleMenuInput + bit 1, a + jp nz, $5588 ; b button + call PlaceUnfilledArrowMenuCursor + ld a, [W_CURMENUITEMID] + ld [$ccd3], a + and a + jp z, $5618 ; withdraw + cp $1 + jp z, $55ac ; deposit + cp $2 + jp z, $5673 ; release + cp $3 + jp z, $56b3 ; change box + ld a, [$cd60] + bit 3, a + jr nz, .asm_2159a ; 0x2158d $b + call LoadTextBoxTilePatterns + ld a, $9a + call $23b1 + call $3748 +.asm_2159a + ld hl, $cd60 + res 5, [hl] + call $3701 + pop af + ld [$cc36], a + ld hl, $d730 + res 6, [hl] + ret +; 0x215ac + +BillsPCDeposit: ; 0x215ac + ld a, [W_NUMINPARTY] + dec a + jr nz, .asm_215bb ; 0x215b0 $9 + ld hl, CantDepositLastMonText + call PrintText + jp $54e8 +.asm_215bb + ld a, [$da80] + cp $14 + jr nz, .asm_215cb ; 0x215c0 $9 + ld hl, $5802 + call PrintText + jp BillsPCMenu +.asm_215cb + ld hl, $d163 + call $56be + jp c, BillsPCMenu + call $574b + jp nc, BillsPCMenu + ld a, [$cf91] + call GetCryData + call $3740 + ld a, $1 + ld [$cf95], a + call $3a68 + xor a + ld [$cf95], a + call RemovePokemon + call $3748 + ld hl, $cd3d + ld a, [$d5a0] + and $7f + cp $9 + jr c, .asm_2160a ; 0x215ff $9 + sub $9 + ld [hl], $f7 + inc hl + add $f6 + jr .asm_2160c ; 0x21608 $2 +.asm_2160a + add $f7 +.asm_2160c + ld [hli], a + ld [hl], $50 + ld hl, $57f8 + call PrintText + jp BillsPCMenu +; 0x21618 + + +INCBIN "baserom.gbc",$21618,$217e9 - $21618 -UnnamedText_217e9: ; 0x217e9 - TX_FAR _UnnamedText_217e9 +SwitchOnText: ; 0x217e9 + TX_FAR _SwitchOnText db $50 ; 0x217e9 + 5 bytes -UnnamedText_217ee: ; 0x217ee - TX_FAR _UnnamedText_217ee +WhatText: ; 0x217ee + TX_FAR _WhatText db $50 ; 0x217ee + 5 bytes -UnnamedText_217f3: ; 0x217f3 - TX_FAR _UnnamedText_217f3 +DepositWhichMonText: ; 0x217f3 + TX_FAR _DepositWhichMonText db $50 ; 0x217f3 + 5 bytes -UnnamedText_217f8: ; 0x217f8 - TX_FAR _UnnamedText_217f8 +MonWasStoredText: ; 0x217f8 + TX_FAR _MonWasStoredText db $50 ; 0x217f8 + 5 bytes -UnnamedText_217fd: ; 0x217fd - TX_FAR _UnnamedText_217fd +CantDepositLastMonText: ; 0x217fd + TX_FAR _CantDepositLastMonText db $50 ; 0x217fd + 5 bytes -UnnamedText_21802: ; 0x21802 - TX_FAR _UnnamedText_21802 +BoxFullText: ; 0x21802 + TX_FAR _BoxFullText db $50 ; 0x21802 + 5 bytes -UnnamedText_21807: ; 0x21807 - TX_FAR _UnnamedText_21807 +MonIsTakenOutText: ; 0x21807 + TX_FAR _MonIsTakenOutText db $50 ; 0x21807 + 5 bytes -UnnamedText_2180c: ; 0x2180c - TX_FAR _UnnamedText_2180c +NoMonText: ; 0x2180c + TX_FAR _NoMonText db $50 ; 0x2180c + 5 bytes -UnnamedText_21811: ; 0x21811 - TX_FAR _UnnamedText_21811 +CantTakeMonText: ; 0x21811 + TX_FAR _CantTakeMonText db $50 ; 0x21811 + 5 bytes -UnnamedText_21816: ; 0x21816 - TX_FAR _UnnamedText_21816 +ReleaseWhichMonText: ; 0x21816 + TX_FAR _ReleaseWhichMonText db $50 ; 0x21816 + 5 bytes -UnnamedText_2181b: ; 0x2181b - TX_FAR _UnnamedText_2181b +OnceReleasedText: ; 0x2181b + TX_FAR _OnceReleasedText db $50 ; 0x2181b + 5 bytes -UnnamedText_21820: ; 0x21820 - TX_FAR _UnnamedText_21820 +MonWasReleasedText: ; 0x21820 + TX_FAR _MonWasReleasedText db $50 ; 0x21820 + 5 bytes @@ -82260,20 +82420,20 @@ _UnnamedText_76683: ; 0x8a0f4 db "OF FAME List.", $58 ; 0x8a0f4 + 61 bytes -_UnnamedText_217e9: ; 0x8a131 +_SwitchOnText: ; 0x8a131 db $0, "Switch on!", $58 ; 0x8a131 + 12 bytes -_UnnamedText_217ee: ; 0x8a13d +_WhatText: ; 0x8a13d db $0, "What?", $57 ; 0x8a13d + 7 bytes -_UnnamedText_217f3: ; 0x8a144 +_DepositWhichMonText: ; 0x8a144 db $0, "Deposit which", $4f db "#MON?", $57 ; 0x8a144 + 21 bytes -_UnnamedText_217f8: ; 0x8a159 +_MonWasStoredText: ; 0x8a159 TX_RAM $cf4b db $0, " was", $4f db "stored in Box @" @@ -82281,17 +82441,17 @@ _UnnamedText_217f8: ; 0x8a159 db $0, ".", $58 ; 30 bytes -_UnnamedText_217fd: ; 0x8a177 +_CantDepositLastMonText: ; 0x8a177 db $0, "You can't deposit", $4f db "the last #MON!", $58 ; 0x8a177 + 33 bytes -_UnnamedText_21802: ; 0x8a198 +_BoxFullText: ; 0x8a198 db $0, "Oops! This Box is", $4f db "full of #MON.", $58 ; 0x8a198 + 33 bytes -_UnnamedText_21807: ; 0x8a1b9 +_MonIsTakenOutText: ; 0x8a1b9 TX_RAM $cf4b db $0, " is", $4f db "taken out.", $55 @@ -82302,35 +82462,35 @@ UnknownText_8a1d1: ; 0x8a1d1 db $0, ".", $58 ; 0x8a1d1 + 6 bytes -_UnnamedText_2180c: ; 0x8a1d7 +_NoMonText: ; 0x8a1d7 db $0, "What? There are", $4f db "no #MON here!", $58 ; 0x8a1d7 + 31 bytes -_UnnamedText_21811: ; 0x8a1f6 +_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: ; 0x8a228 +_ReleaseWhichMonText: ; 0x8a228 db $0, "Release which", $4f db "#MON?", $57 ; 0x8a228 + 21 bytes -_UnnamedText_2181b: ; 0x8a23d +_OnceReleasedText: ; 0x8a23d db $0, "Once released,", $4f db "@" ; 0x8a23d + 17 bytes -UnknownText_8a24e: ; 0x8a24e +MonIsGoneForeverText: ; 0x8a24e TX_RAM $cf4b db $0, " is", $55 db "gone forever. OK?", $57 ; 0x8a24e + 26 bytes -_UnnamedText_21820: ; 0x8a268 +_MonWasReleasedText: ; 0x8a268 TX_RAM $cf4b db $0, " was", $4f db "released outside.", $55 -- cgit v1.2.3 From 15105c45f3c764b9f115a0032ad3469fddad4e80 Mon Sep 17 00:00:00 2001 From: Sanky Date: Tue, 2 Jul 2013 20:59:35 +0200 Subject: =?UTF-8?q?Disasm=20code=20which=20draws=20tiny=20party=20pok?= =?UTF-8?q?=C3=A9mon=20symbols=20in-battle.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.asm | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 100 insertions(+), 1 deletion(-) (limited to 'main.asm') diff --git a/main.asm b/main.asm index 4baf7f6c..261b9aa5 100644 --- a/main.asm +++ b/main.asm @@ -38420,7 +38420,106 @@ AIBattleUseItemText: ; 0x3a844 TX_FAR _AIBattleUseItemText db "@" -INCBIN "baserom.gbc",$3a849,$3af3e - $3a849 +DrawAllPokeballs: ; 0x3a849 + call LoadPartyPokeballGfx + call SetupOwnPartyPokeballs + ld a, [W_ISINBATTLE] + dec a + ret z ; return if wild pokémon + jp SetupEnemyPartyPokeballs + +DrawEnemyPokeballs: ; 0x3a857 + call LoadPartyPokeballGfx + jp SetupEnemyPartyPokeballs + +LoadPartyPokeballGfx: ; 0x3a85d + ld de, $697e + ld hl, $8310 + ld bc, $0e04 + jp CopyVideoData + +SetupOwnPartyPokeballs: ; 0x3a869 + call $6902 + ld hl, W_PARTYMON1DATA + ld de, W_NUMINPARTY + call SetupPokeballs + ld a, $60 + ld hl, $d081 ; W_BASECOORDX ? + ld [hli], a + ld [hl], a + ld a, $8 + ld [$cd3e], a + ld hl, $c300 + jp $68e1 + +SetupEnemyPartyPokeballs: ; 0x3a887 + call $6919 + ld hl, $d8a4 + ld de, W_ENEMYMONCOUNT + call SetupPokeballs + ld hl, $d081 + ld a, $48 + ld [hli], a + ld [hl], $20 + ld a, $f8 + ld [$cd3e], a + ld hl, $c318 + jp $68e1 + +SetupPokeballs: ; 0x3a8a6 + ; [de] = mons in party + ; [hl] = partymon1 data + ld a, [de] + push af + 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, .emptyloop ; 0x3a8b2 $fb + pop af + ld de, W_BUFFER +.monloop + push af + call PickPokeball + inc de + pop af + dec a + jr nz, .monloop ; 0x3a8bf $f7 + ret + +PickPokeball: ; 0x3a8c2 + inc hl + ld a, [hli] + and a + jr nz, .alive ; 0x3a8c5 $6 + ld a, [hl] + and a + ld b, $33 ; crossed ball (fainted) + jr z, .done_fainted ; 0x3a8cb $b +.alive + inc hl + inc hl + ld a, [hl] ; status + and a + ld b, $32 ; black ball (status) + jr nz, .done ; 0x3a8d3 $5 + dec b ; regular ball + jr .done ; 0x3a8d6 $2 +.done_fainted + inc hl + inc hl +.done + ld a, b + ld [de], a + ld bc, $0028 ; rest of mon struct + add hl, bc + ret +; 0x3a8e1 + +INCBIN "baserom.gbc",$3a8e1,$3af3e - $3a8e1 UnnamedText_3af3e: ; 0x3af3e TX_FAR _UnnamedText_3af3e -- cgit v1.2.3 From f20b39069ed9f4914b27a8e8b292d222c8486b74 Mon Sep 17 00:00:00 2001 From: Sanky Date: Thu, 4 Jul 2013 11:05:27 +0200 Subject: FaintEnemyPokemon --- main.asm | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 114 insertions(+), 4 deletions(-) (limited to 'main.asm') diff --git a/main.asm b/main.asm index 261b9aa5..34afc724 100644 --- a/main.asm +++ b/main.asm @@ -40811,10 +40811,120 @@ UnnamedText_3c438: ; 0x3c438 db $50 ; 0x3c438 + 5 bytes -INCBIN "baserom.gbc",$3c43d,$3c63e - $3c43d +INCBIN "baserom.gbc",$3c43d,$3c567 - $3c43d -UnnamedText_3c63e: ; 0x3c63e - TX_FAR _UnnamedText_3c63e +FaintEnemyPokemon ; 0x3c567 + call $4d43 ; copy some data + ld a, [W_ISINBATTLE] + dec a + jr z, .wild ; 0x3c56e $f + ld a, [W_ENEMYMONNUMBER] + ld hl, $d8a5 ; W_ENEMYMONS? + ld bc, $002c ; mon struct len + call AddNTimes + xor a + ld [hli], a + ld [hl], a +.wild + ld hl, W_PLAYERBATTSTATUS1 + res 2, [hl] + xor a + ld [W_NUMHITS], a + ld hl, $d065 ; enemy statuses + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hl], a + ld [W_ENEMYDISABLEDMOVE], a + ld [$ccef], a + ld [$ccf3], a + ld hl, $ccf1 + ld [hli], a + ld [hl], a + ld hl, $c410 + ld de, $c424 + call $4893 + ld hl, $c3a0 + ld bc, $040b + call ClearScreenArea + ld a, [W_ISINBATTLE] + dec a + jr z, .wild_win ; 0x3c5b4 $1d + xor a + ld [$c0f1], a + ld [$c0f2], a + ld a, $9e ; SFX_FALL? + call $3740 +.sfxwait + ld a, [$c02a] + cp $9e + jr z, .sfxwait ; 0x3c5c7 $f9 + ld a, $95 ; SFX_DROP? + call $23b1 + call $3748 + jr .sfxplayed ; 0x3c5d1 $8 +.wild_win + call $4643 + ld a, $f9 ; SONG_WIN + call $46ee +.sfxplayed + ld hl, W_PLAYERMONCURHP + ld a, [hli] + or [hl] + jr nz, .playermonnotfaint ; 0x3c5e0 $9 + ld a, [$ccf0] + and a + jr nz, .playermonnotfaint ; 0x3c5e6 $3 + call $4741 +.playermonnotfaint ; .asm_3c5eb + call $4a83 + ld a, d + and a + ret z + ld hl, EnemyMonFainted + call PrintText + call $6e94 + call $3719 + xor a + ld [$cf0b], a + ld b, EXP__ALL + call IsItemInBag + push af + jr z, .no_exp_all + ld hl, $d002 + ld b, $7 +.exp_all_loop ; .asm_3c60e + srl [hl] + inc hl + dec b + jr nz, .exp_all_loop ; 0x3c612 $fa +.no_exp_all ; .asm_3c614 + xor a + ld [$cc5b], a + ld hl, $524f + ld b, $15 + call Bankswitch + pop af + ret z + ld a, $1 + ld [$cc5b], a + ld a, [W_NUMINPARTY] + ld b, $0 +.asm_3c62c + scf + rl b + dec a + jr nz, .asm_3c62c ; 0x3c630 $fa + ld a, b + ld [$d058], a + ld hl, $524f + ld b, $15 + jp Bankswitch +; 0x3c63e + +EnemyMonFainted: ; 0x3c63e + TX_FAR _EnemyMonFainted db $50 ; 0x3c63e + 5 bytes @@ -81859,7 +81969,7 @@ _UnnamedText_3c438: ; 0x896b3 db $5a, "!", $58 ; 0x896b3 + 20 bytes -_UnnamedText_3c63e: ; 0x896c7 +_EnemyMonFainted: ; 0x896c7 db $0, "Enemy @" TX_RAM $cfda db $0, $4f -- cgit v1.2.3 From da3b8dc19d685eb15c23d345aa51afb25b7dce58 Mon Sep 17 00:00:00 2001 From: Sanky Date: Thu, 4 Jul 2013 15:18:53 +0200 Subject: AskForMonNickname --- main.asm | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 56 insertions(+), 4 deletions(-) (limited to 'main.asm') diff --git a/main.asm b/main.asm index 34afc724..bf8bb2a3 100644 --- a/main.asm +++ b/main.asm @@ -9023,10 +9023,62 @@ Map0fFlyWarp: ; 0x64be Map15FlyWarp: ; 0x64c4 FLYWARP_DATA 10,20,11 -INCBIN "baserom.gbc",$64ca,$6557 - $64ca +INCBIN "baserom.gbc",$64ca,$64eb - $64ca -UnnamedText_6557: ; 0x6557 - TX_FAR _UnnamedText_6557 +AskForMonNickname: ; 64eb + call $3719 + call $3e94 + push hl + ld a, [W_ISINBATTLE] + dec a + ld hl, $c3a0 + ld b, $4 + ld c, $b + call z, ClearScreenArea ; only if in wild battle + ld a, [$cf91] + ld [$d11e], a + call GetMonName + ld hl, DoYouWantToNicknameText + call PrintText + ld hl, $c43a + ld bc, $080f + ld a, $14 + ld [$d125], a + call DisplayTextBoxID + pop hl + ld a, [W_CURMENUITEMID] + and a + jr nz, .asm_654c ; 0x6522 $28 + ld a, [$cfcb] + push af + xor a + ld [$cfcb], a + push hl + ld a, $2 + ld [$d07d], a + call $6596 + ld a, [W_ISINBATTLE] + and a + jr nz, .asm_653e ; 0x6539 $3 + call $3e08 +.asm_653e + call $3725 + pop hl + pop af + ld [$cfcb], a + ld a, [$cf4b] + cp $50 + ret nz +.asm_654c + ld d, h + ld e, l + ld hl, $cd6d + ld bc, $000b + jp CopyData +; 0x6557 + +DoYouWantToNicknameText: ; 0x6557 + TX_FAR _DoYouWantToNicknameText db $50 ; 0x6557 + 5 bytes @@ -82778,7 +82830,7 @@ _UnnamedText_5d4d: ; 0x8a40d INCLUDE "text/oakspeech.tx" -_UnnamedText_6557: ; 0x8a605 +_DoYouWantToNicknameText: ; 0x8a605 db $0, "Do you want to", $4f db "give a nickname", $55 db "to @" -- cgit v1.2.3