summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorxCrystal <rgr.crystal@gmail.com>2018-02-23 21:19:31 +0100
committerxCrystal <rgr.crystal@gmail.com>2018-02-23 21:19:31 +0100
commit107d5b24c157f5d061a1374d930106878dc3cb4c (patch)
tree2bd15610381fba88f0181b5f32c73a533f202b2e /src
parent4ab687caf426041e6e5b79093eff9f1b805bf4d5 (diff)
More labeling and disasm
Diffstat (limited to 'src')
-rw-r--r--src/engine/bank1.asm47
-rw-r--r--src/engine/bank2.asm20
-rw-r--r--src/engine/bank20.asm8
-rw-r--r--src/engine/bank3.asm20
-rw-r--r--src/engine/bank4.asm46
-rw-r--r--src/engine/bank5.asm32
-rw-r--r--src/engine/bank6.asm10
-rw-r--r--src/engine/bank7.asm10
-rw-r--r--src/engine/bank8.asm4
-rw-r--r--src/engine/home.asm291
-rw-r--r--src/macros/code.asm9
-rw-r--r--src/wram.asm32
12 files changed, 323 insertions, 206 deletions
diff --git a/src/engine/bank1.asm b/src/engine/bank1.asm
index 79a242d..181597b 100644
--- a/src/engine/bank1.asm
+++ b/src/engine/bank1.asm
@@ -59,7 +59,10 @@ Func_406f: ; 406f (1:406f)
call Func_420b
call $66e9
ldtx hl, BackUpIsBrokenText
- jr c, .asm_4097
+ jr c, Func_4097
+; fallthrough
+
+Func_407a: ; 407a (1:407a)
ld hl, sp+$00
ld a, l
ld [wcbe5], a
@@ -72,7 +75,9 @@ Func_406f: ; 406f (1:406f)
ld [wDuelFinished], a
call DuelMainScene
jp StartDuel.asm_40fb
-.asm_4097
+; 0x4097
+
+Func_4097: ; 4097 (1:4097)
call DrawWideTextBox_WaitForInput
call ResetSerial
scf
@@ -473,7 +478,7 @@ Func_4376: ; 4376 (1:4376)
cp -1
ret z
call GetCardIDFromDeckIndex
- call LoadCardDataToBuffer1
+ call LoadCardDataToBuffer1_FromCardID
ld hl, wcbc9
xor a
ld [hli], a
@@ -661,7 +666,7 @@ DuelMenu_Attack: ; 46fc (1:46fc)
ld h, a
ld l, DUELVARS_ARENA_CARD
ld a, [hl]
- call LoadDeckCardToBuffer1
+ call LoadCardDataToBuffer1_FromDeckIndex
.wait_for_input
call DoFrame
@@ -781,7 +786,7 @@ Func_47fd: ; $47fd (1:47fd)
jr Func_481b
Func_4802: ; $4802 (1:4802)
- ld hl, $cc38
+ ld hl, wLoadedCard1Move1Description + 2
ld a, [hli]
or [hl]
ret z
@@ -793,14 +798,14 @@ Func_480d: ; $480d (1:480d)
jr Func_481b
Func_4812: ; $4812 (1:4812)
- ld hl, $cc4b
+ ld hl, wLoadedCard1Move2Description + 2
ld a, [hli]
or [hl]
ret z
call $5d37
Func_481b: ; $481b (1:481b)
- ld hl, $cc04
+ ld hl, wcc04
ld a, $01
xor [hl]
ld [hl], a
@@ -814,7 +819,7 @@ LoadPokemonMovesToDuelCardOrAttackList: ; 4823 (1:4823)
ld a, DUELVARS_ARENA_CARD
call GetTurnDuelistVariable
ldh [hTempCardIndex_ff98], a
- call LoadDeckCardToBuffer1
+ call LoadCardDataToBuffer1_FromDeckIndex
ld c, $00
ld b, $0d
ld hl, wDuelCardOrAttackList
@@ -920,7 +925,7 @@ CheckIfEnoughEnergies: ; 488f (1:488f)
_CheckIfEnoughEnergies: ; 48ac (1:48ac)
push de
ld a, d
- call LoadDeckCardToBuffer1
+ call LoadCardDataToBuffer1_FromDeckIndex
pop bc
push bc
ld de, wLoadedCard1Move1Energy
@@ -1097,8 +1102,8 @@ Func_4b60: ; 4b60 (1:4b60)
call Func_0f58
ld a, [wcc08]
ld l, a
- ld h, $0
- call Func_2ec4
+ ld h, 0
+ call LoadTxRam3
ldtx hl, PleasePlacePrizesText
call DrawWideTextBox_PrintText
call EnableLCD
@@ -1118,10 +1123,10 @@ Func_4b60: ; 4b60 (1:4b60)
ldh a, [hWhoseTurn]
cp PLAYER_TURN
jr nz, .asm_4c52
- ld de, wc590
- call PrintPlayerName
+ ld de, wDefaultText
+ call LoadPlayerName
ld hl, $0000
- call Func_2ebb
+ call LoadTxRam2
ldtx hl, YouPlayFirstText
ldtx de, IfHeadPlayerPlaysFirstText
call TossCoin
@@ -1136,10 +1141,10 @@ Func_4b60: ; 4b60 (1:4b60)
ret
.asm_4c52
- ld de, wc590
- call PrintOpponentName
+ ld de, wDefaultText
+ call LoadOpponentName
ld hl, $0000
- call Func_2ebb
+ call LoadTxRam2
ldtx hl, YouPlaySecondText
ldtx de, IfHeadPlayerPlaysFirstText
call TossCoin
@@ -1209,7 +1214,7 @@ Func_4cd5: ; 4cd5 (1:4cd5)
call $5502
jr c, .asm_4d28
ldh a, [hTempCardIndex_ff98]
- call LoadDeckCardToBuffer1
+ call LoadCardDataToBuffer1_FromDeckIndex
ld a, $2
call $51e7
jr c, .asm_4d28
@@ -1375,7 +1380,7 @@ AIUseEnergyCard: ; 69a5 (1:69a5)
ldh [hTempCardIndex_ff98], a
call PutHandCardInPlayArea
ldh a, [hffa0]
- call LoadDeckCardToBuffer1
+ call LoadCardDataToBuffer1_FromDeckIndex
call $5e75
call $68e4
ld a, $1
@@ -1693,7 +1698,7 @@ Func_7571: ; 7571 (1:7571)
INCROM $7571, $7576
Func_7576: ; 7576 (1:7576)
- farcallx $6, $591f
+ farcall $6, $591f
ret
; 0x757b
@@ -1703,7 +1708,7 @@ Func_758f: ; 758f (1:758f)
INCROM $758f, $7594
Func_7594: ; 7594 (1:7594)
- farcallx $6, $661f
+ farcall $6, $661f
ret
; 0x7599
diff --git a/src/engine/bank2.asm b/src/engine/bank2.asm
index 479eb77..36c76f5 100644
--- a/src/engine/bank2.asm
+++ b/src/engine/bank2.asm
@@ -267,7 +267,7 @@ Func_8f38: ; 8f38 (2:4f38)
ld h, [hl]
call DisableSRAM
ld l, a
- ld de, wc590
+ ld de, wDefaultText
call Func_0663
ld hl, $cfb9
ld [hl], $6
@@ -346,8 +346,8 @@ Func_8f9d: ; 8f9d (2:4f9d)
call Func_9253
call DisableSRAM
xor a
- ld [wce3f], a
- ld [wce40], a
+ ld [wTxRam2], a
+ ld [wTxRam2 + 1], a
ldtx hl, ChosenAsDuelingDeckText
call DrawWideTextBox_WaitForInput
ld a, [wceb1]
@@ -665,12 +665,12 @@ Unknown_9242: ; 9242 (2:5242)
INCROM $9242, $9253
Func_9253: ; 9253 (2:5253)
- ld de, wc590
+ ld de, wDefaultText
call Func_92ad
- ld hl, wc590
+ ld hl, wDefaultText
call Func_23c1
ld b, $0
- ld hl, wc590
+ ld hl, wDefaultText
add hl, bc
ld d, h
ld e, l
@@ -684,19 +684,19 @@ Func_926e: ; 926e (2:526e)
pop hl
jr c, .asm_929c
push de
- ld de, wc590
+ ld de, wDefaultText
call Func_92b4
- ld hl, wc590
+ ld hl, wDefaultText
call Func_23c1
ld b, $0
- ld hl, wc590
+ ld hl, wDefaultText
add hl, bc
ld d, h
ld e, l
ld hl, Unknown_92a7
call Func_92ad
pop de
- ld hl, wc590
+ ld hl, wDefaultText
call Func_22ae
call Func_21c5
or a
diff --git a/src/engine/bank20.asm b/src/engine/bank20.asm
index e0ed703..c21deca 100644
--- a/src/engine/bank20.asm
+++ b/src/engine/bank20.asm
@@ -5,9 +5,9 @@ Func_80028: ; 80028 (20:4028)
call Func_801f1
ld bc, $0000
call Func_80077
- farcallx $3, $49c7
+ farcall $3, $49c7
call $41a1
- farcallx $3, $43ee
+ farcall $3, $43ee
ret
; 0x8003d
@@ -296,7 +296,7 @@ Func_80ba4: ; 80ba4 (20:4ba4)
ld a, [hl]
ld [wd131], a
push bc
- farcallx $20, $4082
+ farcall $20, $4082
pop bc
srl b
ld a, c
@@ -308,7 +308,7 @@ Func_80ba4: ; 80ba4 (20:4ba4)
ld b, $0
ld hl, wBoosterViableCardList
add hl, bc
- farcallx $3, $438f
+ farcall $3, $438f
pop af
ld [$d23b], a
pop af
diff --git a/src/engine/bank3.asm b/src/engine/bank3.asm
index df4a1d5..5400212 100644
--- a/src/engine/bank3.asm
+++ b/src/engine/bank3.asm
@@ -1524,15 +1524,15 @@ Func_cad8: ; cad8 (3:4ad8)
.asm_caff
ld a, $c
- farcallx $4, $4a70
+ farcall $4, $4a70
.asm_cb05
ld a, $b
- farcallx $4, $4a70
+ farcall $4, $4a70
.asm_cb0b
ld a, $a
- farcallx $4, $4a70
+ farcall $4, $4a70
.asm_cb11
pop af
@@ -2212,7 +2212,7 @@ Func_cfd4: ; cfd4 (3:4fd4)
Func_d00b: ; d00b (3:500b)
sla c
ld b, $0
- ld hl, wce3f
+ ld hl, wTxRam2
add hl, bc
push hl
call Func_ca69
@@ -2387,7 +2387,7 @@ Func_d125: ; d125 (3:5125)
Func_d135: ; d135 (3:5135)
sla c
ld b, $0
- ld hl, wce3f
+ ld hl, wTxRam2
add hl, bc
push hl
ld a, [wd32e]
@@ -2415,7 +2415,7 @@ Func_d16b: ; d16b (3:516b)
push de
sla c
ld b, $0
- ld hl, wce3f
+ ld hl, wTxRam2
add hl, bc
push hl
ld a, [$d696]
@@ -2472,9 +2472,9 @@ asm_d1c6
ld a, [hli]
ld [$d697], a
ld a, [hli]
- ld [wce3f], a
+ ld [wTxRam2], a
ld a, [hl]
- ld [wce40], a
+ ld [wTxRam2 + 1], a
jp IncreaseOWScriptPointerBy1
INCROM $d1dc, $d209
@@ -2607,9 +2607,9 @@ Func_d28c: ; d28c (3:528c)
jr z, .asm_d2f5
add hl, bc
ld a, [hli]
- ld [wce3f], a
+ ld [wTxRam2], a
ld a, [hl]
- ld [wce40], a
+ ld [wTxRam2 + 1], a
.asm_d2f5
ret
diff --git a/src/engine/bank4.asm b/src/engine/bank4.asm
index dca50a9..f6452c5 100644
--- a/src/engine/bank4.asm
+++ b/src/engine/bank4.asm
@@ -71,9 +71,9 @@ Medal_1029e: ; 1029e (4:429e)
ld hl, Unknown_1030b
add hl, bc
ld a, [hli]
- ld [wce3f], a
+ ld [wTxRam2], a
ld a, [hl]
- ld [wce40], a
+ ld [wTxRam2 + 1], a
call $4031
ld a, MUSIC_MEDAL
call PlaySong
@@ -128,13 +128,13 @@ BoosterPack_1031b: ; 1031b (4:431b)
call $70ca
pop hl
ld a, [hli]
- ld [wce43], a
+ ld [wTxRam3], a
xor a
- ld [wce44], a
+ ld [wTxRam3 + 1], a
ld a, [hli]
- ld [wce3f], a
+ ld [wTxRam2], a
ld a, [hl]
- ld [wce40], a
+ ld [wTxRam2 + 1], a
call $4031
call PauseSong
ld a, MUSIC_BOOSTER_PACK
@@ -160,7 +160,7 @@ BoosterPack_1031b: ; 1031b (4:431b)
ld [wVBlankOAMCopyToggle], a
ld a, $4
ld [wFrameType], a
- farcallx $1, $7599
+ farcall $1, $7599
farcall Func_c1a4
call DoFrameIfLCDEnabled
pop af
@@ -191,22 +191,22 @@ Duel_Init: ; 103d3 (4:43d3)
ld hl, $445b
add hl, bc
ld a, [hli]
- ld [wce3f], a
+ ld [wTxRam2], a
ld a, [hli]
- ld [wce40], a
+ ld [wTxRam2 + 1], a
push hl
ld a, [wOpponentName]
- ld [wce41], a
+ ld [wTxRam2_b], a
ld a, [wOpponentName + 1]
- ld [wce42], a
+ ld [wTxRam2_b + 1], a
ld hl, $4451
call $51b3 ; LoadDuelistName
pop hl
ld a, [hli]
- ld [wce3f], a
+ ld [wTxRam2], a
ld c, a
ld a, [hli]
- ld [wce40], a
+ ld [wTxRam2 + 1], a
or c
jr z, .asm_10425
ld hl, $4456
@@ -798,7 +798,10 @@ Func_1124d: ; 1124d (4:524d)
INCROM $1124d, $11320
Func_11320: ; 11320 (4:5320)
- INCROM $11320, $11416
+ INCROM $11320, $11343
+
+Func_11343: ; 11343 (4:5343)
+ INCROM $11343, $11416
Func_11416: ; 11416 (4:5416)
INCROM $11416, $11430
@@ -830,7 +833,7 @@ Func_1157c: ; 1157c (4:557c)
ret
; 0x115a3
-
+Func_115a3: ; 115a3 (4:55a3)
INCROM $115a3, $1162a
INCLUDE "data/map_scripts.asm"
@@ -960,6 +963,7 @@ Func_118d3: ; 118d3 (4:58d3)
INCLUDE "data/npcs.asm"
+Func_11f4e: ; 11f4e (4:5f4e)
INCROM $11f4e, $1217b
OverworldScriptTable: ; 1217b (4:617b)
@@ -1119,7 +1123,7 @@ Func_12704: ; 12704 (4:6704)
farcall Func_1d306
ld a, $0
ld [wd0b5], a
- farcallx $03, Func_383d
+ farcall $03, Func_383d
or a
ret
@@ -1136,7 +1140,7 @@ Func_12741: ; 12741 (4:6741)
call DisableSRAM
ld a, $0
ld [wd0b5], a
- farcallx $03, Func_383d
+ farcall $03, Func_383d
or a
ret
@@ -1155,11 +1159,11 @@ Func_1277e: ; 1277e (4:677e)
ld a, MUSIC_STOP
call PlaySong
farcall Func_c9cb
- farcallx $04, Func_3a40
+ farcall $04, Func_3a40
farcall Func_70000
ld a, $5
ld [wd0b5], a
- farcallx $03, Func_383d
+ farcall $03, Func_383d
or a
ret
; 0x1279a
@@ -1517,9 +1521,9 @@ Func_13485: ; 13485 (4:7485)
or a
ret z
ld a, [$ba56]
- ld [wce43], a
+ ld [wTxRam3], a
ld a, [$ba57]
- ld [wce44], a
+ ld [wTxRam3 + 1], a
call DisableSRAM
call PauseSong
ld a, MUSIC_MEDAL
diff --git a/src/engine/bank5.asm b/src/engine/bank5.asm
index 79a5dd2..a35081d 100644
--- a/src/engine/bank5.asm
+++ b/src/engine/bank5.asm
@@ -64,7 +64,7 @@ Func_14226: ; 14226 (5:4226)
ldh [hTempCardIndex_ff98], a
cp $ff
ret z
- call LoadDeckCardToBuffer1
+ call LoadCardDataToBuffer1_FromDeckIndex
ld a, [wLoadedCard1Type]
cp TYPE_ENERGY_FIRE
jr nc, .check_for_next_pokemon
@@ -121,13 +121,13 @@ Func_1468b: ; 1468b (5:468b)
call Func_15649
ld a, $1
call Func_14663
- farcallx $8, $67d3
+ farcall $8, $67d3
jp nc, $4776
- farcallx $8, $6790
- farcallx $8, $66a3
- farcallx $8, $637f
+ farcall $8, $6790
+ farcall $8, $66a3
+ farcall $8, $637f
ret c
- farcallx $8, $662d
+ farcall $8, $662d
ld a, $2
call Func_14663
ld a, $3
@@ -158,12 +158,12 @@ Func_1468b: ; 1468b (5:468b)
.asm_146ed
call $5eae
- farcallx $8, $66a3
- farcallx $8, $637f
+ farcall $8, $66a3
+ farcall $8, $637f
ret c
- farcallx $8, $6790
+ farcall $8, $6790
ld a, $d
- farcallx $8, $619b
+ farcall $8, $619b
ld a, $d
call Func_14663
ld a, $f
@@ -203,18 +203,18 @@ Func_1468b: ; 1468b (5:468b)
.asm_1475b
call $5eae
- farcallx $8, $66a3
- farcallx $8, $637f
+ farcall $8, $66a3
+ farcall $8, $637f
ret c
- farcallx $8, $6790
+ farcall $8, $6790
ld a, $d
- farcallx $8, $619b
+ farcall $8, $619b
ld a, $d
call Func_14663
.asm_14776
ld a, $e
- farcallx $8, $619b
+ farcall $8, $619b
call $69f8
ret c
ld a, $5
@@ -272,7 +272,7 @@ Func_15649: ; 15649 (5:5649)
ld a, e
cp MEWTWO1
jr nz, .asm_156a4
- farcallx $8, $67a9
+ farcall $8, $67a9
jr nc, .asm_156aa
.asm_156a4
diff --git a/src/engine/bank6.asm b/src/engine/bank6.asm
index fa1c529..f8e8e65 100644
--- a/src/engine/bank6.asm
+++ b/src/engine/bank6.asm
@@ -71,7 +71,7 @@ Func_199e0: ; 199e0 (6:59e0)
pop hl
call EnableSRAM
push hl
- ld de, wc590
+ ld de, wDefaultText
.asm_199f3
ld a, [de]
inc de
@@ -103,7 +103,7 @@ Func_19a12: ; 19a12 (6:5a12)
ld a, [hli]
ld h, [hl]
ld l, a
- ld de, wc590
+ ld de, wDefaultText
call PrintTextBoxBorderLabel
ret
; 0x19a1f
@@ -145,15 +145,15 @@ Func_1a61f: ; 1a61f (6:661f)
push hl
ld e, a
ld d, $0
- call LoadCardDataToBuffer1
+ call LoadCardDataToBuffer1_FromCardID
call PauseSong
ld a, MUSIC_MEDAL
call PlaySong
- ld hl, $cc27
+ ld hl, wLoadedCard1Name
ld a, [hli]
ld h, [hl]
ld l, a
- bank1call Func_2ebb ; switch to bank 1, but call a home func
+ bank1call LoadTxRam2 ; switch to bank 1, but call a home func
ld a, PLAYER_TURN
ldh [hWhoseTurn], a
pop hl
diff --git a/src/engine/bank7.asm b/src/engine/bank7.asm
index 1423278..3ca0d2d 100644
--- a/src/engine/bank7.asm
+++ b/src/engine/bank7.asm
@@ -148,7 +148,7 @@ Func_1c50a: ; 1c50a (7:450a)
xor a
ld [hli], a
ld a, [hl]
- farcallx $4, $69fd
+ farcall $4, $69fd
ld hl, $d349
dec [hl]
@@ -442,7 +442,7 @@ Func_1d11c: ; 1d11c (7:511c)
ld a, MUSIC_PC_MAIN_MENU
call PlaySong
call DisableLCD
- farcallx $4, $4000
+ farcall $4, $4000
ld de, $308f
call Func_2275
call Func_3ca0
@@ -462,7 +462,7 @@ Func_1d11c: ; 1d11c (7:511c)
.asm_1d14f
ld hl, $d636
farcall Func_111e9
- farcallx $4, $4031
+ farcall $4, $4031
.asm_1d15a
call DoFrameIfLCDEnabled
call UpdateRNGSources
@@ -536,7 +536,7 @@ Credits_1d6ad: ; 1d6ad (7:56ad)
ld [wd324], a
ld a, MUSIC_CREDITS
call PlaySong
- farcallx $4, $4031
+ farcall $4, $4031
call $57fc
.asm_1d6c8
call DoFrameIfLCDEnabled
@@ -547,7 +547,7 @@ Credits_1d6ad: ; 1d6ad (7:56ad)
jr nz, .asm_1d6c8
call Func_3c96
ld a, $8
- farcallx $4, $6863
+ farcall $4, $6863
ld a, MUSIC_STOP
call PlaySong
farcall Func_10ab4
diff --git a/src/engine/bank8.asm b/src/engine/bank8.asm
index 413061c..487814f 100644
--- a/src/engine/bank8.asm
+++ b/src/engine/bank8.asm
@@ -28,7 +28,7 @@ Func_200e5: ; 200e5 (8:40e5)
ld a, [hli]
ld [$ce17], a
ld a, [$ce16]
- call LoadDeckCardToBuffer1
+ call LoadCardDataToBuffer1_FromDeckIndex
cp $d2
jr nz, .asm_2012b
ld b, a
@@ -52,7 +52,7 @@ Func_200e5: ; 200e5 (8:40e5)
ld a, $1
call TryExecuteEffectCommandFunction
jp c, $41a8
- farcallx $5, $743b
+ farcall $5, $743b
jr c, .asm_201a8
pop de
pop hl
diff --git a/src/engine/home.asm b/src/engine/home.asm
index 2365c52..6c134eb 100644
--- a/src/engine/home.asm
+++ b/src/engine/home.asm
@@ -2455,8 +2455,8 @@ Func_0ed5: ; 0ed5 (0:0ed5)
DuelTransmissionError: ; 0f35 (0:0f35)
ld a, [wSerialFlags]
ld l, a
- ld h, $0
- call Func_2ec4
+ ld h, 0
+ call LoadTxRam3
ldtx hl, TransmissionErrorText
call DrawWideTextBox_WaitForInput
ld a, $ff
@@ -3054,7 +3054,7 @@ CreateArenaOrBenchEnergyCardList: ; 120a (0:120a)
cp c
jr nz, .skip_card ; jump if not in specified play area location
ld a, l
- call LoadDeckCardToBuffer2
+ call LoadCardDataToBuffer2_FromDeckIndex
ld a, [wLoadedCard2Type]
and 1 << TYPE_ENERGY_F
jr z, .skip_card ; jump if Pokemon or trainer card
@@ -3262,13 +3262,13 @@ _GetCardIDFromDeckIndex: ; 1362 (0:1362)
ret
; load data of card with deck index a (0-59) to wLoadedCard1
-LoadDeckCardToBuffer1: ; 1376 (0:1376)
+LoadCardDataToBuffer1_FromDeckIndex: ; 1376 (0:1376)
push hl
push de
push bc
push af
call GetCardIDFromDeckIndex
- call LoadCardDataToBuffer1
+ call LoadCardDataToBuffer1_FromCardID
pop af
ld hl, wLoadedCard1
bank1call ConvertTrainerCardToPokemon
@@ -3279,13 +3279,13 @@ LoadDeckCardToBuffer1: ; 1376 (0:1376)
ret
; load data of card with deck index a (0-59) to wLoadedCard2
-LoadDeckCardToBuffer2: ; 138c (0:138c)
+LoadCardDataToBuffer2_FromDeckIndex: ; 138c (0:138c)
push hl
push de
push bc
push af
call GetCardIDFromDeckIndex
- call LoadCardDataToBuffer2
+ call LoadCardDataToBuffer2_FromCardID
pop af
ld hl, wLoadedCard2
bank1call ConvertTrainerCardToPokemon
@@ -3352,7 +3352,7 @@ PutHandPokemonCardInPlayArea: ; 1485 (0:1485)
ld l, a
pop af
ld [hl], a ; set card in arena or benchx
- call LoadDeckCardToBuffer2
+ call LoadCardDataToBuffer2_FromDeckIndex
ld a, DUELVARS_ARENA_CARD_HP
add e
ld l, a
@@ -3595,7 +3595,7 @@ GetAttachedEnergies: ; 159f (0:159f)
push de
push bc
ld a, l
- call LoadDeckCardToBuffer2
+ call LoadCardDataToBuffer2_FromDeckIndex
ld a, [wLoadedCard2Type]
bit TYPE_ENERGY_F, a
jr z, .not_an_energy_card
@@ -3703,12 +3703,12 @@ Func_161e: ; 161e (0:161e)
ret nz
call $6510
ldh a, [hTempCardIndex_ff98]
- call LoadDeckCardToBuffer1
+ call LoadCardDataToBuffer1_FromDeckIndex
ld hl, wLoadedCard1Name
ld a, [hli]
ld h, [hl]
ld l, a
- call Func_2ebb
+ call LoadTxRam2
ldtx hl, HavePokemonPowerText
call DrawWideTextBox_WaitForInput
call Func_0f58
@@ -3734,9 +3734,9 @@ Func_161e: ; 161e (0:161e)
ret c ; return if command not found
bank1call $4f9d
ldh a, [hTempCardIndex_ff9f]
- call LoadDeckCardToBuffer1
+ call LoadCardDataToBuffer1_FromDeckIndex
ld de, wLoadedCard1Name
- ld hl, wce3f
+ ld hl, wTxRam2
ld a, [de]
inc de
ld [hli], a
@@ -3767,7 +3767,7 @@ Func_16ad: ; 16ad (0:16ad)
pop af
ld e, a
ld d, $00
- call LoadCardDataToBuffer1
+ call LoadCardDataToBuffer1_FromCardID
pop de
jr CopyMoveDataAndDamage.card_loaded
@@ -3779,7 +3779,7 @@ CopyMoveDataAndDamage: ; 16c0 (0:16c0)
ld [wSelectedMoveIndex], a
ld a, d
ldh [hTempCardIndex_ff9f], a
- call LoadDeckCardToBuffer1
+ call LoadCardDataToBuffer1_FromDeckIndex
.card_loaded
ld a, [wLoadedCard1ID]
ld [wTempCardID_ccc2], a
@@ -3912,7 +3912,7 @@ Func_1730: ; 1730 (0:1730)
bank1call $503a
pop hl
.asm_17e8
- call Func_1ad0
+ call PrintKnockedOutIfHLZero
jr Func_17fb
Func_17ed: ; 17ed (0:17ed)
@@ -4070,13 +4070,52 @@ CheckSelfConfusionDamage: ; 18d7 (0:18d7)
ret
; 0x18f9
- INCROM $18f9, $1944
+; use the trainer card with deck index at hTempCardIndex_ff98
+; a trainer card is like a move effect, with its own effect commands
+UseTrainerCard: ; 18f9 (0:18f9)
+ call CheckCantUseTrainerDueToHeadache
+ jr c, .cant_use
+ ldh a, [hWhoseTurn]
+ ld h, a
+ ldh a, [hTempCardIndex_ff98]
+ ldh [hTempCardIndex_ff9f], a
+ call LoadNonPokemonCardEffectCommands
+ ld a, $01
+ call TryExecuteEffectCommandFunction
+ jr nc, .can_use
+.cant_use
+ call DrawWideTextBox_WaitForInput
+ scf
+ ret
+.can_use
+ ld a, $02
+ call TryExecuteEffectCommandFunction
+ jr c, .done
+ ld a, $06
+ call SetDuelAIAction
+ call $666a
+ call Func_0f58
+ ld a, $06
+ call TryExecuteEffectCommandFunction
+ ld a, $05
+ call TryExecuteEffectCommandFunction
+ ld a, $07
+ call SetDuelAIAction
+ ld a, $03
+ call TryExecuteEffectCommandFunction
+ ldh a, [hTempCardIndex_ff9f]
+ call MoveHandCardToDiscardPile
+ call Func_0f58
+.done
+ or a
+ ret
+; 0x1944
; loads the effect commands of a (trainer or energy) card with deck index (0-59) at hTempCardIndex_ff9f
; into wLoadedMoveEffectCommands
LoadNonPokemonCardEffectCommands: ; 1944 (0:1944)
ldh a, [hTempCardIndex_ff9f]
- call LoadDeckCardToBuffer1
+ call LoadCardDataToBuffer1_FromDeckIndex
ld hl, wLoadedCard1EffectCommands
ld de, wLoadedMoveEffectCommands
ld a, [hli]
@@ -4113,7 +4152,7 @@ Func_195c: ; 195c (0:195c)
ld a, DUELVARS_ARENA_CARD_HP
call GetTurnDuelistVariable
bank1call $7469
- call Func_1ad0
+ call PrintKnockedOutIfHLZero
pop af
ld [wTempNonTurnDuelistCardID], a
pop af
@@ -4188,17 +4227,17 @@ Func_1994: ; 1994 (0:1994)
Func_1a0e: ; 1a0e (0:1a0e)
push hl
- add $1a
+ add LOW(.asm_1a1a)
ld l, a
- ld a, $1a
+ ld a, HIGH(.asm_1a1a)
adc $0
ld h, a
ld a, [hl]
pop hl
ret
-; 0x1a1a
- INCROM $1a1a, $1a22
+.asm_1a1a
+ db $80, $40, $20, $10, $08, $04, $02, $01
Func_1a22: ; 1a22 (0:1a22)
xor a
@@ -4299,39 +4338,44 @@ SubstractHP: ; 1a96 (0:1a96)
pop hl
ret
-Func_1aac: ; 1aac (0:1aac)
+; given a play area location offset in a, check if the turn holder's Pokemon card in
+; that location has no HP left, and, if so, print that it was knocked out.
+PrintPlayAreaCardKnockedOutIfNoHP: ; 1aac (0:1aac)
ld e, a
add DUELVARS_ARENA_CARD_HP
call GetTurnDuelistVariable
or a
- ret nz
+ ret nz ; return if arena card has non-0 HP
ld a, [wTempNonTurnDuelistCardID]
push af
ld a, e
add DUELVARS_ARENA_CARD
call GetTurnDuelistVariable
- call LoadDeckCardToBuffer1
+ call LoadCardDataToBuffer1_FromDeckIndex
ld a, [wLoadedCard1ID]
ld [wTempNonTurnDuelistCardID], a
- call Func_1ad3
+ call PrintKnockedOut
pop af
ld [wTempNonTurnDuelistCardID], a
scf
ret
-Func_1ad0: ; 1ad0 (0:1ad0)
- ld a, [hl]
+PrintKnockedOutIfHLZero: ; 1ad0 (0:1ad0)
+ ld a, [hl] ; this is supposed to point to a remaining HP value after some form of damage calculation
or a
ret nz
-Func_1ad3: ; 1ad3 (0:1ad3)
+; fallthrough
+
+; print in a text box that the Pokemon card at wTempNonTurnDuelistCardID was knocked out and wait 40 frames
+PrintKnockedOut: ; 1ad3 (0:1ad3)
ld a, [wTempNonTurnDuelistCardID]
ld e, a
- call LoadCardDataToBuffer1
- ld hl, $cc27
+ call LoadCardDataToBuffer1_FromCardID
+ ld hl, wLoadedCard1Name
ld a, [hli]
ld h, [hl]
ld l, a
- call Func_2ebb
+ call LoadTxRam2
ldtx hl, WasKnockedOutText
call DrawWideTextBox_PrintText
ld a, 40
@@ -4349,16 +4393,16 @@ Func_1b8d: ; 1b8d (0:1b8d)
bank1call $4f9d
ld a, DUELVARS_ARENA_CARD
call GetTurnDuelistVariable
- call LoadDeckCardToBuffer1
+ call LoadCardDataToBuffer1_FromDeckIndex
ld a, $12
call Func_29f5
ld [hl], $0
- ld hl, $ce3f
+ ld hl, wTxRam2
xor a
ld [hli], a
ld [hli], a
ld a, [wLoadedMoveName]
- ld [hli], a
+ ld [hli], a ; wTxRam2_b
ld a, [wLoadedMoveName + 1]
ld [hli], a
ldtx hl, PokemonsAttackText ; text when using an attack
@@ -4385,14 +4429,14 @@ Func_1bca: ; 1bca (0:1bca)
ldh a, [hTempPlayAreaLocationOffset_ff9d]
add DUELVARS_ARENA_CARD
call GetTurnDuelistVariable
- call LoadDeckCardToBuffer1
+ call LoadCardDataToBuffer1_FromDeckIndex
ld a, $12
call Func_29f5
ld [hl], $0
ld hl, $0000
- call Func_2ebb
+ call LoadTxRam2
ld hl, $ccaa
- ld de, $ce41
+ ld de, wTxRam2_b
ld a, [hli]
ld [de], a
inc de
@@ -4425,7 +4469,7 @@ SwapTurn: ; 1c72 (0:1c72)
pop af
ret
-PrintPlayerName: ; 1c7d (0:1c7d)
+LoadPlayerName: ; 1c7d (0:1c7d)
call EnableSRAM
ld hl, $a010
.loop
@@ -4438,7 +4482,7 @@ PrintPlayerName: ; 1c7d (0:1c7d)
call DisableSRAM
ret
-PrintOpponentName: ; 1c8e (0:1c8e)
+LoadOpponentName: ; 1c8e (0:1c8e)
ld hl, wOpponentName
ld a, [hli]
or [hl]
@@ -4452,7 +4496,7 @@ PrintOpponentName: ; 1c8e (0:1c8e)
ld a, [hl]
or a
jr z, .print_player2
- jr PrintPlayerName.loop
+ jr LoadPlayerName.loop
.print_player2
ldtx hl, Player2Text
jp PrintTextBoxBorderLabel
@@ -6084,7 +6128,7 @@ CardSymbolTable:
db $dc, $02 ; TYPE_TRAINER
Func_29f5: ; 29f5 (0:29f5)
- farcallx $6, $4000
+ farcall $6, $4000
ret
; 0x29fa
@@ -6151,7 +6195,7 @@ Func_2a44: ; 2a44 (0:2a44)
ld a, l
or h
jp nz, PrintTextNoDelay
- ld hl, wc590
+ ld hl, wDefaultText
jp Func_21c5
DrawWideTextBox_PrintText: ; 2a59 (0:2a59)
@@ -6325,7 +6369,11 @@ PrintYesOrNoItems: ; 2b66 (0:2b66)
ret
; 0x2b70
- INCROM $2b70, $2b78
+Func_2b70: ; 2b70 (0:2b70)
+ ld a, BANK(Func_407a)
+ call BankswitchHome
+ jp Func_407a
+; 0x2b78
; loads opponent deck to wOpponentDeck
LoadOpponentDeck: ; 2b78 (0:2b78)
@@ -6572,7 +6620,7 @@ Func_2d06: ; 2d06 (0:2d06)
add e
ld e, a
ld d, $0
- ld hl, $ce2b
+ ld hl, wce2b
add hl, de
ret
@@ -6613,11 +6661,11 @@ Func_2d43: ; 2d43 (0:2d43)
call Func_21f2
jr nc, .asm_2d74
cp TX_RAM1
- jr z, .asm_2dc8
+ jr z, .tx_ram1
cp TX_RAM2
- jr z, .asm_2d8a
+ jr z, .tx_ram2
cp TX_RAM3
- jr z, .asm_2db3
+ jr z, .tx_ram3
jr .asm_2d74
.asm_2d65
ld e, a
@@ -6644,13 +6692,13 @@ Func_2d43: ; 2d43 (0:2d43)
call Func_230f
scf
ret
-.asm_2d8a
+.tx_ram2
call Func_2ceb
ld a, $f
ld [hffaf], a
xor a
ld [wcd0a], a
- ld de, $ce3f
+ ld de, wTxRam2
ld hl, $ce49
call Func_2de0
ld a, l
@@ -6660,20 +6708,20 @@ Func_2d43: ; 2d43 (0:2d43)
call Func_2cd7
jr Func_2d43
.asm_2dab
- ld hl, wc590
+ ld hl, wDefaultText
call Func_2cd7
jr Func_2d43
-.asm_2db3
+.tx_ram3
call Func_2ceb
- ld de, $ce43
+ ld de, wTxRam3
ld hl, $ce4a
call Func_2de0
call Func_2e12
call Func_2cd7
jp Func_2d43
-.asm_2dc8
+.tx_ram1
call Func_2ceb
- call Func_2e2c
+ call LoadTurnDuelistName
ld a, [wcaa0]
cp $6
jr z, .asm_2dda
@@ -6683,6 +6731,8 @@ Func_2d43: ; 2d43 (0:2d43)
call Func_2cd7
jp Func_2d43
+; inc [hl]
+; hl = [de + 2*[hl]]
Func_2de0: ; 2de0 (0:2de0)
push de
ld a, [hl]
@@ -6745,17 +6795,17 @@ Func_2e12: ; 2e12 (0:2e12)
jr nz, .asm_2e23
ret
-Func_2e2c: ; 2e2c (0:2e2c)
+LoadTurnDuelistName: ; 2e2c (0:2e2c)
ld de, wcaa0
push de
ldh a, [hWhoseTurn]
cp OPPONENT_TURN
jp z, .opponent_turn
- call PrintPlayerName
+ call LoadPlayerName
pop hl
ret
.opponent_turn
- call PrintOpponentName
+ call LoadOpponentName
pop hl
ret
@@ -6772,7 +6822,7 @@ PrintText: ; 2e41 (0:2e41)
call BankswitchHome
ret
.from_ram
- ld hl, wc590
+ ld hl, wDefaultText
.print_text
call Func_2cc8
.next_tile_loop
@@ -6780,14 +6830,14 @@ PrintText: ; 2e41 (0:2e41)
ld b, a
ld a, [wTextSpeed]
inc a
- cp $3
+ cp 3
jr nc, .apply_delay
; if text speed is 1, pressing b ignores it
bit B_BUTTON_F, b
jr nz, .skip_delay
jr .apply_delay
.text_delay_loop
- ; wait a number of frames equal to wTextSpeed between printing each text tile
+ ; wait a number of frames equal to [wTextSpeed] between printing each text tile
call DoFrame
.apply_delay
dec a
@@ -6834,37 +6884,49 @@ PrintTextBoxBorderLabel: ; 2e89 (0:2e89)
.special
ldh a, [hWhoseTurn]
cp OPPONENT_TURN
- jp z, PrintOpponentName
- jp PrintPlayerName
+ jp z, LoadOpponentName
+ jp LoadPlayerName
; 0x2ea9
- INCROM $2ea9, $2ebb
+Func_2ea9: ; 2ea9 (0:2ea9)
+ ldh [hff96], a
+ ldh a, [hBankROM]
+ push af
+ call ReadTextOffset
+ ldh a, [hff96]
+ call $23fd
+ pop af
+ call BankswitchHome
+ ret
+; 0x2ebb
-Func_2ebb: ; 2ebb (0:2ebb)
+; text pointer (usually of a card name) for TX_RAM2
+LoadTxRam2: ; 2ebb (0:2ebb)
ld a, l
- ld [wce3f], a
+ ld [wTxRam2], a
ld a, h
- ld [wce40], a
+ ld [wTxRam2 + 1], a
ret
-Func_2ec4: ; 2ec4 (0:2ec4)
+; a number between 0 and 65535 for TX_RAM3
+LoadTxRam3: ; 2ec4 (0:2ec4)
ld a, l
- ld [wce43], a
+ ld [wTxRam3], a
ld a, h
- ld [wce44], a
+ ld [wTxRam3 + 1], a
ret
; 0x2ecd
INCROM $2ecd, $2f0a
; load data of card with id at e to wLoadedCard2
-LoadCardDataToBuffer2: ; 2f0a (0:2f0a)
+LoadCardDataToBuffer2_FromCardID: ; 2f0a (0:2f0a)
push hl
ld hl, wLoadedCard2
jr LoadCardDataToRAM
; load data of card with id at e to wLoadedCard1
-LoadCardDataToBuffer1: ; 2f10 (0:2f10)
+LoadCardDataToBuffer1_FromCardID: ; 2f10 (0:2f10)
push hl
ld hl, wLoadedCard1
; fallthrough
@@ -7667,7 +7729,7 @@ Func_3317: ; 3317 (0:3317)
call SwapTurn
ld a, DUELVARS_ARENA_CARD
call GetTurnDuelistVariable
- call LoadDeckCardToBuffer2
+ call LoadCardDataToBuffer2_FromDeckIndex
ld a, DUELVARS_ARENA_CARD_HP
call GetTurnDuelistVariable
push af
@@ -7676,13 +7738,13 @@ Func_3317: ; 3317 (0:3317)
call SubstractHP
ld a, [wLoadedCard2ID]
ld [wTempNonTurnDuelistCardID], a
- ld hl, $a
- call Func_2ec4
+ ld hl, 10
+ call LoadTxRam3
ld hl, wLoadedCard2Name
ld a, [hli]
ld h, [hl]
ld l, a
- call Func_2ebb
+ call LoadTxRam2
ldtx hl, ReceivesDamageDueToStrikesBackText
call DrawWideTextBox_WaitForInput
pop hl
@@ -7690,7 +7752,7 @@ Func_3317: ; 3317 (0:3317)
or a
jr z, .asm_3379
xor a
- call Func_1aac
+ call PrintPlayAreaCardKnockedOutIfNoHP
.asm_3379
call SwapTurn
pop de
@@ -7863,7 +7925,7 @@ HandleNoDamageOrEffectSubstatus: ; 3432 (0:3432)
ld a, [wTempTurnDuelistCardID]
ld e, a
ld d, $0
- call LoadCardDataToBuffer2
+ call LoadCardDataToBuffer2_FromCardID
ld a, [wLoadedCard2Stage]
or a
ret z
@@ -8230,12 +8292,12 @@ HandleDestinyBondSubstatus: ; 363b (0:363b)
pop hl
ld l, DUELVARS_ARENA_CARD
ld a, [hl]
- call LoadDeckCardToBuffer2
+ call LoadCardDataToBuffer2_FromDeckIndex
ld hl, wLoadedCard2Name
ld a, [hli]
ld h, [hl]
ld l, a
- call Func_2ebb
+ call LoadTxRam2
ldtx hl, KnockedOutDueToDestinyBondText
call DrawWideTextBox_WaitForInput
ret
@@ -8266,16 +8328,16 @@ HandleStrikesBack: ; 367b (0:367b)
ApplyStrikesBack: ; 36a2 (0:36a2)
push hl
- call Func_2ec4
+ call LoadTxRam3
ld a, [wTempTurnDuelistCardID]
ld e, a
ld d, $0
- call LoadCardDataToBuffer2
+ call LoadCardDataToBuffer2_FromCardID
ld hl, wLoadedCard2Name
ld a, [hli]
ld h, [hl]
ld l, a
- call Func_2ebb
+ call LoadTxRam2
ld a, DUELVARS_ARENA_CARD_HP
call GetTurnDuelistVariable
pop de
@@ -8290,7 +8352,7 @@ ApplyStrikesBack: ; 36a2 (0:36a2)
ret z
call WaitForWideTextBoxInput
xor a
- call Func_1aac
+ call PrintPlayAreaCardKnockedOutIfNoHP
call $503a
scf
ret
@@ -8380,7 +8442,7 @@ GetArenaPokemonWeakness: ; 3730 (0:3730)
GetPokemonWeakness:
call GetTurnDuelistVariable
- call LoadDeckCardToBuffer2
+ call LoadCardDataToBuffer2_FromDeckIndex
ld a, [wLoadedCard2Weakness]
ret
; 0x3743
@@ -8406,7 +8468,7 @@ GetArenaPokemonResistance: ; 374a (0:374a)
GetPokemonResistance:
call GetTurnDuelistVariable
- call LoadDeckCardToBuffer2
+ call LoadCardDataToBuffer2_FromDeckIndex
ld a, [wLoadedCard2Resistance]
ret
; 0x375d
@@ -8789,7 +8851,29 @@ Func_3a40: ; 3a40 (0:3a40)
ret
; 0x3a45
- INCROM $3a45, $3a5e
+Func_3a45: ; 3a45 (0:3a45)
+ farcall Func_11343
+ ret
+; 0x3a4a
+
+Func_3a4a: ; 3a4a (0:3a4a)
+ farcall Func_115a3
+ ret
+; 0x3a4f
+
+Func_3a4f: ; 3a4f (0:3a4f)
+ push af
+ push bc
+ push de
+ push hl
+ ld c, $00
+ farcall Func_1157c
+ pop hl
+ pop de
+ pop bc
+ pop af
+ ret
+; 0x3a5e
Func_3a5e: ; 3a5e (0:3a5e)
ldh a, [hBankROM]
@@ -8883,7 +8967,10 @@ Func_3abd: ; 3abd (0:3abd)
ret
; 0x3ae8
- INCROM $3ae8, $3aed
+Func_3ae8: ; 3ae8 (0:3ae8)
+ farcall Func_11f4e
+ ret
+; 0x3aed
; finds an OWScript from the first byte and puts the next two bytes (usually arguments?) into cb
RunOverworldScript: ; 3aed (0:3aed)
@@ -8914,7 +9001,16 @@ RunOverworldScript: ; 3aed (0:3aed)
jp hl
; 0x3b11
- INCROM $3b11, $3b21
+Func_3b11: ; 3b11 (0:3b11)
+ ldh a, [hBankROM]
+ push af
+ ld a, $04
+ call BankswitchHome
+ call $66d1
+ pop af
+ call BankswitchHome
+ ret
+; 0x3b21
Func_3b21: ; 3b21 (0:3b21)
ldh a, [hBankROM]
@@ -9039,7 +9135,10 @@ Func_3c45: ; 3c45 (0:3c45)
jp hl
; 0x3c46
- INCROM $3c46, $3c48
+Func_3c46: ; 3c46 (0:3c46)
+ push bc
+ ret
+; 0x3c48
DoFrameIfLCDEnabled: ; 3c48 (0:3c48)
push af
@@ -9094,7 +9193,15 @@ Func_3c83: ; 3c83 (0:3c83)
ret
; 0x3c87
- INCROM $3c87, $3c96
+Func_3c87: ; 3c87 (0:3c87)
+ push af
+ call PauseSong
+ pop af
+ call PlaySong
+ call Func_3c96
+ call ResumeSong
+ ret
+; 0x3c96
Func_3c96: ; 3c96 (0:3c96)
call DoFrameIfLCDEnabled
diff --git a/src/macros/code.asm b/src/macros/code.asm
index 24c3bf1..276bd6a 100644
--- a/src/macros/code.asm
+++ b/src/macros/code.asm
@@ -30,16 +30,13 @@ ENDM
farcall: MACRO
rst $28
+if _NARG == 1
db BANK(\1)
dw \1
-ENDM
-
-; used when the specified bank does not match the bank of the specified function
-; otherwise, farcall is preferred
-farcallx: MACRO
- rst $28
+else
db \1
dw \2
+endc
ENDM
; the rst $38 handler is a single ret
diff --git a/src/wram.asm b/src/wram.asm
index 99dbd6d..2696c3c 100644
--- a/src/wram.asm
+++ b/src/wram.asm
@@ -285,9 +285,9 @@ wOpponentDeck:: ; c480
wDuelCardOrAttackList:: ; c510
ds $80
-; this appears to be kept updated with some default text that is used
+; this is kept updated with some default text that is used
; when the text printing functions are called with text id $0000
-wc590:: ; c590
+wDefaultText:: ; c590
ds $70
SECTION "WRAM Text Engine", WRAM0
@@ -791,25 +791,29 @@ wcd9f:: ; cd9f
; $b is the bank where the functions associated to card or effect commands are.
; Its only purpose seems to be store this value to be read by TryExecuteEffectCommandFunction.
wce22:: ; ce22
- ds $1d
-
-wce3f:: ; cd3f
ds $1
-wce40:: ; ce40
- ds $1
+ ds $8
-wce41:: ; ce41
+wce2b:: ; ce2b
ds $1
-wce42:: ; ce42
- ds $1
+ ds $13
-wce43:: ; ce43
- ds $1
+; text pointer for the first TX_RAM2 of a text
+; prints from wDefaultText if $0000
+wTxRam2:: ; cd3f
+ ds $2
-wce44:: ; ce44
- ds $3
+; text pointer for the second TX_RAM2 on a text
+wTxRam2_b:: ; ce41
+ ds $2
+
+; a number between 0 and 65535 for TX_RAM3
+wTxRam3:: ; ce43
+ ds $2
+
+ ds $2
; when printing text, number of frames to wait between each text tile
wTextSpeed:: ; ce47