Merge branch '_RHH/upcoming' into _RHH/pr/upcoming/messages

This commit is contained in:
Eduardo Quezada 2025-08-28 16:50:18 -04:00
commit 5344d1ec63
502 changed files with 6823 additions and 4303 deletions

View File

@ -43,17 +43,14 @@ body:
label: Version
description: What version of pokeemerald-expansion are you using?
options:
- 1.12.2 (Latest release)
- 1.13.0 (Latest release)
- master (default, unreleased bugfixes)
- upcoming (Edge)
- 1.12.3
- 1.12.2
- 1.12.1
- 1.12.0
- 1.11.4
- 1.11.3
- 1.11.2
- 1.11.1
- 1.11.0
- pre-1.11.0
- pre-1.12.0
validations:
required: true
- type: input

View File

@ -43,17 +43,14 @@ body:
label: Version
description: What version of pokeemerald-expansion are you using?
options:
- 1.12.2 (Latest release)
- 1.13.0 (Latest release)
- master (default, unreleased bugfixes)
- upcoming (Edge)
- 1.12.3
- 1.12.2
- 1.12.1
- 1.12.0
- 1.11.4
- 1.11.3
- 1.11.2
- 1.11.1
- 1.11.0
- pre-1.11.0
- pre-1.12.0
validations:
required: true
- type: input

View File

@ -43,16 +43,14 @@ body:
label: Version
description: What version of pokeemerald-expansion are you using?
options:
- 1.12.2 (Latest release)
- 1.13.0 (Latest release)
- master (default, unreleased bugfixes)
- upcoming (Edge)
- 1.12.3
- 1.12.2
- 1.12.1
- 1.12.0
- 1.11.4
- 1.11.3
- 1.11.1
- 1.11.0
- pre-1.11.0
- pre-1.12.0
validations:
required: true
- type: input

View File

@ -300,7 +300,7 @@ $(TESTELF): $(OBJ_DIR)/ld_script_test.ld $(OBJS) $(TEST_OBJS) libagbsyscall tool
@echo "cd $(OBJ_DIR) && $(LD) -T ld_script_test.ld -o ../../$@ <objects> <test-objects> <lib>"
@cd $(OBJ_DIR) && $(LD) $(TESTLDFLAGS) -T ld_script_test.ld -o ../../$@ $(OBJS_REL) $(TEST_OBJS_REL) $(LIB)
$(FIX) $@ -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) -d0 --silent
$(PATCHELF) $(TESTELF) gTestRunnerArgv "$(TESTS)\0"
$(PATCHELF) $(TESTELF) gTestRunnerArgv "$(TESTS:%*=%)\0"
ifeq ($(GITHUB_REPOSITORY_OWNER),rh-hideout)
TEST_SKIP_IS_FAIL := \x01

View File

@ -17,7 +17,7 @@
If you use **`pokeemerald-expansion`**, please credit **RHH (Rom Hacking Hideout)**. Optionally, include the version number for clarity.
```
Based off RHH's pokeemerald-expansion 1.12.2 https://github.com/rh-hideout/pokeemerald-expansion/
Based off RHH's pokeemerald-expansion 1.13.0 https://github.com/rh-hideout/pokeemerald-expansion/
```
Please consider [crediting all contributors](CREDITS.md) involved in the project!

View File

@ -187,12 +187,8 @@
.4byte \jumpInstr
.endm
.macro jumpifstatus3condition battler:req, flags:req, jumpIfTrue:req, jumpInstr:req
.macro unused_0x21
.byte 0x21
.byte \battler
.4byte \flags
.byte \jumpIfTrue
.4byte \jumpInstr
.endm
.macro jumpbasedontype battler:req, type:req, jumpIfType:req, jumpInstr:req
@ -738,9 +734,8 @@
.4byte \jumpInstr
.endm
.macro setmiracleeye failInstr:req
.macro unused_0x83
.byte 0x83
.4byte \failInstr
.endm
.macro jumpifuproarwakes jumpInstr:req
@ -1085,7 +1080,7 @@
tryfiretwoturnmovenowbyeffect \battler, FALSE, \jumpInstr
.endm
.macro setminimize
.macro unused_0xC7
.byte 0xc7
.endm
@ -1191,9 +1186,10 @@
.4byte \failInstr
.endm
.macro setuserstatus3 flags:req, failInstr:req
.macro trysetvolatile battler:req, _volatile:req, failInstr:req
.byte 0xdd
.4byte \flags
.byte \battler
.byte \_volatile
.4byte \failInstr
.endm
@ -1437,9 +1433,8 @@
callnative BS_TryRevertWeatherForm
.endm
.macro trysetoctolock battler:req, failInstr:req
.macro trysetoctolock failInstr:req
callnative BS_TrySetOctolock
.byte \battler
.4byte \failInstr
.endm
@ -1727,6 +1722,10 @@
.byte \battler
.endm
.macro resetterrainabilityflags
callnative BS_ResetTerrainAbilityFlags
.endm
@ Stores Healing Wish effect.
.macro storehealingwish battler:req
callnative BS_StoreHealingWish
@ -1884,14 +1883,6 @@
jumpifhalfword CMP_NOT_EQUAL, gChosenMove, \move, \jumpInstr
.endm
.macro jumpifstatus3 battler:req, flags:req, jumpInstr:req
jumpifstatus3condition \battler, \flags, FALSE, \jumpInstr
.endm
.macro jumpifnostatus3 battler:req, flags:req, jumpInstr:req
jumpifstatus3condition \battler, \flags, TRUE, \jumpInstr
.endm
.macro jumpifmovehadnoeffect jumpInstr:req
jumpifmoveresultflags MOVE_RESULT_NO_EFFECT, \jumpInstr
.endm

View File

@ -1876,6 +1876,7 @@
@ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made.
@ Lists of options are provided in argv.
@ If ignoreBPress is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button.
@ For a simple menu supply DYN_MULTICHOICE_CB_NONE in callbacks.
.macro dynmultichoice left:req, top:req, ignoreBPress:req, maxBeforeScroll:req, initialSelected:req, callbacks:req argv:vararg
_dynmultichoice \left, \top, \ignoreBPress, \maxBeforeScroll, FALSE, \initialSelected, \callbacks, \argv
.endm
@ -2175,7 +2176,7 @@
setvar VAR_0x8000, \evoMethod
setvar VAR_0x8001, \canStopEvo
setvar VAR_0x8002, \tryMultiple
special TrySpecialOverworldEvo
special TrySpecialScriptEvolution
.endm
.macro ai_vs_ai_battle trainer1:req, trainer2:req

View File

@ -11,3 +11,41 @@
.space 1 @ Padding
.2byte \unknown
.endm
.macro voice_group label:req, starting_note
.align 2
.ifb \starting_note
.global voicegroup_\label
voicegroup_\label:
.else
.set voicegroup_\label, . - \starting_note * 0xC
.endif
.endm
.macro keysplit label:req, starting_note
.ifb \starting_note
.global keysplit_\label
keysplit_\label:
.set _last_note, 0
.else
.set keysplit_\label, . - \starting_note
.set _last_note, \starting_note
.endif
.set _last_split, 0
.endm
.macro split index:req, ending_note:req
.if \ending_note < _last_note
.if _last_split == 0
.error "split's ending_note earlier than previous keysplit's starting_note"
.else
.error "split's ending_note earlier than previous split's ending_note"
.endif
.else
.rept \ending_note - _last_note
.byte \index
.endr
.endif
.set _last_note, \ending_note
.set _last_split, 1
.endm

View File

@ -31084,6 +31084,17 @@ gBattleAnimStatus_Nightmare::
clearmonbg ANIM_DEF_PARTNER
end
gBattleAnimStatus_Frostbite::
playsewithpan SE_M_ICY_WIND, 0
loadspritegfx ANIM_TAG_ICE_CRYSTALS
monbg ANIM_DEF_PARTNER
splitbgprio ANIM_TARGET
call IceCrystalEffectShort
createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_TARGET, 5, 7, 0, RGB(0, 20, 31)
waitforvisualfinish
clearmonbg ANIM_DEF_PARTNER
end
gBattleAnimGeneral_StatsChange::
createvisualtask AnimTask_StatsChange, 5
waitforvisualfinish
@ -31598,6 +31609,7 @@ MegaEvolutionSpinEffect:
return
gBattleAnimGeneral_TeraCharge::
createvisualtask AnimTask_HideOpponentShadows, 2 @ Hide opponent shadows so they don't flicker between battle anims
loadspritegfx ANIM_TAG_TERA_CRYSTAL
loadspritegfx ANIM_TAG_TERA_SHATTER
loadspritegfx ANIM_TAG_FOCUS_ENERGY
@ -31635,6 +31647,7 @@ TeraChargeParticles:
return
gBattleAnimGeneral_TeraActivate::
createvisualtask AnimTask_SetOpponentShadowCallbacks, 2 @ Restore shadows hidden in the charge script
loadspritegfx ANIM_TAG_TERA_SYMBOL
loadspritegfx ANIM_TAG_SPARKLE_6
createvisualtask AnimTask_HideSwapSprite, 2, 1, 0

View File

@ -146,7 +146,7 @@ BattleScript_EffectShedTail::
jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_ButItFailed
setsubstitute
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_SUBSTITUTE_FAILED, BattleScript_SubstituteString
orword gHitMarker, HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_PASSIVE_HP_UPDATE
attackanimation
waitanimation
healthbarupdate BS_ATTACKER
@ -171,7 +171,7 @@ BattleScript_EffectFilletAway::
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_SPEED, MAX_STAT_STAGE, BattleScript_ButItFailed
BattleScript_FilletAwayTryAttack::
halvehp BattleScript_ButItFailed
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
attackanimation
waitanimation
setstatchanger STAT_ATK, 2, FALSE
@ -199,12 +199,13 @@ BattleScript_EffectDoodle::
attackstring
ppreduce
trycopyability BS_ATTACKER, BattleScript_ButItFailed
saveattacker
attackanimation
waitanimation
setbyte gBattleCommunication, 0
goto BattleScript_EffectDoodle_AfterCopy
BattleScript_EffectDoodle_CopyAbility:
trycopyability BS_ATTACKER, BattleScript_MoveEnd
trycopyability BS_ATTACKER, BattleScript_EffectDoodleMoveEnd
BattleScript_EffectDoodle_AfterCopy:
copybyte gBattlerAbility, gBattlerAttacker
call BattleScript_AbilityPopUpOverwriteThenNormal
@ -214,8 +215,10 @@ BattleScript_EffectDoodle_AfterCopy:
switchinabilities BS_ATTACKER
jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, 0x0, BattleScript_MoveEnd
addbyte gBattleCommunication, 1
jumpifnoally BS_ATTACKER, BattleScript_MoveEnd
jumpifnoally BS_ATTACKER, BattleScript_EffectDoodleMoveEnd
setallytonextattacker BattleScript_EffectDoodle_CopyAbility
BattleScript_EffectDoodleMoveEnd:
restoreattacker
goto BattleScript_MoveEnd
BattleScript_EffectGlaiveRush::
@ -403,7 +406,7 @@ BattleScript_SaltCureExtraDamage::
end2
BattleScript_HurtTarget_NoString:
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
return
@ -822,7 +825,7 @@ BattleScript_EffectClangorousSoul::
attackstring
ppreduce
cutonethirdhpandraisestats BattleScript_ButItFailed
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_BIDE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_IGNORE_DISGUISE
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_BIDE | HITMARKER_PASSIVE_HP_UPDATE | HITMARKER_IGNORE_DISGUISE
attackanimation
waitanimation
healthbarupdate BS_ATTACKER
@ -836,7 +839,7 @@ BattleScript_EffectOctolock::
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
trysetoctolock BS_TARGET, BattleScript_ButItFailed
trysetoctolock BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_CANTESCAPEBECAUSEOFCURRENTMOVE
@ -1180,7 +1183,7 @@ BattleScript_StrengthSapAnimation:
@ Drain HP without lowering a stat
BattleScript_StrengthSapHp:
jumpifability BS_TARGET, ABILITY_LIQUID_OOZE, BattleScript_StrengthSapManipulateDmg
jumpifstatus3 BS_ATTACKER, STATUS3_HEAL_BLOCK, BattleScript_MoveEnd
jumpifvolatile BS_ATTACKER, VOLATILE_HEAL_BLOCK, BattleScript_MoveEnd
jumpiffullhp BS_ATTACKER, BattleScript_MoveEnd
BattleScript_StrengthSapManipulateDmg:
manipulatedamage DMG_BIG_ROOT
@ -1238,7 +1241,7 @@ BattleScript_EffectLaserFocus::
attackcanceler
attackstring
ppreduce
setuserstatus3 STATUS3_LASER_FOCUS, BattleScript_ButItFailed
trysetvolatile BS_ATTACKER, VOLATILE_LASER_FOCUS, BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_LASERFOCUS
@ -1575,7 +1578,7 @@ BattleScript_MoveEffectFlameBurst::
tryfaintmon BS_TARGET
printstring STRINGID_BURSTINGFLAMESHIT
waitmessage B_WAIT_TIME_LONG
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
healthbarupdate BS_SCRIPTING
datahpupdate BS_SCRIPTING
tryfaintmon BS_SCRIPTING
@ -2187,8 +2190,8 @@ BattleScript_EffectHealPulse::
attackcanceler
attackstring
ppreduce
jumpifstatus3 BS_ATTACKER, STATUS3_HEAL_BLOCK, BattleScript_MoveUsedHealBlockPrevents @ stops pollen puff
jumpifstatus3 BS_TARGET, STATUS3_HEAL_BLOCK, BattleScript_MoveUsedHealBlockPrevents
jumpifvolatile BS_ATTACKER, VOLATILE_HEAL_BLOCK, BattleScript_MoveUsedHealBlockPrevents @ stops pollen puff
jumpifvolatile BS_TARGET, VOLATILE_HEAL_BLOCK, BattleScript_MoveUsedHealBlockPrevents
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
jumpifsubstituteblocks BattleScript_ButItFailed
tryhealpulse BattleScript_AlreadyAtFullHp
@ -2453,6 +2456,7 @@ BattleScript_EffectGastroAcid::
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
jumpifvolatile BS_TARGET, VOLATILE_GASTRO_ACID, BattleScript_ButItFailed
setgastroacid BattleScript_ButItFailed
attackanimation
waitanimation
@ -2479,9 +2483,9 @@ BattleScript_EffectMagnetRise::
attackcanceler
attackstring
ppreduce
jumpifstatus3 BS_ATTACKER, STATUS3_ROOTED, BattleScript_ButItFailed
jumpifstatus3 BS_ATTACKER, STATUS3_SMACKED_DOWN, BattleScript_ButItFailed
setuserstatus3 STATUS3_MAGNET_RISE, BattleScript_ButItFailed
jumpifvolatile BS_ATTACKER, VOLATILE_ROOT, BattleScript_ButItFailed
jumpifvolatile BS_ATTACKER, VOLATILE_SMACK_DOWN, BattleScript_ButItFailed
trysetvolatile BS_ATTACKER, VOLATILE_MAGNET_RISE, BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNLEVITATEDONELECTROMAGNETISM
@ -2529,7 +2533,7 @@ BattleScript_EffectAquaRing::
attackcanceler
attackstring
ppreduce
setuserstatus3 STATUS3_AQUA_RING, BattleScript_ButItFailed
setvolatile BS_ATTACKER, VOLATILE_AQUA_RING
attackanimation
waitanimation
printstring STRINGID_PKMNSURROUNDEDWITHVEILOFWATER
@ -2590,7 +2594,7 @@ BattleScript_EffectMiracleEye::
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
setmiracleeye BattleScript_ButItFailed
setvolatile BS_TARGET, VOLATILE_MIRACLE_EYE
goto BattleScript_IdentifiedFoe
BattleScript_EffectGravity::
@ -2608,7 +2612,8 @@ BattleScript_EffectGravitySuccess::
BattleScript_GravityLoop:
movevaluescleanup
jumpfifsemiinvulnerable BS_TARGET, STATE_ON_AIR, BattleScript_GravityLoopDrop
jumpifstatus3 BS_TARGET, STATUS3_MAGNET_RISE | STATUS3_TELEKINESIS, BattleScript_GravityLoopDrop
jumpifvolatile BS_TARGET, VOLATILE_MAGNET_RISE, BattleScript_GravityLoopDrop
jumpifvolatile BS_TARGET, VOLATILE_TELEKINESIS, BattleScript_GravityLoopDrop
goto BattleScript_GravityLoopEnd
BattleScript_GravityLoopDrop:
gravityonairbornemons
@ -2720,7 +2725,7 @@ BattleScript_EffectNaturalGift::
jumpifnotberry BS_ATTACKER, BattleScript_ButItFailed
jumpifword CMP_COMMON_BITS, gFieldStatuses, STATUS_FIELD_MAGIC_ROOM, BattleScript_ButItFailed
jumpifability BS_ATTACKER, ABILITY_KLUTZ, BattleScript_ButItFailed
jumpifstatus3 BS_ATTACKER, STATUS3_EMBARGO, BattleScript_ButItFailed
jumpifvolatile BS_ATTACKER, VOLATILE_EMBARGO, BattleScript_ButItFailed
accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
call BattleScript_HitFromCritCalc
@ -2838,7 +2843,7 @@ BattleScript_EffectAbsorb::
printfromtable gAbsorbDrainStringIds
waitmessage B_WAIT_TIME_LONG
tryfaintmon BS_ATTACKER
bicword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_PASSIVE_DAMAGE
bicword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE | HITMARKER_PASSIVE_HP_UPDATE
return
BattleScript_EffectExplosion::
@ -2857,7 +2862,7 @@ BattleScript_FaintAttackerForExplosion::
return
BattleScript_MaxHp50Recoil::
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
tryfaintmon BS_ATTACKER
@ -3049,7 +3054,7 @@ BattleScript_EffectRoar::
jumpifcommanderactive BattleScript_ButItFailed
jumpifability BS_TARGET, ABILITY_GUARD_DOG, BattleScript_ButItFailed
jumpifability BS_TARGET, ABILITY_SUCTION_CUPS, BattleScript_AbilityPreventsPhasingOut
jumpifstatus3 BS_TARGET, STATUS3_ROOTED, BattleScript_PrintMonIsRooted
jumpifvolatile BS_TARGET, VOLATILE_ROOT, BattleScript_PrintMonIsRooted
jumpiftargetdynamaxed BattleScript_RoarBlockedByDynamax
accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON
accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE
@ -3184,7 +3189,7 @@ BattleScript_RecoilIfMiss::
printstring STRINGID_PKMNCRASHED
waitmessage B_WAIT_TIME_LONG
jumpifability BS_ATTACKER, ABILITY_MAGIC_GUARD, BattleScript_RecoilEnd
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_IGNORE_DISGUISE
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE | HITMARKER_IGNORE_DISGUISE
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
tryfaintmon BS_ATTACKER
@ -3444,7 +3449,7 @@ BattleScript_EffectSubstitute::
jumpifvolatile BS_ATTACKER, VOLATILE_SUBSTITUTE, BattleScript_AlreadyHasSubstitute
setsubstitute
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_SUBSTITUTE_FAILED, BattleScript_SubstituteString
orword gHitMarker, HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_PASSIVE_HP_UPDATE
attackanimation
waitanimation
healthbarupdate BS_ATTACKER
@ -3770,7 +3775,7 @@ BattleScript_NightmareWorked::
BattleScript_EffectMinimize::
attackcanceler
setminimize
setvolatile BS_ATTACKER, VOLATILE_MINIMIZE
.if B_MINIMIZE_EVASION >= GEN_5
setstatchanger STAT_EVASION, 2, FALSE
.else
@ -4155,7 +4160,7 @@ BattleScript_EffectBellyDrum::
ppreduce
jumpifstat BS_ATTACKER, CMP_EQUAL, STAT_ATK, MAX_STAT_STAGE, BattleScript_ButItFailed
halvehp BattleScript_ButItFailed
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
attackanimation
waitanimation
healthbarupdate BS_ATTACKER
@ -4678,7 +4683,7 @@ BattleScript_EffectIngrain::
attackcanceler
attackstring
ppreduce
setuserstatus3 STATUS3_ROOTED, BattleScript_ButItFailed
trysetvolatile BS_ATTACKER, VOLATILE_ROOT, BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNPLANTEDROOTS
@ -4825,7 +4830,7 @@ BattleScript_EffectGrudge::
attackcanceler
attackstring
ppreduce
setuserstatus3 STATUS3_GRUDGE, BattleScript_ButItFailed
trysetvolatile BS_ATTACKER, VOLATILE_GRUDGE, BattleScript_ButItFailed
attackanimation
waitanimation
printstring STRINGID_PKMNWANTSGRUDGE
@ -5013,6 +5018,7 @@ BattleScript_FaintAttacker::
dofaintanimation BS_ATTACKER
printstring STRINGID_ATTACKERFAINTED
cleareffectsonfaint BS_ATTACKER
waitanimation
tryactivatesoulheart
tryactivatereceiver BS_ATTACKER
trytrainerslidemsgfirstoff BS_ATTACKER
@ -5027,6 +5033,7 @@ BattleScript_FaintTarget::
dofaintanimation BS_TARGET
printstring STRINGID_TARGETFAINTED
cleareffectsonfaint BS_TARGET
waitanimation
tryactivatesoulheart
tryactivatereceiver BS_TARGET
trytrainerslidemsgfirstoff BS_TARGET
@ -5170,13 +5177,13 @@ BattleScript_PayDayMoneyAndPickUpItems::
end2
BattleScript_LocalBattleLost::
jumpifbattletype BATTLE_TYPE_INGAME_PARTNER, BattleScript_LocalBattleLostPrintWhiteOut
jumpifbattletype BATTLE_TYPE_DOME, BattleScript_CheckDomeDrew
jumpifbattletype BATTLE_TYPE_FRONTIER, BattleScript_LocalBattleLostPrintTrainersWinText
jumpifbattletype BATTLE_TYPE_TRAINER_HILL, BattleScript_LocalBattleLostPrintTrainersWinText
jumpifbattletype BATTLE_TYPE_EREADER_TRAINER, BattleScript_LocalBattleLostEnd
jumpifhalfword CMP_EQUAL, gTrainerBattleParameter + 2, TRAINER_SECRET_BASE, BattleScript_LocalBattleLostEnd
jumpifnowhiteout BattleScript_LocalBattleLostEnd_
jumpifbattletype BATTLE_TYPE_INGAME_PARTNER, BattleScript_LocalBattleLostPrintWhiteOut
BattleScript_LocalBattleLostPrintWhiteOut::
getmoneyreward
printstring STRINGID_PLAYERWHITEOUT
@ -5560,7 +5567,7 @@ BattleScript_LeechSeedTurnDrainHealBlock::
BattleScript_LeechSeedTurnDrainRecovery::
call BattleScript_LeechSeedTurnDrain
BattleScript_LeechSeedTurnDrainGainHp:
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
printfromtable gLeechSeedStringIds
@ -5745,14 +5752,14 @@ BattleScript_EncoredNoMore::
BattleScript_DestinyBondTakesLife::
printstring STRINGID_PKMNTOOKFOE
waitmessage B_WAIT_TIME_LONG
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
tryfaintmon BS_ATTACKER
return
BattleScript_DmgHazardsOnAttacker::
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
call BattleScript_PrintHurtByDmgHazards
@ -5767,7 +5774,7 @@ BattleScript_DmgHazardsOnAttackerFainted::
goto BattleScript_HandleFaintedMon
BattleScript_DmgHazardsOnTarget::
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
call BattleScript_PrintHurtByDmgHazards
@ -5782,7 +5789,7 @@ BattleScript_DmgHazardsOnTargetFainted::
goto BattleScript_HandleFaintedMon
BattleScript_DmgHazardsOnBattlerScripting::
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
healthbarupdate BS_SCRIPTING
datahpupdate BS_SCRIPTING
call BattleScript_PrintHurtByDmgHazards
@ -5797,7 +5804,7 @@ BattleScript_DmgHazardsOnBattlerScriptingFainted::
goto BattleScript_HandleFaintedMon
BattleScript_DmgHazardsOnFaintedBattler::
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
healthbarupdate BS_FAINTED
datahpupdate BS_FAINTED
call BattleScript_PrintHurtByDmgHazards
@ -5858,7 +5865,7 @@ BattleScript_StickyWebOnSwitchInEnd:
BattleScript_PerishSongTakesLife::
printstring STRINGID_PKMNPERISHCOUNTFELL
waitmessage B_WAIT_TIME_LONG
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
tryfaintmon BS_ATTACKER
@ -5868,14 +5875,14 @@ BattleScript_PerishBodyActivates::
call BattleScript_AbilityPopUp
printstring STRINGID_PKMNSWILLPERISHIN3TURNS
waitmessage B_WAIT_TIME_LONG
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
return
BattleScript_GulpMissileGorging::
call BattleScript_AbilityPopUp
playanimation BS_ATTACKER, B_ANIM_GULP_MISSILE
waitanimation
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
effectivenesssound
hitanimation BS_ATTACKER
waitstate
@ -5902,7 +5909,7 @@ BattleScript_GulpMissileGulping::
call BattleScript_AbilityPopUp
playanimation BS_ATTACKER, B_ANIM_GULP_MISSILE
waitanimation
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
effectivenesssound
hitanimation BS_ATTACKER
waitstate
@ -5984,7 +5991,7 @@ BattleScript_EarthEaterActivates::
call BattleScript_AbilityPopUp
pause B_WAIT_TIME_LONG
tryhealquarterhealth BS_TARGET, BattleScript_EarthEaterRet
orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
printstring STRINGID_PKMNREGAINEDHEALTH
@ -6636,7 +6643,7 @@ BattleScript_AftermathDmg::
pause B_WAIT_TIME_SHORT
call BattleScript_AbilityPopUpScripting
jumpifability BS_ATTACKER, ABILITY_MAGIC_GUARD, BattleScript_AftermathDmgRet
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
printstring STRINGID_AFTERMATHDMG
@ -6679,7 +6686,7 @@ BattleScript_PoisonTurnDmg::
BattleScript_DoStatusTurnDmg::
statusanimation BS_ATTACKER
BattleScript_DoTurnDmg:
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
tryfaintmon BS_ATTACKER
@ -6694,7 +6701,7 @@ BattleScript_PoisonHealActivates::
printstring STRINGID_POISONHEALHPUP
waitmessage B_WAIT_TIME_LONG
statusanimation BS_ATTACKER
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
end2
@ -6807,7 +6814,7 @@ BattleScript_DoSelfConfusionDmg::
effectivenesssound
hitanimation BS_ATTACKER
waitstate
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
resultmessage
@ -6828,7 +6835,7 @@ BattleScript_MoveUsedPowder::
effectivenesssound
hitanimation BS_ATTACKER
waitstate
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
printstring STRINGID_POWDEREXPLODES
@ -7018,7 +7025,7 @@ BattleScript_MoveEffectRecoil::
jumpifability BS_ATTACKER, ABILITY_ROCK_HEAD, BattleScript_RecoilEnd
jumpifability BS_ATTACKER, ABILITY_MAGIC_GUARD, BattleScript_RecoilEnd
BattleScript_DoRecoil::
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_IGNORE_DISGUISE
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE | HITMARKER_IGNORE_DISGUISE
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
printstring STRINGID_PKMNHITWITHRECOIL
@ -7244,7 +7251,7 @@ BattleScript_HarvestActivatesEnd:
end3
BattleScript_SolarPowerActivates::
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
call BattleScript_AbilityPopUp
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
@ -7587,6 +7594,7 @@ BattleScript_ActivateTerrainEffects:
saveattacker
savetarget
tryboosterenergy ON_TERRAIN
resetterrainabilityflags
setbyte gBattlerAttacker, 0
BattleScript_ActivateTerrainSeed:
copyarraywithindex gBattlerTarget, gBattlerByTurnOrder, gBattlerAttacker, 1
@ -7650,7 +7658,7 @@ BattleScript_BadDreams_DmgAfterPopUp:
printstring STRINGID_BADDREAMSDMG
waitmessage B_WAIT_TIME_LONG
dmg_1_8_targethp
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
healthbarupdate BS_TARGET
datahpupdate BS_TARGET
jumpifhasnohp BS_TARGET, BattleScript_BadDreams_HidePopUp
@ -7825,10 +7833,10 @@ BattleScript_MoveUsedPsychicTerrainPrevents::
BattleScript_GrassyTerrainHeals::
printstring STRINGID_GRASSYTERRAINHEALS
waitmessage B_WAIT_TIME_LONG
orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
bicword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
bicword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
end2
BattleScript_AbilityNoSpecificStatLoss::
@ -8059,7 +8067,7 @@ BattleScript_ImposterActivates::
end3
BattleScript_HurtAttacker:
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
printstring STRINGID_PKMNHURTSWITH
@ -8083,7 +8091,7 @@ BattleScript_RockyHelmetActivatesDmg:
BattleScript_SpikyShieldEffect::
jumpifabsent BS_ATTACKER, BattleScript_SpikyShieldRet
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
clearmoveresultflags MOVE_RESULT_NO_EFFECT
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
@ -8095,7 +8103,7 @@ BattleScript_SpikyShieldRet::
return
BattleScript_KingsShieldEffect::
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
clearmoveresultflags MOVE_RESULT_NO_EFFECT
seteffectsecondary BS_ATTACKER, BS_TARGET, MOVE_EFFECT_NONE
copybyte sBATTLER, gBattlerTarget
@ -8105,7 +8113,7 @@ BattleScript_KingsShieldEffect::
return
BattleScript_BanefulBunkerEffect::
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
clearmoveresultflags MOVE_RESULT_NO_EFFECT
setnonvolatilestatus TRIGGER_ON_PROTECT
setmoveresultflags MOVE_RESULT_MISSED
@ -8397,7 +8405,7 @@ BattleScript_ItemHealHP_RemoveItemRet_Anim:
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
printstring STRINGID_PKMNSITEMRESTOREDHEALTH
waitmessage B_WAIT_TIME_LONG
orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
healthbarupdate BS_SCRIPTING
datahpupdate BS_SCRIPTING
removeitem BS_SCRIPTING
@ -8412,7 +8420,7 @@ BattleScript_ItemHealHP_RemoveItemEnd2_Anim:
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
printstring STRINGID_PKMNSITEMRESTOREDHEALTH
waitmessage B_WAIT_TIME_LONG
orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
removeitem BS_ATTACKER
@ -8450,7 +8458,7 @@ BattleScript_AirBaloonMsgPop::
return
BattleScript_ItemHurtRet::
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_IGNORE_DISGUISE
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE | HITMARKER_IGNORE_DISGUISE
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
printstring STRINGID_HURTBYITEM
@ -8468,7 +8476,7 @@ BattleScript_ItemHealHP_Ret::
playanimation BS_ATTACKER, B_ANIM_HELD_ITEM_EFFECT
printstring STRINGID_PKMNSITEMRESTOREDHPALITTLE
waitmessage B_WAIT_TIME_LONG
orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_DISGUISE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_DISGUISE | HITMARKER_PASSIVE_HP_UPDATE
healthbarupdate BS_ATTACKER
datahpupdate BS_ATTACKER
return
@ -8523,7 +8531,7 @@ BattleScript_BerryConfuseHealEnd2_Anim:
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
printstring STRINGID_PKMNSITEMRESTOREDHEALTH
waitmessage B_WAIT_TIME_LONG
orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
healthbarupdate BS_SCRIPTING
datahpupdate BS_SCRIPTING
seteffectprimary BS_SCRIPTING, BS_SCRIPTING, MOVE_EFFECT_CONFUSION
@ -8539,7 +8547,7 @@ BattleScript_BerryConfuseHealRet_Anim:
playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT
printstring STRINGID_PKMNSITEMRESTOREDHEALTH
waitmessage B_WAIT_TIME_LONG
orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE
orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE
healthbarupdate BS_SCRIPTING
datahpupdate BS_SCRIPTING
seteffectprimary BS_SCRIPTING, BS_SCRIPTING, MOVE_EFFECT_CONFUSION
@ -8658,6 +8666,7 @@ BattleScript_ArenaDoJudgment::
waitcry
dofaintanimation BS_OPPONENT1
cleareffectsonfaint BS_OPPONENT1
waitanimation
arenaopponentmonlost
end2
@ -8672,6 +8681,7 @@ BattleScript_ArenaJudgmentPlayerLoses:
waitcry
dofaintanimation BS_PLAYER1
cleareffectsonfaint BS_PLAYER1
waitanimation
arenaplayermonlost
end2
@ -8686,10 +8696,12 @@ BattleScript_ArenaJudgmentDraw:
waitcry
dofaintanimation BS_PLAYER1
cleareffectsonfaint BS_PLAYER1
waitanimation
playfaintcry BS_OPPONENT1
waitcry
dofaintanimation BS_OPPONENT1
cleareffectsonfaint BS_OPPONENT1
waitanimation
arenabothmonslost
end2
@ -9030,7 +9042,7 @@ BattleScript_RedCardActivates::
printstring STRINGID_REDCARDACTIVATE
waitmessage B_WAIT_TIME_LONG
swapattackerwithtarget
jumpifstatus3 BS_EFFECT_BATTLER, STATUS3_ROOTED, BattleScript_RedCardIngrain
jumpifvolatile BS_EFFECT_BATTLER, VOLATILE_ROOT, BattleScript_RedCardIngrain
jumpifability BS_EFFECT_BATTLER, ABILITY_SUCTION_CUPS, BattleScript_RedCardSuctionCups
jumpiftargetdynamaxed BattleScript_RedCardDynamaxed
removeitem BS_SCRIPTING

