mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-11-16 11:27:33 -08:00
A stab at audio engine.
This commit is contained in:
parent
6eac26732a
commit
02d05255fe
540
audio/engine.asm
540
audio/engine.asm
File diff suppressed because it is too large
Load Diff
@ -13,13 +13,13 @@ Music_Evolution_Ch1: ; f06ed
|
|||||||
dutycycle $2
|
dutycycle $2
|
||||||
notetype $c, $92
|
notetype $c, $92
|
||||||
octave 3
|
octave 3
|
||||||
unknownmusic0xe0 $0, $4a
|
unknownmusic0xe0 $0, 4, A_
|
||||||
note C_, 1
|
note C_, 1
|
||||||
unknownmusic0xe0 $0, $4a
|
unknownmusic0xe0 $0, 4, A_
|
||||||
note G_, 1
|
note G_, 1
|
||||||
unknownmusic0xe0 $0, $4a
|
unknownmusic0xe0 $0, 4, A_
|
||||||
note C_, 1
|
note C_, 1
|
||||||
unknownmusic0xe0 $0, $4a
|
unknownmusic0xe0 $0, 4, A_
|
||||||
note G_, 1
|
note G_, 1
|
||||||
note __, 4
|
note __, 4
|
||||||
dutycycle $3
|
dutycycle $3
|
||||||
|
@ -11,16 +11,16 @@ Music_HealPokemon_Ch1: ; f06a0
|
|||||||
tone $0001
|
tone $0001
|
||||||
notetype $c, $81
|
notetype $c, $81
|
||||||
note __, 2
|
note __, 2
|
||||||
unknownmusic0xe0 $0, $40
|
unknownmusic0xe0 $0, 4, __
|
||||||
note B_, 2
|
note B_, 2
|
||||||
unknownmusic0xe0 $0, $55
|
unknownmusic0xe0 $0, 5, E_
|
||||||
note B_, 2
|
note B_, 2
|
||||||
unknownmusic0xe0 $0, $45
|
unknownmusic0xe0 $0, 4, E_
|
||||||
note E_, 2
|
note E_, 2
|
||||||
note __, 4
|
note __, 4
|
||||||
unknownmusic0xe0 $0, $30
|
unknownmusic0xe0 $0, 3, __
|
||||||
note E_, 4
|
note E_, 4
|
||||||
unknownmusic0xe0 $0, $40
|
unknownmusic0xe0 $0, 4, __
|
||||||
note B_, 4
|
note B_, 4
|
||||||
endchannel
|
endchannel
|
||||||
; f06c4
|
; f06c4
|
||||||
|
@ -702,22 +702,23 @@ Function104ddd: ; 104ddd (41:4ddd)
|
|||||||
ld e, d
|
ld e, d
|
||||||
ld a, $1
|
ld a, $1
|
||||||
ld [hPrintNum9], a
|
ld [hPrintNum9], a
|
||||||
.asm_104de4
|
.loop
|
||||||
call Function105038
|
call Function105038
|
||||||
ld b, $2
|
ld b, $2
|
||||||
ld c, rRP % $100
|
ld c, rRP % $100
|
||||||
ld a, [hMoneyTemp + 1]
|
ld a, [hMoneyTemp + 1]
|
||||||
bit 1, a
|
bit 1, a
|
||||||
jr z, .asm_104df6
|
jr z, .next
|
||||||
ld a, $10
|
ld a, $10
|
||||||
ld [hPrintNum10], a
|
ld [hPrintNum10], a
|
||||||
ret
|
ret
|
||||||
.asm_104df6
|
|
||||||
|
.next
|
||||||
bit 0, a
|
bit 0, a
|
||||||
jr nz, asm_104e3a
|
jr nz, asm_104e3a
|
||||||
ld a, [$ff00+c]
|
ld a, [$ff00+c]
|
||||||
and b
|
and b
|
||||||
jr nz, .asm_104de4
|
jr nz, .loop
|
||||||
|
|
||||||
Function104dfe: ; 104dfe (41:4dfe)
|
Function104dfe: ; 104dfe (41:4dfe)
|
||||||
ld c, rRP % $100
|
ld c, rRP % $100
|
||||||
@ -1181,11 +1182,11 @@ RestoreMysteryGift: ; 1050ea (41:50ea)
|
|||||||
Function1050fb: ; 1050fb (41:50fb)
|
Function1050fb: ; 1050fb (41:50fb)
|
||||||
ld hl, wMysteryGiftTrainerData
|
ld hl, wMysteryGiftTrainerData
|
||||||
xor a
|
xor a
|
||||||
ld b, $26
|
ld b, wMysteryGiftTrainerDataEnd - wMysteryGiftTrainerData
|
||||||
.asm_105101
|
.loop
|
||||||
ld [hli], a
|
ld [hli], a
|
||||||
dec b
|
dec b
|
||||||
jr nz, .asm_105101
|
jr nz, .loop
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
229
engine/mysterygift2.asm
Executable file
229
engine/mysterygift2.asm
Executable file
@ -0,0 +1,229 @@
|
|||||||
|
Function2c642: ; 2c642 (b:4642)
|
||||||
|
ld de, wc800
|
||||||
|
ld a, $1
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
ld a, BANK(sGameData)
|
||||||
|
call GetSRAMBank
|
||||||
|
ld hl, sPlayerData + PlayerID - wPlayerData
|
||||||
|
ld a, [hli]
|
||||||
|
ld [de], a
|
||||||
|
ld b, a
|
||||||
|
inc de
|
||||||
|
ld a, [hl]
|
||||||
|
ld [de], a
|
||||||
|
ld c, a
|
||||||
|
inc de
|
||||||
|
push bc
|
||||||
|
ld hl, sPlayerData + PlayerName - wPlayerData
|
||||||
|
ld bc, NAME_LENGTH
|
||||||
|
call CopyBytes
|
||||||
|
push de
|
||||||
|
ld hl, sPokemonData + PokedexCaught - wPokemonData
|
||||||
|
ld b, (NUM_POKEMON + 7) / 8
|
||||||
|
call CountSetBits
|
||||||
|
pop de
|
||||||
|
pop bc
|
||||||
|
ld a, [wd265]
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
call CloseSRAM
|
||||||
|
call Random
|
||||||
|
and $1
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
call Function2c6ac
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
ld a, c
|
||||||
|
ld c, b
|
||||||
|
ld b, a
|
||||||
|
call Function2c6ac
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
ld a, BANK(sBackupMysteryGiftItem)
|
||||||
|
call GetSRAMBank
|
||||||
|
ld a, [sBackupMysteryGiftItem]
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
ld a, [sBackupMysteryGiftItem + 1]
|
||||||
|
ld [de], a
|
||||||
|
ld a, $14
|
||||||
|
ld [wca00], a
|
||||||
|
call CloseSRAM
|
||||||
|
ld hl, wc800
|
||||||
|
ld de, wc950
|
||||||
|
ld bc, $14
|
||||||
|
jp CopyBytes
|
||||||
|
|
||||||
|
Function2c6ac: ; 2c6ac (b:46ac)
|
||||||
|
push de
|
||||||
|
call Random
|
||||||
|
cp $19 ; 10 percent
|
||||||
|
jr c, .tenpercent
|
||||||
|
call Random
|
||||||
|
and $7
|
||||||
|
ld d, a
|
||||||
|
rl d
|
||||||
|
ld e, $80
|
||||||
|
.loop
|
||||||
|
rlc e
|
||||||
|
dec a
|
||||||
|
jr nz, .loop
|
||||||
|
ld a, e
|
||||||
|
and c
|
||||||
|
jr z, .skip
|
||||||
|
ld a, $1
|
||||||
|
.skip
|
||||||
|
add d
|
||||||
|
jr .done
|
||||||
|
|
||||||
|
.tenpercent
|
||||||
|
call Random
|
||||||
|
cp $32 ; 20 percent
|
||||||
|
jr c, .twopercent
|
||||||
|
call Random
|
||||||
|
and $3
|
||||||
|
ld d, a
|
||||||
|
rl d
|
||||||
|
ld e, $80
|
||||||
|
.loop2
|
||||||
|
rlc e
|
||||||
|
dec a
|
||||||
|
jr nz, .loop2
|
||||||
|
ld a, e
|
||||||
|
and b
|
||||||
|
jr z, .skip2
|
||||||
|
ld a, $1
|
||||||
|
.skip2
|
||||||
|
add d
|
||||||
|
add $10
|
||||||
|
jr .done
|
||||||
|
|
||||||
|
.twopercent
|
||||||
|
call Random
|
||||||
|
cp $32 ; 50 ; 20 percent
|
||||||
|
jr c, .pointfourpercent
|
||||||
|
ld a, b
|
||||||
|
swap a
|
||||||
|
and $7
|
||||||
|
add $18
|
||||||
|
jr .done
|
||||||
|
|
||||||
|
.pointfourpercent
|
||||||
|
ld a, b
|
||||||
|
and $80
|
||||||
|
ld a, $20
|
||||||
|
jr z, .done
|
||||||
|
ld a, $21
|
||||||
|
|
||||||
|
.done
|
||||||
|
pop de
|
||||||
|
ret
|
||||||
|
|
||||||
|
MysteryGiftGetItemHeldEffect: ; 2c708 (b:4708)
|
||||||
|
ld a, c
|
||||||
|
cp $25 ; 37
|
||||||
|
jr nc, Function2c722
|
||||||
|
ld hl, Unknown_2c725
|
||||||
|
ld b, 0
|
||||||
|
add hl, bc
|
||||||
|
ld c, [hl]
|
||||||
|
ret
|
||||||
|
|
||||||
|
MysteryGiftGetDecoration: ; 2c715 (b:4715)
|
||||||
|
ld a, c
|
||||||
|
cp $25 ; 37
|
||||||
|
jr nc, Function2c722
|
||||||
|
ld hl, Unknown_2c74a
|
||||||
|
ld b, 0
|
||||||
|
add hl, bc
|
||||||
|
ld c, [hl]
|
||||||
|
ret
|
||||||
|
|
||||||
|
Function2c722: ; 2c722 (b:4722)
|
||||||
|
ld c, DECO_POLKADOT_BED ; GREAT_BALL
|
||||||
|
ret
|
||||||
|
; 2c725 (b:4725)
|
||||||
|
|
||||||
|
Unknown_2c725: ; 2c725
|
||||||
|
; May or may not be items.
|
||||||
|
db BERRY
|
||||||
|
db PRZCUREBERRY
|
||||||
|
db MINT_BERRY
|
||||||
|
db ICE_BERRY
|
||||||
|
db BURNT_BERRY
|
||||||
|
db PSNCUREBERRY
|
||||||
|
db GUARD_SPEC
|
||||||
|
db X_DEFEND
|
||||||
|
db X_ATTACK
|
||||||
|
db BITTER_BERRY
|
||||||
|
db DIRE_HIT
|
||||||
|
db X_SPECIAL
|
||||||
|
db X_ACCURACY
|
||||||
|
db EON_MAIL
|
||||||
|
db MORPH_MAIL
|
||||||
|
db MUSIC_MAIL
|
||||||
|
db MIRACLEBERRY
|
||||||
|
db GOLD_BERRY
|
||||||
|
db REVIVE
|
||||||
|
db GREAT_BALL
|
||||||
|
db SUPER_REPEL
|
||||||
|
db MAX_REPEL
|
||||||
|
db ELIXER
|
||||||
|
db ETHER
|
||||||
|
db WATER_STONE
|
||||||
|
db FIRE_STONE
|
||||||
|
db LEAF_STONE
|
||||||
|
db THUNDERSTONE
|
||||||
|
db MAX_ETHER
|
||||||
|
db MAX_ELIXER
|
||||||
|
db MAX_REVIVE
|
||||||
|
db SCOPE_LENS
|
||||||
|
db HP_UP
|
||||||
|
db PP_UP
|
||||||
|
db RARE_CANDY
|
||||||
|
db BLUESKY_MAIL
|
||||||
|
db MIRAGE_MAIL
|
||||||
|
; 2c74a
|
||||||
|
|
||||||
|
Unknown_2c74a: ; 2c74a
|
||||||
|
; May or may not be items.
|
||||||
|
db DECO_SNES
|
||||||
|
db DECO_BIG_SNORLAX_DOLL
|
||||||
|
db DECO_BIG_ONIX_DOLL
|
||||||
|
db DECO_BIG_LAPRAS_DOLL
|
||||||
|
db DECO_DOLLS
|
||||||
|
db DECO_PIKACHU_DOLL
|
||||||
|
db DECO_SURF_PIKACHU_DOLL
|
||||||
|
db DECO_CLEFAIRY_DOLL
|
||||||
|
db DECO_JIGGLYPUFF_DOLL
|
||||||
|
db DECO_BULBASAUR_DOLL
|
||||||
|
db DECO_TROPICPLANT
|
||||||
|
db DECO_JUMBOPLANT
|
||||||
|
db DECO_TOWN_MAP
|
||||||
|
db DECO_CHARMANDER_DOLL
|
||||||
|
db DECO_POLIWAG_DOLL
|
||||||
|
db DECO_DIGLETT_DOLL
|
||||||
|
db DECO_BLUE_CARPET
|
||||||
|
db DECO_YELLOW_CARPET
|
||||||
|
db DECO_POSTERS
|
||||||
|
db DECO_PIKACHU_POSTER
|
||||||
|
db DECO_N64
|
||||||
|
db DECO_BIG_DOLLS
|
||||||
|
db DECO_BEDS
|
||||||
|
db DECO_FEATHERY_BED
|
||||||
|
db DECO_POLKADOT_BED
|
||||||
|
db DECO_PIKACHU_BED
|
||||||
|
db DECO_CARPETS
|
||||||
|
db DECO_RED_CARPET
|
||||||
|
db DECO_GREEN_CARPET
|
||||||
|
db DECO_CLEFAIRY_POSTER
|
||||||
|
db DECO_ODDISH_DOLL
|
||||||
|
db DECO_MAGNAPLANT
|
||||||
|
db DECO_GENGAR_DOLL
|
||||||
|
db DECO_CONSOLES
|
||||||
|
db DECO_PINK_BED
|
||||||
|
db DECO_SQUIRTLE_DOLL
|
||||||
|
db DECO_STARMIE_DOLL
|
||||||
|
; 2c76f
|
276
engine/search.asm
Executable file
276
engine/search.asm
Executable file
@ -0,0 +1,276 @@
|
|||||||
|
SpecialBeastsCheck: ; 0x4a6e8
|
||||||
|
; Check if the player owns all three legendary beasts.
|
||||||
|
; They must exist in either party or PC, and have the player's OT and ID.
|
||||||
|
; Return the result in ScriptVar.
|
||||||
|
|
||||||
|
ld a, RAIKOU
|
||||||
|
ld [ScriptVar], a
|
||||||
|
call CheckOwnMonAnywhere
|
||||||
|
jr nc, .notexist
|
||||||
|
|
||||||
|
ld a, ENTEI
|
||||||
|
ld [ScriptVar], a
|
||||||
|
call CheckOwnMonAnywhere
|
||||||
|
jr nc, .notexist
|
||||||
|
|
||||||
|
ld a, SUICUNE
|
||||||
|
ld [ScriptVar], a
|
||||||
|
call CheckOwnMonAnywhere
|
||||||
|
jr nc, .notexist
|
||||||
|
|
||||||
|
; they exist
|
||||||
|
ld a, 1
|
||||||
|
ld [ScriptVar], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.notexist
|
||||||
|
xor a
|
||||||
|
ld [ScriptVar], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
SpecialMonCheck: ; 0x4a711
|
||||||
|
; Check if the player owns any monsters of the species in ScriptVar.
|
||||||
|
; Return the result in ScriptVar.
|
||||||
|
|
||||||
|
call CheckOwnMonAnywhere
|
||||||
|
jr c, .exists
|
||||||
|
|
||||||
|
; doesn't exist
|
||||||
|
xor a
|
||||||
|
ld [ScriptVar], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.exists
|
||||||
|
ld a, 1
|
||||||
|
ld [ScriptVar], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
CheckOwnMonAnywhere: ; 0x4a721
|
||||||
|
; Check if the player owns any monsters of the species in ScriptVar.
|
||||||
|
; It must exist in either party or PC, and have the player's OT and ID.
|
||||||
|
|
||||||
|
; If there are no monsters in the party,
|
||||||
|
; the player must not own any yet.
|
||||||
|
ld a, [PartyCount]
|
||||||
|
and a
|
||||||
|
ret z
|
||||||
|
|
||||||
|
ld d, a
|
||||||
|
ld e, 0
|
||||||
|
ld hl, PartyMon1Species
|
||||||
|
ld bc, PartyMonOT
|
||||||
|
|
||||||
|
; Run CheckOwnMon on each Pokémon in the party.
|
||||||
|
.partymon
|
||||||
|
call CheckOwnMon
|
||||||
|
ret c ; found!
|
||||||
|
|
||||||
|
push bc
|
||||||
|
ld bc, PARTYMON_STRUCT_LENGTH
|
||||||
|
add hl, bc
|
||||||
|
pop bc
|
||||||
|
call UpdateOTPointer
|
||||||
|
dec d
|
||||||
|
jr nz, .partymon
|
||||||
|
|
||||||
|
; Run CheckOwnMon on each Pokémon in the PC.
|
||||||
|
ld a, BANK(sBoxCount)
|
||||||
|
call GetSRAMBank
|
||||||
|
ld a, [sBoxCount]
|
||||||
|
and a
|
||||||
|
jr z, .boxes
|
||||||
|
|
||||||
|
ld d, a
|
||||||
|
ld hl, sBoxMon1Species
|
||||||
|
ld bc, sBoxMonOT
|
||||||
|
.openboxmon
|
||||||
|
call CheckOwnMon
|
||||||
|
jr nc, .loop
|
||||||
|
|
||||||
|
; found!
|
||||||
|
call CloseSRAM
|
||||||
|
ret
|
||||||
|
|
||||||
|
.loop
|
||||||
|
push bc
|
||||||
|
ld bc, BOXMON_STRUCT_LENGTH
|
||||||
|
add hl, bc
|
||||||
|
pop bc
|
||||||
|
call UpdateOTPointer
|
||||||
|
dec d
|
||||||
|
jr nz, .openboxmon
|
||||||
|
|
||||||
|
; Run CheckOwnMon on each monster in the other 13 PC boxes.
|
||||||
|
.boxes
|
||||||
|
call CloseSRAM
|
||||||
|
|
||||||
|
ld c, 0
|
||||||
|
.box
|
||||||
|
; Don't search the current box again.
|
||||||
|
ld a, [wCurBox]
|
||||||
|
and $f
|
||||||
|
cp c
|
||||||
|
jr z, .loopbox
|
||||||
|
|
||||||
|
; Load the box.
|
||||||
|
ld hl, BoxAddressTable1
|
||||||
|
ld b, 0
|
||||||
|
rept 3
|
||||||
|
add hl, bc
|
||||||
|
endr
|
||||||
|
ld a, [hli]
|
||||||
|
call GetSRAMBank
|
||||||
|
ld a, [hli]
|
||||||
|
ld h, [hl]
|
||||||
|
ld l, a
|
||||||
|
|
||||||
|
; Number of monsters in the box
|
||||||
|
ld a, [hl]
|
||||||
|
and a
|
||||||
|
jr z, .loopbox
|
||||||
|
|
||||||
|
push bc
|
||||||
|
|
||||||
|
push hl
|
||||||
|
ld de, sBoxMons - sBoxCount
|
||||||
|
add hl, de
|
||||||
|
ld d, h
|
||||||
|
ld e, l
|
||||||
|
pop hl
|
||||||
|
push de
|
||||||
|
ld de, sBoxMonOT - sBoxCount
|
||||||
|
add hl, de
|
||||||
|
ld b, h
|
||||||
|
ld c, l
|
||||||
|
pop hl
|
||||||
|
|
||||||
|
ld d, a
|
||||||
|
|
||||||
|
.boxmon
|
||||||
|
call CheckOwnMon
|
||||||
|
jr nc, .loopboxmon
|
||||||
|
|
||||||
|
; found!
|
||||||
|
pop bc
|
||||||
|
call CloseSRAM
|
||||||
|
ret
|
||||||
|
|
||||||
|
.loopboxmon
|
||||||
|
push bc
|
||||||
|
ld bc, BOXMON_STRUCT_LENGTH
|
||||||
|
add hl, bc
|
||||||
|
pop bc
|
||||||
|
call UpdateOTPointer
|
||||||
|
dec d
|
||||||
|
jr nz, .boxmon
|
||||||
|
pop bc
|
||||||
|
|
||||||
|
.loopbox
|
||||||
|
inc c
|
||||||
|
ld a, c
|
||||||
|
cp NUM_BOXES
|
||||||
|
jr c, .box
|
||||||
|
|
||||||
|
; not found
|
||||||
|
call CloseSRAM
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
CheckOwnMon: ; 0x4a7ba
|
||||||
|
; Check if a Pokémon belongs to the player and is of a specific species.
|
||||||
|
|
||||||
|
; inputs:
|
||||||
|
; hl, pointer to PartyMonNSpecies
|
||||||
|
; bc, pointer to PartyMonNOT
|
||||||
|
; ScriptVar should contain the species we're looking for
|
||||||
|
|
||||||
|
; outputs:
|
||||||
|
; sets carry if monster matches species, ID, and OT name.
|
||||||
|
|
||||||
|
push bc
|
||||||
|
push hl
|
||||||
|
push de
|
||||||
|
ld d, b
|
||||||
|
ld e, c
|
||||||
|
|
||||||
|
; check species
|
||||||
|
ld a, [ScriptVar] ; species we're looking for
|
||||||
|
ld b, [hl] ; species we have
|
||||||
|
cp b
|
||||||
|
jr nz, .notfound ; species doesn't match
|
||||||
|
|
||||||
|
; check ID number
|
||||||
|
ld bc, MON_ID
|
||||||
|
add hl, bc ; now hl points to ID number
|
||||||
|
ld a, [PlayerID]
|
||||||
|
cp [hl]
|
||||||
|
jr nz, .notfound ; ID doesn't match
|
||||||
|
inc hl
|
||||||
|
ld a, [PlayerID + 1]
|
||||||
|
cp [hl]
|
||||||
|
jr nz, .notfound ; ID doesn't match
|
||||||
|
|
||||||
|
; check OT
|
||||||
|
; This only checks five characters, which is fine for the Japanese version,
|
||||||
|
; but in the English version the player name is 7 characters, so this is wrong.
|
||||||
|
|
||||||
|
ld hl, PlayerName
|
||||||
|
|
||||||
|
rept 4
|
||||||
|
ld a, [de]
|
||||||
|
cp [hl]
|
||||||
|
jr nz, .notfound
|
||||||
|
cp "@"
|
||||||
|
jr z, .found ; reached end of string
|
||||||
|
inc hl
|
||||||
|
inc de
|
||||||
|
endr
|
||||||
|
|
||||||
|
ld a, [de]
|
||||||
|
cp [hl]
|
||||||
|
jr z, .found
|
||||||
|
|
||||||
|
.notfound
|
||||||
|
pop de
|
||||||
|
pop hl
|
||||||
|
pop bc
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.found
|
||||||
|
pop de
|
||||||
|
pop hl
|
||||||
|
pop bc
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
; 0x4a810
|
||||||
|
|
||||||
|
BoxAddressTable1: ; 4a810
|
||||||
|
dba sBox1
|
||||||
|
dba sBox2
|
||||||
|
dba sBox3
|
||||||
|
dba sBox4
|
||||||
|
dba sBox5
|
||||||
|
dba sBox6
|
||||||
|
dba sBox7
|
||||||
|
dba sBox8
|
||||||
|
dba sBox9
|
||||||
|
dba sBox10
|
||||||
|
dba sBox11
|
||||||
|
dba sBox12
|
||||||
|
dba sBox13
|
||||||
|
dba sBox14
|
||||||
|
; 4a83a
|
||||||
|
|
||||||
|
UpdateOTPointer: ; 0x4a83a
|
||||||
|
push hl
|
||||||
|
ld hl, NAME_LENGTH
|
||||||
|
add hl, bc
|
||||||
|
ld b, h
|
||||||
|
ld c, l
|
||||||
|
pop hl
|
||||||
|
ret
|
||||||
|
; 0x4a843
|
@ -16,9 +16,9 @@ endr
|
|||||||
|
|
||||||
.Jumptable: ; 8d25b (23:525b)
|
.Jumptable: ; 8d25b (23:525b)
|
||||||
dw .zero ; town map
|
dw .zero ; town map
|
||||||
dw .one ; bouncing mon icons
|
dw .one ; bouncing mon icon
|
||||||
dw .two
|
dw .two ; bouncing mon icon, selected
|
||||||
dw .three
|
dw .three ; bouncing mon icon, menu open
|
||||||
dw .four
|
dw .four
|
||||||
dw .five
|
dw .five
|
||||||
dw .six ; Game Freak logo
|
dw .six ; Game Freak logo
|
||||||
@ -46,7 +46,7 @@ endr
|
|||||||
dw .twentyeight
|
dw .twentyeight
|
||||||
dw .twentynine ; intro suicune
|
dw .twentynine ; intro suicune
|
||||||
dw .thirty ; intro pichu wooper
|
dw .thirty ; intro pichu wooper
|
||||||
dw .thirtyone
|
dw .thirtyone ; celebi
|
||||||
dw .thirtytwo ; intro unown
|
dw .thirtytwo ; intro unown
|
||||||
dw .thirtythree ; intro unown F with suicune leaping up
|
dw .thirtythree ; intro unown F with suicune leaping up
|
||||||
dw .thirtyfour ; intro suicune facing away from us
|
dw .thirtyfour ; intro suicune facing away from us
|
||||||
@ -65,7 +65,7 @@ endr
|
|||||||
|
|
||||||
ld hl, SPRITEANIMSTRUCT_XCOORD
|
ld hl, SPRITEANIMSTRUCT_XCOORD
|
||||||
add hl, bc
|
add hl, bc
|
||||||
ld [hl], $10
|
ld [hl], 8 * 2
|
||||||
|
|
||||||
ld hl, SPRITEANIMSTRUCT_YOFFSET
|
ld hl, SPRITEANIMSTRUCT_YOFFSET
|
||||||
add hl, bc
|
add hl, bc
|
||||||
@ -75,7 +75,7 @@ endr
|
|||||||
.two: ; 8d2b9 (23:52b9)
|
.two: ; 8d2b9 (23:52b9)
|
||||||
ld hl, SPRITEANIMSTRUCT_XCOORD
|
ld hl, SPRITEANIMSTRUCT_XCOORD
|
||||||
add hl, bc
|
add hl, bc
|
||||||
ld [hl], $18
|
ld [hl], 8 * 3
|
||||||
|
|
||||||
ld hl, SPRITEANIMSTRUCT_0C
|
ld hl, SPRITEANIMSTRUCT_0C
|
||||||
add hl, bc
|
add hl, bc
|
||||||
@ -93,24 +93,24 @@ endr
|
|||||||
add hl, bc
|
add hl, bc
|
||||||
ld a, d
|
ld a, d
|
||||||
and $10 ; bit 4
|
and $10 ; bit 4
|
||||||
jr z, .asm_8d2df
|
jr z, .load_zero
|
||||||
ld a, e
|
ld a, e
|
||||||
and a
|
and a
|
||||||
jr z, .asm_8d2e6
|
jr z, .load_minus_two
|
||||||
cp $1
|
cp $1
|
||||||
jr z, .asm_8d2e2
|
jr z, .load_minus_one
|
||||||
.asm_8d2df
|
.load_zero
|
||||||
xor a
|
xor a
|
||||||
ld [hl], a
|
ld [hl], a
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.asm_8d2e2
|
.load_minus_one
|
||||||
ld a, $ff
|
ld a, -1
|
||||||
ld [hl], a
|
ld [hl], a
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.asm_8d2e6
|
.load_minus_two
|
||||||
ld a, $fe
|
ld a, -2
|
||||||
ld [hl], a
|
ld [hl], a
|
||||||
ret
|
ret
|
||||||
|
|
||||||
@ -120,17 +120,17 @@ endr
|
|||||||
ld hl, SPRITEANIMSTRUCT_INDEX
|
ld hl, SPRITEANIMSTRUCT_INDEX
|
||||||
add hl, bc
|
add hl, bc
|
||||||
cp [hl]
|
cp [hl]
|
||||||
jr z, .asm_8d2fb
|
jr z, .three_offset_right
|
||||||
|
|
||||||
ld hl, SPRITEANIMSTRUCT_XCOORD
|
ld hl, SPRITEANIMSTRUCT_XCOORD
|
||||||
add hl, bc
|
add hl, bc
|
||||||
ld [hl], $10
|
ld [hl], 8 * 2
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.asm_8d2fb
|
.three_offset_right
|
||||||
ld hl, SPRITEANIMSTRUCT_XCOORD
|
ld hl, SPRITEANIMSTRUCT_XCOORD
|
||||||
add hl, bc
|
add hl, bc
|
||||||
ld [hl], $18
|
ld [hl], 8 * 3
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.four: ; 8d302 (23:5302)
|
.four: ; 8d302 (23:5302)
|
||||||
|
@ -76,7 +76,7 @@ LoadCelebiGFX: ; 49912
|
|||||||
lb bc, BANK(SpecialCelebiLeafGFX), 4
|
lb bc, BANK(SpecialCelebiLeafGFX), 4
|
||||||
call Request2bpp
|
call Request2bpp
|
||||||
ld de, SpecialCelebiGFX
|
ld de, SpecialCelebiGFX
|
||||||
ld hl, VTiles1 tile $04
|
ld hl, VTiles0 tile $84
|
||||||
lb bc, BANK(SpecialCelebiGFX), $10
|
lb bc, BANK(SpecialCelebiGFX), $10
|
||||||
call Request2bpp
|
call Request2bpp
|
||||||
xor a
|
xor a
|
||||||
@ -240,12 +240,12 @@ CelebiEvent_Cosine: ; 49b3b (12:5b3b)
|
|||||||
add $10
|
add $10
|
||||||
and $3f
|
and $3f
|
||||||
cp $20
|
cp $20
|
||||||
jr nc, .asm_49b48
|
jr nc, .negative
|
||||||
call .SineFunction
|
call .SineFunction
|
||||||
ld a, h
|
ld a, h
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.asm_49b48
|
.negative
|
||||||
and $1f
|
and $1f
|
||||||
call .SineFunction
|
call .SineFunction
|
||||||
ld a, h
|
ld a, h
|
||||||
|
2
gbhw.asm
2
gbhw.asm
@ -105,8 +105,10 @@ rOBP0 EQU $ff48 ; Object Palette 0 Data (R/W) - Non CGB Mode Only
|
|||||||
rOBP1 EQU $ff49 ; Object Palette 1 Data (R/W) - Non CGB Mode Only
|
rOBP1 EQU $ff49 ; Object Palette 1 Data (R/W) - Non CGB Mode Only
|
||||||
rWY EQU $ff4a ; Window Y Position (R/W)
|
rWY EQU $ff4a ; Window Y Position (R/W)
|
||||||
rWX EQU $ff4b ; Window X Position minus 7 (R/W)
|
rWX EQU $ff4b ; Window X Position minus 7 (R/W)
|
||||||
|
rLCDMODE EQU $ff4c
|
||||||
rKEY1 EQU $ff4d ; CGB Mode Only - Prepare Speed Switch
|
rKEY1 EQU $ff4d ; CGB Mode Only - Prepare Speed Switch
|
||||||
rVBK EQU $ff4f ; CGB Mode Only - VRAM Bank
|
rVBK EQU $ff4f ; CGB Mode Only - VRAM Bank
|
||||||
|
rBLCK EQU $ff50
|
||||||
rHDMA1 EQU $ff51 ; CGB Mode Only - New DMA Source, High
|
rHDMA1 EQU $ff51 ; CGB Mode Only - New DMA Source, High
|
||||||
rHDMA2 EQU $ff52 ; CGB Mode Only - New DMA Source, Low
|
rHDMA2 EQU $ff52 ; CGB Mode Only - New DMA Source, Low
|
||||||
rHDMA3 EQU $ff53 ; CGB Mode Only - New DMA Destination, High
|
rHDMA3 EQU $ff53 ; CGB Mode Only - New DMA Destination, High
|
||||||
|
127
macros/sound.asm
127
macros/sound.asm
@ -29,201 +29,242 @@ A_ EQU 10
|
|||||||
A# EQU 11
|
A# EQU 11
|
||||||
B_ EQU 12
|
B_ EQU 12
|
||||||
|
|
||||||
|
enum_start $d8
|
||||||
|
enum notetype_cmd
|
||||||
octave: macro
|
octave: macro
|
||||||
db $d8 - (\1)
|
db notetype_cmd - (\1)
|
||||||
endm
|
endm
|
||||||
|
|
||||||
notetype: macro
|
notetype: macro
|
||||||
db $d8
|
db notetype_cmd
|
||||||
db \1 ; note_length
|
db \1 ; note_length
|
||||||
if _NARG >= 2
|
if _NARG >= 2
|
||||||
db \2 ; intensity
|
db \2 ; intensity
|
||||||
endc
|
endc
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum forceoctave_cmd
|
||||||
forceoctave: macro
|
forceoctave: macro
|
||||||
db $d9
|
db forceoctave_cmd
|
||||||
db \1 ; octave
|
db \1 ; octave
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum tempo_cmd
|
||||||
tempo: macro
|
tempo: macro
|
||||||
db $da
|
db tempo_cmd
|
||||||
bigdw \1 ; tempo
|
bigdw \1 ; tempo
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum dutycycle_cmd
|
||||||
dutycycle: macro
|
dutycycle: macro
|
||||||
db $db
|
db dutycycle_cmd
|
||||||
db \1 ; duty_cycle
|
db \1 ; duty_cycle
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum intensity_cmd
|
||||||
intensity: macro
|
intensity: macro
|
||||||
db $dc
|
db intensity_cmd
|
||||||
db \1 ; intensity
|
db \1 ; intensity
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum soundinput_cmd
|
||||||
soundinput: macro
|
soundinput: macro
|
||||||
db $dd
|
db soundinput_cmd
|
||||||
db \1 ; input
|
db \1 ; input
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum unknownmusic0xde_cmd
|
||||||
unknownmusic0xde: macro
|
unknownmusic0xde: macro
|
||||||
db $de
|
db unknownmusic0xde_cmd
|
||||||
db \1 ; unknown
|
db \1 ; unknown
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum togglesfx_cmd
|
||||||
togglesfx: macro
|
togglesfx: macro
|
||||||
db $df
|
db togglesfx_cmd
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum unknownmusic0xe0_cmd
|
||||||
unknownmusic0xe0: macro
|
unknownmusic0xe0: macro
|
||||||
db $e0
|
db unknownmusic0xe0_cmd
|
||||||
db \1 ; unknown
|
db \1 ; unknown
|
||||||
db \2 ; unknown
|
; db \2 ; unknown
|
||||||
|
dn \2, \3 ; octave, pitch
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum vibrato_cmd
|
||||||
vibrato: macro
|
vibrato: macro
|
||||||
db $e1
|
db vibrato_cmd
|
||||||
db \1 ; delay
|
db \1 ; delay
|
||||||
db \2 ; extent
|
db \2 ; extent
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum unknownmusic0xe2_cmd
|
||||||
unknownmusic0xe2: macro
|
unknownmusic0xe2: macro
|
||||||
db $e2
|
db unknownmusic0xe2_cmd
|
||||||
db \1 ; unknown
|
db \1 ; unknown
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum togglenoise_cmd
|
||||||
togglenoise: macro
|
togglenoise: macro
|
||||||
db $e3
|
db togglenoise_cmd
|
||||||
db \1 ; id
|
db \1 ; id
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum panning_cmd
|
||||||
panning: macro
|
panning: macro
|
||||||
db $e4
|
db panning_cmd
|
||||||
db \1 ; tracks
|
db \1 ; tracks
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum volume_cmd
|
||||||
volume: macro
|
volume: macro
|
||||||
db $e5
|
db volume_cmd
|
||||||
db \1 ; volume
|
db \1 ; volume
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum tone_cmd
|
||||||
tone: macro
|
tone: macro
|
||||||
db $e6
|
db tone_cmd
|
||||||
bigdw \1 ; tone
|
bigdw \1 ; tone
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum unknownmusic0xe7_cmd
|
||||||
unknownmusic0xe7: macro
|
unknownmusic0xe7: macro
|
||||||
db $e7
|
db unknownmusic0xe7_cmd
|
||||||
db \1 ; unknown
|
db \1 ; unknown
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum unknownmusic0xe8_cmd
|
||||||
unknownmusic0xe8: macro
|
unknownmusic0xe8: macro
|
||||||
db $e8
|
db unknownmusic0xe8_cmd
|
||||||
db \1 ; unknown
|
db \1 ; unknown
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum globaltempo_cmd
|
||||||
globaltempo: macro
|
globaltempo: macro
|
||||||
db $e9
|
db globaltempo_cmd
|
||||||
bigdw \1 ; value
|
bigdw \1 ; value
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum restartchannel_cmd
|
||||||
restartchannel: macro
|
restartchannel: macro
|
||||||
db $ea
|
db restartchannel_cmd
|
||||||
dw \1 ; address
|
dw \1 ; address
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum newsong_cmd
|
||||||
newsong: macro
|
newsong: macro
|
||||||
db $eb
|
db newsong_cmd
|
||||||
bigdw \1 ; id
|
bigdw \1 ; id
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum sfxpriorityon_cmd
|
||||||
sfxpriorityon: macro
|
sfxpriorityon: macro
|
||||||
db $ec
|
db sfxpriorityon_cmd
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum sfxpriorityoff_cmd
|
||||||
sfxpriorityoff: macro
|
sfxpriorityoff: macro
|
||||||
db $ed
|
db sfxpriorityoff_cmd
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum unknownmusic0xee_cmd
|
||||||
unknownmusic0xee: macro
|
unknownmusic0xee: macro
|
||||||
db $ee
|
db unknownmusic0xee_cmd
|
||||||
dw \1 ; address
|
dw \1 ; address
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum stereopanning_cmd
|
||||||
stereopanning: macro
|
stereopanning: macro
|
||||||
db $ef
|
db stereopanning_cmd
|
||||||
db \1 ; tracks
|
db \1 ; tracks
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum sfxtogglenoise_cmd
|
||||||
sfxtogglenoise: macro
|
sfxtogglenoise: macro
|
||||||
db $f0
|
db sfxtogglenoise_cmd
|
||||||
db \1 ; id
|
db \1 ; id
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum music0xf1_cmd
|
||||||
music0xf1: macro
|
music0xf1: macro
|
||||||
db $f1
|
db music0xf1_cmd
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum music0xf2_cmd
|
||||||
music0xf2: macro
|
music0xf2: macro
|
||||||
db $f2
|
db music0xf2_cmd
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum music0xf3_cmd
|
||||||
music0xf3: macro
|
music0xf3: macro
|
||||||
db $f3
|
db music0xf3_cmd
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum music0xf4_cmd
|
||||||
music0xf4: macro
|
music0xf4: macro
|
||||||
db $f4
|
db music0xf4_cmd
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum music0xf5_cmd
|
||||||
music0xf5: macro
|
music0xf5: macro
|
||||||
db $f5
|
db music0xf5_cmd
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum music0xf6_cmd
|
||||||
music0xf6: macro
|
music0xf6: macro
|
||||||
db $f6
|
db music0xf6_cmd
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum music0xf7_cmd
|
||||||
music0xf7: macro
|
music0xf7: macro
|
||||||
db $f7
|
db music0xf7_cmd
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum music0xf8_cmd
|
||||||
music0xf8: macro
|
music0xf8: macro
|
||||||
db $f8
|
db music0xf8_cmd
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum unknownmusic0xf9_cmd
|
||||||
unknownmusic0xf9: macro
|
unknownmusic0xf9: macro
|
||||||
db $f9
|
db unknownmusic0xf9_cmd
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum setcondition_cmd
|
||||||
setcondition: macro
|
setcondition: macro
|
||||||
db $fa
|
db setcondition_cmd
|
||||||
db \1 ; condition
|
db \1 ; condition
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum jumpif_cmd
|
||||||
jumpif: macro
|
jumpif: macro
|
||||||
db $fb
|
db jumpif_cmd
|
||||||
db \1 ; condition
|
db \1 ; condition
|
||||||
dw \2 ; address
|
dw \2 ; address
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum jumpchannel_cmd
|
||||||
jumpchannel: macro
|
jumpchannel: macro
|
||||||
db $fc
|
db jumpchannel_cmd
|
||||||
dw \1 ; address
|
dw \1 ; address
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum loopchannel_cmd
|
||||||
loopchannel: macro
|
loopchannel: macro
|
||||||
db $fd
|
db loopchannel_cmd
|
||||||
db \1 ; count
|
db \1 ; count
|
||||||
dw \2 ; address
|
dw \2 ; address
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum callchannel_cmd
|
||||||
callchannel: macro
|
callchannel: macro
|
||||||
db $fe
|
db callchannel_cmd
|
||||||
dw \1 ; address
|
dw \1 ; address
|
||||||
endm
|
endm
|
||||||
|
|
||||||
|
enum endchannel_cmd
|
||||||
endchannel: macro
|
endchannel: macro
|
||||||
db $ff
|
db endchannel_cmd
|
||||||
endm
|
endm
|
||||||
|
@ -89,7 +89,7 @@ IlexForest_MapScriptHeader:
|
|||||||
appear ILEXFOREST_BIRD
|
appear ILEXFOREST_BIRD
|
||||||
return
|
return
|
||||||
|
|
||||||
YoungsterScript_0x6eb7b:
|
IlexForestCharcoalApprenticeScript:
|
||||||
faceplayer
|
faceplayer
|
||||||
loadfont
|
loadfont
|
||||||
checkevent EVENT_HERDED_FARFETCHD
|
checkevent EVENT_HERDED_FARFETCHD
|
||||||
@ -347,16 +347,16 @@ IlexForestFarfetchdScript:
|
|||||||
checkcode VAR_FACING
|
checkcode VAR_FACING
|
||||||
end
|
end
|
||||||
|
|
||||||
BlackBeltScript_0x6edae:
|
IlexForestCharcoalMasterScript:
|
||||||
faceplayer
|
faceplayer
|
||||||
loadfont
|
loadfont
|
||||||
checkevent EVENT_GOT_HM01_CUT
|
checkevent EVENT_GOT_HM01_CUT
|
||||||
iftrue .AlreadyGotCut
|
iftrue .AlreadyGotCut
|
||||||
writetext UnknownText_0x6f099
|
writetext Text_CharcoalMasterIntro
|
||||||
buttonsound
|
buttonsound
|
||||||
verbosegiveitem HM_CUT
|
verbosegiveitem HM_CUT
|
||||||
setevent EVENT_GOT_HM01_CUT
|
setevent EVENT_GOT_HM01_CUT
|
||||||
writetext UnknownText_0x6f141
|
writetext Text_CharcoalMasterOutro
|
||||||
waitbutton
|
waitbutton
|
||||||
closetext
|
closetext
|
||||||
setevent EVENT_ILEX_FOREST_FARFETCHD
|
setevent EVENT_ILEX_FOREST_FARFETCHD
|
||||||
@ -368,25 +368,25 @@ BlackBeltScript_0x6edae:
|
|||||||
end
|
end
|
||||||
|
|
||||||
.AlreadyGotCut:
|
.AlreadyGotCut:
|
||||||
writetext UnknownText_0x6f1c0
|
writetext Text_CharcoalMasterTalkAfter
|
||||||
waitbutton
|
waitbutton
|
||||||
closetext
|
closetext
|
||||||
end
|
end
|
||||||
|
|
||||||
RockerScript_0x6edde:
|
IlexForestHeadbuttGuyScript:
|
||||||
faceplayer
|
faceplayer
|
||||||
loadfont
|
loadfont
|
||||||
checkevent EVENT_GOT_TM02_HEADBUTT
|
checkevent EVENT_GOT_TM02_HEADBUTT
|
||||||
iftrue UnknownScript_0x6edf3
|
iftrue .AlreadyGotHeadbutt
|
||||||
writetext UnknownText_0x6f21b
|
writetext Text_HeadbuttIntro
|
||||||
buttonsound
|
buttonsound
|
||||||
verbosegiveitem TM_HEADBUTT
|
verbosegiveitem TM_HEADBUTT
|
||||||
iffalse UnknownScript_0x6edf7
|
iffalse .BagFull
|
||||||
setevent EVENT_GOT_TM02_HEADBUTT
|
setevent EVENT_GOT_TM02_HEADBUTT
|
||||||
UnknownScript_0x6edf3:
|
.AlreadyGotHeadbutt:
|
||||||
writetext UnknownText_0x6f26d
|
writetext Text_HeadbuttOutro
|
||||||
waitbutton
|
waitbutton
|
||||||
UnknownScript_0x6edf7:
|
.BagFull:
|
||||||
closetext
|
closetext
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -396,13 +396,13 @@ TrainerBug_catcherWayne:
|
|||||||
Bug_catcherWayneScript:
|
Bug_catcherWayneScript:
|
||||||
end_if_just_battled
|
end_if_just_battled
|
||||||
loadfont
|
loadfont
|
||||||
writetext UnknownText_0x6f571
|
writetext Bug_catcherWayneAfterText
|
||||||
waitbutton
|
waitbutton
|
||||||
closetext
|
closetext
|
||||||
end
|
end
|
||||||
|
|
||||||
LassScript_0x6ee0d:
|
IlexForestLassScript:
|
||||||
jumptextfaceplayer UnknownText_0x6f2af
|
jumptextfaceplayer Text_IlexForestLass
|
||||||
|
|
||||||
ItemFragment_0x6ee10:
|
ItemFragment_0x6ee10:
|
||||||
db REVIVE, 1
|
db REVIVE, 1
|
||||||
@ -432,7 +432,7 @@ IlexForestBoulder:
|
|||||||
jumpstd strengthboulder
|
jumpstd strengthboulder
|
||||||
|
|
||||||
MapIlexForestSignpost0Script:
|
MapIlexForestSignpost0Script:
|
||||||
jumptext UnknownText_0x6f2de
|
jumptext Text_IlexForestSignpost0
|
||||||
|
|
||||||
MapIlexForestSignpost4Script:
|
MapIlexForestSignpost4Script:
|
||||||
checkevent EVENT_FOREST_IS_RESTLESS
|
checkevent EVENT_FOREST_IS_RESTLESS
|
||||||
@ -443,11 +443,11 @@ MapIlexForestSignpost4Script:
|
|||||||
checkitem GS_BALL
|
checkitem GS_BALL
|
||||||
iftrue .AskCelebiEvent
|
iftrue .AskCelebiEvent
|
||||||
.DontDoCelebiEvent:
|
.DontDoCelebiEvent:
|
||||||
jumptext UnknownText_0x6f358
|
jumptext Text_IlexForestShrine
|
||||||
|
|
||||||
.AskCelebiEvent:
|
.AskCelebiEvent:
|
||||||
loadfont
|
loadfont
|
||||||
writetext UnknownText_0x6f394
|
writetext Text_ShrineCelebiEvent
|
||||||
yesorno
|
yesorno
|
||||||
iftrue .CelebiEvent
|
iftrue .CelebiEvent
|
||||||
closetext
|
closetext
|
||||||
@ -459,7 +459,7 @@ MapIlexForestSignpost4Script:
|
|||||||
setevent EVENT_AZALEA_TOWN_KURT
|
setevent EVENT_AZALEA_TOWN_KURT
|
||||||
disappear ILEXFOREST_LASS
|
disappear ILEXFOREST_LASS
|
||||||
clearevent EVENT_ROUTE_34_ILEX_FOREST_GATE_LASS
|
clearevent EVENT_ROUTE_34_ILEX_FOREST_GATE_LASS
|
||||||
writetext UnknownText_0x6f43b
|
writetext Text_InsertGSBall
|
||||||
waitbutton
|
waitbutton
|
||||||
closetext
|
closetext
|
||||||
pause 20
|
pause 20
|
||||||
@ -480,7 +480,7 @@ MapIlexForestSignpost4Script:
|
|||||||
appear ILEXFOREST_KURT
|
appear ILEXFOREST_KURT
|
||||||
applymovement ILEXFOREST_KURT, MovementData_0x6ef4e
|
applymovement ILEXFOREST_KURT, MovementData_0x6ef4e
|
||||||
loadfont
|
loadfont
|
||||||
writetext UnknownText_0x6f452
|
writetext Text_KurtCaughtCelebi
|
||||||
waitbutton
|
waitbutton
|
||||||
closetext
|
closetext
|
||||||
applymovement ILEXFOREST_KURT, MovementData_0x6ef53
|
applymovement ILEXFOREST_KURT, MovementData_0x6ef53
|
||||||
@ -781,7 +781,7 @@ Text_Kwaaaa:
|
|||||||
text "FARFETCH'D: Kwaa!"
|
text "FARFETCH'D: Kwaa!"
|
||||||
done
|
done
|
||||||
|
|
||||||
UnknownText_0x6f099:
|
Text_CharcoalMasterIntro:
|
||||||
text "Ah! My FARFETCH'D!"
|
text "Ah! My FARFETCH'D!"
|
||||||
|
|
||||||
para "You found it for"
|
para "You found it for"
|
||||||
@ -802,7 +802,7 @@ UnknownText_0x6f099:
|
|||||||
line "this."
|
line "this."
|
||||||
done
|
done
|
||||||
|
|
||||||
UnknownText_0x6f141:
|
Text_CharcoalMasterOutro:
|
||||||
text "That's the CUT HM."
|
text "That's the CUT HM."
|
||||||
line "Teach that to a"
|
line "Teach that to a"
|
||||||
|
|
||||||
@ -816,7 +816,7 @@ UnknownText_0x6f141:
|
|||||||
line "AZALEA to use it."
|
line "AZALEA to use it."
|
||||||
done
|
done
|
||||||
|
|
||||||
UnknownText_0x6f1c0:
|
Text_CharcoalMasterTalkAfter:
|
||||||
text "Do you want to"
|
text "Do you want to"
|
||||||
line "apprentice as a"
|
line "apprentice as a"
|
||||||
|
|
||||||
@ -827,7 +827,7 @@ UnknownText_0x6f1c0:
|
|||||||
line "rate in ten years!"
|
line "rate in ten years!"
|
||||||
done
|
done
|
||||||
|
|
||||||
UnknownText_0x6f21b:
|
Text_HeadbuttIntro:
|
||||||
text "What am I doing?"
|
text "What am I doing?"
|
||||||
|
|
||||||
para "I'm shaking trees"
|
para "I'm shaking trees"
|
||||||
@ -837,20 +837,20 @@ UnknownText_0x6f21b:
|
|||||||
line "you try it too!"
|
line "you try it too!"
|
||||||
done
|
done
|
||||||
|
|
||||||
UnknownText_0x6f26d:
|
Text_HeadbuttOutro:
|
||||||
text "Rattle trees with"
|
text "Rattle trees with"
|
||||||
line "HEADBUTT. Some-"
|
line "HEADBUTT. Some-"
|
||||||
cont "times, sleeping"
|
cont "times, sleeping"
|
||||||
cont "#MON fall out."
|
cont "#MON fall out."
|
||||||
done
|
done
|
||||||
|
|
||||||
UnknownText_0x6f2af:
|
Text_IlexForestLass:
|
||||||
text "Did something"
|
text "Did something"
|
||||||
line "happen to the"
|
line "happen to the"
|
||||||
cont "forest's guardian?"
|
cont "forest's guardian?"
|
||||||
done
|
done
|
||||||
|
|
||||||
UnknownText_0x6f2de:
|
Text_IlexForestSignpost0:
|
||||||
text "ILEX FOREST is"
|
text "ILEX FOREST is"
|
||||||
line "so overgrown with"
|
line "so overgrown with"
|
||||||
|
|
||||||
@ -862,7 +862,7 @@ UnknownText_0x6f2de:
|
|||||||
cont "have been dropped."
|
cont "have been dropped."
|
||||||
done
|
done
|
||||||
|
|
||||||
UnknownText_0x6f358:
|
Text_IlexForestShrine:
|
||||||
text "ILEX FOREST"
|
text "ILEX FOREST"
|
||||||
line "SHRINE…"
|
line "SHRINE…"
|
||||||
|
|
||||||
@ -871,7 +871,7 @@ UnknownText_0x6f358:
|
|||||||
cont "protector…"
|
cont "protector…"
|
||||||
done
|
done
|
||||||
|
|
||||||
UnknownText_0x6f394:
|
Text_ShrineCelebiEvent:
|
||||||
text "ILEX FOREST"
|
text "ILEX FOREST"
|
||||||
line "SHRINE…"
|
line "SHRINE…"
|
||||||
|
|
||||||
@ -891,12 +891,12 @@ UnknownText_0x6f394:
|
|||||||
line "BALL here?"
|
line "BALL here?"
|
||||||
done
|
done
|
||||||
|
|
||||||
UnknownText_0x6f43b:
|
Text_InsertGSBall:
|
||||||
text "<PLAYER> put in the"
|
text "<PLAYER> put in the"
|
||||||
line "GS BALL."
|
line "GS BALL."
|
||||||
done
|
done
|
||||||
|
|
||||||
UnknownText_0x6f452:
|
Text_KurtCaughtCelebi:
|
||||||
text "Whew, wasn't that"
|
text "Whew, wasn't that"
|
||||||
line "something!"
|
line "something!"
|
||||||
|
|
||||||
@ -929,7 +929,7 @@ Bug_catcherWayneBeatenText:
|
|||||||
line "#MON before…"
|
line "#MON before…"
|
||||||
done
|
done
|
||||||
|
|
||||||
UnknownText_0x6f571:
|
Bug_catcherWayneAfterText:
|
||||||
text "A #MON I've"
|
text "A #MON I've"
|
||||||
line "never seen before"
|
line "never seen before"
|
||||||
|
|
||||||
@ -966,12 +966,12 @@ IlexForest_MapEventHeader:
|
|||||||
.PersonEvents:
|
.PersonEvents:
|
||||||
db 11
|
db 11
|
||||||
person_event SPRITE_BIRD, 31, 14, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, IlexForestFarfetchdScript, EVENT_ILEX_FOREST_FARFETCHD
|
person_event SPRITE_BIRD, 31, 14, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, PERSONTYPE_SCRIPT, 0, IlexForestFarfetchdScript, EVENT_ILEX_FOREST_FARFETCHD
|
||||||
person_event SPRITE_YOUNGSTER, 28, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x6eb7b, EVENT_ILEX_FOREST_APPRENTICE
|
person_event SPRITE_YOUNGSTER, 28, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, IlexForestCharcoalApprenticeScript, EVENT_ILEX_FOREST_APPRENTICE
|
||||||
person_event SPRITE_BLACK_BELT, 28, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x6edae, EVENT_ILEX_FOREST_CHARCOAL_MASTER
|
person_event SPRITE_BLACK_BELT, 28, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, IlexForestCharcoalMasterScript, EVENT_ILEX_FOREST_CHARCOAL_MASTER
|
||||||
person_event SPRITE_ROCKER, 14, 15, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RockerScript_0x6edde, -1
|
person_event SPRITE_ROCKER, 14, 15, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, IlexForestHeadbuttGuyScript, -1
|
||||||
person_event SPRITE_POKE_BALL, 32, 20, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x6ee10, EVENT_ILEX_FOREST_REVIVE
|
person_event SPRITE_POKE_BALL, 32, 20, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x6ee10, EVENT_ILEX_FOREST_REVIVE
|
||||||
person_event SPRITE_KURT, 29, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_ILEX_FOREST_KURT
|
person_event SPRITE_KURT, 29, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_ILEX_FOREST_KURT
|
||||||
person_event SPRITE_LASS, 24, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x6ee0d, EVENT_ILEX_FOREST_LASS
|
person_event SPRITE_LASS, 24, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_SCRIPT, 0, IlexForestLassScript, EVENT_ILEX_FOREST_LASS
|
||||||
person_event SPRITE_YOUNGSTER, 1, 12, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 0, TrainerBug_catcherWayne, -1
|
person_event SPRITE_YOUNGSTER, 1, 12, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, PERSONTYPE_TRAINER, 0, TrainerBug_catcherWayne, -1
|
||||||
person_event SPRITE_POKE_BALL, 17, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x6ee12, EVENT_ILEX_FOREST_X_ATTACK
|
person_event SPRITE_POKE_BALL, 17, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x6ee12, EVENT_ILEX_FOREST_X_ATTACK
|
||||||
person_event SPRITE_POKE_BALL, 7, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x6ee14, EVENT_ILEX_FOREST_ANTIDOTE
|
person_event SPRITE_POKE_BALL, 7, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMFRAGMENT, 0, ItemFragment_0x6ee14, EVENT_ILEX_FOREST_ANTIDOTE
|
||||||
|
937
misc/mobile_12_2.asm
Executable file
937
misc/mobile_12_2.asm
Executable file
@ -0,0 +1,937 @@
|
|||||||
|
MobileCheckOwnMonAnywhere: ; 4a843
|
||||||
|
; Like CheckOwnMonAnywhere, but only check for species.
|
||||||
|
; OT/ID don't matter.
|
||||||
|
|
||||||
|
ld a, [PartyCount]
|
||||||
|
and a
|
||||||
|
ret z
|
||||||
|
|
||||||
|
ld d, a
|
||||||
|
ld e, 0
|
||||||
|
ld hl, PartyMon1Species
|
||||||
|
ld bc, PartyMonOT
|
||||||
|
.asm_4a851
|
||||||
|
call .CheckMatch
|
||||||
|
ret c
|
||||||
|
push bc
|
||||||
|
ld bc, PARTYMON_STRUCT_LENGTH
|
||||||
|
add hl, bc
|
||||||
|
pop bc
|
||||||
|
call .CopyName
|
||||||
|
dec d
|
||||||
|
jr nz, .asm_4a851
|
||||||
|
ld a, BANK(sBoxCount)
|
||||||
|
call GetSRAMBank
|
||||||
|
ld a, [sBoxCount]
|
||||||
|
and a
|
||||||
|
jr z, .asm_4a888
|
||||||
|
ld d, a
|
||||||
|
ld hl, sBoxMon1Species
|
||||||
|
ld bc, sBoxMonOT
|
||||||
|
.asm_4a873
|
||||||
|
call .CheckMatch
|
||||||
|
jr nc, .asm_4a87c
|
||||||
|
call CloseSRAM
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_4a87c
|
||||||
|
push bc
|
||||||
|
ld bc, BOXMON_STRUCT_LENGTH
|
||||||
|
add hl, bc
|
||||||
|
pop bc
|
||||||
|
call .CopyName
|
||||||
|
dec d
|
||||||
|
jr nz, .asm_4a873
|
||||||
|
|
||||||
|
.asm_4a888
|
||||||
|
call CloseSRAM
|
||||||
|
ld c, 0
|
||||||
|
.asm_4a88d
|
||||||
|
ld a, [wCurBox]
|
||||||
|
and $f
|
||||||
|
cp c
|
||||||
|
jr z, .asm_4a8d1
|
||||||
|
ld hl, .BoxAddrs
|
||||||
|
ld b, 0
|
||||||
|
rept 3
|
||||||
|
add hl, bc
|
||||||
|
endr
|
||||||
|
ld a, [hli]
|
||||||
|
call GetSRAMBank
|
||||||
|
ld a, [hli]
|
||||||
|
ld h, [hl]
|
||||||
|
ld l, a
|
||||||
|
ld a, [hl]
|
||||||
|
and a
|
||||||
|
jr z, .asm_4a8d1
|
||||||
|
push bc
|
||||||
|
push hl
|
||||||
|
ld de, sBoxMons - sBoxCount
|
||||||
|
add hl, de
|
||||||
|
ld d, h
|
||||||
|
ld e, l
|
||||||
|
pop hl
|
||||||
|
push de
|
||||||
|
ld de, sBoxMonOT - sBoxCount
|
||||||
|
add hl, de
|
||||||
|
ld b, h
|
||||||
|
ld c, l
|
||||||
|
pop hl
|
||||||
|
ld d, a
|
||||||
|
.asm_4a8ba
|
||||||
|
call .CheckMatch
|
||||||
|
jr nc, .asm_4a8c4
|
||||||
|
pop bc
|
||||||
|
call CloseSRAM
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_4a8c4
|
||||||
|
push bc
|
||||||
|
ld bc, BOXMON_STRUCT_LENGTH
|
||||||
|
add hl, bc
|
||||||
|
pop bc
|
||||||
|
call .CopyName
|
||||||
|
dec d
|
||||||
|
jr nz, .asm_4a8ba
|
||||||
|
pop bc
|
||||||
|
|
||||||
|
.asm_4a8d1
|
||||||
|
inc c
|
||||||
|
ld a, c
|
||||||
|
cp NUM_BOXES
|
||||||
|
jr c, .asm_4a88d
|
||||||
|
call CloseSRAM
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
; 4a8dc
|
||||||
|
|
||||||
|
.CheckMatch: ; 4a8dc
|
||||||
|
push bc
|
||||||
|
push hl
|
||||||
|
push de
|
||||||
|
ld d, b
|
||||||
|
ld e, c
|
||||||
|
ld a, [ScriptVar]
|
||||||
|
ld b, [hl]
|
||||||
|
cp b
|
||||||
|
jr nz, .no_match
|
||||||
|
jr .match
|
||||||
|
|
||||||
|
.no_match
|
||||||
|
pop de
|
||||||
|
pop hl
|
||||||
|
pop bc
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.match
|
||||||
|
pop de
|
||||||
|
pop hl
|
||||||
|
pop bc
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
; 4a8f4
|
||||||
|
|
||||||
|
.BoxAddrs: ; 4a8f4
|
||||||
|
dba sBox1
|
||||||
|
dba sBox2
|
||||||
|
dba sBox3
|
||||||
|
dba sBox4
|
||||||
|
dba sBox5
|
||||||
|
dba sBox6
|
||||||
|
dba sBox7
|
||||||
|
dba sBox8
|
||||||
|
dba sBox9
|
||||||
|
dba sBox10
|
||||||
|
dba sBox11
|
||||||
|
dba sBox12
|
||||||
|
dba sBox13
|
||||||
|
dba sBox14
|
||||||
|
; 4a91e
|
||||||
|
|
||||||
|
.CopyName: ; 4a91e
|
||||||
|
push hl
|
||||||
|
ld hl, NAME_LENGTH
|
||||||
|
add hl, bc
|
||||||
|
ld b, h
|
||||||
|
ld c, l
|
||||||
|
pop hl
|
||||||
|
ret
|
||||||
|
; 4a927
|
||||||
|
|
||||||
|
FindItemInPCOrBag: ; 4a927
|
||||||
|
ld a, [ScriptVar]
|
||||||
|
ld [CurItem], a
|
||||||
|
ld hl, PCItems
|
||||||
|
call CheckItem
|
||||||
|
jr c, .found
|
||||||
|
|
||||||
|
ld a, [ScriptVar]
|
||||||
|
ld [CurItem], a
|
||||||
|
ld hl, NumItems
|
||||||
|
call CheckItem
|
||||||
|
jr c, .found
|
||||||
|
|
||||||
|
xor a
|
||||||
|
ld [ScriptVar], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.found
|
||||||
|
ld a, 1
|
||||||
|
ld [ScriptVar], a
|
||||||
|
ret
|
||||||
|
; 4a94e
|
||||||
|
|
||||||
|
Function4a94e: ; 4a94e
|
||||||
|
call FadeToMenu
|
||||||
|
ld a, -1
|
||||||
|
ld hl, wd002
|
||||||
|
ld bc, 3
|
||||||
|
call ByteFill
|
||||||
|
xor a
|
||||||
|
ld [wd018], a
|
||||||
|
ld [wd019], a
|
||||||
|
ld b, SCGB_14
|
||||||
|
call GetSGBLayout
|
||||||
|
call SetPalettes
|
||||||
|
call Function4aa22
|
||||||
|
jr c, .asm_4a985
|
||||||
|
jr z, .asm_4a9a1
|
||||||
|
jr .asm_4a97b
|
||||||
|
|
||||||
|
.asm_4a974
|
||||||
|
call Function4aa25
|
||||||
|
jr c, .asm_4a985
|
||||||
|
jr z, .asm_4a9a1
|
||||||
|
|
||||||
|
.asm_4a97b
|
||||||
|
call Function4ac58
|
||||||
|
ld hl, wd019
|
||||||
|
res 1, [hl]
|
||||||
|
jr .asm_4a974
|
||||||
|
|
||||||
|
.asm_4a985
|
||||||
|
ld a, [wd018]
|
||||||
|
and a
|
||||||
|
jr nz, .asm_4a990
|
||||||
|
call Function4aba8
|
||||||
|
jr c, .asm_4a974
|
||||||
|
|
||||||
|
.asm_4a990
|
||||||
|
call CloseSubmenu
|
||||||
|
ld hl, wd002
|
||||||
|
ld a, -1
|
||||||
|
ld bc, 3
|
||||||
|
call ByteFill
|
||||||
|
scf
|
||||||
|
jr .asm_4a9af
|
||||||
|
|
||||||
|
.asm_4a9a1
|
||||||
|
call Function4a9c3
|
||||||
|
jr c, .asm_4a9b0
|
||||||
|
call Function4a9d7
|
||||||
|
jr c, .asm_4a974
|
||||||
|
call CloseSubmenu
|
||||||
|
and a
|
||||||
|
|
||||||
|
.asm_4a9af
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_4a9b0
|
||||||
|
ld de, SFX_WRONG
|
||||||
|
call PlaySFX
|
||||||
|
ld hl, UnknownText_0x4a9be
|
||||||
|
call PrintText
|
||||||
|
jr .asm_4a974
|
||||||
|
; 4a9be
|
||||||
|
|
||||||
|
UnknownText_0x4a9be: ; 0x4a9be
|
||||||
|
; Pick three #MON for battle.
|
||||||
|
text_jump UnknownText_0x1c51d7
|
||||||
|
db "@"
|
||||||
|
; 0x4a9c3
|
||||||
|
|
||||||
|
Function4a9c3: ; 4a9c3
|
||||||
|
ld hl, wd002
|
||||||
|
ld a, $ff
|
||||||
|
cp [hl]
|
||||||
|
jr z, .asm_4a9d5
|
||||||
|
inc hl
|
||||||
|
cp [hl]
|
||||||
|
jr z, .asm_4a9d5
|
||||||
|
inc hl
|
||||||
|
cp [hl]
|
||||||
|
jr z, .asm_4a9d5
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_4a9d5
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
; 4a9d7
|
||||||
|
|
||||||
|
Function4a9d7: ; 4a9d7
|
||||||
|
ld a, [wd002]
|
||||||
|
ld hl, PartyMonNicknames
|
||||||
|
call GetNick
|
||||||
|
ld h, d
|
||||||
|
ld l, e
|
||||||
|
ld de, EndFlypoint
|
||||||
|
ld bc, 6
|
||||||
|
call CopyBytes
|
||||||
|
ld a, [wd003]
|
||||||
|
ld hl, PartyMonNicknames
|
||||||
|
call GetNick
|
||||||
|
ld h, d
|
||||||
|
ld l, e
|
||||||
|
ld de, wd00c
|
||||||
|
ld bc, 6
|
||||||
|
call CopyBytes
|
||||||
|
ld a, [wd004]
|
||||||
|
ld hl, PartyMonNicknames
|
||||||
|
call GetNick
|
||||||
|
ld h, d
|
||||||
|
ld l, e
|
||||||
|
ld de, wd012
|
||||||
|
ld bc, 6
|
||||||
|
call CopyBytes
|
||||||
|
ld hl, UnknownText_0x4aa1d
|
||||||
|
call PrintText
|
||||||
|
call YesNoBox
|
||||||
|
ret
|
||||||
|
; 4aa1d
|
||||||
|
|
||||||
|
UnknownText_0x4aa1d: ; 0x4aa1d
|
||||||
|
; , @ and @ . Use these three?
|
||||||
|
text_jump UnknownText_0x1c51f4
|
||||||
|
db "@"
|
||||||
|
; 0x4aa22
|
||||||
|
|
||||||
|
Function4aa22: ; 4aa22
|
||||||
|
call ClearBGPalettes
|
||||||
|
|
||||||
|
Function4aa25: ; 4aa25
|
||||||
|
callba LoadPartyMenuGFX
|
||||||
|
callba InitPartyMenuWithCancel
|
||||||
|
call Function4aad3
|
||||||
|
|
||||||
|
Function4aa34: ; 4aa34
|
||||||
|
ld a, $9
|
||||||
|
ld [PartyMenuActionText], a
|
||||||
|
callba WritePartyMenuTilemap
|
||||||
|
xor a
|
||||||
|
ld [PartyMenuActionText], a
|
||||||
|
callba PrintPartyMenuText
|
||||||
|
call Function4aab6
|
||||||
|
call WaitBGMap
|
||||||
|
call SetPalettes
|
||||||
|
call DelayFrame
|
||||||
|
call Function4ab1a
|
||||||
|
jr z, .asm_4aa66
|
||||||
|
push af
|
||||||
|
call Function4aafb
|
||||||
|
jr c, .asm_4aa67
|
||||||
|
call Function4ab06
|
||||||
|
jr c, .asm_4aa67
|
||||||
|
pop af
|
||||||
|
|
||||||
|
.asm_4aa66
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_4aa67
|
||||||
|
ld hl, wd019
|
||||||
|
set 1, [hl]
|
||||||
|
pop af
|
||||||
|
ret
|
||||||
|
; 4aa6e
|
||||||
|
|
||||||
|
Function4aa6e: ; 4aa6e
|
||||||
|
pop af
|
||||||
|
ld de, SFX_WRONG
|
||||||
|
call PlaySFX
|
||||||
|
call WaitSFX
|
||||||
|
jr Function4aa34
|
||||||
|
; 4aa7a
|
||||||
|
|
||||||
|
Function4aa7a: ; 4aa7a
|
||||||
|
ld hl, wd002
|
||||||
|
ld d, $3
|
||||||
|
.loop
|
||||||
|
ld e, PARTY_LENGTH
|
||||||
|
ld a, [hli]
|
||||||
|
push de
|
||||||
|
push hl
|
||||||
|
cp -1
|
||||||
|
jr z, .done
|
||||||
|
ld hl, wSpriteAnimationStructs
|
||||||
|
inc a
|
||||||
|
ld d, a
|
||||||
|
.inner_loop
|
||||||
|
ld a, [hl]
|
||||||
|
and a
|
||||||
|
jr z, .next
|
||||||
|
cp d
|
||||||
|
jr z, .same_as_d
|
||||||
|
jr .next
|
||||||
|
|
||||||
|
ld a, $3
|
||||||
|
jr .proceed
|
||||||
|
|
||||||
|
.same_as_d
|
||||||
|
ld a, $2
|
||||||
|
|
||||||
|
.proceed
|
||||||
|
push hl
|
||||||
|
ld c, l
|
||||||
|
ld b, h
|
||||||
|
ld hl, $2
|
||||||
|
add hl, bc
|
||||||
|
ld [hl], a
|
||||||
|
pop hl
|
||||||
|
|
||||||
|
.next
|
||||||
|
ld bc, $10
|
||||||
|
add hl, bc
|
||||||
|
dec e
|
||||||
|
jr nz, .inner_loop
|
||||||
|
pop hl
|
||||||
|
pop de
|
||||||
|
dec d
|
||||||
|
jr nz, .loop
|
||||||
|
jr .finished
|
||||||
|
|
||||||
|
.done
|
||||||
|
pop hl
|
||||||
|
pop de
|
||||||
|
|
||||||
|
.finished
|
||||||
|
ret
|
||||||
|
; 4aab6
|
||||||
|
|
||||||
|
Function4aab6: ; 4aab6
|
||||||
|
ld hl, wd002
|
||||||
|
ld d, $3
|
||||||
|
.loop
|
||||||
|
ld a, [hli]
|
||||||
|
cp -1
|
||||||
|
jr z, .done
|
||||||
|
push de
|
||||||
|
push hl
|
||||||
|
hlcoord 0, 1
|
||||||
|
ld bc, $28
|
||||||
|
call AddNTimes
|
||||||
|
ld [hl], $ec
|
||||||
|
pop hl
|
||||||
|
pop de
|
||||||
|
dec d
|
||||||
|
jr nz, .loop
|
||||||
|
|
||||||
|
.done
|
||||||
|
ret
|
||||||
|
; 4aad3
|
||||||
|
|
||||||
|
Function4aad3: ; 4aad3
|
||||||
|
ld hl, PartyCount
|
||||||
|
ld a, [hli]
|
||||||
|
and a
|
||||||
|
ret z ; Nothing in your party
|
||||||
|
|
||||||
|
ld c, a
|
||||||
|
xor a
|
||||||
|
ld [hObjectStructIndexBuffer], a
|
||||||
|
.loop
|
||||||
|
push bc
|
||||||
|
push hl
|
||||||
|
ld e, 0
|
||||||
|
callba Function8e83f
|
||||||
|
ld a, [hObjectStructIndexBuffer]
|
||||||
|
inc a
|
||||||
|
ld [hObjectStructIndexBuffer], a
|
||||||
|
pop hl
|
||||||
|
pop bc
|
||||||
|
dec c
|
||||||
|
jr nz, .loop
|
||||||
|
|
||||||
|
call Function4aa7a
|
||||||
|
callba PlaySpriteAnimations
|
||||||
|
ret
|
||||||
|
; 4aafb
|
||||||
|
|
||||||
|
Function4aafb: ; 4aafb
|
||||||
|
ld a, [CurPartySpecies]
|
||||||
|
cp EGG
|
||||||
|
jr z, .egg
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.egg
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
; 4ab06
|
||||||
|
|
||||||
|
Function4ab06: ; 4ab06
|
||||||
|
ld a, [CurPartyMon]
|
||||||
|
ld bc, PARTYMON_STRUCT_LENGTH
|
||||||
|
ld hl, PartyMon1HP
|
||||||
|
call AddNTimes
|
||||||
|
ld a, [hli]
|
||||||
|
ld b, a
|
||||||
|
ld a, [hl]
|
||||||
|
or b
|
||||||
|
jr nz, .NotFainted
|
||||||
|
scf
|
||||||
|
|
||||||
|
.NotFainted
|
||||||
|
ret
|
||||||
|
; 4ab1a
|
||||||
|
|
||||||
|
Function4ab1a: ; 4ab1a
|
||||||
|
.asm_4ab1a
|
||||||
|
ld a, $fb
|
||||||
|
ld [wcfa8], a
|
||||||
|
ld a, $26
|
||||||
|
ld [wcfa7], a
|
||||||
|
ld a, $2
|
||||||
|
ld [wcfa4], a
|
||||||
|
call Function4adf7
|
||||||
|
call Function1bc9
|
||||||
|
call Function4abc3
|
||||||
|
jr c, .asm_4ab1a
|
||||||
|
push af
|
||||||
|
call Function4ab99
|
||||||
|
call nc, Function1bee
|
||||||
|
pop af
|
||||||
|
bit 1, a
|
||||||
|
jr nz, .asm_4ab6d
|
||||||
|
ld a, [PartyCount]
|
||||||
|
inc a
|
||||||
|
ld b, a
|
||||||
|
ld a, [MenuSelection2]
|
||||||
|
ld [wd0d8], a
|
||||||
|
cp b
|
||||||
|
jr z, .asm_4ab7e
|
||||||
|
ld a, [MenuSelection2]
|
||||||
|
dec a
|
||||||
|
ld [CurPartyMon], a
|
||||||
|
ld c, a
|
||||||
|
ld b, $0
|
||||||
|
ld hl, PartySpecies
|
||||||
|
add hl, bc
|
||||||
|
ld a, [hl]
|
||||||
|
ld [CurPartySpecies], a
|
||||||
|
ld de, SFX_READ_TEXT_2
|
||||||
|
call PlaySFX
|
||||||
|
call WaitSFX
|
||||||
|
ld a, $1
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_4ab6d
|
||||||
|
ld a, [MenuSelection2]
|
||||||
|
ld [wd0d8], a
|
||||||
|
.asm_4ab73
|
||||||
|
ld de, SFX_READ_TEXT_2
|
||||||
|
call PlaySFX
|
||||||
|
call WaitSFX
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_4ab7e
|
||||||
|
ld a, $1
|
||||||
|
ld [wd018], a
|
||||||
|
ld a, [wcfaa]
|
||||||
|
cp $2
|
||||||
|
jr z, .asm_4ab73
|
||||||
|
ld de, SFX_READ_TEXT_2
|
||||||
|
call PlaySFX
|
||||||
|
call WaitSFX
|
||||||
|
xor a
|
||||||
|
ld [wd018], a
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
; 4ab99
|
||||||
|
|
||||||
|
Function4ab99: ; 4ab99
|
||||||
|
bit 1, a
|
||||||
|
jr z, .asm_4aba6
|
||||||
|
ld a, [wd002]
|
||||||
|
cp $ff
|
||||||
|
jr z, .asm_4aba6
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_4aba6
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
; 4aba8
|
||||||
|
|
||||||
|
Function4aba8: ; 4aba8
|
||||||
|
ld hl, wd004
|
||||||
|
ld a, [hl]
|
||||||
|
cp $ff
|
||||||
|
jr nz, .asm_4abbe
|
||||||
|
dec hl
|
||||||
|
ld a, [hl]
|
||||||
|
cp $ff
|
||||||
|
jr nz, .asm_4abbe
|
||||||
|
dec hl
|
||||||
|
ld a, [hl]
|
||||||
|
cp $ff
|
||||||
|
jr nz, .asm_4abbe
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_4abbe
|
||||||
|
ld a, $ff
|
||||||
|
ld [hl], a
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
; 4abc3
|
||||||
|
|
||||||
|
Function4abc3: ; 4abc3
|
||||||
|
bit 3, a
|
||||||
|
jr z, .asm_4abd5
|
||||||
|
ld a, [PartyCount]
|
||||||
|
inc a
|
||||||
|
ld [MenuSelection2], a
|
||||||
|
ld a, $1
|
||||||
|
ld [wcfaa], a
|
||||||
|
jr .asm_4ac29
|
||||||
|
|
||||||
|
.asm_4abd5
|
||||||
|
bit 6, a
|
||||||
|
jr z, .asm_4abeb
|
||||||
|
ld a, [MenuSelection2]
|
||||||
|
ld [MenuSelection2], a
|
||||||
|
and a
|
||||||
|
jr nz, .asm_4ac29
|
||||||
|
ld a, [PartyCount]
|
||||||
|
inc a
|
||||||
|
ld [MenuSelection2], a
|
||||||
|
jr .asm_4ac29
|
||||||
|
|
||||||
|
.asm_4abeb
|
||||||
|
bit 7, a
|
||||||
|
jr z, .asm_4ac08
|
||||||
|
ld a, [MenuSelection2]
|
||||||
|
ld [MenuSelection2], a
|
||||||
|
ld a, [PartyCount]
|
||||||
|
rept 2
|
||||||
|
inc a
|
||||||
|
endr
|
||||||
|
ld b, a
|
||||||
|
ld a, [MenuSelection2]
|
||||||
|
cp b
|
||||||
|
jr nz, .asm_4ac29
|
||||||
|
ld a, $1
|
||||||
|
ld [MenuSelection2], a
|
||||||
|
jr .asm_4ac29
|
||||||
|
|
||||||
|
.asm_4ac08
|
||||||
|
bit 4, a
|
||||||
|
jr nz, .asm_4ac10
|
||||||
|
bit 5, a
|
||||||
|
jr z, .asm_4ac56
|
||||||
|
|
||||||
|
.asm_4ac10
|
||||||
|
ld a, [MenuSelection2]
|
||||||
|
ld b, a
|
||||||
|
ld a, [PartyCount]
|
||||||
|
inc a
|
||||||
|
cp b
|
||||||
|
jr nz, .asm_4ac29
|
||||||
|
ld a, [wcfaa]
|
||||||
|
cp $1
|
||||||
|
jr z, .asm_4ac26
|
||||||
|
ld a, $1
|
||||||
|
jr .asm_4ac29
|
||||||
|
|
||||||
|
.asm_4ac26
|
||||||
|
ld [wcfaa], a
|
||||||
|
|
||||||
|
.asm_4ac29
|
||||||
|
hlcoord 0, 1
|
||||||
|
lb bc, 13, 1
|
||||||
|
call ClearBox
|
||||||
|
call Function4aab6
|
||||||
|
ld a, [PartyCount]
|
||||||
|
hlcoord 6, 1
|
||||||
|
.asm_4ac3b
|
||||||
|
ld bc, $28
|
||||||
|
add hl, bc
|
||||||
|
dec a
|
||||||
|
jr nz, .asm_4ac3b
|
||||||
|
ld [hl], $7f
|
||||||
|
ld a, [MenuSelection2]
|
||||||
|
ld b, a
|
||||||
|
ld a, [PartyCount]
|
||||||
|
inc a
|
||||||
|
cp b
|
||||||
|
jr z, .asm_4ac54
|
||||||
|
ld a, $1
|
||||||
|
ld [wcfaa], a
|
||||||
|
|
||||||
|
.asm_4ac54
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_4ac56
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
; 4ac58
|
||||||
|
|
||||||
|
Function4ac58: ; 4ac58
|
||||||
|
lb bc, 2, 18
|
||||||
|
hlcoord 1, 15
|
||||||
|
call ClearBox
|
||||||
|
callba FreezeMonIcons
|
||||||
|
ld hl, MenuDataHeader_0x4aca2
|
||||||
|
call LoadMenuDataHeader
|
||||||
|
ld hl, wd019
|
||||||
|
bit 1, [hl]
|
||||||
|
jr z, .asm_4ac89
|
||||||
|
hlcoord 11, 13
|
||||||
|
ld b, $3
|
||||||
|
ld c, $7
|
||||||
|
call TextBox
|
||||||
|
hlcoord 13, 14
|
||||||
|
ld de, String_4ada7
|
||||||
|
call PlaceString
|
||||||
|
jr .asm_4ac96
|
||||||
|
|
||||||
|
.asm_4ac89
|
||||||
|
hlcoord 11, 9
|
||||||
|
ld b, $7
|
||||||
|
ld c, $7
|
||||||
|
call TextBox
|
||||||
|
call Function4ad68
|
||||||
|
|
||||||
|
.asm_4ac96
|
||||||
|
ld a, $1
|
||||||
|
ld [hBGMapMode], a
|
||||||
|
call Function4acaa
|
||||||
|
call ExitMenu
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
; 4aca2
|
||||||
|
|
||||||
|
MenuDataHeader_0x4aca2: ; 0x4aca2
|
||||||
|
db $40 ; flags
|
||||||
|
db 09, 11 ; start coords
|
||||||
|
db 17, 19 ; end coords
|
||||||
|
dw NULL
|
||||||
|
db 1 ; default option
|
||||||
|
; 0x4acaa
|
||||||
|
|
||||||
|
Function4acaa: ; 4acaa
|
||||||
|
.asm_4acaa
|
||||||
|
ld a, $a0
|
||||||
|
ld [wMenuData2Flags], a
|
||||||
|
ld a, [wd019]
|
||||||
|
bit 1, a
|
||||||
|
jr z, .asm_4acc2
|
||||||
|
ld a, $2
|
||||||
|
ld [wMenuData2Items], a
|
||||||
|
ld a, $c
|
||||||
|
ld [wMenuBorderTopCoord], a
|
||||||
|
jr .asm_4accc
|
||||||
|
|
||||||
|
.asm_4acc2
|
||||||
|
ld a, $4
|
||||||
|
ld [wMenuData2Items], a
|
||||||
|
ld a, $8
|
||||||
|
ld [wMenuBorderTopCoord], a
|
||||||
|
|
||||||
|
.asm_4accc
|
||||||
|
ld a, $b
|
||||||
|
ld [wMenuBorderLeftCoord], a
|
||||||
|
ld a, $1
|
||||||
|
ld [wMenuCursorBuffer], a
|
||||||
|
call Function1c10
|
||||||
|
ld hl, wcfa5
|
||||||
|
set 6, [hl]
|
||||||
|
call Function1bc9
|
||||||
|
ld de, SFX_READ_TEXT_2
|
||||||
|
call PlaySFX
|
||||||
|
ld a, [hJoyPressed]
|
||||||
|
bit 0, a
|
||||||
|
jr nz, .asm_4acf4
|
||||||
|
bit 1, a
|
||||||
|
jr nz, .asm_4acf3
|
||||||
|
jr .asm_4acaa
|
||||||
|
|
||||||
|
.asm_4acf3
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_4acf4
|
||||||
|
ld a, [wd019]
|
||||||
|
bit 1, a
|
||||||
|
jr nz, .asm_4ad0e
|
||||||
|
ld a, [MenuSelection2]
|
||||||
|
cp $1
|
||||||
|
jr z, Function4ad17
|
||||||
|
cp $2
|
||||||
|
jp z, Function4ad56
|
||||||
|
cp $3
|
||||||
|
jp z, Function4ad60
|
||||||
|
jr .asm_4acf3
|
||||||
|
|
||||||
|
.asm_4ad0e
|
||||||
|
ld a, [MenuSelection2]
|
||||||
|
cp $1
|
||||||
|
jr z, Function4ad56
|
||||||
|
jr .asm_4acf3
|
||||||
|
|
||||||
|
Function4ad17: ; 4ad17
|
||||||
|
call Function4adb2
|
||||||
|
jr z, .asm_4ad4a
|
||||||
|
ld hl, wd002
|
||||||
|
ld a, $ff
|
||||||
|
cp [hl]
|
||||||
|
jr z, .asm_4ad39
|
||||||
|
inc hl
|
||||||
|
cp [hl]
|
||||||
|
jr z, .asm_4ad39
|
||||||
|
inc hl
|
||||||
|
cp [hl]
|
||||||
|
jr z, .asm_4ad39
|
||||||
|
ld de, SFX_WRONG
|
||||||
|
call WaitPlaySFX
|
||||||
|
ld hl, UnknownText_0x4ad51
|
||||||
|
call PrintText
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_4ad39
|
||||||
|
ld a, [CurPartyMon]
|
||||||
|
ld [hl], a
|
||||||
|
call Function4a9c3
|
||||||
|
ret c
|
||||||
|
ld a, [wd019]
|
||||||
|
set 0, a
|
||||||
|
ld [wd019], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.asm_4ad4a
|
||||||
|
ld a, $ff
|
||||||
|
ld [hl], a
|
||||||
|
call Function4adc2
|
||||||
|
ret
|
||||||
|
|
||||||
|
UnknownText_0x4ad51: ; 0x4ad51
|
||||||
|
; Only three #MON may enter.
|
||||||
|
text_jump UnknownText_0x1c521c
|
||||||
|
db "@"
|
||||||
|
; 0x4ad56
|
||||||
|
|
||||||
|
Function4ad56: ; 4ad56
|
||||||
|
callba OpenPartyStats
|
||||||
|
call Function3200
|
||||||
|
ret
|
||||||
|
; 4ad60
|
||||||
|
|
||||||
|
Function4ad60: ; 4ad60
|
||||||
|
callba ManagePokemonMoves
|
||||||
|
ret
|
||||||
|
; 4ad67
|
||||||
|
|
||||||
|
Function4ad67: ; 4ad67
|
||||||
|
ret
|
||||||
|
; 4ad68
|
||||||
|
|
||||||
|
Function4ad68: ; 4ad68
|
||||||
|
hlcoord 13, 12
|
||||||
|
ld de, String_4ad88
|
||||||
|
call PlaceString
|
||||||
|
call Function4adb2
|
||||||
|
jr c, .asm_4ad7e
|
||||||
|
hlcoord 13, 10
|
||||||
|
ld de, String_4ada0
|
||||||
|
jr .asm_4ad84
|
||||||
|
|
||||||
|
.asm_4ad7e
|
||||||
|
hlcoord 13, 10
|
||||||
|
ld de, String_4ad9a
|
||||||
|
|
||||||
|
.asm_4ad84
|
||||||
|
call PlaceString
|
||||||
|
ret
|
||||||
|
; 4ad88
|
||||||
|
|
||||||
|
String_4ad88: ; 4ad88
|
||||||
|
db "つよさをみる"
|
||||||
|
next "つかえるわざ"
|
||||||
|
next "もどる@"
|
||||||
|
; 4ad9a
|
||||||
|
|
||||||
|
String_4ad9a: ; 4ad9a
|
||||||
|
db "さんかする@"
|
||||||
|
; 4ada0
|
||||||
|
|
||||||
|
String_4ada0: ; 4ada0
|
||||||
|
db "さんかしない@"
|
||||||
|
; 4ada7
|
||||||
|
|
||||||
|
String_4ada7: ; 4ada7
|
||||||
|
db "つよさをみる"
|
||||||
|
next "もどる@" ; BACK
|
||||||
|
; 4adb2
|
||||||
|
|
||||||
|
Function4adb2: ; 4adb2
|
||||||
|
ld hl, wd002
|
||||||
|
ld a, [CurPartyMon]
|
||||||
|
cp [hl]
|
||||||
|
ret z
|
||||||
|
inc hl
|
||||||
|
cp [hl]
|
||||||
|
ret z
|
||||||
|
inc hl
|
||||||
|
cp [hl]
|
||||||
|
ret z
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
; 4adc2
|
||||||
|
|
||||||
|
Function4adc2: ; 4adc2
|
||||||
|
ld a, [wd002]
|
||||||
|
cp $ff
|
||||||
|
jr nz, .skip
|
||||||
|
ld a, [wd003]
|
||||||
|
cp $ff
|
||||||
|
jr nz, .skip2
|
||||||
|
ld a, [wd004]
|
||||||
|
ld [wd002], a
|
||||||
|
ld a, $ff
|
||||||
|
ld [wd004], a
|
||||||
|
jr .skip
|
||||||
|
|
||||||
|
.skip2
|
||||||
|
ld [wd002], a
|
||||||
|
ld a, $ff
|
||||||
|
ld [wd003], a
|
||||||
|
|
||||||
|
.skip
|
||||||
|
ld a, [wd003]
|
||||||
|
cp $ff
|
||||||
|
ret nz
|
||||||
|
ld b, a
|
||||||
|
ld a, [wd004]
|
||||||
|
ld [wd003], a
|
||||||
|
ld a, b
|
||||||
|
ld [wd004], a
|
||||||
|
ret
|
||||||
|
; 4adf7
|
||||||
|
|
||||||
|
Function4adf7: ; 4adf7
|
||||||
|
ld a, [wd019]
|
||||||
|
bit 0, a
|
||||||
|
ret z
|
||||||
|
ld a, [PartyCount]
|
||||||
|
inc a
|
||||||
|
ld [MenuSelection2], a
|
||||||
|
ld a, $1
|
||||||
|
ld [wcfaa], a
|
||||||
|
ld a, [wd019]
|
||||||
|
res 0, a
|
||||||
|
ld [wd019], a
|
||||||
|
ret
|
||||||
|
; 4ae12
|
42
wram.asm
42
wram.asm
@ -104,28 +104,30 @@ channel_struct: MACRO
|
|||||||
\1Octave:: db ; 7-0 (0 is highest)
|
\1Octave:: db ; 7-0 (0 is highest)
|
||||||
\1StartingOctave:: db ; raises existing octaves (to repeat phrases)
|
\1StartingOctave:: db ; raises existing octaves (to repeat phrases)
|
||||||
\1NoteDuration:: db ; frames remaining for the current note
|
\1NoteDuration:: db ; frames remaining for the current note
|
||||||
ds 1 ; c117
|
\1Field0x16:: ds 1 ; c117
|
||||||
ds 1 ; c118
|
ds 1 ; c118
|
||||||
\1LoopCount:: db
|
\1LoopCount:: db
|
||||||
\1Tempo:: dw
|
\1Tempo:: dw
|
||||||
\1Tracks:: db ; hi:left lo:right
|
\1Tracks:: db ; hi:left lo:right
|
||||||
ds 1 ; c11d
|
\1Field0x1c:: ds 1 ; c11d
|
||||||
\1VibratoDelayCount:: db ; initialized by \1VibratoDelay
|
\1VibratoDelayCount:: db ; initialized by \1VibratoDelay
|
||||||
\1VibratoDelay:: db ; number of frames a note plays until vibrato starts
|
\1VibratoDelay:: db ; number of frames a note plays until vibrato starts
|
||||||
\1VibratoExtent:: db
|
\1VibratoExtent:: db
|
||||||
\1VibratoRate:: db ; hi:frames for each alt lo:frames to the next alt
|
\1VibratoRate:: db ; hi:frames for each alt lo:frames to the next alt
|
||||||
ds 1 ; c122
|
\1Field0x21:: ds 1 ; c122
|
||||||
ds 1 ; c123
|
\1Field0x22:: ds 1 ; c123
|
||||||
ds 1 ; c124
|
\1Field0x23:: ds 1 ; c124
|
||||||
ds 1 ; c125
|
\1Field0x24:: ds 1 ; c125
|
||||||
ds 1 ; c126
|
\1Field0x25:: ds 1 ; c126
|
||||||
ds 1 ; c127
|
ds 1 ; c127
|
||||||
\1CryPitch:: dw
|
\1CryPitch:: dw
|
||||||
ds 4
|
\1Field0x29:: ds 1
|
||||||
|
\1Field0x2a:: ds 2
|
||||||
|
\1Field0x2c:: ds 1
|
||||||
\1NoteLength:: db ; frames per 16th note
|
\1NoteLength:: db ; frames per 16th note
|
||||||
ds 1 ; c12f
|
\1Field0x2e:: ds 1 ; c12f
|
||||||
ds 1 ; c130
|
\1Field0x2f:: ds 1 ; c130
|
||||||
ds 1 ; c131
|
\1Field0x30:: ds 1 ; c131
|
||||||
ds 1 ; c132
|
ds 1 ; c132
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
@ -1065,18 +1067,27 @@ OverworldMapEnd::
|
|||||||
ds OverworldMap - @
|
ds OverworldMap - @
|
||||||
|
|
||||||
wc800:: ds 1
|
wc800:: ds 1
|
||||||
|
wMysteryGiftPlayerID::
|
||||||
wc801:: ds 1
|
wc801:: ds 1
|
||||||
wc802:: ds 1
|
wc802:: ds 1
|
||||||
|
wMysteryGiftPlayerName::
|
||||||
wc803:: ds 4
|
wc803:: ds 4
|
||||||
wc807:: ds 9
|
wc807:: ds 7
|
||||||
wc810:: ds 3
|
wMysteryGiftPlayerDexCaught:: ds 1
|
||||||
wc813:: ds 5
|
wc80f:: ds 1
|
||||||
|
wc810:: ds 1
|
||||||
|
wc811:: ds 1
|
||||||
|
wMysteryGiftPlayerBackupItem::
|
||||||
|
wc812:: ds 1
|
||||||
|
wc813:: ds 1
|
||||||
|
wc814:: ds 4
|
||||||
wc818:: ds 8
|
wc818:: ds 8
|
||||||
wc820:: ds 1
|
wc820:: ds 1
|
||||||
wc821:: ds 15
|
wc821:: ds 15
|
||||||
wc830:: ds 16
|
wc830:: ds 16
|
||||||
wc840:: ds 16
|
wc840:: ds 16
|
||||||
wMysteryGiftTrainerData:: ds (1 + 1 + NUM_MOVES) * PARTY_LENGTH + 2
|
wMysteryGiftTrainerData:: ds (1 + 1 + NUM_MOVES) * PARTY_LENGTH + 2
|
||||||
|
wMysteryGiftTrainerDataEnd::
|
||||||
ds wMysteryGiftTrainerData - @
|
ds wMysteryGiftTrainerData - @
|
||||||
wc850:: ds 16
|
wc850:: ds 16
|
||||||
wc860:: ds 16
|
wc860:: ds 16
|
||||||
@ -1102,7 +1113,8 @@ wc930:: ds 16
|
|||||||
wc940:: ds 16
|
wc940:: ds 16
|
||||||
wc950:: ds 16
|
wc950:: ds 16
|
||||||
wc960:: ds 2
|
wc960:: ds 2
|
||||||
wc962:: ds 14
|
wc962:: ds 2
|
||||||
|
wc964:: ds 12
|
||||||
wc970:: ds 16
|
wc970:: ds 16
|
||||||
wc980:: ds 16
|
wc980:: ds 16
|
||||||
wc990:: ds 16
|
wc990:: ds 16
|
||||||
|
Loading…
Reference in New Issue
Block a user