Merge pull request #157 from yenatch/overworld

overworld loop and movement
This commit is contained in:
Bryan Bishop 2013-07-12 19:16:49 -07:00
commit bb8990dc3c
10 changed files with 2724 additions and 673 deletions

View File

@ -13,7 +13,7 @@ clean:
rm -f pokecrystal.o pokecrystal.gbc rm -f pokecrystal.o pokecrystal.gbc
@echo 'rm -f $(TEXTFILES:.asm=.tx)' @echo 'rm -f $(TEXTFILES:.asm=.tx)'
@rm -f $(TEXTFILES:.asm=.tx) @rm -f $(TEXTFILES:.asm=.tx)
pokecrystal.o: $(TEXTFILES:.asm=.tx) $(LZ_GFX) $(TWOBPP_GFX) pokecrystal.o: $(TEXTFILES:.asm=.tx) wram.asm constants.asm $(shell find constants/ -type f -name '*constants.asm') hram.asm gbhw.asm $(LZ_GFX) $(TWOBPP_GFX)
python prequeue.py $(TEXTQUEUE) python prequeue.py $(TEXTQUEUE)
rgbasm -o pokecrystal.o pokecrystal.asm rgbasm -o pokecrystal.o pokecrystal.asm
.asm.tx: .asm.tx:

View File

@ -6796,7 +6796,7 @@ BattleCommandac: ; 3658f
; jump ; jump
dec a dec a
ld hl, .ptrs ld hl, .ptrs
rst $28 rst JumpTable
ret ret
.ptrs .ptrs
dw BattleCommand19 ; paralyze dw BattleCommand19 ; paralyze
@ -9953,7 +9953,7 @@ Function0x377f5: ; 377f5
ld [$d123], a ld [$d123], a
ld a, [hl] ld a, [hl]
ld [$d124], a ld [$d124], a
ld a, $3 ld a, 3
ld [MonType], a ld [MonType], a
ld a, $14 ld a, $14
ld hl, $4bdd ld hl, $4bdd

View File

@ -1,5 +1,11 @@
_CRYSTAL EQU 1 _CRYSTAL EQU 1
if _CRYSTAL
VERSION EQU 0
else
VERSION EQU 1
endc
INCLUDE "constants/pokemon_constants.asm" INCLUDE "constants/pokemon_constants.asm"
INCLUDE "constants/move_constants.asm" INCLUDE "constants/move_constants.asm"
INCLUDE "constants/battle_constants.asm" INCLUDE "constants/battle_constants.asm"
@ -10,9 +16,10 @@ INCLUDE "constants/script_constants.asm"
INCLUDE "constants/music_constants.asm" INCLUDE "constants/music_constants.asm"
; rst vectors ; macros require rst vectors to be defined
FarCall EQU $08 FarCall EQU $08
Bankswitch EQU $10 Bankswitch EQU $10
JumpTable EQU $28
dwb: MACRO dwb: MACRO
@ -184,22 +191,6 @@ ICON_SUDOWOODO EQU $25
ICON_BIGMON EQU $26 ICON_BIGMON EQU $26
; days of the week
SUNDAY EQU 0
MONDAY EQU 1
TUESDAY EQU 2
WEDNESDAY EQU 3
THURSDAY EQU 4
FRIDAY EQU 5
SATURDAY EQU 6
; time of day
MORN EQU 0
DAY EQU 1
NITE EQU 2
DARKNESS EQU 3
; evolution types ; evolution types
EVOLVE_LEVEL EQU 1 EVOLVE_LEVEL EQU 1
EVOLVE_ITEM EQU 2 EVOLVE_ITEM EQU 2
@ -220,23 +211,6 @@ ATK_LT_DEF EQU 2
ATK_EQ_DEF EQU 3 ATK_EQ_DEF EQU 3
; main menu
CONTINUE EQU 0
NEW_GAME EQU 1
OPTION EQU 2
MYSTERY_GIFT EQU 3
MOBILE EQU 4
MOBILE_STUDIUM EQU 5
; kris's pc menu items
WITHDRAW_ITEM EQU 0
DEPOSIT_ITEM EQU 1
TOSS_ITEM EQU 2
MAIL_BOX EQU 3
DECORATION EQU 4
TURN_OFF EQU 5
LOG_OFF EQU 6
; name length ; name length
PLAYER_NAME_LENGTH EQU 8 PLAYER_NAME_LENGTH EQU 8
PKMN_NAME_LENGTH EQU 11 PKMN_NAME_LENGTH EQU 11
@ -258,20 +232,10 @@ SET_FLAG EQU 1
CHECK_FLAG EQU 2 CHECK_FLAG EQU 2
; player states
PLAYER_NORMAL EQU 0
PLAYER_BIKE EQU 1
PLAYER_SLIP EQU 2
PLAYER_SURF EQU 4
PLAYER_SURF_PIKA EQU 8
; joypad ; joypad
BUTTONS EQU %00010000 BUTTONS EQU %00010000
D_PAD EQU %00100000 D_PAD EQU %00100000
AUTO_INPUT EQU $ff
NO_INPUT EQU %00000000 NO_INPUT EQU %00000000
BUTTON_A EQU %00000001 BUTTON_A EQU %00000001
BUTTON_B EQU %00000010 BUTTON_B EQU %00000010
@ -284,12 +248,6 @@ D_DOWN EQU %10000000
; movement ; movement
STANDING EQU -1
DOWN EQU 0
UP EQU 1
LEFT EQU 2
RIGHT EQU 3
STEP_SLOW EQU 0 STEP_SLOW EQU 0
STEP_WALK EQU 1 STEP_WALK EQU 1
STEP_BIKE EQU 2 STEP_BIKE EQU 2
@ -299,19 +257,4 @@ STEP_TURN EQU 5
STEP_BACK_LEDGE EQU 6 STEP_BACK_LEDGE EQU 6
STEP_WALK_IN_PLACE EQU 7 STEP_WALK_IN_PLACE EQU 7
; facing
FACE_CURRENT EQU 0
FACE_DOWN EQU 8
FACE_UP EQU 4
FACE_LEFT EQU 2
FACE_RIGHT EQU 1
; Provisional wram bank 5 labels:
; 8 4-color palettes
Unkn1Pals EQU $d000
Unkn2Pals EQU $d040
BGPals EQU $d080
OBPals EQU $d0c0