View File

@ -19,7 +19,10 @@
- [How to add new Trainer Slides](tutorials/how_to_new_trainer_slide.md)
- [Day/Night System FAQ](tutorials/dns.md)
- [Changelog](./CHANGELOG.md)
- [1.13.x]()
- [Version 1.13.0](changelogs/1.13.x/1.13.0.md)
- [1.12.x]()
- [Version 1.12.3](changelogs/1.12.x/1.12.3.md)
- [Version 1.12.2](changelogs/1.12.x/1.12.2.md)
- [Version 1.12.1](changelogs/1.12.x/1.12.1.md)
- [Version 1.12.0](changelogs/1.12.x/1.12.0.md)

View File

@ -0,0 +1,118 @@
```md
## How to update
- If you haven't set up a remote, run the command `git remote add RHH https://github.com/rh-hideout/pokeemerald-expansion`.
- Once you have your remote set up, run the command `git pull RHH expansion/1.12.3
`.
```
## 🧬 General 🧬
### Changed
* Restore git history check by @ravepossum in [#7463](https://github.com/rh-hideout/pokeemerald-expansion/pull/7463)
* Moved summary screen nature colors to summary_screen.h by @RubyRaven6 in [#7560](https://github.com/rh-hideout/pokeemerald-expansion/pull/7560)
* Added comment in event.inc for simple menus in dynmultichoice by @RubyRaven6 in [#7568](https://github.com/rh-hideout/pokeemerald-expansion/pull/7568)
* Changed default print level for DebugPrintf for mGBA to MGBA_LOG_WARN by @hedara90 in [#7567](https://github.com/rh-hideout/pokeemerald-expansion/pull/7567)
* Fixed Teleport's description not being updated based on `B_TELEPORT_BEHAVIOR` by @AsparagusEduardo in [#7580](https://github.com/rh-hideout/pokeemerald-expansion/pull/7580)
* Minor Clean up in battle_ai_main.c by @AlexOn1ine in [#7551](https://github.com/rh-hideout/pokeemerald-expansion/pull/7551)
## 🗺️ Overworld 🗺️
### Changed
* fix: remove unused wild_encounters.json.txt jinja file by @khbsd in [#7581](https://github.com/rh-hideout/pokeemerald-expansion/pull/7581)
### Fixed
* Bug fix: add handling for forced movements into/after ledge jumps with follower NPCs by @Bivurnum in [#7055](https://github.com/rh-hideout/pokeemerald-expansion/pull/7055)
* Fixed compile issue `OW_TIMES_OF_DAY` is `GEN_3` by @AsparagusEduardo in [#7499](https://github.com/rh-hideout/pokeemerald-expansion/pull/7499)
* Remove shadow and hide follower on stair warp by @cornixsenex in [#7368](https://github.com/rh-hideout/pokeemerald-expansion/pull/7368)
* Fix Form Change Item Task Data and Clean Up Field Use Funcs by @ravepossum in [#7535](https://github.com/rh-hideout/pokeemerald-expansion/pull/7535)
* Fix Vs Seeker Trainer Battle script issue by @pkmnsnfrn in [#7615](https://github.com/rh-hideout/pokeemerald-expansion/pull/7615)
## ⚔️ Battle General ⚔️
### Changed
* Remove unused function by @AlexOn1ine in [#7617](https://github.com/rh-hideout/pokeemerald-expansion/pull/7617)
### Fixed
* Fixes Magnet Rise when user is Rooted/Smacked Down by @PhallenTree in [#7449](https://github.com/rh-hideout/pokeemerald-expansion/pull/7449)
* Fixes Leech Seed recovery not applying behind Sub by @AlexOn1ine in [#7468](https://github.com/rh-hideout/pokeemerald-expansion/pull/7468)
* Fixes Round and Fusion moves doubling power from previous turn's move by @PhallenTree in [#7476](https://github.com/rh-hideout/pokeemerald-expansion/pull/7476)
* Fixes shadows and mon animations for transformed battlers by @AsparagusEduardo in [#7500](https://github.com/rh-hideout/pokeemerald-expansion/pull/7500)
* Fixes Life Orb still activating if move was absorbed by @AlexOn1ine in [#7521](https://github.com/rh-hideout/pokeemerald-expansion/pull/7521)
* Fix Mimicry Only Activating Once per Turn by @ghoulslash in [#7537](https://github.com/rh-hideout/pokeemerald-expansion/pull/7537)
* Fixes Knock Off still activating when there is no Item by @AlexOn1ine in [#7496](https://github.com/rh-hideout/pokeemerald-expansion/pull/7496)
* Fixed `B_PSYWAVE_DMG` by @AsparagusEduardo in [#7557](https://github.com/rh-hideout/pokeemerald-expansion/pull/7557)
* Fixes Counter / Mirror Coat / Metal Burst damage assignment by @AlexOn1ine in [#7538](https://github.com/rh-hideout/pokeemerald-expansion/pull/7538)
* Fix in-game partner battles always causing a whiteout by @ravepossum in [#7587](https://github.com/rh-hideout/pokeemerald-expansion/pull/7587)
* Fix B_ANIMATE_MON_AFTER_KO with a new counter by @hedara90 in [#7531](https://github.com/rh-hideout/pokeemerald-expansion/pull/7531)
* Fixes Rage Fist counter increment by @AlexOn1ine in [#7582](https://github.com/rh-hideout/pokeemerald-expansion/pull/7582)
* Fixes moveend_absorb hitmarker by @AlexOn1ine in [#7591](https://github.com/rh-hideout/pokeemerald-expansion/pull/7591)
* switchinabilities also runs ON_WEATHER and ON_TERRAIN by @ghoulslash in [#7612](https://github.com/rh-hideout/pokeemerald-expansion/pull/7612)
* Fixes Explosion behavior when 3 mons can endure hit by @AlexOn1ine in [#7594](https://github.com/rh-hideout/pokeemerald-expansion/pull/7594)
* Fixes octolock not ending after user switched out by @AlexOn1ine in [#7556](https://github.com/rh-hideout/pokeemerald-expansion/pull/7556)
* The original attacker wasn't restored for Doodle by @AlexOn1ine in [#7620](https://github.com/rh-hideout/pokeemerald-expansion/pull/7620)
* Restore X item friendship increase by @ravepossum in [#7583](https://github.com/rh-hideout/pokeemerald-expansion/pull/7583)
* Fixes Wonder Room interactions with Defense/Special Defense boosting effects by @PhallenTree in [#7626](https://github.com/rh-hideout/pokeemerald-expansion/pull/7626)
* Ally Switch attract battler swapping, test for leech seed by @ghoulslash in [#7634](https://github.com/rh-hideout/pokeemerald-expansion/pull/7634)
## 🤹 Moves 🤹
### Fixed
* Clear gScanlineEffect to fix timeout in acid downpour animation by @FosterProgramming in [#7442](https://github.com/rh-hideout/pokeemerald-expansion/pull/7442)
* Fix terastallization anims flickering by @ravepossum in [#7613](https://github.com/rh-hideout/pokeemerald-expansion/pull/7613)
## 🧶 Items 🧶
### Changed
* Fix using town map as registered item by @ravepossum in [#7482](https://github.com/rh-hideout/pokeemerald-expansion/pull/7482)
### Fixed
* Implement using party menu items from field by @ravepossum in [#7481](https://github.com/rh-hideout/pokeemerald-expansion/pull/7481)
## 🤖 Battle AI 🤖
### Changed
* Macro-for-AI-Flag-definitions by @grintoul1 in [#7471](https://github.com/rh-hideout/pokeemerald-expansion/pull/7471)
### Fixed
* Incorrect call in Rest by @surskitty in [#7569](https://github.com/rh-hideout/pokeemerald-expansion/pull/7569)
* Fix duplicate switch in after faint by @AlexOn1ine in [#7600](https://github.com/rh-hideout/pokeemerald-expansion/pull/7600)
## 🧹 Other Cleanup 🧹
* Macro-for-AI-Flag-definitions by @grintoul1 in [#7471](https://github.com/rh-hideout/pokeemerald-expansion/pull/7471)
* Moved summary screen nature colors to summary_screen.h by @RubyRaven6 in [#7560](https://github.com/rh-hideout/pokeemerald-expansion/pull/7560)
* fix: remove unused wild_encounters.json.txt jinja file by @khbsd in [#7581](https://github.com/rh-hideout/pokeemerald-expansion/pull/7581)
* Fix Form Change Item Task Data and Clean Up Field Use Funcs by @ravepossum in [#7535](https://github.com/rh-hideout/pokeemerald-expansion/pull/7535)
* Fixed Teleport's description not being updated based on `B_TELEPORT_BEHAVIOR` by @AsparagusEduardo in [#7580](https://github.com/rh-hideout/pokeemerald-expansion/pull/7580)
* Fixed typo in test name by @hedara90 in [#7610](https://github.com/rh-hideout/pokeemerald-expansion/pull/7610)
* Minor Clean up in battle_ai_main.c by @AlexOn1ine in [#7551](https://github.com/rh-hideout/pokeemerald-expansion/pull/7551)
* Remove unused function by @AlexOn1ine in [#7617](https://github.com/rh-hideout/pokeemerald-expansion/pull/7617)
* Fix Vs Seeker Trainer Battle script issue by @pkmnsnfrn in [#7615](https://github.com/rh-hideout/pokeemerald-expansion/pull/7615)
## 🧪 Test Runner 🧪
### Changed
* Clean up some Normalize tests to make them make sense by @hedara90 in [#7461](https://github.com/rh-hideout/pokeemerald-expansion/pull/7461)
* Add Synthesis + Utililty Umbrella test by @ghoulslash in [#7472](https://github.com/rh-hideout/pokeemerald-expansion/pull/7472)
* Add test for BoxPokemon integrity by @hedara90 in [#7487](https://github.com/rh-hideout/pokeemerald-expansion/pull/7487)
* Re-order moves in fling test by @hedara90 in [#7559](https://github.com/rh-hideout/pokeemerald-expansion/pull/7559)
* Wrote some tests by @AsparagusEduardo in [#7563](https://github.com/rh-hideout/pokeemerald-expansion/pull/7563)
* Added Ability TODO tests - Volume C by @AsparagusEduardo in [#7562](https://github.com/rh-hideout/pokeemerald-expansion/pull/7562)
* Added missing Move Effect TODO tests - Volume F by @AsparagusEduardo in [#7605](https://github.com/rh-hideout/pokeemerald-expansion/pull/7605)
* Fixed typo in test name by @hedara90 in [#7610](https://github.com/rh-hideout/pokeemerald-expansion/pull/7610)
### Fixed
* Clear out parties between battle tests by @hedara90 in [#7460](https://github.com/rh-hideout/pokeemerald-expansion/pull/7460)
* Fixed most failed tests with `GEN_LATEST GEN_8` by @AsparagusEduardo in [#7498](https://github.com/rh-hideout/pokeemerald-expansion/pull/7498)
* Corrected Liquid Ooze test by @AsparagusEduardo in [#7527](https://github.com/rh-hideout/pokeemerald-expansion/pull/7527)
* switchinabilities also runs ON_WEATHER and ON_TERRAIN by @ghoulslash in [#7612](https://github.com/rh-hideout/pokeemerald-expansion/pull/7612)
* Ally Switch attract battler swapping, test for leech seed by @ghoulslash in [#7634](https://github.com/rh-hideout/pokeemerald-expansion/pull/7634)
## 📚 Documentation 📚
* Update how_to_new_pokemon.md by @kevinwklawrence in [#7440](https://github.com/rh-hideout/pokeemerald-expansion/pull/7440)
* Updating a link to porytiles in INSTALL.md by @ThePeeps191 in [#7490](https://github.com/rh-hideout/pokeemerald-expansion/pull/7490)
* Added comment in event.inc for simple menus in dynmultichoice by @RubyRaven6 in [#7568](https://github.com/rh-hideout/pokeemerald-expansion/pull/7568)
## New Contributors
* @kevinwklawrence made their first contribution in [#7440](https://github.com/rh-hideout/pokeemerald-expansion/pull/7440)
* @ThePeeps191 made their first contribution in [#7490](https://github.com/rh-hideout/pokeemerald-expansion/pull/7490)
* @cornixsenex made their first contribution in [#7368](https://github.com/rh-hideout/pokeemerald-expansion/pull/7368)
**Full Changelog**: https://github.com/rh-hideout/pokeemerald-expansion/compare/expansion/1.12.2...expansion/1.12.3
<!--Last PR: 7634-->
<!--Used to keep track of the last PR merged in case new ones come in before the changelog is done.-->

View File

@ -0,0 +1,483 @@
```md
## How to update
- If you haven't set up a remote, run the command `git remote add RHH https://github.com/rh-hideout/pokeemerald-expansion`.
- Once you have your remote set up, run the command `git pull RHH expansion/1.13.0
`.
```
## 🌋 *REFACTORS* 🌋
📜 = Uses a migration script.
* Refactor field moves by @cawtds in [#6660](https://github.com/rh-hideout/pokeemerald-expansion/pull/6660)
* Refactors Final Gambit + Tests by @AlexOn1ine in [#7005](https://github.com/rh-hideout/pokeemerald-expansion/pull/7005)
* Combines Super Fang and Guardian of Alola effects by @AlexOn1ine in [#7048](https://github.com/rh-hideout/pokeemerald-expansion/pull/7048)
* Refactor damage calculations aruguments by using a struct context by @AlexOn1ine in [#7108](https://github.com/rh-hideout/pokeemerald-expansion/pull/7108)
* Add damage context to effectiveness multiplier by @AlexOn1ine in [#7111](https://github.com/rh-hideout/pokeemerald-expansion/pull/7111)
* Decouple Status set by ability from SetMoveEffect by @AlexOn1ine in [#7125](https://github.com/rh-hideout/pokeemerald-expansion/pull/7125)
* Converted Relic Song into a proper form change by @AsparagusEduardo in [#7139](https://github.com/rh-hideout/pokeemerald-expansion/pull/7139)
- Added `FORM_CHANGE_BATTLE_AFTER_MOVE` to parametrize Relic Song's form change
* Removed Mind Blown effect in favor of move flag by @AsparagusEduardo in [#7138](https://github.com/rh-hideout/pokeemerald-expansion/pull/7138)
* Volatile status refactoring by @cfmnephrite in [#6983](https://github.com/rh-hideout/pokeemerald-expansion/pull/6983)
* Bag refactor (groundwork for expansion) by @cfmnephrite in [#7018](https://github.com/rh-hideout/pokeemerald-expansion/pull/7018)
- If you're using @ghoulslash's bag sort branch, this PR will break it
* Stat Change (Animation) Refactor by @PhallenTree in [#7144](https://github.com/rh-hideout/pokeemerald-expansion/pull/7144)
`setgraphicalstatchangevalues` and `playstatchangeanimation` have been removed and now Stat Change Animations are handled in `statbuffchange`.
- To update your custom battle scripts:
`setgraphicalstatchangevalues` is often accompanied by `playanimation X, B_ANIM_STATS_CHANGE`. When I refer to deleting `setgraphicalstatchangevalues` below, that command should also be deleted.
1. If `statbuffchange` is before `setgraphicalstatchangevalues`/`playstatchangeanimation` and there is something in between them (for example, `attackanimation` and `waitanimation`), add the flag `STAT_CHANGE_ONLY_CHECKING` and replace the command (`setgraphicalstatchangevalues`/`playstatchangeanimation`) with a copy of the original `statbuffchange`.
2. If `statbuffchange` is after `setgraphicalstatchangevalues`/`playstatchangeanimation` or there is nothing in between, you should delete those commands (`setgraphicalstatchangevalues`/`playstatchangeanimation`) and no further changes other than those in _3._ should be required.
3. If `playstatchangeanimation` had bits assigned to them (`BIT_ATK | BIT_SPATK`, for example), add ", " followed by those bits to the first `statbuffchange`; for the following `statbuffchange`s, remove stats that have already been increased/decreased.
* Untangle `InitBtlControllers` functions by @AsparagusEduardo in [#6748](https://github.com/rh-hideout/pokeemerald-expansion/pull/6748)
* Use battler arguments for SetMoveEffect by @AlexOn1ine in [#7156](https://github.com/rh-hideout/pokeemerald-expansion/pull/7156)
* Easier expandability of debug menu by @AsparagusEduardo in [#6910](https://github.com/rh-hideout/pokeemerald-expansion/pull/6910)
* Use dedicated functions for Mud/Water Sport by @AlexOn1ine in [#7248](https://github.com/rh-hideout/pokeemerald-expansion/pull/7248)
* Expanding and Refactoring Skill Swap and other ability-changing moves by @surskitty in [#7238](https://github.com/rh-hideout/pokeemerald-expansion/pull/7238)
* Refactor move Synchronise by @AlexOn1ine in [#7271](https://github.com/rh-hideout/pokeemerald-expansion/pull/7271)
* Adds hazard queue by @AlexOn1ine in [#7295](https://github.com/rh-hideout/pokeemerald-expansion/pull/7295)
* Changes AccuracyCalcHelper into CanMoveSkipAccuracyCalc by @AlexOn1ine in [#7303](https://github.com/rh-hideout/pokeemerald-expansion/pull/7303)
* battle_interface: overhaul ability pop up by @mudskipper13 in [#7227](https://github.com/rh-hideout/pokeemerald-expansion/pull/7227)
- The layout of the ability pop up's image (`graphics/battle_interface/ability_pop_up.png`) has been changed.
* Bag refactor 2 by @cfmnephrite in [#7166](https://github.com/rh-hideout/pokeemerald-expansion/pull/7166)
* Replaces STATUS2 usage with volatiles in code by @cfmnephrite in [#7262](https://github.com/rh-hideout/pokeemerald-expansion/pull/7262)
- Replaced all references to STATUS2 in the code with volatiles (but left the old bitfield behind for compatibility with downstream users). The list of volatiles is in `include/constants/battle.h` and includes information such as an enum, a field name, type and max size, and whether or not the move is Baton Passable. Users can use VOLATILE_X with any function that previously took STATUS2_X in scripts, and can check/set volatiles in C with `gBattleMons[battler].volatiles.{field name}` syntax instead of checking a flag in a bitfield.
* Refactor battle environment by @fdeblasio in [#4891](https://github.com/rh-hideout/pokeemerald-expansion/pull/4891)
* Convert various to callnatives by @AlexOn1ine in [#7355](https://github.com/rh-hideout/pokeemerald-expansion/pull/7355)
* AI refactor for weather-setting, terrain-setting, Trick Room behaviors; doubles-focused by @surskitty in [#7319](https://github.com/rh-hideout/pokeemerald-expansion/pull/7319)
- AI is more likely to use Trick Room in double battles and Terrains in general.
* Convert Status4 to volatiles by @AlexOn1ine in [#7411](https://github.com/rh-hideout/pokeemerald-expansion/pull/7411)
* Split Sheer Force tests by gen instead of by four by @AlexOn1ine in [#7260](https://github.com/rh-hideout/pokeemerald-expansion/pull/7260)
* Modify move prediction to work in doubles by @AlexOn1ine in [#7087](https://github.com/rh-hideout/pokeemerald-expansion/pull/7087)
* Convert statuses3 to volatiles by @AlexOn1ine in [#7514](https://github.com/rh-hideout/pokeemerald-expansion/pull/7514)
* Added trainerBackPic to Trainer struct to de-couple trainer pic and trainer back pic defines by @grintoul1 in [#7425](https://github.com/rh-hideout/pokeemerald-expansion/pull/7425)
## 🧬 General 🧬
### Added
* New sprite compressor by @hedara90, @DizzyEggg Improved performance massively for the instruction decoding., @mrgriffin, SBird and @tertu-m who has done even more optimization and answered questions about the GBA hardware whenever I had them. and @rayrobdod for the better migration script. in [#5627](https://github.com/rh-hideout/pokeemerald-expansion/pull/5627)
- `LZDecompressVram` and `LZDecompressWram` has been deprecated. All calls do decompress LZ compressed data should be using the wrapper functions `DecompressDataWithHeaderVram` or `DecompressDataWithHeaderWram`.
- A new sprite compression format has been introduced. To use it, replace files with `.4bpp.lz` with `.4bpp.smol` or `.4bpp.fastSmol`.
- `.smol` is a compression format utilizing entropy encoding in the form of tabled Asymmetric Numeral Systems (tANS) and a modified LZ style RLE/Dictionary encoding scheme specialized for the sprites used in Pokemon games. This is approximately 25% smaller than the default LZ77 compression.
- `.fastSmol` skips the entropy encoding and is therefore slightly larger than the default LZ77 compression, but decoding sprites is faster than the default LZ77 compression.
- `.smolTM` is a compression scheme for tilemaps.
- Might have unexpected behavior if user introduced decompression during hardware interrupts.
- Has a migration script that handles all files under `src/`, `migration_scripts/1.12/convert_compressed_files.py`.
* Adds FRLG asserts to Alloc/Free by @cawtds in [#7025](https://github.com/rh-hideout/pokeemerald-expansion/pull/7025)
* Debug parties and battles by @SBird1337 in [#6884](https://github.com/rh-hideout/pokeemerald-expansion/pull/6884)
- Adds options to set debug parties and battles using the debug menu
* Added naive line break by @hedara90 in [#7076](https://github.com/rh-hideout/pokeemerald-expansion/pull/7076)
* Disable unowned evo methods by @Bolt-Strike in [#7103](https://github.com/rh-hideout/pokeemerald-expansion/pull/7103)
* lto support by @DizzyEggg in [#7182](https://github.com/rh-hideout/pokeemerald-expansion/pull/7182)
* Improve trainer back pic-related data and code (+ smol documentation) by @mudskipper13 in [#6821](https://github.com/rh-hideout/pokeemerald-expansion/pull/6821)
* Add Set Hidden Nature option to the debug menu by @AlexOn1ine in [#7281](https://github.com/rh-hideout/pokeemerald-expansion/pull/7281)
* Instant Win option in Battle Debug by @AlexOn1ine in [#7333](https://github.com/rh-hideout/pokeemerald-expansion/pull/7333)
* `trainerproc` copy other trainer party by @hedara90 in [#7251](https://github.com/rh-hideout/pokeemerald-expansion/pull/7251)
- Adds the `Copy Pool` command to `trainerproc` which copies the party/pool from another trainer.
* Show chosen move in the battle debug menu by @AlexOn1ine in [#7382](https://github.com/rh-hideout/pokeemerald-expansion/pull/7382)
* Rock climb by ghoulslash by @pokesidv in [#7432](https://github.com/rh-hideout/pokeemerald-expansion/pull/7432)
- Added rock climb field effect
### Changed
* Restore git history check by @ravepossum in [#7463](https://github.com/rh-hideout/pokeemerald-expansion/pull/7463)
* Moved summary screen nature colors to summary_screen.h by @RubyRaven6 in [#7560](https://github.com/rh-hideout/pokeemerald-expansion/pull/7560)
* Added comment in event.inc for simple menus in dynmultichoice by @RubyRaven6 in [#7568](https://github.com/rh-hideout/pokeemerald-expansion/pull/7568)
* Changed default print level for DebugPrintf for mGBA to MGBA_LOG_WARN by @hedara90 in [#7567](https://github.com/rh-hideout/pokeemerald-expansion/pull/7567)
* Fixed Teleport's description not being updated based on `B_TELEPORT_BEHAVIOR` by @AsparagusEduardo in [#7580](https://github.com/rh-hideout/pokeemerald-expansion/pull/7580)
* Minor Clean up in battle_ai_main.c by @AlexOn1ine in [#7551](https://github.com/rh-hideout/pokeemerald-expansion/pull/7551)
* Refactor field moves by @cawtds in [#6660](https://github.com/rh-hideout/pokeemerald-expansion/pull/6660)
* Replace all usages of lz compression with smol by @hedara90 in [#7032](https://github.com/rh-hideout/pokeemerald-expansion/pull/7032)
* `BtlController_EmitTwoReturnValues` cleanup by @AsparagusEduardo in [#6855](https://github.com/rh-hideout/pokeemerald-expansion/pull/6855)
* Put the gen 1 compression tests behind a config by @hedara90 in [#7033](https://github.com/rh-hideout/pokeemerald-expansion/pull/7033)
* Converts a bunch of defines to enums by @Bassoonian in [#7041](https://github.com/rh-hideout/pokeemerald-expansion/pull/7041)
* chore: remove unused section from credits by @Emiliasky in [#7085](https://github.com/rh-hideout/pokeemerald-expansion/pull/7085)
* Simplify white out messages by @kittenchilly in [#6961](https://github.com/rh-hideout/pokeemerald-expansion/pull/6961)
* Improve music/se macros and fix names by @cawtds in [#7030](https://github.com/rh-hideout/pokeemerald-expansion/pull/7030)
* Bag refactor (groundwork for expansion) by @cfmnephrite in [#7018](https://github.com/rh-hideout/pokeemerald-expansion/pull/7018)
- If you're using @ghoulslash's bag sort branch, this PR will break it
* Converts more defines to enums and name unnamed enums by @Bassoonian in [#7071](https://github.com/rh-hideout/pokeemerald-expansion/pull/7071)
* Add config options for removing bard phoneme audio to save ROM space by @poetahto in [#7155](https://github.com/rh-hideout/pokeemerald-expansion/pull/7155)
* Fix debug text order by @hedara90 in [#7149](https://github.com/rh-hideout/pokeemerald-expansion/pull/7149)
* More battle controller function consolidation. by @AsparagusEduardo in [#6877](https://github.com/rh-hideout/pokeemerald-expansion/pull/6877)
* Easier expandability of debug menu by @AsparagusEduardo in [#6910](https://github.com/rh-hideout/pokeemerald-expansion/pull/6910)
* Update .gitignore to add heal locations by @Bassoonian in [#7050](https://github.com/rh-hideout/pokeemerald-expansion/pull/7050)
* Add 'Give Decoration' function to overworld debug menu by @rayrobdod in [#7219](https://github.com/rh-hideout/pokeemerald-expansion/pull/7219)
* Changes pre-proc to a normal if for Item Desc Header by @AlexOn1ine in [#7231](https://github.com/rh-hideout/pokeemerald-expansion/pull/7231)
* Use compound strings in battle debug menu by @AsparagusEduardo in [#7282](https://github.com/rh-hideout/pokeemerald-expansion/pull/7282)
* Remove competitive syntax config by @hedara90 in [#7154](https://github.com/rh-hideout/pokeemerald-expansion/pull/7154)
- This change can be reverted by doing `git revert 14dbbf63d454073dbb198b941cc3566168c89f11`.
* Turn `OW_FRLG_WHITEOUT` into `OW_WHITEOUT_CUTSCENE` and make it generational by @kittenchilly in [#6962](https://github.com/rh-hideout/pokeemerald-expansion/pull/6962)
* Add `Macro` key to trainerproc by @hedara90 in [#7157](https://github.com/rh-hideout/pokeemerald-expansion/pull/7157)
* preproc: Support __attribute__ in enums by @mrgriffin in [#7344](https://github.com/rh-hideout/pokeemerald-expansion/pull/7344)
* Enum conversion for `enum MoveEffects` and `enum BattleMoveEffects` by @hedara90 in [#7366](https://github.com/rh-hideout/pokeemerald-expansion/pull/7366)
- This enables `-Wenum-conversion`, additional compilation errors can occur
* Get/SetMonData optimisation by @cfmnephrite in [#7313](https://github.com/rh-hideout/pokeemerald-expansion/pull/7313)
* Bag refactor3 + Ghoulslash's sorting feature port by @cfmnephrite in [#7330](https://github.com/rh-hideout/pokeemerald-expansion/pull/7330)
* Replace all usages of rl compression with smol by @rayrobdod in [#7458](https://github.com/rh-hideout/pokeemerald-expansion/pull/7458)
* Bag sorting cleanup by @mrgriffin in [#7489](https://github.com/rh-hideout/pokeemerald-expansion/pull/7489)
* Adds ghouls Rock Climb git history by @AlexOn1ine in [#7493](https://github.com/rh-hideout/pokeemerald-expansion/pull/7493)
* Changed item name/pluralName to a compound string by @cfmnephrite in [#7359](https://github.com/rh-hideout/pokeemerald-expansion/pull/7359)
* Added trainerBackPic to Trainer struct to de-couple trainer pic and trainer back pic defines by @grintoul1 in [#7425](https://github.com/rh-hideout/pokeemerald-expansion/pull/7425)
* Suppress trainerproc compile warning for unused func by @AlexOn1ine in [#7592](https://github.com/rh-hideout/pokeemerald-expansion/pull/7592)
### Fixed
* Fix .smol compression in debug builds by @hedara90 in [#7090](https://github.com/rh-hideout/pokeemerald-expansion/pull/7090)
* Improve smol compressor by @hedara90 in [#7073](https://github.com/rh-hideout/pokeemerald-expansion/pull/7073)
* Increased heap by 768 bytes by @hedara90 in [#7097](https://github.com/rh-hideout/pokeemerald-expansion/pull/7097)
* Fix healthbox when blending effects happen by @AsparagusEduardo in [#7203](https://github.com/rh-hideout/pokeemerald-expansion/pull/7203)
* Fixed Fake RTC debug menu by @AsparagusEduardo in [#7218](https://github.com/rh-hideout/pokeemerald-expansion/pull/7218)
* Added missing braces by @cfmnephrite in [#7288](https://github.com/rh-hideout/pokeemerald-expansion/pull/7288)
* Fixed Flag Vars menu keeping artifacts from bag menu + cleanup by @AsparagusEduardo in [#7226](https://github.com/rh-hideout/pokeemerald-expansion/pull/7226)
* Fix HGSS dex running out of heap by @hedara90 in [#7317](https://github.com/rh-hideout/pokeemerald-expansion/pull/7317)
* battle intro: fix issues with follower slide-in and wild shiny mon by @mudskipper13 in [#7325](https://github.com/rh-hideout/pokeemerald-expansion/pull/7325)
* Fix sorting bag by type by @mrgriffin in [#7488](https://github.com/rh-hideout/pokeemerald-expansion/pull/7488)
* Hacky support for enums in C asm statements by @mrgriffin in [#7494](https://github.com/rh-hideout/pokeemerald-expansion/pull/7494)
* Fixed compile issue in gcc 11 by @AsparagusEduardo in [#7579](https://github.com/rh-hideout/pokeemerald-expansion/pull/7579)
* Fix overlap between spin evolution and script evolution by @FosterProgramming in [#7593](https://github.com/rh-hideout/pokeemerald-expansion/pull/7593)
## 🗺️ Overworld 🗺️
### Added
* Added createfollowernpc macro to make a new follower from a gfx id by @Bivurnum in [#7196](https://github.com/rh-hideout/pokeemerald-expansion/pull/7196)
- Follower NPCs can now be created without using an existing NPC, using the `createfollowernpc` macro.
* feat: separate water and rock smash encounter rate checks by @khbsd in [#7293](https://github.com/rh-hideout/pokeemerald-expansion/pull/7293)
### Changed
* fix: remove unused wild_encounters.json.txt jinja file by @khbsd in [#7581](https://github.com/rh-hideout/pokeemerald-expansion/pull/7581)
* added Ash Greninja overworld sprites by @wiz1989 in [#6976](https://github.com/rh-hideout/pokeemerald-expansion/pull/6976)
* Update FRLG whiteouts to new pret system by @Bassoonian in [#7040](https://github.com/rh-hideout/pokeemerald-expansion/pull/7040)
- Make sure to migrate your changes to the now deleted `heal_locations_pkm_center.h` to the json file.
* Use CanAbilityAbsorbMove in GetOverworldTypeEffectiveness by @AlexOn1ine in [#7115](https://github.com/rh-hideout/pokeemerald-expansion/pull/7115)
* Add config options for removing bard phoneme audio to save ROM space by @poetahto in [#7155](https://github.com/rh-hideout/pokeemerald-expansion/pull/7155)
* Add debug options for follower NPCs by @Bivurnum in [#7215](https://github.com/rh-hideout/pokeemerald-expansion/pull/7215)
* Better system for Follower NPC running frames by @Bivurnum in [#7222](https://github.com/rh-hideout/pokeemerald-expansion/pull/7222)
* Update follower NPC tutorial doc for createfollowernpc macro by @Bivurnum in [#7230](https://github.com/rh-hideout/pokeemerald-expansion/pull/7230)
### Fixed
* Bug fix: add handling for forced movements into/after ledge jumps with follower NPCs by @Bivurnum in [#7055](https://github.com/rh-hideout/pokeemerald-expansion/pull/7055)
* Fixed compile issue `OW_TIMES_OF_DAY` is `GEN_3` by @AsparagusEduardo in [#7499](https://github.com/rh-hideout/pokeemerald-expansion/pull/7499)
* Remove shadow and hide follower on stair warp by @cornixsenex in [#7368](https://github.com/rh-hideout/pokeemerald-expansion/pull/7368)
* Fix Form Change Item Task Data and Clean Up Field Use Funcs by @ravepossum in [#7535](https://github.com/rh-hideout/pokeemerald-expansion/pull/7535)
* Fix Vs Seeker Trainer Battle script issue by @pkmnsnfrn in [#7615](https://github.com/rh-hideout/pokeemerald-expansion/pull/7615)
* Fix follower compression by @hedara90 in [#7038](https://github.com/rh-hideout/pokeemerald-expansion/pull/7038)
* Changing P_ONLY_OBTAINABLE_SHINIES to truly be Only Obtainable Shinies by @surskitty in [#7275](https://github.com/rh-hideout/pokeemerald-expansion/pull/7275)
## 🐉 Pokémon 🐉
### Added
* Add P_ASK_MOVE_CONFIRMATION by @pkmnsnfrn in [#7132](https://github.com/rh-hideout/pokeemerald-expansion/pull/7132)
- This will change the behavior of the game for players, as a new default is being set.
* Added `CRY_MODE_DYNAMAX` by @AsparagusEduardo in [#6933](https://github.com/rh-hideout/pokeemerald-expansion/pull/6933)
* Wild Pokémon animate after breaking out of Poké Ball by @LinathanZel in [#7339](https://github.com/rh-hideout/pokeemerald-expansion/pull/7339)
### Changed
* Add dedicated getter functions for Pokémon types and abilities by @Bassoonian in [#7043](https://github.com/rh-hideout/pokeemerald-expansion/pull/7043)
* added Ash Greninja overworld sprites by @wiz1989 in [#6976](https://github.com/rh-hideout/pokeemerald-expansion/pull/6976)
* Get/SetMonData optimisation by @cfmnephrite in [#7313](https://github.com/rh-hideout/pokeemerald-expansion/pull/7313)
### Fixed
* fixes #7129: 'add to full party' feature in the safari zone by @fakuzatsu in [#7147](https://github.com/rh-hideout/pokeemerald-expansion/pull/7147)
* Fix substruct offsets from #7313 by @mrgriffin in [#7431](https://github.com/rh-hideout/pokeemerald-expansion/pull/7431)
* Fixes refusing to replace a move on evolution causing a softlock by @PhallenTree in [#7585](https://github.com/rh-hideout/pokeemerald-expansion/pull/7585)
## ⚔️ Battle General ⚔️
### Added
* Add Gen 2 Moonlight, Morning Sun, Synthesis configuration by @i0brendan0 in [#7209](https://github.com/rh-hideout/pokeemerald-expansion/pull/7209)
* Add a heal animation to Hospitality recovery by @AlexOn1ine in [#7426](https://github.com/rh-hideout/pokeemerald-expansion/pull/7426)
* Updated Dream Eater/Liquid Ooze's interaction to Gen 5 standards by @AsparagusEduardo in [#7528](https://github.com/rh-hideout/pokeemerald-expansion/pull/7528)
### Changed
* Remove unused function by @AlexOn1ine in [#7617](https://github.com/rh-hideout/pokeemerald-expansion/pull/7617)
* Clean up battlescript calls with func BattleScriptCall by @AlexOn1ine in [#6873](https://github.com/rh-hideout/pokeemerald-expansion/pull/6873)
* Refactors Final Gambit + Tests by @AlexOn1ine in [#7005](https://github.com/rh-hideout/pokeemerald-expansion/pull/7005)
* `GetBattlerMon` cleanup by @AsparagusEduardo in [#6967](https://github.com/rh-hideout/pokeemerald-expansion/pull/6967)
* Change GetZMaxMoveAgainstProtectionModifier to prevent regressions by @AlexOn1ine in [#7047](https://github.com/rh-hideout/pokeemerald-expansion/pull/7047)
* Combines Super Fang and Guardian of Alola effects by @AlexOn1ine in [#7048](https://github.com/rh-hideout/pokeemerald-expansion/pull/7048)
* Remove more instances of hard-coded Move IDs by @AsparagusEduardo in [#7056](https://github.com/rh-hideout/pokeemerald-expansion/pull/7056)
- Added `EFFECT_SHEER_COLD` to parametrize Sheer Cold's interactions with Ice types
* Deprecate sStatusFlagsForMoveEffects by @AlexOn1ine in [#7063](https://github.com/rh-hideout/pokeemerald-expansion/pull/7063)
* Removes duplicate AI ability func by @AlexOn1ine in [#7045](https://github.com/rh-hideout/pokeemerald-expansion/pull/7045)
* Deprecate absent member from battlerState by @AlexOn1ine in [#7091](https://github.com/rh-hideout/pokeemerald-expansion/pull/7091)
* Refactor damage calculations aruguments by using a struct context by @AlexOn1ine in [#7108](https://github.com/rh-hideout/pokeemerald-expansion/pull/7108)
* Add damage context to effectiveness multiplier by @AlexOn1ine in [#7111](https://github.com/rh-hideout/pokeemerald-expansion/pull/7111)
* Decouple Status set by ability from SetMoveEffect by @AlexOn1ine in [#7125](https://github.com/rh-hideout/pokeemerald-expansion/pull/7125)
* Removed redundant Damp check by @AsparagusEduardo in [#7134](https://github.com/rh-hideout/pokeemerald-expansion/pull/7134)
* Converted Relic Song into a proper form change by @AsparagusEduardo in [#7139](https://github.com/rh-hideout/pokeemerald-expansion/pull/7139)
- Added `FORM_CHANGE_BATTLE_AFTER_MOVE` to parametrize Relic Song's form change
* Removed Mind Blown effect in favor of move flag by @AsparagusEduardo in [#7138](https://github.com/rh-hideout/pokeemerald-expansion/pull/7138)
* Volatile status refactoring by @cfmnephrite in [#6983](https://github.com/rh-hideout/pokeemerald-expansion/pull/6983)
* Repurposes IsMagicGuardProtected into a general function by @AlexOn1ine in [#7114](https://github.com/rh-hideout/pokeemerald-expansion/pull/7114)
* Stat Change (Animation) Refactor by @PhallenTree in [#7144](https://github.com/rh-hideout/pokeemerald-expansion/pull/7144)
-`setgraphicalstatchangevalues` and `playstatchangeanimation` have been removed and now Stat Change Animations are handled in `statbuffchange`.
- To update your custom battle scripts:
`setgraphicalstatchangevalues` is often accompanied by `playanimation X, B_ANIM_STATS_CHANGE`. When I refer to deleting `setgraphicalstatchangevalues` below, that command should also be deleted.
1. If `statbuffchange` is before `setgraphicalstatchangevalues`/`playstatchangeanimation` and there is something in between them (for example, `attackanimation` and `waitanimation`), add the flag `STAT_CHANGE_ONLY_CHECKING` and replace the command (`setgraphicalstatchangevalues`/`playstatchangeanimation`) with a copy of the original `statbuffchange`.
2. If `statbuffchange` is after `setgraphicalstatchangevalues`/`playstatchangeanimation` or there is nothing in between, you should delete those commands (`setgraphicalstatchangevalues`/`playstatchangeanimation`) and no further changes other than those in _3._ should be required.
3. If `playstatchangeanimation` had bits assigned to them (`BIT_ATK | BIT_SPATK`, for example), add ", " followed by those bits to the first `statbuffchange`; for the following `statbuffchange`s, remove stats that have already been increased/decreased.
* Use `argument.type` for `EFFECT_SOAK` by @AsparagusEduardo in [#7141](https://github.com/rh-hideout/pokeemerald-expansion/pull/7141)
* Untangle `InitBtlControllers` functions by @AsparagusEduardo in [#6748](https://github.com/rh-hideout/pokeemerald-expansion/pull/6748)
* Increase party action limit by @cawtds in [#7119](https://github.com/rh-hideout/pokeemerald-expansion/pull/7119)
* Adds Gen5+ Encore config by @AlexOn1ine in [#7051](https://github.com/rh-hideout/pokeemerald-expansion/pull/7051)
* Attackcanceller clean up by @AlexOn1ine in [#7210](https://github.com/rh-hideout/pokeemerald-expansion/pull/7210)
* Remove redundant move result flag checks by @AlexOn1ine in [#7223](https://github.com/rh-hideout/pokeemerald-expansion/pull/7223)
* Use dedicated functions for Mud/Water Sport by @AlexOn1ine in [#7248](https://github.com/rh-hideout/pokeemerald-expansion/pull/7248)
* Script clean up for Flame Burst and Costar by @AlexOn1ine in [#7264](https://github.com/rh-hideout/pokeemerald-expansion/pull/7264)
* Renaming STATUS1_REFRESH and adding more constants for common STATUS1 checks. by @surskitty in [#7284](https://github.com/rh-hideout/pokeemerald-expansion/pull/7284)
* Refactor move Synchronise by @AlexOn1ine in [#7271](https://github.com/rh-hideout/pokeemerald-expansion/pull/7271)
* Adds hazard queue by @AlexOn1ine in [#7295](https://github.com/rh-hideout/pokeemerald-expansion/pull/7295)
* Removed all instances of .chance = 100, SHEER_FORCE_NO_BOOST by @cfmnephrite in [#7300](https://github.com/rh-hideout/pokeemerald-expansion/pull/7300)
* Changes AccuracyCalcHelper into CanMoveSkipAccuracyCalc by @AlexOn1ine in [#7303](https://github.com/rh-hideout/pokeemerald-expansion/pull/7303)
* Replaces STATUS2 usage with volatiles in code by @cfmnephrite in [#7262](https://github.com/rh-hideout/pokeemerald-expansion/pull/7262)
- Replaced all references to STATUS2 in the code with volatiles (but left the old bitfield behind for compatibility with downstream users). The list of volatiles is in `include/constants/battle.h` and includes information such as an enum, a field name, type and max size, and whether or not the move is Baton Passable. Users can use VOLATILE_X with any function that previously took STATUS2_X in scripts, and can check/set volatiles in C with `gBattleMons[battler].volatiles.{field name}` syntax instead of checking a flag in a bitfield.
* Refactor battle environment by @fdeblasio in [#4891](https://github.com/rh-hideout/pokeemerald-expansion/pull/4891)
* Convert various to callnatives by @AlexOn1ine in [#7355](https://github.com/rh-hideout/pokeemerald-expansion/pull/7355)
* Remove leftover code by @AlexOn1ine in [#7397](https://github.com/rh-hideout/pokeemerald-expansion/pull/7397)
* Moved some fields to BattlerState/PartyState by @AsparagusEduardo in [#7409](https://github.com/rh-hideout/pokeemerald-expansion/pull/7409)
* Additional effects tweak by @cfmnephrite in [#7392](https://github.com/rh-hideout/pokeemerald-expansion/pull/7392)
* Clean up noResultString by @AlexOn1ine in [#7408](https://github.com/rh-hideout/pokeemerald-expansion/pull/7408)
* Convert Status4 to volatiles by @AlexOn1ine in [#7411](https://github.com/rh-hideout/pokeemerald-expansion/pull/7411)
* Convert statuses3 to volatiles by @AlexOn1ine in [#7514](https://github.com/rh-hideout/pokeemerald-expansion/pull/7514)
* Prevents a regression for custom abilties by @AlexOn1ine in [#7616](https://github.com/rh-hideout/pokeemerald-expansion/pull/7616)
### Fixed
* Fixes Magnet Rise when user is Rooted/Smacked Down by @PhallenTree in [#7449](https://github.com/rh-hideout/pokeemerald-expansion/pull/7449)
* Fixes Leech Seed recovery not applying behind Sub by @AlexOn1ine in [#7468](https://github.com/rh-hideout/pokeemerald-expansion/pull/7468)
* Fixes Round and Fusion moves doubling power from previous turn's move by @PhallenTree in [#7476](https://github.com/rh-hideout/pokeemerald-expansion/pull/7476)
* Fixes shadows and mon animations for transformed battlers by @AsparagusEduardo in [#7500](https://github.com/rh-hideout/pokeemerald-expansion/pull/7500)
* Fixes Life Orb still activating if move was absorbed by @AlexOn1ine in [#7521](https://github.com/rh-hideout/pokeemerald-expansion/pull/7521)
* Fix Mimicry Only Activating Once per Turn by @ghoulslash in [#7537](https://github.com/rh-hideout/pokeemerald-expansion/pull/7537)
* Fixes Knock Off still activating when there is no Item by @AlexOn1ine in [#7496](https://github.com/rh-hideout/pokeemerald-expansion/pull/7496)
* Fixed `B_PSYWAVE_DMG` by @AsparagusEduardo in [#7557](https://github.com/rh-hideout/pokeemerald-expansion/pull/7557)
* Fixes Counter / Mirror Coat / Metal Burst damage assignment by @AlexOn1ine in [#7538](https://github.com/rh-hideout/pokeemerald-expansion/pull/7538)
* Fix in-game partner battles always causing a whiteout by @ravepossum in [#7587](https://github.com/rh-hideout/pokeemerald-expansion/pull/7587)
* Fix B_ANIMATE_MON_AFTER_KO with a new counter by @hedara90 in [#7531](https://github.com/rh-hideout/pokeemerald-expansion/pull/7531)
* Fixes Rage Fist counter increment by @AlexOn1ine in [#7582](https://github.com/rh-hideout/pokeemerald-expansion/pull/7582)
* Fixes moveend_absorb hitmarker by @AlexOn1ine in [#7591](https://github.com/rh-hideout/pokeemerald-expansion/pull/7591)
* switchinabilities also runs ON_WEATHER and ON_TERRAIN by @ghoulslash in [#7612](https://github.com/rh-hideout/pokeemerald-expansion/pull/7612)
* Fixes Explosion behavior when 3 mons can endure hit by @AlexOn1ine in [#7594](https://github.com/rh-hideout/pokeemerald-expansion/pull/7594)
* Fixes octolock not ending after user switched out by @AlexOn1ine in [#7556](https://github.com/rh-hideout/pokeemerald-expansion/pull/7556)
* The original attacker wasn't restored for Doodle by @AlexOn1ine in [#7620](https://github.com/rh-hideout/pokeemerald-expansion/pull/7620)
* Restore X item friendship increase by @ravepossum in [#7583](https://github.com/rh-hideout/pokeemerald-expansion/pull/7583)
* Fixes Wonder Room interactions with Defense/Special Defense boosting effects by @PhallenTree in [#7626](https://github.com/rh-hideout/pokeemerald-expansion/pull/7626)
* Ally Switch attract battler swapping, test for leech seed by @ghoulslash in [#7634](https://github.com/rh-hideout/pokeemerald-expansion/pull/7634)
* Fixes Defiant/Competitive not resetting stat change animations and stat change related cleanup by @PhallenTree in [#7004](https://github.com/rh-hideout/pokeemerald-expansion/pull/7004)
* Use battler arguments for SetMoveEffect by @AlexOn1ine in [#7156](https://github.com/rh-hideout/pokeemerald-expansion/pull/7156)
* Fixes Booster Energy timing activation + Clean up by @AlexOn1ine in [#7175](https://github.com/rh-hideout/pokeemerald-expansion/pull/7175)
* Fixes Eject Pack not resolving correctly during switch in effects by @AlexOn1ine in [#7002](https://github.com/rh-hideout/pokeemerald-expansion/pull/7002)
* Adds Ability Shield activation message by @PhallenTree in [#7224](https://github.com/rh-hideout/pokeemerald-expansion/pull/7224)
* Fix incorrect type input by @hedara90 in [#7228](https://github.com/rh-hideout/pokeemerald-expansion/pull/7228)
* Set correct Instruction by @AlexOn1ine in [#7236](https://github.com/rh-hideout/pokeemerald-expansion/pull/7236)
* Fixes Life Dew playing anim when it is not supposed to + tests by @AlexOn1ine in [#7239](https://github.com/rh-hideout/pokeemerald-expansion/pull/7239)
* Fixes instances of battler mutation for abilities by @AlexOn1ine in [#7250](https://github.com/rh-hideout/pokeemerald-expansion/pull/7250)
* Fix Psych Up message and cleanup and don't allow switching to self in tests by @PhallenTree in [#7277](https://github.com/rh-hideout/pokeemerald-expansion/pull/7277)
* Fix incorrect status in beneficial ability Guts check by @grintoul1 in [#7285](https://github.com/rh-hideout/pokeemerald-expansion/pull/7285)
* battle_interface: overhaul ability pop up by @mudskipper13 in [#7227](https://github.com/rh-hideout/pokeemerald-expansion/pull/7227)
- The layout of the ability pop up's image (`graphics/battle_interface/ability_pop_up.png`) has been changed.
* Fixes Status overwrites and Effect Spore wrong func args by @AlexOn1ine in [#7340](https://github.com/rh-hideout/pokeemerald-expansion/pull/7340)
* Fixes various Choice lock issues by @AlexOn1ine in [#7383](https://github.com/rh-hideout/pokeemerald-expansion/pull/7383)
* Fixes draining moves recovering 1 HP when dealing 0 damage by @LinathanZel in [#7523](https://github.com/rh-hideout/pokeemerald-expansion/pull/7523)
## 🤹 Moves 🤹
### Changed
* New Attack Animations: 25w20a by @ShinyVolcarona in [#6886](https://github.com/rh-hideout/pokeemerald-expansion/pull/6886)
- Added move animations for multiple moves by @LinathanZel
- Dynamax Cannon, Behemoth Blade, Behemoth Bash, Eternabeam, Glaive Rush, Triple Dive, Doodle, Ruination, Collision Course, Electro Drift, Blazing Torque, Wicked Torque, Noxious Torque, Combat Torque, Magical Torque, Psyblade, Mighty Cleave, Supercell Slam
* Documented usage of `delay X` by @AsparagusEduardo in [#6951](https://github.com/rh-hideout/pokeemerald-expansion/pull/6951)
* Animation documentation by @AsparagusEduardo in [#7052](https://github.com/rh-hideout/pokeemerald-expansion/pull/7052)
* New and polished battle animations by @LinathanZel in [#7074](https://github.com/rh-hideout/pokeemerald-expansion/pull/7074)
### Fixed
* Clear gScanlineEffect to fix timeout in acid downpour animation by @FosterProgramming in [#7442](https://github.com/rh-hideout/pokeemerald-expansion/pull/7442)
* Fix terastallization anims flickering by @ravepossum in [#7613](https://github.com/rh-hideout/pokeemerald-expansion/pull/7613)
## 🧶 Items 🧶
### Changed
* Fix using town map as registered item by @ravepossum in [#7482](https://github.com/rh-hideout/pokeemerald-expansion/pull/7482)
* Compound strings for hold effect names by @AsparagusEduardo in [#7140](https://github.com/rh-hideout/pokeemerald-expansion/pull/7140)
* Untangled TMs and HMs from item ids by @cfmnephrite in [#7173](https://github.com/rh-hideout/pokeemerald-expansion/pull/7173)
* Bag refactor 2 by @cfmnephrite in [#7166](https://github.com/rh-hideout/pokeemerald-expansion/pull/7166)
### Fixed
* Implement using party menu items from field by @ravepossum in [#7481](https://github.com/rh-hideout/pokeemerald-expansion/pull/7481)
* Fixed TM and Berries disappearing when sorting by @AsparagusEduardo in [#7168](https://github.com/rh-hideout/pokeemerald-expansion/pull/7168)
* Fixed item swapping bug (#7428) by @cfmnephrite in [#7430](https://github.com/rh-hideout/pokeemerald-expansion/pull/7430)
* Fixes some Ability Shield interactions by @PhallenTree in [#7532](https://github.com/rh-hideout/pokeemerald-expansion/pull/7532)
* Fix tossing a stack of berries hiding following berries by @hedara90 in [#7571](https://github.com/rh-hideout/pokeemerald-expansion/pull/7571)
## 🤖 Battle AI 🤖
### Added
* AI: Add AI_SMART_TERA flag to make smarter decisions about when to terastalize. by @jfb1337 in [#6705](https://github.com/rh-hideout/pokeemerald-expansion/pull/6705)
- Only single battles are currently supported.
* Haze Boosting AI Followup by @Pawkkie in [#6966](https://github.com/rh-hideout/pokeemerald-expansion/pull/6966)
* Improved logic for Guard Split and Power Split. by @surskitty in [#7298](https://github.com/rh-hideout/pokeemerald-expansion/pull/7298)
* Add AI_FLAG_ASSUME_STAB by @Pawkkie in [#6797](https://github.com/rh-hideout/pokeemerald-expansion/pull/6797)
* AI checks the partner's moves for Flatter, Swagger, and Soak. by @surskitty in [#7306](https://github.com/rh-hideout/pokeemerald-expansion/pull/7306)
* AI uses After You to help set up Trick Room. by @surskitty in [#7310](https://github.com/rh-hideout/pokeemerald-expansion/pull/7310)
* AI assumes Magnitude / Present damage by @Pawkkie in [#7334](https://github.com/rh-hideout/pokeemerald-expansion/pull/7334)
* AI_FLAG_ASSUME_STATUS_MOVES -- AI flag to randomly know some of the player's status moves by @surskitty in [#7324](https://github.com/rh-hideout/pokeemerald-expansion/pull/7324)
* Improve AI's setup logic by @Pawkkie in [#7345](https://github.com/rh-hideout/pokeemerald-expansion/pull/7345)
* Improve AI's ShouldRecover by @Pawkkie in [#7342](https://github.com/rh-hideout/pokeemerald-expansion/pull/7342)
* Switch AI can see weather abilities of switchin candidates during damage calcs by @Pawkkie in [#7373](https://github.com/rh-hideout/pokeemerald-expansion/pull/7373)
* AI refactor for weather-setting, terrain-setting, Trick Room behaviors; doubles-focused by @surskitty in [#7319](https://github.com/rh-hideout/pokeemerald-expansion/pull/7319)
- AI is more likely to use Trick Room in double battles and Terrains in general.
* Improve AI type matchup calcs by @Pawkkie in [#7364](https://github.com/rh-hideout/pokeemerald-expansion/pull/7364)
* Multibattle Partner AI Flags and 2vs1 battler3 AI Flags fix by @grintoul1 in [#7378](https://github.com/rh-hideout/pokeemerald-expansion/pull/7378)
* Improve AI's Sucker Punch handling by @Pawkkie in [#7389](https://github.com/rh-hideout/pokeemerald-expansion/pull/7389)
* Improve AI's priority handling by @Pawkkie in [#7337](https://github.com/rh-hideout/pokeemerald-expansion/pull/7337)
* Fix dynamic move types in switching by @Pawkkie in [#7415](https://github.com/rh-hideout/pokeemerald-expansion/pull/7415)
* Adds AI_FLAG_ASSUMPTIONS as a constant for semi-omniscience by @surskitty in [#7435](https://github.com/rh-hideout/pokeemerald-expansion/pull/7435)
* AI_FLAG_ATTACKS_PARTNER with a config for bloodthirstiness by @surskitty in [#7401](https://github.com/rh-hideout/pokeemerald-expansion/pull/7401)
* Improved Guaranteed Flinch logic (fake out et al) by @surskitty in [#7501](https://github.com/rh-hideout/pokeemerald-expansion/pull/7501)
* AI uses Court Change. by @surskitty in [#7525](https://github.com/rh-hideout/pokeemerald-expansion/pull/7525)
* AI uses Tailwind. by @surskitty in [#7515](https://github.com/rh-hideout/pokeemerald-expansion/pull/7515)
* AI should not use Dark Void or Hyperspace Fury while wrong species by @surskitty in [#7540](https://github.com/rh-hideout/pokeemerald-expansion/pull/7540)
* AI uses Rototiller. by @surskitty in [#7542](https://github.com/rh-hideout/pokeemerald-expansion/pull/7542)
* Helping Hand logic by @surskitty in [#7504](https://github.com/rh-hideout/pokeemerald-expansion/pull/7504)
### Changed
* Macro-for-AI-Flag-definitions by @grintoul1 in [#7471](https://github.com/rh-hideout/pokeemerald-expansion/pull/7471)
* Remove redundancy for ShouldLowerStat functions by @AlexOn1ine in [#6577](https://github.com/rh-hideout/pokeemerald-expansion/pull/6577)
* Expanding and Refactoring Skill Swap and other ability-changing moves by @surskitty in [#7238](https://github.com/rh-hideout/pokeemerald-expansion/pull/7238)
* Changes AccuracyCalcHelper into CanMoveSkipAccuracyCalc by @AlexOn1ine in [#7303](https://github.com/rh-hideout/pokeemerald-expansion/pull/7303)
* AI Tests + accompanying bugfixes for Skill Swap, Worry Seed, weather setting in double battles, and Discharging into an ally's lightningrod by @surskitty in [#7297](https://github.com/rh-hideout/pokeemerald-expansion/pull/7297)
* Fix AI resisted move scoring by @Pawkkie in [#7350](https://github.com/rh-hideout/pokeemerald-expansion/pull/7350)
* Fiddling with CanLowerStat. by @surskitty in [#7510](https://github.com/rh-hideout/pokeemerald-expansion/pull/7510)
* Improved hazards logic and Mycelium Might ignores ability checks by @surskitty in [#7509](https://github.com/rh-hideout/pokeemerald-expansion/pull/7509)
* AI handling for similar utility moves by @surskitty in [#7513](https://github.com/rh-hideout/pokeemerald-expansion/pull/7513)
* Modify move prediction to work in doubles by @AlexOn1ine in [#7087](https://github.com/rh-hideout/pokeemerald-expansion/pull/7087)
* Uncommenting out No Retreat, Clangorous Soul, and Extreme Evoboost from CheckBadMove by @surskitty in [#7541](https://github.com/rh-hideout/pokeemerald-expansion/pull/7541)
* AI Tailwind singles fix correction. by @surskitty in [#7543](https://github.com/rh-hideout/pokeemerald-expansion/pull/7543)
* Remove funcResult from AiThinkingStruct by @Pawkkie in [#7545](https://github.com/rh-hideout/pokeemerald-expansion/pull/7545)
* AI handling for Autotomize. by @surskitty in [#7550](https://github.com/rh-hideout/pokeemerald-expansion/pull/7550)
* AI uses Stuff Cheeks; treating it simply as a def +2 move for now. by @surskitty in [#7554](https://github.com/rh-hideout/pokeemerald-expansion/pull/7554)
* Slight Purify adjustment for targeting ally; test that AI can use Purify. by @surskitty in [#7553](https://github.com/rh-hideout/pokeemerald-expansion/pull/7553)
* AI handling for Howl. by @surskitty in [#7549](https://github.com/rh-hideout/pokeemerald-expansion/pull/7549)
* Test that AI uses Dragon Cheer. by @surskitty in [#7552](https://github.com/rh-hideout/pokeemerald-expansion/pull/7552)
* Tests to see that the AI uses moves. by @surskitty in [#7555](https://github.com/rh-hideout/pokeemerald-expansion/pull/7555)
### Fixed
* Incorrect call in Rest by @surskitty in [#7569](https://github.com/rh-hideout/pokeemerald-expansion/pull/7569)
* Fix duplicate switch in after faint by @AlexOn1ine in [#7600](https://github.com/rh-hideout/pokeemerald-expansion/pull/7600)
* Feature/ai/wide guard quick guard singles by @Emiliasky in [#7086](https://github.com/rh-hideout/pokeemerald-expansion/pull/7086)
* Add missing break by @Pawkkie in [#7356](https://github.com/rh-hideout/pokeemerald-expansion/pull/7356)
* fixed-damage-move-ai-calc-fix by @grintoul1 in [#7385](https://github.com/rh-hideout/pokeemerald-expansion/pull/7385)
* Avoid doubling up on status moves in double battles. by @surskitty in [#7452](https://github.com/rh-hideout/pokeemerald-expansion/pull/7452)
* Fix doubles switch AI to use new type matchup system by @Pawkkie in [#7495](https://github.com/rh-hideout/pokeemerald-expansion/pull/7495)
* Fix Bad Odds not seeing damage properly by @Pawkkie in [#7492](https://github.com/rh-hideout/pokeemerald-expansion/pull/7492)
* Fix GetSwitchinHitsToKO one shot heal calcs by @Pawkkie in [#7502](https://github.com/rh-hideout/pokeemerald-expansion/pull/7502)
* Fix AI's KO evaluation getting messed up by priority by @Pawkkie in [#7533](https://github.com/rh-hideout/pokeemerald-expansion/pull/7533)
* Fixing Refresh AI scoring by @surskitty in [#7539](https://github.com/rh-hideout/pokeemerald-expansion/pull/7539)
* Fix switch AI not seeing its own move PP by @Pawkkie in [#7578](https://github.com/rh-hideout/pokeemerald-expansion/pull/7578)
* Fix wrong battler argument in `GetBattleMovePriority` call by @Pawkkie in [#7576](https://github.com/rh-hideout/pokeemerald-expansion/pull/7576)
* Restore AI: Basic Trainer to PARTNER_STEVEN by @grintoul1 in [#7586](https://github.com/rh-hideout/pokeemerald-expansion/pull/7586)
## 🧹 Other Cleanup 🧹
* Macro-for-AI-Flag-definitions by @grintoul1 in [#7471](https://github.com/rh-hideout/pokeemerald-expansion/pull/7471)
* Moved summary screen nature colors to summary_screen.h by @RubyRaven6 in [#7560](https://github.com/rh-hideout/pokeemerald-expansion/pull/7560)
* fix: remove unused wild_encounters.json.txt jinja file by @khbsd in [#7581](https://github.com/rh-hideout/pokeemerald-expansion/pull/7581)
* Fix Form Change Item Task Data and Clean Up Field Use Funcs by @ravepossum in [#7535](https://github.com/rh-hideout/pokeemerald-expansion/pull/7535)
* Fixed Teleport's description not being updated based on `B_TELEPORT_BEHAVIOR` by @AsparagusEduardo in [#7580](https://github.com/rh-hideout/pokeemerald-expansion/pull/7580)
* Fixed typo in test name by @hedara90 in [#7610](https://github.com/rh-hideout/pokeemerald-expansion/pull/7610)
* Minor Clean up in battle_ai_main.c by @AlexOn1ine in [#7551](https://github.com/rh-hideout/pokeemerald-expansion/pull/7551)
* Remove unused function by @AlexOn1ine in [#7617](https://github.com/rh-hideout/pokeemerald-expansion/pull/7617)
* Fix Vs Seeker Trainer Battle script issue by @pkmnsnfrn in [#7615](https://github.com/rh-hideout/pokeemerald-expansion/pull/7615)
* Clean up battlescript calls with func BattleScriptCall by @AlexOn1ine in [#6873](https://github.com/rh-hideout/pokeemerald-expansion/pull/6873)
* Replace all usages of lz compression with smol by @hedara90 in [#7032](https://github.com/rh-hideout/pokeemerald-expansion/pull/7032)
* `BtlController_EmitTwoReturnValues` cleanup by @AsparagusEduardo in [#6855](https://github.com/rh-hideout/pokeemerald-expansion/pull/6855)
* `GetBattlerMon` cleanup by @AsparagusEduardo in [#6967](https://github.com/rh-hideout/pokeemerald-expansion/pull/6967)
* Converts a bunch of defines to enums by @Bassoonian in [#7041](https://github.com/rh-hideout/pokeemerald-expansion/pull/7041)
* Change GetZMaxMoveAgainstProtectionModifier to prevent regressions by @AlexOn1ine in [#7047](https://github.com/rh-hideout/pokeemerald-expansion/pull/7047)
* Remove more instances of hard-coded Move IDs by @AsparagusEduardo in [#7056](https://github.com/rh-hideout/pokeemerald-expansion/pull/7056)
- Added `EFFECT_SHEER_COLD` to parametrize Sheer Cold's interactions with Ice types
* Animation documentation by @AsparagusEduardo in [#7052](https://github.com/rh-hideout/pokeemerald-expansion/pull/7052)
* Deprecate sStatusFlagsForMoveEffects by @AlexOn1ine in [#7063](https://github.com/rh-hideout/pokeemerald-expansion/pull/7063)
* chore: remove unused section from credits by @Emiliasky in [#7085](https://github.com/rh-hideout/pokeemerald-expansion/pull/7085)
* Removes duplicate AI ability func by @AlexOn1ine in [#7045](https://github.com/rh-hideout/pokeemerald-expansion/pull/7045)
* Remove redundancy for ShouldLowerStat functions by @AlexOn1ine in [#6577](https://github.com/rh-hideout/pokeemerald-expansion/pull/6577)
* Deprecate absent member from battlerState by @AlexOn1ine in [#7091](https://github.com/rh-hideout/pokeemerald-expansion/pull/7091)
* Use CanAbilityAbsorbMove in GetOverworldTypeEffectiveness by @AlexOn1ine in [#7115](https://github.com/rh-hideout/pokeemerald-expansion/pull/7115)
* Removed redundant Damp check by @AsparagusEduardo in [#7134](https://github.com/rh-hideout/pokeemerald-expansion/pull/7134)
* Improve music/se macros and fix names by @cawtds in [#7030](https://github.com/rh-hideout/pokeemerald-expansion/pull/7030)
* Compound strings for hold effect names by @AsparagusEduardo in [#7140](https://github.com/rh-hideout/pokeemerald-expansion/pull/7140)
* Repurposes IsMagicGuardProtected into a general function by @AlexOn1ine in [#7114](https://github.com/rh-hideout/pokeemerald-expansion/pull/7114)
* Converts more defines to enums and name unnamed enums by @Bassoonian in [#7071](https://github.com/rh-hideout/pokeemerald-expansion/pull/7071)
* Use `argument.type` for `EFFECT_SOAK` by @AsparagusEduardo in [#7141](https://github.com/rh-hideout/pokeemerald-expansion/pull/7141)
* More battle controller function consolidation. by @AsparagusEduardo in [#6877](https://github.com/rh-hideout/pokeemerald-expansion/pull/6877)
* Add assumes for bag tests by @Bassoonian in [#7188](https://github.com/rh-hideout/pokeemerald-expansion/pull/7188)
* Fixes Booster Energy timing activation + Clean up by @AlexOn1ine in [#7175](https://github.com/rh-hideout/pokeemerald-expansion/pull/7175)
* Update .gitignore to add heal locations by @Bassoonian in [#7050](https://github.com/rh-hideout/pokeemerald-expansion/pull/7050)
* Attackcanceller clean up by @AlexOn1ine in [#7210](https://github.com/rh-hideout/pokeemerald-expansion/pull/7210)
* Remove redundant move result flag checks by @AlexOn1ine in [#7223](https://github.com/rh-hideout/pokeemerald-expansion/pull/7223)
* Add P_ASK_MOVE_CONFIRMATION by @pkmnsnfrn in [#7132](https://github.com/rh-hideout/pokeemerald-expansion/pull/7132)
- This will change the behavior of the game for players, as a new default is being set.
* Script clean up for Flame Burst and Costar by @AlexOn1ine in [#7264](https://github.com/rh-hideout/pokeemerald-expansion/pull/7264)
* Use compound strings in battle debug menu by @AsparagusEduardo in [#7282](https://github.com/rh-hideout/pokeemerald-expansion/pull/7282)
* Renaming STATUS1_REFRESH and adding more constants for common STATUS1 checks. by @surskitty in [#7284](https://github.com/rh-hideout/pokeemerald-expansion/pull/7284)
* Removed all instances of .chance = 100, SHEER_FORCE_NO_BOOST by @cfmnephrite in [#7300](https://github.com/rh-hideout/pokeemerald-expansion/pull/7300)
* AI Tests + accompanying bugfixes for Skill Swap, Worry Seed, weather setting in double battles, and Discharging into an ally's lightningrod by @surskitty in [#7297](https://github.com/rh-hideout/pokeemerald-expansion/pull/7297)
* Turn `OW_FRLG_WHITEOUT` into `OW_WHITEOUT_CUTSCENE` and make it generational by @kittenchilly in [#6962](https://github.com/rh-hideout/pokeemerald-expansion/pull/6962)
* Fix AI resisted move scoring by @Pawkkie in [#7350](https://github.com/rh-hideout/pokeemerald-expansion/pull/7350)
* Convert various to callnatives by @AlexOn1ine in [#7355](https://github.com/rh-hideout/pokeemerald-expansion/pull/7355)
* Remove leftover code by @AlexOn1ine in [#7397](https://github.com/rh-hideout/pokeemerald-expansion/pull/7397)
* Moved some fields to BattlerState/PartyState by @AsparagusEduardo in [#7409](https://github.com/rh-hideout/pokeemerald-expansion/pull/7409)
* Additional effects tweak by @cfmnephrite in [#7392](https://github.com/rh-hideout/pokeemerald-expansion/pull/7392)
* Clean up noResultString by @AlexOn1ine in [#7408](https://github.com/rh-hideout/pokeemerald-expansion/pull/7408)
* Bag sorting cleanup by @mrgriffin in [#7489](https://github.com/rh-hideout/pokeemerald-expansion/pull/7489)
* Convert statuses3 to volatiles by @AlexOn1ine in [#7514](https://github.com/rh-hideout/pokeemerald-expansion/pull/7514)
* Uncommenting out No Retreat, Clangorous Soul, and Extreme Evoboost from CheckBadMove by @surskitty in [#7541](https://github.com/rh-hideout/pokeemerald-expansion/pull/7541)
* AI Tailwind singles fix correction. by @surskitty in [#7543](https://github.com/rh-hideout/pokeemerald-expansion/pull/7543)
* Remove funcResult from AiThinkingStruct by @Pawkkie in [#7545](https://github.com/rh-hideout/pokeemerald-expansion/pull/7545)
* Suppress trainerproc compile warning for unused func by @AlexOn1ine in [#7592](https://github.com/rh-hideout/pokeemerald-expansion/pull/7592)
* Prevents a regression for custom abilties by @AlexOn1ine in [#7616](https://github.com/rh-hideout/pokeemerald-expansion/pull/7616)
## 🧪 Test Runner 🧪
### Changed
* Clean up some Normalize tests to make them make sense by @hedara90 in [#7461](https://github.com/rh-hideout/pokeemerald-expansion/pull/7461)
* Add Synthesis + Utililty Umbrella test by @ghoulslash in [#7472](https://github.com/rh-hideout/pokeemerald-expansion/pull/7472)
* Add test for BoxPokemon integrity by @hedara90 in [#7487](https://github.com/rh-hideout/pokeemerald-expansion/pull/7487)
* Re-order moves in fling test by @hedara90 in [#7559](https://github.com/rh-hideout/pokeemerald-expansion/pull/7559)
* Wrote some tests by @AsparagusEduardo in [#7563](https://github.com/rh-hideout/pokeemerald-expansion/pull/7563)
* Added Ability TODO tests - Volume C by @AsparagusEduardo in [#7562](https://github.com/rh-hideout/pokeemerald-expansion/pull/7562)
* Added missing Move Effect TODO tests - Volume F by @AsparagusEduardo in [#7605](https://github.com/rh-hideout/pokeemerald-expansion/pull/7605)
* Fixed typo in test name by @hedara90 in [#7610](https://github.com/rh-hideout/pokeemerald-expansion/pull/7610)
* Add assumes for bag tests by @Bassoonian in [#7188](https://github.com/rh-hideout/pokeemerald-expansion/pull/7188)
* Split Sheer Force tests by gen instead of by four by @AlexOn1ine in [#7260](https://github.com/rh-hideout/pokeemerald-expansion/pull/7260)
* make check TESTS="..." support for filenames and infix matches by @mrgriffin in [#7536](https://github.com/rh-hideout/pokeemerald-expansion/pull/7536)
* Fix shell side arm rng in battle tests moves by @FosterProgramming in [#7548](https://github.com/rh-hideout/pokeemerald-expansion/pull/7548)
* Test that AI uses Dragon Cheer. by @surskitty in [#7552](https://github.com/rh-hideout/pokeemerald-expansion/pull/7552)
* Tests to see that the AI uses moves. by @surskitty in [#7555](https://github.com/rh-hideout/pokeemerald-expansion/pull/7555)
### Fixed
* Clear out parties between battle tests by @hedara90 in [#7460](https://github.com/rh-hideout/pokeemerald-expansion/pull/7460)
* Fixed most failed tests with `GEN_LATEST GEN_8` by @AsparagusEduardo in [#7498](https://github.com/rh-hideout/pokeemerald-expansion/pull/7498)
* Corrected Liquid Ooze test by @AsparagusEduardo in [#7527](https://github.com/rh-hideout/pokeemerald-expansion/pull/7527)
* switchinabilities also runs ON_WEATHER and ON_TERRAIN by @ghoulslash in [#7612](https://github.com/rh-hideout/pokeemerald-expansion/pull/7612)
* Ally Switch attract battler swapping, test for leech seed by @ghoulslash in [#7634](https://github.com/rh-hideout/pokeemerald-expansion/pull/7634)
* Fixed changed effect for Sheer Cold by @hedara90 in [#7099](https://github.com/rh-hideout/pokeemerald-expansion/pull/7099)
* Fixed Transistor damage calculation test failing when `GEN_LATEST` is less than `GEN_9` by @AsparagusEduardo in [#7577](https://github.com/rh-hideout/pokeemerald-expansion/pull/7577)
## 📚 Documentation 📚
* Update how_to_new_pokemon.md by @kevinwklawrence in [#7440](https://github.com/rh-hideout/pokeemerald-expansion/pull/7440)
* Updating a link to porytiles in INSTALL.md by @ThePeeps191 in [#7490](https://github.com/rh-hideout/pokeemerald-expansion/pull/7490)
* Added comment in event.inc for simple menus in dynmultichoice by @RubyRaven6 in [#7568](https://github.com/rh-hideout/pokeemerald-expansion/pull/7568)
* Documented usage of `delay X` by @AsparagusEduardo in [#6951](https://github.com/rh-hideout/pokeemerald-expansion/pull/6951)
* Update follower NPC tutorial doc for createfollowernpc macro by @Bivurnum in [#7230](https://github.com/rh-hideout/pokeemerald-expansion/pull/7230)
* Improve trainer back pic-related data and code (+ smol documentation) by @mudskipper13 in [#6821](https://github.com/rh-hideout/pokeemerald-expansion/pull/6821)
* Update trainer.h usage warning by @hedara90 in [#7439](https://github.com/rh-hideout/pokeemerald-expansion/pull/7439)
## New Contributors
* @kevinwklawrence made their first contribution in [#7440](https://github.com/rh-hideout/pokeemerald-expansion/pull/7440)
* @ThePeeps191 made their first contribution in [#7490](https://github.com/rh-hideout/pokeemerald-expansion/pull/7490)
* @cornixsenex made their first contribution in [#7368](https://github.com/rh-hideout/pokeemerald-expansion/pull/7368)
**Full Changelog**: https://github.com/rh-hideout/pokeemerald-expansion/compare/expansion/1.12.2...expansion/1.12.3
## New Contributors
* @ShinyVolcarona made their first contribution in [#6886](https://github.com/rh-hideout/pokeemerald-expansion/pull/6886)
* @Emiliasky made their first contribution in [#7085](https://github.com/rh-hideout/pokeemerald-expansion/pull/7085)
* @poetahto made their first contribution in [#7155](https://github.com/rh-hideout/pokeemerald-expansion/pull/7155)
* @Bolt-Strike made their first contribution in [#7103](https://github.com/rh-hideout/pokeemerald-expansion/pull/7103)
* @kevinwklawrence made their first contribution in [#7440](https://github.com/rh-hideout/pokeemerald-expansion/pull/7440)
* @FosterProgramming made their first contribution in [#7442](https://github.com/rh-hideout/pokeemerald-expansion/pull/7442)
* @ThePeeps191 made their first contribution in [#7490](https://github.com/rh-hideout/pokeemerald-expansion/pull/7490)
* @cornixsenex made their first contribution in [#7368](https://github.com/rh-hideout/pokeemerald-expansion/pull/7368)
**Full Changelog**: https://github.com/rh-hideout/pokeemerald-expansion/compare/expansion/1.12.2...expansion/1.13.0
<!--Last PR: 7635-->
<!--Used to keep track of the last PR merged in case new ones come in before the changelog is done.-->

View File

@ -12,36 +12,33 @@ In general, `gBattlescriptCurrInstr` tracks the current battle script position a
```
`callnative` uses the last battle script command ID in order to pass a native function as an argument. Additional optional arguments are added recursively via a macro, so no need to worry about how they need to align to the amount of instructions to skip.
Now, how might we add a custom `callnative` command? Here are the steps. We will use `BS_TrySetOctolock` as an example.
Now, how might we add a custom `callnative` command? Here are the steps. We will use `BS_JumpIfTerrainAffected` as an example.
### 1. Create a macro in `asm/macros/battle_script.inc`. For example:
```c
.macro trysetoctolock battler:req, failInstr:req
callnative BS_TrySetOctolock
.macro jumpifterrainaffected battler:req, terrainFlags:req, jumpInstr:req
callnative BS_JumpIfTerrainAffected
.byte \battler
.4byte \failInstr
.4byte \terrainFlags
.4byte \jumpInstr
.endm
```
### 2. Add your new callnative command ID to `src/battle_script_commands.c`. For example:
```c
void BS_TrySetOctolock(void)
void BS_JumpIfTerrainAffected(void)
{
NATIVE_ARGS(u8 battler, const u8 *failInstr);
NATIVE_ARGS(u8 battler, u32 flags, const u8 *jumpInstr);
u32 battler = GetBattlerForBattleScript(cmd->battler);
if (gDisableStructs[battler].octolock)
{
gBattlescriptCurrInstr = cmd->failInstr;
}
if (IsBattlerTerrainAffected(battler, cmd->flags))
gBattlescriptCurrInstr = cmd->jumpInstr;
else
{
gDisableStructs[battler].octolock = TRUE;
gBattleMons[battler].volatiles.escapePrevention = TRUE;
gDisableStructs[battler].battlerPreventingEscape = gBattlerAttacker;
gBattlescriptCurrInstr = cmd->nextInstr;
}
}
```
Each of the arguments defined in the macro (`battler`, `failInstr`) need to be called at the start of the command using `NATIVE_ARGS`.
Each of the arguments defined in the macro (`battler`, `flags`, `failInstr`) need to be called at the start of the command using `NATIVE_ARGS`.
The byte count in the macro should correspond to the type that will be used for the command (eg, `u8` is `byte`, while the pointer are `4byte`).
These arguments can then be accessed as `cmd->battler` and `cmd->battler`.
`gBattlescriptCurrInstr = cmd->nextInstr;` advances to the next instruction.
These arguments can then be accessed as `cmd->battler`, `cmd->flags` and `cmd->failInstr`.
Note that for `cmd->battler` we need to use `GetBattlerForBattleScript` to fetch the correct battler because with the macro we are accessing a scripting command that doesn't corresponds to `gBattlerTarget`, `gBattlerAttacker`, etc.
For the battler argument specifically, most of the time the battler is accessed through `gBattlerAttacker`, `gBattlerTarget` and the battler argument left out.
In the majority of cases, this is fine since the script commands are mostly used for moves and the interaction is usually between an attacker and target.
A script command usually ends with either a jump or next instruction `gBattlescriptCurrInstr = cmd->nextInstr / cmd->nextInstr;` advancing to the next instruction.

