A stab at audio engine.

This commit is contained in:
PikalaxALT
2015-12-06 22:36:09 -05:00
parent 6eac26732a
commit 02d05255fe
14 changed files with 1904 additions and 1846 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -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

View File

@@ -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

View File

@@ -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
View 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
View 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

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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

1450
main.asm

File diff suppressed because it is too large Load Diff

View File

@@ -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

File diff suppressed because it is too large Load Diff

View File

@@ -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