View File

@ -171,21 +171,21 @@ ScriptCommandTable: ; 0x96cb1
dw Script_unknown0xa9 dw Script_unknown0xa9
; 0x96e05 ; 0x96e05
Unknown_0x96e05: ; 0x96e05 StartScript: ; 0x96e05
ld hl, $d434 ld hl, ScriptFlags
set 2, [hl] set SCRIPT_RUNNING, [hl]
ret ret
; 0x96e0b ; 0x96e0b
Unknown_0x96e0b: ; 0x96e0b CheckScript: ; 0x96e0b
ld hl, $d434 ld hl, ScriptFlags
bit 2, [hl] bit SCRIPT_RUNNING, [hl]
ret ret
; 0x96e11 ; 0x96e11
Unknown_0x96e11: ; 0x96e11 StopScript: ; 0x96e11
ld hl, $d434 ld hl, ScriptFlags
res 2, [hl] res SCRIPT_RUNNING, [hl]
ret ret
; 0x96e17 ; 0x96e17
@ -250,8 +250,8 @@ Script_jumptextfaceplayer: ; 0x96e45
ld [$d44f], a ld [$d44f], a
call GetScriptByte call GetScriptByte
ld [$d450], a ld [$d450], a
ld b, $25 ld b, BANK(JumpTextFacePlayerScript)
ld hl, $6e79 ld hl, JumpTextFacePlayerScript
jp ScriptJump jp ScriptJump
; 0x96e5f ; 0x96e5f
@ -266,12 +266,20 @@ Script_jumptext: ; 0x96e5f
ld [$d44f], a ld [$d44f], a
call GetScriptByte call GetScriptByte
ld [$d450], a ld [$d450], a
ld b, $25 ld b, BANK(JumpTextScript)
ld hl, $6e7a ld hl, JumpTextScript
jp ScriptJump jp ScriptJump
; 0x96e79 ; 0x96e79
INCBIN "baserom.gbc",$96e79,$96e81 - $96e79 JumpTextFacePlayerScript: ; 0x96e79
faceplayer
JumpTextScript: ; 0x96e7a
loadfont
repeattext $ff, $ff
closetext
loadmovesprites
end
; 0x96e81
Script_3jumptext: ; 0x96e81 Script_3jumptext: ; 0x96e81
; script command 0x52 ; script command 0x52
@ -284,8 +292,8 @@ Script_3jumptext: ; 0x96e81
ld [$d44f], a ld [$d44f], a
call GetScriptByte call GetScriptByte
ld [$d450], a ld [$d450], a
ld b, $25 ld b, BANK(JumpTextScript)
ld hl, $6e7a ld hl, JumpTextScript
jp ScriptJump jp ScriptJump
; 0x96e9b ; 0x96e9b
@ -478,16 +486,41 @@ Script_verbosegiveitem: ; 0x96f60
; quantity (DecimalParam) ; quantity (DecimalParam)
call $77ca call $77ca
call $7051 call CurItemName
ld de, $d073 ld de, StringBuffer1
ld a, $1 ld a, $1
call $76c8 call $76c8
ld b, $25 ld b, BANK(GiveItemScript)
ld de, $6f77 ld de, GiveItemScript
jp $74cb jp ScriptCall
; 0x96f76 ; 0x96f76
INCBIN "baserom.gbc",$96f76,$96f8e - $96f76
Function96f76: ; 96f76
ret
; 96f77
GiveItemScript: ; 96f77
3callasm BANK(Function96f76), Function96f76
2writetext ReceivedItemText
iffalse .Full
waitbutton
specialsound
closetext
itemnotify
end
.Full
keeptextopen
pocketisfull
end
; 96f89
ReceivedItemText: ; 96f89
text_jump UnknownText_0x1c4719, BANK(UnknownText_0x1c4719)
db "@"
; 96f8e
Script_verbosegiveitem2: ; 0x96f8e Script_verbosegiveitem2: ; 0x96f8e
; script command 0x9f ; script command 0x9f
@ -512,22 +545,22 @@ Script_verbosegiveitem2: ; 0x96f8e
xor a xor a
.asm_96fb0 .asm_96fb0
ld [$c2dd], a ld [$c2dd], a
call $7051 call CurItemName
ld de, $d073 ld de, StringBuffer1
ld a, $1 ld a, $1
call $76c8 call $76c8
ld b, $25 ld b, BANK(GiveItemScript)
ld de, $6f77 ld de, GiveItemScript
jp $74cb jp ScriptCall
; 0x96fc6 ; 0x96fc6
Script_itemnotify: ; 0x96fc6 Script_itemnotify: ; 0x96fc6
; script command 0x45 ; script command 0x45
call $6ffe call GetPocketName
call $7051 call CurItemName
ld b, $25 ld b, BANK(PutItemInPocketText)
ld hl, $705b ld hl, PutItemInPocketText
call $269a call $269a
ret ret
; 0x96fd5 ; 0x96fd5
@ -535,10 +568,10 @@ Script_itemnotify: ; 0x96fc6
Script_pocketisfull: ; 0x96fd5 Script_pocketisfull: ; 0x96fd5
; script command 0x46 ; script command 0x46
call $6ffe call GetPocketName
call $7051 call CurItemName
ld b, $25 ld b, BANK(PocketIsFullText)
ld hl, $7060 ld hl, PocketIsFullText
call $269a call $269a
ret ret
; 0x96fe4 ; 0x96fe4
@ -560,7 +593,58 @@ Script_specialsound: ; 0x96fe4
ret ret
; 0x96ffe ; 0x96ffe
INCBIN "baserom.gbc",$96ffe,$97065 - $96ffe
GetPocketName: ; 96ffe
callba CheckItemPocket
ld a, [$d142]
dec a
ld hl, .Pockets
and 3
add a
ld e, a
ld d, 0
add hl, de
ld a, [hli]
ld d, [hl]
ld e, a
ld hl, StringBuffer3
call CopyName2
ret
.Pockets
dw .Item
dw .Key
dw .Ball
dw .TM
.Item
db "ITEM POCKET@"
.Key
db "KEY POCKET@"
.Ball
db "BALL POCKET@"
.TM
db "TM POCKET@"
; 97051
CurItemName: ; 97051
ld a, [CurItem]
ld [$d265], a
call GetItemName
ret
; 9705b
PutItemInPocketText: ; 9705b
text_jump UnknownText_0x1c472c, BANK(UnknownText_0x1c472c)
db "@"
; 97060
PocketIsFullText: ; 97060
text_jump UnknownText_0x1c474b, BANK(UnknownText_0x1c474b)
db "@"
; 97065
Script_pokemart: ; 0x97065 Script_pokemart: ; 0x97065
; script command 0x94 ; script command 0x94
@ -793,7 +877,7 @@ Script_talkaftercancel: ; 0x97163
ld a, [$d04d] ld a, [$d04d]
and a and a
ret z ret z
jp $7b74 jp Script_end
; 0x9716b ; 0x9716b
Script_talkaftercheck: ; 0x9716b Script_talkaftercheck: ; 0x9716b
@ -954,9 +1038,9 @@ Script_applymovement: ; 0x971f3
ld b, a ld b, a
call $26c7 call $26c7
ret c ret c
ld a, $2 ld a, SCRIPT_WAIT_MOVEMENT
ld [$d437], a ld [ScriptMode], a
call Unknown_0x96e11 call StopScript
ret ret
; 0x97221 ; 0x97221
@ -1291,33 +1375,61 @@ Script_showemote: ; 0x97396
ld [$ffe0], a ld [$ffe0], a
.asm_973a8 .asm_973a8
call GetScriptByte call GetScriptByte
ld [$d44d], a ld [ScriptDelay], a
ld b, $25 ld b, BANK(ShowEmoteScript)
ld de, $73b6 ld de, ShowEmoteScript
jp $74cb jp ScriptCall
; 0x973b6 ; 0x973b6
INCBIN "baserom.gbc",$973b6,$973c7 - $973b6 ShowEmoteScript: ; 973b6
loademote $ff
applymovement2 .Show
pause 0
applymovement2 .Hide
end
.Show
show_emote
show_person
step_end
.Hide
hide_emote
show_person
step_end
; 973c7
Script_earthquake: ; 0x973c7 Script_earthquake: ; 0x973c7
; script command 0x78 ; script command 0x78
; parameters: ; parameters:
; param (DecimalParam) ; param (DecimalParam)
ld hl, $73eb ld hl, EarthquakeMovement
ld de, $d002 ld de, $d002
ld bc, $0005 ld bc, EarthquakeMovementEnd - EarthquakeMovement
call CopyBytes call CopyBytes
call GetScriptByte call GetScriptByte
ld [$d003], a ld [$d003], a
and $3f and $3f
ld [$d005], a ld [$d005], a
ld b, $25 ld b, BANK(UnknownScript_0x973e6)
ld de, $73e6 ld de, UnknownScript_0x973e6
jp $74cb jp ScriptCall
; 0x973e6 ; 0x973e6
INCBIN "baserom.gbc",$973e6,$973f0 - $973e6 UnknownScript_0x973e6: ; 973e6
applymovement $0, $d002
end
; 973eb
EarthquakeMovement: ; 973eb
step_shake 16
step_sleep 16
step_end
EarthquakeMovementEnd
; 973f0
Script_loadpikachudata: ; 0x973f0 Script_loadpikachudata: ; 0x973f0
; script command 0x5a ; script command 0x5a
@ -1402,7 +1514,7 @@ Script_catchtutorial: ; 0x97447
ld a, $13 ld a, $13
ld hl, $6554 ld hl, $6554
rst $8 rst $8
jp $7491 jp Script_reloadmap
; 0x97459 ; 0x97459
Script_returnafterbattle: ; 0x97459 Script_returnafterbattle: ; 0x97459
@ -1435,7 +1547,7 @@ Script_returnafterbattle: ; 0x97459
ld hl, $7c4f ld hl, $7c4f
rst $8 rst $8
.asm_9748e .asm_9748e
jp $7491 jp Script_reloadmap
; 0x97491 ; 0x97491
Script_reloadmap: ; 0x97491 Script_reloadmap: ; 0x97491
@ -1447,7 +1559,7 @@ Script_reloadmap: ; 0x97491
ld [$ff9f], a ld [$ff9f], a
ld a, $1 ld a, $1
call $261b call $261b
call Unknown_0x96e11 call StopScript
ret ret
; 0x974a2 ; 0x974a2
@ -1525,7 +1637,7 @@ Unknown_0x974f3: ; 0x974f3
ld a, [ScriptBank] ld a, [ScriptBank]
or $80 or $80
ld [ScriptBank], a ld [ScriptBank], a
jp $74cb jp ScriptCall
; 0x974fe ; 0x974fe
Script_2jump: ; 0x974fe Script_2jump: ; 0x974fe
@ -1580,7 +1692,7 @@ Script_iffalse: ; 0x9752c
ld a, [$c2dd] ld a, [$c2dd]
and a and a
jp nz, $7596 jp nz, SkipTwoScriptBytes
jp Script_2jump jp Script_2jump
; 0x97536 ; 0x97536
@ -1592,7 +1704,7 @@ Script_iftrue: ; 0x97536
ld a, [$c2dd] ld a, [$c2dd]
and a and a
jp nz, Script_2jump jp nz, Script_2jump
jp $7596 jp SkipTwoScriptBytes
; 0x97540 ; 0x97540
Script_if_equal: ; 0x97540 Script_if_equal: ; 0x97540
@ -1605,7 +1717,7 @@ Script_if_equal: ; 0x97540
ld hl, $c2dd ld hl, $c2dd
cp [hl] cp [hl]
jr z, Script_2jump ; 0x97547 $b5 jr z, Script_2jump ; 0x97547 $b5
jr Unknown_97596 ; 0x97549 $4b jr SkipTwoScriptBytes ; 0x97549 $4b
; 0x9754b ; 0x9754b
Script_if_not_equal: ; 0x9754b Script_if_not_equal: ; 0x9754b
@ -1618,7 +1730,7 @@ Script_if_not_equal: ; 0x9754b
ld hl, $c2dd ld hl, $c2dd
cp [hl] cp [hl]
jr nz, Script_2jump ; 0x97552 $aa jr nz, Script_2jump ; 0x97552 $aa
jr Unknown_97596 ; 0x97554 $40 jr SkipTwoScriptBytes ; 0x97554 $40
; 0x97556 ; 0x97556
Script_if_less_than: ; 0x97556 Script_if_less_than: ; 0x97556
@ -1632,7 +1744,7 @@ Script_if_less_than: ; 0x97556
call GetScriptByte call GetScriptByte
cp b cp b
jr c, Script_2jump ; 0x9755e $9e jr c, Script_2jump ; 0x9755e $9e
jr Unknown_97596 ; 0x97560 $34 jr SkipTwoScriptBytes ; 0x97560 $34
; 0x97562 ; 0x97562
Script_if_greater_than: ; 0x97562 Script_if_greater_than: ; 0x97562
@ -1646,7 +1758,7 @@ Script_if_greater_than: ; 0x97562
ld a, [$c2dd] ld a, [$c2dd]
cp b cp b
jr c, Script_2jump ; 0x9756a $92 jr c, Script_2jump ; 0x9756a $92
jr Unknown_97596 ; 0x9756c $28 jr SkipTwoScriptBytes ; 0x9756c $28
; 0x9756e ; 0x9756e
Script_jumpstd: ; 0x9756e Script_jumpstd: ; 0x9756e
@ -1654,7 +1766,7 @@ Script_jumpstd: ; 0x9756e
; parameters: ; parameters:
; predefined_script (MultiByteParam) ; predefined_script (MultiByteParam)
call $757b call StdScript
jr ScriptJump ; 0x97571 $2a jr ScriptJump ; 0x97571 $2a
; 0x97573 ; 0x97573
@ -1663,31 +1775,31 @@ Script_callstd: ; 0x97573
; parameters: ; parameters:
; predefined_script (MultiByteParam) ; predefined_script (MultiByteParam)
call $757b call StdScript
ld d, h ld d, h
ld e, l ld e, l
jp $74cb jp ScriptCall
; 0x9757b ; 0x9757b
Unknown_0x9757b: ; 0x9757b StdScript: ; 0x9757b
call GetScriptByte call GetScriptByte
ld e, a ld e, a
call GetScriptByte call GetScriptByte
ld d, a ld d, a
ld hl, $4000 ld hl, $4000 ; StdScripts
add hl, de add hl, de
add hl, de add hl, de
add hl, de add hl, de
ld a, $2f ld a, $2f ; BANK(StdScripts)
call GetFarByte call GetFarByte
ld b, a ld b, a
inc hl inc hl
ld a, $2f ld a, $2f ; BANK(StdScripts)
call GetFarHalfword call GetFarHalfword
ret ret
; 0x97596 ; 0x97596
Unknown_97596: ; 0x97596 SkipTwoScriptBytes: ; 0x97596
call GetScriptByte call GetScriptByte
call GetScriptByte call GetScriptByte
ret ret
@ -1714,7 +1826,7 @@ Script_priorityjump: ; 0x975aa
ld [$d44f], a ld [$d44f], a
call GetScriptByte call GetScriptByte
ld [$d450], a ld [$d450], a
ld hl, $d434 ld hl, ScriptFlags
set 3, [hl] set 3, [hl]
ret ret
; 0x975c2 ; 0x975c2
@ -1957,12 +2069,14 @@ Unknown_0x9769e: ; 0x9769e
Script_checkver: ; 0x976a6 Script_checkver: ; 0x976a6
; script command 0x18 ; script command 0x18
ld a, [$76ad] ld a, [Version]
ld [$c2dd], a ld [$c2dd], a
ret ret
; 0x976ad ; 0x976ad
INCBIN "baserom.gbc",$976ad,$976ae - $976ad Version: ; 976ad
db VERSION
; 976ae
Script_pokenamemem: ; 0x976ae Script_pokenamemem: ; 0x976ae
; script command 0x40 ; script command 0x40
@ -1977,7 +2091,7 @@ Script_pokenamemem: ; 0x976ae
.asm_976b7 .asm_976b7
ld [$d265], a ld [$d265], a
call $343b call $343b
ld de, $d073 ld de, StringBuffer1
Unknown_976c0: ; 0x976c0 Unknown_976c0: ; 0x976c0
call GetScriptByte call GetScriptByte
@ -1985,8 +2099,8 @@ Unknown_976c0: ; 0x976c0
jr c, .asm_976c8 ; 0x976c5 $1 jr c, .asm_976c8 ; 0x976c5 $1
xor a xor a
.asm_976c8 .asm_976c8
ld hl, $d099 ld hl, StringBuffer3
ld bc, $0013 ld bc, 19
call AddNTimes call AddNTimes
call CopyName2 call CopyName2
ret ret
@ -2005,7 +2119,7 @@ Script_itemtotext: ; 0x976d5
.asm_976de .asm_976de
ld [$d265], a ld [$d265], a
call GetItemName call GetItemName
ld de, $d073 ld de, StringBuffer1
jr Unknown_976c0 ; 0x976e7 $d7 jr Unknown_976c0 ; 0x976e7 $d7
; 0x976e9 ; 0x976e9
@ -2025,8 +2139,8 @@ Unknown_976f4: ; 0x976f4
ld a, $72 ld a, $72
ld hl, $68a5 ld hl, $68a5
rst $8 rst $8
ld de, $d073 ld de, StringBuffer1
jp $76c0 jp Unknown_976c0
; 0x97701 ; 0x97701
Script_displaylocation: ; 0x97701 Script_displaylocation: ; 0x97701
@ -2065,8 +2179,8 @@ Unknown_9771c: ; 0x9771c
call GetScriptByte call GetScriptByte
ld [$cf60], a ld [$cf60], a
call GetName call GetName
ld de, $d073 ld de, StringBuffer1
jp $76c0 jp Unknown_976c0
; 0x9772b ; 0x9772b
Script_unknown0xa6: ; 0x9772b Script_unknown0xa6: ; 0x9772b
@ -2085,11 +2199,11 @@ Script_readmoney: ; 0x97732
call $7771 call $7771
call $7861 call $7861
ld hl, $d073 ld hl, StringBuffer1
ld bc, $4306 ld bc, $4306
call $3198 call $3198
ld de, $d073 ld de, StringBuffer1
jp $76c0 jp Unknown_976c0
; 0x97747 ; 0x97747
Script_readcoins: ; 0x97747 Script_readcoins: ; 0x97747
@ -2098,12 +2212,12 @@ Script_readcoins: ; 0x97747
; memory (SingleByteParam) ; memory (SingleByteParam)
call $7771 call $7771
ld hl, $d073 ld hl, StringBuffer1
ld de, $d855 ld de, $d855
ld bc, $4206 ld bc, $4206
call $3198 call $3198
ld de, $d073 ld de, StringBuffer1
jp $76c0 jp Unknown_976c0
; 0x9775c ; 0x9775c
Script_RAM2MEM: ; 0x9775c Script_RAM2MEM: ; 0x9775c
@ -2113,17 +2227,17 @@ Script_RAM2MEM: ; 0x9775c
call $7771 call $7771
ld de, $c2dd ld de, $c2dd
ld hl, $d073 ld hl, StringBuffer1
ld bc, $4103 ld bc, $4103
call $3198 call $3198
ld de, $d073 ld de, StringBuffer1
jp $76c0 jp Unknown_976c0
; 0x97771 ; 0x97771
Unknown_0x97771: ; 0x97771 Unknown_0x97771: ; 0x97771
ld hl, $d073 ld hl, StringBuffer1
ld bc, $000b ld bc, $000b
ld a, $50 ld a, "@"
call ByteFill call ByteFill
ret ret
; 0x9777d ; 0x9777d
@ -2141,8 +2255,8 @@ Script_stringtotext: ; 0x9777d
ld a, [ScriptBank] ld a, [ScriptBank]
ld hl, $30d6 ld hl, $30d6
rst $8 rst $8
ld de, $d086 ld de, StringBuffer2
jp $76c0 jp Unknown_976c0
; 0x97792 ; 0x97792
Script_givepokeitem: ; 0x97792 Script_givepokeitem: ; 0x97792
@ -2719,7 +2833,7 @@ Script_warp: ; 0x97a1d
ld [$ff9f], a ld [$ff9f], a
ld a, $1 ld a, $1
call $261b call $261b
call Unknown_0x96e11 call StopScript
ret ret
.asm_97a4a .asm_97a4a
call GetScriptByte call GetScriptByte
@ -2731,7 +2845,7 @@ Script_warp: ; 0x97a1d
ld [$ff9f], a ld [$ff9f], a
ld a, $1 ld a, $1
call $261b call $261b
call Unknown_0x96e11 call StopScript
ret ret
; 0x97a65 ; 0x97a65
@ -2884,7 +2998,7 @@ Script_newloadmap: ; 0x97b08
ld [$ff9f], a ld [$ff9f], a
ld a, $1 ld a, $1
call $261b call $261b
call Unknown_0x96e11 call StopScript
ret ret
; 0x97b16 ; 0x97b16
@ -2892,7 +3006,7 @@ Script_reloadandreturn: ; 0x97b16
; script command 0x92 ; script command 0x92
call $7b08 call $7b08
jp $7b74 jp Script_end
; 0x97b1c ; 0x97b1c
Script_loadfont: ; 0x97b1c Script_loadfont: ; 0x97b1c
@ -2922,7 +3036,10 @@ Script_loadbytec1ce: ; 0x97b27
ret ret
; 0x97b2e ; 0x97b2e
INCBIN "baserom.gbc",$97b2e,$97b2f - $97b2e
LoadMoveSpritesScript: ; 97b2e
loadmovesprites
; 97b2f
Script_loadmovesprites: ; 0x97b2f Script_loadmovesprites: ; 0x97b2f
; script command 0x49 ; script command 0x49
@ -2932,6 +3049,7 @@ Script_loadmovesprites: ; 0x97b2f
ret ret
; 0x97b36 ; 0x97b36
Script_passtoengine: ; 0x97b36 Script_passtoengine: ; 0x97b36
; script command 0x89 ; script command 0x89
; parameters: ; parameters:
@ -2956,11 +3074,11 @@ Script_pause: ; 0x97b47
call GetScriptByte call GetScriptByte
and a and a
jr z, .asm_97b50 ; 0x97b4b $3 jr z, .asm_97b50 ; 0x97b4b $3
ld [$d44d], a ld [ScriptDelay], a
.asm_97b50 .asm_97b50
ld c, $2 ld c, 2
call DelayFrames call DelayFrames
ld hl, $d44d ld hl, ScriptDelay
dec [hl] dec [hl]
jr nz, .asm_97b50 ; 0x97b59 $f5 jr nz, .asm_97b50 ; 0x97b59 $f5
ret ret
@ -2974,11 +3092,11 @@ Script_deactivatefacing: ; 0x97b5c
call GetScriptByte call GetScriptByte
and a and a
jr z, .asm_97b65 ; 0x97b60 $3 jr z, .asm_97b65 ; 0x97b60 $3
ld [$d44d], a ld [ScriptDelay], a
.asm_97b65 .asm_97b65
ld a, $3 ld a, SCRIPT_WAIT
ld [$d437], a ld [ScriptMode], a
call Unknown_0x96e11 call StopScript
ret ret
; 0x97b6e ; 0x97b6e
@ -2987,40 +3105,42 @@ Script_ptpriorityjump: ; 0x97b6e
; parameters: ; parameters:
; pointer (ScriptPointerLabelParam) ; pointer (ScriptPointerLabelParam)
call Unknown_0x96e11 call StopScript
jp Script_2jump jp Script_2jump
; 0x97b74 ; 0x97b74
Script_end: ; 0x97b74 Script_end: ; 0x97b74
; script command 0x91 ; script command 0x91
call $7b9a call ExitScriptSubroutine
jr c, .asm_97b7a ; 0x97b77 $1 jr c, .asm_97b7a
ret ret
.asm_97b7a .asm_97b7a
xor a xor a
ld [$d438], a ld [ScriptRunning], a
ld a, $0 ld a, SCRIPT_OFF
ld [$d437], a ld [ScriptMode], a
ld hl, $d434 ld hl, ScriptFlags
res 0, [hl] res 0, [hl]
call Unknown_0x96e11 call StopScript
ret ret
; 0x97b8c ; 0x97b8c
Script_return: ; 0x97b8c Script_return: ; 0x97b8c
; script command 0x90 ; script command 0x90
call $7b9a call ExitScriptSubroutine
jr c, .asm_97b91 ; 0x97b8f $0 jr c, .asm_97b91
.asm_97b91 .asm_97b91
ld hl, $d434 ld hl, ScriptFlags
res 0, [hl] res 0, [hl]
call Unknown_0x96e11 call StopScript
ret ret
; 0x97b9a ; 0x97b9a
Unknown_0x97b9a: ; 0x97b9a ExitScriptSubroutine: ; 0x97b9a
; Return carry if there's no parent to return to.
ld hl, $d43c ld hl, $d43c
ld a, [hl] ld a, [hl]
and a and a
@ -3054,12 +3174,12 @@ Script_resetfuncs: ; 0x97bc0
xor a xor a
ld [$d43c], a ld [$d43c], a
ld [$d438], a ld [ScriptRunning], a
ld a, $0 ld a, SCRIPT_OFF
ld [$d437], a ld [ScriptMode], a
ld hl, $d434 ld hl, ScriptFlags
res 0, [hl] res 0, [hl]
call Unknown_0x96e11 call StopScript
ret ret
; 0x97bd5 ; 0x97bd5
@ -3068,15 +3188,9 @@ Script_halloffame: ; 0x97bd5
ld hl, $cfbc ld hl, $cfbc
res 0, [hl] res 0, [hl]
ld a, BANK(HallOfFame1) callba HallOfFame1
ld hl, HallOfFame1 callba HallOfFame2
rst $8 callba HallOfFame3
ld a, BANK(HallOfFame2)
ld hl, HallOfFame2
rst $8
ld a, BANK(HallOfFame3)
ld hl, HallOfFame3
rst $8
ld hl, $cfbc ld hl, $cfbc
set 0, [hl] set 0, [hl]
jr DisplayCredits jr DisplayCredits
@ -3093,7 +3207,7 @@ DisplayCredits:
call $7bc0 call $7bc0
ld a, $3 ld a, $3
call $261b call $261b
call Unknown_0x96e11 call StopScript
ret ret
; 0x97c05 ; 0x97c05
@ -3106,7 +3220,7 @@ Script_unknown0xa8: ; 0x97c05
call GetScriptByte call GetScriptByte
.asm_97c09 .asm_97c09
push af push af
ld c, $6 ld c, 6
call DelayFrames call DelayFrames
pop af pop af
dec a dec a
@ -3125,3 +3239,4 @@ Script_unknown0xa9: ; 0x97c15
ld [$c2dd], a ld [$c2dd], a
ret ret
; 0x97c20 ; 0x97c20