View File

@ -130,7 +130,9 @@ struct DisableStruct
u8 iceFaceActivationPrevention:1; // fixes hit escape move edge case
u8 unnerveActivated:1; // Unnerve and As One (Unnerve part) activate only once per switch in
u8 hazardsDone:1;
u8 padding:1;
u8 padding1:1;
u8 octolockedBy:3;
u8 padding2:5;
};
// Fully Cleared each turn after end turn effects are done. A few things are cleared before end turn effects
@ -344,7 +346,6 @@ struct AiThinkingStruct
u8 movesetIndex;
u16 moveConsidered;
s32 score[MAX_MON_MOVES];
u32 funcResult;
u64 aiFlags[MAX_BATTLERS_COUNT];
u8 aiAction;
u8 aiLogicId;
@ -684,7 +685,7 @@ struct BattleStruct
u8 startingStatusDone:1;
u8 terrainDone:1;
u8 overworldWeatherDone:1;
u8 unused:3;
u8 battlerKOAnimsRunning:3;
u8 isAtkCancelerForCalledMove:1; // Certain cases in atk canceler should only be checked once, when the original move is called, however others need to be checked the twice.
u8 friskedAbility:1; // If identifies two mons, show the ability pop-up only once.
u8 fickleBeamBoosted:1;
@ -1074,7 +1075,6 @@ extern u32 gHitMarker;
extern u8 gBideTarget[MAX_BATTLERS_COUNT];
extern u32 gSideStatuses[NUM_BATTLE_SIDES];
extern struct SideTimer gSideTimers[NUM_BATTLE_SIDES];
extern u32 gStatuses3[MAX_BATTLERS_COUNT];
extern struct DisableStruct gDisableStructs[MAX_BATTLERS_COUNT];
extern u16 gPauseCounterBattle;
extern u16 gPaydayMoney;
@ -1234,7 +1234,7 @@ static inline bool32 IsSpreadMove(u32 moveTarget)
static inline bool32 IsDoubleSpreadMove(void)
{
return gBattleStruct->numSpreadTargets > 1
&& !(gHitMarker & (HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_UNABLE_TO_USE_MOVE))
&& !(gHitMarker & (HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_HP_UPDATE | HITMARKER_UNABLE_TO_USE_MOVE))
&& IsSpreadMove(GetBattlerMoveTargetType(gBattlerAttacker, gCurrentMove));
}

