summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore3
-rw-r--r--constants.asm2
-rw-r--r--extras/generate_sys.py8
-rw-r--r--main.asm637
4 files changed, 624 insertions, 26 deletions
diff --git a/.gitignore b/.gitignore
index 36788f59..671d30b3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,6 +25,9 @@ baserom.sav
pokered.sgm
pokered.sav
+baserom.sys
+pokered.sys
+
# for vim configuration
# url: http://www.vim.org/scripts/script.php?script_id=441
.lvimrc
diff --git a/constants.asm b/constants.asm
index 9c5c8be7..c6f42b51 100644
--- a/constants.asm
+++ b/constants.asm
@@ -148,6 +148,7 @@ W_MENUWRAPPINGENABLED EQU $CC4A
W_PLAYERSUBSITUTEHP EQU $CCD7
W_ENEMYSUBSITUTEHP EQU $CCD8
+W_MOVEMENUTYPE EQU $CCDB ; 0=regular, 1=mimic, 2=above message box (relearn, heal pp..)
W_PLAYERSELECTEDMOVE EQU $CCDC
W_ENEMYSELECTEDMOVE EQU $CCDD
@@ -251,6 +252,7 @@ W_BATTLETYPE EQU $D05A ; in normal battle, this is 0
; in safari battle, this is 2
W_LONEATTACKNO EQU $D05C ; which entry in LoneAttacks to use
+W_GYMLEADERNO EQU $D05C ; it's actually the same thing as ^
W_TRAINERNO EQU $D05D ; which instance of [youngster, lass, etc] is this?
W_MOVEMISSED EQU $D05F
diff --git a/extras/generate_sys.py b/extras/generate_sys.py
new file mode 100644
index 00000000..72957038
--- /dev/null
+++ b/extras/generate_sys.py
@@ -0,0 +1,8 @@
+import json
+
+import analyze_incbins
+analyze_incbins.scan_for_predefined_labels()
+
+with open('../pokered.sym', 'w') as sym:
+ for label in json.load(open('labels.json')):
+ sym.write('{0:x}:{1} {2}\n'.format(label['bank_id'], label['local_pointer'][1:], label['label']))
diff --git a/main.asm b/main.asm
index 8ac96655..9ad0432b 100644
--- a/main.asm
+++ b/main.asm
@@ -17449,7 +17449,7 @@ ItemUsePPRestore: ; 631E
cp a,ELIXER
jp nc,.useElixir ; if Elixir or Max Elixir
ld a,$02
- ld [$ccdb],a
+ ld [W_MOVEMENUTYPE],a
ld hl,RaisePPWhichTechniqueText
ld a,[$cd3d]
cp a,ETHER ; is it a PP Up?
@@ -17459,8 +17459,8 @@ ItemUsePPRestore: ; 631E
call PrintText
xor a
ld [$cc2e],a
- ld hl,$5219
- ld b,$0f
+ ld hl,MoveSelectionMenu
+ ld b,BANK(MoveSelectionMenu)
call Bankswitch ; move selection menu
ld a,0
ld [$cc2e],a
@@ -18347,7 +18347,38 @@ _UnnamedText_ef7d: ; 0xef7d
db $50
; 0xef7d + 5 bytes
-INCBIN "baserom.gbc",$ef82,$f6a5 - $ef82
+INCBIN "baserom.gbc",$ef82,$f473 - $ef82
+
+LoadMovePPs: ; 0xf473
+ call Load16BitRegisters
+ ld b, $4
+.pploop
+ ld a, [hli]
+ and a
+ jr z, .empty ; 0xf47a $1b
+ dec a
+ push hl
+ push de
+ push bc
+ ld hl, Moves
+ ld bc, $0006
+ call AddNTimes
+ ld de, $cd6d
+ ld a, BANK(Moves)
+ call FarCopyData
+ pop bc
+ pop de
+ pop hl
+ ld a, [$cd72] ; sixth move byte = pp
+.empty
+ inc de
+ ld [de], a
+ dec b
+ jr nz, .pploop ; there are still moves to read
+ ret
+; 0xf49d
+
+INCBIN "baserom.gbc",$f49d,$f6a5 - $f49d
HealParty:
ld hl, W_PARTYMON1
@@ -40528,15 +40559,52 @@ UnnamedText_3c63e: ; 0x3c63e
db $50
; 0x3c63e + 5 bytes
-INCBIN "baserom.gbc",$3c643,$3c6e4 - $3c643
+INCBIN "baserom.gbc",$3c643,$3c696 - $3c643
+
+TrainerBattleVictory: ; 3c696 F:4696
+ call $4643
+ ld b, $fc
+ ld a, [W_GYMLEADERNO]
+ and a
+ jr nz, .notgymleader ; 0x3c69f $2
+ ld b, $f6 ; gym leader win music
+.notgymleader ; 3c6a3
+ ld a, [W_TRAINERCLASS]
+ cp SONY3 ; final battle against rival
+ jr nz, .notrival ; 0x3c6a8 $7
+ ld b, $fc ; final rival battle win music
+ ld hl, $d733
+ set 1, [hl]
+.notrival
+ ld a, [W_ISLINKBATTLE]
+ cp $4
+ ld a, b
+ call nz, $46ee
+ ld hl, TrainerDefeatedText
+ call PrintText
+ ld a, [W_ISLINKBATTLE]
+ cp $4
+ ret z
+ call $6d12
+ ld c, $28
+ call DelayFrames
+ call $3381
+ ld hl, MoneyForWinningText
+ call PrintText
+ ld de, W_PLAYERMONEY1
+ ld hl, $d07b
+ ld c, $3
+ ld a, $b
+ jp Predef
+; 0x3c6e4
-UnnamedText_3c6e4: ; 0x3c6e4
- TX_FAR _UnnamedText_3c6e4
+MoneyForWinningText: ; 0x3c6e4
+ TX_FAR MoneyForWinningText_
db $50
; 0x3c6e4 + 5 bytes
-UnnamedText_3c6e9: ; 0x3c6e9
- TX_FAR _UnnamedText_3c6e9
+TrainerDefeatedText: ; 0x3c6e9
+ TX_FAR TrainerDefeatedText_
db $50
; 0x3c6e9 + 5 bytes
@@ -40775,12 +40843,274 @@ UnnamedText_3cba1: ; 0x3cba1
db $50
; 0x3cba1 + 5 bytes
-INCBIN "baserom.gbc",$3cba6,$3d0c5 - $3cba6
+INCBIN "baserom.gbc",$3cba6,$3ceb3 - $3cba6
+
+InitBattleMenu: ; 0x3ceb3 F:4EB3
+ call $3725 ; restore saved screen
+ ld a, [W_BATTLETYPE]
+ and a
+ jr nz, .nonstandardbattle ; 0x3ceba $9
+ call $4d5a ; redraw names and HP bars?
+ call $6e94
+ call $3719 ; save screen
+.nonstandardbattle
+ ld a, [W_BATTLETYPE]
+ cp $2 ; safari
+ ld a, $b ; safari menu id
+ jr nz, .menuselected ; 0x3cecc $2
+ ld a, $1b ; regular menu id
+.menuselected
+ ld [$d125], a
+ call DisplayTextBoxID
+ ld a, [$d05a]
+ dec a
+ jp nz, RegularBattleMenu ; regular battle
+ ; the following happens for the old man tutorial
+ ld hl, W_PLAYERNAME
+ ld de, W_GRASSRATE
+ ld bc, $000b
+ call CopyData ; temporary save the player name in unused space,
+ ; which is supposed to get overwritten when entering a map
+ ; with wild pokémon. due to an oversight, the data may not
+ ; get overwritten (cinnabar) and the infamous missingno.
+ ; glitch can show up.
+ ld hl, OldManName
+ ld de, W_PLAYERNAME
+ ld bc, $000b
+ call CopyData
+ ; the following probably sets the keystrokes
+ ld hl, $c4c1
+ ld [hl], $ed
+ ld c, $50
+ call DelayFrames
+ ld [hl], $7f
+ ld hl, $c4e9
+ ld [hl], $ed
+ ld c, $32
+ call DelayFrames
+ ld [hl], $ec
+ ld a, $2
+ jp $4fe8
+
+OldManName: ; 0x3cf12
+ db "OLD MAN@"
-UnnamedText_3d0c5: ; 0x3d0c5
- TX_FAR _UnnamedText_3d0c5
+RegularBattleMenu: ; 0x3cf1a
+ ld a, [$cc2d]
+ ld [W_CURMENUITEMID], a
+ ld [W_OLDMENUITEMID], a
+ sub $2
+ jr c, .leftcolumn ; 0x3cf25 $8
+ ld [W_CURMENUITEMID], a
+ ld [W_OLDMENUITEMID], a
+ jr .rightcolumn ; 0x3cf2d $3f
+.leftcolumn
+ ld a, [W_BATTLETYPE]
+ cp $2
+ ld a, $7f
+ jr z, .safaribattle ; 0x3cf36 $a
+ ld [$c4c7], a
+ ld [$c4ef], a
+ ld b, $9
+ jr .notsafari ; 0x3cf40 $14
+.safaribattle ; 3cf42
+ ld [$c4c5], a
+ ld [$c4ed], a
+ FuncCoord 7,14
+ ld hl, Coord
+ ld de, W_NUMSAFARIBALLS
+ ld bc, $0102
+ call PrintNumber
+ ld b, $1
+.notsafari ; 3cf56
+ ld hl, W_TOPMENUITEMY
+ ld a, $e
+ ld [hli], a
+ ld a, b
+ ld [hli], a
+ inc hl
+ inc hl
+ ld a, $1
+ ld [hli], a
+ ld [hl], $11
+ call HandleMenuInput
+ bit 4, a
+ jr nz, .rightcolumn ; 0x3cf6a $2
+ jr .selection ; 0x3cf6c $46
+.rightcolumn ;3cf6e
+ ld a, [W_BATTLETYPE]
+ cp $2
+ ld a, $7f
+ jr z, .safarirightcolumn ; 0x3cf75 $a
+ ld [$c4c1], a
+ ld [$c4e9], a
+ ld b, $f
+ jr .notsafarirightcolumn ; 0x3cf7f $14
+.safarirightcolumn ; 3cf81
+ ld [$c4b9], a
+ ld [$c4e1], a
+ FuncCoord 7,14
+ ld hl, Coord
+ ld de, W_NUMSAFARIBALLS
+ ld bc, $0102
+ call PrintNumber ; redraw
+ ld b, $d
+.notsafarirightcolumn
+ ld hl, W_TOPMENUITEMY
+ ld a, $e
+ ld [hli], a
+ ld a, b
+ ld [hli], a
+ inc hl
+ inc hl
+ ld a, $1
+ ld [hli], a
+ ld a, $21
+ ld [hli], a
+ call HandleMenuInput
+ bit 5, a
+ jr nz, .leftcolumn ; 0x3cfaa $83
+ ld a, [W_CURMENUITEMID]
+ add $2 ; if we're in the right column, the actual id is +2
+ ld [W_CURMENUITEMID], a
+.selection ; 3cfb4
+ call PlaceUnfilledArrowMenuCursor
+ ld a, [W_BATTLETYPE]
+ cp $2
+ ld a, [W_CURMENUITEMID]
+ ld [$cc2d], a
+ jr z, .asm_3cfd0 ; 0x3cfc2 $c
+ cp $1
+ jr nz, .asm_3cfcb ; 0x3cfc6 $3
+ inc a
+ jr .asm_3cfd0 ; 0x3cfc9 $5
+.asm_3cfcb
+ cp $2 ; what
+ jr nz, .asm_3cfd0 ; 0x3cfcd $1
+ dec a
+.asm_3cfd0
+ and a
+ jr nz, .asm_3cfe8 ; 0x3cfd1 $15
+ ; first option was selected...
+ ld a, [W_BATTLETYPE]
+ cp $2
+ jr z, .safari1
+ xor a
+ ld [$d120], a
+ jp $3725 ; restore saved screen and return???
+.safari1 ; safari first option??
+ ld a, $8
+ ld [$cf91], a
+ jr .asm_3d05f ; 0x3cfe6 $77
+.asm_3cfe8
+ cp $2
+ jp nz, $50ca
+ ld a, [W_ISLINKBATTLE]
+ cp $4
+ jr nz, .asm_3cffd ; 0x3cff2 $9
+ ld hl, ItemsCantBeUsedHere
+ call PrintText
+ jp $4eb3
+.asm_3cffd ; bag?
+ call $36f4 ; copy bg?
+ ld a, [W_BATTLETYPE]
+ cp $2
+ jr nz, .asm_3d00e ; 0x3d005 $7
+ ld a, $15
+ ld [$cf91], a
+ jr .asm_3d05f ; 0x3d00c $51
+.asm_3d00e
+ call $3725
+ ld a, [W_BATTLETYPE]
+ and a
+ jr nz, .asm_3d01a ; 0x3d015 $3
+ call $4d5a
+.asm_3d01a
+ ld a, [W_BATTLETYPE]
+ dec a
+ jr nz, .asm_3d031 ; 0x3d01e $11
+ ld hl, .list
+ ld a, l
+ ld [$cf8b], a
+ ld a, h
+ ld [$cf8c], a
+ jr .asm_3d03c ; 0x3d02b $f
+.list
+ db $01, $04, $32, $ff
+.asm_3d031
+ ld hl, W_NUMBAGITEMS
+ ld a, l
+ ld [$cf8b], a
+ ld a, h
+ ld [$cf8c], a
+.asm_3d03c
+ xor a
+ ld [$cf93], a
+ ld a, $3
+ ld [$cf94], a
+ ld a, [$cc2c]
+ ld [W_CURMENUITEMID], a
+ call DisplayListMenuID
+ ld a, [$cc26]
+ ld [$cc2c], a
+ ld a, $0
+ ld [$cc37], a
+ ld [$cc35], a
+ jp c, $4eb3
+.asm_3d05f
+ ld a, [$cf91]
+ ld [$d11e], a
+ call GetItemName
+ call $3826 ; copy name
+ xor a
+ ld [$d152], a
+ call UseItem
+ call $6e5b
+ call CleanLCD_OAM
+ xor a
+ ld [W_CURMENUITEMID], a
+ ld a, [W_BATTLETYPE]
+ cp $2 ; safari
+ jr z, .asm_3d09c ; 0x3d081 $19
+ ld a, [$cd6a]
+ and a
+ jp z, $500e
+ ld a, [W_PLAYERBATTSTATUS1]
+ bit 5, a
+ jr z, .asm_3d09c ; 0x3d08f $b
+ ld hl, $d06a
+ dec [hl]
+ jr nz, .asm_3d09c ; 0x3d095 $5
+ ld hl, W_PLAYERBATTSTATUS1
+ res 5, [hl]
+.asm_3d09c
+ ld a, [$d11c]
+ and a
+ jr nz, .asm_3d0b7 ; 0x3d0a0 $15
+ ld a, [W_BATTLETYPE]
+ cp $2
+ jr z, .asm_3d0b2 ; 0x3d0a7 $9
+ call $3725
+ call $4d5a ; redraw name and hp bar?
+ call Delay3
+.asm_3d0b2
+ call GBPalNormal
+ and a
+ ret
+.asm_3d0b7
+ call GBPalNormal
+ xor a
+ ld [$d11c], a
+ ld a, $2
+ ld [$cf0b], a
+ scf
+ ret
+; 0x3d0c5
+
+ItemsCantBeUsedHere: ; 0x3d0c5
+ TX_FAR ItemsCantBeUsedHere_ ; 0x89831
db $50
-; 0x3d0c5 + 5 bytes
+; 0x3d0c5 + 5 bytes = 0x3d0ca
INCBIN "baserom.gbc",$3d0ca,$3d1f5 - $3d0ca
@@ -40789,19 +41119,240 @@ UnnamedText_3d1f5: ; 0x3d1f5
db $50
; 0x3d1f5 + 5 bytes
-INCBIN "baserom.gbc",$3d1fa,$3d3ae - $3d1fa
+INCBIN "baserom.gbc",$3d1fa,$3D219 - $3d1fa
+
+MoveSelectionMenu: ; 3D219 F:5219
+ ld a, [W_MOVEMENUTYPE] ; menu type
+ dec a
+ jr z, .mimicmenu ; 0x3d21d $56
+ dec a
+ jr z, .relearnmenu ; 0x3d220 $6f
+ jr .regularmenu ; 0x3d222 $25
+.loadmoves ; 3d222 , called
+ ld de, $d0dc
+ ld bc, $0004
+ call CopyData
+ ld hl, $5b87
+ ld b, $e
+ call Bankswitch
+ ret
+.writemoves ; 5236 , called
+ ld de, $d0e1
+ ld a, [$ff00+$f6]
+ set 2, a
+ ld [$ff00+$f6], a
+ call PlaceString
+ ld a, [$ff00+$f6]
+ res 2, a
+ ld [$ff00+$f6], a
+ ret
+.regularmenu ; 3D249
+ call $53f5
+ ret z
+ ld hl, $d01c ; W_PLAYERMON?
+ call .loadmoves
+ FuncCoord 4, 12 ; $c494
+ ld hl, Coord
+ ld b, $4
+ ld c, $e
+ di
+ call TextBoxBorder
+ FuncCoord 4, 12 ; $c494
+ ld hl, Coord
+ ld [hl], $7a
+ FuncCoord 10, 12 ; $c49a
+ ld hl, Coord
+ ld [hl], $7e
+ ei
+ FuncCoord 6, 13 ; $c4aa
+ ld hl, Coord
+ call .writemoves
+ ld b, $5
+ ld a, $c
+ jr .menuset ; 0x3d273 $3f
+.mimicmenu
+ ld hl, $cfed
+ call .loadmoves
+ FuncCoord 0, 7 ; $c42c
+ ld hl, Coord
+ ld b, $4
+ ld c, $e
+ call TextBoxBorder
+ ld hl, $c442
+ call .writemoves
+ ld b, $1
+ ld a, $7
+ jr .menuset ; 0x3d28f $23
+.relearnmenu
+ ld a, [W_WHICHPOKEMON]
+ ld hl, $d173
+ ld bc, $002c
+ call AddNTimes
+ call .loadmoves
+ FuncCoord 4, 7 ; $c430
+ ld hl, Coord
+ ld b, $4
+ ld c, $e
+ call TextBoxBorder
+ FuncCoord 6, 8 ; $c446
+ ld hl, Coord
+ call .writemoves
+ ld b, $5
+ ld a, $7
+.menuset
+ ld hl, W_TOPMENUITEMY
+ ld [hli], a
+ ld a, b
+ ld [hli], a ; W_TOPMENUITEMX
+ ld a, [W_MOVEMENUTYPE]
+ cp $1
+ jr z, .selectedmoveknown ; 0x3d2bf $8
+ ld a, $1
+ jr nc, .selectedmoveknown ; 0x3d2c3 $4
+ ld a, [W_PLAYERMOVELISTINDEX]
+ inc a
+.selectedmoveknown
+ ld [hli], a ; W_CURMENUITEMID
+ inc hl ; W_TILEBEHINDCURSOR untouched
+ ld a, [$cd6c]
+ inc a
+ inc a
+ ld [hli], a ; W_MAXMENUITEMID
+ ld a, [W_MOVEMENUTYPE]
+ dec a
+ ld b, $c1 ; can't use B
+ jr z, .matchedkeyspicked ; 0x3d2d7 $17
+ dec a
+ ld b, $c3
+ jr z, .matchedkeyspicked ; 0x3d2dc $12
+ ld a, [W_ISLINKBATTLE]
+ cp $4
+ jr z, .matchedkeyspicked ; 0x3d2e3 $b
+ ld a, [$d733]
+ bit 0, a
+ ld b, $c7
+ jr z, .matchedkeyspicked ; 0x3d2ec $2
+ ld b, $ff
+.matchedkeyspicked
+ ld a, b
+ ld [hli], a ; W_MENUWATCHEDKEYS
+ ld a, [W_MOVEMENUTYPE]
+ cp $1
+ jr z, .movelistindex1 ; 0x3d2f7 $4
+ ld a, [W_PLAYERMOVELISTINDEX]
+ inc a
+.movelistindex1
+ ld [hl], a ; W_OLDMENUITEMID
+ ld a, [W_MOVEMENUTYPE]
+ and a
+ jr z, .battleselect ; 0x3d302 $e
+ dec a
+ jr nz, .select ; 0x3d305 $27
+ FuncCoord 1, 14 ; $c4b9
+ ld hl, Coord
+ ld de, WhichTechniqueString
+ call PlaceString
+ jr .select ; 0x3d310 $1c
+.battleselect
+ ld a, [$d733]
+ bit 0, a
+ jr nz, .select ; 0x3d317 $15
+ call $54b6
+ ld a, [$cc35]
+ and a
+ jr z, .select ; 0x3d320 $c
+ ld hl, $c4a9
+ dec a
+ ld bc, $0014
+ call AddNTimes
+ ld [hl], $ec
+.select ; 3d32e
+ ld hl, $fff6
+ set 1, [hl]
+ call HandleMenuInput
+ ld hl, $fff6
+ res 1, [hl]
+ bit 6, a
+ jp nz, $53c9 ; up
+ bit 7, a
+ jp nz, $53dd ; down
+ bit 2, a
+ jp nz, $5435 ; select
+ bit 1, a ; B, but it was reset above?
+ push af
+ xor a
+ ld [$cc35], a
+ ld a, [W_CURMENUITEMID]
+ dec a
+ ld [W_CURMENUITEMID], a
+ ld b, a
+ ld a, [W_MOVEMENUTYPE]
+ dec a ; if not mimic
+ jr nz, .nob ; 0x3d35d $2
+ pop af
+ ret
+.nob; 3d361
+ dec a
+ ld a, b
+ ld [W_PLAYERMOVELISTINDEX], a
+ jr nz, .moveselected ; 0x3d366 $2
+ pop af
+ ret
+.moveselected ; 3d36a
+ pop af
+ ret nz
+ ld hl, W_PLAYERMONPP
+ ld a, [W_CURMENUITEMID]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ and $3f
+ jr z, .nopp ; 0x3d379 $27
+ ld a, [W_PLAYERDISABLEDMOVE]
+ swap a
+ and $f
+ dec a
+ cp c
+ jr z, .disabled ; 0x3d384 $17
+ ld a, [W_PLAYERBATTSTATUS3]
+ bit 3, a ; transformed
+ jr nz, .dummy ; game freak derp
+.dummy ; 3d38d
+ ld a, [W_CURMENUITEMID]
+ ld hl, $d01c
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ ld [W_PLAYERSELECTEDMOVE], a
+ xor a
+ ret
+.disabled ;
+ ld hl, MoveDisabledText
+ jr .print ; 0x3d3a0 $3
+.nopp ;
+ ld hl, MoveNoPPText
+.print ; 3d3a5
+ call PrintText
+ call $3725
+ jp MoveSelectionMenu
-UnnamedText_3d3ae: ; 0x3d3ae
- TX_FAR _UnnamedText_3d3ae
+MoveNoPPText: ; 0x3d3ae
+ TX_FAR MoveNoPPText_
db $50
; 0x3d3ae + 5 bytes
-UnnamedText_3d3b3: ; 0x3d3b3
- TX_FAR _UnnamedText_3d3b3
+MoveDisabledText: ; 0x3d3b3
+ TX_FAR MoveDisabledText_
db $50
; 0x3d3b3 + 5 bytes
-INCBIN "baserom.gbc",$3d3b8,$3d430 - $3d3b8
+WhichTechniqueString: ; 3d3b8
+ db "WHICH TECHNIQUE?@"
+; 3d3c9
+
+INCBIN "baserom.gbc",$3d3c9,$3d430 - $3d3c9
UnnamedText_3d430: ; 0x3d430
TX_FAR _UnnamedText_3d430
@@ -42576,7 +43127,40 @@ UnnamedText_3e887: ; 0x3e887
db $50
; 0x3e887 + 5 bytes
-INCBIN "baserom.gbc",$3e88c,$67b
+INCBIN "baserom.gbc",$3e88c,$3eabe-$3e88c
+
+GetCurrentMove: ; $3eabe (f:6abe)
+ ld a, [H_WHOSETURN]
+ and a
+ jp z, .player
+ ld de, W_ENEMYMOVENUM
+ ld a, [W_ENEMYSELECTEDMOVE]
+ jr .selected ; 0x3eaca $10
+.player
+ ld de, W_PLAYERMOVENUM
+ ld a, [$d733]
+ bit 0, a
+ ld a, [$ccd9]
+ jr nz, .selected ; 0x3ead7 $3
+ ld a, [W_PLAYERSELECTEDMOVE]
+.selected
+ ld [$d0b5], a
+ dec a
+ ld hl, Moves
+ ld bc, $0006
+ call AddNTimes
+ ld a, BANK(Moves)
+ call FarCopyData
+ ld a, $2c
+ ld [$d0b7], a
+ ld a, $2
+ ld [$d0b6], a ; list type 2 = move name
+ call GetName
+ ld de, $cd6d
+ jp $3826 ; copy name
+; 0x3eb01
+
+INCBIN "baserom.gbc",$3eb01,$3ef07-$3eb01
PlayMoveAnimation: ; 6F07
ld [$D07C],a
@@ -53132,7 +53716,8 @@ Predef54Predef:
dbw $03,$4D99
dbw $01,$4DE1
dbw $09,$7D98
- dbw $03,$7473
+LoadMovePPsPredef:
+ dbw BANK(LoadMovePPs),LoadMovePPs ; 5E
DrawHPBarPredef:
dbw $04,$68EF ; 5F draw HP bar
dbw $04,$68F6
@@ -80646,7 +81231,7 @@ _UnnamedText_3c63e: ; 0x896c7
db "fainted!", $58
; 0x896c7 + 22 bytes = 0x896dd
-_UnnamedText_3c6e4: ; 0x896dd
+MoneyForWinningText_: ; 0x896dd
db $0, $52, " got ¥@"
;XXX $2
db $2, $79, $d0, $c3
@@ -80654,7 +81239,7 @@ _UnnamedText_3c6e4: ; 0x896dd
db "for winning!", $58
; 0x896f9
-_UnnamedText_3c6e9: ; 0x896f9
+TrainerDefeatedText_: ; 0x896f9
db $0, $52, " defeated", $4f
db "@"
TX_RAM $d04a ; 0x89706
@@ -80727,7 +81312,7 @@ _UnnamedText_3cba1: ; 0x8981f
db $0, "Got away safely!", $58
; 0x8981f + 18 bytes
-_UnnamedText_3d0c5: ; 0x89831
+ItemsCantBeUsedHere_: ; 0x89831
db $0, "Items can't be", $4f
db "used here.", $58
; 0x89831 + 26 bytes
@@ -80738,12 +81323,12 @@ _UnnamedText_3d1f5: ; 0x8984b
db "already out!", $58
; 0x8984b + 21 bytes
-_UnnamedText_3d3ae: ; 0x89860
+MoveNoPPText_: ; 0x89860
db $0, "No PP left for", $4f
db "this move!", $58
; 0x89860 + 27 bytes
-_UnnamedText_3d3b3: ; 0x8987b
+MoveDisabledText_: ; 0x8987b
db $0, "The move is", $4f
db "disabled!", $58
; 0x8987b + 23 bytes