View File

@ -98,6 +98,7 @@ chars = {
0xE9: "&", 0xE9: "&",
0xEA: "é", 0xEA: "é",
0xEB: "", 0xEB: "",
0xEC: "",
0xED: "", 0xED: "",
0xEE: "", 0xEE: "",
0xEF: "", 0xEF: "",

View File

@ -1989,6 +1989,7 @@ movement_command_bases = {
0x3A: "remove_fixed_facing", 0x3A: "remove_fixed_facing",
0x3B: "fix_facing", 0x3B: "fix_facing",
0x3D: "hide_person", 0x3D: "hide_person",
0x3E: "show_person",
0x45: "accelerate_last", 0x45: "accelerate_last",
0x46: ["step_sleep", ["duration", DecimalParam]], 0x46: ["step_sleep", ["duration", DecimalParam]],
0x47: "step_end", 0x47: "step_end",
@ -2000,6 +2001,8 @@ movement_command_bases = {
0x4E: "skyfall", 0x4E: "skyfall",
0x4F: "step_wait5", 0x4F: "step_wait5",
0x53: "hide_emote",
0x54: "show_emote",
0x55: ["step_shake", ["displacement", DecimalParam]], 0x55: ["step_shake", ["displacement", DecimalParam]],
} }

View File

@ -448,7 +448,7 @@ ParkBall: ; e8a2
xor a xor a
ld [CurPartyMon], a ld [CurPartyMon], a
ld a, $2 ld a, BOXMON
ld [MonType], a ld [MonType], a
ld de, $d050 ld de, $d050
ld b, $0 ld b, $0
@ -775,7 +775,7 @@ Function_0xed12: ; ed12
push de push de
ld a, [TempEnemyMonSpecies] ld a, [TempEnemyMonSpecies]
ld [CurPartySpecies], a ld [CurPartySpecies], a
ld a, $4 ld a, WILDMON
ld [MonType], a ld [MonType], a
ld a, $14 ld a, $14
ld hl, $4bdd ld hl, $4bdd

2447
main.asm

File diff suppressed because it is too large Load Diff

View File

@ -286,6 +286,7 @@ chars = {
"&": 0xE9, "&": 0xE9,
"é": 0xEA, "é": 0xEA,
"": 0xEB, "": 0xEB,
"": 0xEC,
"": 0xED, "": 0xED,
"": 0xEE, "": 0xEE,
"": 0xEF, "": 0xEF,

137
wram.asm
View File

@ -10,12 +10,14 @@ SECTION "bgmap1",VRAM[$9C00]
VBGMap1: VBGMap1:
; So far, WRAM banks 0 and 1 are included in this file. ; WRAM banks 0 and 1 are included as BSS labels.
; Any bank 2-7 labels are in constants.asm. ; Other WRAM banks (2-7) are constants for now.
SECTION "WRAMBank0",BSS[$c000]
SECTION "stack",BSS[$c000] SECTION "stack",BSS[$c000]
ds 256 ds $100
Stack: ; c100 Stack: ; c100
@ -65,10 +67,7 @@ Channel1MusicAddress: ; c107
Channel1LastMusicAddress: ; c109 Channel1LastMusicAddress: ; c109
ds 2 ds 2
; could have been meant as a third-level address ; could have been meant as a third-level address
; unused? ; c10b ds 2
ds 1
; unused? ; c10c
ds 1
Channel1NoteFlags: ; c10d Channel1NoteFlags: ; c10d
; 0: ; 0:
; 1: ; 1:
@ -312,8 +311,7 @@ CurMusic: ; c2c0
SECTION "auto",BSS[$c2c7] SECTION "auto",BSS[$c2c7]
InputType: ; c2c7 InputType: ; c2c7
; 00 normal AUTO_INPUT EQU $ff
; ff auto
ds 1 ds 1
AutoInputAddress: ; c2c8 AutoInputAddress: ; c2c8
ds 2 ds 2
@ -824,11 +822,10 @@ AttrMap: ; cdd9
ds 30 ds 30
MonType: ; cf5f MonType: ; cf5f
; 0 partymon PARTYMON EQU 0
; 1 otpartymon OTPARTYMON EQU 1
; 2 boxmon BOXMON EQU 2
; 3 ????mon WILDMON EQU 4
; 4 wildmon
ds 1 ds 1
CurSpecies: ; cf60 CurSpecies: ; cf60
@ -839,7 +836,7 @@ CurSpecies: ; cf60
MenuSelection:; cf74 MenuSelection:; cf74
ds 1 ds 1
ds $cf82-$cf74 ds 14
TileY: ; cf82 TileY: ; cf82
ds 1 ds 1
@ -907,7 +904,9 @@ Options2: ; cfd1
ds 46 ds 46
; d000
SECTION "WRAMBank1",BSS[$d000]
ds 2 ds 2
DefaultFlypoint: ; d002 DefaultFlypoint: ; d002
@ -937,10 +936,23 @@ CurFruit: ; d03f
MovementAnimation: ; d042 MovementAnimation: ; d042
ds 1 ds 1
WalkingDirection: ; d043 WalkingDirection: ; d043
STANDING EQU -1
DOWN EQU 0
UP EQU 1
LEFT EQU 2
RIGHT EQU 3
ds 1 ds 1
FacingDirection: ; d044 FacingDirection: ; d044
FACE_CURRENT EQU 0
FACE_DOWN EQU 8
FACE_UP EQU 4
FACE_LEFT EQU 2
FACE_RIGHT EQU 1
ds 1 ds 1
WalkingX: ; d045 WalkingX: ; d045
ds 1 ds 1
WalkingY: ; d046 WalkingY: ; d046
@ -1058,13 +1070,12 @@ TempMonSpclAtk: ; d13a
ds 2 ds 2
TempMonSpclDef: ; d13c TempMonSpclDef: ; d13c
ds 2 ds 2
TempMonEnd: ; d13e TempMonEnd ; d13e
ds 3 ds 3
PartyMenuActionText ; d141 PartyMenuActionText: ; d141
ds 1 ds 1
ds 1 ds 1
CurPartyLevel: ; d143 CurPartyLevel: ; d143
@ -1379,10 +1390,10 @@ CurDamage: ; d256
SECTION "TimeOfDay",BSS[$d269] SECTION "TimeOfDay",BSS[$d269]
TimeOfDay: ; d269 TimeOfDay: ; d269
; 0 morn MORN EQU 0
; 1 day DAY EQU 1
; 2 nite NITE EQU 2
; 3 darkness DARKNESS EQU 3
ds 1 ds 1
SECTION "OTParty",BSS[$d280] SECTION "OTParty",BSS[$d280]
@ -1515,13 +1526,31 @@ OTPartyMon5Nickname: ; d416
OTPartyMon6Nickname: ; d421 OTPartyMon6Nickname: ; d421
ds 11 ds 11
SECTION "Scripting",BSS[$d439] SECTION "Scripting",BSS[$d434]
ScriptFlags: ; d434
SCRIPT_RUNNING EQU 2
ds 1
ds 2
ScriptMode: ; d437
SCRIPT_OFF EQU 0
SCRIPT_READ EQU 1
SCRIPT_WAIT_MOVEMENT EQU 2
SCRIPT_WAIT EQU 3
ds 1
ScriptRunning: ; d438
ds 1
ScriptBank: ; d439 ScriptBank: ; d439
ds 1 ds 1
ScriptPos: ; d43a ScriptPos: ; d43a
ds 2 ds 2
ds 17
ScriptDelay: ; d44d
ds 1
SECTION "Player",BSS[$d472] SECTION "Player",BSS[$d472]
PlayerGender: ; d472 PlayerGender: ; d472
; bit 0: ; bit 0:
@ -1569,6 +1598,13 @@ GameTimeFrames: ; d4c8
ds 2 ds 2
CurDay: ; d4cb CurDay: ; d4cb
SUNDAY EQU 0
MONDAY EQU 1
TUESDAY EQU 2
WEDNESDAY EQU 3
THURSDAY EQU 4
FRIDAY EQU 5
SATURDAY EQU 6
ds 1 ds 1
ds 12 ds 12
@ -1612,6 +1648,16 @@ PlayerSpriteY: ; d4ee
ds 1 ds 1
SECTION "Objects",BSS[$d71e]
MapObjects: ; d71e
PLAYER_OBJECT EQU 0
NUM_OBJECTS EQU $10
OBJECT_LENGTH EQU $10
ds OBJECT_LENGTH * NUM_OBJECTS
SECTION "Status",BSS[$d841] SECTION "Status",BSS[$d841]
TimeOfDayPal: ; d841 TimeOfDayPal: ; d841
ds 1 ds 1
@ -1622,7 +1668,12 @@ TimeOfDayPal: ; d841
CurTimeOfDay: ; d848 CurTimeOfDay: ; d848
ds 1 ds 1
ds 5 ds 3
StatusFlags: ; d84c
ds 1
StatusFlags2: ; d84d
ds 1
Money: ; d84e Money: ; d84e
ds 3 ds 3
@ -1642,24 +1693,32 @@ TMsHMs: ; d859
NumItems: ; d892 NumItems: ; d892
ds 1 ds 1
Items: ; d893 Items: ; d893
ds 69 ds 41
NumKeyItems: ; d8bc NumKeyItems: ; d8bc
ds 1 ds 1
KeyItems: ; d8bd KeyItems: ; d8bd
ds 13 ds 26
NumBalls: ; d8d7 NumBalls: ; d8d7
ds 1 ds 1
Balls: ; d8d8 Balls: ; d8d8
ds 25 ds 25
SECTION "overworld",BSS[$d95d] SECTION "overworld",BSS[$d95b]
WhichRegisteredItem: ; d95b
REGISTERED_POCKET EQU %11000000
REGISTERED_NUMBER EQU %00111111
ds 1
RegisteredItem: ; d95c
ds 1
PlayerState: ; d95d PlayerState: ; d95d
; $00: normal PLAYER_NORMAL EQU 0
; $01: bicycle PLAYER_BIKE EQU 1
; $04: surf PLAYER_SLIP EQU 2
; $08: surf (pikachu) PLAYER_SURF EQU 4
PLAYER_SURF_PIKA EQU 8
ds 1 ds 1
SECTION "scriptram",BSS[$d962] SECTION "scriptram",BSS[$d962]
@ -2001,3 +2060,17 @@ RoamMon3CurHP: ; dfe1
ds 1 ds 1
RoamMon3DVs: ; dfe2 RoamMon3DVs: ; dfe2
ds 2 ds 2
; SECTION "WRAMBank5",BSS[$d000]
; 8 4-color palettes
Unkn1Pals EQU $d000
Unkn2Pals EQU $d040
BGPals EQU $d080
OBPals EQU $d0c0