View File

@ -125,7 +125,6 @@ bool32 BattlerWillFaintFromWeather(u32 battler, u32 ability);
bool32 BattlerWillFaintFromSecondaryDamage(u32 battler, u32 ability);
bool32 ShouldTryOHKO(u32 battlerAtk, u32 battlerDef, u32 atkAbility, u32 defAbility, u32 move);
bool32 ShouldUseRecoilMove(u32 battlerAtk, u32 battlerDef, u32 recoilDmg, u32 moveIndex);
u32 GetBattlerSideSpeedAverage(u32 battler);
bool32 ShouldAbsorb(u32 battlerAtk, u32 battlerDef, u32 move, s32 damage);
bool32 ShouldRecover(u32 battlerAtk, u32 battlerDef, u32 move, u32 healPercent);
bool32 ShouldSetScreen(u32 battlerAtk, u32 battlerDef, enum BattleMoveEffects moveEffect);
@ -161,6 +160,7 @@ bool32 AI_IsDamagedByRecoil(u32 battler);
u32 GetNoOfHitsToKO(u32 dmg, s32 hp);
u32 GetNoOfHitsToKOBattlerDmg(u32 dmg, u32 battlerDef);
u32 GetNoOfHitsToKOBattler(u32 battlerAtk, u32 battlerDef, u32 moveIndex, enum DamageCalcContext calcContext);
u32 GetBestNoOfHitsToKO(u32 battlerAtk, u32 battlerDef, enum DamageCalcContext calcContext);
u32 GetCurrDamageHpPercent(u32 battlerAtk, u32 battlerDef, enum DamageCalcContext calcContext);
uq4_12_t AI_GetMoveEffectiveness(u32 move, u32 battlerAtk, u32 battlerDef);
u16 *GetMovesArray(u32 battler);
@ -296,6 +296,7 @@ u32 IncreaseSubstituteMoveScore(u32 battlerAtk, u32 battlerDef, u32 move);
bool32 IsBattlerItemEnabled(u32 battler);
bool32 IsBattlerPredictedToSwitch(u32 battler);
u32 GetIncomingMove(u32 battler, u32 opposingBattler, struct AiLogicData *aiData);
u32 GetIncomingMoveSpeedCheck(u32 battler, u32 opposingBattler, struct AiLogicData *aiData);
bool32 HasLowAccuracyMove(u32 battlerAtk, u32 battlerDef);
bool32 HasBattlerSideAbility(u32 battlerDef, u32 ability, struct AiLogicData *aiData);
bool32 IsNaturalEnemy(u32 speciesAttacker, u32 speciesTarget);

