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
|
||||
notetype $c, $92
|
||||
octave 3
|
||||
unknownmusic0xe0 $0, $4a
|
||||
unknownmusic0xe0 $0, 4, A_
|
||||
note C_, 1
|
||||
unknownmusic0xe0 $0, $4a
|
||||
unknownmusic0xe0 $0, 4, A_
|
||||
note G_, 1
|
||||
unknownmusic0xe0 $0, $4a
|
||||
unknownmusic0xe0 $0, 4, A_
|
||||
note C_, 1
|
||||
unknownmusic0xe0 $0, $4a
|
||||
unknownmusic0xe0 $0, 4, A_
|
||||
note G_, 1
|
||||
note __, 4
|
||||
dutycycle $3
|
||||
|
@ -11,16 +11,16 @@ Music_HealPokemon_Ch1: ; f06a0
|
||||
tone $0001
|
||||
notetype $c, $81
|
||||
note __, 2
|
||||
unknownmusic0xe0 $0, $40
|
||||
unknownmusic0xe0 $0, 4, __
|
||||
note B_, 2
|
||||
unknownmusic0xe0 $0, $55
|
||||
unknownmusic0xe0 $0, 5, E_
|
||||
note B_, 2
|
||||
unknownmusic0xe0 $0, $45
|
||||
unknownmusic0xe0 $0, 4, E_
|
||||
note E_, 2
|
||||
note __, 4
|
||||
unknownmusic0xe0 $0, $30
|
||||
unknownmusic0xe0 $0, 3, __
|
||||
note E_, 4
|
||||
unknownmusic0xe0 $0, $40
|
||||
unknownmusic0xe0 $0, 4, __
|
||||
note B_, 4
|
||||
endchannel
|
||||
; f06c4
|
||||
|
@ -702,22 +702,23 @@ Function104ddd: ; 104ddd (41:4ddd)
|
||||
ld e, d
|
||||
ld a, $1
|
||||
ld [hPrintNum9], a
|
||||
.asm_104de4
|
||||
.loop
|
||||
call Function105038
|
||||
ld b, $2
|
||||
ld c, rRP % $100
|
||||
ld a, [hMoneyTemp + 1]
|
||||
bit 1, a
|
||||
jr z, .asm_104df6
|
||||
jr z, .next
|
||||
ld a, $10
|
||||
ld [hPrintNum10], a
|
||||
ret
|
||||
.asm_104df6
|
||||
|
||||
.next
|
||||
bit 0, a
|
||||
jr nz, asm_104e3a
|
||||
ld a, [$ff00+c]
|
||||
and b
|
||||
jr nz, .asm_104de4
|
||||
jr nz, .loop
|
||||
|
||||
Function104dfe: ; 104dfe (41:4dfe)
|
||||
ld c, rRP % $100
|
||||
@ -1181,11 +1182,11 @@ RestoreMysteryGift: ; 1050ea (41:50ea)
|
||||
Function1050fb: ; 1050fb (41:50fb)
|
||||
ld hl, wMysteryGiftTrainerData
|
||||
xor a
|
||||
ld b, $26
|
||||
.asm_105101
|
||||
ld b, wMysteryGiftTrainerDataEnd - wMysteryGiftTrainerData
|
||||
.loop
|
||||
ld [hli], a
|
||||
dec b
|
||||
jr nz, .asm_105101
|
||||
jr nz, .loop
|
||||
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)
|
||||
dw .zero ; town map
|
||||
dw .one ; bouncing mon icons
|
||||
dw .two
|
||||
dw .three
|
||||
dw .one ; bouncing mon icon
|
||||
dw .two ; bouncing mon icon, selected
|
||||
dw .three ; bouncing mon icon, menu open
|
||||
dw .four
|
||||
dw .five
|
||||
dw .six ; Game Freak logo
|
||||
@ -46,7 +46,7 @@ endr
|
||||
dw .twentyeight
|
||||
dw .twentynine ; intro suicune
|
||||
dw .thirty ; intro pichu wooper
|
||||
dw .thirtyone
|
||||
dw .thirtyone ; celebi
|
||||
dw .thirtytwo ; intro unown
|
||||
dw .thirtythree ; intro unown F with suicune leaping up
|
||||
dw .thirtyfour ; intro suicune facing away from us
|
||||
@ -65,7 +65,7 @@ endr
|
||||
|
||||
ld hl, SPRITEANIMSTRUCT_XCOORD
|
||||
add hl, bc
|
||||
ld [hl], $10
|
||||
ld [hl], 8 * 2
|
||||
|
||||
ld hl, SPRITEANIMSTRUCT_YOFFSET
|
||||
add hl, bc
|
||||
@ -75,7 +75,7 @@ endr
|
||||
.two: ; 8d2b9 (23:52b9)
|
||||
ld hl, SPRITEANIMSTRUCT_XCOORD
|
||||
add hl, bc
|
||||
ld [hl], $18
|
||||
ld [hl], 8 * 3
|
||||
|
||||
ld hl, SPRITEANIMSTRUCT_0C
|
||||
add hl, bc
|
||||
@ -93,24 +93,24 @@ endr
|
||||
add hl, bc
|
||||
ld a, d
|
||||
and $10 ; bit 4
|
||||
jr z, .asm_8d2df
|
||||
jr z, .load_zero
|
||||
ld a, e
|
||||
and a
|
||||
jr z, .asm_8d2e6
|
||||
jr z, .load_minus_two
|
||||
cp $1
|
||||
jr z, .asm_8d2e2
|
||||
.asm_8d2df
|
||||
jr z, .load_minus_one
|
||||
.load_zero
|
||||
xor a
|
||||
ld [hl], a
|
||||
ret
|
||||
|
||||
.asm_8d2e2
|
||||
ld a, $ff
|
||||
.load_minus_one
|
||||
ld a, -1
|
||||
ld [hl], a
|
||||
ret
|
||||
|
||||
.asm_8d2e6
|
||||
ld a, $fe
|
||||
.load_minus_two
|
||||
ld a, -2
|
||||
ld [hl], a
|
||||
ret
|
||||
|
||||
@ -120,17 +120,17 @@ endr
|
||||
ld hl, SPRITEANIMSTRUCT_INDEX
|
||||
add hl, bc
|
||||
cp [hl]
|
||||
jr z, .asm_8d2fb
|
||||
jr z, .three_offset_right
|
||||
|
||||
ld hl, SPRITEANIMSTRUCT_XCOORD
|
||||
add hl, bc
|
||||
ld [hl], $10
|
||||
ld [hl], 8 * 2
|
||||
ret
|
||||
|
||||
.asm_8d2fb
|
||||
.three_offset_right
|
||||
ld hl, SPRITEANIMSTRUCT_XCOORD
|
||||
add hl, bc
|
||||
ld [hl], $18
|
||||
ld [hl], 8 * 3
|
||||
ret
|
||||
|
||||
.four: ; 8d302 (23:5302)
|
||||
|
@ -76,7 +76,7 @@ LoadCelebiGFX: ; 49912
|
||||
lb bc, BANK(SpecialCelebiLeafGFX), 4
|
||||
call Request2bpp
|
||||
ld de, SpecialCelebiGFX
|
||||
ld hl, VTiles1 tile $04
|
||||
ld hl, VTiles0 tile $84
|
||||
lb bc, BANK(SpecialCelebiGFX), $10
|
||||
call Request2bpp
|
||||
xor a
|
||||
@ -240,12 +240,12 @@ CelebiEvent_Cosine: ; 49b3b (12:5b3b)
|
||||
add $10
|
||||
and $3f
|
||||
cp $20
|
||||
jr nc, .asm_49b48
|
||||
jr nc, .negative
|
||||
call .SineFunction
|
||||
ld a, h
|
||||
ret
|
||||
|
||||
.asm_49b48
|
||||
.negative
|
||||
and $1f
|
||||
call .SineFunction
|
||||
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
|
||||
rWY EQU $ff4a ; Window Y Position (R/W)
|
||||
rWX EQU $ff4b ; Window X Position minus 7 (R/W)
|
||||
rLCDMODE EQU $ff4c
|
||||
rKEY1 EQU $ff4d ; CGB Mode Only - Prepare Speed Switch
|
||||
rVBK EQU $ff4f ; CGB Mode Only - VRAM Bank
|
||||
rBLCK EQU $ff50
|
||||
rHDMA1 EQU $ff51 ; CGB Mode Only - New DMA Source, High
|
||||
rHDMA2 EQU $ff52 ; CGB Mode Only - New DMA Source, Low
|
||||
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
|
||||
B_ EQU 12
|
||||
|
||||
|
||||
enum_start $d8
|
||||
enum notetype_cmd
|
||||
octave: macro
|
||||
db $d8 - (\1)
|
||||
db notetype_cmd - (\1)
|
||||
endm
|
||||
|
||||
notetype: macro
|
||||
db $d8
|
||||
db notetype_cmd
|
||||
db \1 ; note_length
|
||||
if _NARG >= 2
|
||||
db \2 ; intensity
|
||||
endc
|
||||
endm
|
||||
|
||||
enum forceoctave_cmd
|
||||
forceoctave: macro
|
||||
db $d9
|
||||
db forceoctave_cmd
|
||||
db \1 ; octave
|
||||
endm
|
||||
|
||||
enum tempo_cmd
|
||||
tempo: macro
|
||||
db $da
|
||||
db tempo_cmd
|
||||
bigdw \1 ; tempo
|
||||
endm
|
||||
|
||||
enum dutycycle_cmd
|
||||
dutycycle: macro
|
||||
db $db
|
||||
db dutycycle_cmd
|
||||
db \1 ; duty_cycle
|
||||
endm
|
||||
|
||||
enum intensity_cmd
|
||||
intensity: macro
|
||||
db $dc
|
||||
db intensity_cmd
|
||||
db \1 ; intensity
|
||||
endm
|
||||
|
||||
enum soundinput_cmd
|
||||
soundinput: macro
|
||||
db $dd
|
||||
db soundinput_cmd
|
||||
db \1 ; input
|
||||
endm
|
||||
|
||||
enum unknownmusic0xde_cmd
|
||||
unknownmusic0xde: macro
|
||||
db $de
|
||||
db unknownmusic0xde_cmd
|
||||
db \1 ; unknown
|
||||
endm
|
||||
|
||||
enum togglesfx_cmd
|
||||
togglesfx: macro
|
||||
db $df
|
||||
db togglesfx_cmd
|
||||
endm
|
||||
|
||||
enum unknownmusic0xe0_cmd
|
||||
unknownmusic0xe0: macro
|
||||
db $e0
|
||||
db unknownmusic0xe0_cmd
|
||||
db \1 ; unknown
|
||||
db \2 ; unknown
|
||||
; db \2 ; unknown
|
||||
dn \2, \3 ; octave, pitch
|
||||
endm
|
||||
|
||||
enum vibrato_cmd
|
||||
vibrato: macro
|
||||
db $e1
|
||||
db vibrato_cmd
|
||||
db \1 ; delay
|
||||
db \2 ; extent
|
||||
endm
|
||||
|
||||
enum unknownmusic0xe2_cmd
|
||||
unknownmusic0xe2: macro
|
||||
db $e2
|
||||
db unknownmusic0xe2_cmd
|
||||
db \1 ; unknown
|
||||
endm
|
||||
|
||||
enum togglenoise_cmd
|
||||
togglenoise: macro
|
||||
db $e3
|
||||
db togglenoise_cmd
|
||||
db \1 ; id
|
||||
endm
|
||||
|
||||
enum panning_cmd
|
||||
panning: macro
|
||||
db $e4
|
||||
db panning_cmd
|
||||
db \1 ; tracks
|
||||
endm
|
||||
|
||||
enum volume_cmd
|
||||
volume: macro
|
||||
db $e5
|
||||
db volume_cmd
|
||||
db \1 ; volume
|
||||
endm
|
||||
|
||||
enum tone_cmd
|
||||
tone: macro
|
||||
db $e6
|
||||
db tone_cmd
|
||||
bigdw \1 ; tone
|
||||
endm
|
||||
|
||||
enum unknownmusic0xe7_cmd
|
||||
unknownmusic0xe7: macro
|
||||
db $e7
|
||||
db unknownmusic0xe7_cmd
|
||||
db \1 ; unknown
|
||||
endm
|
||||
|
||||
enum unknownmusic0xe8_cmd
|
||||
unknownmusic0xe8: macro
|
||||
db $e8
|
||||
db unknownmusic0xe8_cmd
|
||||
db \1 ; unknown
|
||||
endm
|
||||
|
||||
enum globaltempo_cmd
|
||||
globaltempo: macro
|
||||
db $e9
|
||||
db globaltempo_cmd
|
||||
bigdw \1 ; value
|
||||
endm
|
||||
|
||||
enum restartchannel_cmd
|
||||
restartchannel: macro
|
||||
db $ea
|
||||
db restartchannel_cmd
|
||||
dw \1 ; address
|
||||
endm
|
||||
|
||||
enum newsong_cmd
|
||||
newsong: macro
|
||||
db $eb
|
||||
db newsong_cmd
|
||||
bigdw \1 ; id
|
||||
endm
|
||||
|
||||
enum sfxpriorityon_cmd
|
||||
sfxpriorityon: macro
|
||||
db $ec
|
||||
db sfxpriorityon_cmd
|
||||
endm
|
||||
|
||||
enum sfxpriorityoff_cmd
|
||||
sfxpriorityoff: macro
|
||||
db $ed
|
||||
db sfxpriorityoff_cmd
|
||||
endm
|
||||
|
||||
enum unknownmusic0xee_cmd
|
||||
unknownmusic0xee: macro
|
||||
db $ee
|
||||
db unknownmusic0xee_cmd
|
||||
dw \1 ; address
|
||||
endm
|
||||
|
||||
enum stereopanning_cmd
|
||||
stereopanning: macro
|
||||
db $ef
|
||||
db stereopanning_cmd
|
||||
db \1 ; tracks
|
||||
endm
|
||||
|
||||
enum sfxtogglenoise_cmd
|
||||
sfxtogglenoise: macro
|
||||
db $f0
|
||||
db sfxtogglenoise_cmd
|
||||
db \1 ; id
|
||||
endm
|
||||
|
||||
enum music0xf1_cmd
|
||||
music0xf1: macro
|
||||
db $f1
|
||||
db music0xf1_cmd
|
||||
endm
|
||||
|
||||
enum music0xf2_cmd
|
||||
music0xf2: macro
|
||||
db $f2
|
||||
db music0xf2_cmd
|
||||
endm
|
||||
|
||||
enum music0xf3_cmd
|
||||
music0xf3: macro
|
||||
db $f3
|
||||
db music0xf3_cmd
|
||||
endm
|
||||
|
||||
enum music0xf4_cmd
|
||||
music0xf4: macro
|
||||
db $f4
|
||||
db music0xf4_cmd
|
||||
endm
|
||||
|
||||
enum music0xf5_cmd
|
||||
music0xf5: macro
|
||||
db $f5
|
||||
db music0xf5_cmd
|
||||
endm
|
||||
|
||||
enum music0xf6_cmd
|
||||
music0xf6: macro
|
||||
db $f6
|
||||
db music0xf6_cmd
|
||||
endm
|
||||
|
||||
enum music0xf7_cmd
|
||||
music0xf7: macro
|
||||
db $f7
|
||||
db music0xf7_cmd
|
||||
endm
|
||||
|
||||
enum music0xf8_cmd
|
||||
music0xf8: macro
|
||||
db $f8
|
||||
db music0xf8_cmd
|
||||
endm
|
||||
|
||||
enum unknownmusic0xf9_cmd
|
||||
unknownmusic0xf9: macro
|
||||
db $f9
|
||||
db unknownmusic0xf9_cmd
|
||||
endm
|
||||
|
||||
enum setcondition_cmd
|
||||
setcondition: macro
|
||||
db $fa
|
||||
db setcondition_cmd
|
||||
db \1 ; condition
|
||||
endm
|
||||
|
||||
enum jumpif_cmd
|
||||
jumpif: macro
|
||||
db $fb
|
||||
db jumpif_cmd
|
||||
db \1 ; condition
|
||||
dw \2 ; address
|
||||
endm
|
||||
|
||||
enum jumpchannel_cmd
|
||||
jumpchannel: macro
|
||||
db $fc
|
||||
db jumpchannel_cmd
|
||||
dw \1 ; address
|
||||
endm
|
||||
|
||||
enum loopchannel_cmd
|
||||
loopchannel: macro
|
||||
db $fd
|
||||
db loopchannel_cmd
|
||||
db \1 ; count
|
||||
dw \2 ; address
|
||||
endm
|
||||
|
||||
enum callchannel_cmd
|
||||
callchannel: macro
|
||||
db $fe
|
||||
db callchannel_cmd
|
||||
dw \1 ; address
|
||||
endm
|
||||
|
||||
enum endchannel_cmd
|
||||
endchannel: macro
|
||||
db $ff
|
||||
db endchannel_cmd
|
||||
endm
|
||||
|
@ -89,7 +89,7 @@ IlexForest_MapScriptHeader:
|
||||
appear ILEXFOREST_BIRD
|
||||
return
|
||||
|
||||
YoungsterScript_0x6eb7b:
|
||||
IlexForestCharcoalApprenticeScript:
|
||||
faceplayer
|
||||
loadfont
|
||||
checkevent EVENT_HERDED_FARFETCHD
|
||||
@ -347,16 +347,16 @@ IlexForestFarfetchdScript:
|
||||
checkcode VAR_FACING
|
||||
end
|
||||
|
||||
BlackBeltScript_0x6edae:
|
||||
IlexForestCharcoalMasterScript:
|
||||
faceplayer
|
||||
loadfont
|
||||
checkevent EVENT_GOT_HM01_CUT
|
||||
iftrue .AlreadyGotCut
|
||||
writetext UnknownText_0x6f099
|
||||
writetext Text_CharcoalMasterIntro
|
||||
buttonsound
|
||||
verbosegiveitem HM_CUT
|
||||
setevent EVENT_GOT_HM01_CUT
|
||||
writetext UnknownText_0x6f141
|
||||
writetext Text_CharcoalMasterOutro
|
||||
waitbutton
|
||||
closetext
|
||||
setevent EVENT_ILEX_FOREST_FARFETCHD
|
||||
@ -368,25 +368,25 @@ BlackBeltScript_0x6edae:
|
||||
end
|
||||
|
||||
.AlreadyGotCut:
|
||||
writetext UnknownText_0x6f1c0
|
||||
writetext Text_CharcoalMasterTalkAfter
|
||||
waitbutton
|
||||
closetext
|
||||
end
|
||||
|
||||
RockerScript_0x6edde:
|
||||
IlexForestHeadbuttGuyScript:
|
||||
faceplayer
|
||||
loadfont
|
||||
checkevent EVENT_GOT_TM02_HEADBUTT
|
||||
iftrue UnknownScript_0x6edf3
|
||||
writetext UnknownText_0x6f21b
|
||||
iftrue .AlreadyGotHeadbutt
|
||||
writetext Text_HeadbuttIntro
|
||||
buttonsound
|
||||
verbosegiveitem TM_HEADBUTT
|
||||
iffalse UnknownScript_0x6edf7
|
||||
iffalse .BagFull
|
||||
setevent EVENT_GOT_TM02_HEADBUTT
|
||||
UnknownScript_0x6edf3:
|
||||
writetext UnknownText_0x6f26d
|
||||
.AlreadyGotHeadbutt:
|
||||
writetext Text_HeadbuttOutro
|
||||
waitbutton
|
||||
UnknownScript_0x6edf7:
|
||||
.BagFull:
|
||||
closetext
|
||||
end
|
||||
|
||||
@ -396,13 +396,13 @@ TrainerBug_catcherWayne:
|
||||
Bug_catcherWayneScript:
|
||||
end_if_just_battled
|
||||
loadfont
|
||||
writetext UnknownText_0x6f571
|
||||
writetext Bug_catcherWayneAfterText
|
||||
waitbutton
|
||||
closetext
|
||||
end
|
||||
|
||||
LassScript_0x6ee0d:
|
||||
jumptextfaceplayer UnknownText_0x6f2af
|
||||
IlexForestLassScript:
|
||||
jumptextfaceplayer Text_IlexForestLass
|
||||
|
||||
ItemFragment_0x6ee10:
|
||||
db REVIVE, 1
|
||||
@ -432,7 +432,7 @@ IlexForestBoulder:
|
||||
jumpstd strengthboulder
|
||||
|
||||
MapIlexForestSignpost0Script:
|
||||
jumptext UnknownText_0x6f2de
|
||||
jumptext Text_IlexForestSignpost0
|
||||
|
||||
MapIlexForestSignpost4Script:
|
||||
checkevent EVENT_FOREST_IS_RESTLESS
|
||||
@ -443,11 +443,11 @@ MapIlexForestSignpost4Script:
|
||||
checkitem GS_BALL
|
||||
iftrue .AskCelebiEvent
|
||||
.DontDoCelebiEvent:
|
||||
jumptext UnknownText_0x6f358
|
||||
jumptext Text_IlexForestShrine
|
||||
|
||||
.AskCelebiEvent:
|
||||
loadfont
|
||||
writetext UnknownText_0x6f394
|
||||
writetext Text_ShrineCelebiEvent
|
||||
yesorno
|
||||
iftrue .CelebiEvent
|
||||
closetext
|
||||
@ -459,7 +459,7 @@ MapIlexForestSignpost4Script:
|
||||
setevent EVENT_AZALEA_TOWN_KURT
|
||||
disappear ILEXFOREST_LASS
|
||||
clearevent EVENT_ROUTE_34_ILEX_FOREST_GATE_LASS
|
||||
writetext UnknownText_0x6f43b
|
||||
writetext Text_InsertGSBall
|
||||
waitbutton
|
||||
closetext
|
||||
pause 20
|
||||
@ -480,7 +480,7 @@ MapIlexForestSignpost4Script:
|
||||
appear ILEXFOREST_KURT
|
||||
applymovement ILEXFOREST_KURT, MovementData_0x6ef4e
|
||||
loadfont
|
||||
writetext UnknownText_0x6f452
|
||||
writetext Text_KurtCaughtCelebi
|
||||
waitbutton
|
||||
closetext
|
||||
applymovement ILEXFOREST_KURT, MovementData_0x6ef53
|
||||
@ -781,7 +781,7 @@ Text_Kwaaaa:
|
||||
text "FARFETCH'D: Kwaa!"
|
||||
done
|
||||
|
||||
UnknownText_0x6f099:
|
||||
Text_CharcoalMasterIntro:
|
||||
text "Ah! My FARFETCH'D!"
|
||||
|
||||
para "You found it for"
|
||||
@ -802,7 +802,7 @@ UnknownText_0x6f099:
|
||||
line "this."
|
||||
done
|
||||
|
||||
UnknownText_0x6f141:
|
||||
Text_CharcoalMasterOutro:
|
||||
text "That's the CUT HM."
|
||||
line "Teach that to a"
|
||||
|
||||
@ -816,7 +816,7 @@ UnknownText_0x6f141:
|
||||
line "AZALEA to use it."
|
||||
done
|
||||
|
||||
UnknownText_0x6f1c0:
|
||||
Text_CharcoalMasterTalkAfter:
|
||||
text "Do you want to"
|
||||
line "apprentice as a"
|
||||
|
||||
@ -827,7 +827,7 @@ UnknownText_0x6f1c0:
|
||||
line "rate in ten years!"
|
||||
done
|
||||
|
||||
UnknownText_0x6f21b:
|
||||
Text_HeadbuttIntro:
|
||||
text "What am I doing?"
|
||||
|
||||
para "I'm shaking trees"
|
||||
@ -837,20 +837,20 @@ UnknownText_0x6f21b:
|
||||
line "you try it too!"
|
||||
done
|
||||
|
||||
UnknownText_0x6f26d:
|
||||
Text_HeadbuttOutro:
|
||||
text "Rattle trees with"
|
||||
line "HEADBUTT. Some-"
|
||||
cont "times, sleeping"
|
||||
cont "#MON fall out."
|
||||
done
|
||||
|
||||
UnknownText_0x6f2af:
|
||||
Text_IlexForestLass:
|
||||
text "Did something"
|
||||
line "happen to the"
|
||||
cont "forest's guardian?"
|
||||
done
|
||||
|
||||
UnknownText_0x6f2de:
|
||||
Text_IlexForestSignpost0:
|
||||
text "ILEX FOREST is"
|
||||
line "so overgrown with"
|
||||
|
||||
@ -862,7 +862,7 @@ UnknownText_0x6f2de:
|
||||
cont "have been dropped."
|
||||
done
|
||||
|
||||
UnknownText_0x6f358:
|
||||
Text_IlexForestShrine:
|
||||
text "ILEX FOREST"
|
||||
line "SHRINE…"
|
||||
|
||||
@ -871,7 +871,7 @@ UnknownText_0x6f358:
|
||||
cont "protector…"
|
||||
done
|
||||
|
||||
UnknownText_0x6f394:
|
||||
Text_ShrineCelebiEvent:
|
||||
text "ILEX FOREST"
|
||||
line "SHRINE…"
|
||||
|
||||
@ -891,12 +891,12 @@ UnknownText_0x6f394:
|
||||
line "BALL here?"
|
||||
done
|
||||
|
||||
UnknownText_0x6f43b:
|
||||
Text_InsertGSBall:
|
||||
text "<PLAYER> put in the"
|
||||
line "GS BALL."
|
||||
done
|
||||
|
||||
UnknownText_0x6f452:
|
||||
Text_KurtCaughtCelebi:
|
||||
text "Whew, wasn't that"
|
||||
line "something!"
|
||||
|
||||
@ -929,7 +929,7 @@ Bug_catcherWayneBeatenText:
|
||||
line "#MON before…"
|
||||
done
|
||||
|
||||
UnknownText_0x6f571:
|
||||
Bug_catcherWayneAfterText:
|
||||
text "A #MON I've"
|
||||
line "never seen before"
|
||||
|
||||
@ -966,12 +966,12 @@ IlexForest_MapEventHeader:
|
||||
.PersonEvents:
|
||||
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_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_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_ROCKER, 14, 15, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RockerScript_0x6edde, -1
|
||||
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, IlexForestCharcoalMasterScript, EVENT_ILEX_FOREST_CHARCOAL_MASTER
|
||||
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_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_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
|
||||
|
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)
|
||||
\1StartingOctave:: db ; raises existing octaves (to repeat phrases)
|
||||
\1NoteDuration:: db ; frames remaining for the current note
|
||||
ds 1 ; c117
|
||||
\1Field0x16:: ds 1 ; c117
|
||||
ds 1 ; c118
|
||||
\1LoopCount:: db
|
||||
\1Tempo:: dw
|
||||
\1Tracks:: db ; hi:left lo:right
|
||||
ds 1 ; c11d
|
||||
\1Field0x1c:: ds 1 ; c11d
|
||||
\1VibratoDelayCount:: db ; initialized by \1VibratoDelay
|
||||
\1VibratoDelay:: db ; number of frames a note plays until vibrato starts
|
||||
\1VibratoExtent:: db
|
||||
\1VibratoRate:: db ; hi:frames for each alt lo:frames to the next alt
|
||||
ds 1 ; c122
|
||||
ds 1 ; c123
|
||||
ds 1 ; c124
|
||||
ds 1 ; c125
|
||||
ds 1 ; c126
|
||||
\1Field0x21:: ds 1 ; c122
|
||||
\1Field0x22:: ds 1 ; c123
|
||||
\1Field0x23:: ds 1 ; c124
|
||||
\1Field0x24:: ds 1 ; c125
|
||||
\1Field0x25:: ds 1 ; c126
|
||||
ds 1 ; c127
|
||||
\1CryPitch:: dw
|
||||
ds 4
|
||||
\1Field0x29:: ds 1
|
||||
\1Field0x2a:: ds 2
|
||||
\1Field0x2c:: ds 1
|
||||
\1NoteLength:: db ; frames per 16th note
|
||||
ds 1 ; c12f
|
||||
ds 1 ; c130
|
||||
ds 1 ; c131
|
||||
\1Field0x2e:: ds 1 ; c12f
|
||||
\1Field0x2f:: ds 1 ; c130
|
||||
\1Field0x30:: ds 1 ; c131
|
||||
ds 1 ; c132
|
||||
ENDM
|
||||
|
||||
@ -1065,18 +1067,27 @@ OverworldMapEnd::
|
||||
ds OverworldMap - @
|
||||
|
||||
wc800:: ds 1
|
||||
wMysteryGiftPlayerID::
|
||||
wc801:: ds 1
|
||||
wc802:: ds 1
|
||||
wMysteryGiftPlayerName::
|
||||
wc803:: ds 4
|
||||
wc807:: ds 9
|
||||
wc810:: ds 3
|
||||
wc813:: ds 5
|
||||
wc807:: ds 7
|
||||
wMysteryGiftPlayerDexCaught:: ds 1
|
||||
wc80f:: ds 1
|
||||
wc810:: ds 1
|
||||
wc811:: ds 1
|
||||
wMysteryGiftPlayerBackupItem::
|
||||
wc812:: ds 1
|
||||
wc813:: ds 1
|
||||
wc814:: ds 4
|
||||
wc818:: ds 8
|
||||
wc820:: ds 1
|
||||
wc821:: ds 15
|
||||
wc830:: ds 16
|
||||
wc840:: ds 16
|
||||
wMysteryGiftTrainerData:: ds (1 + 1 + NUM_MOVES) * PARTY_LENGTH + 2
|
||||
wMysteryGiftTrainerDataEnd::
|
||||
ds wMysteryGiftTrainerData - @
|
||||
wc850:: ds 16
|
||||
wc860:: ds 16
|
||||
@ -1102,7 +1113,8 @@ wc930:: ds 16
|
||||
wc940:: ds 16
|
||||
wc950:: ds 16
|
||||
wc960:: ds 2
|
||||
wc962:: ds 14
|
||||
wc962:: ds 2
|
||||
wc964:: ds 12
|
||||
wc970:: ds 16
|
||||
wc980:: ds 16
|
||||
wc990:: ds 16
|
||||
|
Loading…
Reference in New Issue
Block a user