View File

@ -948,6 +948,7 @@ extern const u8 gBattleAnimStatus_Paralysis[];
extern const u8 gBattleAnimStatus_Freeze[];
extern const u8 gBattleAnimStatus_Curse[];
extern const u8 gBattleAnimStatus_Nightmare[];
extern const u8 gBattleAnimStatus_Frostbite[];
// general animations
extern const u8 gBattleAnimGeneral_StatsChange[];

View File

@ -279,6 +279,7 @@ void InitBattleControllers(void);
bool32 IsValidForBattle(struct Pokemon *mon);
void TryReceiveLinkBattleData(void);
void PrepareBufferDataTransferLink(u32 battler, u32 bufferId, u16 size, u8 *data);
void UpdateFriendshipFromXItem(u32 battler);
// emitters
void BtlController_EmitGetMonData(u32 battler, u32 bufferId, u8 requestId, u8 monToCheck);

View File

@ -394,7 +394,7 @@ bool32 HadMoreThanHalfHpNowDoesnt(u32 battler);
void UpdateStallMons(void);
bool32 TryRestoreHPBerries(u32 battler, enum ItemCaseId caseId);
bool32 TrySwitchInEjectPack(enum ItemCaseId caseID);
u32 GetMonVolatile(u32 battler, enum Volatile _volatile);
u32 GetBattlerVolatile(u32 battler, enum Volatile _volatile);
void SetMonVolatile(u32 battler, enum Volatile _volatile, u32 newValue);
u32 TryBoosterEnergy(u32 battler, u32 ability, enum ItemCaseId caseID);
bool32 ItemHealMonVolatile(u32 battler, u16 itemId);

View File

@ -28,7 +28,7 @@
#define B_BURN_DAMAGE GEN_LATEST // In Gen7+, burn damage is 1/16th of max HP instead of 1/8th. Also applies to Frostbite.
#define B_BURN_FACADE_DMG GEN_LATEST // In Gen6+, burn's effect of lowering the Attack stat no longer applies to Facade.
#define B_BINDING_DAMAGE GEN_LATEST // In Gen6+, binding damage is 1/8 of max HP instead of 1/16. (With Binding Band, 1/6 and 1/8 respectively.)
#define B_PSYWAVE_DMG GEN_LATEST // Psywave's damage formula. See Cmd_psywavedamageeffect.
#define B_PSYWAVE_DMG GEN_LATEST // Psywave's damage formula. See DoFixedDamageMoveCalc for details.
#define B_PAYBACK_SWITCH_BOOST GEN_LATEST // In Gen5+, if the opponent switches out, Payback's damage will no longer be doubled.
#define B_HIDDEN_POWER_DMG GEN_LATEST // In Gen6+, Hidden Power's base power was set to always be 60. Before, it was determined by the mon's IVs.
#define B_ROUGH_SKIN_DMG GEN_LATEST // In Gen4+, Rough Skin contact damage is 1/8th of max HP instead of 1/16th. This will also affect Iron Barbs.

View File

@ -68,7 +68,6 @@
// General settings
#define EXPANSION_INTRO TRUE // If TRUE, a custom RHH intro will play after the vanilla copyright screen.
#define SUMMARY_SCREEN_NATURE_COLORS TRUE // If TRUE, nature-based stat boosts and reductions will be red and blue in the summary screen.
#define HQ_RANDOM TRUE // If TRUE, replaces the default RNG with an implementation of SFC32 RNG. May break code that relies on RNG.
#define AUTO_SCROLL_TEXT FALSE // If TRUE, text will automatically scroll to the next line after NUM_FRAMES_AUTO_SCROLL_DELAY. Players can still press A_BUTTON or B_BUTTON to scroll on their own.
#define NUM_FRAMES_AUTO_SCROLL_DELAY 49

View File

@ -3,6 +3,7 @@
// Settings
#define P_SUMMARY_SCREEN_MOVE_RELEARNER TRUE // If TRUE, shows an option for Pokémon to relearn moves on the summary screen moves page.
#define P_SUMMARY_SCREEN_NATURE_COLORS TRUE // If TRUE, nature-based stat boosts and reductions will be red and blue in the summary screen.
#define P_SUMMARY_MOVE_RELEARNER_FULL_PP TRUE // If TRUE, the move relearner in the summary screen restores relearned moves' PP to full.
#define P_SUMMARY_SCREEN_RENAME TRUE // If TRUE, an option to change Pokémon nicknames replaces the cancel prompt on the summary screen info page.
#define P_SUMMARY_SCREEN_IV_EV_INFO FALSE // If TRUE, will allow player to cycle through the Stats, IVs, and EVs in the summary screen skills page.

View File

@ -144,39 +144,59 @@ enum VolatileFlags
/* Volatile status ailments
* These are removed after exiting the battle or switching
* Enum, Type Type, max value, flags */
* Enum, Type Type, max value, flags */
#define VOLATILE_DEFINITIONS(F) \
F(VOLATILE_CONFUSION, confusionTurns, (u32, 6), V_BATON_PASSABLE) \
F(VOLATILE_FLINCHED, flinched, (u32, 1)) \
F(VOLATILE_UPROAR, uproarTurns, (u32, 5)) \
F(VOLATILE_TORMENT, torment, (u32, 1)) \
F(VOLATILE_BIDE, bideTurns, (u32, 3)) \
F(VOLATILE_LOCK_CONFUSE, lockConfusionTurns, (u32, 3)) \
F(VOLATILE_MULTIPLETURNS, multipleTurns, (u32, 1)) \
F(VOLATILE_WRAPPED, wrapped, (u32, 1)) \
F(VOLATILE_POWDER, powder, (u32, 1)) \
F(VOLATILE_UNUSED, padding, (u32, 1)) \
F(VOLATILE_INFATUATION, infatuation, (enum BattlerId, MAX_BITS(4))) \
F(VOLATILE_DEFENSE_CURL, defenseCurl, (u32, 1)) \
F(VOLATILE_TRANSFORMED, transformed, (u32, 1)) \
F(VOLATILE_RECHARGE, recharge, (u32, 1)) \
F(VOLATILE_RAGE, rage, (u32, 1)) \
F(VOLATILE_SUBSTITUTE, substitute, (u32, 1), V_BATON_PASSABLE) \
F(VOLATILE_DESTINY_BOND, destinyBond, (u32, 1)) \
F(VOLATILE_ESCAPE_PREVENTION, escapePrevention, (u32, 1), V_BATON_PASSABLE) \
F(VOLATILE_NIGHTMARE, nightmare, (u32, 1)) \
F(VOLATILE_CURSED, cursed, (u32, 1), V_BATON_PASSABLE) \
F(VOLATILE_FORESIGHT, foresight, (u32, 1)) \
F(VOLATILE_DRAGON_CHEER, dragonCheer, (u32, 1), V_BATON_PASSABLE) \
F(VOLATILE_FOCUS_ENERGY, focusEnergy, (u32, 1), V_BATON_PASSABLE) \
F(VOLATILE_SEMI_INVULNERABLE, semiInvulnerable, (u32, 5)) \
F(VOLATILE_ELECTRIFIED, electrified, (u32, 1)) \
F(VOLATILE_MUD_SPORT, mudSport, (u32, 1), V_BATON_PASSABLE) \
F(VOLATILE_WATER_SPORT, waterSport, (u32, 1), V_BATON_PASSABLE) \
F(VOLATILE_INFINITE_CONFUSION, infiniteConfusion, (u32, 1)) \
F(VOLATILE_SALT_CURE, saltCure, (u32, 1)) \
F(VOLATILE_SYRUP_BOMB, syrupBomb, (u32, 1)) \
F(VOLATILE_GLAIVE_RUSH, glaiveRush, (u32, 1))
F(VOLATILE_CONFUSION, confusionTurns, (u32, 6), V_BATON_PASSABLE) \
F(VOLATILE_FLINCHED, flinched, (u32, 1)) \
F(VOLATILE_UPROAR, uproarTurns, (u32, 5)) \
F(VOLATILE_TORMENT, torment, (u32, 1)) \
F(VOLATILE_BIDE, bideTurns, (u32, 3)) \
F(VOLATILE_LOCK_CONFUSE, lockConfusionTurns, (u32, 3)) \
F(VOLATILE_MULTIPLETURNS, multipleTurns, (u32, 1)) \
F(VOLATILE_WRAPPED, wrapped, (u32, 1)) \
F(VOLATILE_POWDER, powder, (u32, 1)) \
F(VOLATILE_UNUSED, padding, (u32, 1)) \
F(VOLATILE_INFATUATION, infatuation, (enum BattlerId, MAX_BITS(4))) \
F(VOLATILE_DEFENSE_CURL, defenseCurl, (u32, 1)) \
F(VOLATILE_TRANSFORMED, transformed, (u32, 1)) \
F(VOLATILE_RECHARGE, recharge, (u32, 1)) \
F(VOLATILE_RAGE, rage, (u32, 1)) \
F(VOLATILE_SUBSTITUTE, substitute, (u32, 1), V_BATON_PASSABLE) \
F(VOLATILE_DESTINY_BOND, destinyBond, (u32, 1)) \
F(VOLATILE_ESCAPE_PREVENTION, escapePrevention, (u32, 1), V_BATON_PASSABLE) \
F(VOLATILE_NIGHTMARE, nightmare, (u32, 1)) \
F(VOLATILE_CURSED, cursed, (u32, 1), V_BATON_PASSABLE) \
F(VOLATILE_FORESIGHT, foresight, (u32, 1)) \
F(VOLATILE_DRAGON_CHEER, dragonCheer, (u32, 1), V_BATON_PASSABLE) \
F(VOLATILE_FOCUS_ENERGY, focusEnergy, (u32, 1), V_BATON_PASSABLE) \
F(VOLATILE_SEMI_INVULNERABLE, semiInvulnerable, (u32, 5)) \
F(VOLATILE_ELECTRIFIED, electrified, (u32, 1)) \
F(VOLATILE_MUD_SPORT, mudSport, (u32, 1), V_BATON_PASSABLE) \
F(VOLATILE_WATER_SPORT, waterSport, (u32, 1), V_BATON_PASSABLE) \
F(VOLATILE_INFINITE_CONFUSION, infiniteConfusion, (u32, 1), V_BATON_PASSABLE) \
F(VOLATILE_SALT_CURE, saltCure, (u32, 1)) \
F(VOLATILE_SYRUP_BOMB, syrupBomb, (u32, 1)) \
F(VOLATILE_GLAIVE_RUSH, glaiveRush, (u32, 1)) \
F(VOLATILE_LEECH_SEED, leechSeed, (enum BattlerId, MAX_BITS(4)), V_BATON_PASSABLE) \
F(VOLATILE_LOCK_ON, lockOn, (u32, 2), V_BATON_PASSABLE) \
F(VOLATILE_PERISH_SONG, perishSong, (u32, 1), V_BATON_PASSABLE) \
F(VOLATILE_MINIMIZE, minimize, (u32, 1)) \
F(VOLATILE_CHARGE, charge, (u32, 1)) \
F(VOLATILE_ROOT, root, (u32, 1), V_BATON_PASSABLE) \
F(VOLATILE_YAWN, yawn, (u32, 2)) \
F(VOLATILE_IMPRISON, imprison, (u32, 1)) \
F(VOLATILE_GRUDGE, grudge, (u32, 1)) \
F(VOLATILE_GASTRO_ACID, gastroAcid, (u32, 1), V_BATON_PASSABLE) \
F(VOLATILE_EMBARGO, embargo, (u32, 1), V_BATON_PASSABLE) \
F(VOLATILE_SMACK_DOWN, smackDown, (u32, 1)) \
F(VOLATILE_TELEKINESIS, telekinesis, (u32, 1), V_BATON_PASSABLE) \
F(VOLATILE_MIRACLE_EYE, miracleEye, (u32, 1)) \
F(VOLATILE_MAGNET_RISE, magnetRise, (u32, 1), V_BATON_PASSABLE) \
F(VOLATILE_HEAL_BLOCK, healBlock, (u32, 1), V_BATON_PASSABLE) \
F(VOLATILE_AQUA_RING, aquaRing, (u32, 1), V_BATON_PASSABLE) \
F(VOLATILE_LASER_FOCUS, laserFocus, (u32, 1)) \
F(VOLATILE_POWER_TRICK, powerTrick, (u32, 1), V_BATON_PASSABLE)
/* Use within a macro to get the maximum allowed value for a volatile. Requires _typeMaxValue as input. */
#define GET_VOLATILE_MAXIMUM(_typeMaxValue, ...) INVOKE_WITH_B(GET_VOLATILE_MAXIMUM_, _typeMaxValue)
@ -193,37 +213,7 @@ enum Volatile
// Helper macros
#define INFATUATED_WITH(battler) (battler + 1)
#define STATUS3_LEECHSEED_BATTLER (1 << 0 | 1 << 1) // The battler to receive HP from Leech Seed
#define STATUS3_LEECHSEED (1 << 2)
#define STATUS3_ALWAYS_HITS (1 << 3 | 1 << 4)
#define STATUS3_ALWAYS_HITS_TURN(num) (((num) << 3) & STATUS3_ALWAYS_HITS) // "Always Hits" is set as a 2 turn timer, i.e. next turn is the last turn when it's active
#define STATUS3_PERISH_SONG (1 << 5)
#define STATUS3_UNUSED_6 (1 << 6)
#define STATUS3_UNUSED_7 (1 << 7)
#define STATUS3_MINIMIZED (1 << 8)
#define STATUS3_CHARGED_UP (1 << 9)
#define STATUS3_ROOTED (1 << 10)
#define STATUS3_YAWN (1 << 11 | 1 << 12) // Number of turns to sleep
#define STATUS3_YAWN_TURN(num) (((num) << 11) & STATUS3_YAWN)
#define STATUS3_IMPRISONED_OTHERS (1 << 13)
#define STATUS3_GRUDGE (1 << 14)
#define STATUS3_UNUSED_15 (1 << 15)
#define STATUS3_GASTRO_ACID (1 << 16)
#define STATUS3_EMBARGO (1 << 17)
#define STATUS3_UNUSED_18 (1 << 18)
#define STATUS3_UNUSED_19 (1 << 19)
#define STATUS3_UNUSED_20 (1 << 20)
#define STATUS3_SMACKED_DOWN (1 << 21)
#define STATUS3_UNUSED_22 (1 << 22)
#define STATUS3_TELEKINESIS (1 << 23)
#define STATUS3_UNUSED_24 (1 << 24)
#define STATUS3_MIRACLE_EYED (1 << 25)
#define STATUS3_MAGNET_RISE (1 << 26)
#define STATUS3_HEAL_BLOCK (1 << 27)
#define STATUS3_AQUA_RING (1 << 28)
#define STATUS3_LASER_FOCUS (1 << 29)
#define STATUS3_POWER_TRICK (1 << 30)
#define LEECHSEEDED_BY(battler) (battler + 1)
enum SemiInvulnerableState
{
@ -258,7 +248,7 @@ enum SemiInvulnerableExclusion
#define HITMARKER_DISABLE_ANIMATION (1 << 17) // disable animations during battle scripts, e.g. for Bug Bite
#define HITMARKER_UNUSED_18 (1 << 18)
#define HITMARKER_UNABLE_TO_USE_MOVE (1 << 19)
#define HITMARKER_PASSIVE_DAMAGE (1 << 20)
#define HITMARKER_PASSIVE_HP_UPDATE (1 << 20)
#define HITMARKER_UNUSED_21 (1 << 21)
#define HITMARKER_PLAYER_FAINTED (1 << 22)
#define HITMARKER_ALLOW_NO_PP (1 << 23)
@ -373,16 +363,17 @@ enum BattleWeather
#define B_WEATHER_LOW_LIGHT (B_WEATHER_FOG | B_WEATHER_ICY_ANY | B_WEATHER_RAIN | B_WEATHER_SANDSTORM)
#define B_WEATHER_PRIMAL_ANY (B_WEATHER_RAIN_PRIMAL | B_WEATHER_SUN_PRIMAL | B_WEATHER_STRONG_WINDS)
// Explicit numbers until frostbite because those shouldn't be shifted
enum __attribute__((packed)) MoveEffect
{
MOVE_EFFECT_NONE,
MOVE_EFFECT_SLEEP,
MOVE_EFFECT_POISON,
MOVE_EFFECT_BURN,
MOVE_EFFECT_FREEZE,
MOVE_EFFECT_PARALYSIS,
MOVE_EFFECT_TOXIC,
MOVE_EFFECT_FROSTBITE,
MOVE_EFFECT_NONE = 0,
MOVE_EFFECT_SLEEP = 1,
MOVE_EFFECT_POISON = 2,
MOVE_EFFECT_BURN = 3,
MOVE_EFFECT_FREEZE = 4,
MOVE_EFFECT_PARALYSIS = 5,
MOVE_EFFECT_TOXIC = 6,
MOVE_EFFECT_FROSTBITE = 7,
MOVE_EFFECT_CONFUSION,
MOVE_EFFECT_FLINCH,
MOVE_EFFECT_TRI_ATTACK,

View File

@ -616,8 +616,9 @@
#define B_ANIM_STATUS_FRZ 6
#define B_ANIM_STATUS_CURSED 7
#define B_ANIM_STATUS_NIGHTMARE 8
#define B_ANIM_STATUS_FRB 9
#define NUM_B_ANIMS_STATUS 9
#define NUM_B_ANIMS_STATUS 10
// Tasks with return values often assign them to gBattleAnimArgs[7].
#define ARG_RET_ID 7

View File

@ -1,9 +1,9 @@
#ifndef GUARD_CONSTANTS_EXPANSION_H
#define GUARD_CONSTANTS_EXPANSION_H
// Last version: 1.12.2
// Last version: 1.13.0
#define EXPANSION_VERSION_MAJOR 1
#define EXPANSION_VERSION_MINOR 13
#define EXPANSION_VERSION_MINOR 14
#define EXPANSION_VERSION_PATCH 0
// FALSE if this this version of Expansion is not a tagged commit, i.e.

View File

@ -29,6 +29,7 @@ enum GenConfigTag
GEN_SNOW_WARNING,
GEN_ALLY_SWITCH_FAIL_CHANCE,
GEN_DREAM_EATER_LIQUID_OOZE,
GEN_CONFIG_TRANSISTOR_BOOST,
GEN_CONFIG_COUNT
};

View File

@ -93,4 +93,8 @@
#define ITEM_EFFECT_HEAL_PP 21
#define ITEM_EFFECT_NONE 22
// Since X item stat increases are now handled by battle scripts, the friendship increase effect is now handled by the battle controller in HandleAction_UseItem.
#define X_ITEM_FRIENDSHIP_INCREASE 1 // The amount of friendship gained by using an X item on a Pokémon in battle.
#define X_ITEM_MAX_FRIENDSHIP 200 // Friendship threshold at which Pokémon stop receiving a friendship increase from using X items on them in battle.
#endif // GUARD_CONSTANTS_ITEM_EFFECTS_H

View File

@ -322,6 +322,7 @@ enum EvolutionMode {
EVO_MODE_ITEM_CHECK, // If an Everstone is being held, still want to show that the stone *could* be used on that Pokémon to evolve
EVO_MODE_BATTLE_SPECIAL,
EVO_MODE_OVERWORLD_SPECIAL,
EVO_MODE_SCRIPT_TRIGGER,
EVO_MODE_BATTLE_ONLY, // This mode is only used in battles to support Tandemaus' unique requirement
};

View File

@ -106,6 +106,7 @@ struct Trainer
/*0x23*/ u8 poolPickIndex;
/*0x24*/ u8 poolPruneIndex;
/*0x25*/ u16 overrideTrainer;
/*0x26*/ u8 trainerBackPic;
};
struct TrainerClass
@ -178,7 +179,6 @@ extern const union AnimCmd *const gAnims_MonPic[];
extern const union AnimCmd *const gAnims_Trainer[];
extern const struct TrainerSprite gTrainerSprites[];
extern const struct TrainerBacksprite gTrainerBacksprites[];
extern const u16 gTrainerPicToTrainerBackPic[];
extern const struct Trainer gTrainers[DIFFICULTY_COUNT][TRAINERS_COUNT];
extern const struct Trainer gBattlePartners[DIFFICULTY_COUNT][PARTNER_COUNT];
@ -261,6 +261,16 @@ static inline const u8 GetTrainerPicFromId(u16 trainerId)
return GetTrainerStructFromId(trainerId)->trainerPic;
}
static inline const u8 GetTrainerBackPicFromId(u16 trainerId)
{
enum DifficultyLevel partnerDifficulty = GetBattlePartnerDifficultyLevel(trainerId);
if (trainerId > TRAINER_PARTNER(PARTNER_NONE))
return gBattlePartners[partnerDifficulty][trainerId - TRAINER_PARTNER(PARTNER_NONE)].trainerBackPic;
return GetTrainerStructFromId(trainerId)->trainerBackPic;
}
static inline const u8 GetTrainerStartingStatusFromId(u16 trainerId)
{
return GetTrainerStructFromId(trainerId)->startingStatus;

View File

@ -30,7 +30,7 @@ void AGBPrintInit(void);
#if (LOG_HANDLER == LOG_HANDLER_MGBA_PRINT)
#define DebugPrintf(pBuf, ...) MgbaPrintf(MGBA_LOG_INFO, pBuf, ## __VA_ARGS__)
#define DebugPrintf(pBuf, ...) MgbaPrintf(MGBA_LOG_WARN, pBuf, ## __VA_ARGS__)
#define DebugAssert(pFile, nLine, pExpression, nStopProgram) MgbaAssert(pFile, nLine, pExpression, nStopProgram)
#define DebugPrintfLevel(level, pBuf, ...) MgbaPrintf(level, pBuf, ## __VA_ARGS__)

View File

@ -401,7 +401,7 @@ extern const u8 gNoiseTable[];
extern const struct PokemonCrySong gPokemonCrySongTemplate;
extern const struct ToneData voicegroup000;
extern const struct ToneData voicegroup_dummy;
extern char gNumMusicPlayers[];
extern char gMaxLines[];

View File

@ -32,6 +32,7 @@ static const u8 sGenerationalChanges[GEN_CONFIG_COUNT] =
[GEN_SNOW_WARNING] = B_SNOW_WARNING,
[GEN_ALLY_SWITCH_FAIL_CHANCE] = B_ALLY_SWITCH_FAIL_CHANCE,
[GEN_DREAM_EATER_LIQUID_OOZE] = B_DREAM_EATER_LIQUID_OOZE,
[GEN_CONFIG_TRANSISTOR_BOOST] = B_TRANSISTOR_BOOST,
};
#if TESTING

View File

@ -881,6 +881,7 @@ uq4_12_t GetDynamaxLevelHPMultiplier(u32 dynamaxLevel, bool32 inverseMultiplier)
u32 GetRegionalFormByRegion(u32 species, u32 region);
bool32 IsSpeciesForeignRegionalForm(u32 species, u32 currentRegion);
u32 GetTeraTypeFromPersonality(struct Pokemon *mon);
bool8 ShouldSkipFriendshipChange(void);
struct Pokemon *GetSavedPlayerPartyMon(u32 index);
u8 *GetSavedPlayerPartyCount(void);
void SavePlayerPartyMon(u32 index, struct Pokemon *mon);

View File

@ -2,8 +2,13 @@
*
* To run all the tests use:
* make check -j
* To run specific tests, e.g. Spikes ones, use:
* To run specific tests, e.g. Spikes ones, use either:
* make check TESTS="Spikes"
* make check TESTS="*Spikes*"
* The first runs tests with names that start with Spikes, whereas the
* second runs tests with names that include Spikes anywhere in them.
* To run tests from a specific file, e.g. 'test/battle/move_effect/spikes.c', use:
* make check TESTS="test/battle/move_effect/spikes.c"
* To build a ROM (pokemerald-test.elf) that can be opened in mgba to
* view specific tests, e.g. Spikes ones, use:
* make pokeemerald-test.elf TESTS="Spikes"

View File

@ -37,10 +37,18 @@ struct Test
u16 sourceLine;
};
enum TestFilterMode
{
TEST_FILTER_MODE_TEST_NAME_PREFIX,
TEST_FILTER_MODE_TEST_NAME_INFIX,
TEST_FILTER_MODE_FILENAME_EXACT,
};
struct TestRunnerState
{
u8 state;
u8 exitCode;
enum TestFilterMode filterMode:8;
const char *skipFilename;
u32 failedAssumptionsBlockLine;
const struct Test *test;

View File

@ -45,7 +45,7 @@ struct WindowTemplate
struct Window
{
struct WindowTemplate window;
u8 *tileData;
ALIGNED(4) u8 *tileData;
};
bool32 InitWindows(const struct WindowTemplate *templates);

View File

@ -1,6 +1,6 @@
@ Due to the way mks4agb (Nintendo's tool) works, key split table labels can
@ appear before the actual start of the key split table data. If you look at
@ the first keysplit table (KeySplitTable1), you'll notice it's offset backwards
@ the first keysplit table (keysplit_piano), you'll notice it's offset backwards
@ by 36 bytes. This is because the key split tables don't map instruments
@ for the entire note range (0-127)--they only map subsets, and the upper
@ and lower ranges aren't necessarily 0 or 127.
@ -10,384 +10,26 @@
@ begins. Therefore, the notes naturally map to the key split table without
@ any extra offset calculation.
.set KeySplitTable1, . - 36
.byte 0 @ 36
.byte 0 @ 37
.byte 0 @ 38
.byte 0 @ 39
.byte 0 @ 40
.byte 0 @ 41
.byte 0 @ 42
.byte 0 @ 43
.byte 0 @ 44
.byte 0 @ 45
.byte 0 @ 46
.byte 0 @ 47
.byte 0 @ 48
.byte 0 @ 49
.byte 0 @ 50
.byte 0 @ 51
.byte 0 @ 52
.byte 0 @ 53
.byte 0 @ 54
.byte 1 @ 55
.byte 1 @ 56
.byte 1 @ 57
.byte 1 @ 58
.byte 1 @ 59
.byte 1 @ 60
.byte 1 @ 61
.byte 1 @ 62
.byte 1 @ 63
.byte 1 @ 64
.byte 1 @ 65
.byte 1 @ 66
.byte 1 @ 67
.byte 1 @ 68
.byte 1 @ 69
.byte 2 @ 70
.byte 2 @ 71
.byte 2 @ 72
.byte 2 @ 73
.byte 2 @ 74
.byte 2 @ 75
.byte 2 @ 76
.byte 2 @ 77
.byte 2 @ 78
.byte 2 @ 79
.byte 2 @ 80
.byte 2 @ 81
.byte 2 @ 82
.byte 2 @ 83
.byte 2 @ 84
.byte 2 @ 85
.byte 2 @ 86
.byte 2 @ 87
.byte 2 @ 88
.byte 2 @ 89
.byte 2 @ 90
.byte 3 @ 91
.byte 3 @ 92
.byte 3 @ 93
.byte 3 @ 94
.byte 3 @ 95
.byte 3 @ 96
.byte 3 @ 97
.byte 3 @ 98
.byte 3 @ 99
.byte 3 @ 100
.byte 3 @ 101
.byte 3 @ 102
.byte 3 @ 103
.byte 3 @ 104
.byte 3 @ 105
.byte 3 @ 106
.byte 3 @ 107
keysplit piano, 36
split 0, 55
split 1, 70
split 2, 91
split 3, 108
.set KeySplitTable2, . - 36
.byte 0 @ 36
.byte 0 @ 37
.byte 0 @ 38
.byte 0 @ 39
.byte 0 @ 40
.byte 0 @ 41
.byte 0 @ 42
.byte 0 @ 43
.byte 0 @ 44
.byte 0 @ 45
.byte 0 @ 46
.byte 0 @ 47
.byte 0 @ 48
.byte 0 @ 49
.byte 0 @ 50
.byte 0 @ 51
.byte 0 @ 52
.byte 0 @ 53
.byte 0 @ 54
.byte 0 @ 55
.byte 0 @ 56
.byte 0 @ 57
.byte 0 @ 58
.byte 0 @ 59
.byte 0 @ 60
.byte 0 @ 61
.byte 0 @ 62
.byte 0 @ 63
.byte 0 @ 64
.byte 0 @ 65
.byte 0 @ 66
.byte 0 @ 67
.byte 0 @ 68
.byte 1 @ 69
.byte 1 @ 70
.byte 1 @ 71
.byte 1 @ 72
.byte 1 @ 73
.byte 1 @ 74
.byte 1 @ 75
.byte 1 @ 76
.byte 1 @ 77
.byte 1 @ 78
.byte 1 @ 79
.byte 1 @ 80
.byte 2 @ 81
.byte 2 @ 82
.byte 2 @ 83
.byte 2 @ 84
.byte 2 @ 85
.byte 2 @ 86
.byte 2 @ 87
.byte 2 @ 88
.byte 2 @ 89
.byte 2 @ 90
.byte 2 @ 91
.byte 2 @ 92
.byte 2 @ 93
.byte 2 @ 94
.byte 2 @ 95
.byte 2 @ 96
.byte 2 @ 97
.byte 2 @ 98
.byte 2 @ 99
.byte 2 @ 100
.byte 2 @ 101
.byte 2 @ 102
.byte 2 @ 103
.byte 2 @ 104
.byte 2 @ 105
.byte 2 @ 106
.byte 2 @ 107
keysplit strings, 36
split 0, 69
split 1, 81
split 2, 108
.set KeySplitTable3, . - 36
.byte 0 @ 36
.byte 0 @ 37
.byte 0 @ 38
.byte 0 @ 39
.byte 0 @ 40
.byte 0 @ 41
.byte 0 @ 42
.byte 0 @ 43
.byte 0 @ 44
.byte 0 @ 45
.byte 0 @ 46
.byte 0 @ 47
.byte 0 @ 48
.byte 0 @ 49
.byte 0 @ 50
.byte 0 @ 51
.byte 0 @ 52
.byte 0 @ 53
.byte 0 @ 54
.byte 0 @ 55
.byte 0 @ 56
.byte 0 @ 57
.byte 0 @ 58
.byte 0 @ 59
.byte 0 @ 60
.byte 0 @ 61
.byte 0 @ 62
.byte 0 @ 63
.byte 0 @ 64
.byte 0 @ 65
.byte 1 @ 66
.byte 1 @ 67
.byte 1 @ 68
.byte 1 @ 69
.byte 1 @ 70
.byte 1 @ 71
.byte 1 @ 72
.byte 1 @ 73
.byte 1 @ 74
.byte 1 @ 75
.byte 1 @ 76
.byte 1 @ 77
.byte 1 @ 78
.byte 1 @ 79
.byte 1 @ 80
.byte 1 @ 81
.byte 1 @ 82
.byte 1 @ 83
.byte 2 @ 84
.byte 2 @ 85
.byte 2 @ 86
.byte 2 @ 87
.byte 2 @ 88
.byte 2 @ 89
.byte 2 @ 90
.byte 2 @ 91
.byte 2 @ 92
.byte 2 @ 93
.byte 2 @ 94
.byte 2 @ 95
.byte 2 @ 96
.byte 2 @ 97
.byte 2 @ 98
.byte 2 @ 99
.byte 2 @ 100
.byte 2 @ 101
.byte 2 @ 102
.byte 2 @ 103
.byte 2 @ 104
.byte 2 @ 105
.byte 2 @ 106
.byte 2 @ 107
keysplit trumpet, 36
split 0, 66
split 1, 84
split 2, 108
.set KeySplitTable4, . - 24
.byte 0 @ 24
.byte 0 @ 25
.byte 0 @ 26
.byte 0 @ 27
.byte 0 @ 28
.byte 0 @ 29
.byte 0 @ 30
.byte 0 @ 31
.byte 0 @ 32
.byte 0 @ 33
.byte 0 @ 34
.byte 0 @ 35
.byte 0 @ 36
.byte 0 @ 37
.byte 0 @ 38
.byte 0 @ 39
.byte 0 @ 40
.byte 0 @ 41
.byte 1 @ 42
.byte 1 @ 43
.byte 1 @ 44
.byte 1 @ 45
.byte 1 @ 46
.byte 1 @ 47
.byte 1 @ 48
.byte 1 @ 49
.byte 1 @ 50
.byte 1 @ 51
.byte 1 @ 52
.byte 1 @ 53
.byte 1 @ 54
.byte 1 @ 55
.byte 1 @ 56
.byte 1 @ 57
.byte 1 @ 58
.byte 1 @ 59
.byte 1 @ 60
.byte 1 @ 61
.byte 1 @ 62
.byte 1 @ 63
.byte 1 @ 64
.byte 1 @ 65
.byte 1 @ 66
.byte 1 @ 67
.byte 1 @ 68
.byte 1 @ 69
.byte 1 @ 70
.byte 1 @ 71
.byte 1 @ 72
.byte 1 @ 73
.byte 1 @ 74
.byte 1 @ 75
.byte 1 @ 76
.byte 1 @ 77
.byte 1 @ 78
.byte 1 @ 79
.byte 1 @ 80
.byte 1 @ 81
.byte 1 @ 82
.byte 1 @ 83
.byte 1 @ 84
.byte 1 @ 85
.byte 1 @ 86
.byte 1 @ 87
.byte 1 @ 88
.byte 1 @ 89
.byte 1 @ 90
.byte 1 @ 91
.byte 1 @ 92
.byte 1 @ 93
.byte 1 @ 94
.byte 1 @ 95
.byte 1 @ 96
.byte 1 @ 97
.byte 1 @ 98
.byte 1 @ 99
.byte 1 @ 100
.byte 1 @ 101
.byte 1 @ 102
.byte 1 @ 103
.byte 1 @ 104
.byte 1 @ 105
.byte 1 @ 106
.byte 1 @ 107
keysplit tuba, 24
split 0, 42
split 1, 108
.set KeySplitTable5, . - 36
.byte 0 @ 36
.byte 0 @ 37
.byte 0 @ 38
.byte 0 @ 39
.byte 0 @ 40
.byte 0 @ 41
.byte 0 @ 42
.byte 0 @ 43
.byte 0 @ 44
.byte 0 @ 45
.byte 0 @ 46
.byte 0 @ 47
.byte 0 @ 48
.byte 0 @ 49
.byte 0 @ 50
.byte 0 @ 51
.byte 0 @ 52
.byte 0 @ 53
.byte 0 @ 54
.byte 0 @ 55
.byte 0 @ 56
.byte 0 @ 57
.byte 0 @ 58
.byte 0 @ 59
.byte 0 @ 60
.byte 0 @ 61
.byte 0 @ 62
.byte 0 @ 63
.byte 0 @ 64
.byte 0 @ 65
.byte 1 @ 66
.byte 1 @ 67
.byte 1 @ 68
.byte 1 @ 69
.byte 1 @ 70
.byte 1 @ 71
.byte 1 @ 72
.byte 1 @ 73
.byte 1 @ 74
.byte 1 @ 75
.byte 1 @ 76
.byte 1 @ 77
.byte 1 @ 78
.byte 1 @ 79
.byte 1 @ 80
.byte 1 @ 81
.byte 1 @ 82
.byte 1 @ 83
.byte 1 @ 84
.byte 1 @ 85
.byte 1 @ 86
.byte 1 @ 87
.byte 1 @ 88
.byte 1 @ 89
.byte 1 @ 90
.byte 1 @ 91
.byte 1 @ 92
.byte 1 @ 93
.byte 1 @ 94
.byte 1 @ 95
.byte 1 @ 96
.byte 1 @ 97
.byte 1 @ 98
.byte 1 @ 99
.byte 1 @ 100
.byte 1 @ 101
.byte 1 @ 102
.byte 1 @ 103
.byte 1 @ 104
.byte 1 @ 105
.byte 1 @ 106
.byte 1 @ 107
keysplit french_horn, 36
split 0, 66
split 1, 108

View File

@ -1,420 +1,420 @@
mus_abandoned_ship.mid: -E -R50 -G030 -V080
mus_abnormal_weather.mid: -E -R50 -G089 -V080
mus_aqua_magma_hideout.mid: -E -R50 -G076 -V084
mus_awaken_legend.mid: -E -R50 -G012 -V090 -P5
mus_b_arena.mid: -E -R50 -G104 -V090
mus_b_dome_lobby.mid: -E -R50 -G111 -V056
mus_b_dome.mid: -E -R50 -G111 -V090
mus_b_factory.mid: -E -R50 -G113 -V100
mus_b_frontier.mid: -E -R50 -G103 -V094
mus_b_palace.mid: -E -R50 -G108 -V105
mus_b_pike.mid: -E -R50 -G112 -V092
mus_b_pyramid_top.mid: -E -R50 -G107 -V077
mus_b_pyramid.mid: -E -R50 -G106 -V079
mus_b_tower_rs.mid: -E -R50 -G035 -V080
mus_b_tower.mid: -E -R50 -G110 -V100
mus_birch_lab.mid: -E -R50 -G033 -V080
mus_abandoned_ship.mid: -E -R50 -G_abandoned_ship -V080
mus_abnormal_weather.mid: -E -R50 -G_abnormal_weather -V080
mus_aqua_magma_hideout.mid: -E -R50 -G_aqua_magma_hideout -V084
mus_awaken_legend.mid: -E -R50 -G_fanfare -V090 -P5
mus_b_arena.mid: -E -R50 -G_b_arena -V090
mus_b_dome_lobby.mid: -E -R50 -G_b_dome -V056
mus_b_dome.mid: -E -R50 -G_b_dome -V090
mus_b_factory.mid: -E -R50 -G_b_factory -V100
mus_b_frontier.mid: -E -R50 -G_b_frontier -V094
mus_b_palace.mid: -E -R50 -G_b_palace -V105
mus_b_pike.mid: -E -R50 -G_b_pike -V092
mus_b_pyramid_top.mid: -E -R50 -G_b_pyramid_top -V077
mus_b_pyramid.mid: -E -R50 -G_b_pyramid -V079
mus_b_tower_rs.mid: -E -R50 -G_b_tower_rs -V080
mus_b_tower.mid: -E -R50 -G_b_tower -V100
mus_birch_lab.mid: -E -R50 -G_birch_lab -V080
mus_c_comm_center.mid: -E -R50 -V080
mus_c_vs_legend_beast.mid: -E -R50 -V080
mus_cable_car.mid: -E -R50 -G071 -V078
mus_caught.mid: -E -R50 -G025 -V080
mus_cave_of_origin.mid: -E -R50 -G037 -V080
mus_contest_lobby.mid: -E -R50 -G098 -V060
mus_contest_results.mid: -E -R50 -G092 -V080
mus_contest_winner.mid: -E -R50 -G085 -V100
mus_contest.mid: -E -R50 -G086 -V088
mus_credits.mid: -E -R50 -G101 -V100
mus_cycling.mid: -E -R50 -G049 -V083
mus_dewford.mid: -E -R50 -G073 -V078
mus_cable_car.mid: -E -R50 -G_cable_car -V078
mus_caught.mid: -E -R50 -G_victory_wild -V080
mus_cave_of_origin.mid: -E -R50 -G_cave_of_origin -V080
mus_contest_lobby.mid: -E -R50 -G_contest_lobby -V060
mus_contest_results.mid: -E -R50 -G_contest_results -V080
mus_contest_winner.mid: -E -R50 -G_contest_winner -V100
mus_contest.mid: -E -R50 -G_contest -V088
mus_credits.mid: -E -R50 -G_credits -V100
mus_cycling.mid: -E -R50 -G_cycling -V083
mus_dewford.mid: -E -R50 -G_dewford -V078
mus_dummy.mid: -E -R40
mus_encounter_aqua.mid: -E -R50 -G065 -V086
mus_encounter_brendan.mid: -E -R50 -G067 -V078
mus_encounter_champion.mid: -E -R50 -G100 -V076
mus_encounter_cool.mid: -E -R50 -G063 -V086
mus_encounter_elite_four.mid: -E -R50 -G096 -V078
mus_encounter_female.mid: -E -R50 -G053 -V072
mus_encounter_girl.mid: -E -R50 -G027 -V080
mus_encounter_hiker.mid: -E -R50 -G097 -V076
mus_encounter_intense.mid: -E -R50 -G062 -V078
mus_encounter_interviewer.mid: -E -R50 -G099 -V062
mus_encounter_magma.mid: -E -R50 -G087 -V072
mus_encounter_male.mid: -E -R50 -G028 -V080
mus_encounter_may.mid: -E -R50 -G061 -V078
mus_encounter_rich.mid: -E -R50 -G043 -V094
mus_encounter_suspicious.mid: -E -R50 -G069 -V078
mus_encounter_swimmer.mid: -E -R50 -G036 -V080
mus_encounter_twins.mid: -E -R50 -G095 -V075
mus_end.mid: -E -R50 -G102 -V036
mus_ever_grande.mid: -E -R50 -G068 -V086
mus_evolution_intro.mid: -E -R50 -G026 -V080
mus_evolution.mid: -E -R50 -G026 -V080
mus_evolved.mid: -E -R50 -G012 -V090 -P5
mus_fallarbor.mid: -E -R50 -G083 -V100
mus_follow_me.mid: -E -R50 -G066 -V074
mus_fortree.mid: -E -R50 -G032 -V080
mus_game_corner.mid: -E -R50 -G072 -V072
mus_encounter_aqua.mid: -E -R50 -G_encounter_aqua -V086
mus_encounter_brendan.mid: -E -R50 -G_encounter_brendan -V078
mus_encounter_champion.mid: -E -R50 -G_encounter_champion -V076
mus_encounter_cool.mid: -E -R50 -G_encounter_cool -V086
mus_encounter_elite_four.mid: -E -R50 -G_encounter_elite_four -V078
mus_encounter_female.mid: -E -R50 -G_encounter_female -V072
mus_encounter_girl.mid: -E -R50 -G_encounter_girl -V080
mus_encounter_hiker.mid: -E -R50 -G_encounter_hiker -V076
mus_encounter_intense.mid: -E -R50 -G_encounter_intense -V078
mus_encounter_interviewer.mid: -E -R50 -G_encounter_interviewer -V062
mus_encounter_magma.mid: -E -R50 -G_encounter_magma -V072
mus_encounter_male.mid: -E -R50 -G_encounter_male -V080
mus_encounter_may.mid: -E -R50 -G_encounter_may -V078
mus_encounter_rich.mid: -E -R50 -G_encounter_rich -V094
mus_encounter_suspicious.mid: -E -R50 -G_encounter_suspicious -V078
mus_encounter_swimmer.mid: -E -R50 -G_encounter_swimmer -V080
mus_encounter_twins.mid: -E -R50 -G_encounter_twins -V075
mus_end.mid: -E -R50 -G_end -V036
mus_ever_grande.mid: -E -R50 -G_ever_grande -V086
mus_evolution_intro.mid: -E -R50 -G_evolution -V080
mus_evolution.mid: -E -R50 -G_evolution -V080
mus_evolved.mid: -E -R50 -G_fanfare -V090 -P5
mus_fallarbor.mid: -E -R50 -G_fallarbor -V100
mus_follow_me.mid: -E -R50 -G_follow_me -V074
mus_fortree.mid: -E -R50 -G_fortree -V080
mus_game_corner.mid: -E -R50 -G_game_corner -V072
mus_gsc_pewter.mid: -E -R50 -V080
mus_gsc_route38.mid: -E -R50 -V080
mus_gym.mid: -E -R50 -G013 -V080
mus_hall_of_fame_room.mid: -E -R50 -G093 -V080
mus_hall_of_fame.mid: -E -R50 -G082 -V078
mus_heal.mid: -E -R50 -G012 -V090 -P5
mus_help.mid: -E -R50 -G056 -V078
mus_intro_battle.mid: -E -R50 -G088 -V088
mus_intro.mid: -E -R50 -G060 -V090
mus_level_up.mid: -E -R50 -G012 -V090 -P5
mus_lilycove_museum.mid: -E -R50 -G020 -V080
mus_lilycove.mid: -E -R50 -G054 -V085
mus_link_contest_p1.mid: -E -R50 -G039 -V079
mus_link_contest_p2.mid: -E -R50 -G040 -V090
mus_link_contest_p3.mid: -E -R50 -G041 -V075
mus_link_contest_p4.mid: -E -R50 -G042 -V090
mus_littleroot_test.mid: -E -R50 -G034 -V099
mus_littleroot.mid: -E -R50 -G051 -V100
mus_move_deleted.mid: -E -R50 -G012 -V090 -P5
mus_mt_chimney.mid: -E -R50 -G052 -V078
mus_mt_pyre_exterior.mid: -E -R50 -G080 -V080
mus_mt_pyre.mid: -E -R50 -G078 -V088
mus_obtain_b_points.mid: -E -R50 -G103 -V090 -P5
mus_obtain_badge.mid: -E -R50 -G012 -V090 -P5
mus_obtain_berry.mid: -E -R50 -G012 -V090 -P5
mus_obtain_item.mid: -E -R50 -G012 -V090 -P5
mus_obtain_symbol.mid: -E -R50 -G103 -V100 -P5
mus_obtain_tmhm.mid: -E -R50 -G012 -V090 -P5
mus_oceanic_museum.mid: -E -R50 -G023 -V080
mus_oldale.mid: -E -R50 -G019 -V080
mus_petalburg_woods.mid: -E -R50 -G018 -V080
mus_petalburg.mid: -E -R50 -G015 -V080
mus_poke_center.mid: -E -R50 -G046 -V092
mus_poke_mart.mid: -E -R50 -G050 -V085
mus_rayquaza_appears.mid: -E -R50 -G109 -V090
mus_register_match_call.mid: -E -R50 -G105 -V090 -P5
mus_rg_berry_pick.mid: -E -R50 -G132 -V090
mus_rg_caught_intro.mid: -E -R50 -G179 -V094 -P5
mus_rg_caught.mid: -E -R50 -G170 -V100
mus_rg_celadon.mid: -E -R50 -G168 -V070
mus_rg_cinnabar.mid: -E -R50 -G138 -V090
mus_rg_credits.mid: -E -R50 -G149 -V090
mus_rg_cycling.mid: -E -R50 -G141 -V090
mus_rg_dex_rating.mid: -E -R50 -G175 -V070 -P5
mus_rg_encounter_boy.mid: -E -R50 -G144 -V090
mus_rg_encounter_deoxys.mid: -E -R50 -G184 -V079
mus_rg_encounter_girl.mid: -E -R50 -G143 -V051
mus_rg_encounter_gym_leader: -E -R50 -G144 -V090
mus_rg_encounter_rival.mid: -E -R50 -G174 -V079
mus_rg_encounter_rocket.mid: -E -R50 -G142 -V096
mus_rg_follow_me.mid: -E -R50 -G131 -V068
mus_rg_fuchsia.mid: -E -R50 -G167 -V090
mus_rg_game_corner.mid: -E -R50 -G132 -V090
mus_rg_game_freak.mid: -E -R50 -G181 -V075
mus_rg_gym.mid: -E -R50 -G134 -V090
mus_rg_hall_of_fame.mid: -E -R50 -G145 -V079
mus_rg_heal.mid: -E -R50 -G140 -V090
mus_rg_intro_fight.mid: -E -R50 -G136 -V090
mus_rg_jigglypuff.mid: -E -R50 -G135 -V068 -P5
mus_rg_lavender.mid: -E -R50 -G139 -V090
mus_rg_mt_moon.mid: -E -R50 -G147 -V090
mus_rg_mystery_gift.mid: -E -R50 -G183 -V100
mus_rg_net_center.mid: -E -R50 -G162 -V096
mus_rg_new_game_exit.mid: -E -R50 -G182 -V088
mus_rg_new_game_instruct.mid: -E -R50 -G182 -V085
mus_rg_new_game_intro.mid: -E -R50 -G182 -V088
mus_rg_oak_lab.mid: -E -R50 -G160 -V075
mus_rg_oak.mid: -E -R50 -G161 -V086
mus_rg_obtain_key_item.mid: -E -R50 -G178 -V077 -P5
mus_rg_pallet.mid: -E -R50 -G159 -V100
mus_rg_pewter.mid: -E -R50 -G173 -V084
mus_rg_photo.mid: -E -R50 -G180 -V100 -P5
mus_rg_poke_center.mid: -E -R50 -G162 -V096
mus_rg_poke_flute.mid: -E -R50 -G165 -V048 -P5
mus_rg_poke_jump.mid: -E -R50 -G132 -V090
mus_rg_poke_mansion.mid: -E -R50 -G148 -V090
mus_rg_poke_tower.mid: -E -R50 -G165 -V090
mus_rg_rival_exit.mid: -E -R50 -G174 -V079
mus_rg_rocket_hideout.mid: -E -R50 -G133 -V090
mus_rg_route1.mid: -E -R50 -G150 -V079
mus_rg_route3.mid: -E -R50 -G152 -V083
mus_rg_route11.mid: -E -R50 -G153 -V090
mus_rg_route24.mid: -E -R50 -G151 -V086
mus_rg_sevii_45.mid: -E -R50 -G188 -V084
mus_rg_sevii_67.mid: -E -R50 -G189 -V084
mus_rg_sevii_123.mid: -E -R50 -G173 -V084
mus_rg_sevii_cave.mid: -E -R50 -G147 -V090
mus_rg_sevii_dungeon.mid: -E -R50 -G146 -V090
mus_rg_sevii_route.mid: -E -R50 -G187 -V080
mus_rg_silph.mid: -E -R50 -G166 -V076
mus_rg_slow_pallet.mid: -E -R50 -G159 -V092
mus_rg_ss_anne.mid: -E -R50 -G163 -V090
mus_rg_surf.mid: -E -R50 -G164 -V071
mus_rg_teachy_tv_menu.mid: -E -R50 -G186 -V059
mus_rg_teachy_tv_show.mid: -E -R50 -G131 -V068
mus_rg_title.mid: -E -R50 -G137 -V090
mus_rg_trainer_tower.mid: -E -R50 -G134 -V090
mus_rg_union_room.mid: -E -R50 -G132 -V090
mus_rg_vermillion.mid: -E -R50 -G172 -V090
mus_rg_victory_gym_leader.mid: -E -R50 -G171 -V090
mus_rg_victory_road.mid: -E -R50 -G154 -V090
mus_rg_victory_trainer.mid: -E -R50 -G169 -V089
mus_rg_victory_wild.mid: -E -R50 -G170 -V090
mus_rg_viridian_forest.mid: -E -R50 -G146 -V090
mus_rg_vs_champion.mid: -E -R50 -G158 -V090
mus_rg_vs_deoxys.mid: -E -R50 -G185 -V080
mus_rg_vs_gym_leader.mid: -E -R50 -G155 -V090
mus_rg_vs_legend.mid: -E -R50 -G157 -V090
mus_rg_vs_mewtwo.mid: -E -R50 -G157 -V090
mus_rg_vs_trainer.mid: -E -R50 -G156 -V090
mus_rg_vs_wild.mid: -E -R50 -G157 -V090
mus_roulette.mid: -E -R50 -G038 -V080
mus_route101.mid: -E -R50 -G011 -V080
mus_route104.mid: -E -R50 -G047 -V097
mus_route110.mid: -E -R50 -G010 -V080
mus_route111.mid: -E -R50 -G055 -V076
mus_route113.mid: -E -R50 -G064 -V084
mus_route119.mid: -E -R50 -G048 -V096
mus_route120.mid: -E -R50 -G014 -V080
mus_route122.mid: -E -R50 -G021 -V080
mus_rustboro.mid: -E -R50 -G045 -V085
mus_safari_zone.mid: -E -R50 -G074 -V082
mus_sailing.mid: -E -R50 -G077 -V086
mus_school.mid: -E -R50 -G081 -V100
mus_sealed_chamber.mid: -E -R50 -G084 -V100
mus_slateport.mid: -E -R50 -G079 -V070
mus_slots_jackpot.mid: -E -R50 -G012 -V090 -P5
mus_slots_win.mid: -E -R50 -G012 -V090 -P5
mus_sootopolis.mid: -E -R50 -G091 -V062
mus_surf.mid: -E -R50 -G017 -V080
mus_title.mid: -E -R50 -G059 -V090
mus_too_bad.mid: -E -R50 -G012 -V090 -P5
mus_trick_house.mid: -E -R50 -G094 -V070
mus_underwater.mid: -E -R50 -G057 -V094
mus_verdanturf.mid: -E -R50 -G044 -V090
mus_victory_aqua_magma.mid: -E -R50 -G070 -V088
mus_victory_gym_leader.mid: -E -R50 -G024 -V080
mus_victory_league.mid: -E -R50 -G029 -V080
mus_victory_road.mid: -E -R50 -G075 -V076
mus_victory_trainer.mid: -E -R50 -G058 -V091
mus_victory_wild.mid: -E -R50 -G025 -V080
mus_vs_aqua_magma_leader.mid: -E -R50 -G126 -V080 -P1
mus_vs_aqua_magma.mid: -E -R50 -G118 -V080 -P1
mus_vs_champion.mid: -E -R50 -G121 -V080 -P1
mus_vs_elite_four.mid: -E -R50 -G125 -V080 -P1
mus_vs_frontier_brain.mid: -E -R50 -G115 -V090 -P1
mus_vs_gym_leader.mid: -E -R50 -G120 -V080 -P1
mus_vs_kyogre_groudon.mid: -E -R50 -G123 -V080 -P1
mus_vs_mew.mid: -E -R50 -G116 -V090
mus_vs_rayquaza.mid: -E -R50 -G114 -V080 -P1
mus_vs_regi.mid: -E -R50 -G122 -V080 -P1
mus_vs_rival.mid: -E -R50 -G124 -V080 -P1
mus_vs_trainer.mid: -E -R50 -G119 -V080 -P1
mus_vs_wild.mid: -E -R50 -G117 -V080 -P1
mus_weather_groudon.mid: -E -R50 -G090 -V050
ph_choice_blend.mid: -E -G130 -P4
ph_choice_held.mid: -E -G130 -P4
ph_choice_solo.mid: -E -G130 -P4
ph_cloth_blend.mid: -E -G130 -P4
ph_cloth_held.mid: -E -G130 -P4
ph_cloth_solo.mid: -E -G130 -P4
ph_cure_blend.mid: -E -G130 -P4
ph_cure_held.mid: -E -G130 -P4
ph_cure_solo.mid: -E -G130 -P4
ph_dress_blend.mid: -E -G130 -P4
ph_dress_held.mid: -E -G130 -P4
ph_dress_solo.mid: -E -G130 -P4
ph_face_blend.mid: -E -G130 -P4
ph_face_held.mid: -E -G130 -P4
ph_face_solo.mid: -E -G130 -P4
ph_fleece_blend.mid: -E -G130 -P4
ph_fleece_held.mid: -E -G130 -P4
ph_fleece_solo.mid: -E -G130 -P4
ph_foot_blend.mid: -E -G130 -P4
ph_foot_held.mid: -E -G130 -P4
ph_foot_solo.mid: -E -G130 -P4
ph_goat_blend.mid: -E -G130 -P4
ph_goat_held.mid: -E -G130 -P4
ph_goat_solo.mid: -E -G130 -P4
ph_goose_blend.mid: -E -G130 -P4
ph_goose_held.mid: -E -G130 -P4
ph_goose_solo.mid: -E -G130 -P4
ph_kit_blend.mid: -E -G130 -P4
ph_kit_held.mid: -E -G130 -P4
ph_kit_solo.mid: -E -G130 -P4
ph_lot_blend.mid: -E -G130 -P4
ph_lot_held.mid: -E -G130 -P4
ph_lot_solo.mid: -E -G130 -P4
ph_mouth_blend.mid: -E -G130 -P4
ph_mouth_held.mid: -E -G130 -P4
ph_mouth_solo.mid: -E -G130 -P4
ph_nurse_blend.mid: -E -G130 -P4
ph_nurse_held.mid: -E -G130 -P4
ph_nurse_solo.mid: -E -G130 -P4
ph_price_blend.mid: -E -G130 -P4
ph_price_held.mid: -E -G130 -P4
ph_price_solo.mid: -E -G130 -P4
ph_strut_blend.mid: -E -G130 -P4
ph_strut_held.mid: -E -G130 -P4
ph_strut_solo.mid: -E -G130 -P4
ph_thought_blend.mid: -E -G130 -P4
ph_thought_held.mid: -E -G130 -P4
ph_thought_solo.mid: -E -G130 -P4
ph_trap_blend.mid: -E -G130 -P4
ph_trap_held.mid: -E -G130 -P4
ph_trap_solo.mid: -E -G130 -P4
se_a.mid: -E -R50 -G128 -V095 -P4
se_applause.mid: -E -R50 -G128 -V100 -P5
se_arena_timeup1.mid: -E -R50 -G129 -P5
se_arena_timeup2.mid: -E -R50 -G129 -P5
se_ball_bounce_1.mid: -E -R50 -G128 -V100 -P4
se_ball_bounce_2.mid: -E -R50 -G128 -V100 -P4
se_ball_bounce_3.mid: -E -R50 -G128 -V100 -P4
se_ball_bounce_4.mid: -E -R50 -G128 -V100 -P4
se_ball_open.mid: -E -R50 -G127 -V100 -P5
se_ball_throw.mid: -E -R50 -G128 -V120 -P5
se_ball_trade.mid: -E -R50 -G127 -V100 -P5
se_ball_tray_ball.mid: -E -R50 -G128 -V110 -P5
se_ball_tray_enter.mid: -E -R50 -G128 -V110 -P5
se_ball_tray_exit.mid: -E -R50 -G127 -V100 -P5
se_ball.mid: -E -R50 -G127 -V070 -P4
se_balloon_blue.mid: -E -R50 -G128 -V105 -P4
se_balloon_red.mid: -E -R50 -G128 -V105 -P4
se_balloon_yellow.mid: -E -R50 -G128 -V105 -P4
se_bang.mid: -E -R50 -G128 -V110 -P4
se_berry_blender.mid: -E -R50 -G128 -V090 -P4
se_bike_bell.mid: -E -R50 -G128 -V090 -P4
se_bike_hop.mid: -E -R50 -G127 -V090 -P4
se_boo.mid: -E -R50 -G127 -V110 -P4
se_breakable_door.mid: -E -R50 -G128 -V110 -P4
se_bridge_walk.mid: -E -R50 -G128 -V095 -P4
se_card.mid: -E -R50 -G127 -V100 -P4
se_click.mid: -E -R50 -G127 -V110 -P4
se_contest_condition_lose.mid: -E -R50 -G127 -V110 -P4
se_contest_curtain_fall.mid: -E -R50 -G128 -V070 -P5
se_contest_curtain_rise.mid: -E -R50 -G128 -V070 -P5
se_contest_heart.mid: -E -R50 -G128 -V090 -P5
se_contest_icon_change.mid: -E -R50 -G128 -V110 -P5
se_contest_icon_clear.mid: -E -R50 -G128 -V090 -P5
se_contest_mons_turn.mid: -E -R50 -G128 -V090 -P5
se_contest_place.mid: -E -R50 -G127 -V110 -P4
se_dex_search.mid: -E -R50 -G127 -v100 -P5
se_ding_dong.mid: -E -R50 -G127 -V090 -P5
se_door.mid: -E -R50 -G127 -V080 -P5
se_downpour_stop.mid: -E -R50 -G128 -V100 -P2
se_downpour.mid: -E -R50 -G128 -V100 -P2
se_e.mid: -E -R50 -G128 -V120 -P4
se_effective.mid: -E -R50 -G127 -V110 -P5
se_egg_hatch.mid: -E -R50 -G128 -V120 -P5
se_elevator.mid: -E -R50 -G128 -V100 -P4
se_escalator.mid: -E -R50 -G128 -V100 -P4
se_exit.mid: -E -R50 -G127 -V120 -P5
se_exp_max.mid: -E -R50 -G128 -V094 -P5
se_exp.mid: -E -R50 -G127 -V080 -P5
se_failure.mid: -E -R50 -G127 -V120 -P4
se_faint.mid: -E -R50 -G127 -V110 -P5
se_fall.mid: -E -R50 -G128 -V110 -P4
se_field_poison.mid: -E -R50 -G127 -V110 -P5
se_flee.mid: -E -R50 -G127 -V090 -P5
se_fu_zaku.mid: -E -R50 -G127 -V120 -P4
se_glass_flute.mid: -E -R50 -G128 -V105 -P5
se_i.mid: -E -R50 -G128 -V120 -P4
se_ice_break.mid: -E -R50 -G128 -V100 -P4
se_ice_crack.mid: -E -R50 -G127 -V100 -P4
se_ice_stairs.mid: -E -R50 -G128 -V090 -P4
se_intro_blast.mid: -E -R50 -G127 -V100 -P5
se_itemfinder.mid: -E -R50 -G127 -V090 -P5
se_lavaridge_fall_warp.mid: -E -R50 -G127 -P4
se_ledge.mid: -E -R50 -G127 -V100 -P4
se_low_health.mid: -E -R50 -G127 -V100 -P3
se_m_bind.mid: -E -R50 -G128 -V100 -P4
se_m_comet_punch.mid: -E -R50 -G128 -V120 -P4
se_m_cut.mid: -E -R50 -G128 -V120 -P4
se_m_double_slap.mid: -E -R50 -G128 -V110 -P4
se_m_fire_punch.mid: -E -R50 -G128 -V110 -P4
se_m_fly.mid: -E -R50 -G128 -V110 -P4
se_m_gust.mid: -E -R50 -G128 -V110 -P4
se_m_gust2.mid: -E -R50 -G128 -V110 -P4
se_m_headbutt.mid: -E -R50 -G128 -V110 -P4
se_m_horn_attack.mid: -E -R50 -G128 -V110 -P4
se_m_jump_kick.mid: -E -R50 -G128 -V110 -P4
se_m_leer.mid: -E -R50 -G128 -V110 -P4
se_m_mega_kick.mid: -E -R50 -G128 -V090 -P4
se_m_mega_kick2.mid: -E -R50 -G128 -V110 -P4
se_m_pay_day.mid: -E -R50 -G128 -V095 -P4
se_m_razor_wind.mid: -E -R50 -G128 -V110 -P4
se_m_razor_wind2.mid: -E -R50 -G128 -V090 -P4
se_m_sand_attack.mid: -E -R50 -G128 -V110 -P4
se_m_scratch.mid: -E -R50 -G128 -V110 -P4
se_m_swords_dance.mid: -E -R50 -G128 -V100 -P4
se_m_tail_whip.mid: -E -R50 -G128 -V110 -P4
se_m_take_down.mid: -E -R50 -G128 -V105 -P4
se_m_vicegrip.mid: -E -R50 -G128 -V110 -P4
se_m_wing_attack.mid: -E -R50 -G128 -V105 -P4
se_mud_ball.mid: -E -R50 -G128 -V110 -P4
se_mugshot.mid: -E -R50 -G128 -V090 -P5
se_n.mid: -E -R50 -G128 -P4
se_not_effective.mid: -E -R50 -G127 -V110 -P5
se_note_a.mid: -E -R50 -G128 -V110 -P4
se_note_b.mid: -E -R50 -G128 -V110 -P4
se_note_c_high.mid: -E -R50 -G128 -V110 -P4
se_note_c.mid: -E -R50 -G128 -V110 -P4
se_note_d.mid: -E -R50 -G128 -V110 -P4
se_note_e.mid: -E -R50 -G128 -V110 -P4
se_note_f.mid: -E -R50 -G128 -V110 -P4
se_note_g.mid: -E -R50 -G128 -V110 -P4
se_o.mid: -E -R50 -G128 -V120 -P4
se_orb.mid: -E -R50 -G128 -V100 -P5
se_pc_login.mid: -E -R50 -G127 -V100 -P5
se_pc_off.mid: -E -R50 -G127 -V100 -P5
se_pc_on.mid: -E -R50 -G127 -V100 -P5
se_pike_curtain_close.mid: -E -R50 -G129 -P5
se_pike_curtain_open.mid: -E -R50 -G129 -P5
se_pin.mid: -E -R50 -G127 -V060 -P4
se_pokenav_call.mid: -E -R50 -G129 -V120 -P5
se_pokenav_hang_up.mid: -E -R50 -G129 -V110 -P5
se_pokenav_off.mid: -E -R50 -G127 -V100 -P5
se_pokenav_on.mid: -E -R50 -G127 -V100 -P5
se_puddle.mid: -E -R50 -G128 -V020 -P4
se_rain_stop.mid: -E -R50 -G128 -V080 -P2
se_rain.mid: -E -R50 -G128 -V080 -P2
se_repel.mid: -E -R50 -G127 -V090 -P4
se_rg_bag_cursor.mid: -E -R50 -G129 -P5
se_rg_bag_pocket.mid: -E -R50 -G129 -P5
se_rg_ball_click.mid: -E -R50 -G129 -V100 -P5
se_rg_card_flip.mid: -E -R50 -G129 -P5
se_rg_card_flipping.mid: -E -R50 -G129 -P5
se_rg_card_open.mid: -E -R50 -G129 -V112 -P5
se_rg_deoxys_move.mid: -E -R50 -G129 -V080 -P5
se_rg_door.mid: -E -R50 -G129 -V100 -P5
se_rg_help_close.mid: -E -R50 -G129 -V095 -P5
se_rg_help_error.mid: -E -R50 -G129 -V125 -P5
se_rg_help_open.mid: -E -R50 -G129 -V096 -P5
se_rg_poke_jump_failure.mid: -E -R50 -G127 -P5
se_rg_poke_jump_success.mid: -E -R50 -G128 -V110 -P5
se_rg_shop.mid: -E -R50 -G129 -V080 -P5
se_rg_ss_anne_horn.mid: -E -R50 -G129 -V096 -P5
se_rotating_gate.mid: -E -R50 -G128 -V090 -P4
se_roulette_ball.mid: -E -R50 -G128 -V110 -P2
se_roulette_ball2.mid: -E -R50 -G128 -V110 -P2
se_save.mid: -E -R50 -G128 -V080 -P5
se_select.mid: -E -R50 -G127 -V080 -P5
se_shiny.mid: -E -R50 -G128 -V095 -P5
se_ship.mid: -E -R50 -G127 -V075 -P4
se_shop.mid: -E -R50 -G127 -V090 -P5
se_sliding_door.mid: -E -R50 -G128 -V095 -P4
se_success.mid: -E -R50 -G127 -V080 -P4
se_sudowoodo_shake.mid: -E -R50 -G129 -V077 -P5
se_super_effective.mid: -E -R50 -G127 -V110 -P5
se_switch.mid: -E -R50 -G127 -V100 -P4
se_taillow_wing_flap.mid: -E -R50 -G128 -V105 -P5
se_thunder.mid: -E -R50 -G128 -V110 -P3
se_thunder2.mid: -E -R50 -G128 -V110 -P3
se_thunderstorm_stop.mid: -E -R50 -G128 -V080 -P2
se_thunderstorm.mid: -E -R50 -G128 -V080 -P2
se_truck_door.mid: -E -R50 -G128 -V110 -P4
se_truck_move.mid: -E -R50 -G128 -P4
se_truck_stop.mid: -E -R50 -G128 -P4
se_truck_unload.mid: -E -R50 -G127 -P4
se_u.mid: -E -R50 -G128 -P4
se_unlock.mid: -E -R50 -G128 -V100 -P4
se_use_item.mid: -E -R50 -G127 -V100 -P5
se_vend.mid: -E -R50 -G128 -V110 -P4
se_warp_in.mid: -E -R50 -G127 -V090 -P4
se_warp_out.mid: -E -R50 -G127 -V090 -P4
mus_gym.mid: -E -R50 -G_gym -V080
mus_hall_of_fame_room.mid: -E -R50 -G_hall_of_fame_room -V080
mus_hall_of_fame.mid: -E -R50 -G_hall_of_fame -V078
mus_heal.mid: -E -R50 -G_fanfare -V090 -P5
mus_help.mid: -E -R50 -G_help -V078
mus_intro_battle.mid: -E -R50 -G_intro_battle -V088
mus_intro.mid: -E -R50 -G_intro -V090
mus_level_up.mid: -E -R50 -G_fanfare -V090 -P5
mus_lilycove_museum.mid: -E -R50 -G_lilycove_museum -V080
mus_lilycove.mid: -E -R50 -G_lilycove -V085
mus_link_contest_p1.mid: -E -R50 -G_link_contest_p1 -V079
mus_link_contest_p2.mid: -E -R50 -G_link_contest_p2 -V090
mus_link_contest_p3.mid: -E -R50 -G_link_contest_p3 -V075
mus_link_contest_p4.mid: -E -R50 -G_link_contest_p4 -V090
mus_littleroot_test.mid: -E -R50 -G_littleroot_test -V099
mus_littleroot.mid: -E -R50 -G_littleroot -V100
mus_move_deleted.mid: -E -R50 -G_fanfare -V090 -P5
mus_mt_chimney.mid: -E -R50 -G_mt_chimney -V078
mus_mt_pyre_exterior.mid: -E -R50 -G_mt_pyre_exterior -V080
mus_mt_pyre.mid: -E -R50 -G_mt_pyre -V088
mus_obtain_b_points.mid: -E -R50 -G_b_frontier -V090 -P5
mus_obtain_badge.mid: -E -R50 -G_fanfare -V090 -P5
mus_obtain_berry.mid: -E -R50 -G_fanfare -V090 -P5
mus_obtain_item.mid: -E -R50 -G_fanfare -V090 -P5
mus_obtain_symbol.mid: -E -R50 -G_b_frontier -V100 -P5
mus_obtain_tmhm.mid: -E -R50 -G_fanfare -V090 -P5
mus_oceanic_museum.mid: -E -R50 -G_oceanic_museum -V080
mus_oldale.mid: -E -R50 -G_oldale -V080
mus_petalburg_woods.mid: -E -R50 -G_petalburg_woods -V080
mus_petalburg.mid: -E -R50 -G_petalburg -V080
mus_poke_center.mid: -E -R50 -G_poke_center -V092
mus_poke_mart.mid: -E -R50 -G_poke_mart -V085
mus_rayquaza_appears.mid: -E -R50 -G_rayquaza_appears -V090
mus_register_match_call.mid: -E -R50 -G_register_match_call -V090 -P5
mus_rg_berry_pick.mid: -E -R50 -G_rg_game_corner -V090
mus_rg_caught_intro.mid: -E -R50 -G_rg_caught_intro -V094 -P5
mus_rg_caught.mid: -E -R50 -G_rg_victory_wild -V100
mus_rg_celadon.mid: -E -R50 -G_rg_celadon -V070
mus_rg_cinnabar.mid: -E -R50 -G_rg_cinnabar -V090
mus_rg_credits.mid: -E -R50 -G_rg_credits -V090
mus_rg_cycling.mid: -E -R50 -G_rg_cycling -V090
mus_rg_dex_rating.mid: -E -R50 -G_rg_dex_rating -V070 -P5
mus_rg_encounter_boy.mid: -E -R50 -G_rg_encounter_boy -V090
mus_rg_encounter_deoxys.mid: -E -R50 -G_rg_encounter_deoxys -V079
mus_rg_encounter_girl.mid: -E -R50 -G_rg_encounter_girl -V051
mus_rg_encounter_gym_leader: -E -R50 -G_rg_encounter_boy -V090
mus_rg_encounter_rival.mid: -E -R50 -G_rg_encounter_rival -V079
mus_rg_encounter_rocket.mid: -E -R50 -G_rg_encounter_rocket -V096
mus_rg_follow_me.mid: -E -R50 -G_rg_follow_me -V068
mus_rg_fuchsia.mid: -E -R50 -G_rg_fuchsia -V090
mus_rg_game_corner.mid: -E -R50 -G_rg_game_corner -V090
mus_rg_game_freak.mid: -E -R50 -G_rg_game_freak -V075
mus_rg_gym.mid: -E -R50 -G_rg_gym -V090
mus_rg_hall_of_fame.mid: -E -R50 -G_rg_hall_of_fame -V079
mus_rg_heal.mid: -E -R50 -G_rg_heal -V090
mus_rg_intro_fight.mid: -E -R50 -G_rg_intro_fight -V090
mus_rg_jigglypuff.mid: -E -R50 -G_rg_jigglypuff -V068 -P5
mus_rg_lavender.mid: -E -R50 -G_rg_lavender -V090
mus_rg_mt_moon.mid: -E -R50 -G_rg_mt_moon -V090
mus_rg_mystery_gift.mid: -E -R50 -G_rg_mystery_gift -V100
mus_rg_net_center.mid: -E -R50 -G_rg_poke_center -V096
mus_rg_new_game_exit.mid: -E -R50 -G_rg_new_game -V088
mus_rg_new_game_instruct.mid: -E -R50 -G_rg_new_game -V085
mus_rg_new_game_intro.mid: -E -R50 -G_rg_new_game -V088
mus_rg_oak_lab.mid: -E -R50 -G_rg_oak_lab -V075
mus_rg_oak.mid: -E -R50 -G_rg_oak -V086
mus_rg_obtain_key_item.mid: -E -R50 -G_rg_obtain_key_item -V077 -P5
mus_rg_pallet.mid: -E -R50 -G_rg_pallet -V100
mus_rg_pewter.mid: -E -R50 -G_rg_pewter -V084
mus_rg_photo.mid: -E -R50 -G_rg_photo -V100 -P5
mus_rg_poke_center.mid: -E -R50 -G_rg_poke_center -V096
mus_rg_poke_flute.mid: -E -R50 -G_rg_poke_tower -V048 -P5
mus_rg_poke_jump.mid: -E -R50 -G_rg_game_corner -V090
mus_rg_poke_mansion.mid: -E -R50 -G_rg_poke_mansion -V090
mus_rg_poke_tower.mid: -E -R50 -G_rg_poke_tower -V090
mus_rg_rival_exit.mid: -E -R50 -G_rg_encounter_rival -V079
mus_rg_rocket_hideout.mid: -E -R50 -G_rg_rocket_hideout -V090
mus_rg_route1.mid: -E -R50 -G_rg_route1 -V079
mus_rg_route3.mid: -E -R50 -G_rg_route3 -V083
mus_rg_route11.mid: -E -R50 -G_rg_route11 -V090
mus_rg_route24.mid: -E -R50 -G_rg_route24 -V086
mus_rg_sevii_45.mid: -E -R50 -G_rg_sevii_45 -V084
mus_rg_sevii_67.mid: -E -R50 -G_rg_sevii_67 -V084
mus_rg_sevii_123.mid: -E -R50 -G_rg_pewter -V084
mus_rg_sevii_cave.mid: -E -R50 -G_rg_mt_moon -V090
mus_rg_sevii_dungeon.mid: -E -R50 -G_rg_viridian_forest -V090
mus_rg_sevii_route.mid: -E -R50 -G_rg_sevii_route -V080
mus_rg_silph.mid: -E -R50 -G_rg_silph -V076
mus_rg_slow_pallet.mid: -E -R50 -G_rg_pallet -V092
mus_rg_ss_anne.mid: -E -R50 -G_rg_ss_anne -V090
mus_rg_surf.mid: -E -R50 -G_rg_surf -V071
mus_rg_teachy_tv_menu.mid: -E -R50 -G_rg_teachy_tv_menu -V059
mus_rg_teachy_tv_show.mid: -E -R50 -G_rg_follow_me -V068
mus_rg_title.mid: -E -R50 -G_rg_title -V090
mus_rg_trainer_tower.mid: -E -R50 -G_rg_gym -V090
mus_rg_union_room.mid: -E -R50 -G_rg_game_corner -V090
mus_rg_vermillion.mid: -E -R50 -G_rg_vermillion -V090
mus_rg_victory_gym_leader.mid: -E -R50 -G_rg_victory_gym_leader -V090
mus_rg_victory_road.mid: -E -R50 -G_rg_victory_road -V090
mus_rg_victory_trainer.mid: -E -R50 -G_rg_victory_trainer -V089
mus_rg_victory_wild.mid: -E -R50 -G_rg_victory_wild -V090
mus_rg_viridian_forest.mid: -E -R50 -G_rg_viridian_forest -V090
mus_rg_vs_champion.mid: -E -R50 -G_rg_vs_champion -V090
mus_rg_vs_deoxys.mid: -E -R50 -G_rg_vs_deoxys -V080
mus_rg_vs_gym_leader.mid: -E -R50 -G_rg_vs_gym_leader -V090
mus_rg_vs_legend.mid: -E -R50 -G_rg_vs_wild -V090
mus_rg_vs_mewtwo.mid: -E -R50 -G_rg_vs_wild -V090
mus_rg_vs_trainer.mid: -E -R50 -G_rg_vs_trainer -V090
mus_rg_vs_wild.mid: -E -R50 -G_rg_vs_wild -V090
mus_roulette.mid: -E -R50 -G_roulette -V080
mus_route101.mid: -E -R50 -G_route101 -V080
mus_route104.mid: -E -R50 -G_route104 -V097
mus_route110.mid: -E -R50 -G_route110 -V080
mus_route111.mid: -E -R50 -G_route111 -V076
mus_route113.mid: -E -R50 -G_route113 -V084
mus_route119.mid: -E -R50 -G_route119 -V096
mus_route120.mid: -E -R50 -G_route120 -V080
mus_route122.mid: -E -R50 -G_route122 -V080
mus_rustboro.mid: -E -R50 -G_rustboro -V085
mus_safari_zone.mid: -E -R50 -G_safari_zone -V082
mus_sailing.mid: -E -R50 -G_sailing -V086
mus_school.mid: -E -R50 -G_school -V100
mus_sealed_chamber.mid: -E -R50 -G_sealed_chamber -V100
mus_slateport.mid: -E -R50 -G_slateport -V070
mus_slots_jackpot.mid: -E -R50 -G_fanfare -V090 -P5
mus_slots_win.mid: -E -R50 -G_fanfare -V090 -P5
mus_sootopolis.mid: -E -R50 -G_sootopolis -V062
mus_surf.mid: -E -R50 -G_surf -V080
mus_title.mid: -E -R50 -G_title -V090
mus_too_bad.mid: -E -R50 -G_fanfare -V090 -P5
mus_trick_house.mid: -E -R50 -G_trick_house -V070
mus_underwater.mid: -E -R50 -G_underwater -V094
mus_verdanturf.mid: -E -R50 -G_verdanturf -V090
mus_victory_aqua_magma.mid: -E -R50 -G_victory_aqua_magma -V088
mus_victory_gym_leader.mid: -E -R50 -G_victory_gym_leader -V080
mus_victory_league.mid: -E -R50 -G_victory_league -V080
mus_victory_road.mid: -E -R50 -G_victory_road -V076
mus_victory_trainer.mid: -E -R50 -G_victory_trainer -V091
mus_victory_wild.mid: -E -R50 -G_victory_wild -V080
mus_vs_aqua_magma_leader.mid: -E -R50 -G_vs_aqua_magma_leader -V080 -P1
mus_vs_aqua_magma.mid: -E -R50 -G_vs_aqua_magma -V080 -P1
mus_vs_champion.mid: -E -R50 -G_vs_champion -V080 -P1
mus_vs_elite_four.mid: -E -R50 -G_vs_elite_four -V080 -P1
mus_vs_frontier_brain.mid: -E -R50 -G_vs_frontier_brain -V090 -P1
mus_vs_gym_leader.mid: -E -R50 -G_vs_gym_leader -V080 -P1
mus_vs_kyogre_groudon.mid: -E -R50 -G_vs_kyogre_groudon -V080 -P1
mus_vs_mew.mid: -E -R50 -G_vs_mew -V090
mus_vs_rayquaza.mid: -E -R50 -G_vs_rayquaza -V080 -P1
mus_vs_regi.mid: -E -R50 -G_vs_regi -V080 -P1
mus_vs_rival.mid: -E -R50 -G_vs_rival -V080 -P1
mus_vs_trainer.mid: -E -R50 -G_vs_trainer -V080 -P1
mus_vs_wild.mid: -E -R50 -G_vs_wild -V080 -P1
mus_weather_groudon.mid: -E -R50 -G_weather_groudon -V050
ph_choice_blend.mid: -E -G_bard -P4
ph_choice_held.mid: -E -G_bard -P4
ph_choice_solo.mid: -E -G_bard -P4
ph_cloth_blend.mid: -E -G_bard -P4
ph_cloth_held.mid: -E -G_bard -P4
ph_cloth_solo.mid: -E -G_bard -P4
ph_cure_blend.mid: -E -G_bard -P4
ph_cure_held.mid: -E -G_bard -P4
ph_cure_solo.mid: -E -G_bard -P4
ph_dress_blend.mid: -E -G_bard -P4
ph_dress_held.mid: -E -G_bard -P4
ph_dress_solo.mid: -E -G_bard -P4
ph_face_blend.mid: -E -G_bard -P4
ph_face_held.mid: -E -G_bard -P4
ph_face_solo.mid: -E -G_bard -P4
ph_fleece_blend.mid: -E -G_bard -P4
ph_fleece_held.mid: -E -G_bard -P4
ph_fleece_solo.mid: -E -G_bard -P4
ph_foot_blend.mid: -E -G_bard -P4
ph_foot_held.mid: -E -G_bard -P4
ph_foot_solo.mid: -E -G_bard -P4
ph_goat_blend.mid: -E -G_bard -P4
ph_goat_held.mid: -E -G_bard -P4
ph_goat_solo.mid: -E -G_bard -P4
ph_goose_blend.mid: -E -G_bard -P4
ph_goose_held.mid: -E -G_bard -P4
ph_goose_solo.mid: -E -G_bard -P4
ph_kit_blend.mid: -E -G_bard -P4
ph_kit_held.mid: -E -G_bard -P4
ph_kit_solo.mid: -E -G_bard -P4
ph_lot_blend.mid: -E -G_bard -P4
ph_lot_held.mid: -E -G_bard -P4
ph_lot_solo.mid: -E -G_bard -P4
ph_mouth_blend.mid: -E -G_bard -P4
ph_mouth_held.mid: -E -G_bard -P4
ph_mouth_solo.mid: -E -G_bard -P4
ph_nurse_blend.mid: -E -G_bard -P4
ph_nurse_held.mid: -E -G_bard -P4
ph_nurse_solo.mid: -E -G_bard -P4
ph_price_blend.mid: -E -G_bard -P4
ph_price_held.mid: -E -G_bard -P4
ph_price_solo.mid: -E -G_bard -P4
ph_strut_blend.mid: -E -G_bard -P4
ph_strut_held.mid: -E -G_bard -P4
ph_strut_solo.mid: -E -G_bard -P4
ph_thought_blend.mid: -E -G_bard -P4
ph_thought_held.mid: -E -G_bard -P4
ph_thought_solo.mid: -E -G_bard -P4
ph_trap_blend.mid: -E -G_bard -P4
ph_trap_held.mid: -E -G_bard -P4
ph_trap_solo.mid: -E -G_bard -P4
se_a.mid: -E -R50 -G_rs_sfx_2 -V095 -P4
se_applause.mid: -E -R50 -G_rs_sfx_2 -V100 -P5
se_arena_timeup1.mid: -E -R50 -G_frlg_sfx -P5
se_arena_timeup2.mid: -E -R50 -G_frlg_sfx -P5
se_ball_bounce_1.mid: -E -R50 -G_rs_sfx_2 -V100 -P4
se_ball_bounce_2.mid: -E -R50 -G_rs_sfx_2 -V100 -P4
se_ball_bounce_3.mid: -E -R50 -G_rs_sfx_2 -V100 -P4
se_ball_bounce_4.mid: -E -R50 -G_rs_sfx_2 -V100 -P4
se_ball_open.mid: -E -R50 -G_rs_sfx_1 -V100 -P5
se_ball_throw.mid: -E -R50 -G_rs_sfx_2 -V120 -P5
se_ball_trade.mid: -E -R50 -G_rs_sfx_1 -V100 -P5
se_ball_tray_ball.mid: -E -R50 -G_rs_sfx_2 -V110 -P5
se_ball_tray_enter.mid: -E -R50 -G_rs_sfx_2 -V110 -P5
se_ball_tray_exit.mid: -E -R50 -G_rs_sfx_1 -V100 -P5
se_ball.mid: -E -R50 -G_rs_sfx_1 -V070 -P4
se_balloon_blue.mid: -E -R50 -G_rs_sfx_2 -V105 -P4
se_balloon_red.mid: -E -R50 -G_rs_sfx_2 -V105 -P4
se_balloon_yellow.mid: -E -R50 -G_rs_sfx_2 -V105 -P4
se_bang.mid: -E -R50 -G_rs_sfx_2 -V110 -P4
se_berry_blender.mid: -E -R50 -G_rs_sfx_2 -V090 -P4
se_bike_bell.mid: -E -R50 -G_rs_sfx_2 -V090 -P4
se_bike_hop.mid: -E -R50 -G_rs_sfx_1 -V090 -P4
se_boo.mid: -E -R50 -G_rs_sfx_1 -V110 -P4
se_breakable_door.mid: -E -R50 -G_rs_sfx_2 -V110 -P4
se_bridge_walk.mid: -E -R50 -G_rs_sfx_2 -V095 -P4
se_card.mid: -E -R50 -G_rs_sfx_1 -V100 -P4
se_click.mid: -E -R50 -G_rs_sfx_1 -V110 -P4
se_contest_condition_lose.mid: -E -R50 -G_rs_sfx_1 -V110 -P4
se_contest_curtain_fall.mid: -E -R50 -G_rs_sfx_2 -V070 -P5
se_contest_curtain_rise.mid: -E -R50 -G_rs_sfx_2 -V070 -P5
se_contest_heart.mid: -E -R50 -G_rs_sfx_2 -V090 -P5
se_contest_icon_change.mid: -E -R50 -G_rs_sfx_2 -V110 -P5
se_contest_icon_clear.mid: -E -R50 -G_rs_sfx_2 -V090 -P5
se_contest_mons_turn.mid: -E -R50 -G_rs_sfx_2 -V090 -P5
se_contest_place.mid: -E -R50 -G_rs_sfx_1 -V110 -P4
se_dex_search.mid: -E -R50 -G_rs_sfx_1 -v100 -P5
se_ding_dong.mid: -E -R50 -G_rs_sfx_1 -V090 -P5
se_door.mid: -E -R50 -G_rs_sfx_1 -V080 -P5
se_downpour_stop.mid: -E -R50 -G_rs_sfx_2 -V100 -P2
se_downpour.mid: -E -R50 -G_rs_sfx_2 -V100 -P2
se_e.mid: -E -R50 -G_rs_sfx_2 -V120 -P4
se_effective.mid: -E -R50 -G_rs_sfx_1 -V110 -P5
se_egg_hatch.mid: -E -R50 -G_rs_sfx_2 -V120 -P5
se_elevator.mid: -E -R50 -G_rs_sfx_2 -V100 -P4
se_escalator.mid: -E -R50 -G_rs_sfx_2 -V100 -P4
se_exit.mid: -E -R50 -G_rs_sfx_1 -V120 -P5
se_exp_max.mid: -E -R50 -G_rs_sfx_2 -V094 -P5
se_exp.mid: -E -R50 -G_rs_sfx_1 -V080 -P5
se_failure.mid: -E -R50 -G_rs_sfx_1 -V120 -P4
se_faint.mid: -E -R50 -G_rs_sfx_1 -V110 -P5
se_fall.mid: -E -R50 -G_rs_sfx_2 -V110 -P4
se_field_poison.mid: -E -R50 -G_rs_sfx_1 -V110 -P5
se_flee.mid: -E -R50 -G_rs_sfx_1 -V090 -P5
se_fu_zaku.mid: -E -R50 -G_rs_sfx_1 -V120 -P4
se_glass_flute.mid: -E -R50 -G_rs_sfx_2 -V105 -P5
se_i.mid: -E -R50 -G_rs_sfx_2 -V120 -P4
se_ice_break.mid: -E -R50 -G_rs_sfx_2 -V100 -P4
se_ice_crack.mid: -E -R50 -G_rs_sfx_1 -V100 -P4
se_ice_stairs.mid: -E -R50 -G_rs_sfx_2 -V090 -P4
se_intro_blast.mid: -E -R50 -G_rs_sfx_1 -V100 -P5
se_itemfinder.mid: -E -R50 -G_rs_sfx_1 -V090 -P5
se_lavaridge_fall_warp.mid: -E -R50 -G_rs_sfx_1 -P4
se_ledge.mid: -E -R50 -G_rs_sfx_1 -V100 -P4
se_low_health.mid: -E -R50 -G_rs_sfx_1 -V100 -P3
se_m_bind.mid: -E -R50 -G_rs_sfx_2 -V100 -P4
se_m_comet_punch.mid: -E -R50 -G_rs_sfx_2 -V120 -P4
se_m_cut.mid: -E -R50 -G_rs_sfx_2 -V120 -P4
se_m_double_slap.mid: -E -R50 -G_rs_sfx_2 -V110 -P4
se_m_fire_punch.mid: -E -R50 -G_rs_sfx_2 -V110 -P4
se_m_fly.mid: -E -R50 -G_rs_sfx_2 -V110 -P4
se_m_gust.mid: -E -R50 -G_rs_sfx_2 -V110 -P4
se_m_gust2.mid: -E -R50 -G_rs_sfx_2 -V110 -P4
se_m_headbutt.mid: -E -R50 -G_rs_sfx_2 -V110 -P4
se_m_horn_attack.mid: -E -R50 -G_rs_sfx_2 -V110 -P4
se_m_jump_kick.mid: -E -R50 -G_rs_sfx_2 -V110 -P4
se_m_leer.mid: -E -R50 -G_rs_sfx_2 -V110 -P4
se_m_mega_kick.mid: -E -R50 -G_rs_sfx_2 -V090 -P4
se_m_mega_kick2.mid: -E -R50 -G_rs_sfx_2 -V110 -P4
se_m_pay_day.mid: -E -R50 -G_rs_sfx_2 -V095 -P4
se_m_razor_wind.mid: -E -R50 -G_rs_sfx_2 -V110 -P4
se_m_razor_wind2.mid: -E -R50 -G_rs_sfx_2 -V090 -P4
se_m_sand_attack.mid: -E -R50 -G_rs_sfx_2 -V110 -P4
se_m_scratch.mid: -E -R50 -G_rs_sfx_2 -V110 -P4
se_m_swords_dance.mid: -E -R50 -G_rs_sfx_2 -V100 -P4
se_m_tail_whip.mid: -E -R50 -G_rs_sfx_2 -V110 -P4
se_m_take_down.mid: -E -R50 -G_rs_sfx_2 -V105 -P4
se_m_vicegrip.mid: -E -R50 -G_rs_sfx_2 -V110 -P4
se_m_wing_attack.mid: -E -R50 -G_rs_sfx_2 -V105 -P4
se_mud_ball.mid: -E -R50 -G_rs_sfx_2 -V110 -P4
se_mugshot.mid: -E -R50 -G_rs_sfx_2 -V090 -P5
se_n.mid: -E -R50 -G_rs_sfx_2 -P4
se_not_effective.mid: -E -R50 -G_rs_sfx_1 -V110 -P5
se_note_a.mid: -E -R50 -G_rs_sfx_2 -V110 -P4
se_note_b.mid: -E -R50 -G_rs_sfx_2 -V110 -P4
se_note_c_high.mid: -E -R50 -G_rs_sfx_2 -V110 -P4
se_note_c.mid: -E -R50 -G_rs_sfx_2 -V110 -P4
se_note_d.mid: -E -R50 -G_rs_sfx_2 -V110 -P4
se_note_e.mid: -E -R50 -G_rs_sfx_2 -V110 -P4
se_note_f.mid: -E -R50 -G_rs_sfx_2 -V110 -P4
se_note_g.mid: -E -R50 -G_rs_sfx_2 -V110 -P4
se_o.mid: -E -R50 -G_rs_sfx_2 -V120 -P4
se_orb.mid: -E -R50 -G_rs_sfx_2 -V100 -P5
se_pc_login.mid: -E -R50 -G_rs_sfx_1 -V100 -P5
se_pc_off.mid: -E -R50 -G_rs_sfx_1 -V100 -P5
se_pc_on.mid: -E -R50 -G_rs_sfx_1 -V100 -P5
se_pike_curtain_close.mid: -E -R50 -G_frlg_sfx -P5
se_pike_curtain_open.mid: -E -R50 -G_frlg_sfx -P5
se_pin.mid: -E -R50 -G_rs_sfx_1 -V060 -P4
se_pokenav_call.mid: -E -R50 -G_frlg_sfx -V120 -P5
se_pokenav_hang_up.mid: -E -R50 -G_frlg_sfx -V110 -P5
se_pokenav_off.mid: -E -R50 -G_rs_sfx_1 -V100 -P5
se_pokenav_on.mid: -E -R50 -G_rs_sfx_1 -V100 -P5
se_puddle.mid: -E -R50 -G_rs_sfx_2 -V020 -P4
se_rain_stop.mid: -E -R50 -G_rs_sfx_2 -V080 -P2
se_rain.mid: -E -R50 -G_rs_sfx_2 -V080 -P2
se_repel.mid: -E -R50 -G_rs_sfx_1 -V090 -P4
se_rg_bag_cursor.mid: -E -R50 -G_frlg_sfx -P5
se_rg_bag_pocket.mid: -E -R50 -G_frlg_sfx -P5
se_rg_ball_click.mid: -E -R50 -G_frlg_sfx -V100 -P5
se_rg_card_flip.mid: -E -R50 -G_frlg_sfx -P5
se_rg_card_flipping.mid: -E -R50 -G_frlg_sfx -P5
se_rg_card_open.mid: -E -R50 -G_frlg_sfx -V112 -P5
se_rg_deoxys_move.mid: -E -R50 -G_frlg_sfx -V080 -P5
se_rg_door.mid: -E -R50 -G_frlg_sfx -V100 -P5
se_rg_help_close.mid: -E -R50 -G_frlg_sfx -V095 -P5
se_rg_help_error.mid: -E -R50 -G_frlg_sfx -V125 -P5
se_rg_help_open.mid: -E -R50 -G_frlg_sfx -V096 -P5
se_rg_poke_jump_failure.mid: -E -R50 -G_rs_sfx_1 -P5
se_rg_poke_jump_success.mid: -E -R50 -G_rs_sfx_2 -V110 -P5
se_rg_shop.mid: -E -R50 -G_frlg_sfx -V080 -P5
se_rg_ss_anne_horn.mid: -E -R50 -G_frlg_sfx -V096 -P5
se_rotating_gate.mid: -E -R50 -G_rs_sfx_2 -V090 -P4
se_roulette_ball.mid: -E -R50 -G_rs_sfx_2 -V110 -P2
se_roulette_ball2.mid: -E -R50 -G_rs_sfx_2 -V110 -P2
se_save.mid: -E -R50 -G_rs_sfx_2 -V080 -P5
se_select.mid: -E -R50 -G_rs_sfx_1 -V080 -P5
se_shiny.mid: -E -R50 -G_rs_sfx_2 -V095 -P5
se_ship.mid: -E -R50 -G_rs_sfx_1 -V075 -P4
se_shop.mid: -E -R50 -G_rs_sfx_1 -V090 -P5
se_sliding_door.mid: -E -R50 -G_rs_sfx_2 -V095 -P4
se_success.mid: -E -R50 -G_rs_sfx_1 -V080 -P4
se_sudowoodo_shake.mid: -E -R50 -G_frlg_sfx -V077 -P5
se_super_effective.mid: -E -R50 -G_rs_sfx_1 -V110 -P5
se_switch.mid: -E -R50 -G_rs_sfx_1 -V100 -P4
se_taillow_wing_flap.mid: -E -R50 -G_rs_sfx_2 -V105 -P5
se_thunder.mid: -E -R50 -G_rs_sfx_2 -V110 -P3
se_thunder2.mid: -E -R50 -G_rs_sfx_2 -V110 -P3
se_thunderstorm_stop.mid: -E -R50 -G_rs_sfx_2 -V080 -P2
se_thunderstorm.mid: -E -R50 -G_rs_sfx_2 -V080 -P2
se_truck_door.mid: -E -R50 -G_rs_sfx_2 -V110 -P4
se_truck_move.mid: -E -R50 -G_rs_sfx_2 -P4
se_truck_stop.mid: -E -R50 -G_rs_sfx_2 -P4
se_truck_unload.mid: -E -R50 -G_rs_sfx_1 -P4
se_u.mid: -E -R50 -G_rs_sfx_2 -P4
se_unlock.mid: -E -R50 -G_rs_sfx_2 -V100 -P4
se_use_item.mid: -E -R50 -G_rs_sfx_1 -V100 -P5
se_vend.mid: -E -R50 -G_rs_sfx_2 -V110 -P4
se_warp_in.mid: -E -R50 -G_rs_sfx_1 -V090 -P4
se_warp_out.mid: -E -R50 -G_rs_sfx_1 -V090 -P4

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_dex_page_grp, voicegroup127
.equ se_dex_page_grp, voicegroup_rs_sfx_1
.equ se_dex_page_pri, 5
.equ se_dex_page_rev, reverb_set+50
.equ se_dex_page_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_dex_scroll_grp, voicegroup127
.equ se_dex_scroll_grp, voicegroup_rs_sfx_1
.equ se_dex_scroll_pri, 5
.equ se_dex_scroll_rev, reverb_set+50
.equ se_dex_scroll_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_absorb_grp, voicegroup128
.equ se_m_absorb_grp, voicegroup_rs_sfx_2
.equ se_m_absorb_pri, 4
.equ se_m_absorb_rev, reverb_set+50
.equ se_m_absorb_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_absorb_2_grp, voicegroup128
.equ se_m_absorb_2_grp, voicegroup_rs_sfx_2
.equ se_m_absorb_2_pri, 4
.equ se_m_absorb_2_rev, reverb_set+50
.equ se_m_absorb_2_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_acid_armor_grp, voicegroup128
.equ se_m_acid_armor_grp, voicegroup_rs_sfx_2
.equ se_m_acid_armor_pri, 4
.equ se_m_acid_armor_rev, reverb_set+50
.equ se_m_acid_armor_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_attract_grp, voicegroup128
.equ se_m_attract_grp, voicegroup_rs_sfx_2
.equ se_m_attract_pri, 4
.equ se_m_attract_rev, reverb_set+50
.equ se_m_attract_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_attract2_grp, voicegroup128
.equ se_m_attract2_grp, voicegroup_rs_sfx_2
.equ se_m_attract2_pri, 4
.equ se_m_attract2_rev, reverb_set+50
.equ se_m_attract2_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_barrier_grp, voicegroup128
.equ se_m_barrier_grp, voicegroup_rs_sfx_2
.equ se_m_barrier_pri, 4
.equ se_m_barrier_rev, reverb_set+50
.equ se_m_barrier_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_baton_pass_grp, voicegroup128
.equ se_m_baton_pass_grp, voicegroup_rs_sfx_2
.equ se_m_baton_pass_pri, 4
.equ se_m_baton_pass_rev, reverb_set+50
.equ se_m_baton_pass_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_belly_drum_grp, voicegroup128
.equ se_m_belly_drum_grp, voicegroup_rs_sfx_2
.equ se_m_belly_drum_pri, 4
.equ se_m_belly_drum_rev, reverb_set+50
.equ se_m_belly_drum_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_bite_grp, voicegroup128
.equ se_m_bite_grp, voicegroup_rs_sfx_2
.equ se_m_bite_pri, 4
.equ se_m_bite_rev, reverb_set+50
.equ se_m_bite_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_blizzard_grp, voicegroup128
.equ se_m_blizzard_grp, voicegroup_rs_sfx_2
.equ se_m_blizzard_pri, 4
.equ se_m_blizzard_rev, reverb_set+50
.equ se_m_blizzard_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_blizzard2_grp, voicegroup128
.equ se_m_blizzard2_grp, voicegroup_rs_sfx_2
.equ se_m_blizzard2_pri, 4
.equ se_m_blizzard2_rev, reverb_set+50
.equ se_m_blizzard2_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_bonemerang_grp, voicegroup128
.equ se_m_bonemerang_grp, voicegroup_rs_sfx_2
.equ se_m_bonemerang_pri, 4
.equ se_m_bonemerang_rev, reverb_set+50
.equ se_m_bonemerang_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_brick_break_grp, voicegroup128
.equ se_m_brick_break_grp, voicegroup_rs_sfx_2
.equ se_m_brick_break_pri, 4
.equ se_m_brick_break_rev, reverb_set+50
.equ se_m_brick_break_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_bubble_grp, voicegroup128
.equ se_m_bubble_grp, voicegroup_rs_sfx_2
.equ se_m_bubble_pri, 4
.equ se_m_bubble_rev, reverb_set+50
.equ se_m_bubble_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_bubble2_grp, voicegroup128
.equ se_m_bubble2_grp, voicegroup_rs_sfx_2
.equ se_m_bubble2_pri, 4
.equ se_m_bubble2_rev, reverb_set+50
.equ se_m_bubble2_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_bubble3_grp, voicegroup128
.equ se_m_bubble3_grp, voicegroup_rs_sfx_2
.equ se_m_bubble3_pri, 4
.equ se_m_bubble3_rev, reverb_set+50
.equ se_m_bubble3_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_bubble_beam_grp, voicegroup128
.equ se_m_bubble_beam_grp, voicegroup_rs_sfx_2
.equ se_m_bubble_beam_pri, 4
.equ se_m_bubble_beam_rev, reverb_set+50
.equ se_m_bubble_beam_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_bubble_beam2_grp, voicegroup128
.equ se_m_bubble_beam2_grp, voicegroup_rs_sfx_2
.equ se_m_bubble_beam2_pri, 4
.equ se_m_bubble_beam2_rev, reverb_set+50
.equ se_m_bubble_beam2_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_charge_grp, voicegroup128
.equ se_m_charge_grp, voicegroup_rs_sfx_2
.equ se_m_charge_pri, 4
.equ se_m_charge_rev, reverb_set+50
.equ se_m_charge_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_charm_grp, voicegroup128
.equ se_m_charm_grp, voicegroup_rs_sfx_2
.equ se_m_charm_pri, 4
.equ se_m_charm_rev, reverb_set+50
.equ se_m_charm_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_confuse_ray_grp, voicegroup128
.equ se_m_confuse_ray_grp, voicegroup_rs_sfx_2
.equ se_m_confuse_ray_pri, 4
.equ se_m_confuse_ray_rev, reverb_set+50
.equ se_m_confuse_ray_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_cosmic_power_grp, voicegroup128
.equ se_m_cosmic_power_grp, voicegroup_rs_sfx_2
.equ se_m_cosmic_power_pri, 4
.equ se_m_cosmic_power_rev, reverb_set+50
.equ se_m_cosmic_power_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_crabhammer_grp, voicegroup128
.equ se_m_crabhammer_grp, voicegroup_rs_sfx_2
.equ se_m_crabhammer_pri, 4
.equ se_m_crabhammer_rev, reverb_set+50
.equ se_m_crabhammer_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_detect_grp, voicegroup128
.equ se_m_detect_grp, voicegroup_rs_sfx_2
.equ se_m_detect_pri, 4
.equ se_m_detect_rev, reverb_set+50
.equ se_m_detect_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_dig_grp, voicegroup128
.equ se_m_dig_grp, voicegroup_rs_sfx_2
.equ se_m_dig_pri, 4
.equ se_m_dig_rev, reverb_set+50
.equ se_m_dig_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_dive_grp, voicegroup128
.equ se_m_dive_grp, voicegroup_rs_sfx_2
.equ se_m_dive_pri, 4
.equ se_m_dive_rev, reverb_set+50
.equ se_m_dive_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_dizzy_punch_grp, voicegroup128
.equ se_m_dizzy_punch_grp, voicegroup_rs_sfx_2
.equ se_m_dizzy_punch_pri, 4
.equ se_m_dizzy_punch_rev, reverb_set+50
.equ se_m_dizzy_punch_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_double_team_grp, voicegroup128
.equ se_m_double_team_grp, voicegroup_rs_sfx_2
.equ se_m_double_team_pri, 4
.equ se_m_double_team_rev, reverb_set+50
.equ se_m_double_team_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_dragon_rage_grp, voicegroup128
.equ se_m_dragon_rage_grp, voicegroup_rs_sfx_2
.equ se_m_dragon_rage_pri, 4
.equ se_m_dragon_rage_rev, reverb_set+50
.equ se_m_dragon_rage_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_earthquake_grp, voicegroup128
.equ se_m_earthquake_grp, voicegroup_rs_sfx_2
.equ se_m_earthquake_pri, 4
.equ se_m_earthquake_rev, reverb_set+50
.equ se_m_earthquake_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_ember_grp, voicegroup128
.equ se_m_ember_grp, voicegroup_rs_sfx_2
.equ se_m_ember_pri, 4
.equ se_m_ember_rev, reverb_set+50
.equ se_m_ember_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_encore_grp, voicegroup128
.equ se_m_encore_grp, voicegroup_rs_sfx_2
.equ se_m_encore_pri, 4
.equ se_m_encore_rev, reverb_set+50
.equ se_m_encore_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_encore2_grp, voicegroup128
.equ se_m_encore2_grp, voicegroup_rs_sfx_2
.equ se_m_encore2_pri, 4
.equ se_m_encore2_rev, reverb_set+50
.equ se_m_encore2_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_explosion_grp, voicegroup128
.equ se_m_explosion_grp, voicegroup_rs_sfx_2
.equ se_m_explosion_pri, 4
.equ se_m_explosion_rev, reverb_set+50
.equ se_m_explosion_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_faint_attack_grp, voicegroup128
.equ se_m_faint_attack_grp, voicegroup_rs_sfx_2
.equ se_m_faint_attack_pri, 4
.equ se_m_faint_attack_rev, reverb_set+50
.equ se_m_faint_attack_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_flame_wheel_grp, voicegroup128
.equ se_m_flame_wheel_grp, voicegroup_rs_sfx_2
.equ se_m_flame_wheel_pri, 4
.equ se_m_flame_wheel_rev, reverb_set+50
.equ se_m_flame_wheel_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_flame_wheel2_grp, voicegroup128
.equ se_m_flame_wheel2_grp, voicegroup_rs_sfx_2
.equ se_m_flame_wheel2_pri, 4
.equ se_m_flame_wheel2_rev, reverb_set+50
.equ se_m_flame_wheel2_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_flamethrower_grp, voicegroup128
.equ se_m_flamethrower_grp, voicegroup_rs_sfx_2
.equ se_m_flamethrower_pri, 4
.equ se_m_flamethrower_rev, reverb_set+50
.equ se_m_flamethrower_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_flatter_grp, voicegroup128
.equ se_m_flatter_grp, voicegroup_rs_sfx_2
.equ se_m_flatter_pri, 4
.equ se_m_flatter_rev, reverb_set+50
.equ se_m_flatter_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_giga_drain_grp, voicegroup128
.equ se_m_giga_drain_grp, voicegroup_rs_sfx_2
.equ se_m_giga_drain_pri, 4
.equ se_m_giga_drain_rev, reverb_set+50
.equ se_m_giga_drain_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_grasswhistle_grp, voicegroup128
.equ se_m_grasswhistle_grp, voicegroup_rs_sfx_2
.equ se_m_grasswhistle_pri, 4
.equ se_m_grasswhistle_rev, reverb_set+50
.equ se_m_grasswhistle_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_hail_grp, voicegroup128
.equ se_m_hail_grp, voicegroup_rs_sfx_2
.equ se_m_hail_pri, 4
.equ se_m_hail_rev, reverb_set+50
.equ se_m_hail_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_harden_grp, voicegroup128
.equ se_m_harden_grp, voicegroup_rs_sfx_2
.equ se_m_harden_pri, 4
.equ se_m_harden_rev, reverb_set+50
.equ se_m_harden_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_haze_grp, voicegroup128
.equ se_m_haze_grp, voicegroup_rs_sfx_2
.equ se_m_haze_pri, 4
.equ se_m_haze_rev, reverb_set+50
.equ se_m_haze_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_heal_bell_grp, voicegroup128
.equ se_m_heal_bell_grp, voicegroup_rs_sfx_2
.equ se_m_heal_bell_pri, 4
.equ se_m_heal_bell_rev, reverb_set+50
.equ se_m_heal_bell_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_heat_wave_grp, voicegroup128
.equ se_m_heat_wave_grp, voicegroup_rs_sfx_2
.equ se_m_heat_wave_pri, 4
.equ se_m_heat_wave_rev, reverb_set+50
.equ se_m_heat_wave_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_hydro_pump_grp, voicegroup128
.equ se_m_hydro_pump_grp, voicegroup_rs_sfx_2
.equ se_m_hydro_pump_pri, 4
.equ se_m_hydro_pump_rev, reverb_set+50
.equ se_m_hydro_pump_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_hyper_beam_grp, voicegroup128
.equ se_m_hyper_beam_grp, voicegroup_rs_sfx_2
.equ se_m_hyper_beam_pri, 4
.equ se_m_hyper_beam_rev, reverb_set+50
.equ se_m_hyper_beam_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_hyper_beam2_grp, voicegroup128
.equ se_m_hyper_beam2_grp, voicegroup_rs_sfx_2
.equ se_m_hyper_beam2_pri, 4
.equ se_m_hyper_beam2_rev, reverb_set+50
.equ se_m_hyper_beam2_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_icy_wind_grp, voicegroup128
.equ se_m_icy_wind_grp, voicegroup_rs_sfx_2
.equ se_m_icy_wind_pri, 4
.equ se_m_icy_wind_rev, reverb_set+50
.equ se_m_icy_wind_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_lick_grp, voicegroup128
.equ se_m_lick_grp, voicegroup_rs_sfx_2
.equ se_m_lick_pri, 4
.equ se_m_lick_rev, reverb_set+50
.equ se_m_lick_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_lock_on_grp, voicegroup128
.equ se_m_lock_on_grp, voicegroup_rs_sfx_2
.equ se_m_lock_on_pri, 4
.equ se_m_lock_on_rev, reverb_set+50
.equ se_m_lock_on_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_metronome_grp, voicegroup128
.equ se_m_metronome_grp, voicegroup_rs_sfx_2
.equ se_m_metronome_pri, 4
.equ se_m_metronome_rev, reverb_set+50
.equ se_m_metronome_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_milk_drink_grp, voicegroup128
.equ se_m_milk_drink_grp, voicegroup_rs_sfx_2
.equ se_m_milk_drink_pri, 4
.equ se_m_milk_drink_rev, reverb_set+50
.equ se_m_milk_drink_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_minimize_grp, voicegroup128
.equ se_m_minimize_grp, voicegroup_rs_sfx_2
.equ se_m_minimize_pri, 4
.equ se_m_minimize_rev, reverb_set+50
.equ se_m_minimize_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_mist_grp, voicegroup128
.equ se_m_mist_grp, voicegroup_rs_sfx_2
.equ se_m_mist_pri, 4
.equ se_m_mist_rev, reverb_set+50
.equ se_m_mist_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_moonlight_grp, voicegroup128
.equ se_m_moonlight_grp, voicegroup_rs_sfx_2
.equ se_m_moonlight_pri, 4
.equ se_m_moonlight_rev, reverb_set+50
.equ se_m_moonlight_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_morning_sun_grp, voicegroup128
.equ se_m_morning_sun_grp, voicegroup_rs_sfx_2
.equ se_m_morning_sun_pri, 5
.equ se_m_morning_sun_rev, reverb_set+50
.equ se_m_morning_sun_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_nightmare_grp, voicegroup128
.equ se_m_nightmare_grp, voicegroup_rs_sfx_2
.equ se_m_nightmare_pri, 4
.equ se_m_nightmare_rev, reverb_set+50
.equ se_m_nightmare_mvl, 127

View File

@ -1,6 +1,6 @@
.include "MPlayDef.s"
.equ se_m_perish_song_grp, voicegroup128
.equ se_m_perish_song_grp, voicegroup_rs_sfx_2
.equ se_m_perish_song_pri, 4
.equ se_m_perish_song_rev, reverb_set+50
.equ se_m_perish_song_mvl, 127

Some files were not shown because too many files have changed in this diff Show More