Sound Effect Naming, kickback naming, catch state enum (#211)
Some checks failed
CI / build (push) Has been cancelled

* kickback naming, catch state enum

* sound renaming through 98
This commit is contained in:
Retnuhytnuob 2026-03-19 17:59:21 -05:00 committed by GitHub
parent 69f931d646
commit 77c628e0ee
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
83 changed files with 2051 additions and 2013 deletions

View File

@ -1445,8 +1445,8 @@ gPelipper_Gfx:: @ 0x084BB16C
.incbin "graphics/stage/sapphire/pelipper.4bpp"
.incbin "graphics/stage/sapphire/charger.4bpp"
gCatchCounterDigitTilesGfx:: @ 0x084C00EC
.incbin "baserom.gba", 0x4C00EC, 0x700
gChargeFillIndicator_Gfx:: @ 0x084C00EC
.incbin "graphics/stage/main/charge_fill_indicator.4bpp"
gPikaSaverTilesGfx:: @ 0x084C07EC
.incbin "baserom.gba", 0x4C07EC, 0x480
@ -1613,14 +1613,14 @@ gOptionsBGMList:: @ 0x08527D22
gOptionsSEList:: @ 0x08527D66
.2byte SE_MENU_SELECT, SE_MENU_CANCEL, SE_MENU_MOVE, SE_MENU_POPUP_OPEN, SE_MENU_POPUP_CLOSE
.2byte SE_SCORE_ENTRY_A_B_MOVE, SE_SCORE_ENTRY_LETTER_CHANGE, SE_UNKNOWN_0x6D, SE_FLIPPER_PRESSED, SE_SLINGSHOT_HIT
.2byte SE_POKEMON_CATCH_HIT, SE_UNKNOWN_0x75, SE_TRIGGER_BUTTON_HIT, SE_WALL_HIT, SE_TILT_TRIGGERED
.2byte SE_UNKNOWN_0x79, SE_UNKNOWN_0x7A, SE_UNKNOWN_0x7B, SE_UNKNOWN_0x7C, SE_UNKNOWN_0x7E
.2byte SE_UNKNOWN_0x80, SE_UNKNOWN_0x81, SE_EVO_SELECTION_MOVE, SE_EVO_SELECTION_CONFIRM, SE_UNKNOWN_0x84
.2byte SE_UNKNOWN_0x85, SE_UNKNOWN_0x86, SE_UNKNOWN_0x87, SE_FAILURE, SE_UNKNOWN_0x8B
.2byte SE_UNKNOWN_0x8C, SE_UNKNOWN_0x8D, SE_UNKNOWN_0x8E, SE_UNKNOWN_0x8F, SE_UNKNOWN_0x91
.2byte SE_UNKNOWN_0x92, SE_UNKNOWN_0x93, SE_UNKNOWN_0x94, SE_UNKNOWN_0x95, SE_UNKNOWN_0x96
.2byte SE_UNKNOWN_0x97, SE_UNKNOWN_0x98, SE_UNKNOWN_0x99, SE_UNKNOWN_0x9A, SE_UNKNOWN_0x9B
.2byte SE_SCORE_ENTRY_A_B_MOVE, SE_SCORE_ENTRY_LETTER_CHANGE, SE_DEX_INFO_FIELD_SELECT_MOVE, SE_FLIPPER_PRESSED, SE_SLINGSHOT_HIT
.2byte SE_POKEMON_CATCH_HIT, SE_PICHU_IN_POSITION_CHIRP, SE_TRIGGER_BUTTON_HIT, SE_WALL_HIT, SE_TILT_TRIGGERED
.2byte SE_PIKA_SPINNER_CLACK, SE_PIKA_FULL_CHARGE_1_UP, SE_UNKNOWN_0x7B, SE_KICKBACK_THUNDERWAVE, SE_COIN_COLLECTED
.2byte SE_CENTER_HOLE_EJECT, SE_ROULETTE_TICK, SE_EVO_SELECTION_MOVE, SE_EVO_SELECTION_CONFIRM, SE_EVO_ITEM_APPEAR
.2byte SE_EVO_ITEM_FINISH_APPEAR, SE_EVO_ITEM_COLLECTED, SE_BALL_UPGRADE, SE_FAILURE, SE_CATCH_EVO_BANNER
.2byte SE_CATCH_TILE_REVEAL, SE_CATCH_ALL_REVEAL_LIGHTNING, SE_CATCH_ALL_REVEAL_SHATTER, SE_SHOP_LIST_REVEAL, SE_BONUS_SCORE_TALLIED
.2byte SE_HATCH_FLOURISH, SE_AREA_ROULETTE_SELECTED, SE_BALL_SAVED, SE_LATI_DELIVERY, SE_SAVER_PLUNGER_DROP
.2byte SE_TRAVEL_PAINTER_FLIGHT, SE_TRAVEL_PAINTER_PAINTS, SE_UNKNOWN_0x99, SE_UNKNOWN_0x9A, SE_UNKNOWN_0x9B
.2byte SE_UNKNOWN_0x9C, SE_UNKNOWN_0x9D, SE_UNKNOWN_0x9E, SE_WARP, SE_UNKNOWN_0xA1
.2byte SE_UNKNOWN_0xA2, SE_UNKNOWN_0xA3, SE_UNKNOWN_0xA4, SE_UNKNOWN_0xA5, SE_UNKNOWN_0xA6
.2byte SE_UNKNOWN_0xA7, SE_PIKA_CHARGE_DO, SE_PIKA_CHARGE_RE, SE_PIKA_CHARGE_MI, SE_PIKA_CHARGE_FA
@ -1649,7 +1649,7 @@ gOptionsSEList:: @ 0x08527D66
.2byte SE_UNKNOWN_0x13B, SE_UNKNOWN_0x13C, SE_UNKNOWN_0x13D, SE_UNKNOWN_0x13E, SE_UNKNOWN_0x140
.2byte SE_JIRACHI_MOVE, SE_JIRACHI_HIT, SE_UNKNOWN_0x146, SE_UNKNOWN_0x147, SE_UNKNOWN_0x148
.2byte SE_UNKNOWN_0x149, SE_WHISCASH_EARTHQUAKE, SE_HIGH_SCORE_EARNED, SE_UNKNOWN_0x14B, SE_UNKNOWN_0x71
.2byte SE_UNKNOWN_0xB1, SE_UNKNOWN_0xB2, SE_UNKNOWN_0xB3, SE_UNKNOWN_0x142
.2byte SE_PIKACHU_KICKBACK, SE_UNKNOWN_0xB2, SE_PICHU_KICKBACK, SE_PIKA_NO_KICKBACK
gDefaultButtonConfigs:: @ 0x08527ED6

View File

@ -4131,11 +4131,19 @@ gCatchOverlayAnimData:: @ 0x086ADEE0
gPikaSaverAnimFrameTable:: @ 0x086ADF48
.incbin "baserom.gba", 0x6ADF48, 0x42
gCatchHoleXPositions:: @ 0x086ADF8A
.incbin "baserom.gba", 0x6ADF8A, 0x6
gOutlaneCenterXPositions:: @ 0x086ADF8A
.2byte 33,206
.align 2,0
gPikaSaverWaypoints:: @ 0x086ADF90
.incbin "baserom.gba", 0x6ADF90, 0x38
@vector32 positions
.4byte 1320, 4480 @ Start Walk In
.4byte 1350, 4260
.4byte 2040, 3860
.4byte 2100, 3960 @ Home in Chute
.4byte 1930, 3860 @ Start Walk Out
.4byte 1340, 4260
.4byte 1320, 4480
gArrowBounceOffsets:: @ 0x086ADFC8
.incbin "baserom.gba", 0x6ADFC8, 0xC

View File

@ -3825,48 +3825,48 @@ gDirectSound_086885EC:: @ 0x086885EC
.include "sound/songs/se_score_entry_a_b_move.s"
.include "sound/songs/se_score_entry_letter_change.s"
.include "sound/songs/se_unk_6c.s"
.include "sound/songs/se_unk_6d.s"
.include "sound/songs/se_dex_info_field_select_move.s"
.include "sound/songs/se_unk_6e.s"
.include "sound/songs/se_unk_6f.s"
.include "sound/songs/se_unk_71.s"
.include "sound/songs/se_flipper_pressed.s"
.include "sound/songs/se_slingshot_hit.s"
.include "sound/songs/se_pokemon_catch_hit.s"
.include "sound/songs/se_unk_75.s"
.include "sound/songs/se_pichu_in_position_chirp.s"
.include "sound/songs/se_trigger_button_hit.s"
.include "sound/songs/se_wall_hit.s"
.include "sound/songs/se_tilt_triggered.s"
.include "sound/songs/se_unk_79.s"
.include "sound/songs/se_unk_7a.s"
.include "sound/songs/se_pika_spinner_clack.s"
.include "sound/songs/se_pika_full_charge_1_up.s"
.include "sound/songs/se_unk_7b.s"
.include "sound/songs/se_unk_7c.s"
.include "sound/songs/se_kickback_thunderwave.s"
.include "sound/songs/se_unk_7d.s"
.include "sound/songs/se_unk_7e.s"
.include "sound/songs/se_coin_collected.s"
.include "sound/songs/se_unk_7f.s"
.include "sound/songs/se_unk_80.s"
.include "sound/songs/se_unk_81.s"
.include "sound/songs/se_center_hole_eject.s"
.include "sound/songs/se_roulette_tick.s"
.include "sound/songs/se_evo_selection_move.s"
.include "sound/songs/se_evo_selection_confirm.s"
.include "sound/songs/se_unk_84.s"
.include "sound/songs/se_unk_85.s"
.include "sound/songs/se_unk_86.s"
.include "sound/songs/se_unk_87.s"
.include "sound/songs/se_evo_item_appear.s"
.include "sound/songs/se_evo_item_finish_appear.s"
.include "sound/songs/se_evo_item_collected.s"
.include "sound/songs/se_ball_upgrade.s"
.include "sound/songs/se_unk_88.s"
.include "sound/songs/se_unk_89.s"
.include "sound/songs/se_failure.s"
.include "sound/songs/se_unk_8b.s"
.include "sound/songs/se_unk_8c.s"
.include "sound/songs/se_unk_8d.s"
.include "sound/songs/se_unk_8e.s"
.include "sound/songs/se_unk_8f.s"
.include "sound/songs/se_unk_91.s"
.include "sound/songs/se_unk_92.s"
.include "sound/songs/se_unk_93.s"
.include "sound/songs/se_unk_94.s"
.include "sound/songs/se_unk_95.s"
.include "sound/songs/se_unk_96.s"
.include "sound/songs/se_unk_97.s"
.include "sound/songs/se_unk_98.s"
.include "sound/songs/se_catch_evo_banner.s"
.include "sound/songs/se_catch_tile_reveal.s"
.include "sound/songs/se_catch_all_reveal_lightning.s"
.include "sound/songs/se_catch_all_reveal_shatter.s"
.include "sound/songs/se_shop_list_reveal.s"
.include "sound/songs/se_bonus_score_tallied.s"
.include "sound/songs/se_hatch_flourish.s"
.include "sound/songs/se_area_roulette_selected.s"
.include "sound/songs/se_ball_saved.s"
.include "sound/songs/se_lati_delivery.s"
.include "sound/songs/se_saver_plunger_drop.s"
.include "sound/songs/se_travel_painter_flight.s"
.include "sound/songs/se_travel_painter_paints.s"
.include "sound/songs/se_unk_99.s"
.include "sound/songs/se_unk_9a.s"
.include "sound/songs/se_unk_9b.s"
@ -3891,9 +3891,9 @@ gDirectSound_086885EC:: @ 0x086885EC
.include "sound/songs/se_pika_charge_ti.s"
.include "sound/songs/se_pika_charge_high_do.s"
.include "sound/songs/se_unk_b0.s"
.include "sound/songs/se_unk_b1.s"
.include "sound/songs/se_pikachu_kickback.s"
.include "sound/songs/se_unk_b2.s"
.include "sound/songs/se_unk_b3.s"
.include "sound/songs/se_pichu_kickback.s"
.include "sound/songs/se_unk_b4.s"
.include "sound/songs/se_ruby_bumper_hit.s"
.include "sound/songs/se_unk_b7.s"
@ -4011,7 +4011,7 @@ gDirectSound_086885EC:: @ 0x086885EC
.include "sound/songs/se_unk_13e.s"
.include "sound/songs/se_unk_13f.s"
.include "sound/songs/se_unk_140.s"
.include "sound/songs/se_unk_142.s"
.include "sound/songs/se_pika_no_kickback.s"
.include "sound/songs/se_jirachi_move.s"
.include "sound/songs/se_jirachi_hit.s"
.include "sound/songs/se_unk_146.s"

Binary file not shown.

After

Width:  |  Height:  |  Size: 521 B

View File

@ -59,53 +59,53 @@
#define SE_MENU_POPUP_CLOSE 0x69 // SE 5; Yellow window popup disappears (eg: pokedox transfer confirmation)
#define SE_SCORE_ENTRY_A_B_MOVE 0x6A // SE 6; Drum?
#define SE_SCORE_ENTRY_LETTER_CHANGE 0x6B // SE 7; RS: Pokédex scroll
#define SE_UNKNOWN_0x6C 0x6C // RS: Bike hop
#define SE_UNKNOWN_0x6D 0x6D // SE 8
#define SE_UNKNOWN_0x6E 0x6E // same as SE1
#define SE_UNKNOWN_0x6F 0x6F // same as SE2
#define SE_UNKNOWN_0x6C 0x6C // Unused: RS: Bike hop
#define SE_DEX_INFO_FIELD_SELECT_MOVE 0x6D // SE 8; bonus/normal field selection, dex info page
#define SE_UNKNOWN_0x6E 0x6E // Unused: same as SE1
#define SE_UNKNOWN_0x6F 0x6F // Unused: same as SE2
#define SE_UNKNOWN_0x70 0x70 // No Sound
#define SE_UNKNOWN_0x71 0x71 // Duplicated of SE 70 *thwip*
#define SE_FLIPPER_PRESSED 0x72 // SE9 Flipper
#define SE_SLINGSHOT_HIT 0x73 // SE10 Triangle bumper hit
#define SE_POKEMON_CATCH_HIT 0x74 // SE11 Pokemon Catch hit
#define SE_UNKNOWN_0x75 0x75 // SE12 *high chirp*
#define SE_PICHU_IN_POSITION_CHIRP 0x75 // SE12 *high chirp*
#define SE_TRIGGER_BUTTON_HIT 0x76 // SE13 Trigger button hit
#define SE_WALL_HIT 0x77 // SE14 ball hits wall
#define SE_TILT_TRIGGERED 0x78 // SE15 *metal gate bounce?*
#define SE_UNKNOWN_0x79 0x79 // SE16 *ball flat clack*
#define SE_UNKNOWN_0x7A 0x7A // SE17 *high trill - radar*
#define SE_UNKNOWN_0x7B 0x7B // SE18 Sustained machine noise. - Same as 95
#define SE_UNKNOWN_0x7C 0x7C // SE19 *extended stable electric tone* (SE153 has a short form)
#define SE_PIKA_SPINNER_CLACK 0x79 // SE16 *ball flat clack*
#define SE_PIKA_FULL_CHARGE_1_UP 0x7A // SE17 *high trill - radar*
#define SE_UNKNOWN_0x7B 0x7B // SE18 Otherwise unused. Sustained machine noise. - Same as 95
#define SE_KICKBACK_THUNDERWAVE 0x7C // SE19 *extended stable electric tone* (SE153 has a short form)
#define SE_UNKNOWN_0x7D 0x7D // ?? *Kerplunk* ??
#define SE_UNKNOWN_0x7E 0x7E // SE20 Same as SE1
#define SE_COIN_COLLECTED 0x7E // SE20 Same as SE1
#define SE_UNKNOWN_0x7F 0x7F // ?? Questioning Cry??
#define SE_UNKNOWN_0x80 0x80 // SE21 *flying slash*
#define SE_UNKNOWN_0x81 0x81 // SE22 *Pokeball hit ground; low pitched related to SE47*
#define SE_CENTER_HOLE_EJECT 0x80 // SE21 *flying slash*
#define SE_ROULETTE_TICK 0x81 // SE22 *Pokeball hit ground; low pitched related to SE47*
#define SE_EVO_SELECTION_MOVE 0x82 // SE23 Evo Selection list move
#define SE_EVO_SELECTION_CONFIRM 0x83 // SE24 Evo Selection confirmed
#define SE_UNKNOWN_0x84 0x84 // SE25 Evo Symbol Spawned; Ball Respawn - Bonus board
#define SE_UNKNOWN_0x85 0x85 // SE26 Evo Symbol finished spawning (Same as SE43)
#define SE_UNKNOWN_0x86 0x86 // SE27 Evo Symbol collected
#define SE_UNKNOWN_0x87 0x87 // SE28 *Pokeball/power upgrade? *
#define SE_EVO_ITEM_APPEAR 0x84 // SE25 Evo Symbol Spawned; Ball Respawn - Bonus board
#define SE_EVO_ITEM_FINISH_APPEAR 0x85 // SE26 Evo Symbol finished spawning (Same as SE43)
#define SE_EVO_ITEM_COLLECTED 0x86 // SE27 Evo Symbol collected
#define SE_BALL_UPGRADE 0x87 // *SE28 *Pokeball/power upgrade? *
#define SE_UNKNOWN_0x88 0x88 // ?? *Downward compliment to SE28* ??
#define SE_UNKNOWN_0x89 0x89 // ?? *Coin collect*??
#define SE_FAILURE 0x8A // SE29 Denied. ('Unable to select' in pokedex)
#define SE_UNKNOWN_0x8B 0x8B // SE30 Evo/Catch mode initiated
#define SE_UNKNOWN_0x8C 0x8C // SE31 Catch Tile Revealed (Same as 114, 129, 139, 151)
#define SE_UNKNOWN_0x8D 0x8D // SE32 *Descending roar*
#define SE_UNKNOWN_0x8E 0x8E // SE33 *Vibrating ting*
#define SE_UNKNOWN_0x8F 0x8F // SE34 *drum brush*
#define SE_CATCH_EVO_BANNER 0x8B // SE30 Evo/Catch mode initiated
#define SE_CATCH_TILE_REVEAL 0x8C // SE31 Catch Tile Revealed (Same as 114, 129, 139, 151)
#define SE_CATCH_ALL_REVEAL_LIGHTNING 0x8D // SE32 *Descending roar*
#define SE_CATCH_ALL_REVEAL_SHATTER 0x8E // SE33 *Vibrating ting*
#define SE_SHOP_LIST_REVEAL 0x8F // SE34 *drum brush*
#define SE_UNKNOWN_0x90 0x90 // No Sound
#define SE_UNKNOWN_0x91 0x91 // SE35 Bonus point tally finished; RS: Pokédex page change
#define SE_UNKNOWN_0x92 0x92 // SE36 Egg hatched flourish*
#define SE_UNKNOWN_0x93 0x93 // SE37 Duplicate of SE1 Menu Selection; RS: PokéNav turn on
#define SE_UNKNOWN_0x94 0x94 // SE38 Ball Sunk sound *Pokemon leaves ball/escape?* Same as SE163
#define SE_UNKNOWN_0x95 0x95 // SE39 Latias/Latios delivers ball to plunger
#define SE_UNKNOWN_0x96 0x96 // SE40 Launcher catches ball
#define SE_UNKNOWN_0x97 0x97 // SE41 *Hit closed door*
#define SE_UNKNOWN_0x98 0x98 // SE42 *Hit and enclose*
#define SE_UNKNOWN_0x99 0x99 // SE43 ?Launcher fully charged? Duplicate of SE26
#define SE_UNKNOWN_0x9A 0x9A // SE44 Pokemon being absorbed into ball (when catching)
#define SE_BONUS_SCORE_TALLIED 0x91 // SE35 Bonus point tally finished; RS: Pokédex page change
#define SE_HATCH_FLOURISH 0x92 // SE36 Egg hatched flourish*
#define SE_AREA_ROULETTE_SELECTED 0x93 // SE37 Duplicate of SE1 Menu Selection; RS: PokéNav turn on
#define SE_BALL_SAVED 0x94 // SE38 Ball Sunk sound *Pokemon leaves ball/escape?* Same as SE163
#define SE_LATI_DELIVERY 0x95 // SE39 Latias/Latios delivers ball to plunger
#define SE_SAVER_PLUNGER_DROP 0x96 // SE40 Launcher catches ball
#define SE_TRAVEL_PAINTER_FLIGHT 0x97 // SE41 Volbeat/Illumise flight
#define SE_TRAVEL_PAINTER_PAINTS 0x98 // SE42 Volbeat/Illumise painting new travel board
#define SE_UNKNOWN_0x99 0x99 // *SE43 Evo Arrow earned & (sapphire)pika charge already full - Duplicate of SE26S
#define SE_UNKNOWN_0x9A 0x9A // *SE44 Pokemon being absorbed into ball (when catching)
#define SE_UNKNOWN_0x9B 0x9B // SE45 *gusty wind landing*
#define SE_UNKNOWN_0x9C 0x9C // SE46 Pokemon entered Pokeball (when catching)
#define SE_UNKNOWN_0x9D 0x9D // SE47 Pokeball hit ground; High pitched related to 22
@ -128,9 +128,9 @@
#define SE_PIKA_CHARGE_TI 0xAE // SE63 Ti (Title pokemon pinball logo tones / ramp spin pikachu charger)
#define SE_PIKA_CHARGE_HIGH_DO 0xAF // SE64 Do (Title pokemon pinball logo tones / ramp spin pikachu charger)
#define SE_UNKNOWN_0xB0 0xB0 // SE65 *extended flight takeoff*
#define SE_UNKNOWN_0xB1 0xB1 // SE181 Pi~Ka CHU!
#define SE_PIKACHU_KICKBACK 0xB1 // SE181 Pi~Ka CHU!
#define SE_UNKNOWN_0xB2 0xB2 // SE182 Pika - pika - pi-ka
#define SE_UNKNOWN_0xB3 0xB3 // SE183 Pi~ Chu!
#define SE_PICHU_KICKBACK 0xB3 // SE183 Pi~ Chu!
#define SE_UNKNOWN_0xB4 0xB4 // ?? Duplicate of SE49
#define SE_UNKNOWN_0xB5 0xB5 // No Sound
#define SE_RUBY_BUMPER_HIT 0xB6 // SE66 *Puddle slap* (Hit lotad/chinchou/whiscash)
@ -177,7 +177,7 @@
#define SE_UNKNOWN_0xDF 0xDF // SE95 Sapphire board Hatch machine
#define SE_UNKNOWN_0xE0 0xE0 // SE96 Sapphire Lower Hatched Pokemon
#define SE_UNKNOWN_0xE1 0xE1 // SE97 *Close tailgate*
#define SE_UNKNOWN_0xE2 0xE2 // SE98 *Water 3*
#define SE_UNKNOWN_0xE2 0xE2 // *SE98 *Water 3*
#define SE_UNKNOWN_0xE3 0xE3 // SE99 Duplicate of SE68
#define SE_UNKNOWN_0xE4 0xE4 // SE100 *Bird Cry*
#define SE_UNKNOWN_0xE5 0xE5 // SE101 Duplicate of SE70
@ -203,26 +203,26 @@
#define SE_UNKNOWN_0xF9 0xF9 // SE117 Dusclops Captured
#define SE_UNKNOWN_0xFA 0xFA // *Muted Triangle tripple tap*
#define SE_UNKNOWN_0xFB 0xFB // No Sound
#define SE_UNKNOWN_0xFC 0xFC // SE118 Kecleon looks side (same as SE84)
#define SE_UNKNOWN_0xFD 0xFD // SE119 Kecleon Vanish (same as 109)
#define SE_UNKNOWN_0xFE 0xFE // SE120 Kecleon found exclamation
#define SE_UNKNOWN_0xFF 0xFF // SE121 Kecleon walk
#define SE_UNKNOWN_0x100 0x100 // SE122 Kecleon trip
#define SE_UNKNOWN_0x101 0x101 // SE123 Kecleon hit
#define SE_UNKNOWN_0x102 0x102 // SE124 Kecleon hits ground; Duplicate of 97
#define SE_UNKNOWN_0x103 0x103 // SE125 Kecleon surrenders
#define SE_UNKNOWN_0xFC 0xFC // *SE118 Kecleon looks side (same as SE84)
#define SE_UNKNOWN_0xFD 0xFD // *SE119 Kecleon Vanish (same as 109)
#define SE_UNKNOWN_0xFE 0xFE // *SE120 Kecleon found exclamation
#define SE_UNKNOWN_0xFF 0xFF // *SE121 Kecleon walk
#define SE_UNKNOWN_0x100 0x100 // *SE122 Kecleon trip
#define SE_UNKNOWN_0x101 0x101 // *SE123 Kecleon hit
#define SE_UNKNOWN_0x102 0x102 // *SE124 Kecleon hits ground; Duplicate of 97
#define SE_UNKNOWN_0x103 0x103 // *SE125 Kecleon surrenders
#define SE_KECLEON_TREE_HIT 0x104 // SE126 Kecleon tree hit
#define SE_KECLEON_SCOPE_FALL 0x105 // SE127 Package falls from tree; Duplicate of 105
#define SE_KECLEON_SCOPE_ACTIVATED 0x106 // SE128 Scope initiates
#define SE_UNKNOWN_0x107 0x107 // No Sound
#define SE_UNKNOWN_0x108 0x108 // No Sound
#define SE_UNKNOWN_0x109 0x109 // No Sound
#define SE_UNKNOWN_0x10A 0x10A // SE129 Kyogre Hit
#define SE_UNKNOWN_0x10B 0x10B // SE130 Kyogre Emerges / 'jumps'
#define SE_UNKNOWN_0x10C 0x10C // SE131 Kyogre Dives / jump landing
#define SE_UNKNOWN_0x10D 0x10D // SE132 Kyogre Create Whirlpool
#define SE_UNKNOWN_0x10E 0x10E // SE133 Kyogre Ice Breath ring
#define SE_UNKNOWN_0x10F 0x10F // SE134 *Whirlpool launches ball skyward*
#define SE_UNKNOWN_0x10A 0x10A // *SE129 Kyogre Hit
#define SE_UNKNOWN_0x10B 0x10B // *SE130 Kyogre Emerges / 'jumps'
#define SE_UNKNOWN_0x10C 0x10C // *SE131 Kyogre Dives / jump landing
#define SE_UNKNOWN_0x10D 0x10D // *SE132 Kyogre Create Whirlpool
#define SE_UNKNOWN_0x10E 0x10E // *SE133 Kyogre Ice Breath ring
#define SE_UNKNOWN_0x10F 0x10F // *SE134 *Whirlpool launches ball skyward*
#define SE_UNKNOWN_0x110 0x110 // SE135 Kyrogre freezes ball
#define SE_UNKNOWN_0x111 0x111 // SE136 Freeze escape hit
#define SE_UNKNOWN_0x112 0x112 // SE137 *Flash Frozen*
@ -231,14 +231,14 @@
#define SE_UNKNOWN_0x115 0x115 // No Sound
#define SE_UNKNOWN_0x116 0x116 // No Sound
#define SE_UNKNOWN_0x117 0x117 // No Sound
#define SE_UNKNOWN_0x118 0x118 // SE139 Groudon Hit (Same as 31, 114, 129, 151)
#define SE_UNKNOWN_0x118 0x118 // *SE139 Groudon Hit (Same as 31, 114, 129, 151)
#define SE_GROUDON_STEP 0x119 // SE140 Groudon Step
#define SE_UNKNOWN_0x11A 0x11A // SE141 *medium power hit*
#define SE_UNKNOWN_0x11B 0x11B // SE142 Groudon Lands
#define SE_UNKNOWN_0x11C 0x11C // SE143 *??Lava Splash?*
#define SE_UNKNOWN_0x11D 0x11D // SE144 Groudon Fire Ring
#define SE_UNKNOWN_0x11B 0x11B // *SE142 Groudon Lands
#define SE_UNKNOWN_0x11C 0x11C // *SE143 *??Lava Splash?*
#define SE_UNKNOWN_0x11D 0x11D // *SE144 Groudon Fire Ring
#define SE_UNKNOWN_0x11E 0x11E // SE145 *Bark?*
#define SE_UNKNOWN_0x11F 0x11F // SE146 *Sandstorm?*
#define SE_UNKNOWN_0x11F 0x11F // *SE146 *Sandstorm?*
#define SE_UNKNOWN_0x120 0x120 // SE147 *Door Slam*
#define SE_GROUDON_BOULDER_LAND 0x121 // SE148 Groudon Boulders Land/Hit
#define SE_GROUDON_DUSTORM_LIFT 0x122 // SE149 *Ground duststorm lift*
@ -262,18 +262,18 @@
#define SE_UNKNOWN_0x134 0x134 // SE160 *splash?*
#define SE_UNKNOWN_0x135 0x135 // SE161 *deeper splash*
#define SE_UNKNOWN_0x136 0x136 // SE162 *water engulf*
#define SE_UNKNOWN_0x137 0x137 // SE163 *Pokemon leaves ball/escape?* Same as 38
#define SE_UNKNOWN_0x138 0x138 // SE164 *Snare brush*
#define SE_UNKNOWN_0x139 0x139 // SE165 *Crowd cheer*
#define SE_UNKNOWN_0x137 0x137 // *SE163 *Pokemon leaves ball/escape?* Same as 38
#define SE_UNKNOWN_0x138 0x138 // *SE164 *Snare brush*
#define SE_UNKNOWN_0x139 0x139 // *SE165 *Crowd cheer*
#define SE_UNKNOWN_0x13A 0x13A // No Sound
#define SE_UNKNOWN_0x13B 0x13B // SE166 *Traffic whistle two blast*
#define SE_UNKNOWN_0x13C 0x13C // SE167 Hit Sealeo in bonus game *Thud*
#define SE_UNKNOWN_0x13D 0x13D // SE168 Sealeo nose bounce in bonus game (Same as 169)
#define SE_UNKNOWN_0x13B 0x13B // *SE166 *Traffic whistle two blast*
#define SE_UNKNOWN_0x13C 0x13C // *SE167 Hit Sealeo in bonus game *Thud*
#define SE_UNKNOWN_0x13D 0x13D // *SE168 Sealeo nose bounce in bonus game (Same as 169)
#define SE_UNKNOWN_0x13E 0x13E // SE169 Sealeo nose bounce in bonus game (Same as 168)
#define SE_UNKNOWN_0x13F 0x13F // *coin*
#define SE_UNKNOWN_0x140 0x140 // SE170 Spheal emerges from water
#define SE_UNKNOWN_0x141 0x141 // No Sound
#define SE_UNKNOWN_0x142 0x142 // SE184 Pika!
#define SE_PIKA_NO_KICKBACK 0x142 // *SE184 Pika!
#define SE_UNKNOWN_0x143 0x143 // No Sound
#define SE_JIRACHI_MOVE 0x144 // SE171 *Chime*
#define SE_JIRACHI_HIT 0x145 // SE172 *Rising success whistle*

View File

@ -0,0 +1,12 @@
#ifndef GUARD_CONSTANTS_MAIN_BOARD_H
#define GUARD_CONSTANTS_MAIN_BOARD_H
enum MainBoardTrapHoles{
NOT_TRAPPED = 0,
TRAP_CATCH_HOLE = 1,
TRAP_EGG_HOLE = 2,
TRAP_EVO_SHOP_HOLE = 3,
TRAP_CENTER_HOLE = 4,
};
#endif // GUARD_CONSTANTS_MAIN_BOARD_H

View File

@ -1,5 +1,6 @@
#ifndef GUARD_CONSTANTS_RUBY_STATES_H
#define GUARD_CONSTANTS_RUBY_STATES_H
#include "main_board.h"
enum RubyPondStates{
RUBY_POND_STATE_CHINCHOU_STAGGERED = 0,

View File

@ -0,0 +1,5 @@
#ifndef GUARD_CONSTANTS_SAPPHIRE_STATES_H
#define GUARD_CONSTANTS_SAPPHIRE_STATES_H
#include "main_board.h"
#endif //GUARD_CONSTANTS_SAPPHIRE_STATES_H

View File

@ -460,8 +460,8 @@ extern void DrawPikachuSpinner();
//extern ? UpdateGulpinBossState();
//extern ? UpdateSideBumperAnimation();
//extern ? DrawSideBumperSprites();
extern void UpdateCatchModeLogic();
extern void AnimateCreatureApproach();
extern void UpdateKickbackLogic();
extern void PichuArrivalSequence();
extern void ResetCatchState(s16);
//extern ? InitCatchTrigger();
//extern ? UpdateCatchTrigger();
@ -470,7 +470,7 @@ extern void FullCatchStateCleanup(void);
//extern ? UpdateBonusStageSelect();
extern void ShowBonusTrapSprite(void);
extern void AnimateBonusTrapSprite(void);
extern void AnimateCatchCounterDisplay();
extern void ProcessChargeIndicator();
//extern ? UpdateEvolutionShopSprite();
extern void RenderEvolutionUI(s16);
extern void AnimateCoinReward();

View File

@ -150,7 +150,7 @@ struct PinballGame
/*0x022*/ s8 collisionResponseType;
/*0x023*/ u8 collisionSurfaceType; // Holds the value of some enum state
/*0x024*/ s8 boardLayerDepth;
/*0x025*/ s8 ballCatchState;
/*0x025*/ s8 ballCatchState; // 0=Not caught, 1=Catch mode hole, 2=Egg Hatch Hole, 3=Evo Shop hole, 4=Center hole
/*0x026*/ u16 collisionCooldownTimer;
/*0x028*/ u16 modeAnimTimer;
/*0x02A*/ u16 unk2A;
@ -293,28 +293,28 @@ struct PinballGame
/*0x1B8*/ s16 shopAnimSlideTimer;
/*0x1BA*/ u16 shopEntryTimer;
/*0x1BC*/ u16 randomSpriteVariantSeed;
/*0x1BE*/ s8 pikaRescuePath;
/*0x1BE*/ s8 pichuWalkMode; //1=entrance, 2=exit
/*0x1BF*/ u8 filler1BF[0x1];
/*0x1C0*/ u16 pikaSaverTimer;
/*0x1C2*/ s8 outLaneSide;
/*0x1C0*/ u16 pichuEntranceTimer;
/*0x1C2*/ s8 outLaneSide; // 1=Left; 2=Right
/*0x1C3*/ u8 filler1C3[0x1];
/*0x1C4*/ u16 pikaKickbackTimer;
/*0x1C6*/ s16 pikaChargeTarget;
/*0x1C8*/ s16 pikaChargeProgress;
/*0x1CA*/ s16 catchCounterValue;
/*0x1CC*/ s16 prevCatchCounterValue;
/*0x1CE*/ u16 pikachuAnimTimer;
/*0x1D0*/ u16 catchCounterSlideTimer;
/*0x1CA*/ s16 chargeFillValue;
/*0x1CC*/ s16 prevChargeFillValue;
/*0x1CE*/ u16 chargeFillAnimTimer;
/*0x1D0*/ u16 fullChargeSlideAnimTimer;
/*0x1D2*/ u16 unk1D2;
/*0x1D4*/ u16 catchCounterXShift;
/*0x1D6*/ u16 catchCounterSlideOffsetY;
/*0x1D8*/ u16 catchCounterAnimState;
/*0x1DA*/ u16 catchCounterScaleY;
/*0x1DC*/ u16 catchCounterBlinkTimer;
/*0x1DE*/ u16 catchAnimProgress;
/*0x1E0*/ u16 catchAnimDuration;
/*0x1D4*/ u16 chargeIndicatorXOffset;
/*0x1D6*/ u16 chargeIndicatorYOffset;
/*0x1D8*/ u16 chargeIndicatorScaleX;
/*0x1DA*/ u16 chargeIndicatorScaleY;
/*0x1DC*/ u16 fullChargeIndicatorBlinkTimer;
/*0x1DE*/ u16 kickbackAnimProgress;
/*0x1E0*/ u16 kickbackAnimDuration;
/*0x1E2*/ s8 outLanePikaPosition; //Pikachu coverage. 0= left lane, 1=right lane, 2 = both
/*0x1E3*/ s8 catchHoleOccupied[2];
/*0x1E3*/ s8 kickbackOccupied[2];
/*0x1E5*/ s8 pikachuSpinFrame;
/*0x1E6*/ s8 pikachuSpinPrevFrame;
/*0x1E7*/ u8 filler1E7[0x1];
@ -329,15 +329,15 @@ struct PinballGame
/*0x1F3*/ u8 unk1F3;
/*0x1F4*/ s16 portraitOffsetX;
/*0x1F6*/ s16 portraitOffsetY;
/*0x1F8*/ s16 creatureVelX;
/*0x1FA*/ s16 creatureVelY;
/*0x1FC*/ s32 catchCreatureX;
/*0x200*/ s32 catchCreatureY;
/*0x204*/ s8 creatureWaypointIndex;
/*0x1F8*/ s16 walkMonXVelocity;
/*0x1FA*/ s16 walkMonYVelocity;
/*0x1FC*/ s32 walkMonXPos; // Used for both hatch mons, and for pichu kickback walk
/*0x200*/ s32 walkMonYPos; // Used for both hatch mons, and for pichu kickback walk
/*0x204*/ s8 creatureWaypointIndex; // Used for both hatch mons, and for pichu kickback walk
/*0x205*/ u8 filler205[0x1];
/*0x206*/ u16 waypointSubTimer;
/*0x208*/ u16 catchOverlayFrameTimer;
/*0x20A*/ s8 catchOverlayKeyframeIndex;
/*0x208*/ u16 kickbackAnimFrameTimer;
/*0x20A*/ s8 kickbackFrameId;
/*0x20B*/ s8 bonusTrapAnimFrame;
/*0x20C*/ s8 prevBonusTrapFrame;
/*0x20D*/ u8 filler20D[0x1];
@ -725,10 +725,10 @@ struct PinballGame
/*0x616*/ u16 pikaSpinCooldownTimer;
/*0x618*/ u16 pikaSpinFrameCounter;
/*0x61A*/ s16 pikaSpinPeriod;
/*0x61C*/ s8 entityOverlayCollisionState;
/*0x61C*/ s8 kickbackFiring;
/*0x61D*/ u8 filler61D;
/*0x61E*/ u16 catchOverlayTimer;
/*0x620*/ struct Vector16 catchBallStartPos;
/*0x61E*/ u16 kickbackLaunchTimer;
/*0x620*/ struct Vector16 kickbackBallHoverPos;
/*0x624*/ s8 bumperHitCountdown; // 2 when Hit, one frame of ignored collision, then ready to hit again
/*0x625*/ s8 hatchTilesBumperAcknowledged;
/*0x626*/ s8 evoItemAnimFrame;
@ -803,8 +803,8 @@ struct PinballGame
/*0x721*/ s8 evoCatchLightSlot1;
/*0x722*/ s8 evoCatchLightSlot2;
/*0x723*/ s8 evoItemCount;
/*0x724*/ u16 modeTimeRemaining;
/*0x726*/ s8 modeTimerDisplayIndex;
/*0x724*/ u16 saverTimeRemaining;
/*0x726*/ s8 saverLit;
/*0x727*/ u8 filler727[0x1];
/*0x728*/ s8 catchArrowPaletteActive;
/*0x729*/ s8 evoArrowPaletteActive;
@ -961,7 +961,7 @@ extern u8 gFlipperTileGraphics[][0x200];
extern u16 gDusclopsBoardDusclopsAppearFx_Gfx[];
extern u16 gDusclopsBoardDusclops_Gfx[];
extern u8 gDusclopsBoardDusclopsBallGrabSwirl_Gfx[];
extern struct SongHeader se_unk_8b;
extern struct SongHeader se_catch_evo_banner;
extern struct SongHeader se_dusclops_appear;
extern const s16 gBounceBackForceMagnitudes[9]; //Possibly only 4, with a gap?
extern const s16 gBounceBackForceMagnitudes[9];
@ -999,7 +999,7 @@ extern const u8 gBallRotationTileGraphics[][0x80];
extern const u8 gBallShadowTileGraphics[][0x200];
extern const u8 gMainStageBonusTrap_Gfx[][0x300];
extern const u8 gPortraitGenericGraphics[][0x300];
extern const u8 gCatchCounterDigitTilesGfx[][0x80];
extern const u8 gChargeFillIndicator_Gfx[][0x80];
extern const u8 gPikaSaverTilesGfx[];
extern const u8 gMainBoardPikaSpinner_Gfx[][0x120];
extern const u8 gEggFrameTilesGfx[][0x200];

View File

@ -116,7 +116,7 @@ gSongTable:: @ 0x08534E04
song se_score_entry_a_b_move, MUSIC_PLAYER_SE2, 2
song se_score_entry_letter_change, MUSIC_PLAYER_SE2, 2
song se_unk_6c, MUSIC_PLAYER_SE2, 2
song se_unk_6d, MUSIC_PLAYER_SE2, 2
song se_dex_info_field_select_move, MUSIC_PLAYER_SE2, 2
song se_unk_6e, MUSIC_PLAYER_SE2, 2
song se_unk_6f, MUSIC_PLAYER_SE2, 2
song mus_dummy, MUSIC_PLAYER_BGM, 0
@ -124,42 +124,42 @@ gSongTable:: @ 0x08534E04
song se_flipper_pressed, MUSIC_PLAYER_SE3, 3
song se_slingshot_hit, MUSIC_PLAYER_SE2, 2
song se_pokemon_catch_hit, MUSIC_PLAYER_SE2, 2
song se_unk_75, MUSIC_PLAYER_SE2, 2
song se_pichu_in_position_chirp, MUSIC_PLAYER_SE2, 2
song se_trigger_button_hit, MUSIC_PLAYER_SE2, 2
song se_wall_hit, MUSIC_PLAYER_SE3, 3
song se_tilt_triggered, MUSIC_PLAYER_SE3, 3
song se_unk_79, MUSIC_PLAYER_SE2, 2
song se_unk_7a, MUSIC_PLAYER_SE2, 2
song se_pika_spinner_clack, MUSIC_PLAYER_SE2, 2
song se_pika_full_charge_1_up, MUSIC_PLAYER_SE2, 2
song se_unk_7b, MUSIC_PLAYER_SE2, 2
song se_unk_7c, MUSIC_PLAYER_SE2, 2
song se_kickback_thunderwave, MUSIC_PLAYER_SE2, 2
song se_unk_7d, MUSIC_PLAYER_SE2, 2
song se_unk_7e, MUSIC_PLAYER_SE2, 2
song se_coin_collected, MUSIC_PLAYER_SE2, 2
song se_unk_7f, MUSIC_PLAYER_SE2, 2
song se_unk_80, MUSIC_PLAYER_SE2, 2
song se_unk_81, MUSIC_PLAYER_SE2, 2
song se_center_hole_eject, MUSIC_PLAYER_SE2, 2
song se_roulette_tick, MUSIC_PLAYER_SE2, 2
song se_evo_selection_move, MUSIC_PLAYER_SE2, 2
song se_evo_selection_confirm, MUSIC_PLAYER_SE2, 2
song se_unk_84, MUSIC_PLAYER_SE2, 2
song se_unk_85, MUSIC_PLAYER_SE2, 2
song se_unk_86, MUSIC_PLAYER_SE2, 2
song se_unk_87, MUSIC_PLAYER_SE2, 2
song se_evo_item_appear, MUSIC_PLAYER_SE2, 2
song se_evo_item_finish_appear, MUSIC_PLAYER_SE2, 2
song se_evo_item_collected, MUSIC_PLAYER_SE2, 2
song se_ball_upgrade, MUSIC_PLAYER_SE2, 2
song se_unk_88, MUSIC_PLAYER_SE2, 2
song se_unk_89, MUSIC_PLAYER_SE2, 2
song se_failure, MUSIC_PLAYER_SE2, 2
song se_unk_8b, MUSIC_PLAYER_SE2, 2
song se_unk_8c, MUSIC_PLAYER_SE2, 2
song se_unk_8d, MUSIC_PLAYER_SE2, 2
song se_unk_8e, MUSIC_PLAYER_SE2, 2
song se_unk_8f, MUSIC_PLAYER_SE2, 2
song se_catch_evo_banner, MUSIC_PLAYER_SE2, 2
song se_catch_tile_reveal, MUSIC_PLAYER_SE2, 2
song se_catch_all_reveal_lightning, MUSIC_PLAYER_SE2, 2
song se_catch_all_reveal_shatter, MUSIC_PLAYER_SE2, 2
song se_shop_list_reveal, MUSIC_PLAYER_SE2, 2
song mus_dummy, MUSIC_PLAYER_BGM, 0
song se_unk_91, MUSIC_PLAYER_SE2, 2
song se_unk_92, MUSIC_PLAYER_SE2, 2
song se_unk_93, MUSIC_PLAYER_SE2, 2
song se_unk_94, MUSIC_PLAYER_SE2, 2
song se_unk_95, MUSIC_PLAYER_SE2, 2
song se_unk_96, MUSIC_PLAYER_SE2, 2
song se_unk_97, MUSIC_PLAYER_SE2, 2
song se_unk_98, MUSIC_PLAYER_SE2, 2
song se_bonus_score_tallied, MUSIC_PLAYER_SE2, 2
song se_hatch_flourish, MUSIC_PLAYER_SE2, 2
song se_area_roulette_selected, MUSIC_PLAYER_SE2, 2
song se_ball_saved, MUSIC_PLAYER_SE2, 2
song se_lati_delivery, MUSIC_PLAYER_SE2, 2
song se_saver_plunger_drop, MUSIC_PLAYER_SE2, 2
song se_travel_painter_flight, MUSIC_PLAYER_SE2, 2
song se_travel_painter_paints, MUSIC_PLAYER_SE2, 2
song se_unk_99, MUSIC_PLAYER_SE2, 2
song se_unk_9a, MUSIC_PLAYER_SE2, 2
song se_unk_9b, MUSIC_PLAYER_SE2, 2
@ -184,9 +184,9 @@ gSongTable:: @ 0x08534E04
song se_pika_charge_ti, MUSIC_PLAYER_SE2, 2
song se_pika_charge_high_do, MUSIC_PLAYER_SE2, 2
song se_unk_b0, MUSIC_PLAYER_SE2, 2
song se_unk_b1, MUSIC_PLAYER_SE2, 2
song se_pikachu_kickback, MUSIC_PLAYER_SE2, 2
song se_unk_b2, MUSIC_PLAYER_SE2, 2
song se_unk_b3, MUSIC_PLAYER_SE2, 2
song se_pichu_kickback, MUSIC_PLAYER_SE2, 2
song se_unk_b4, MUSIC_PLAYER_SE2, 2
song mus_dummy, MUSIC_PLAYER_BGM, 0
song se_ruby_bumper_hit, MUSIC_PLAYER_SE2, 2
@ -329,7 +329,7 @@ gSongTable:: @ 0x08534E04
song se_unk_13f, MUSIC_PLAYER_SE2, 2
song se_unk_140, MUSIC_PLAYER_SE2, 2
song mus_dummy, MUSIC_PLAYER_BGM, 0
song se_unk_142, MUSIC_PLAYER_SE2, 2
song se_pika_no_kickback, MUSIC_PLAYER_SE2, 2
song mus_dummy, MUSIC_PLAYER_BGM, 0
song se_jirachi_move, MUSIC_PLAYER_SE2, 2
song se_jirachi_hit, MUSIC_PLAYER_SE2, 2

View File

@ -1,27 +1,27 @@
.include "sound/MPlayDef.s"
.equ se_unk_93_grp, gUnknown_0853174C
.equ se_unk_93_pri, 5
.equ se_unk_93_rev, reverb_set+50
.equ se_unk_93_mvl, 127
.equ se_unk_93_key, 0
.equ se_unk_93_tbs, 1
.equ se_unk_93_exg, 0
.equ se_unk_93_cmp, 1
.equ se_area_roulette_selected_grp, gUnknown_0853174C
.equ se_area_roulette_selected_pri, 5
.equ se_area_roulette_selected_rev, reverb_set+50
.equ se_area_roulette_selected_mvl, 127
.equ se_area_roulette_selected_key, 0
.equ se_area_roulette_selected_tbs, 1
.equ se_area_roulette_selected_exg, 0
.equ se_area_roulette_selected_cmp, 1
.section .rodata
.global se_unk_93
.global se_area_roulette_selected
.align 2
@*********************** Track 01 ***********************@
se_unk_93_0: @ 0x0869FA68
.byte KEYSH , se_unk_93_key+0
.byte TEMPO , 144*se_unk_93_tbs/2
se_area_roulette_selected_0: @ 0x0869FA68
.byte KEYSH , se_area_roulette_selected_key+0
.byte TEMPO , 144*se_area_roulette_selected_tbs/2
.byte VOICE , 4
.byte XCMD , xIECV , 10
.byte xIECL , 8
.byte VOL , 100*se_unk_93_mvl/mxv
.byte VOL , 100*se_area_roulette_selected_mvl/mxv
.byte BEND , c_v-6
.byte N02 , Cn4 , v060
.byte W02
@ -43,10 +43,10 @@ se_unk_93_0: @ 0x0869FA68
@*********************** Track 02 ***********************@
se_unk_93_1: @ 0x0869FA95
.byte KEYSH , se_unk_93_key+0
se_area_roulette_selected_1: @ 0x0869FA95
.byte KEYSH , se_area_roulette_selected_key+0
.byte VOICE , 14
.byte VOL , 50*se_unk_93_mvl/mxv
.byte VOL , 50*se_area_roulette_selected_mvl/mxv
.byte BEND , c_v-2
.byte W01
.byte N02 , Cn4 , v060
@ -73,14 +73,14 @@ se_unk_93_1: @ 0x0869FA95
.align 2
se_unk_93: @ 0x0869FAC0
se_area_roulette_selected: @ 0x0869FAC0
.byte 2 @ NumTrks
.byte 0 @ NumBlks
.byte se_unk_93_pri @ Priority
.byte se_unk_93_rev @ Reverb
.byte se_area_roulette_selected_pri @ Priority
.byte se_area_roulette_selected_rev @ Reverb
.word se_unk_93_grp
.word se_area_roulette_selected_grp
.word se_unk_93_0
.word se_unk_93_1
.word se_area_roulette_selected_0
.word se_area_roulette_selected_1
@ 0x0869FAD0

View File

@ -0,0 +1,84 @@
.include "sound/MPlayDef.s"
.equ se_ball_saved_grp, gUnknown_0853174C
.equ se_ball_saved_pri, 5
.equ se_ball_saved_rev, reverb_set+50
.equ se_ball_saved_mvl, 127
.equ se_ball_saved_key, 0
.equ se_ball_saved_tbs, 1
.equ se_ball_saved_exg, 0
.equ se_ball_saved_cmp, 1
.section .rodata
.global se_ball_saved
.align 2
@*********************** Track 01 ***********************@
se_ball_saved_0: @ 0x0869FAD0
.byte KEYSH , se_ball_saved_key+0
.byte TEMPO , 90*se_ball_saved_tbs/2
.byte VOICE , 90
.byte VOL , 110*se_ball_saved_mvl/mxv
.byte BEND , c_v+0
.byte N09 , Cn4 , v100
.byte W06
.byte W06
.byte W06
.byte W06
.byte W06
.byte FINE
@*********************** Track 02 ***********************@
se_ball_saved_1: @ 0x0869FAE3
.byte KEYSH , se_ball_saved_key+0
.byte VOICE , 124
.byte BENDR , 12
.byte VOL , 82*se_ball_saved_mvl/mxv
.byte BEND , c_v+0
.byte N05 , Gs4 , v060
.byte W03
.byte VOL , 94*se_ball_saved_mvl/mxv
.byte W03
.byte 103*se_ball_saved_mvl/mxv
.byte N22
.byte W03
.byte VOL , 110*se_ball_saved_mvl/mxv
.byte W03
.byte W06
.byte W06
.byte W06
.byte FINE
@*********************** Track 03 ***********************@
se_ball_saved_2: @ 0x0869FAFE
.byte KEYSH , se_ball_saved_key+0
.byte VOICE , 0
.byte VOL , 110*se_ball_saved_mvl/mxv
.byte N06 , Cn3 , v080
.byte W06
.byte N18 , Cn3 , v092
.byte W06
.byte W06
.byte W06
.byte W06
.byte FINE
@******************************************************@
.align 2
se_ball_saved: @ 0x0869FB10
.byte 3 @ NumTrks
.byte 0 @ NumBlks
.byte se_ball_saved_pri @ Priority
.byte se_ball_saved_rev @ Reverb
.word se_ball_saved_grp
.word se_ball_saved_0
.word se_ball_saved_1
.word se_ball_saved_2
@ 0x0869FB24

View File

@ -1,24 +1,24 @@
.include "sound/MPlayDef.s"
.equ se_unk_87_grp, gUnknown_08532310
.equ se_unk_87_pri, 5
.equ se_unk_87_rev, reverb_set+50
.equ se_unk_87_mvl, 127
.equ se_unk_87_key, 0
.equ se_unk_87_tbs, 1
.equ se_unk_87_exg, 0
.equ se_unk_87_cmp, 1
.equ se_ball_upgrade_grp, gUnknown_08532310
.equ se_ball_upgrade_pri, 5
.equ se_ball_upgrade_rev, reverb_set+50
.equ se_ball_upgrade_mvl, 127
.equ se_ball_upgrade_key, 0
.equ se_ball_upgrade_tbs, 1
.equ se_ball_upgrade_exg, 0
.equ se_ball_upgrade_cmp, 1
.section .rodata
.global se_unk_87
.global se_ball_upgrade
.align 2
@*********************** Track 01 ***********************@
se_unk_87_0: @ 0x0869F628
.byte KEYSH , se_unk_87_key+0
.byte TEMPO , 150*se_unk_87_tbs/2
.byte VOL , 100*se_unk_87_mvl/mxv
se_ball_upgrade_0: @ 0x0869F628
.byte KEYSH , se_ball_upgrade_key+0
.byte TEMPO , 150*se_ball_upgrade_tbs/2
.byte VOL , 100*se_ball_upgrade_mvl/mxv
.byte PAN , c_v+0
.byte VOICE , 17
.byte N04 , Cs4 , v127
@ -51,13 +51,13 @@ se_unk_87_0: @ 0x0869F628
.align 2
se_unk_87: @ 0x0869F664
se_ball_upgrade: @ 0x0869F664
.byte 1 @ NumTrks
.byte 0 @ NumBlks
.byte se_unk_87_pri @ Priority
.byte se_unk_87_rev @ Reverb
.byte se_ball_upgrade_pri @ Priority
.byte se_ball_upgrade_rev @ Reverb
.word se_unk_87_grp
.word se_ball_upgrade_grp
.word se_unk_87_0
.word se_ball_upgrade_0
@ 0x0869F670

View File

@ -0,0 +1,54 @@
.include "sound/MPlayDef.s"
.equ se_bonus_score_tallied_grp, gUnknown_0853174C
.equ se_bonus_score_tallied_pri, 5
.equ se_bonus_score_tallied_rev, reverb_set+50
.equ se_bonus_score_tallied_mvl, 127
.equ se_bonus_score_tallied_key, 0
.equ se_bonus_score_tallied_tbs, 1
.equ se_bonus_score_tallied_exg, 0
.equ se_bonus_score_tallied_cmp, 1
.section .rodata
.global se_bonus_score_tallied
.align 2
@*********************** Track 01 ***********************@
se_bonus_score_tallied_0: @ 0x0869F950
.byte KEYSH , se_bonus_score_tallied_key+0
.byte TEMPO , 100*se_bonus_score_tallied_tbs/2
.byte VOICE , 4
.byte BENDR , 12
.byte XCMD , xIECV , 10
.byte xIECL , 8
.byte VOL , 90*se_bonus_score_tallied_mvl/mxv
.byte BEND , c_v+4
.byte N01 , Cn5 , v064
.byte W01
.byte Cn5 , v020
.byte W01
.byte Cn5 , v064
.byte W01
.byte Cn5 , v020
.byte W01
.byte Cn6 , v064
.byte W02
.byte Cn6 , v020
.byte W03
.byte FINE
@******************************************************@
.align 2
se_bonus_score_tallied: @ 0x0869F978
.byte 1 @ NumTrks
.byte 0 @ NumBlks
.byte se_bonus_score_tallied_pri @ Priority
.byte se_bonus_score_tallied_rev @ Reverb
.word se_bonus_score_tallied_grp
.word se_bonus_score_tallied_0
@ 0x0869F984

View File

@ -0,0 +1,98 @@
.include "sound/MPlayDef.s"
.equ se_catch_all_reveal_lightning_grp, gUnknown_08531D4C
.equ se_catch_all_reveal_lightning_pri, 5
.equ se_catch_all_reveal_lightning_rev, reverb_set+50
.equ se_catch_all_reveal_lightning_mvl, 127
.equ se_catch_all_reveal_lightning_key, 0
.equ se_catch_all_reveal_lightning_tbs, 1
.equ se_catch_all_reveal_lightning_exg, 0
.equ se_catch_all_reveal_lightning_cmp, 1
.section .rodata
.global se_catch_all_reveal_lightning
.align 2
@*********************** Track 01 ***********************@
se_catch_all_reveal_lightning_0: @ 0x0869F820
.byte KEYSH , se_catch_all_reveal_lightning_key+0
.byte TEMPO , 220*se_catch_all_reveal_lightning_tbs/2
.byte VOICE , 18
.byte BENDR , 12
.byte PAN , c_v+0
.byte VOL , 110*se_catch_all_reveal_lightning_mvl/mxv
.byte BEND , c_v+0
.byte N09 , En3 , v112
.byte W03
.byte BEND , c_v+21
.byte W03
.byte c_v+0
.byte W03
.byte c_v+6
.byte N15 , En3 , v120
.byte W03
.byte BEND , c_v+2
.byte W03
.byte c_v-9
.byte W03
.byte c_v-29
.byte W06
.byte c_v+0
.byte N09 , Gn2
.byte W06
.byte BEND , c_v-8
.byte W03
.byte c_v-15
.byte TIE , Gs2 , v112
.byte W03
.byte BEND , c_v-4
.byte W09
.byte c_v-8
.byte W03
.byte W06
.byte c_v-13
.byte W03
.byte c_v-22
.byte W09
.byte c_v-32
.byte W06
.byte VOL , 102*se_catch_all_reveal_lightning_mvl/mxv
.byte BEND , c_v-38
.byte W09
.byte VOL , 97*se_catch_all_reveal_lightning_mvl/mxv
.byte W09
.byte 92*se_catch_all_reveal_lightning_mvl/mxv
.byte BEND , c_v-45
.byte W06
.byte W03
.byte VOL , 83*se_catch_all_reveal_lightning_mvl/mxv
.byte W06
.byte BEND , c_v-52
.byte W03
.byte VOL , 72*se_catch_all_reveal_lightning_mvl/mxv
.byte W09
.byte 63*se_catch_all_reveal_lightning_mvl/mxv
.byte W03
.byte W06
.byte 57*se_catch_all_reveal_lightning_mvl/mxv
.byte W06
.byte 46*se_catch_all_reveal_lightning_mvl/mxv
.byte W12
.byte EOT
.byte FINE
@******************************************************@
.align 2
se_catch_all_reveal_lightning: @ 0x0869F87C
.byte 1 @ NumTrks
.byte 0 @ NumBlks
.byte se_catch_all_reveal_lightning_pri @ Priority
.byte se_catch_all_reveal_lightning_rev @ Reverb
.word se_catch_all_reveal_lightning_grp
.word se_catch_all_reveal_lightning_0
@ 0x0869F888

View File

@ -1,25 +1,25 @@
.include "sound/MPlayDef.s"
.equ se_unk_8e_grp, gUnknown_08531D4C
.equ se_unk_8e_pri, 5
.equ se_unk_8e_rev, reverb_set+50
.equ se_unk_8e_mvl, 127
.equ se_unk_8e_key, 0
.equ se_unk_8e_tbs, 1
.equ se_unk_8e_exg, 0
.equ se_unk_8e_cmp, 1
.equ se_catch_all_reveal_shatter_grp, gUnknown_08531D4C
.equ se_catch_all_reveal_shatter_pri, 5
.equ se_catch_all_reveal_shatter_rev, reverb_set+50
.equ se_catch_all_reveal_shatter_mvl, 127
.equ se_catch_all_reveal_shatter_key, 0
.equ se_catch_all_reveal_shatter_tbs, 1
.equ se_catch_all_reveal_shatter_exg, 0
.equ se_catch_all_reveal_shatter_cmp, 1
.section .rodata
.global se_unk_8e
.global se_catch_all_reveal_shatter
.align 2
@*********************** Track 01 ***********************@
se_unk_8e_0: @ 0x0869F888
.byte KEYSH , se_unk_8e_key+0
.byte TEMPO , 150*se_unk_8e_tbs/2
se_catch_all_reveal_shatter_0: @ 0x0869F888
.byte KEYSH , se_catch_all_reveal_shatter_key+0
.byte TEMPO , 150*se_catch_all_reveal_shatter_tbs/2
.byte VOICE , 41
.byte VOL , 110*se_unk_8e_mvl/mxv
.byte VOL , 110*se_catch_all_reveal_shatter_mvl/mxv
.byte PAN , c_v+0
.byte N01 , Cn4 , v127
.byte W01
@ -56,10 +56,10 @@ se_unk_8e_0: @ 0x0869F888
@*********************** Track 02 ***********************@
se_unk_8e_1: @ 0x0869F8C9
.byte KEYSH , se_unk_8e_key+0
se_catch_all_reveal_shatter_1: @ 0x0869F8C9
.byte KEYSH , se_catch_all_reveal_shatter_key+0
.byte VOICE , 4
.byte VOL , 110*se_unk_8e_mvl/mxv
.byte VOL , 110*se_catch_all_reveal_shatter_mvl/mxv
.byte PAN , c_v+0
.byte N01 , Cn3 , v064
.byte W01
@ -87,14 +87,14 @@ se_unk_8e_1: @ 0x0869F8C9
.align 2
se_unk_8e: @ 0x0869F8F0
se_catch_all_reveal_shatter: @ 0x0869F8F0
.byte 2 @ NumTrks
.byte 0 @ NumBlks
.byte se_unk_8e_pri @ Priority
.byte se_unk_8e_rev @ Reverb
.byte se_catch_all_reveal_shatter_pri @ Priority
.byte se_catch_all_reveal_shatter_rev @ Reverb
.word se_unk_8e_grp
.word se_catch_all_reveal_shatter_grp
.word se_unk_8e_0
.word se_unk_8e_1
.word se_catch_all_reveal_shatter_0
.word se_catch_all_reveal_shatter_1
@ 0x0869F900

View File

@ -1,31 +1,31 @@
.include "sound/MPlayDef.s"
.equ se_unk_8b_grp, gUnknown_08531D4C
.equ se_unk_8b_pri, 5
.equ se_unk_8b_rev, reverb_set+50
.equ se_unk_8b_mvl, 127
.equ se_unk_8b_key, 0
.equ se_unk_8b_tbs, 1
.equ se_unk_8b_exg, 0
.equ se_unk_8b_cmp, 1
.equ se_catch_evo_banner_grp, gUnknown_08531D4C
.equ se_catch_evo_banner_pri, 5
.equ se_catch_evo_banner_rev, reverb_set+50
.equ se_catch_evo_banner_mvl, 127
.equ se_catch_evo_banner_key, 0
.equ se_catch_evo_banner_tbs, 1
.equ se_catch_evo_banner_exg, 0
.equ se_catch_evo_banner_cmp, 1
.section .rodata
.global se_unk_8b
.global se_catch_evo_banner
.align 2
@*********************** Track 01 ***********************@
se_unk_8b_0: @ 0x0869F70C
.byte KEYSH , se_unk_8b_key+0
.byte TEMPO , 150*se_unk_8b_tbs/2
se_catch_evo_banner_0: @ 0x0869F70C
.byte KEYSH , se_catch_evo_banner_key+0
.byte TEMPO , 150*se_catch_evo_banner_tbs/2
.byte VOICE , 22
.byte BENDR , 12
.byte PAN , c_v+0
.byte VOL , 63*se_unk_8b_mvl/mxv
.byte VOL , 63*se_catch_evo_banner_mvl/mxv
.byte BEND , c_v-48
.byte N72 , Fn4 , v108
.byte W02
.byte VOL , 68*se_unk_8b_mvl/mxv
.byte VOL , 68*se_catch_evo_banner_mvl/mxv
.byte BEND , c_v-43
.byte W01
.byte PAN , c_v+5
@ -33,31 +33,31 @@ se_unk_8b_0: @ 0x0869F70C
.byte BEND , c_v-38
.byte W02
.byte PAN , c_v+15
.byte VOL , 70*se_unk_8b_mvl/mxv
.byte VOL , 70*se_catch_evo_banner_mvl/mxv
.byte W01
.byte BEND , c_v-34
.byte W02
.byte PAN , c_v+6
.byte VOL , 75*se_unk_8b_mvl/mxv
.byte VOL , 75*se_catch_evo_banner_mvl/mxv
.byte BEND , c_v-30
.byte W03
.byte PAN , c_v-1
.byte BEND , c_v-28
.byte W01
.byte VOL , 78*se_unk_8b_mvl/mxv
.byte VOL , 78*se_catch_evo_banner_mvl/mxv
.byte W01
.byte BEND , c_v-24
.byte W01
.byte PAN , c_v-9
.byte W01
.byte VOL , 85*se_unk_8b_mvl/mxv
.byte VOL , 85*se_catch_evo_banner_mvl/mxv
.byte BEND , c_v-21
.byte W02
.byte PAN , c_v-15
.byte W01
.byte BEND , c_v-16
.byte W01
.byte VOL , 90*se_unk_8b_mvl/mxv
.byte VOL , 90*se_catch_evo_banner_mvl/mxv
.byte W01
.byte PAN , c_v-9
.byte BEND , c_v-12
@ -103,32 +103,32 @@ se_unk_8b_0: @ 0x0869F70C
.byte W01
.byte BEND , c_v+35
.byte W02
.byte VOL , 74*se_unk_8b_mvl/mxv
.byte VOL , 74*se_catch_evo_banner_mvl/mxv
.byte PAN , c_v+15
.byte W01
.byte BEND , c_v+38
.byte W02
.byte VOL , 58*se_unk_8b_mvl/mxv
.byte VOL , 58*se_catch_evo_banner_mvl/mxv
.byte PAN , c_v+6
.byte BEND , c_v+42
.byte W03
.byte VOL , 47*se_unk_8b_mvl/mxv
.byte VOL , 47*se_catch_evo_banner_mvl/mxv
.byte PAN , c_v-1
.byte BEND , c_v+45
.byte W02
.byte c_v+48
.byte W01
.byte VOL , 34*se_unk_8b_mvl/mxv
.byte VOL , 34*se_catch_evo_banner_mvl/mxv
.byte PAN , c_v-9
.byte W01
.byte BEND , c_v+50
.byte W02
.byte VOL , 22*se_unk_8b_mvl/mxv
.byte VOL , 22*se_catch_evo_banner_mvl/mxv
.byte PAN , c_v-15
.byte W01
.byte BEND , c_v+54
.byte W02
.byte VOL , 6*se_unk_8b_mvl/mxv
.byte VOL , 6*se_catch_evo_banner_mvl/mxv
.byte PAN , c_v-9
.byte BEND , c_v+58
.byte W03
@ -138,13 +138,13 @@ se_unk_8b_0: @ 0x0869F70C
.align 2
se_unk_8b: @ 0x0869F7C8
se_catch_evo_banner: @ 0x0869F7C8
.byte 1 @ NumTrks
.byte 0 @ NumBlks
.byte se_unk_8b_pri @ Priority
.byte se_unk_8b_rev @ Reverb
.byte se_catch_evo_banner_pri @ Priority
.byte se_catch_evo_banner_rev @ Reverb
.word se_unk_8b_grp
.word se_catch_evo_banner_grp
.word se_unk_8b_0
.word se_catch_evo_banner_0
@ 0x0869F7D4

View File

@ -0,0 +1,82 @@
.include "sound/MPlayDef.s"
.equ se_catch_tile_reveal_grp, gUnknown_0853174C
.equ se_catch_tile_reveal_pri, 5
.equ se_catch_tile_reveal_rev, reverb_set+50
.equ se_catch_tile_reveal_mvl, 127
.equ se_catch_tile_reveal_key, 0
.equ se_catch_tile_reveal_tbs, 1
.equ se_catch_tile_reveal_exg, 0
.equ se_catch_tile_reveal_cmp, 1
.section .rodata
.global se_catch_tile_reveal
.align 2
@*********************** Track 01 ***********************@
se_catch_tile_reveal_0: @ 0x0869F7D4
.byte KEYSH , se_catch_tile_reveal_key+0
.byte TEMPO , 90*se_catch_tile_reveal_tbs/2
.byte VOICE , 125
.byte VOL , 110*se_catch_tile_reveal_mvl/mxv
.byte BEND , c_v+0
.byte N03 , As2 , v100
.byte W03
.byte BEND , c_v-33
.byte N36 , Ds3
.byte W03
.byte BEND , c_v+0
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte FINE
@*********************** Track 02 ***********************@
se_catch_tile_reveal_1: @ 0x0869F7F6
.byte KEYSH , se_catch_tile_reveal_key+0
.byte VOICE , 0
.byte VOL , 110*se_catch_tile_reveal_mvl/mxv
.byte N03 , Cn3 , v127
.byte W03
.byte N18
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte FINE
@******************************************************@
.align 2
se_catch_tile_reveal: @ 0x0869F810
.byte 2 @ NumTrks
.byte 0 @ NumBlks
.byte se_catch_tile_reveal_pri @ Priority
.byte se_catch_tile_reveal_rev @ Reverb
.word se_catch_tile_reveal_grp
.word se_catch_tile_reveal_0
.word se_catch_tile_reveal_1
@ 0x0869F820

View File

@ -0,0 +1,103 @@
.include "sound/MPlayDef.s"
.equ se_center_hole_eject_grp, gUnknown_08531D4C
.equ se_center_hole_eject_pri, 5
.equ se_center_hole_eject_rev, reverb_set+50
.equ se_center_hole_eject_mvl, 127
.equ se_center_hole_eject_key, 0
.equ se_center_hole_eject_tbs, 1
.equ se_center_hole_eject_exg, 0
.equ se_center_hole_eject_cmp, 1
.section .rodata
.global se_center_hole_eject
.align 2
@*********************** Track 01 ***********************@
se_center_hole_eject_0: @ 0x0869F3CC
.byte KEYSH , se_center_hole_eject_key+0
.byte TEMPO , 220*se_center_hole_eject_tbs/2
.byte VOICE , 41
.byte VOL , 110*se_center_hole_eject_mvl/mxv
.byte BENDR , 12
.byte PAN , c_v+6
.byte BEND , c_v+0
.byte N02 , Cn4 , v127
.byte W03
.byte VOL , 104*se_center_hole_eject_mvl/mxv
.byte W03
.byte 93*se_center_hole_eject_mvl/mxv
.byte PAN , c_v-6
.byte N02 , Cn5
.byte W03
.byte VOL , 110*se_center_hole_eject_mvl/mxv
.byte W01
.byte VOICE , 22
.byte PAN , c_v+0
.byte N24 , Cn4 , v060
.byte W02
.byte W02
.byte BEND , c_v+0
.byte W04
.byte c_v+1
.byte W03
.byte c_v+1
.byte W01
.byte VOL , 105*se_center_hole_eject_mvl/mxv
.byte W02
.byte BEND , c_v+0
.byte W01
.byte VOL , 103*se_center_hole_eject_mvl/mxv
.byte W02
.byte 91*se_center_hole_eject_mvl/mxv
.byte BEND , c_v+0
.byte W03
.byte VOL , 77*se_center_hole_eject_mvl/mxv
.byte BEND , c_v-1
.byte W02
.byte VOL , 61*se_center_hole_eject_mvl/mxv
.byte BEND , c_v-2
.byte W01
.byte VOL , 38*se_center_hole_eject_mvl/mxv
.byte W01
.byte 15*se_center_hole_eject_mvl/mxv
.byte BEND , c_v-3
.byte W02
.byte FINE
@*********************** Track 02 ***********************@
se_center_hole_eject_1: @ 0x0869F419
.byte KEYSH , se_center_hole_eject_key+0
.byte VOICE , 4
.byte VOL , 110*se_center_hole_eject_mvl/mxv
.byte N02 , Cn3 , v060
.byte W03
.byte Gn2
.byte W03
.byte Gs4
.byte W04
.byte Gs4 , v020
.byte W02
.byte W06
.byte W06
.byte W06
.byte W06
.byte FINE
@******************************************************@
.align 2
se_center_hole_eject: @ 0x0869F430
.byte 2 @ NumTrks
.byte 0 @ NumBlks
.byte se_center_hole_eject_pri @ Priority
.byte se_center_hole_eject_rev @ Reverb
.word se_center_hole_eject_grp
.word se_center_hole_eject_0
.word se_center_hole_eject_1
@ 0x0869F440

View File

@ -0,0 +1,50 @@
.include "sound/MPlayDef.s"
.equ se_coin_collected_grp, gUnknown_0853174C
.equ se_coin_collected_pri, 5
.equ se_coin_collected_rev, reverb_set+50
.equ se_coin_collected_mvl, 127
.equ se_coin_collected_key, 0
.equ se_coin_collected_tbs, 1
.equ se_coin_collected_exg, 0
.equ se_coin_collected_cmp, 1
.section .rodata
.global se_coin_collected
.align 2
@*********************** Track 01 ***********************@
se_coin_collected_0: @ 0x0869F338
.byte KEYSH , se_coin_collected_key+0
.byte TEMPO , 300*se_coin_collected_tbs/2
.byte VOICE , 87
.byte VOL , 80*se_coin_collected_mvl/mxv
.byte BEND , c_v+13
.byte N03 , As5 , v068
.byte W03
.byte Gn6 , v127
.byte W03
.byte Gn6 , v068
.byte W03
.byte Gn6 , v127
.byte W03
.byte VOICE , 88
.byte N06 , Gn6 , v068
.byte W06
.byte FINE
@******************************************************@
.align 2
se_coin_collected: @ 0x0869F358
.byte 1 @ NumTrks
.byte 0 @ NumBlks
.byte se_coin_collected_pri @ Priority
.byte se_coin_collected_rev @ Reverb
.word se_coin_collected_grp
.word se_coin_collected_0
@ 0x0869F364

View File

@ -0,0 +1,40 @@
.include "sound/MPlayDef.s"
.equ se_dex_info_field_select_move_grp, gUnknown_08532310
.equ se_dex_info_field_select_move_pri, 5
.equ se_dex_info_field_select_move_rev, reverb_set+50
.equ se_dex_info_field_select_move_mvl, 127
.equ se_dex_info_field_select_move_key, 0
.equ se_dex_info_field_select_move_tbs, 1
.equ se_dex_info_field_select_move_exg, 0
.equ se_dex_info_field_select_move_cmp, 1
.section .rodata
.global se_dex_info_field_select_move
.align 2
@*********************** Track 01 ***********************@
se_dex_info_field_select_move_0: @ 0x0869EFF8
.byte KEYSH , se_dex_info_field_select_move_key+0
.byte TEMPO , 150*se_dex_info_field_select_move_tbs/2
.byte VOICE , 4
.byte VOL , 100*se_dex_info_field_select_move_mvl/mxv
.byte N04 , Fs4 , v127
.byte W06
.byte FINE
@******************************************************@
.align 2
se_dex_info_field_select_move: @ 0x0869F008
.byte 1 @ NumTrks
.byte 0 @ NumBlks
.byte se_dex_info_field_select_move_pri @ Priority
.byte se_dex_info_field_select_move_rev @ Reverb
.word se_dex_info_field_select_move_grp
.word se_dex_info_field_select_move_0
@ 0x0869F014

View File

@ -1,25 +1,25 @@
.include "sound/MPlayDef.s"
.equ se_unk_84_grp, gUnknown_08531D4C
.equ se_unk_84_pri, 5
.equ se_unk_84_rev, reverb_set+50
.equ se_unk_84_mvl, 127
.equ se_unk_84_key, 0
.equ se_unk_84_tbs, 1
.equ se_unk_84_exg, 0
.equ se_unk_84_cmp, 1
.equ se_evo_item_appear_grp, gUnknown_08531D4C
.equ se_evo_item_appear_pri, 5
.equ se_evo_item_appear_rev, reverb_set+50
.equ se_evo_item_appear_mvl, 127
.equ se_evo_item_appear_key, 0
.equ se_evo_item_appear_tbs, 1
.equ se_evo_item_appear_exg, 0
.equ se_evo_item_appear_cmp, 1
.section .rodata
.global se_unk_84
.global se_evo_item_appear
.align 2
@*********************** Track 01 ***********************@
se_unk_84_0: @ 0x0869F4E0
.byte KEYSH , se_unk_84_key+0
.byte TEMPO , 150*se_unk_84_tbs/2
se_evo_item_appear_0: @ 0x0869F4E0
.byte KEYSH , se_evo_item_appear_key+0
.byte TEMPO , 150*se_evo_item_appear_tbs/2
.byte VOICE , 46
.byte VOL , 110*se_unk_84_mvl/mxv
.byte VOL , 110*se_evo_item_appear_mvl/mxv
.byte BENDR , 2
.byte PAN , c_v+0
.byte BEND , c_v+15
@ -81,11 +81,11 @@ se_unk_84_0: @ 0x0869F4E0
@*********************** Track 02 ***********************@
se_unk_84_1: @ 0x0869F53F
.byte KEYSH , se_unk_84_key+0
se_evo_item_appear_1: @ 0x0869F53F
.byte KEYSH , se_evo_item_appear_key+0
.byte VOICE , 53
.byte BENDR , 2
.byte VOL , 43*se_unk_84_mvl/mxv
.byte VOL , 43*se_evo_item_appear_mvl/mxv
.byte BEND , c_v+15
.byte N02 , An6 , v112
.byte W02
@ -142,14 +142,14 @@ se_unk_84_1: @ 0x0869F53F
.align 2
se_unk_84: @ 0x0869F58C
se_evo_item_appear: @ 0x0869F58C
.byte 2 @ NumTrks
.byte 0 @ NumBlks
.byte se_unk_84_pri @ Priority
.byte se_unk_84_rev @ Reverb
.byte se_evo_item_appear_pri @ Priority
.byte se_evo_item_appear_rev @ Reverb
.word se_unk_84_grp
.word se_evo_item_appear_grp
.word se_unk_84_0
.word se_unk_84_1
.word se_evo_item_appear_0
.word se_evo_item_appear_1
@ 0x0869F59C

View File

@ -0,0 +1,76 @@
.include "sound/MPlayDef.s"
.equ se_evo_item_collected_grp, gUnknown_08531D4C
.equ se_evo_item_collected_pri, 5
.equ se_evo_item_collected_rev, reverb_set+50
.equ se_evo_item_collected_mvl, 127
.equ se_evo_item_collected_key, 0
.equ se_evo_item_collected_tbs, 1
.equ se_evo_item_collected_exg, 0
.equ se_evo_item_collected_cmp, 1
.section .rodata
.global se_evo_item_collected
.align 2
@*********************** Track 01 ***********************@
se_evo_item_collected_0: @ 0x0869F5D8
.byte KEYSH , se_evo_item_collected_key+0
.byte TEMPO , 150*se_evo_item_collected_tbs/2
.byte VOICE , 46
.byte VOL , 94*se_evo_item_collected_mvl/mxv
.byte BENDR , 2
.byte LFOS , 40
.byte PAN , c_v+0
.byte BEND , c_v+15
.byte N06 , An5 , v112
.byte W01
.byte N15 , En6 , v104
.byte W02
.byte W01
.byte MOD , 5
.byte W02
.byte W03
.byte W03
.byte W03
.byte W01
.byte 0
.byte W02
.byte FINE
@*********************** Track 02 ***********************@
se_evo_item_collected_1: @ 0x0869F5FB
.byte KEYSH , se_evo_item_collected_key+0
.byte VOICE , 53
.byte BENDR , 2
.byte VOL , 43*se_evo_item_collected_mvl/mxv
.byte PAN , c_v+0
.byte BEND , c_v+15
.byte N06 , An4 , v108
.byte W01
.byte N12 , Cs6 , v104
.byte W02
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte FINE
@******************************************************@
.align 2
se_evo_item_collected: @ 0x0869F618
.byte 2 @ NumTrks
.byte 0 @ NumBlks
.byte se_evo_item_collected_pri @ Priority
.byte se_evo_item_collected_rev @ Reverb
.word se_evo_item_collected_grp
.word se_evo_item_collected_0
.word se_evo_item_collected_1
@ 0x0869F628

View File

@ -0,0 +1,63 @@
.include "sound/MPlayDef.s"
.equ se_evo_item_finish_appear_grp, gUnknown_0853174C
.equ se_evo_item_finish_appear_pri, 5
.equ se_evo_item_finish_appear_rev, reverb_set+50
.equ se_evo_item_finish_appear_mvl, 127
.equ se_evo_item_finish_appear_key, 0
.equ se_evo_item_finish_appear_tbs, 1
.equ se_evo_item_finish_appear_exg, 0
.equ se_evo_item_finish_appear_cmp, 1
.section .rodata
.global se_evo_item_finish_appear
.align 2
@*********************** Track 01 ***********************@
se_evo_item_finish_appear_0: @ 0x0869F59C
.byte KEYSH , se_evo_item_finish_appear_key+0
.byte TEMPO , 128*se_evo_item_finish_appear_tbs/2
.byte VOICE , 6
.byte BENDR , 12
.byte VOL , 90*se_evo_item_finish_appear_mvl/mxv
.byte BEND , c_v-1
.byte N01 , Ds3 , v127
.byte W02
.byte N03 , Gs3 , v100
.byte W05
.byte N16 , Fn5 , v072
.byte W05
.byte W12
.byte FINE
@*********************** Track 02 ***********************@
se_evo_item_finish_appear_1: @ 0x0869F5B6
.byte KEYSH , se_evo_item_finish_appear_key+0
.byte VOICE , 14
.byte VOL , 90*se_evo_item_finish_appear_mvl/mxv
.byte BEND , c_v-8
.byte W02
.byte N03 , Gs3 , v060
.byte W05
.byte N16 , Fn5
.byte W05
.byte W12
.byte FINE
@******************************************************@
.align 2
se_evo_item_finish_appear: @ 0x0869F5C8
.byte 2 @ NumTrks
.byte 0 @ NumBlks
.byte se_evo_item_finish_appear_pri @ Priority
.byte se_evo_item_finish_appear_rev @ Reverb
.word se_evo_item_finish_appear_grp
.word se_evo_item_finish_appear_0
.word se_evo_item_finish_appear_1
@ 0x0869F5D8

View File

@ -1,27 +1,27 @@
.include "sound/MPlayDef.s"
.equ se_unk_92_grp, gUnknown_0852DDE0
.equ se_unk_92_pri, 5
.equ se_unk_92_rev, reverb_set+50
.equ se_unk_92_mvl, 127
.equ se_unk_92_key, 0
.equ se_unk_92_tbs, 1
.equ se_unk_92_exg, 0
.equ se_unk_92_cmp, 1
.equ se_hatch_flourish_grp, gUnknown_0852DDE0
.equ se_hatch_flourish_pri, 5
.equ se_hatch_flourish_rev, reverb_set+50
.equ se_hatch_flourish_mvl, 127
.equ se_hatch_flourish_key, 0
.equ se_hatch_flourish_tbs, 1
.equ se_hatch_flourish_exg, 0
.equ se_hatch_flourish_cmp, 1
.section .rodata
.global se_unk_92
.global se_hatch_flourish
.align 2
@*********************** Track 01 ***********************@
se_unk_92_0: @ 0x0869F984
.byte KEYSH , se_unk_92_key+0
.byte TEMPO , 174*se_unk_92_tbs/2
se_hatch_flourish_0: @ 0x0869F984
.byte KEYSH , se_hatch_flourish_key+0
.byte TEMPO , 174*se_hatch_flourish_tbs/2
.byte VOICE , 46
.byte XCMD , xIECV , 8
.byte xIECL , 8
.byte VOL , 80*se_unk_92_mvl/mxv
.byte VOL , 80*se_hatch_flourish_mvl/mxv
.byte PAN , c_v+48
.byte W08
.byte N04 , Bn3 , v100
@ -39,12 +39,12 @@ se_unk_92_0: @ 0x0869F984
@*********************** Track 02 ***********************@
se_unk_92_1: @ 0x0869F9A4
.byte KEYSH , se_unk_92_key+0
se_hatch_flourish_1: @ 0x0869F9A4
.byte KEYSH , se_hatch_flourish_key+0
.byte VOICE , 46
.byte XCMD , xIECV , 8
.byte xIECL , 8
.byte VOL , 80*se_unk_92_mvl/mxv
.byte VOL , 80*se_hatch_flourish_mvl/mxv
.byte W08
.byte PAN , c_v-16
.byte N04 , En4 , v100
@ -65,12 +65,12 @@ se_unk_92_1: @ 0x0869F9A4
@*********************** Track 03 ***********************@
se_unk_92_2: @ 0x0869F9C8
.byte KEYSH , se_unk_92_key+0
se_hatch_flourish_2: @ 0x0869F9C8
.byte KEYSH , se_hatch_flourish_key+0
.byte VOICE , 46
.byte XCMD , xIECV , 8
.byte xIECL , 8
.byte VOL , 80*se_unk_92_mvl/mxv
.byte VOL , 80*se_hatch_flourish_mvl/mxv
.byte PAN , c_v-48
.byte W08
.byte N04 , Gs3 , v068
@ -88,12 +88,12 @@ se_unk_92_2: @ 0x0869F9C8
@*********************** Track 04 ***********************@
se_unk_92_3: @ 0x0869F9E6
.byte KEYSH , se_unk_92_key+0
se_hatch_flourish_3: @ 0x0869F9E6
.byte KEYSH , se_hatch_flourish_key+0
.byte VOICE , 84
.byte XCMD , xIECV , 8
.byte xIECL , 8
.byte VOL , 80*se_unk_92_mvl/mxv
.byte VOL , 80*se_hatch_flourish_mvl/mxv
.byte W08
.byte N04 , Bn3 , v048
.byte W04
@ -111,26 +111,26 @@ se_unk_92_3: @ 0x0869F9E6
.byte W10
.byte MOD , 5
.byte W03
.byte VOL , 63*se_unk_92_mvl/mxv
.byte VOL , 63*se_hatch_flourish_mvl/mxv
.byte W03
.byte 42*se_unk_92_mvl/mxv
.byte 42*se_hatch_flourish_mvl/mxv
.byte W03
.byte 22*se_unk_92_mvl/mxv
.byte 22*se_hatch_flourish_mvl/mxv
.byte W03
.byte 9*se_unk_92_mvl/mxv
.byte 9*se_hatch_flourish_mvl/mxv
.byte W03
.byte 0*se_unk_92_mvl/mxv
.byte 0*se_hatch_flourish_mvl/mxv
.byte W15
.byte FINE
@*********************** Track 05 ***********************@
se_unk_92_4: @ 0x0869FA18
.byte KEYSH , se_unk_92_key+0
se_hatch_flourish_4: @ 0x0869FA18
.byte KEYSH , se_hatch_flourish_key+0
.byte VOICE , 85
.byte XCMD , xIECV , 8
.byte xIECL , 8
.byte VOL , 80*se_unk_92_mvl/mxv
.byte VOL , 80*se_hatch_flourish_mvl/mxv
.byte W08
.byte N04 , En4 , v048
.byte W04
@ -148,15 +148,15 @@ se_unk_92_4: @ 0x0869FA18
.byte W10
.byte MOD , 5
.byte W03
.byte VOL , 63*se_unk_92_mvl/mxv
.byte VOL , 63*se_hatch_flourish_mvl/mxv
.byte W03
.byte 42*se_unk_92_mvl/mxv
.byte 42*se_hatch_flourish_mvl/mxv
.byte W03
.byte 22*se_unk_92_mvl/mxv
.byte 22*se_hatch_flourish_mvl/mxv
.byte W03
.byte 9*se_unk_92_mvl/mxv
.byte 9*se_hatch_flourish_mvl/mxv
.byte W03
.byte 0*se_unk_92_mvl/mxv
.byte 0*se_hatch_flourish_mvl/mxv
.byte W15
.byte FINE
@ -164,17 +164,17 @@ se_unk_92_4: @ 0x0869FA18
.align 2
se_unk_92: @ 0x0869FA4C
se_hatch_flourish: @ 0x0869FA4C
.byte 5 @ NumTrks
.byte 0 @ NumBlks
.byte se_unk_92_pri @ Priority
.byte se_unk_92_rev @ Reverb
.byte se_hatch_flourish_pri @ Priority
.byte se_hatch_flourish_rev @ Reverb
.word se_unk_92_grp
.word se_hatch_flourish_grp
.word se_unk_92_0
.word se_unk_92_1
.word se_unk_92_2
.word se_unk_92_3
.word se_unk_92_4
.word se_hatch_flourish_0
.word se_hatch_flourish_1
.word se_hatch_flourish_2
.word se_hatch_flourish_3
.word se_hatch_flourish_4
@ 0x0869FA68

View File

@ -0,0 +1,61 @@
.include "sound/MPlayDef.s"
.equ se_kickback_thunderwave_grp, gUnknown_08531D4C
.equ se_kickback_thunderwave_pri, 5
.equ se_kickback_thunderwave_rev, reverb_set+50
.equ se_kickback_thunderwave_mvl, 127
.equ se_kickback_thunderwave_key, 0
.equ se_kickback_thunderwave_tbs, 1
.equ se_kickback_thunderwave_exg, 0
.equ se_kickback_thunderwave_cmp, 1
.section .rodata
.global se_kickback_thunderwave
.align 2
@*********************** Track 01 ***********************@
se_kickback_thunderwave_0: @ 0x0869F2D4
.byte KEYSH , se_kickback_thunderwave_key+0
.byte TEMPO , 150*se_kickback_thunderwave_tbs/2
.byte VOICE , 38
.byte BENDR , 2
.byte VOL , 100*se_kickback_thunderwave_mvl/mxv
.byte BEND , c_v+0
.byte TIE , Fs4 , v080
.byte W24
.byte W24
.byte W24
.byte W24
.byte EOT
.byte FINE
@*********************** Track 02 ***********************@
se_kickback_thunderwave_1: @ 0x0869F2E9
.byte KEYSH , se_kickback_thunderwave_key+0
.byte VOICE , 27
.byte VOL , 100*se_kickback_thunderwave_mvl/mxv
.byte TIE , Fn3 , v032
.byte W24
.byte W24
.byte W24
.byte W24
.byte EOT
.byte FINE
@******************************************************@
.align 2
se_kickback_thunderwave: @ 0x0869F2F8
.byte 2 @ NumTrks
.byte 0 @ NumBlks
.byte se_kickback_thunderwave_pri @ Priority
.byte se_kickback_thunderwave_rev @ Reverb
.word se_kickback_thunderwave_grp
.word se_kickback_thunderwave_0
.word se_kickback_thunderwave_1
@ 0x0869F308

View File

@ -0,0 +1,64 @@
.include "sound/MPlayDef.s"
.equ se_lati_delivery_grp, gUnknown_08531D4C
.equ se_lati_delivery_pri, 5
.equ se_lati_delivery_rev, reverb_set+50
.equ se_lati_delivery_mvl, 127
.equ se_lati_delivery_key, 0
.equ se_lati_delivery_tbs, 1
.equ se_lati_delivery_exg, 0
.equ se_lati_delivery_cmp, 1
.section .rodata
.global se_lati_delivery
.align 2
@*********************** Track 01 ***********************@
se_lati_delivery_0: @ 0x0869FB24
.byte KEYSH , se_lati_delivery_key+0
.byte TEMPO , 150*se_lati_delivery_tbs/2
.byte VOICE , 22
.byte BENDR , 12
.byte VOL , 120*se_lati_delivery_mvl/mxv
.byte BEND , c_v+12
.byte N06 , An2 , v127
.byte W03
.byte VOL , 78*se_lati_delivery_mvl/mxv
.byte BEND , c_v+20
.byte W03
.byte VOL , 120*se_lati_delivery_mvl/mxv
.byte BEND , c_v+36
.byte N18 , Cn3
.byte W02
.byte BEND , c_v+35
.byte W03
.byte c_v+32
.byte W02
.byte c_v+26
.byte W03
.byte VOL , 102*se_lati_delivery_mvl/mxv
.byte BEND , c_v+18
.byte W02
.byte VOL , 68*se_lati_delivery_mvl/mxv
.byte BEND , c_v+7
.byte W03
.byte VOL , 34*se_lati_delivery_mvl/mxv
.byte BEND , c_v-9
.byte W03
.byte FINE
@******************************************************@
.align 2
se_lati_delivery: @ 0x0869FB58
.byte 1 @ NumTrks
.byte 0 @ NumBlks
.byte se_lati_delivery_pri @ Priority
.byte se_lati_delivery_rev @ Reverb
.word se_lati_delivery_grp
.word se_lati_delivery_0
@ 0x0869FB64

View File

@ -0,0 +1,43 @@
.include "sound/MPlayDef.s"
.equ se_pichu_in_position_chirp_grp, gUnknown_08532310
.equ se_pichu_in_position_chirp_pri, 5
.equ se_pichu_in_position_chirp_rev, reverb_set+50
.equ se_pichu_in_position_chirp_mvl, 127
.equ se_pichu_in_position_chirp_key, 0
.equ se_pichu_in_position_chirp_tbs, 1
.equ se_pichu_in_position_chirp_exg, 0
.equ se_pichu_in_position_chirp_cmp, 1
.section .rodata
.global se_pichu_in_position_chirp
.align 2
@*********************** Track 01 ***********************@
se_pichu_in_position_chirp_0: @ 0x0869F18C
.byte KEYSH , se_pichu_in_position_chirp_key+0
.byte TEMPO , 150*se_pichu_in_position_chirp_tbs/2
.byte VOL , 90*se_pichu_in_position_chirp_mvl/mxv
.byte PAN , c_v+0
.byte VOICE , 23
.byte N02 , Fn6 , v127
.byte W02
.byte N02 , Fn7 , v127
.byte W02
.byte FINE
@******************************************************@
.align 2
se_pichu_in_position_chirp: @ 0x0869F1A0
.byte 1 @ NumTrks
.byte 0 @ NumBlks
.byte se_pichu_in_position_chirp_pri @ Priority
.byte se_pichu_in_position_chirp_rev @ Reverb
.word se_pichu_in_position_chirp_grp
.word se_pichu_in_position_chirp_0
@ 0x0869F1AC

View File

@ -0,0 +1,43 @@
.include "sound/MPlayDef.s"
.equ se_pichu_kickback_grp, gUnknown_08532310
.equ se_pichu_kickback_pri, 5
.equ se_pichu_kickback_rev, reverb_set+50
.equ se_pichu_kickback_mvl, 127
.equ se_pichu_kickback_key, 0
.equ se_pichu_kickback_tbs, 1
.equ se_pichu_kickback_exg, 0
.equ se_pichu_kickback_cmp, 1
.section .rodata
.global se_pichu_kickback
.align 2
@*********************** Track 01 ***********************@
se_pichu_kickback_0: @ 0x086A0354
.byte KEYSH , se_pichu_kickback_key+0
.byte TEMPO , 150*se_pichu_kickback_tbs/2
.byte VOL , 127*se_pichu_kickback_mvl/mxv
.byte PAN , c_v+0
.byte VOICE , 105
.byte TIE , Cn3 , v127
.byte W96
.byte W96
.byte EOT
.byte FINE
@******************************************************@
.align 2
se_pichu_kickback: @ 0x086A0368
.byte 1 @ NumTrks
.byte 0 @ NumBlks
.byte se_pichu_kickback_pri @ Priority
.byte se_pichu_kickback_rev @ Reverb
.word se_pichu_kickback_grp
.word se_pichu_kickback_0
@ 0x086A0374

View File

@ -1,24 +1,24 @@
.include "sound/MPlayDef.s"
.equ se_unk_7a_grp, gUnknown_08532310
.equ se_unk_7a_pri, 5
.equ se_unk_7a_rev, reverb_set+50
.equ se_unk_7a_mvl, 127
.equ se_unk_7a_key, 0
.equ se_unk_7a_tbs, 1
.equ se_unk_7a_exg, 0
.equ se_unk_7a_cmp, 1
.equ se_pika_full_charge_1_up_grp, gUnknown_08532310
.equ se_pika_full_charge_1_up_pri, 5
.equ se_pika_full_charge_1_up_rev, reverb_set+50
.equ se_pika_full_charge_1_up_mvl, 127
.equ se_pika_full_charge_1_up_key, 0
.equ se_pika_full_charge_1_up_tbs, 1
.equ se_pika_full_charge_1_up_exg, 0
.equ se_pika_full_charge_1_up_cmp, 1
.section .rodata
.global se_unk_7a
.global se_pika_full_charge_1_up
.align 2
@*********************** Track 01 ***********************@
se_unk_7a_0: @ 0x0869F24C
.byte KEYSH , se_unk_7a_key+0
.byte TEMPO , 150*se_unk_7a_tbs/2
.byte VOL , 80*se_unk_7a_mvl/mxv
se_pika_full_charge_1_up_0: @ 0x0869F24C
.byte KEYSH , se_pika_full_charge_1_up_key+0
.byte TEMPO , 150*se_pika_full_charge_1_up_tbs/2
.byte VOL , 80*se_pika_full_charge_1_up_mvl/mxv
.byte PAN , c_v+0
.byte VOICE , 12
.byte N03 , An5 , v127
@ -63,13 +63,13 @@ se_unk_7a_0: @ 0x0869F24C
.align 2
se_unk_7a: @ 0x0869F2A0
se_pika_full_charge_1_up: @ 0x0869F2A0
.byte 1 @ NumTrks
.byte 0 @ NumBlks
.byte se_unk_7a_pri @ Priority
.byte se_unk_7a_rev @ Reverb
.byte se_pika_full_charge_1_up_pri @ Priority
.byte se_pika_full_charge_1_up_rev @ Reverb
.word se_unk_7a_grp
.word se_pika_full_charge_1_up_grp
.word se_unk_7a_0
.word se_pika_full_charge_1_up_0
@ 0x0869F2AC

View File

@ -0,0 +1,42 @@
.include "sound/MPlayDef.s"
.equ se_pika_no_kickback_grp, gUnknown_08532310
.equ se_pika_no_kickback_pri, 5
.equ se_pika_no_kickback_rev, reverb_set+50
.equ se_pika_no_kickback_mvl, 127
.equ se_pika_no_kickback_key, 0
.equ se_pika_no_kickback_tbs, 1
.equ se_pika_no_kickback_exg, 0
.equ se_pika_no_kickback_cmp, 1
.section .rodata
.global se_pika_no_kickback
.align 2
@*********************** Track 01 ***********************@
se_pika_no_kickback_0: @ 0x086A2F90
.byte KEYSH , se_pika_no_kickback_key+0
.byte TEMPO , 150*se_pika_no_kickback_tbs/2
.byte VOL , 127*se_pika_no_kickback_mvl/mxv
.byte PAN , c_v+0
.byte VOICE , 102
.byte TIE , Cn3 , v127
.byte W48
.byte EOT
.byte FINE
@******************************************************@
.align 2
se_pika_no_kickback: @ 0x086A2FA0
.byte 1 @ NumTrks
.byte 0 @ NumBlks
.byte se_pika_no_kickback_pri @ Priority
.byte se_pika_no_kickback_rev @ Reverb
.word se_pika_no_kickback_grp
.word se_pika_no_kickback_0
@ 0x086A2FAC

View File

@ -0,0 +1,46 @@
.include "sound/MPlayDef.s"
.equ se_pika_spinner_clack_grp, gUnknown_08531D4C
.equ se_pika_spinner_clack_pri, 5
.equ se_pika_spinner_clack_rev, reverb_set+50
.equ se_pika_spinner_clack_mvl, 127
.equ se_pika_spinner_clack_key, 0
.equ se_pika_spinner_clack_tbs, 1
.equ se_pika_spinner_clack_exg, 0
.equ se_pika_spinner_clack_cmp, 1
.section .rodata
.global se_pika_spinner_clack
.align 2
@*********************** Track 01 ***********************@
se_pika_spinner_clack_0: @ 0x0869F228
.byte KEYSH , se_pika_spinner_clack_key+0
.byte TEMPO , 150*se_pika_spinner_clack_tbs/2
.byte VOICE , 26
.byte BENDR , 12
.byte PAN , c_v+0
.byte VOL , 95*se_pika_spinner_clack_mvl/mxv
.byte BEND , c_v+0
.byte N01 , Cn3 , v127
.byte W03
.byte W03
.byte Gn3
.byte W03
.byte FINE
@******************************************************@
.align 2
se_pika_spinner_clack: @ 0x0869F240
.byte 1 @ NumTrks
.byte 0 @ NumBlks
.byte se_pika_spinner_clack_pri @ Priority
.byte se_pika_spinner_clack_rev @ Reverb
.word se_pika_spinner_clack_grp
.word se_pika_spinner_clack_0
@ 0x0869F24C

View File

@ -0,0 +1,43 @@
.include "sound/MPlayDef.s"
.equ se_pikachu_kickback_grp, gUnknown_08532310
.equ se_pikachu_kickback_pri, 5
.equ se_pikachu_kickback_rev, reverb_set+50
.equ se_pikachu_kickback_mvl, 127
.equ se_pikachu_kickback_key, 0
.equ se_pikachu_kickback_tbs, 1
.equ se_pikachu_kickback_exg, 0
.equ se_pikachu_kickback_cmp, 1
.section .rodata
.global se_pikachu_kickback
.align 2
@*********************** Track 01 ***********************@
se_pikachu_kickback_0: @ 0x086A0314
.byte KEYSH , se_pikachu_kickback_key+0
.byte TEMPO , 150*se_pikachu_kickback_tbs/2
.byte VOL , 127*se_pikachu_kickback_mvl/mxv
.byte PAN , c_v+0
.byte VOICE , 101
.byte TIE , Cn3 , v127
.byte W96
.byte W96
.byte EOT
.byte FINE
@******************************************************@
.align 2
se_pikachu_kickback: @ 0x086A0328
.byte 1 @ NumTrks
.byte 0 @ NumBlks
.byte se_pikachu_kickback_pri @ Priority
.byte se_pikachu_kickback_rev @ Reverb
.word se_pikachu_kickback_grp
.word se_pikachu_kickback_0
@ 0x086A0334

View File

@ -0,0 +1,53 @@
.include "sound/MPlayDef.s"
.equ se_roulette_tick_grp, gUnknown_08531D4C
.equ se_roulette_tick_pri, 5
.equ se_roulette_tick_rev, reverb_set+50
.equ se_roulette_tick_mvl, 127
.equ se_roulette_tick_key, 0
.equ se_roulette_tick_tbs, 1
.equ se_roulette_tick_exg, 0
.equ se_roulette_tick_cmp, 1
.section .rodata
.global se_roulette_tick
.align 2
@*********************** Track 01 ***********************@
se_roulette_tick_0: @ 0x0869F440
.byte KEYSH , se_roulette_tick_key+0
.byte TEMPO , 150*se_roulette_tick_tbs/2
.byte VOICE , 16
.byte VOL , 100*se_roulette_tick_mvl/mxv
.byte BEND , c_v+1
.byte N12 , Dn4 , v088
.byte W12
.byte FINE
@*********************** Track 02 ***********************@
se_roulette_tick_1: @ 0x0869F44F
.byte KEYSH , se_roulette_tick_key+0
.byte VOICE , 17
.byte VOL , 100*se_roulette_tick_mvl/mxv
.byte BEND , c_v+0
.byte N09 , Dn4 , v072
.byte W12
.byte FINE
@******************************************************@
.align 2
se_roulette_tick: @ 0x0869F45C
.byte 2 @ NumTrks
.byte 0 @ NumBlks
.byte se_roulette_tick_pri @ Priority
.byte se_roulette_tick_rev @ Reverb
.word se_roulette_tick_grp
.word se_roulette_tick_0
.word se_roulette_tick_1
@ 0x0869F46C

View File

@ -0,0 +1,45 @@
.include "sound/MPlayDef.s"
.equ se_saver_plunger_drop_grp, gUnknown_08531D4C
.equ se_saver_plunger_drop_pri, 5
.equ se_saver_plunger_drop_rev, reverb_set+50
.equ se_saver_plunger_drop_mvl, 127
.equ se_saver_plunger_drop_key, 0
.equ se_saver_plunger_drop_tbs, 1
.equ se_saver_plunger_drop_exg, 0
.equ se_saver_plunger_drop_cmp, 1
.section .rodata
.global se_saver_plunger_drop
.align 2
@*********************** Track 01 ***********************@
se_saver_plunger_drop_0: @ 0x0869FB64
.byte KEYSH , se_saver_plunger_drop_key+0
.byte TEMPO , 150*se_saver_plunger_drop_tbs/2
.byte VOICE , 2
.byte BENDR , 12
.byte VOL , 110*se_saver_plunger_drop_mvl/mxv
.byte PAN , c_v+0
.byte BEND , c_v+0
.byte N02 , Gn3 , v112
.byte W04
.byte Gn4 , v064
.byte W02
.byte FINE
@******************************************************@
.align 2
se_saver_plunger_drop: @ 0x0869FB7C
.byte 1 @ NumTrks
.byte 0 @ NumBlks
.byte se_saver_plunger_drop_pri @ Priority
.byte se_saver_plunger_drop_rev @ Reverb
.word se_saver_plunger_drop_grp
.word se_saver_plunger_drop_0
@ 0x0869FB88

View File

@ -0,0 +1,75 @@
.include "sound/MPlayDef.s"
.equ se_shop_list_reveal_grp, gUnknown_08531D4C
.equ se_shop_list_reveal_pri, 5
.equ se_shop_list_reveal_rev, reverb_set+50
.equ se_shop_list_reveal_mvl, 127
.equ se_shop_list_reveal_key, 0
.equ se_shop_list_reveal_tbs, 1
.equ se_shop_list_reveal_exg, 0
.equ se_shop_list_reveal_cmp, 1
.section .rodata
.global se_shop_list_reveal
.align 2
@*********************** Track 01 ***********************@
se_shop_list_reveal_0: @ 0x0869F900
.byte KEYSH , se_shop_list_reveal_key+0
.byte TEMPO , 150*se_shop_list_reveal_tbs/2
.byte VOICE , 36
.byte BENDR , 12
.byte PAN , c_v-32
.byte VOL , 16*se_shop_list_reveal_mvl/mxv
.byte BEND , c_v+1
.byte N09 , Gn5 , v032
.byte W01
.byte VOL , 63*se_shop_list_reveal_mvl/mxv
.byte W01
.byte 98*se_shop_list_reveal_mvl/mxv
.byte W01
.byte 110*se_shop_list_reveal_mvl/mxv
.byte W01
.byte 99*se_shop_list_reveal_mvl/mxv
.byte BEND , c_v+5
.byte W02
.byte VOL , 63*se_shop_list_reveal_mvl/mxv
.byte BEND , c_v+13
.byte W01
.byte VOL , 22*se_shop_list_reveal_mvl/mxv
.byte BEND , c_v+21
.byte W01
.byte VOL , 9*se_shop_list_reveal_mvl/mxv
.byte BEND , c_v+33
.byte W04
.byte FINE
@*********************** Track 02 ***********************@
se_shop_list_reveal_1: @ 0x0869F92D
.byte KEYSH , se_shop_list_reveal_key+0
.byte VOICE , 71
.byte PAN , c_v+32
.byte VOL , 110*se_shop_list_reveal_mvl/mxv
.byte BEND , c_v+1
.byte N09 , Fs4 , v060
.byte W06
.byte W06
.byte FINE
@******************************************************@
.align 2
se_shop_list_reveal: @ 0x0869F940
.byte 2 @ NumTrks
.byte 0 @ NumBlks
.byte se_shop_list_reveal_pri @ Priority
.byte se_shop_list_reveal_rev @ Reverb
.word se_shop_list_reveal_grp
.word se_shop_list_reveal_0
.word se_shop_list_reveal_1
@ 0x0869F950

View File

@ -0,0 +1,58 @@
.include "sound/MPlayDef.s"
.equ se_travel_painter_flight_grp, gUnknown_08531D4C
.equ se_travel_painter_flight_pri, 5
.equ se_travel_painter_flight_rev, reverb_set+50
.equ se_travel_painter_flight_mvl, 127
.equ se_travel_painter_flight_key, 0
.equ se_travel_painter_flight_tbs, 1
.equ se_travel_painter_flight_exg, 0
.equ se_travel_painter_flight_cmp, 1
.section .rodata
.global se_travel_painter_flight
.align 2
@*********************** Track 01 ***********************@
se_travel_painter_flight_0: @ 0x0869FB88
.byte KEYSH , se_travel_painter_flight_key+0
.byte TEMPO , 150*se_travel_painter_flight_tbs/2
.byte VOICE , 18
.byte BENDR , 12
.byte VOL , 55*se_travel_painter_flight_mvl/mxv
.byte PAN , c_v+0
.byte BEND , c_v+1
.byte N01 , Cn6 , v100
.byte W01
.byte VOL , 110*se_travel_painter_flight_mvl/mxv
.byte W01
.byte VOICE , 36
.byte VOL , 55*se_travel_painter_flight_mvl/mxv
.byte N02 , Gn6 , v080
.byte W01
.byte VOL , 110*se_travel_painter_flight_mvl/mxv
.byte W04
.byte PAN , c_v+20
.byte N01 , Gn6 , v024
.byte W03
.byte Gn6 , v016
.byte W02
.byte PAN , c_v-21
.byte W12
.byte FINE
@******************************************************@
.align 2
se_travel_painter_flight: @ 0x0869FBB8
.byte 1 @ NumTrks
.byte 0 @ NumBlks
.byte se_travel_painter_flight_pri @ Priority
.byte se_travel_painter_flight_rev @ Reverb
.word se_travel_painter_flight_grp
.word se_travel_painter_flight_0
@ 0x0869FBC4

View File

@ -0,0 +1,42 @@
.include "sound/MPlayDef.s"
.equ se_travel_painter_paints_grp, gUnknown_0853174C
.equ se_travel_painter_paints_pri, 5
.equ se_travel_painter_paints_rev, reverb_set+50
.equ se_travel_painter_paints_mvl, 127
.equ se_travel_painter_paints_key, 0
.equ se_travel_painter_paints_tbs, 1
.equ se_travel_painter_paints_exg, 0
.equ se_travel_painter_paints_cmp, 1
.section .rodata
.global se_travel_painter_paints
.align 2
@*********************** Track 01 ***********************@
se_travel_painter_paints_0: @ 0x0869FBC4
.byte KEYSH , se_travel_painter_paints_key+0
.byte TEMPO , 220*se_travel_painter_paints_tbs/2
.byte VOICE , 127
.byte VOL , 110*se_travel_painter_paints_mvl/mxv
.byte N03 , Ds3 , v127
.byte W03
.byte N15 , Gn4
.byte W21
.byte FINE
@******************************************************@
.align 2
se_travel_painter_paints: @ 0x0869FBD4
.byte 1 @ NumTrks
.byte 0 @ NumBlks
.byte se_travel_painter_paints_pri @ Priority
.byte se_travel_painter_paints_rev @ Reverb
.word se_travel_painter_paints_grp
.word se_travel_painter_paints_0
@ 0x0869FBE0

View File

@ -1,42 +0,0 @@
.include "sound/MPlayDef.s"
.equ se_unk_142_grp, gUnknown_08532310
.equ se_unk_142_pri, 5
.equ se_unk_142_rev, reverb_set+50
.equ se_unk_142_mvl, 127
.equ se_unk_142_key, 0
.equ se_unk_142_tbs, 1
.equ se_unk_142_exg, 0
.equ se_unk_142_cmp, 1
.section .rodata
.global se_unk_142
.align 2
@*********************** Track 01 ***********************@
se_unk_142_0: @ 0x086A2F90
.byte KEYSH , se_unk_142_key+0
.byte TEMPO , 150*se_unk_142_tbs/2
.byte VOL , 127*se_unk_142_mvl/mxv
.byte PAN , c_v+0
.byte VOICE , 102
.byte TIE , Cn3 , v127
.byte W48
.byte EOT
.byte FINE
@******************************************************@
.align 2
se_unk_142: @ 0x086A2FA0
.byte 1 @ NumTrks
.byte 0 @ NumBlks
.byte se_unk_142_pri @ Priority
.byte se_unk_142_rev @ Reverb
.word se_unk_142_grp
.word se_unk_142_0
@ 0x086A2FAC

View File

@ -1,40 +0,0 @@
.include "sound/MPlayDef.s"
.equ se_unk_6d_grp, gUnknown_08532310
.equ se_unk_6d_pri, 5
.equ se_unk_6d_rev, reverb_set+50
.equ se_unk_6d_mvl, 127
.equ se_unk_6d_key, 0
.equ se_unk_6d_tbs, 1
.equ se_unk_6d_exg, 0
.equ se_unk_6d_cmp, 1
.section .rodata
.global se_unk_6d
.align 2
@*********************** Track 01 ***********************@
se_unk_6d_0: @ 0x0869EFF8
.byte KEYSH , se_unk_6d_key+0
.byte TEMPO , 150*se_unk_6d_tbs/2
.byte VOICE , 4
.byte VOL , 100*se_unk_6d_mvl/mxv
.byte N04 , Fs4 , v127
.byte W06
.byte FINE
@******************************************************@
.align 2
se_unk_6d: @ 0x0869F008
.byte 1 @ NumTrks
.byte 0 @ NumBlks
.byte se_unk_6d_pri @ Priority
.byte se_unk_6d_rev @ Reverb
.word se_unk_6d_grp
.word se_unk_6d_0
@ 0x0869F014

View File

@ -1,43 +0,0 @@
.include "sound/MPlayDef.s"
.equ se_unk_75_grp, gUnknown_08532310
.equ se_unk_75_pri, 5
.equ se_unk_75_rev, reverb_set+50
.equ se_unk_75_mvl, 127
.equ se_unk_75_key, 0
.equ se_unk_75_tbs, 1
.equ se_unk_75_exg, 0
.equ se_unk_75_cmp, 1
.section .rodata
.global se_unk_75
.align 2
@*********************** Track 01 ***********************@
se_unk_75_0: @ 0x0869F18C
.byte KEYSH , se_unk_75_key+0
.byte TEMPO , 150*se_unk_75_tbs/2
.byte VOL , 90*se_unk_75_mvl/mxv
.byte PAN , c_v+0
.byte VOICE , 23
.byte N02 , Fn6 , v127
.byte W02
.byte N02 , Fn7 , v127
.byte W02
.byte FINE
@******************************************************@
.align 2
se_unk_75: @ 0x0869F1A0
.byte 1 @ NumTrks
.byte 0 @ NumBlks
.byte se_unk_75_pri @ Priority
.byte se_unk_75_rev @ Reverb
.word se_unk_75_grp
.word se_unk_75_0
@ 0x0869F1AC

View File

@ -1,46 +0,0 @@
.include "sound/MPlayDef.s"
.equ se_unk_79_grp, gUnknown_08531D4C
.equ se_unk_79_pri, 5
.equ se_unk_79_rev, reverb_set+50
.equ se_unk_79_mvl, 127
.equ se_unk_79_key, 0
.equ se_unk_79_tbs, 1
.equ se_unk_79_exg, 0
.equ se_unk_79_cmp, 1
.section .rodata
.global se_unk_79
.align 2
@*********************** Track 01 ***********************@
se_unk_79_0: @ 0x0869F228
.byte KEYSH , se_unk_79_key+0
.byte TEMPO , 150*se_unk_79_tbs/2
.byte VOICE , 26
.byte BENDR , 12
.byte PAN , c_v+0
.byte VOL , 95*se_unk_79_mvl/mxv
.byte BEND , c_v+0
.byte N01 , Cn3 , v127
.byte W03
.byte W03
.byte Gn3
.byte W03
.byte FINE
@******************************************************@
.align 2
se_unk_79: @ 0x0869F240
.byte 1 @ NumTrks
.byte 0 @ NumBlks
.byte se_unk_79_pri @ Priority
.byte se_unk_79_rev @ Reverb
.word se_unk_79_grp
.word se_unk_79_0
@ 0x0869F24C

View File

@ -1,61 +0,0 @@
.include "sound/MPlayDef.s"
.equ se_unk_7c_grp, gUnknown_08531D4C
.equ se_unk_7c_pri, 5
.equ se_unk_7c_rev, reverb_set+50
.equ se_unk_7c_mvl, 127
.equ se_unk_7c_key, 0
.equ se_unk_7c_tbs, 1
.equ se_unk_7c_exg, 0
.equ se_unk_7c_cmp, 1
.section .rodata
.global se_unk_7c
.align 2
@*********************** Track 01 ***********************@
se_unk_7c_0: @ 0x0869F2D4
.byte KEYSH , se_unk_7c_key+0
.byte TEMPO , 150*se_unk_7c_tbs/2
.byte VOICE , 38
.byte BENDR , 2
.byte VOL , 100*se_unk_7c_mvl/mxv
.byte BEND , c_v+0
.byte TIE , Fs4 , v080
.byte W24
.byte W24
.byte W24
.byte W24
.byte EOT
.byte FINE
@*********************** Track 02 ***********************@
se_unk_7c_1: @ 0x0869F2E9
.byte KEYSH , se_unk_7c_key+0
.byte VOICE , 27
.byte VOL , 100*se_unk_7c_mvl/mxv
.byte TIE , Fn3 , v032
.byte W24
.byte W24
.byte W24
.byte W24
.byte EOT
.byte FINE
@******************************************************@
.align 2
se_unk_7c: @ 0x0869F2F8
.byte 2 @ NumTrks
.byte 0 @ NumBlks
.byte se_unk_7c_pri @ Priority
.byte se_unk_7c_rev @ Reverb
.word se_unk_7c_grp
.word se_unk_7c_0
.word se_unk_7c_1
@ 0x0869F308

View File

@ -1,50 +0,0 @@
.include "sound/MPlayDef.s"
.equ se_unk_7e_grp, gUnknown_0853174C
.equ se_unk_7e_pri, 5
.equ se_unk_7e_rev, reverb_set+50
.equ se_unk_7e_mvl, 127
.equ se_unk_7e_key, 0
.equ se_unk_7e_tbs, 1
.equ se_unk_7e_exg, 0
.equ se_unk_7e_cmp, 1
.section .rodata
.global se_unk_7e
.align 2
@*********************** Track 01 ***********************@
se_unk_7e_0: @ 0x0869F338
.byte KEYSH , se_unk_7e_key+0
.byte TEMPO , 300*se_unk_7e_tbs/2
.byte VOICE , 87
.byte VOL , 80*se_unk_7e_mvl/mxv
.byte BEND , c_v+13
.byte N03 , As5 , v068
.byte W03
.byte Gn6 , v127
.byte W03
.byte Gn6 , v068
.byte W03
.byte Gn6 , v127
.byte W03
.byte VOICE , 88
.byte N06 , Gn6 , v068
.byte W06
.byte FINE
@******************************************************@
.align 2
se_unk_7e: @ 0x0869F358
.byte 1 @ NumTrks
.byte 0 @ NumBlks
.byte se_unk_7e_pri @ Priority
.byte se_unk_7e_rev @ Reverb
.word se_unk_7e_grp
.word se_unk_7e_0
@ 0x0869F364

View File

@ -1,103 +0,0 @@
.include "sound/MPlayDef.s"
.equ se_unk_80_grp, gUnknown_08531D4C
.equ se_unk_80_pri, 5
.equ se_unk_80_rev, reverb_set+50
.equ se_unk_80_mvl, 127
.equ se_unk_80_key, 0
.equ se_unk_80_tbs, 1
.equ se_unk_80_exg, 0
.equ se_unk_80_cmp, 1
.section .rodata
.global se_unk_80
.align 2
@*********************** Track 01 ***********************@
se_unk_80_0: @ 0x0869F3CC
.byte KEYSH , se_unk_80_key+0
.byte TEMPO , 220*se_unk_80_tbs/2
.byte VOICE , 41
.byte VOL , 110*se_unk_80_mvl/mxv
.byte BENDR , 12
.byte PAN , c_v+6
.byte BEND , c_v+0
.byte N02 , Cn4 , v127
.byte W03
.byte VOL , 104*se_unk_80_mvl/mxv
.byte W03
.byte 93*se_unk_80_mvl/mxv
.byte PAN , c_v-6
.byte N02 , Cn5
.byte W03
.byte VOL , 110*se_unk_80_mvl/mxv
.byte W01
.byte VOICE , 22
.byte PAN , c_v+0
.byte N24 , Cn4 , v060
.byte W02
.byte W02
.byte BEND , c_v+0
.byte W04
.byte c_v+1
.byte W03
.byte c_v+1
.byte W01
.byte VOL , 105*se_unk_80_mvl/mxv
.byte W02
.byte BEND , c_v+0
.byte W01
.byte VOL , 103*se_unk_80_mvl/mxv
.byte W02
.byte 91*se_unk_80_mvl/mxv
.byte BEND , c_v+0
.byte W03
.byte VOL , 77*se_unk_80_mvl/mxv
.byte BEND , c_v-1
.byte W02
.byte VOL , 61*se_unk_80_mvl/mxv
.byte BEND , c_v-2
.byte W01
.byte VOL , 38*se_unk_80_mvl/mxv
.byte W01
.byte 15*se_unk_80_mvl/mxv
.byte BEND , c_v-3
.byte W02
.byte FINE
@*********************** Track 02 ***********************@
se_unk_80_1: @ 0x0869F419
.byte KEYSH , se_unk_80_key+0
.byte VOICE , 4
.byte VOL , 110*se_unk_80_mvl/mxv
.byte N02 , Cn3 , v060
.byte W03
.byte Gn2
.byte W03
.byte Gs4
.byte W04
.byte Gs4 , v020
.byte W02
.byte W06
.byte W06
.byte W06
.byte W06
.byte FINE
@******************************************************@
.align 2
se_unk_80: @ 0x0869F430
.byte 2 @ NumTrks
.byte 0 @ NumBlks
.byte se_unk_80_pri @ Priority
.byte se_unk_80_rev @ Reverb
.word se_unk_80_grp
.word se_unk_80_0
.word se_unk_80_1
@ 0x0869F440

View File

@ -1,53 +0,0 @@
.include "sound/MPlayDef.s"
.equ se_unk_81_grp, gUnknown_08531D4C
.equ se_unk_81_pri, 5
.equ se_unk_81_rev, reverb_set+50
.equ se_unk_81_mvl, 127
.equ se_unk_81_key, 0
.equ se_unk_81_tbs, 1
.equ se_unk_81_exg, 0
.equ se_unk_81_cmp, 1
.section .rodata
.global se_unk_81
.align 2
@*********************** Track 01 ***********************@
se_unk_81_0: @ 0x0869F440
.byte KEYSH , se_unk_81_key+0
.byte TEMPO , 150*se_unk_81_tbs/2
.byte VOICE , 16
.byte VOL , 100*se_unk_81_mvl/mxv
.byte BEND , c_v+1
.byte N12 , Dn4 , v088
.byte W12
.byte FINE
@*********************** Track 02 ***********************@
se_unk_81_1: @ 0x0869F44F
.byte KEYSH , se_unk_81_key+0
.byte VOICE , 17
.byte VOL , 100*se_unk_81_mvl/mxv
.byte BEND , c_v+0
.byte N09 , Dn4 , v072
.byte W12
.byte FINE
@******************************************************@
.align 2
se_unk_81: @ 0x0869F45C
.byte 2 @ NumTrks
.byte 0 @ NumBlks
.byte se_unk_81_pri @ Priority
.byte se_unk_81_rev @ Reverb
.word se_unk_81_grp
.word se_unk_81_0
.word se_unk_81_1
@ 0x0869F46C

View File

@ -1,63 +0,0 @@
.include "sound/MPlayDef.s"
.equ se_unk_85_grp, gUnknown_0853174C
.equ se_unk_85_pri, 5
.equ se_unk_85_rev, reverb_set+50
.equ se_unk_85_mvl, 127
.equ se_unk_85_key, 0
.equ se_unk_85_tbs, 1
.equ se_unk_85_exg, 0
.equ se_unk_85_cmp, 1
.section .rodata
.global se_unk_85
.align 2
@*********************** Track 01 ***********************@
se_unk_85_0: @ 0x0869F59C
.byte KEYSH , se_unk_85_key+0
.byte TEMPO , 128*se_unk_85_tbs/2
.byte VOICE , 6
.byte BENDR , 12
.byte VOL , 90*se_unk_85_mvl/mxv
.byte BEND , c_v-1
.byte N01 , Ds3 , v127
.byte W02
.byte N03 , Gs3 , v100
.byte W05
.byte N16 , Fn5 , v072
.byte W05
.byte W12
.byte FINE
@*********************** Track 02 ***********************@
se_unk_85_1: @ 0x0869F5B6
.byte KEYSH , se_unk_85_key+0
.byte VOICE , 14
.byte VOL , 90*se_unk_85_mvl/mxv
.byte BEND , c_v-8
.byte W02
.byte N03 , Gs3 , v060
.byte W05
.byte N16 , Fn5
.byte W05
.byte W12
.byte FINE
@******************************************************@
.align 2
se_unk_85: @ 0x0869F5C8
.byte 2 @ NumTrks
.byte 0 @ NumBlks
.byte se_unk_85_pri @ Priority
.byte se_unk_85_rev @ Reverb
.word se_unk_85_grp
.word se_unk_85_0
.word se_unk_85_1
@ 0x0869F5D8

View File

@ -1,76 +0,0 @@
.include "sound/MPlayDef.s"
.equ se_unk_86_grp, gUnknown_08531D4C
.equ se_unk_86_pri, 5
.equ se_unk_86_rev, reverb_set+50
.equ se_unk_86_mvl, 127
.equ se_unk_86_key, 0
.equ se_unk_86_tbs, 1
.equ se_unk_86_exg, 0
.equ se_unk_86_cmp, 1
.section .rodata
.global se_unk_86
.align 2
@*********************** Track 01 ***********************@
se_unk_86_0: @ 0x0869F5D8
.byte KEYSH , se_unk_86_key+0
.byte TEMPO , 150*se_unk_86_tbs/2
.byte VOICE , 46
.byte VOL , 94*se_unk_86_mvl/mxv
.byte BENDR , 2
.byte LFOS , 40
.byte PAN , c_v+0
.byte BEND , c_v+15
.byte N06 , An5 , v112
.byte W01
.byte N15 , En6 , v104
.byte W02
.byte W01
.byte MOD , 5
.byte W02
.byte W03
.byte W03
.byte W03
.byte W01
.byte 0
.byte W02
.byte FINE
@*********************** Track 02 ***********************@
se_unk_86_1: @ 0x0869F5FB
.byte KEYSH , se_unk_86_key+0
.byte VOICE , 53
.byte BENDR , 2
.byte VOL , 43*se_unk_86_mvl/mxv
.byte PAN , c_v+0
.byte BEND , c_v+15
.byte N06 , An4 , v108
.byte W01
.byte N12 , Cs6 , v104
.byte W02
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte FINE
@******************************************************@
.align 2
se_unk_86: @ 0x0869F618
.byte 2 @ NumTrks
.byte 0 @ NumBlks
.byte se_unk_86_pri @ Priority
.byte se_unk_86_rev @ Reverb
.word se_unk_86_grp
.word se_unk_86_0
.word se_unk_86_1
@ 0x0869F628

View File

@ -1,82 +0,0 @@
.include "sound/MPlayDef.s"
.equ se_unk_8c_grp, gUnknown_0853174C
.equ se_unk_8c_pri, 5
.equ se_unk_8c_rev, reverb_set+50
.equ se_unk_8c_mvl, 127
.equ se_unk_8c_key, 0
.equ se_unk_8c_tbs, 1
.equ se_unk_8c_exg, 0
.equ se_unk_8c_cmp, 1
.section .rodata
.global se_unk_8c
.align 2
@*********************** Track 01 ***********************@
se_unk_8c_0: @ 0x0869F7D4
.byte KEYSH , se_unk_8c_key+0
.byte TEMPO , 90*se_unk_8c_tbs/2
.byte VOICE , 125
.byte VOL , 110*se_unk_8c_mvl/mxv
.byte BEND , c_v+0
.byte N03 , As2 , v100
.byte W03
.byte BEND , c_v-33
.byte N36 , Ds3
.byte W03
.byte BEND , c_v+0
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte FINE
@*********************** Track 02 ***********************@
se_unk_8c_1: @ 0x0869F7F6
.byte KEYSH , se_unk_8c_key+0
.byte VOICE , 0
.byte VOL , 110*se_unk_8c_mvl/mxv
.byte N03 , Cn3 , v127
.byte W03
.byte N18
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte W03
.byte FINE
@******************************************************@
.align 2
se_unk_8c: @ 0x0869F810
.byte 2 @ NumTrks
.byte 0 @ NumBlks
.byte se_unk_8c_pri @ Priority
.byte se_unk_8c_rev @ Reverb
.word se_unk_8c_grp
.word se_unk_8c_0
.word se_unk_8c_1
@ 0x0869F820

View File

@ -1,98 +0,0 @@
.include "sound/MPlayDef.s"
.equ se_unk_8d_grp, gUnknown_08531D4C
.equ se_unk_8d_pri, 5
.equ se_unk_8d_rev, reverb_set+50
.equ se_unk_8d_mvl, 127
.equ se_unk_8d_key, 0
.equ se_unk_8d_tbs, 1
.equ se_unk_8d_exg, 0
.equ se_unk_8d_cmp, 1
.section .rodata
.global se_unk_8d
.align 2
@*********************** Track 01 ***********************@
se_unk_8d_0: @ 0x0869F820
.byte KEYSH , se_unk_8d_key+0
.byte TEMPO , 220*se_unk_8d_tbs/2
.byte VOICE , 18
.byte BENDR , 12
.byte PAN , c_v+0
.byte VOL , 110*se_unk_8d_mvl/mxv
.byte BEND , c_v+0
.byte N09 , En3 , v112
.byte W03
.byte BEND , c_v+21
.byte W03
.byte c_v+0
.byte W03
.byte c_v+6
.byte N15 , En3 , v120
.byte W03
.byte BEND , c_v+2
.byte W03
.byte c_v-9
.byte W03
.byte c_v-29
.byte W06
.byte c_v+0
.byte N09 , Gn2
.byte W06
.byte BEND , c_v-8
.byte W03
.byte c_v-15
.byte TIE , Gs2 , v112
.byte W03
.byte BEND , c_v-4
.byte W09
.byte c_v-8
.byte W03
.byte W06
.byte c_v-13
.byte W03
.byte c_v-22
.byte W09
.byte c_v-32
.byte W06
.byte VOL , 102*se_unk_8d_mvl/mxv
.byte BEND , c_v-38
.byte W09
.byte VOL , 97*se_unk_8d_mvl/mxv
.byte W09
.byte 92*se_unk_8d_mvl/mxv
.byte BEND , c_v-45
.byte W06
.byte W03
.byte VOL , 83*se_unk_8d_mvl/mxv
.byte W06
.byte BEND , c_v-52
.byte W03
.byte VOL , 72*se_unk_8d_mvl/mxv
.byte W09
.byte 63*se_unk_8d_mvl/mxv
.byte W03
.byte W06
.byte 57*se_unk_8d_mvl/mxv
.byte W06
.byte 46*se_unk_8d_mvl/mxv
.byte W12
.byte EOT
.byte FINE
@******************************************************@
.align 2
se_unk_8d: @ 0x0869F87C
.byte 1 @ NumTrks
.byte 0 @ NumBlks
.byte se_unk_8d_pri @ Priority
.byte se_unk_8d_rev @ Reverb
.word se_unk_8d_grp
.word se_unk_8d_0
@ 0x0869F888

View File

@ -1,75 +0,0 @@
.include "sound/MPlayDef.s"
.equ se_unk_8f_grp, gUnknown_08531D4C
.equ se_unk_8f_pri, 5
.equ se_unk_8f_rev, reverb_set+50
.equ se_unk_8f_mvl, 127
.equ se_unk_8f_key, 0
.equ se_unk_8f_tbs, 1
.equ se_unk_8f_exg, 0
.equ se_unk_8f_cmp, 1
.section .rodata
.global se_unk_8f
.align 2
@*********************** Track 01 ***********************@
se_unk_8f_0: @ 0x0869F900
.byte KEYSH , se_unk_8f_key+0
.byte TEMPO , 150*se_unk_8f_tbs/2
.byte VOICE , 36
.byte BENDR , 12
.byte PAN , c_v-32
.byte VOL , 16*se_unk_8f_mvl/mxv
.byte BEND , c_v+1
.byte N09 , Gn5 , v032
.byte W01
.byte VOL , 63*se_unk_8f_mvl/mxv
.byte W01
.byte 98*se_unk_8f_mvl/mxv
.byte W01
.byte 110*se_unk_8f_mvl/mxv
.byte W01
.byte 99*se_unk_8f_mvl/mxv
.byte BEND , c_v+5
.byte W02
.byte VOL , 63*se_unk_8f_mvl/mxv
.byte BEND , c_v+13
.byte W01
.byte VOL , 22*se_unk_8f_mvl/mxv
.byte BEND , c_v+21
.byte W01
.byte VOL , 9*se_unk_8f_mvl/mxv
.byte BEND , c_v+33
.byte W04
.byte FINE
@*********************** Track 02 ***********************@
se_unk_8f_1: @ 0x0869F92D
.byte KEYSH , se_unk_8f_key+0
.byte VOICE , 71
.byte PAN , c_v+32
.byte VOL , 110*se_unk_8f_mvl/mxv
.byte BEND , c_v+1
.byte N09 , Fs4 , v060
.byte W06
.byte W06
.byte FINE
@******************************************************@
.align 2
se_unk_8f: @ 0x0869F940
.byte 2 @ NumTrks
.byte 0 @ NumBlks
.byte se_unk_8f_pri @ Priority
.byte se_unk_8f_rev @ Reverb
.word se_unk_8f_grp
.word se_unk_8f_0
.word se_unk_8f_1
@ 0x0869F950

View File

@ -1,54 +0,0 @@
.include "sound/MPlayDef.s"
.equ se_unk_91_grp, gUnknown_0853174C
.equ se_unk_91_pri, 5
.equ se_unk_91_rev, reverb_set+50
.equ se_unk_91_mvl, 127
.equ se_unk_91_key, 0
.equ se_unk_91_tbs, 1
.equ se_unk_91_exg, 0
.equ se_unk_91_cmp, 1
.section .rodata
.global se_unk_91
.align 2
@*********************** Track 01 ***********************@
se_unk_91_0: @ 0x0869F950
.byte KEYSH , se_unk_91_key+0
.byte TEMPO , 100*se_unk_91_tbs/2
.byte VOICE , 4
.byte BENDR , 12
.byte XCMD , xIECV , 10
.byte xIECL , 8
.byte VOL , 90*se_unk_91_mvl/mxv
.byte BEND , c_v+4
.byte N01 , Cn5 , v064
.byte W01
.byte Cn5 , v020
.byte W01
.byte Cn5 , v064
.byte W01
.byte Cn5 , v020
.byte W01
.byte Cn6 , v064
.byte W02
.byte Cn6 , v020
.byte W03
.byte FINE
@******************************************************@
.align 2
se_unk_91: @ 0x0869F978
.byte 1 @ NumTrks
.byte 0 @ NumBlks
.byte se_unk_91_pri @ Priority
.byte se_unk_91_rev @ Reverb
.word se_unk_91_grp
.word se_unk_91_0
@ 0x0869F984

View File

@ -1,84 +0,0 @@
.include "sound/MPlayDef.s"
.equ se_unk_94_grp, gUnknown_0853174C
.equ se_unk_94_pri, 5
.equ se_unk_94_rev, reverb_set+50
.equ se_unk_94_mvl, 127
.equ se_unk_94_key, 0
.equ se_unk_94_tbs, 1
.equ se_unk_94_exg, 0
.equ se_unk_94_cmp, 1
.section .rodata
.global se_unk_94
.align 2
@*********************** Track 01 ***********************@
se_unk_94_0: @ 0x0869FAD0
.byte KEYSH , se_unk_94_key+0
.byte TEMPO , 90*se_unk_94_tbs/2
.byte VOICE , 90
.byte VOL , 110*se_unk_94_mvl/mxv
.byte BEND , c_v+0
.byte N09 , Cn4 , v100
.byte W06
.byte W06
.byte W06
.byte W06
.byte W06
.byte FINE
@*********************** Track 02 ***********************@
se_unk_94_1: @ 0x0869FAE3
.byte KEYSH , se_unk_94_key+0
.byte VOICE , 124
.byte BENDR , 12
.byte VOL , 82*se_unk_94_mvl/mxv
.byte BEND , c_v+0
.byte N05 , Gs4 , v060
.byte W03
.byte VOL , 94*se_unk_94_mvl/mxv
.byte W03
.byte 103*se_unk_94_mvl/mxv
.byte N22
.byte W03
.byte VOL , 110*se_unk_94_mvl/mxv
.byte W03
.byte W06
.byte W06
.byte W06
.byte FINE
@*********************** Track 03 ***********************@
se_unk_94_2: @ 0x0869FAFE
.byte KEYSH , se_unk_94_key+0
.byte VOICE , 0
.byte VOL , 110*se_unk_94_mvl/mxv
.byte N06 , Cn3 , v080
.byte W06
.byte N18 , Cn3 , v092
.byte W06
.byte W06
.byte W06
.byte W06
.byte FINE
@******************************************************@
.align 2
se_unk_94: @ 0x0869FB10
.byte 3 @ NumTrks
.byte 0 @ NumBlks
.byte se_unk_94_pri @ Priority
.byte se_unk_94_rev @ Reverb
.word se_unk_94_grp
.word se_unk_94_0
.word se_unk_94_1
.word se_unk_94_2
@ 0x0869FB24

View File

@ -1,64 +0,0 @@
.include "sound/MPlayDef.s"
.equ se_unk_95_grp, gUnknown_08531D4C
.equ se_unk_95_pri, 5
.equ se_unk_95_rev, reverb_set+50
.equ se_unk_95_mvl, 127
.equ se_unk_95_key, 0
.equ se_unk_95_tbs, 1
.equ se_unk_95_exg, 0
.equ se_unk_95_cmp, 1
.section .rodata
.global se_unk_95
.align 2
@*********************** Track 01 ***********************@
se_unk_95_0: @ 0x0869FB24
.byte KEYSH , se_unk_95_key+0
.byte TEMPO , 150*se_unk_95_tbs/2
.byte VOICE , 22
.byte BENDR , 12
.byte VOL , 120*se_unk_95_mvl/mxv
.byte BEND , c_v+12
.byte N06 , An2 , v127
.byte W03
.byte VOL , 78*se_unk_95_mvl/mxv
.byte BEND , c_v+20
.byte W03
.byte VOL , 120*se_unk_95_mvl/mxv
.byte BEND , c_v+36
.byte N18 , Cn3
.byte W02
.byte BEND , c_v+35
.byte W03
.byte c_v+32
.byte W02
.byte c_v+26
.byte W03
.byte VOL , 102*se_unk_95_mvl/mxv
.byte BEND , c_v+18
.byte W02
.byte VOL , 68*se_unk_95_mvl/mxv
.byte BEND , c_v+7
.byte W03
.byte VOL , 34*se_unk_95_mvl/mxv
.byte BEND , c_v-9
.byte W03
.byte FINE
@******************************************************@
.align 2
se_unk_95: @ 0x0869FB58
.byte 1 @ NumTrks
.byte 0 @ NumBlks
.byte se_unk_95_pri @ Priority
.byte se_unk_95_rev @ Reverb
.word se_unk_95_grp
.word se_unk_95_0
@ 0x0869FB64

View File

@ -1,45 +0,0 @@
.include "sound/MPlayDef.s"
.equ se_unk_96_grp, gUnknown_08531D4C
.equ se_unk_96_pri, 5
.equ se_unk_96_rev, reverb_set+50
.equ se_unk_96_mvl, 127
.equ se_unk_96_key, 0
.equ se_unk_96_tbs, 1
.equ se_unk_96_exg, 0
.equ se_unk_96_cmp, 1
.section .rodata
.global se_unk_96
.align 2
@*********************** Track 01 ***********************@
se_unk_96_0: @ 0x0869FB64
.byte KEYSH , se_unk_96_key+0
.byte TEMPO , 150*se_unk_96_tbs/2
.byte VOICE , 2
.byte BENDR , 12
.byte VOL , 110*se_unk_96_mvl/mxv
.byte PAN , c_v+0
.byte BEND , c_v+0
.byte N02 , Gn3 , v112
.byte W04
.byte Gn4 , v064
.byte W02
.byte FINE
@******************************************************@
.align 2
se_unk_96: @ 0x0869FB7C
.byte 1 @ NumTrks
.byte 0 @ NumBlks
.byte se_unk_96_pri @ Priority
.byte se_unk_96_rev @ Reverb
.word se_unk_96_grp
.word se_unk_96_0
@ 0x0869FB88

View File

@ -1,58 +0,0 @@
.include "sound/MPlayDef.s"
.equ se_unk_97_grp, gUnknown_08531D4C
.equ se_unk_97_pri, 5
.equ se_unk_97_rev, reverb_set+50
.equ se_unk_97_mvl, 127
.equ se_unk_97_key, 0
.equ se_unk_97_tbs, 1
.equ se_unk_97_exg, 0
.equ se_unk_97_cmp, 1
.section .rodata
.global se_unk_97
.align 2
@*********************** Track 01 ***********************@
se_unk_97_0: @ 0x0869FB88
.byte KEYSH , se_unk_97_key+0
.byte TEMPO , 150*se_unk_97_tbs/2
.byte VOICE , 18
.byte BENDR , 12
.byte VOL , 55*se_unk_97_mvl/mxv
.byte PAN , c_v+0
.byte BEND , c_v+1
.byte N01 , Cn6 , v100
.byte W01
.byte VOL , 110*se_unk_97_mvl/mxv
.byte W01
.byte VOICE , 36
.byte VOL , 55*se_unk_97_mvl/mxv
.byte N02 , Gn6 , v080
.byte W01
.byte VOL , 110*se_unk_97_mvl/mxv
.byte W04
.byte PAN , c_v+20
.byte N01 , Gn6 , v024
.byte W03
.byte Gn6 , v016
.byte W02
.byte PAN , c_v-21
.byte W12
.byte FINE
@******************************************************@
.align 2
se_unk_97: @ 0x0869FBB8
.byte 1 @ NumTrks
.byte 0 @ NumBlks
.byte se_unk_97_pri @ Priority
.byte se_unk_97_rev @ Reverb
.word se_unk_97_grp
.word se_unk_97_0
@ 0x0869FBC4

View File

@ -1,42 +0,0 @@
.include "sound/MPlayDef.s"
.equ se_unk_98_grp, gUnknown_0853174C
.equ se_unk_98_pri, 5
.equ se_unk_98_rev, reverb_set+50
.equ se_unk_98_mvl, 127
.equ se_unk_98_key, 0
.equ se_unk_98_tbs, 1
.equ se_unk_98_exg, 0
.equ se_unk_98_cmp, 1
.section .rodata
.global se_unk_98
.align 2
@*********************** Track 01 ***********************@
se_unk_98_0: @ 0x0869FBC4
.byte KEYSH , se_unk_98_key+0
.byte TEMPO , 220*se_unk_98_tbs/2
.byte VOICE , 127
.byte VOL , 110*se_unk_98_mvl/mxv
.byte N03 , Ds3 , v127
.byte W03
.byte N15 , Gn4
.byte W21
.byte FINE
@******************************************************@
.align 2
se_unk_98: @ 0x0869FBD4
.byte 1 @ NumTrks
.byte 0 @ NumBlks
.byte se_unk_98_pri @ Priority
.byte se_unk_98_rev @ Reverb
.word se_unk_98_grp
.word se_unk_98_0
@ 0x0869FBE0

View File

@ -1,43 +0,0 @@
.include "sound/MPlayDef.s"
.equ se_unk_b1_grp, gUnknown_08532310
.equ se_unk_b1_pri, 5
.equ se_unk_b1_rev, reverb_set+50
.equ se_unk_b1_mvl, 127
.equ se_unk_b1_key, 0
.equ se_unk_b1_tbs, 1
.equ se_unk_b1_exg, 0
.equ se_unk_b1_cmp, 1
.section .rodata
.global se_unk_b1
.align 2
@*********************** Track 01 ***********************@
se_unk_b1_0: @ 0x086A0314
.byte KEYSH , se_unk_b1_key+0
.byte TEMPO , 150*se_unk_b1_tbs/2
.byte VOL , 127*se_unk_b1_mvl/mxv
.byte PAN , c_v+0
.byte VOICE , 101
.byte TIE , Cn3 , v127
.byte W96
.byte W96
.byte EOT
.byte FINE
@******************************************************@
.align 2
se_unk_b1: @ 0x086A0328
.byte 1 @ NumTrks
.byte 0 @ NumBlks
.byte se_unk_b1_pri @ Priority
.byte se_unk_b1_rev @ Reverb
.word se_unk_b1_grp
.word se_unk_b1_0
@ 0x086A0334

View File

@ -1,43 +0,0 @@
.include "sound/MPlayDef.s"
.equ se_unk_b3_grp, gUnknown_08532310
.equ se_unk_b3_pri, 5
.equ se_unk_b3_rev, reverb_set+50
.equ se_unk_b3_mvl, 127
.equ se_unk_b3_key, 0
.equ se_unk_b3_tbs, 1
.equ se_unk_b3_exg, 0
.equ se_unk_b3_cmp, 1
.section .rodata
.global se_unk_b3
.align 2
@*********************** Track 01 ***********************@
se_unk_b3_0: @ 0x086A0354
.byte KEYSH , se_unk_b3_key+0
.byte TEMPO , 150*se_unk_b3_tbs/2
.byte VOL , 127*se_unk_b3_mvl/mxv
.byte PAN , c_v+0
.byte VOICE , 105
.byte TIE , Cn3 , v127
.byte W96
.byte W96
.byte EOT
.byte FINE
@******************************************************@
.align 2
se_unk_b3: @ 0x086A0368
.byte 1 @ NumTrks
.byte 0 @ NumBlks
.byte se_unk_b3_pri @ Priority
.byte se_unk_b3_rev @ Reverb
.word se_unk_b3_grp
.word se_unk_b3_0
@ 0x086A0374

View File

@ -292,7 +292,7 @@ void ProcessTiltInput(void)
int i;
s16 sp0[4];
if (gCurrentPinballGame->ballCatchState == 0 && gCurrentPinballGame->captureState != 2 && gCurrentPinballGame->entityOverlayCollisionState == 0)
if (gCurrentPinballGame->ballCatchState == NOT_TRAPPED && gCurrentPinballGame->captureState != 2 && gCurrentPinballGame->kickbackFiring == 0)
{
if (gCurrentPinballGame->newButtonActions[2])
{
@ -452,7 +452,7 @@ void ProcessMainBoardBallDrainAndLaunch(void)
gCurrentPinballGame->ball->velocity.y = 0;
if (gMain.modeChangeDelayTimer == 0)
{
if (gCurrentPinballGame->modeTimeRemaining)
if (gCurrentPinballGame->saverTimeRemaining)
{
gMain.modeChangeDelayTimer = 4;
gMain.pendingModeChangeType = 8;
@ -468,8 +468,8 @@ void ProcessMainBoardBallDrainAndLaunch(void)
ResetBoardStateOnDeath();
if (gCurrentPinballGame->outLanePikaPosition == 2 && gMain.eReaderBonuses[EREADER_DX_MODE_CARD] == 0)
{
gCurrentPinballGame->pikaRescuePath = 2;
gCurrentPinballGame->pikaSaverTimer = 800;
gCurrentPinballGame->pichuWalkMode = 2;
gCurrentPinballGame->pichuEntranceTimer = 800;
gCurrentPinballGame->outLanePikaPosition = 0;
}
}
@ -538,20 +538,20 @@ void ResetBoardStateOnDeath(void)
gCurrentPinballGame->holeIndicators[2] = gCurrentPinballGame->holeIndicators[0];
gCurrentPinballGame->holeIndicators[3] = gCurrentPinballGame->holeIndicators[0];
gCurrentPinballGame->pikaSpinMomentum = 0;
gCurrentPinballGame->catchOverlayFrameTimer = 0;
gCurrentPinballGame->catchOverlayKeyframeIndex = 0;
gCurrentPinballGame->kickbackAnimFrameTimer = 0;
gCurrentPinballGame->kickbackFrameId = 0;
if (gCurrentPinballGame->outLanePikaPosition != 2 || !gMain.eReaderBonuses[EREADER_DX_MODE_CARD])
{
gCurrentPinballGame->pikaChargeTarget = 0;
gCurrentPinballGame->pikaChargeProgress = 0;
gCurrentPinballGame->prevCatchCounterValue = 0;
gCurrentPinballGame->catchCounterValue = 0;
gCurrentPinballGame->catchCounterXShift = 0;
gCurrentPinballGame->catchCounterSlideOffsetY = -4;
gCurrentPinballGame->catchCounterAnimState = 0x100;
gCurrentPinballGame->catchCounterScaleY = 0x100;
gCurrentPinballGame->pikachuAnimTimer = 0;
gCurrentPinballGame->catchCounterSlideTimer = 0;
gCurrentPinballGame->prevChargeFillValue = 0;
gCurrentPinballGame->chargeFillValue = 0;
gCurrentPinballGame->chargeIndicatorXOffset = 0;
gCurrentPinballGame->chargeIndicatorYOffset = -4;
gCurrentPinballGame->chargeIndicatorScaleX = 0x100;
gCurrentPinballGame->chargeIndicatorScaleY = 0x100;
gCurrentPinballGame->chargeFillAnimTimer = 0;
gCurrentPinballGame->fullChargeSlideAnimTimer = 0;
}
gCurrentPinballGame->ballPowerUpLight[0] = 0;

View File

@ -58,11 +58,11 @@ void RubyBoardProcess_3A_19A20(void)
gCurrentPinballGame->pikachuSpinFrame = 0;
gCurrentPinballGame->pikachuSpinPrevFrame = 1;
UpdatePikachuChargeCounter();
AnimateCatchCounterDisplay();
ProcessChargeIndicator();
DrawPikachuSpinner();
gCurrentPinballGame->catchCounterAnimState = 256;
gCurrentPinballGame->catchCounterScaleY = 256;
gCurrentPinballGame->chargeIndicatorScaleX = 256;
gCurrentPinballGame->chargeIndicatorScaleY = 256;
gCurrentPinballGame->rampPrizeType = 2;
DrawRubyNuzleafPlatformSprite();
@ -277,8 +277,8 @@ void UpdateRubyBoardEntityRendering(void)
{
DrawSpoinkSprite();
}
UpdateCatchModeLogic();
AnimateCatchCounterDisplay();
UpdateKickbackLogic();
ProcessChargeIndicator();
UpdateRubyBoardAnimations();
UpdatePortraitSpritePositions();
UpdateEvolutionShopSprite();
@ -320,7 +320,7 @@ void HandleRubyFlipperButtonInput(void)
if (gCurrentPinballGame->newButtonActions[0])
{
if (gCurrentPinballGame->pikaKickbackTimer == 0 && gCurrentPinballGame->outLanePikaPosition != 2 &&
gCurrentPinballGame->pikaSaverTimer == 0 && gCurrentPinballGame->entityOverlayCollisionState == 0)
gCurrentPinballGame->pichuEntranceTimer == 0 && gCurrentPinballGame->kickbackFiring == 0)
{
gCurrentPinballGame->outLanePikaPosition = 0;
}
@ -340,7 +340,7 @@ void HandleRubyFlipperButtonInput(void)
if (gCurrentPinballGame->newButtonActions[1])
{
if (gCurrentPinballGame->pikaKickbackTimer == 0 && gCurrentPinballGame->outLanePikaPosition != 2 &&
gCurrentPinballGame->pikaSaverTimer == 0 && gCurrentPinballGame->entityOverlayCollisionState == 0)
gCurrentPinballGame->pichuEntranceTimer == 0 && gCurrentPinballGame->kickbackFiring == 0)
{
gCurrentPinballGame->outLanePikaPosition = 1;
}

View File

@ -3,6 +3,8 @@
#include "m4a.h"
#include "main.h"
#include "constants/bg_music.h"
#include "constants/sapphire_states.h"
//#include "constants/pinball_game.h"
extern void HandleSapphireFlipperButtonInput(void);
@ -14,13 +16,13 @@ void SapphireBoardProcess_3A_326F4(void)
gCurrentPinballGame->pikachuSpinPrevFrame = 1;
UpdatePikachuChargeCounter();
AnimateCatchCounterDisplay();
ProcessChargeIndicator();
DrawPikachuSpinner();
CalculateRubyBumperBounce();
HandleRubyBumperHit();
gCurrentPinballGame->catchCounterAnimState = 0x100;
gCurrentPinballGame->catchCounterScaleY = 0x100;
gCurrentPinballGame->chargeIndicatorScaleX = 0x100;
gCurrentPinballGame->chargeIndicatorScaleY = 0x100;
InitSapphireEggCaveState();
UpdateSapphireEggCaveAnimation();
@ -110,8 +112,8 @@ void UpdateSapphireBoardEntityRendering(void)
if (0xA8 < gCurrentPinballGame->cameraYViewport)
DrawSpoinkSprite();
UpdateCatchModeLogic();
AnimateCatchCounterDisplay();
UpdateKickbackLogic();
ProcessChargeIndicator();
UpdatePortraitSpritePositions();
DrawBoardEdgeBanner();
@ -145,13 +147,13 @@ void DispatchSapphireCatchModeInit(void)
switch (gCurrentPinballGame->ballCatchState)
{
case 1:
case TRAP_CATCH_HOLE:
InitSapphireWailmerCatch();
break;
case 3:
case TRAP_EVO_SHOP_HOLE:
InitSapphireEvolutionShopCatch();
break;
case 4:
case TRAP_CENTER_HOLE:
InitCenterTrapMode();
break;
}
@ -166,13 +168,13 @@ void UpdateSapphireCatchModeAnimation(void)
switch (gCurrentPinballGame->ballCatchState)
{
case 1:
case TRAP_CATCH_HOLE:
UpdateSapphireWailmerCatchSequence();
break;
case 3:
case TRAP_EVO_SHOP_HOLE:
UpdateSapphireEvolutionShopSequence();
break;
case 4:
case TRAP_CENTER_HOLE:
AnimateCenterTrapSequence(); //Center Hole
break;
}
@ -240,7 +242,7 @@ void UpdateSapphireEvolutionShopSequence(void)
gCurrentPinballGame->ballUpgradeTimerFrozen = 0;
gCurrentPinballGame->ball->positionQ1.x = gCurrentPinballGame->ball->positionQ0.x * 2;
gCurrentPinballGame->ball->positionQ1.y = gCurrentPinballGame->ball->positionQ0.y * 2;
gCurrentPinballGame->ballCatchState = 0;
gCurrentPinballGame->ballCatchState = NOT_TRAPPED;
m4aSongNumStart(SE_UNKNOWN_0xC3);
@ -352,7 +354,7 @@ void UpdateSapphireWailmerCatchSequence(void)
gCurrentPinballGame->ball->positionQ1.x = gCurrentPinballGame->ball->positionQ0.x * 2;
gCurrentPinballGame->ball->positionQ1.y = gCurrentPinballGame->ball->positionQ0.y * 2;
gCurrentPinballGame->ball->prevPositionQ1 = gCurrentPinballGame->ball->positionQ1;
gCurrentPinballGame->ballCatchState = 0;
gCurrentPinballGame->ballCatchState = NOT_TRAPPED;
gCurrentPinballGame->ballUpgradeTimerFrozen = 0;
m4aSongNumStart(SE_WHISCASH_SPIT_BALL);
gCurrentPinballGame->cameraScrollTarget = 0;
@ -368,7 +370,7 @@ void HandleSapphireFlipperButtonInput(void)
if (gCurrentPinballGame->newButtonActions[0])
{
if (gCurrentPinballGame->pikaKickbackTimer == 0 && gCurrentPinballGame->outLanePikaPosition != 2 &&
gCurrentPinballGame->pikaSaverTimer == 0 && gCurrentPinballGame->entityOverlayCollisionState == 0)
gCurrentPinballGame->pichuEntranceTimer == 0 && gCurrentPinballGame->kickbackFiring == 0)
{
gCurrentPinballGame->outLanePikaPosition = 0;
}
@ -388,7 +390,7 @@ void HandleSapphireFlipperButtonInput(void)
if (gCurrentPinballGame->newButtonActions[1])
{
if (gCurrentPinballGame->pikaKickbackTimer == 0 && gCurrentPinballGame->outLanePikaPosition != 2 &&
gCurrentPinballGame->pikaSaverTimer == 0 && gCurrentPinballGame->entityOverlayCollisionState == 0)
gCurrentPinballGame->pichuEntranceTimer == 0 && gCurrentPinballGame->kickbackFiring == 0)
{
gCurrentPinballGame->outLanePikaPosition = 1;
}

View File

@ -1482,7 +1482,7 @@ void UpdateSphealResultsScreen(void)
if ((gCurrentPinballGame->resultsAnimTimer % 3) == 0)
{
gCurrentPinballGame->sphealKnockdownDisplayCount[0]++;
m4aSongNumStart(SE_UNKNOWN_0x91);
m4aSongNumStart(SE_BONUS_SCORE_TALLIED);
}
}
else
@ -1498,7 +1498,7 @@ void UpdateSphealResultsScreen(void)
if ((gCurrentPinballGame->resultsAnimTimer % 3) == 0)
{
gCurrentPinballGame->sphealKnockdownDisplayCount[1]++;
m4aSongNumStart(SE_UNKNOWN_0x91);
m4aSongNumStart(SE_BONUS_SCORE_TALLIED);
}
}
else

View File

@ -4,6 +4,7 @@
#include "main.h"
#include "m4a.h"
#include "constants/bg_music.h"
#include "constants/main_board.h"
void AllBoardProcess_4A_19304(void)
{
@ -99,7 +100,7 @@ void UpdateMainBoardFlipperPhysics(void)
if (gCurrentPinballGame->heldButtonActions[i])
{
if (flipper->active == 0 && gCurrentPinballGame->ballCatchState == 0)
if (flipper->active == 0 && gCurrentPinballGame->ballCatchState == NOT_TRAPPED)
m4aSongNumStart(SE_FLIPPER_PRESSED);
flipper->active = 1;
@ -214,7 +215,9 @@ void UpdateBonusBoardFlipperPhysics(void)
if (gCurrentPinballGame->heldButtonActions[i] && gMain.modeChangeFlags == MODE_CHANGE_NONE)
{
if (flipper->active == 0 && gCurrentPinballGame->ballCatchState == 0 && gCurrentPinballGame->flippersDisabled == 0)
if (flipper->active == 0 &&
gCurrentPinballGame->ballCatchState == NOT_TRAPPED &&
gCurrentPinballGame->flippersDisabled == 0)
{
m4aSongNumStart(SE_FLIPPER_PRESSED);
}

View File

@ -3,6 +3,7 @@
#include "constants/bg_music.h"
#include "m4a.h"
#include "constants/anglemath.h"
#include "constants/main_board.h"
extern u8 gCatchTargetCollisionBitmap[];
extern u16 gFlipperCollisionAngles[][2];
@ -404,7 +405,7 @@ void ComputeWallReflection(u16 arg0, struct Vector16 *arg1, struct Vector16 *arg
m4aSongNumStart(SE_WALL_HIT);
if (forwardMag > 0x118
&& gCurrentPinballGame->entityOverlayCollisionState == 0
&& gCurrentPinballGame->kickbackFiring == 0
&& gMain.selectedField < MAIN_FIELD_COUNT)
{
PlayRumble(6);
@ -883,7 +884,7 @@ void ProcessBonusTrapPhysics(void)
else
{
gCurrentPinballGame->collisionMapScrollY = 0;
gCurrentPinballGame->ballCatchState = 4;
gCurrentPinballGame->ballCatchState = TRAP_CENTER_HOLE;
if (gMain.selectedField == FIELD_RUBY)
DispatchRubyCatchModeInit();
else

View File

@ -45,7 +45,7 @@ void AllBoardProcess_8B_4CEB4(void)
{
gCurrentPinballGame->scoreLo += gCurrentPinballGame->scoreAddStepSize;
gCurrentPinballGame->scoreAdditionAccumulator -= gCurrentPinballGame->scoreAddStepSize;
m4aSongNumStart(SE_UNKNOWN_0x91);
m4aSongNumStart(SE_BONUS_SCORE_TALLIED);
}
}
}
@ -133,9 +133,9 @@ void AllBoardProcess_8B_4CEB4(void)
gBG0TilemapBuffer[0x7DB] = (gCurrentPinballGame->numLives + 5) * 2 - 0x3EA0;
gBG0TilemapBuffer[0x7FB] = (gCurrentPinballGame->numLives + 5) * 2 - 0x3E9F;
if (gCurrentPinballGame->catchCounterValue == 13)
if (gCurrentPinballGame->chargeFillValue == 13)
{
if (gCurrentPinballGame->catchCounterBlinkTimer & 0x8)
if (gCurrentPinballGame->fullChargeIndicatorBlinkTimer & 0x8)
{
gBG0TilemapBuffer[0x7DD] = 0xC19A;
gBG0TilemapBuffer[0x7FD] = 0xC19B;
@ -146,8 +146,8 @@ void AllBoardProcess_8B_4CEB4(void)
gBG0TilemapBuffer[0x7FD] = 0xC183;
}
if (gCurrentPinballGame->catchCounterBlinkTimer)
gCurrentPinballGame->catchCounterBlinkTimer--;
if (gCurrentPinballGame->fullChargeIndicatorBlinkTimer)
gCurrentPinballGame->fullChargeIndicatorBlinkTimer--;
}
else
{

View File

@ -107,7 +107,7 @@ void BonusFieldSelect_State1_2768(void)
{
if (gSelectedBonusField != FIELD_SELECT_DUSCLOPS && gSelectedBonusField != FIELD_SELECT_GROUDON)
{
m4aSongNumStart(SE_UNKNOWN_0x6D);
m4aSongNumStart(SE_DEX_INFO_FIELD_SELECT_MOVE);
gSelectedBonusField--;
}
}
@ -115,7 +115,7 @@ void BonusFieldSelect_State1_2768(void)
{
if (gSelectedBonusField != FIELD_SELECT_SPHEAL && gSelectedBonusField != FIELD_SELECT_RAYQUAZA)
{
m4aSongNumStart(SE_UNKNOWN_0x6D);
m4aSongNumStart(SE_DEX_INFO_FIELD_SELECT_MOVE);
gSelectedBonusField++;
}
}
@ -123,7 +123,7 @@ void BonusFieldSelect_State1_2768(void)
{
if (gSelectedBonusField > FIELD_SELECT_SPHEAL)
{
m4aSongNumStart(SE_UNKNOWN_0x6D);
m4aSongNumStart(SE_DEX_INFO_FIELD_SELECT_MOVE);
gSelectedBonusField -= 3;
}
}
@ -131,7 +131,7 @@ void BonusFieldSelect_State1_2768(void)
{
if (gSelectedBonusField < FIELD_SELECT_GROUDON)
{
m4aSongNumStart(SE_UNKNOWN_0x6D);
m4aSongNumStart(SE_DEX_INFO_FIELD_SELECT_MOVE);
gSelectedBonusField += 3;
}
}

View File

@ -276,12 +276,12 @@ void ProcessRubyCollisionEvent(s32 arg0, s16* arg1, u16* arg2)
if (gCurrentPinballGame->ball->positionQ1.x > 359)
{
if (gCurrentPinballGame->ball->positionQ1.y > 199)
gCurrentPinballGame->ballCatchState = 1;
gCurrentPinballGame->ballCatchState = TRAP_CATCH_HOLE;
else
gCurrentPinballGame->ballCatchState = 3;
gCurrentPinballGame->ballCatchState = TRAP_EVO_SHOP_HOLE;
}
else
gCurrentPinballGame->ballCatchState= 2;
gCurrentPinballGame->ballCatchState= TRAP_EGG_HOLE;
DispatchRubyCatchModeInit();
gCurrentPinballGame->collisionResponseType = 7;
@ -1006,9 +1006,9 @@ void ProcessSapphireCollisionEvent(u8 arg0, u16* arg1, u16* arg2)
if (gCurrentPinballGame->collisionCooldownTimer == 0)
{
if (gCurrentPinballGame->ball->positionQ1.x >= 200)
gCurrentPinballGame->ballCatchState = 1;
gCurrentPinballGame->ballCatchState = TRAP_CATCH_HOLE;
else
gCurrentPinballGame->ballCatchState = 3;
gCurrentPinballGame->ballCatchState = TRAP_EVO_SHOP_HOLE;
DispatchSapphireCatchModeInit();
gCurrentPinballGame->collisionResponseType = 7;
@ -1279,7 +1279,7 @@ void ProcessSapphireCollisionEvent(u8 arg0, u16* arg1, u16* arg2)
gCurrentPinballGame->catchArrowProgress++;
if (gCurrentPinballGame->catchCounterValue == 13)
if (gCurrentPinballGame->chargeFillValue == 13)
m4aSongNumStart(SE_UNKNOWN_0x99);
if (gCurrentPinballGame->catchArrowProgress > 1)

View File

@ -244,7 +244,7 @@ void EndOfBallSequence(void)
ClearDebugTextDisplay();
if (gCurrentPinballGame->numLives > 0)
{
gCurrentPinballGame->modeTimeRemaining = 1800;
gCurrentPinballGame->saverTimeRemaining = 1800;
gCurrentPinballGame->numLives--;
gCurrentPinballGame->collisionCooldownTimer = 60;
gCurrentPinballGame->bonusCatchCount = 0;
@ -400,7 +400,7 @@ void BallSaverAnimation(void)
gCurrentPinballGame->ballSaverBallPosX = gCurrentPinballGame->ballSaverPosX;
gCurrentPinballGame->ballSaverBallPosY = gCurrentPinballGame->ballSaverPosY;
if (gMain.animationTimer == 56)
m4aSongNumStart(SE_UNKNOWN_0x95);
m4aSongNumStart(SE_LATI_DELIVERY);
gCurrentPinballGame->ball->positionQ8.x = (gCurrentPinballGame->ballSaverBallPosX / 100 + 86) << 8;
gCurrentPinballGame->ball->positionQ8.y = (gCurrentPinballGame->ballSaverSlideY + 372 + gCurrentPinballGame->ballSaverBallPosY / 100) << 8;
@ -414,7 +414,7 @@ void BallSaverAnimation(void)
if (gMain.animationTimer == 32)
{
gCurrentPinballGame->boardEntityActive = 0;
m4aSongNumStart(SE_UNKNOWN_0x96);
m4aSongNumStart(SE_SAVER_PLUNGER_DROP);
PlayRumble(6);
}
@ -480,7 +480,7 @@ void BallSaverAnimation(void)
gCurrentPinballGame->boardEntityActive = 1;
gCurrentPinballGame->ballUpgradeTimerFrozen = 1;
gCurrentPinballGame->startButtonDisabled = 1;
m4aSongNumStart(SE_UNKNOWN_0x94);
m4aSongNumStart(SE_BALL_SAVED);
}
else if (gMain.animationTimer == 0)
{
@ -657,7 +657,7 @@ void EndOfBallBonusSummary(void)
gCurrentPinballGame->scoreHi += gCurrentPinballGame->bonusTotalScoreHi;
gCurrentPinballGame->bonusTotalScoreLo = 0;
gCurrentPinballGame->bonusTotalScoreHi = 0;
m4aSongNumStart(SE_UNKNOWN_0x91);
m4aSongNumStart(SE_BONUS_SCORE_TALLIED);
}
}
@ -954,13 +954,13 @@ void EndOfBallBonusSummary(void)
{
gCurrentPinballGame->bonusCategoryScore -= 200000;
gCurrentPinballGame->bonusSubtotal += 200000;
m4aSongNumStart(SE_UNKNOWN_0x91);
m4aSongNumStart(SE_BONUS_SCORE_TALLIED);
}
else if (gCurrentPinballGame->bonusCategoryScore != 0)
{
gCurrentPinballGame->bonusSubtotal += gCurrentPinballGame->bonusCategoryScore;
gCurrentPinballGame->bonusCategoryScore = 0;
m4aSongNumStart(SE_UNKNOWN_0x91);
m4aSongNumStart(SE_BONUS_SCORE_TALLIED);
}
}
@ -990,20 +990,20 @@ void EndOfBallBonusSummary(void)
{
gCurrentPinballGame->bonusTotalScoreLo -= 200000;
gCurrentPinballGame->scoreLo += 200000;
m4aSongNumStart(SE_UNKNOWN_0x91);
m4aSongNumStart(SE_BONUS_SCORE_TALLIED);
}
else if (gCurrentPinballGame->bonusTotalScoreHi != 0)
{
gCurrentPinballGame->bonusTotalScoreHi--;
gCurrentPinballGame->bonusTotalScoreLo += 99800000;
gCurrentPinballGame->scoreLo += 200000;
m4aSongNumStart(SE_UNKNOWN_0x91);
m4aSongNumStart(SE_BONUS_SCORE_TALLIED);
}
else if (gCurrentPinballGame->bonusTotalScoreLo != 0)
{
gCurrentPinballGame->scoreLo += gCurrentPinballGame->bonusTotalScoreLo;
gCurrentPinballGame->bonusTotalScoreLo = 0;
m4aSongNumStart(SE_UNKNOWN_0x91);
m4aSongNumStart(SE_BONUS_SCORE_TALLIED);
}
}

View File

@ -111,7 +111,7 @@ void FieldSelect_State1_8C7C(void)
{
if (gFieldSelectData.selectedField == FIELD_SAPPHIRE)
{
m4aSongNumStart(SE_UNKNOWN_0x6D);
m4aSongNumStart(SE_DEX_INFO_FIELD_SELECT_MOVE);
gFieldSelectData.selectedField = FIELD_RUBY;
gFieldSelectData.rubyHighlightVisible = 0;
gFieldSelectData.sapphireHighlightVisible = 1;
@ -122,7 +122,7 @@ void FieldSelect_State1_8C7C(void)
{
if (gFieldSelectData.selectedField == FIELD_RUBY)
{
m4aSongNumStart(SE_UNKNOWN_0x6D);
m4aSongNumStart(SE_DEX_INFO_FIELD_SELECT_MOVE);
gFieldSelectData.selectedField = FIELD_SAPPHIRE;
gFieldSelectData.rubyHighlightVisible = 1;
gFieldSelectData.sapphireHighlightVisible = 0;
@ -234,7 +234,7 @@ void FieldSelect_State1_8C7C(void)
{
if (gFieldSelectData.selectedField == FIELD_SAPPHIRE)
{
m4aSongNumStart(SE_UNKNOWN_0x6D);
m4aSongNumStart(SE_DEX_INFO_FIELD_SELECT_MOVE);
gFieldSelectData.selectedField = FIELD_RUBY;
gFieldSelectData.rubyHighlightVisible = 0;
gFieldSelectData.sapphireHighlightVisible = 1;
@ -248,7 +248,7 @@ void FieldSelect_State1_8C7C(void)
{
if (gFieldSelectData.selectedField == FIELD_RUBY)
{
m4aSongNumStart(SE_UNKNOWN_0x6D);
m4aSongNumStart(SE_DEX_INFO_FIELD_SELECT_MOVE);
gFieldSelectData.selectedField = FIELD_SAPPHIRE;
gFieldSelectData.rubyHighlightVisible = 1;
gFieldSelectData.sapphireHighlightVisible = 0;

View File

@ -338,16 +338,16 @@ void InitPinballGameState(void)
{
gCurrentPinballGame->pikaChargeTarget = 168;
gCurrentPinballGame->pikaChargeProgress = 168;
gCurrentPinballGame->prevCatchCounterValue = 13;
gCurrentPinballGame->catchCounterValue = 13;
gCurrentPinballGame->catchCounterSlideTimer = 0;
gCurrentPinballGame->catchCounterXShift = 0;
gCurrentPinballGame->catchCounterSlideOffsetY = 120;
gCurrentPinballGame->catchCounterBlinkTimer = 60;
gCurrentPinballGame->prevChargeFillValue = 13;
gCurrentPinballGame->chargeFillValue = 13;
gCurrentPinballGame->fullChargeSlideAnimTimer = 0;
gCurrentPinballGame->chargeIndicatorXOffset = 0;
gCurrentPinballGame->chargeIndicatorYOffset = 120;
gCurrentPinballGame->fullChargeIndicatorBlinkTimer = 60;
DmaCopy16(3, gDxModePikachuObjTiles, (void *)OBJ_VRAM0 + 0x600, 0x180);
gCurrentPinballGame->outLanePikaPosition = 2;
gMain.fieldSpriteGroups[41]->available = FALSE;
gCurrentPinballGame->pikaSaverTimer = 1;
gCurrentPinballGame->pichuEntranceTimer = 1;
gCurrentPinballGame->ballUpgradeType = BALL_UPGRADE_TYPE_MASTER_BALL;
gCurrentPinballGame->ballUpgradeCounter = 60 * 60;
gCurrentPinballGame->numLives = 9;
@ -355,8 +355,8 @@ void InitPinballGameState(void)
}
else
{
gCurrentPinballGame->catchCounterXShift = 0;
gCurrentPinballGame->catchCounterSlideOffsetY = -4;
gCurrentPinballGame->chargeIndicatorXOffset = 0;
gCurrentPinballGame->chargeIndicatorYOffset = -4;
gCurrentPinballGame->numLives = 2;
gCurrentPinballGame->coins = 10;
}
@ -389,7 +389,7 @@ void SetBallPositionForBonusReturn(void)
gCurrentPinballGame->ballFrozenState = 1;
gCurrentPinballGame->trapAnimState = 0;
gCurrentPinballGame->modeAnimTimer = 120;
gCurrentPinballGame->ballCatchState = 4;
gCurrentPinballGame->ballCatchState = TRAP_CENTER_HOLE;
if (gMain.selectedField == FIELD_RUBY)
UpdateRubyCatchModeAnimation();
else
@ -1035,18 +1035,18 @@ void RestoreGameState(u16 arg0)
if ((var2 & 0x3) == 1)
{
gCurrentPinballGame->pikaSpinMomentum = 0;
gCurrentPinballGame->catchOverlayFrameTimer = 0;
gCurrentPinballGame->catchOverlayKeyframeIndex = 0;
gCurrentPinballGame->kickbackAnimFrameTimer = 0;
gCurrentPinballGame->kickbackFrameId = 0;
gCurrentPinballGame->pikaChargeTarget = 0;
gCurrentPinballGame->pikaChargeProgress = 0;
gCurrentPinballGame->prevCatchCounterValue = 0;
gCurrentPinballGame->catchCounterValue = 0;
gCurrentPinballGame->catchCounterXShift = 0;
gCurrentPinballGame->catchCounterSlideOffsetY = -4;
gCurrentPinballGame->catchCounterAnimState = 256;
gCurrentPinballGame->catchCounterScaleY = 256;
gCurrentPinballGame->pikachuAnimTimer = 0;
gCurrentPinballGame->catchCounterSlideTimer = 0;
gCurrentPinballGame->prevChargeFillValue = 0;
gCurrentPinballGame->chargeFillValue = 0;
gCurrentPinballGame->chargeIndicatorXOffset = 0;
gCurrentPinballGame->chargeIndicatorYOffset = -4;
gCurrentPinballGame->chargeIndicatorScaleX = 256;
gCurrentPinballGame->chargeIndicatorScaleY = 256;
gCurrentPinballGame->chargeFillAnimTimer = 0;
gCurrentPinballGame->fullChargeSlideAnimTimer = 0;
}
}
@ -1379,8 +1379,8 @@ void RestoreMainFieldDynamicGraphics(void)
var0 = gCurrentPinballGame->pikachuSpinFrame;
DmaCopy16(3, gMainBoardPikaSpinner_Gfx[var0 = gCurrentPinballGame->pikachuSpinFrame], 0x06010780, 0x120);
var0 = gCurrentPinballGame->catchCounterValue;
DmaCopy16(3, gCatchCounterDigitTilesGfx[var0], 0x06010AE0, 0x80);
var0 = gCurrentPinballGame->chargeFillValue;
DmaCopy16(3, gChargeFillIndicator_Gfx[var0], 0x06010AE0, 0x80);
for (i = 0; i <= 1; i++)
{

View File

@ -429,7 +429,7 @@ void Pokedex_DetailViewInput(void)
{
if ((gPokedexSelectedMon < BONUS_SPECIES_START) && (gPokedexDescriptionPage == 1))
{
m4aSongNumStart(SE_UNKNOWN_0x6D);
m4aSongNumStart(SE_DEX_INFO_FIELD_SELECT_MOVE);
gPokedexDescriptionPage = 0;
PrintDexDescription(gPokedexSelectedMon, 0);
gPokedexSpriteIndexBase = gPokedexDescriptionPage;
@ -439,7 +439,7 @@ void Pokedex_DetailViewInput(void)
{
if ((gPokedexSelectedMon < BONUS_SPECIES_START) && (gPokedexDescriptionPage == 0))
{
m4aSongNumStart(SE_UNKNOWN_0x6D);
m4aSongNumStart(SE_DEX_INFO_FIELD_SELECT_MOVE);
gPokedexDescriptionPage = 1;
PrintDexDescription(gPokedexSelectedMon, 1);
gPokedexSpriteIndexBase = gPokedexDescriptionPage;
@ -452,7 +452,7 @@ void Pokedex_DetailViewInput(void)
{
if (!gPokedexDescriptionPage)
{
m4aSongNumStart(SE_UNKNOWN_0x6D);
m4aSongNumStart(SE_DEX_INFO_FIELD_SELECT_MOVE);
gPokedexDescriptionPage = 1 - gPokedexDescriptionPage;
PrintDexDescription(gPokedexSelectedMon, gPokedexDescriptionPage);
gPokedexSpriteIndexBase = gPokedexDescriptionPage;

View File

@ -2,6 +2,7 @@
#include "main.h"
#include "m4a.h"
#include "constants/bg_music.h"
#include "constants/main_board.h"
extern void RenderBannerSlideAnimation(void);
@ -171,7 +172,7 @@ void RenderBannerSlideAnimation(void)
{
if (gCurrentPinballGame->bannerSlideTimer == 0x28)
{
MPlayStart(&gMPlayInfo_SE1, &se_unk_8b);
MPlayStart(&gMPlayInfo_SE1, &se_catch_evo_banner);
}
gCurrentPinballGame->bannerSlideTimer--;
if (gCurrentPinballGame->bannerSlideTimer <= 0xF)
@ -186,8 +187,8 @@ void RenderBannerSlideAnimation(void)
if (gCurrentPinballGame->bannerSlideTimer < 36)
{
if ((gCurrentPinballGame->ballCatchState == 3 && gCurrentPinballGame->evolutionShopActive == 1) ||
(gCurrentPinballGame->ballCatchState == 4 && gCurrentPinballGame->rouletteOutcomeId == 9))
if ((gCurrentPinballGame->ballCatchState == TRAP_EVO_SHOP_HOLE && gCurrentPinballGame->evolutionShopActive == 1) ||
(gCurrentPinballGame->ballCatchState == TRAP_CENTER_HOLE && gCurrentPinballGame->rouletteOutcomeId == 9))
{
gCurrentPinballGame->paletteSwapActive = 0;
}
@ -213,8 +214,8 @@ void RenderBannerSlideAnimation(void)
gMain.blendBrightness = 4;
if (gCurrentPinballGame->bannerSlideTimer <= 0x27)
{
if ((gCurrentPinballGame->ballCatchState == 3 && gCurrentPinballGame->evolutionShopActive == 1) ||
(gCurrentPinballGame->ballCatchState == 4 && gCurrentPinballGame->rouletteOutcomeId == 9))
if ((gCurrentPinballGame->ballCatchState == TRAP_EVO_SHOP_HOLE && gCurrentPinballGame->evolutionShopActive == 1) ||
(gCurrentPinballGame->ballCatchState == TRAP_CENTER_HOLE && gCurrentPinballGame->rouletteOutcomeId == 9))
{
gCurrentPinballGame->paletteSwapActive = 0;
}
@ -254,8 +255,8 @@ void RenderBannerSlideAnimation(void)
gCurrentPinballGame->bannerSlideTimer++;
gCurrentPinballGame->bannerSlideVelocity -= 0xA;
if (gCurrentPinballGame->bannerSlideTimer > 0x18 &&
(gCurrentPinballGame->ballCatchState != 3 || gCurrentPinballGame->evolutionShopActive != 1) &&
(gCurrentPinballGame->ballCatchState != 4 || gCurrentPinballGame->rouletteOutcomeId != 9))
(gCurrentPinballGame->ballCatchState != TRAP_EVO_SHOP_HOLE || gCurrentPinballGame->evolutionShopActive != 1) &&
(gCurrentPinballGame->ballCatchState != TRAP_CENTER_HOLE || gCurrentPinballGame->rouletteOutcomeId != 9))
{
gMain.blendBrightness = 4;
if (gCurrentPinballGame->bannerSlideTimer > 0x19)
@ -283,8 +284,8 @@ void RenderBannerSlideAnimation(void)
gMain.fieldSpriteGroups[11]->available = 0;
gCurrentPinballGame->bannerGfxIndex = 0;
gCurrentPinballGame->activePortraitType = 0;
if ((gCurrentPinballGame->ballCatchState != 3 || gCurrentPinballGame->evolutionShopActive != 1) &&
(gCurrentPinballGame->ballCatchState != 4 || gCurrentPinballGame->rouletteOutcomeId != 9))
if ((gCurrentPinballGame->ballCatchState != TRAP_EVO_SHOP_HOLE || gCurrentPinballGame->evolutionShopActive != 1) &&
(gCurrentPinballGame->ballCatchState != TRAP_CENTER_HOLE || gCurrentPinballGame->rouletteOutcomeId != 9))
{
gMain.blendBrightness = 0;
DmaCopy16(3, gBoardConfig.fieldLayout.objPaletteSets[0], (void *)(OBJ_PLTT), 0x20);

View File

@ -24,16 +24,16 @@ void DispatchRubyCatchModeInit(void)
switch (gCurrentPinballGame->ballCatchState)
{
case 1:
case TRAP_CATCH_HOLE:
InitSharpedoCatchMode();
break;
case 2:
case TRAP_EGG_HOLE:
InitEggHatchMode();
break;
case 3:
case TRAP_EVO_SHOP_HOLE:
InitRubyEvolutionShopMode();
break;
case 4:
case TRAP_CENTER_HOLE:
InitCenterTrapMode();
break;
}
@ -48,16 +48,16 @@ void UpdateRubyCatchModeAnimation(void)
switch (gCurrentPinballGame->ballCatchState)
{
case 1:
case TRAP_CATCH_HOLE:
AnimateSharpedoCatchSequence(); // Catch hole
break;
case 2:
case TRAP_EGG_HOLE:
AnimateEggHatchSequence(); //Hatch hole
break;
case 3:
case TRAP_EVO_SHOP_HOLE:
AnimateRubyEvolutionShopSequence(); //Mart / Evo hole
break;
case 4:
case TRAP_CENTER_HOLE:
AnimateCenterTrapSequence(); //Center Hole
break;
}
@ -235,7 +235,7 @@ void AnimateSharpedoCatchSequence(void)
gCurrentPinballGame->collisionCooldownTimer = 30;
gCurrentPinballGame->ball->positionQ1.x = gCurrentPinballGame->ball->positionQ0.x * 2;
gCurrentPinballGame->ball->positionQ1.y = gCurrentPinballGame->ball->positionQ0.y * 2;
gCurrentPinballGame->ballCatchState = 0;
gCurrentPinballGame->ballCatchState = NOT_TRAPPED;
gCurrentPinballGame->ballUpgradeTimerFrozen = 0;
gCurrentPinballGame->catchHoleAnimFrame = 0;
}
@ -311,8 +311,8 @@ void AnimateEggHatchSequence(void)
}
else
{
gCurrentPinballGame->ball->ballHidden = modeAnimTimer;
gCurrentPinballGame->ballCatchState = modeAnimTimer;
gCurrentPinballGame->ball->ballHidden = 0;
gCurrentPinballGame->ballCatchState = NOT_TRAPPED;
gCurrentPinballGame->ball->positionQ0.x = 0x58;
gCurrentPinballGame->ball->positionQ0.y = 0xA2;
@ -395,7 +395,7 @@ void AnimateRubyEvolutionShopSequence(void)
gCurrentPinballGame->ballUpgradeTimerFrozen = 0;
gCurrentPinballGame->ball->positionQ1.x = gCurrentPinballGame->ball->positionQ0.x * 2;
gCurrentPinballGame->ball->positionQ1.y = gCurrentPinballGame->ball->positionQ0.y * 2;
gCurrentPinballGame->ballCatchState = 0;
gCurrentPinballGame->ballCatchState = NOT_TRAPPED;
gCurrentPinballGame->shopDoorTargetFrame = 0x13;
m4aSongNumStart(SE_UNKNOWN_0xC3);
@ -500,7 +500,7 @@ void UpdateShopEntryAnimation(s16 arg0)
gCurrentPinballGame->shopAnimSlideTimer = 15;
gMain.shopPanelActive = 1;
m4aSongNumStart(SE_UNKNOWN_0x8F);
m4aSongNumStart(SE_SHOP_LIST_REVEAL);
if (gCurrentPinballGame->outLanePikaPosition == 2)
gCurrentPinballGame->shopPikaSaverMaxed = 1;
@ -729,7 +729,7 @@ void UpdateShopEntryAnimation(s16 arg0)
m4aSongNumStart(MUS_FIELD_SAPPHIRE2);
}
if (gCurrentPinballGame->ballCatchState == 4)
if (gCurrentPinballGame->ballCatchState == TRAP_CENTER_HOLE)
gCurrentPinballGame->outcomeFrameCounter = 170;
else
gCurrentPinballGame->modeAnimTimer = 24;
@ -1147,7 +1147,7 @@ void UpdateShopEntryAnimation(s16 arg0)
if (gCurrentPinballGame->catchModeEventTimer == 0)
{
if (gCurrentPinballGame->ballCatchState == 4)
if (gCurrentPinballGame->ballCatchState == TRAP_CENTER_HOLE)
gCurrentPinballGame->outcomeFrameCounter = 170;
else
gCurrentPinballGame->modeAnimTimer = 24;
@ -1219,7 +1219,7 @@ void AnimateCenterTrapSequence(void)
}
else if (gCurrentPinballGame->modeAnimTimer == 24)
{
m4aSongNumStart(SE_UNKNOWN_0x80);
m4aSongNumStart(SE_CENTER_HOLE_EJECT);
gCurrentPinballGame->trapAnimState = 2;
gCurrentPinballGame->ball->velocity.x = 73;
gCurrentPinballGame->ball->velocity.y = 236;
@ -1252,7 +1252,7 @@ void AnimateCenterTrapSequence(void)
else
{
gCurrentPinballGame->trapAnimState = 0;
gCurrentPinballGame->ballCatchState = 0;
gCurrentPinballGame->ballCatchState = NOT_TRAPPED;
}
}
@ -1266,7 +1266,7 @@ void TransitionToBonusField(void)
gCurrentPinballGame->ballFrozenState = 0;
gCurrentPinballGame->ball->scale = 0x100;
gCurrentPinballGame->trapAnimState = 0;
gCurrentPinballGame->ballCatchState = 0;
gCurrentPinballGame->ballCatchState = NOT_TRAPPED;
if (gCurrentPinballGame->bonusReturnState == 0)
{
gCurrentPinballGame->evoItemCount = 0;

View File

@ -39,14 +39,14 @@ extern const u16 gPortraitIdleCycleData[];
extern const u16 gPortraitAnimPalettes[];
extern const s16 gRouletteOutcomeFrameOffsets[];
extern struct SongHeader se_unk_7a;
extern struct SongHeader se_unk_79;
extern struct SongHeader se_pika_full_charge_1_up;
extern struct SongHeader se_pika_spinner_clack;
extern struct SongHeader se_whiscash_splashdown;
extern struct SongHeader se_unk_142;
extern struct SongHeader se_unk_b1;
extern struct SongHeader se_unk_b3;
extern struct SongHeader se_pika_no_kickback;
extern struct SongHeader se_pikachu_kickback;
extern struct SongHeader se_pichu_kickback;
extern s16 gPikaSaverAnimFrameTable[100];
extern s16 gCatchHoleXPositions[3];
extern s16 gOutlaneCenterXPositions[2];
extern u16 gCatchOverlayAnimData[][2];
extern s16 gCatchOverlayOamData[28][12];
@ -798,8 +798,8 @@ void RubyPond_EntityLogic(void)
gCurrentPinballGame->scoreAddedInFrame = 10;
m4aSongNumStart(SE_RUBY_BUMPER_HIT);
PlayRumble(7);
if (gCurrentPinballGame->modeTimeRemaining)
gCurrentPinballGame->modeTimeRemaining = 1;
if (gCurrentPinballGame->saverTimeRemaining)
gCurrentPinballGame->saverTimeRemaining = 1;
break;
case WHISCASH_STATE_ANGRY:
if (gWhiscashFramesetData[gCurrentPinballGame->whiscashFrameIx][1] > gCurrentPinballGame->whiscashStateTimer)
@ -1248,19 +1248,19 @@ void UpdatePikachuChargeCounter(void)
if (gCurrentPinballGame->pikaChargeTarget != gCurrentPinballGame->pikaChargeProgress)
{
gCurrentPinballGame->pikaChargeProgress += 2;
gCurrentPinballGame->catchCounterValue = gCurrentPinballGame->pikaChargeProgress / 14;
gCurrentPinballGame->catchCounterSlideTimer = 80;
gCurrentPinballGame->catchCounterAnimState = 256;
gCurrentPinballGame->catchCounterScaleY = 256;
if (gCurrentPinballGame->catchCounterValue == 11)
gCurrentPinballGame->pikachuAnimTimer = 120;
gCurrentPinballGame->chargeFillValue = gCurrentPinballGame->pikaChargeProgress / 14;
gCurrentPinballGame->fullChargeSlideAnimTimer = 80;
gCurrentPinballGame->chargeIndicatorScaleX = 256;
gCurrentPinballGame->chargeIndicatorScaleY = 256;
if (gCurrentPinballGame->chargeFillValue == 11)
gCurrentPinballGame->chargeFillAnimTimer = 120;
if (gCurrentPinballGame->catchCounterValue > 11)
if (gCurrentPinballGame->chargeFillValue > 11)
{
gCurrentPinballGame->catchCounterValue = 12;
gCurrentPinballGame->catchCounterSlideTimer = 120;
gCurrentPinballGame->catchCounterAnimState = 256;
gCurrentPinballGame->catchCounterScaleY = 256;
gCurrentPinballGame->chargeFillValue = 12;
gCurrentPinballGame->fullChargeSlideAnimTimer = 120;
gCurrentPinballGame->chargeIndicatorScaleX = 256;
gCurrentPinballGame->chargeIndicatorScaleY = 256;
}
if (gCurrentPinballGame->pikaChargeProgress < 168 && gCurrentPinballGame->pikaChargeProgress % 8 == 0)
@ -1274,7 +1274,7 @@ void UpdatePikachuChargeCounter(void)
gCurrentPinballGame->pikaChargeProgress = gCurrentPinballGame->pikaChargeTarget;
if (gCurrentPinballGame->pikaChargeProgress >= 168)
{
MPlayStart(&gMPlayInfo_SE1, &se_unk_7a);
MPlayStart(&gMPlayInfo_SE1, &se_pika_full_charge_1_up);
gCurrentPinballGame->scoreAddedInFrame = 3000;
}
}
@ -1296,13 +1296,13 @@ void UpdatePikachuChargeCounter(void)
else
{
gCurrentPinballGame->pikaSpinFrameCounter = 0;
MPlayStart(&gMPlayInfo_SE3, &se_unk_79);
MPlayStart(&gMPlayInfo_SE3, &se_pika_spinner_clack);
gCurrentPinballGame->scoreAddedInFrame = 100;
if (gCurrentPinballGame->catchCounterValue < 12 && gCurrentPinballGame->entityOverlayCollisionState == 0)
if (gCurrentPinballGame->chargeFillValue < 12 && gCurrentPinballGame->kickbackFiring == 0)
{
gCurrentPinballGame->catchCounterSlideTimer = 80;
gCurrentPinballGame->catchCounterAnimState = 256;
gCurrentPinballGame->catchCounterScaleY = 256;
gCurrentPinballGame->fullChargeSlideAnimTimer = 80;
gCurrentPinballGame->chargeIndicatorScaleX = 256;
gCurrentPinballGame->chargeIndicatorScaleY = 256;
}
}
@ -1327,13 +1327,13 @@ void UpdatePikachuChargeCounter(void)
else
{
gCurrentPinballGame->pikaSpinFrameCounter = 0;
MPlayStart(&gMPlayInfo_SE3, &se_unk_79);
MPlayStart(&gMPlayInfo_SE3, &se_pika_spinner_clack);
gCurrentPinballGame->scoreAddedInFrame = 100;
if (gCurrentPinballGame->catchCounterValue < 12 && gCurrentPinballGame->entityOverlayCollisionState == 0)
if (gCurrentPinballGame->chargeFillValue < 12 && gCurrentPinballGame->kickbackFiring == 0)
{
gCurrentPinballGame->catchCounterSlideTimer = 80;
gCurrentPinballGame->catchCounterAnimState = 256;
gCurrentPinballGame->catchCounterScaleY = 256;
gCurrentPinballGame->fullChargeSlideAnimTimer = 80;
gCurrentPinballGame->chargeIndicatorScaleX = 256;
gCurrentPinballGame->chargeIndicatorScaleY = 256;
}
}
@ -1855,18 +1855,19 @@ void DrawSideBumperSprites(void)
}
}
void UpdateCatchModeLogic(void)
void UpdateKickbackLogic(void)
{
s16 i;
s16 outlaneChuteIx;
s16 j;
s16 r5;
s16 oamIx;
s16 tempY;
struct SpriteGroup *spriteGroup;
struct OamDataSimple *oamSimple;
u16 *dst;
const u16 *src;
AnimateCreatureApproach();
PichuArrivalSequence();
if (gCurrentPinballGame->pikaChargeTarget > 167)
{
@ -1887,13 +1888,13 @@ void UpdateCatchModeLogic(void)
if (gCurrentPinballGame->outLanePikaPosition == 2)
{
gCurrentPinballGame->catchHoleOccupied[0] = 1;
gCurrentPinballGame->catchHoleOccupied[1] = 1;
gCurrentPinballGame->kickbackOccupied[0] = 1;
gCurrentPinballGame->kickbackOccupied[1] = 1;
}
else
{
gCurrentPinballGame->catchHoleOccupied[0 + gCurrentPinballGame->outLanePikaPosition] = 1;
gCurrentPinballGame->catchHoleOccupied[1 - gCurrentPinballGame->outLanePikaPosition] = 0;
gCurrentPinballGame->kickbackOccupied[0 + gCurrentPinballGame->outLanePikaPosition] = 1;
gCurrentPinballGame->kickbackOccupied[1 - gCurrentPinballGame->outLanePikaPosition] = 0;
}
if (gCurrentPinballGame->pikaKickbackTimer != 0)
@ -1902,34 +1903,34 @@ void UpdateCatchModeLogic(void)
{
// gCurrentPinballGame->outLaneSide + gCurrentPinballGame->outLanePikaPosition
// Note: this can be && chained off of the previous if, once we have this line deciphered.
if (gCurrentPinballGame->catchHoleOccupied[gCurrentPinballGame->outLaneSide - 1] != 0)
if (gCurrentPinballGame->kickbackOccupied[gCurrentPinballGame->outLaneSide - 1] != 0)
{
if (gCurrentPinballGame->pikaChargeTarget > 167)
{
gCurrentPinballGame->ballFrozenState = 1;
gCurrentPinballGame->entityOverlayCollisionState = 1;
gCurrentPinballGame->catchAnimProgress = 120;
gCurrentPinballGame->catchAnimDuration = 120;
gCurrentPinballGame->catchOverlayTimer = gCurrentPinballGame->catchAnimProgress;
gCurrentPinballGame->kickbackFiring = 1;
gCurrentPinballGame->kickbackAnimProgress = 120;
gCurrentPinballGame->kickbackAnimDuration = 120;
gCurrentPinballGame->kickbackLaunchTimer = gCurrentPinballGame->kickbackAnimProgress;
gCurrentPinballGame->ballUpgradeTimerFrozen = 1;
gCurrentPinballGame->catchOverlayFrameTimer = 0;
gCurrentPinballGame->catchOverlayKeyframeIndex = 0;
gCurrentPinballGame->kickbackAnimFrameTimer = 0;
gCurrentPinballGame->kickbackFrameId = 0;
if (gCurrentPinballGame->outLanePikaPosition != 2)
{
gCurrentPinballGame->pikaChargeTarget = 0;
gCurrentPinballGame->pikaChargeProgress = 0;
gCurrentPinballGame->prevCatchCounterValue = 0;
gCurrentPinballGame->catchCounterValue = 0;
gCurrentPinballGame->catchCounterXShift = 0;
gCurrentPinballGame->catchCounterSlideOffsetY = -4;
gCurrentPinballGame->catchCounterAnimState = 256;
gCurrentPinballGame->catchCounterScaleY = 256;
gCurrentPinballGame->pikachuAnimTimer = 0;
gCurrentPinballGame->catchCounterSlideTimer = 0;
gCurrentPinballGame->prevChargeFillValue = 0;
gCurrentPinballGame->chargeFillValue = 0;
gCurrentPinballGame->chargeIndicatorXOffset = 0;
gCurrentPinballGame->chargeIndicatorYOffset = -4;
gCurrentPinballGame->chargeIndicatorScaleX = 256;
gCurrentPinballGame->chargeIndicatorScaleY = 256;
gCurrentPinballGame->chargeFillAnimTimer = 0;
gCurrentPinballGame->fullChargeSlideAnimTimer = 0;
}
gCurrentPinballGame->catchBallStartPos = gCurrentPinballGame->ball->positionQ1;
gCurrentPinballGame->kickbackBallHoverPos = gCurrentPinballGame->ball->positionQ1;
gCurrentPinballGame->scoreAddedInFrame = 30000;
if (gCurrentPinballGame->bonusPikaSaverCount <= 98)
@ -1938,17 +1939,17 @@ void UpdateCatchModeLogic(void)
else
{
gCurrentPinballGame->pikaKickbackTimer = 60;
MPlayStart(&gMPlayInfo_SE1, &se_unk_142);
MPlayStart(&gMPlayInfo_SE1, &se_pika_no_kickback);
}
i = gCurrentPinballGame->outLaneSide - 1;
outlaneChuteIx = gCurrentPinballGame->outLaneSide - 1;
if (gCurrentPinballGame->outLanePikaPosition == 2)
gCurrentPinballGame->pikaSaverTileIndex[i] = (i) * 7 + 2;
gCurrentPinballGame->pikaSaverTileIndex[outlaneChuteIx] = (outlaneChuteIx) * 7 + 2;
else
gCurrentPinballGame->pikaSaverTileIndex[i] = 2;
gCurrentPinballGame->pikaSaverTileIndex[outlaneChuteIx] = 2;
DmaCopy16(3, gPikaSaverTilesGfx + (gCurrentPinballGame->pikaSaverTileIndex[i] * 0x180), 0x06010480 + ((i) * 0x180), 0x180);
DmaCopy16(3, gPikaSaverTilesGfx + (gCurrentPinballGame->pikaSaverTileIndex[outlaneChuteIx] * 0x180), 0x06010480 + ((outlaneChuteIx) * 0x180), 0x180);
}
}
@ -1960,66 +1961,67 @@ void UpdateCatchModeLogic(void)
gCurrentPinballGame->pikaKickbackTimer--;
}
if (gCurrentPinballGame->entityOverlayCollisionState != 0)
if (gCurrentPinballGame->kickbackFiring != 0)
{
if (gCurrentPinballGame->catchOverlayTimer > 1)
if (gCurrentPinballGame->kickbackLaunchTimer > 1)
{
r5 = (gCurrentPinballGame->catchAnimProgress * 0x10000) / 10;
gCurrentPinballGame->catchOverlayTimer--;
if (gCurrentPinballGame->catchAnimProgress != 0)
r5 = (gCurrentPinballGame->kickbackAnimProgress * 0x10000) / 10;
gCurrentPinballGame->kickbackLaunchTimer--;
if (gCurrentPinballGame->kickbackAnimProgress != 0)
{
gCurrentPinballGame->catchAnimProgress--;
if (gCurrentPinballGame->catchAnimProgress == 40 && gCurrentPinballGame->catchOverlayTimer > 40)
gCurrentPinballGame->kickbackAnimProgress--;
if (gCurrentPinballGame->kickbackAnimProgress == 40 && gCurrentPinballGame->kickbackLaunchTimer > 40)
{
gCurrentPinballGame->catchAnimProgress = 60;
gCurrentPinballGame->kickbackAnimProgress = 60;
}
}
if (gCurrentPinballGame->catchOverlayTimer == 116)
if (gCurrentPinballGame->kickbackLaunchTimer == 116)
{
if (gCurrentPinballGame->activePortraitType)
gCurrentPinballGame->catchOverlayTimer = 120;
gCurrentPinballGame->kickbackLaunchTimer = 120;
else
{
gCurrentPinballGame->activePortraitType = 1;
if (gCurrentPinballGame->outLanePikaPosition == 2)
{
if (gCurrentPinballGame->outLaneSide == 1)
MPlayStart(&gMPlayInfo_SE1, &se_unk_b1);
MPlayStart(&gMPlayInfo_SE1, &se_pikachu_kickback);
else
MPlayStart(&gMPlayInfo_SE1, &se_unk_b3);
MPlayStart(&gMPlayInfo_SE1, &se_pichu_kickback);
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x40);
}
else
{
MPlayStart(&gMPlayInfo_SE1, &se_unk_b1);
MPlayStart(&gMPlayInfo_SE1, &se_pikachu_kickback);
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x40);
}
}
}
if (gCurrentPinballGame->catchOverlayTimer == 115 && gCurrentPinballGame->activePortraitType == 1)
if (gCurrentPinballGame->kickbackLaunchTimer == 115 && gCurrentPinballGame->activePortraitType == 1)
m4aMPlayVolumeControl(&gMPlayInfo_SE1, 0xFFFF, 0x200);
// used for the horizontal 'floaty' movement when electric builds pre-launch.
gCurrentPinballGame->ball->positionQ1.x =
gCurrentPinballGame->catchBallStartPos.x + ((Sin(r5) * 6) / 20000) +
((gCatchHoleXPositions[gCurrentPinballGame->outLaneSide - 1] * 2 - gCurrentPinballGame->catchBallStartPos.x) * (gCurrentPinballGame->catchAnimDuration - gCurrentPinballGame->catchAnimProgress)) / gCurrentPinballGame->catchAnimDuration;
gCurrentPinballGame->kickbackBallHoverPos.x + ((Sin(r5) * 6) / 20000) +
((gOutlaneCenterXPositions[gCurrentPinballGame->outLaneSide - 1] * 2 - gCurrentPinballGame->kickbackBallHoverPos.x) * (gCurrentPinballGame->kickbackAnimDuration - gCurrentPinballGame->kickbackAnimProgress)) / gCurrentPinballGame->kickbackAnimDuration;
tempY = ((gCurrentPinballGame->catchAnimDuration - gCurrentPinballGame->catchAnimProgress) * 40) / gCurrentPinballGame->catchAnimDuration;
gCurrentPinballGame->ball->positionQ1.y = gCurrentPinballGame->catchBallStartPos.y - tempY;
tempY = ((gCurrentPinballGame->kickbackAnimDuration - gCurrentPinballGame->kickbackAnimProgress) * 40) / gCurrentPinballGame->kickbackAnimDuration;
gCurrentPinballGame->ball->positionQ1.y = gCurrentPinballGame->kickbackBallHoverPos.y - tempY;
gCurrentPinballGame->ball->positionQ8.x = gCurrentPinballGame->ball->positionQ1.x * 128;
gCurrentPinballGame->ball->positionQ8.y = gCurrentPinballGame->ball->positionQ1.y * 128;
}
else if (gCurrentPinballGame->catchOverlayTimer == 1)
else if (gCurrentPinballGame->kickbackLaunchTimer == 1)
{
gCurrentPinballGame->ball->positionQ1.x = gCatchHoleXPositions[gCurrentPinballGame->outLaneSide - 1] * 2;
gCurrentPinballGame->ball->positionQ1.x = gOutlaneCenterXPositions[gCurrentPinballGame->outLaneSide - 1] * 2;
gCurrentPinballGame->ball->positionQ1.y = 702;
gCurrentPinballGame->ball->positionQ8.x = gCurrentPinballGame->ball->positionQ1.x * 128;
gCurrentPinballGame->ball->positionQ8.y = gCurrentPinballGame->ball->positionQ1.y * 128;
gCurrentPinballGame->ball->velocity.x = 0;
// fly me to the moon
gCurrentPinballGame->ball->velocity.y = -300;
m4aSongNumStart(SE_UNKNOWN_0x7C);
gCurrentPinballGame->catchOverlayTimer = 0;
m4aSongNumStart(SE_KICKBACK_THUNDERWAVE);
gCurrentPinballGame->kickbackLaunchTimer = 0;
gCurrentPinballGame->ballFrozenState = 0;
gCurrentPinballGame->ballUpgradeTimerFrozen = 0;
gCurrentPinballGame->holeIndicators[(gCurrentPinballGame->outLaneSide - 1) * 3] = 1;
@ -2038,14 +2040,14 @@ void UpdateCatchModeLogic(void)
PlayRumble(11);
}
if (gCurrentPinballGame->catchOverlayTimer >= 100)
if (gCurrentPinballGame->kickbackLaunchTimer >= 100)
{
if (gCurrentPinballGame->outLanePikaPosition == 2)
gCurrentPinballGame->pikaSaverTileIndex[gCurrentPinballGame->outLaneSide - 1] = (gCurrentPinballGame->outLaneSide - 1) * 7 + 2;
else
gCurrentPinballGame->pikaSaverTileIndex[gCurrentPinballGame->outLaneSide - 1] = 2;
if (gCurrentPinballGame->catchOverlayTimer == 100)
if (gCurrentPinballGame->kickbackLaunchTimer == 100)
{
gMain.fieldSpriteGroups[38]->available = 1;
@ -2061,37 +2063,37 @@ void UpdateCatchModeLogic(void)
}
else
{
if (gCatchOverlayAnimData[gCurrentPinballGame->catchOverlayKeyframeIndex][1] > gCurrentPinballGame->catchOverlayFrameTimer)
gCurrentPinballGame->catchOverlayFrameTimer++;
if (gCatchOverlayAnimData[gCurrentPinballGame->kickbackFrameId][1] > gCurrentPinballGame->kickbackAnimFrameTimer)
gCurrentPinballGame->kickbackAnimFrameTimer++;
else
{
gCurrentPinballGame->catchOverlayFrameTimer = 0;
gCurrentPinballGame->catchOverlayKeyframeIndex++;
gCurrentPinballGame->kickbackAnimFrameTimer = 0;
gCurrentPinballGame->kickbackFrameId++;
if (gCurrentPinballGame->catchOverlayKeyframeIndex == 23)
if (gCurrentPinballGame->kickbackFrameId == 23)
{
m4aSongNumStop(SE_UNKNOWN_0x7C);
m4aSongNumStop(SE_KICKBACK_THUNDERWAVE);
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100);
}
if (gCurrentPinballGame->catchOverlayKeyframeIndex > 25)
if (gCurrentPinballGame->kickbackFrameId > 25)
{
gCurrentPinballGame->catchOverlayKeyframeIndex = 25;
gCurrentPinballGame->entityOverlayCollisionState = 0;
gCurrentPinballGame->kickbackFrameId = 25;
gCurrentPinballGame->kickbackFiring = 0;
gMain.fieldSpriteGroups[38]->available = 0;
gCurrentPinballGame->activePortraitType = 0;
i = gCurrentPinballGame->outLaneSide - 1;
outlaneChuteIx = gCurrentPinballGame->outLaneSide - 1;
if (gCurrentPinballGame->outLanePikaPosition == 2)
gCurrentPinballGame->pikaSaverTileIndex[i] = i * 9;
gCurrentPinballGame->pikaSaverTileIndex[outlaneChuteIx] = outlaneChuteIx * 9;
else
gCurrentPinballGame->pikaSaverTileIndex[i] = 0;
gCurrentPinballGame->pikaSaverTileIndex[outlaneChuteIx] = 0;
DmaCopy16(3, gPikaSaverTilesGfx + (gCurrentPinballGame->pikaSaverTileIndex[i] * 0x180), 0x06010480 + (i * 0x180), 0x180);
DmaCopy16(3, gPikaSaverTilesGfx + (gCurrentPinballGame->pikaSaverTileIndex[outlaneChuteIx] * 0x180), 0x06010480 + (outlaneChuteIx * 0x180), 0x180);
}
}
if (gCurrentPinballGame->catchOverlayKeyframeIndex >= 17 && gCurrentPinballGame->catchOverlayKeyframeIndex <= 23)
if (gCurrentPinballGame->kickbackFrameId >= 17 && gCurrentPinballGame->kickbackFrameId <= 23)
{
if ((gMain.systemFrameCount & 3) >> 1)
gCurrentPinballGame->cameraBaseX = -3;
@ -2099,29 +2101,29 @@ void UpdateCatchModeLogic(void)
gCurrentPinballGame->cameraBaseX = 3;
}
r5 = gCatchOverlayAnimData[gCurrentPinballGame->catchOverlayKeyframeIndex][0];
i = gCurrentPinballGame->outLaneSide - 1;
oamIx = gCatchOverlayAnimData[gCurrentPinballGame->kickbackFrameId][0];
outlaneChuteIx = gCurrentPinballGame->outLaneSide - 1;
spriteGroup = gMain.fieldSpriteGroups[38];
spriteGroup->baseX = (i * 177) - (gCurrentPinballGame->cameraXOffset - 16);
if (gCurrentPinballGame->entityOverlayCollisionState)
spriteGroup->baseX = (outlaneChuteIx * 177) - (gCurrentPinballGame->cameraXOffset - 16);
if (gCurrentPinballGame->kickbackFiring)
{
spriteGroup->baseY = 380 - gCurrentPinballGame->cameraYOffset;
gCurrentPinballGame->catchHoleOccupied[i] = 0;
gCurrentPinballGame->kickbackOccupied[outlaneChuteIx] = 0;
}
else
{
spriteGroup->baseY = 180;
gCurrentPinballGame->catchHoleOccupied[i] = 1;
gCurrentPinballGame->kickbackOccupied[outlaneChuteIx] = 1;
}
for (j = 0; j < 4; j++)
{
oamSimple = &spriteGroup->oam[j];
dst = (u16 *)&gOamBuffer[oamSimple->oamId];
*dst++ = gCatchOverlayOamData[r5][j * 3 + 0];
*dst++ = gCatchOverlayOamData[r5][j * 3 + 1];
*dst++ = gCatchOverlayOamData[r5][j * 3 + 2];
*dst++ = gCatchOverlayOamData[oamIx][j * 3 + 0];
*dst++ = gCatchOverlayOamData[oamIx][j * 3 + 1];
*dst++ = gCatchOverlayOamData[oamIx][j * 3 + 2];
gOamBuffer[oamSimple->oamId].x += spriteGroup->baseX;
gOamBuffer[oamSimple->oamId].y += spriteGroup->baseY;
@ -2132,15 +2134,15 @@ void UpdateCatchModeLogic(void)
if (spriteGroup->available)
{
for (i = 0; i <= 1; i++)
for (outlaneChuteIx = 0; outlaneChuteIx <= 1; outlaneChuteIx++)
{
spriteGroup = gMain.fieldSpriteGroups[29 + i];
spriteGroup->baseX = (i * 177) - (gCurrentPinballGame->cameraXOffset - 16);
if (gCurrentPinballGame->catchHoleOccupied[i])
spriteGroup = gMain.fieldSpriteGroups[29 + outlaneChuteIx];
spriteGroup->baseX = (outlaneChuteIx * 177) - (gCurrentPinballGame->cameraXOffset - 16);
if (gCurrentPinballGame->kickbackOccupied[outlaneChuteIx])
{
if ((gMain.fieldFrameCount % 5) == 0)
{
DmaCopy16(3, gPikaSaverTilesGfx + (gCurrentPinballGame->pikaSaverTileIndex[i] * 0x180), 0x06010480 + (i * 0x180), 0x180);
DmaCopy16(3, gPikaSaverTilesGfx + (gCurrentPinballGame->pikaSaverTileIndex[outlaneChuteIx] * 0x180), 0x06010480 + (outlaneChuteIx * 0x180), 0x180);
}
tempY = 380 - gCurrentPinballGame->cameraYOffset;

View File

@ -76,12 +76,12 @@ extern const u8 gPikachuSaverTilesGfx[];
extern u8 gCatchSpritePaletteBuffer[];
extern struct SongHeader se_unk_84;
extern struct SongHeader se_unk_85;
extern struct SongHeader se_unk_86;
extern struct SongHeader se_evo_item_appear;
extern struct SongHeader se_evo_item_finish_appear;
extern struct SongHeader se_evo_item_collected;
void AnimateCreatureApproach(void)
void PichuArrivalSequence(void)
{
s16 i;
struct SpriteGroup *group;
@ -94,36 +94,38 @@ void AnimateCreatureApproach(void)
s16 index;
group = gMain.fieldSpriteGroups[41];
if (gCurrentPinballGame->pikaSaverTimer == 0)
if (gCurrentPinballGame->pichuEntranceTimer == 0)
return;
if (gCurrentPinballGame->pikaSaverTimer == 800)
if (gCurrentPinballGame->pichuEntranceTimer == 800)
{
group->available = 1;
if (gCurrentPinballGame->pikaRescuePath == 1)
if (gCurrentPinballGame->pichuWalkMode == 1)
{
gCurrentPinballGame->catchCreatureX = 1090;
gCurrentPinballGame->catchCreatureY = 4680;
//Start entrance
gCurrentPinballGame->walkMonXPos = 1090;
gCurrentPinballGame->walkMonYPos = 4680;
gCurrentPinballGame->creatureWaypointIndex = 0;
}
else
{
gCurrentPinballGame->catchCreatureX = 2000;
gCurrentPinballGame->catchCreatureY = 3820;
//Start exit
gCurrentPinballGame->walkMonXPos = 2000;
gCurrentPinballGame->walkMonYPos = 3820;
gCurrentPinballGame->creatureWaypointIndex = 4;
}
}
else
{
if (gCurrentPinballGame->pikaSaverTimer == 799)
if (gCurrentPinballGame->pichuEntranceTimer == 799)
{
if (gCurrentPinballGame->pikaRescuePath != 1)
if (gCurrentPinballGame->pichuWalkMode != 1)
{
DmaCopy16(3, gPikaSaverTilesGfx, (void *)0x06010600, 0x180);
}
}
tempVec.x = gPikaSaverWaypoints[gCurrentPinballGame->creatureWaypointIndex].x - 120 - gCurrentPinballGame->catchCreatureX;
tempVec.y = gPikaSaverWaypoints[gCurrentPinballGame->creatureWaypointIndex].y - 160 - gCurrentPinballGame->catchCreatureY;
tempVec.x = gPikaSaverWaypoints[gCurrentPinballGame->creatureWaypointIndex].x - 120 - gCurrentPinballGame->walkMonXPos;
tempVec.y = gPikaSaverWaypoints[gCurrentPinballGame->creatureWaypointIndex].y - 160 - gCurrentPinballGame->walkMonYPos;
xx = tempVec.x * tempVec.x;
yy = tempVec.y * tempVec.y;
squaredMagnitude = xx + yy;
@ -131,12 +133,12 @@ void AnimateCreatureApproach(void)
tempVec2.x = (Cos(angle) * 7) / 20000;
tempVec2.y = (Sin(angle) * -7) / 20000;
index = gAngleToDirectionTable[angle / 0x2000] + (gMain.systemFrameCount % 24) / 8;
gCurrentPinballGame->catchCreatureX += tempVec2.x;
gCurrentPinballGame->catchCreatureY += tempVec2.y;
gCurrentPinballGame->walkMonXPos += tempVec2.x;
gCurrentPinballGame->walkMonYPos += tempVec2.y;
if (group->available)
{
group->baseX = gCurrentPinballGame->catchCreatureX / 10 - gCurrentPinballGame->cameraXOffset;
group->baseY = gCurrentPinballGame->catchCreatureY / 10 - gCurrentPinballGame->cameraYOffset;
group->baseX = gCurrentPinballGame->walkMonXPos / 10 - gCurrentPinballGame->cameraXOffset;
group->baseY = gCurrentPinballGame->walkMonYPos / 10 - gCurrentPinballGame->cameraYOffset;
if (group->baseY > 180)
group->baseY = 180;
else if (group->baseY < -30)
@ -155,31 +157,31 @@ void AnimateCreatureApproach(void)
if (squaredMagnitude < 2500)
{
gCurrentPinballGame->creatureWaypointIndex++;
if (gCurrentPinballGame->pikaRescuePath == 1)
if (gCurrentPinballGame->pichuWalkMode == 1)
{
if (gCurrentPinballGame->creatureWaypointIndex == 4)
{
DmaCopy16(3, gPikachuSaverTilesGfx, (void *)0x06010600, 0x180);
gCurrentPinballGame->outLanePikaPosition = 2;
gMain.fieldSpriteGroups[41]->available = 0;
gCurrentPinballGame->pikaSaverTimer = 1;
m4aSongNumStart(SE_UNKNOWN_0x75);
gCurrentPinballGame->pichuEntranceTimer = 1;
m4aSongNumStart(SE_PICHU_IN_POSITION_CHIRP);
}
}
else if (gCurrentPinballGame->creatureWaypointIndex == 7)
{
gMain.fieldSpriteGroups[41]->available = 0;
gCurrentPinballGame->pikaSaverTimer = 1;
gCurrentPinballGame->pichuEntranceTimer = 1;
}
}
}
gCurrentPinballGame->pikaSaverTimer--;
gCurrentPinballGame->pichuEntranceTimer--;
}
void ResetCatchState(s16 arg0)
void ResetCatchState(s16 resetHoleIndicators)
{
if (arg0)
if (resetHoleIndicators)
{
gCurrentPinballGame->allHolesLit = 0;
gCurrentPinballGame->holeIndicators[0] = 0;
@ -544,70 +546,70 @@ void AnimateBonusTrapSprite(void)
}
}
void AnimateCatchCounterDisplay(void)
void ProcessChargeIndicator(void)
{
s16 i;
struct SpriteGroup *group;
struct OamDataSimple *oamSimple;
s16 index;
s16 chargeLevelIx;
s16 sp0[3];
group = gMain.fieldSpriteGroups[17];
memset(sp0, 0, sizeof(sp0));
if (gCurrentPinballGame->catchCounterValue != gCurrentPinballGame->prevCatchCounterValue)
if (gCurrentPinballGame->chargeFillValue != gCurrentPinballGame->prevChargeFillValue)
{
if (gCurrentPinballGame->catchCounterValue == 12) {
if (gCurrentPinballGame->pikachuAnimTimer)
if (gCurrentPinballGame->chargeFillValue == 12) {
if (gCurrentPinballGame->chargeFillAnimTimer)
{
gCurrentPinballGame->pikachuAnimTimer--;
index = ((gCurrentPinballGame->pikachuAnimTimer % 20) / 10) + 12;
if (gCurrentPinballGame->pikachuAnimTimer < 41)
gCurrentPinballGame->chargeFillAnimTimer--;
chargeLevelIx = ((gCurrentPinballGame->chargeFillAnimTimer % 20) / 10) + 12;
if (gCurrentPinballGame->chargeFillAnimTimer < 41)
{
if (gCurrentPinballGame->pikachuAnimTimer > 2)
if (gCurrentPinballGame->chargeFillAnimTimer > 2)
{
gCurrentPinballGame->catchCounterXShift += 3;
gCurrentPinballGame->catchCounterSlideOffsetY += 2;
gCurrentPinballGame->chargeIndicatorXOffset += 3;
gCurrentPinballGame->chargeIndicatorYOffset += 2;
}
gCurrentPinballGame->catchCounterAnimState = gCurrentPinballGame->catchCounterScaleY = ((gCurrentPinballGame->pikachuAnimTimer * 128) / 40) + 128;
sp0[1] = ((40 - gCurrentPinballGame->pikachuAnimTimer) * 16) / 40;
sp0[0] = -((40 - gCurrentPinballGame->pikachuAnimTimer) * 16) / 40;
gCurrentPinballGame->chargeIndicatorScaleX = gCurrentPinballGame->chargeIndicatorScaleY = ((gCurrentPinballGame->chargeFillAnimTimer * 128) / 40) + 128;
sp0[1] = ((40 - gCurrentPinballGame->chargeFillAnimTimer) * 16) / 40;
sp0[0] = -((40 - gCurrentPinballGame->chargeFillAnimTimer) * 16) / 40;
sp0[2] = 0;
}
}
else
{
gCurrentPinballGame->prevCatchCounterValue = 13;
gCurrentPinballGame->catchCounterValue = 13;
index = 13;
gCurrentPinballGame->catchCounterSlideTimer = 0;
gCurrentPinballGame->catchCounterSlideOffsetY = 120;
gCurrentPinballGame->catchCounterBlinkTimer = 60;
gCurrentPinballGame->prevChargeFillValue = 13;
gCurrentPinballGame->chargeFillValue = 13;
chargeLevelIx = 13;
gCurrentPinballGame->fullChargeSlideAnimTimer = 0;
gCurrentPinballGame->chargeIndicatorYOffset = 120;
gCurrentPinballGame->fullChargeIndicatorBlinkTimer = 60;
}
DmaCopy16(3, gCatchCounterDigitTilesGfx[index], (void *)0x06010AE0, 0x80);
DmaCopy16(3, gChargeFillIndicator_Gfx[chargeLevelIx], (void *)0x06010AE0, 0x80);
}
else
{
DmaCopy16(3, gCatchCounterDigitTilesGfx[gCurrentPinballGame->catchCounterValue], (void *)0x06010AE0, 0x80);
gCurrentPinballGame->prevCatchCounterValue = gCurrentPinballGame->catchCounterValue;
DmaCopy16(3, gChargeFillIndicator_Gfx[gCurrentPinballGame->chargeFillValue], (void *)0x06010AE0, 0x80);
gCurrentPinballGame->prevChargeFillValue = gCurrentPinballGame->chargeFillValue;
}
}
if (gCurrentPinballGame->catchCounterSlideTimer)
if (gCurrentPinballGame->fullChargeSlideAnimTimer)
{
gCurrentPinballGame->catchCounterSlideTimer--;
group->baseY = 80 + gCurrentPinballGame->catchCounterSlideOffsetY;
if (gCurrentPinballGame->catchCounterSlideTimer < 20)
gCurrentPinballGame->catchCounterScaleY = (gCurrentPinballGame->catchCounterSlideTimer * 12) + 16;
gCurrentPinballGame->fullChargeSlideAnimTimer--;
group->baseY = 80 + gCurrentPinballGame->chargeIndicatorYOffset;
if (gCurrentPinballGame->fullChargeSlideAnimTimer < 20)
gCurrentPinballGame->chargeIndicatorScaleY = (gCurrentPinballGame->fullChargeSlideAnimTimer * 12) + 16;
}
else
{
group->baseY = 180;
}
group->baseX = 119 + gCurrentPinballGame->catchCounterXShift;
SetMatrixScale(gCurrentPinballGame->catchCounterAnimState, gCurrentPinballGame->catchCounterScaleY, 1);
group->baseX = 119 + gCurrentPinballGame->chargeIndicatorXOffset;
SetMatrixScale(gCurrentPinballGame->chargeIndicatorScaleX, gCurrentPinballGame->chargeIndicatorScaleY, 1);
for (i = 0; i < 3; i++)
{
oamSimple = &group->oam[i];
@ -896,7 +898,7 @@ void AnimateCoinReward(void)
gCurrentPinballGame->coinBounceTimer[var2] = 17;
gCurrentPinballGame->coinSpritePos[var2].x = 188;
gCurrentPinballGame->coinSpritePos[var2].y = 140;
m4aSongNumStart(SE_UNKNOWN_0x7E);
m4aSongNumStart(SE_COIN_COLLECTED);
gCurrentPinballGame->coins += gCurrentPinballGame->coinRewardAmount - gCurrentPinballGame->coinsAwarded;
if (gCurrentPinballGame->coins > 99)
gCurrentPinballGame->coins = 99;
@ -912,7 +914,7 @@ void AnimateCoinReward(void)
gCurrentPinballGame->coinSpritePos[var2].x = 188;
gCurrentPinballGame->coinSpritePos[var2].y = 140;
gCurrentPinballGame->coinsAwarded++;
m4aSongNumStart(SE_UNKNOWN_0x7E);
m4aSongNumStart(SE_COIN_COLLECTED);
gCurrentPinballGame->coins++;
if (gCurrentPinballGame->coins > 99)
gCurrentPinballGame->coins = 99;
@ -1493,7 +1495,7 @@ void UpdateEggModeAnimation(void)
RequestBoardStateTransition(5);
if (gCurrentPinballGame->eggAnimFrameIndex == 28)
m4aSongNumStart(SE_UNKNOWN_0x92);
m4aSongNumStart(SE_HATCH_FLOURISH);
}
var3 = gEggAnimationFrameData[gCurrentPinballGame->eggAnimFrameIndex][0];
@ -1715,25 +1717,25 @@ void InitEggMode(void)
{
gCurrentPinballGame->boardSubState = 0;
gCurrentPinballGame->stageTimer = 0;
gCurrentPinballGame->modeTimeRemaining = 1800;
gCurrentPinballGame->saverTimeRemaining = 1800;
gCurrentPinballGame->creatureHitCount = 0;
gCurrentPinballGame->creatureVelX = 0;
gCurrentPinballGame->creatureVelY = 0;
gCurrentPinballGame->walkMonXVelocity = 0;
gCurrentPinballGame->walkMonYVelocity = 0;
if (gMain.selectedField == FIELD_RUBY)
{
gCurrentPinballGame->catchCreatureX = 750;
gCurrentPinballGame->catchCreatureY = 1040;
gCurrentPinballGame->walkMonXPos = 750;
gCurrentPinballGame->walkMonYPos = 1040;
}
else
{
gCurrentPinballGame->catchCreatureX = 1960;
gCurrentPinballGame->catchCreatureY = 300;
gCurrentPinballGame->walkMonXPos = 1960;
gCurrentPinballGame->walkMonYPos = 300;
}
gCurrentPinballGame->creatureWaypointIndex = 0;
gCurrentPinballGame->waypointSubTimer = 0;
gCurrentPinballGame->creatureVelX = 0;
gCurrentPinballGame->creatureVelY = 0;
gCurrentPinballGame->walkMonXVelocity = 0;
gCurrentPinballGame->walkMonYVelocity = 0;
gCurrentPinballGame->creatureHitCooldown = 0;
gCurrentPinballGame->captureFlashTimer = 0;
}
@ -1779,8 +1781,8 @@ void UpdateEggMode(void)
{
gCurrentPinballGame->creatureWaypointIndex = 0;
gCurrentPinballGame->boardSubState = 3;
gCurrentPinballGame->creatureVelX = 0;
gCurrentPinballGame->creatureVelY = 0;
gCurrentPinballGame->walkMonXVelocity = 0;
gCurrentPinballGame->walkMonYVelocity = 0;
}
if (gCurrentPinballGame->creatureWaypointIndex == 12)
@ -1797,13 +1799,13 @@ void UpdateEggMode(void)
if (gCurrentPinballGame->creatureWaypointIndex == 12)
{
gCurrentPinballGame->creatureVelX = -8;
gCurrentPinballGame->creatureVelY = -30;
gCurrentPinballGame->walkMonXVelocity = -8;
gCurrentPinballGame->walkMonYVelocity = -30;
}
else
{
gCurrentPinballGame->creatureVelX = 0;
gCurrentPinballGame->creatureVelY = 0;
gCurrentPinballGame->walkMonXVelocity = 0;
gCurrentPinballGame->walkMonYVelocity = 0;
}
}
else
@ -1813,8 +1815,8 @@ void UpdateEggMode(void)
gCurrentPinballGame->waypointSubTimer = 0;
gCurrentPinballGame->creatureWaypointIndex = 10;
gCurrentPinballGame->boardSubState = 2;
gCurrentPinballGame->creatureVelX = 0;
gCurrentPinballGame->creatureVelY = 0;
gCurrentPinballGame->walkMonXVelocity = 0;
gCurrentPinballGame->walkMonYVelocity = 0;
}
}
}
@ -1823,13 +1825,13 @@ void UpdateEggMode(void)
var1 = gEggHatchAnimData[gCurrentPinballGame->creatureWaypointIndex][2];
if (gCurrentPinballGame->creatureWaypointIndex == 12)
{
gCurrentPinballGame->creatureVelY += 2;
gCurrentPinballGame->catchCreatureX += gCurrentPinballGame->creatureVelX;
gCurrentPinballGame->catchCreatureY += gCurrentPinballGame->creatureVelY;
gCurrentPinballGame->walkMonYVelocity += 2;
gCurrentPinballGame->walkMonXPos += gCurrentPinballGame->walkMonXVelocity;
gCurrentPinballGame->walkMonYPos += gCurrentPinballGame->walkMonYVelocity;
}
group->baseX = gCurrentPinballGame->catchCreatureX / 10 - gCurrentPinballGame->cameraXOffset;
group->baseY = gCurrentPinballGame->catchCreatureY / 10 - gCurrentPinballGame->cameraYOffset;
group->baseX = gCurrentPinballGame->walkMonXPos / 10 - gCurrentPinballGame->cameraXOffset;
group->baseY = gCurrentPinballGame->walkMonYPos / 10 - gCurrentPinballGame->cameraYOffset;
DmaCopy16(3, gCatchSpriteFrameBuffer[var0], (void *)0x060112A0, 0x120);
DmaCopy16(3, gCatchSpritePaletteBuffer, (void *)0x050003A0, 0x20);
for (i = 0; i < 4; i++)
@ -1859,8 +1861,8 @@ void UpdateEggMode(void)
}
else if (gCurrentPinballGame->waypointSubTimer == 240)
{
gCurrentPinballGame->catchCreatureX = 2260;
gCurrentPinballGame->catchCreatureY = 740;
gCurrentPinballGame->walkMonXPos = 2260;
gCurrentPinballGame->walkMonYPos = 740;
gCurrentPinballGame->creatureWaypointIndex = 0;
priority = 2;
var0 = 0;
@ -1868,8 +1870,8 @@ void UpdateEggMode(void)
}
else
{
tempVec.x = gSapphireEggWaypoints[gCurrentPinballGame->creatureWaypointIndex].x - 120 - gCurrentPinballGame->catchCreatureX;
tempVec.y = gSapphireEggWaypoints[gCurrentPinballGame->creatureWaypointIndex].y - 160 - gCurrentPinballGame->catchCreatureY;
tempVec.x = gSapphireEggWaypoints[gCurrentPinballGame->creatureWaypointIndex].x - 120 - gCurrentPinballGame->walkMonXPos;
tempVec.y = gSapphireEggWaypoints[gCurrentPinballGame->creatureWaypointIndex].y - 160 - gCurrentPinballGame->walkMonYPos;
xx = tempVec.x * tempVec.x;
yy = tempVec.y * tempVec.y;
squaredMagnitude = xx + yy;
@ -1892,8 +1894,8 @@ void UpdateEggMode(void)
tempVec2.y = -(Sin(angle) * 7) / 20000;
}
gCurrentPinballGame->catchCreatureX += tempVec2.x;
gCurrentPinballGame->catchCreatureY += tempVec2.y;
gCurrentPinballGame->walkMonXPos += tempVec2.x;
gCurrentPinballGame->walkMonYPos += tempVec2.y;
if (squaredMagnitude < 2500)
{
if (gCurrentPinballGame->creatureWaypointIndex < 6)
@ -1904,8 +1906,8 @@ void UpdateEggMode(void)
{
gCurrentPinballGame->creatureWaypointIndex = 3;
gCurrentPinballGame->boardSubState = 3;
gCurrentPinballGame->creatureVelX = 0;
gCurrentPinballGame->creatureVelY = 0;
gCurrentPinballGame->walkMonXVelocity = 0;
gCurrentPinballGame->walkMonYVelocity = 0;
}
}
@ -1922,8 +1924,8 @@ void UpdateEggMode(void)
DmaCopy16(3, gCatchSpriteFrameBuffer[var0], (void *)0x060112A0, 0x120);
gCurrentPinballGame->waypointSubTimer++;
group->baseX = gCurrentPinballGame->catchCreatureX / 10 - gCurrentPinballGame->cameraXOffset;
group->baseY = gCurrentPinballGame->catchCreatureY / 10 - gCurrentPinballGame->cameraYOffset;
group->baseX = gCurrentPinballGame->walkMonXPos / 10 - gCurrentPinballGame->cameraXOffset;
group->baseY = gCurrentPinballGame->walkMonYPos / 10 - gCurrentPinballGame->cameraYOffset;
if (group->baseY > 180)
group->baseY = 180;
else if (group->baseY < -30)
@ -1938,8 +1940,8 @@ void UpdateEggMode(void)
}
break;
case 3:
tempVec.x = gEggWalkPathWaypoints[gMain.selectedField][gCurrentPinballGame->creatureWaypointIndex].x - 120 - gCurrentPinballGame->catchCreatureX;
tempVec.y = gEggWalkPathWaypoints[gMain.selectedField][gCurrentPinballGame->creatureWaypointIndex].y - 160 - gCurrentPinballGame->catchCreatureY;
tempVec.x = gEggWalkPathWaypoints[gMain.selectedField][gCurrentPinballGame->creatureWaypointIndex].x - 120 - gCurrentPinballGame->walkMonXPos;
tempVec.y = gEggWalkPathWaypoints[gMain.selectedField][gCurrentPinballGame->creatureWaypointIndex].y - 160 - gCurrentPinballGame->walkMonYPos;
xx = tempVec.x * tempVec.x;
yy = tempVec.y * tempVec.y;
squaredMagnitude = xx + yy;
@ -1962,8 +1964,8 @@ void UpdateEggMode(void)
var0 = gAngleToDirectionTable[angle / 0x2000] + (gMain.systemFrameCount % 32) / 8 - ((gMain.systemFrameCount % 32) / 24) * 2;
}
gCurrentPinballGame->catchCreatureX += tempVec2.x;
gCurrentPinballGame->catchCreatureY += tempVec2.y;
gCurrentPinballGame->walkMonXPos += tempVec2.x;
gCurrentPinballGame->walkMonYPos += tempVec2.y;
}
if (squaredMagnitude < 2500)
@ -1998,8 +2000,8 @@ void UpdateEggMode(void)
priority = 1;
}
group->baseX = gCurrentPinballGame->catchCreatureX / 10 - gCurrentPinballGame->cameraXOffset;
group->baseY = gCurrentPinballGame->catchCreatureY / 10 - gCurrentPinballGame->cameraYOffset;;
group->baseX = gCurrentPinballGame->walkMonXPos / 10 - gCurrentPinballGame->cameraXOffset;
group->baseY = gCurrentPinballGame->walkMonYPos / 10 - gCurrentPinballGame->cameraYOffset;;
if (group->baseY > 180)
group->baseY = 180;
else if (group->baseY < -30)
@ -2020,8 +2022,8 @@ void UpdateEggMode(void)
}
else
{
tempVec.x = gCurrentPinballGame->ball->positionQ0.x - (gCurrentPinballGame->catchCreatureX / 10 + 12);
tempVec.y = gCurrentPinballGame->ball->positionQ0.y - (gCurrentPinballGame->catchCreatureY / 10 + 14);
tempVec.x = gCurrentPinballGame->ball->positionQ0.x - (gCurrentPinballGame->walkMonXPos / 10 + 12);
tempVec.y = gCurrentPinballGame->ball->positionQ0.y - (gCurrentPinballGame->walkMonYPos / 10 + 14);
xx = tempVec.x * tempVec.x;
yy = tempVec.y * tempVec.y;
squaredMagnitude = xx + yy;
@ -2033,7 +2035,7 @@ void UpdateEggMode(void)
if (gCurrentPinballGame->creatureHitCount > 1)
gCurrentPinballGame->boardSubState = 4;
m4aSongNumStart(SE_UNKNOWN_0x75);
m4aSongNumStart(SE_PICHU_IN_POSITION_CHIRP);
angle2 = ArcTan2(-gCurrentPinballGame->ball->velocity.x, gCurrentPinballGame->ball->velocity.y);
if (gCurrentPinballGame->creatureHitCount > 1)
{
@ -2058,14 +2060,14 @@ void UpdateEggMode(void)
DmaCopy16(3, &gBallUpgradeTilesGfx[(gCurrentPinballGame->ballUpgradeType * 8 + 4) * 0x40], (void *)0x06016760, 0x80);
gCurrentPinballGame->captureSequenceFrame = 0;
gCurrentPinballGame->captureState = 2;
gCurrentPinballGame->catchTargetX = gCurrentPinballGame->catchCreatureX / 10 + 8;
gCurrentPinballGame->catchTargetY = gCurrentPinballGame->catchCreatureY / 10 - 31;
gCurrentPinballGame->catchTargetX = gCurrentPinballGame->walkMonXPos / 10 + 8;
gCurrentPinballGame->catchTargetY = gCurrentPinballGame->walkMonYPos / 10 - 31;
for (i = 0; i < 6; i++)
gCurrentPinballGame->hatchTilePalette[i] = 13;
gCurrentPinballGame->boardSubState++;
group->baseX = gCurrentPinballGame->catchCreatureX / 10 - gCurrentPinballGame->cameraXOffset;
group->baseY = gCurrentPinballGame->catchCreatureY / 10 - gCurrentPinballGame->cameraYOffset;
group->baseX = gCurrentPinballGame->walkMonXPos / 10 - gCurrentPinballGame->cameraXOffset;
group->baseY = gCurrentPinballGame->walkMonYPos / 10 - gCurrentPinballGame->cameraYOffset;
if (group->baseY > 180)
group->baseY = 180;
@ -2088,8 +2090,8 @@ void UpdateEggMode(void)
if (group->available)
{
group->baseX = gCurrentPinballGame->catchCreatureX / 10 - gCurrentPinballGame->cameraXOffset;
group->baseY = gCurrentPinballGame->catchCreatureY / 10 - gCurrentPinballGame->cameraYOffset;
group->baseX = gCurrentPinballGame->walkMonXPos / 10 - gCurrentPinballGame->cameraXOffset;
group->baseY = gCurrentPinballGame->walkMonYPos / 10 - gCurrentPinballGame->cameraYOffset;
for (i = 0; i < 4; i++)
{
oamSimple = &group->oam[i];
@ -2255,7 +2257,7 @@ void RevealSequentialHatchTiles(void)
if (gCurrentPinballGame->hatchFrameId == 1)
{
m4aSongNumStart(SE_UNKNOWN_0x8C);
m4aSongNumStart(SE_CATCH_TILE_REVEAL);
InitSequentialTileParticles();
}
@ -2317,7 +2319,7 @@ void RevealAllHatchTilesAtOnce(void)
DmaCopy16(3, gHatchStartTilesGfx, (void *)0x06015800, 0x2000);
DmaCopy16(3, gHatchStartPalette, (void *)0x050003C0, 0x20);
gMain.fieldSpriteGroups[35]->available = 1;
m4aSongNumStart(SE_UNKNOWN_0x8D);
m4aSongNumStart(SE_CATCH_ALL_REVEAL_LIGHTNING);
gCurrentPinballGame->hatchRevealPhase++;
gCurrentPinballGame->revealAnimFrameCounter = 0;
gCurrentPinballGame->revealFramesetIndex = 0;
@ -2405,7 +2407,7 @@ void RevealAllHatchTilesAtOnce(void)
DmaCopy16(3, gHatchStage3Palette, (void *)0x050003C0, 0x20);
gCurrentPinballGame->hatchRevealPhase++;
InitBurstTileParticles();
m4aSongNumStart(SE_UNKNOWN_0x8E);
m4aSongNumStart(SE_CATCH_ALL_REVEAL_SHATTER);
break;
case 6:
gMain.blendBrightness = 0;
@ -2620,7 +2622,7 @@ void UpdateAreaRoulette(void)
gCurrentPinballGame->rouletteInitialSpeed = gCurrentPinballGame->rouletteSpinSpeed;
gCurrentPinballGame->sapphirePondFlag = 1;
gCurrentPinballGame->launcherCharging = 1;
gCurrentPinballGame->modeTimeRemaining = 3600;
gCurrentPinballGame->saverTimeRemaining = 3600;
gCurrentPinballGame->rubyPondState = RUBY_POND_STATE_CHINCHOU_COUNTERCLOCKWISE;
}
}
@ -2667,7 +2669,7 @@ void UpdateAreaRoulette(void)
gMain.fieldSpriteGroups[20]->available = 0;
gMain.fieldSpriteGroups[21]->available = 0;
gMain.fieldSpriteGroups[34]->available = 1;
m4aSongNumStart(SE_UNKNOWN_0x93);
m4aSongNumStart(SE_AREA_ROULETTE_SELECTED);
}
}
@ -2696,7 +2698,7 @@ void UpdateAreaRoulette(void)
gCurrentPinballGame->area = gAreaRouletteTable[gMain.selectedField][gCurrentPinballGame->areaRouletteSlotIndex];
gCurrentPinballGame->rouletteAreaIndex[1] = gAreaToSpeciesTable[gCurrentPinballGame->area];
LoadPortraitGraphics(0, 1);
m4aSongNumStart(SE_UNKNOWN_0x81);
m4aSongNumStart(SE_ROULETTE_TICK);
}
break;
case 6:
@ -2828,7 +2830,7 @@ void InitTravelMode(void)
gCurrentPinballGame->boardModeType = 2;
gCurrentPinballGame->eventTimer = gCurrentPinballGame->timerBonus + 3600;
gCurrentPinballGame->timerBonus = 0;
gCurrentPinballGame->modeTimeRemaining = 1800;
gCurrentPinballGame->saverTimeRemaining = 1800;
DmaCopy16(3, gDefaultBallPalette, (void *)0x05000180, 0x20);
}
@ -3040,7 +3042,7 @@ void InitEvolutionMode(void)
gCurrentPinballGame->boardModeType = 2;
gCurrentPinballGame->eventTimer = gCurrentPinballGame->timerBonus + 7200;
gCurrentPinballGame->timerBonus = 0;
gCurrentPinballGame->modeTimeRemaining = 3600;
gCurrentPinballGame->saverTimeRemaining = 3600;
if (gCurrentPinballGame->currentSpecies == SPECIES_WURMPLE)
{
gCurrentPinballGame->evoItemGfxIndex = 0;
@ -3388,7 +3390,7 @@ void UpdateEvolutionItemAnimation(void)
}
if (gCurrentPinballGame->evoItemAppearTimer == 60)
MPlayStart(&gMPlayInfo_SE1, &se_unk_84);
MPlayStart(&gMPlayInfo_SE1, &se_evo_item_appear);
if (gEvoItemAppearFrameThresholds[gCurrentPinballGame->evoItemAnimFrame] > gCurrentPinballGame->evoItemAnimFrameTimer)
{
@ -3404,7 +3406,7 @@ void UpdateEvolutionItemAnimation(void)
gCurrentPinballGame->evoItemAppearTimer = 1;
gMain.fieldSpriteGroups[40]->available = 0;
gMain.fieldSpriteGroups[32]->available = 1;
MPlayStart(&gMPlayInfo_SE1, &se_unk_85);
MPlayStart(&gMPlayInfo_SE1, &se_evo_item_finish_appear);
gCurrentPinballGame->activePortraitType = 0;
}
}
@ -3442,7 +3444,7 @@ void UpdateEvolutionItemAnimation(void)
gCurrentPinballGame->evoItemsCaught < 3)
{
gCurrentPinballGame->scoreAddedInFrame = 10000;
MPlayStart(&gMPlayInfo_SE1, &se_unk_86);
MPlayStart(&gMPlayInfo_SE1, &se_evo_item_collected);
gCurrentPinballGame->boardSubState = 1;
gCurrentPinballGame->catchLights[gCurrentPinballGame->evoItemsCaught] = 5;
gCurrentPinballGame->evoItemsCaught++;
@ -3517,11 +3519,11 @@ void InitCatchEmMode(void)
if (gCurrentPinballGame->catchEmModeStartCount == 0)
{
gCurrentPinballGame->modeTimeRemaining = 6000;
gCurrentPinballGame->saverTimeRemaining = 6000;
}
else
{
gCurrentPinballGame->modeTimeRemaining = 4200;
gCurrentPinballGame->saverTimeRemaining = 4200;
}
gCurrentPinballGame->catchEmModeStartCount++;

View File

@ -40,9 +40,9 @@ extern const u16 gHatchAnimOamAttributes[][3];
extern const u16 gSapphireHatchOamFramesets[14][18];
extern const u8 (*gCatchSpriteGfxPtrs[])[0x480];
extern struct SongHeader se_unk_84;
extern struct SongHeader se_unk_81;
extern struct SongHeader se_unk_87;
extern struct SongHeader se_evo_item_appear;
extern struct SongHeader se_roulette_tick;
extern struct SongHeader se_ball_upgrade;
extern struct SongHeader se_unk_9a;
enum HatchTileRevealStates {
@ -272,7 +272,7 @@ void InitJirachiBonus(void)
gCurrentPinballGame->jirachiTagTimer[1] = 10;
gCurrentPinballGame->jirachiTagTimer[2] = 20;
gCurrentPinballGame->jirachiTagTimer[3] = 30;
gCurrentPinballGame->modeTimeRemaining = 3240;
gCurrentPinballGame->saverTimeRemaining = 3240;
gCurrentPinballGame->allHolesLit = 0;
gCurrentPinballGame->holeIndicators[0] = 0;
gCurrentPinballGame->holeIndicators[1] = gCurrentPinballGame->holeIndicators[0];
@ -466,7 +466,7 @@ void UpdateJirachiBonus(void)
gCurrentPinballGame->boardSubState = 4;
gCurrentPinballGame->stageTimer = 150;
gCurrentPinballGame->jirachiCollisionEnabled = 0;
MPlayStart(&gMPlayInfo_SE1, &se_unk_84);
MPlayStart(&gMPlayInfo_SE1, &se_evo_item_appear);
}
return;
case 4:
@ -1220,7 +1220,7 @@ void RunRouletteWheel(void)
gCurrentPinballGame->modeOutcomeValues[1] = gCurrentPinballGame->rouletteSlotValues[gCurrentPinballGame->rouletteSlotCursor];
LoadPortraitGraphics(2, 1);
MPlayStart(&gMPlayInfo_SE1, &se_unk_81);
MPlayStart(&gMPlayInfo_SE1, &se_roulette_tick);
}
}
@ -1247,7 +1247,7 @@ void ProcessRouletteOutcome(void)
case 0:
case 1:
case 2:
gCurrentPinballGame->modeTimeRemaining = (gCurrentPinballGame->rouletteOutcomeId + 1) * 1800;
gCurrentPinballGame->saverTimeRemaining = (gCurrentPinballGame->rouletteOutcomeId + 1) * 1800;
break;
case 3:
if (gCurrentPinballGame->ballCatchState == 3)
@ -1265,15 +1265,15 @@ void ProcessRouletteOutcome(void)
{
gCurrentPinballGame->pikaChargeTarget = 168;
gCurrentPinballGame->pikaChargeProgress = 168;
gCurrentPinballGame->prevCatchCounterValue = 13;
gCurrentPinballGame->catchCounterValue = 13;
gCurrentPinballGame->catchCounterSlideTimer = 0;
gCurrentPinballGame->catchCounterSlideOffsetY = 120;
gCurrentPinballGame->catchCounterBlinkTimer = 60;
gCurrentPinballGame->prevChargeFillValue = 13;
gCurrentPinballGame->chargeFillValue = 13;
gCurrentPinballGame->fullChargeSlideAnimTimer = 0;
gCurrentPinballGame->chargeIndicatorYOffset = 120;
gCurrentPinballGame->fullChargeIndicatorBlinkTimer = 60;
DmaCopy16(3, gPikachuSaverTilesGfx, (void *)0x06010600, 0x180);
gCurrentPinballGame->outLanePikaPosition = 2;
gMain.fieldSpriteGroups[41]->available = 0;
gCurrentPinballGame->pikaSaverTimer = 1;
gCurrentPinballGame->pichuEntranceTimer = 1;
}
}
else
@ -1289,19 +1289,19 @@ void ProcessRouletteOutcome(void)
gCurrentPinballGame->bannerGfxIndex = 0;
gCurrentPinballGame->bannerActive = 1;
gCurrentPinballGame->bannerPreserveBallState = 0;
gCurrentPinballGame->pikaRescuePath = 1;
gCurrentPinballGame->pikaSaverTimer = 800;
gCurrentPinballGame->pichuWalkMode = 1;
gCurrentPinballGame->pichuEntranceTimer = 800;
gCurrentPinballGame->outLanePikaPosition = 0;
gCurrentPinballGame->pikaChargeTarget = 168;
gCurrentPinballGame->pikaChargeProgress = 168;
gCurrentPinballGame->prevCatchCounterValue = 13;
gCurrentPinballGame->catchCounterValue = 13;
gCurrentPinballGame->catchCounterSlideTimer = 0;
gCurrentPinballGame->catchCounterSlideOffsetY = 120;
gCurrentPinballGame->catchCounterBlinkTimer = 60;
gCurrentPinballGame->prevChargeFillValue = 13;
gCurrentPinballGame->chargeFillValue = 13;
gCurrentPinballGame->fullChargeSlideAnimTimer = 0;
gCurrentPinballGame->chargeIndicatorYOffset = 120;
gCurrentPinballGame->fullChargeIndicatorBlinkTimer = 60;
}
if (gCurrentPinballGame->pikaSaverTimer)
if (gCurrentPinballGame->pichuEntranceTimer)
{
if (gCurrentPinballGame->outcomeFrameCounter >= 176)
gCurrentPinballGame->outcomeFrameCounter = 176;
@ -1385,7 +1385,7 @@ void ProcessRouletteOutcome(void)
gCurrentPinballGame->ballUpgradeType++;
gCurrentPinballGame->ballUpgradeCounter = 3600;
MPlayStart(&gMPlayInfo_SE1, &se_unk_87);
MPlayStart(&gMPlayInfo_SE1, &se_ball_upgrade);
DmaCopy16(3, gBallPalettes[gCurrentPinballGame->ballUpgradeType], (void *)0x05000220, 0x20);
}
break;
@ -1394,7 +1394,7 @@ void ProcessRouletteOutcome(void)
{
gCurrentPinballGame->ballUpgradeType = BALL_UPGRADE_TYPE_MASTER_BALL;
gCurrentPinballGame->ballUpgradeCounter = 3600;
MPlayStart(&gMPlayInfo_SE1, &se_unk_87);
MPlayStart(&gMPlayInfo_SE1, &se_ball_upgrade);
DmaCopy16(3, gBallPalettes[gCurrentPinballGame->ballUpgradeType], (void *)0x05000220, 0x20);
}
break;
@ -1460,19 +1460,19 @@ void ProcessRouletteOutcome(void)
case 33:
if (gCurrentPinballGame->outcomeFrameCounter == 70)
{
m4aSongNumStart(SE_UNKNOWN_0x91);
m4aSongNumStart(SE_BONUS_SCORE_TALLIED);
gCurrentPinballGame->scoreAddedInFrame = 100;
}
break;
case 34:
if (gCurrentPinballGame->outcomeFrameCounter == 70) {
m4aSongNumStart(SE_UNKNOWN_0x91);
m4aSongNumStart(SE_BONUS_SCORE_TALLIED);
gCurrentPinballGame->scoreAddedInFrame = 500;
}
break;
case 35:
if (gCurrentPinballGame->outcomeFrameCounter == 70) {
m4aSongNumStart(SE_UNKNOWN_0x91);
m4aSongNumStart(SE_BONUS_SCORE_TALLIED);
gCurrentPinballGame->scoreAddedInFrame = 900;
}
break;

View File

@ -2,6 +2,7 @@
#include "m4a.h"
#include "main.h"
#include "constants/bg_music.h"
#include "constants/main_board.h"
extern const s16 gPelipperIdleFrameIndices[];
extern const s16 gPelipperSwallowAnimData[][3];
@ -50,7 +51,7 @@ extern const u8 gLifeCountDigit_Gfx[][0x40];
extern const u8 gOneUpSpritePalette[];
extern struct SongHeader se_unk_fc;
extern struct SongHeader se_unk_7a;
extern struct SongHeader se_pika_full_charge_1_up;
extern u8 gPaletteFadeRGBCache[][3];
@ -164,7 +165,7 @@ void AnimateOneUpSprite(void)
if (gCurrentPinballGame->oneUpAnimTimer == 58)
{
MPlayStart(&gMPlayInfo_SE1, &se_unk_7a);
MPlayStart(&gMPlayInfo_SE1, &se_pika_full_charge_1_up);
if (gCurrentPinballGame->numLives < 9)
gCurrentPinballGame->numLives++;
}
@ -763,7 +764,7 @@ void RunTravelEventCutscene(void)
gCurrentPinballGame->travelPainterVelY = -30;
index = (gCurrentPinballGame->stageTimer % 4) / 2;
if (gCurrentPinballGame->stageTimer % 10 == 0)
m4aSongNumStart(SE_UNKNOWN_0x97);
m4aSongNumStart(SE_TRAVEL_PAINTER_FLIGHT);
}
else if (gCurrentPinballGame->stageTimer < 90)
{
@ -807,7 +808,7 @@ void RunTravelEventCutscene(void)
index = gTravelEventAnimData[gCurrentPinballGame->travelAnimKeyframeIndex][1];
if (gTravelEventAnimData[gCurrentPinballGame->travelAnimKeyframeIndex][2] == 5 && gCurrentPinballGame->travelAnimSubTimer == 1)
m4aSongNumStart(SE_UNKNOWN_0x98);
m4aSongNumStart(SE_TRAVEL_PAINTER_PAINTS);
if (index == 16)
gCurrentPinballGame->travelPainterPosX = -80;
@ -848,7 +849,7 @@ void RunTravelEventCutscene(void)
gCurrentPinballGame->travelPainterPosX += gCurrentPinballGame->travelPainterVelX;
gCurrentPinballGame->travelPainterPosY += gCurrentPinballGame->travelPainterVelY;
if (gCurrentPinballGame->stageTimer % 10 == 0)
m4aSongNumStart(SE_UNKNOWN_0x97);
m4aSongNumStart(SE_TRAVEL_PAINTER_FLIGHT);
}
if (gMain.selectedField == FIELD_RUBY)
@ -1261,7 +1262,7 @@ void UpdateZigzagoonEntity(void)
gCurrentPinballGame->zigzagoonOamFrame = 1;
}
if (gCurrentPinballGame->ballCatchState != 4)
if (gCurrentPinballGame->ballCatchState != TRAP_CENTER_HOLE)
gCurrentPinballGame->zigzagoonShockWallActive = 0;
break;
case 2:
@ -1511,7 +1512,7 @@ void UpdateSapphireBumperLogic(void)
}
}
if (gCurrentPinballGame->ballCatchState != 3)
if (gCurrentPinballGame->ballCatchState != TRAP_EVO_SHOP_HOLE)
{
if (gCurrentPinballGame->sapphireBumperLitCountdown)
gCurrentPinballGame->sapphireBumperLitCountdown--;

View File

@ -116,7 +116,7 @@ void UpdateSapphireEggCaveAnimation(void)
RequestBoardStateTransition(5);
if (gCurrentPinballGame->eggAnimFrameIndex == 28)
m4aSongNumStart(SE_UNKNOWN_0x92);
m4aSongNumStart(SE_HATCH_FLOURISH);
}
sp0 = gEggAnimationFrameData[gCurrentPinballGame->eggAnimFrameIndex][0];

View File

@ -138,13 +138,13 @@ void UpdateSapphireHoleLetterSystem(void)
if (gCurrentPinballGame->holeLetterCount < 6)
{
gCurrentPinballGame->catchCreatureY = 280;
gCurrentPinballGame->walkMonYPos = 280;
}
else
{
gCurrentPinballGame->catchCreatureY += 6;
gCurrentPinballGame->walkMonYPos += 6;
if (gCurrentPinballGame->holeLetterSystemState == 4)
gCurrentPinballGame->catchCreatureY = gCurrentPinballGame->catchCreatureY + 20;
gCurrentPinballGame->walkMonYPos = gCurrentPinballGame->walkMonYPos + 20;
}
break;
case 4:

View File

@ -18,7 +18,7 @@ extern const u8 *gShopItemTilePointers[][3];
extern const s16 gRubySlingshotAnimIndices[];
extern const u8 *gRubySlingshotTilePointers[][3][5];
extern struct SongHeader se_unk_87;
extern struct SongHeader se_ball_upgrade;
void UpdateRubyBoardAnimations(void)
@ -65,8 +65,8 @@ void UpdateRubyBoardAnimations(void)
if (gCurrentPinballGame->hudSpriteBaseY > 202)
DrawRubyModeTimerDisplay();
if (gCurrentPinballGame->modeTimeRemaining && gCurrentPinballGame->ballCatchState == 0)
gCurrentPinballGame->modeTimeRemaining--;
if (gCurrentPinballGame->saverTimeRemaining && gCurrentPinballGame->ballCatchState == 0)
gCurrentPinballGame->saverTimeRemaining--;
}
void AnimateRubySlingshotTimer(void)
@ -195,26 +195,26 @@ void DrawRubyModeTimerDisplay(void)
const u8 **src;
const u8 **dest;
if (gCurrentPinballGame->modeTimeRemaining > 300)
if (gCurrentPinballGame->saverTimeRemaining > 300)
{
gCurrentPinballGame->modeTimerDisplayIndex = 1;
gCurrentPinballGame->saverLit = 1;
}
else
{
if (gCurrentPinballGame->modeTimeRemaining)
if (gCurrentPinballGame->saverTimeRemaining)
{
if (gCurrentPinballGame->ballCatchState)
gCurrentPinballGame->modeTimerDisplayIndex = 1;
gCurrentPinballGame->saverLit = 1;
else
gCurrentPinballGame->modeTimerDisplayIndex = (gMain.fieldFrameCount % 16) / 8;
gCurrentPinballGame->saverLit = (gMain.fieldFrameCount % 16) / 8;
}
else
{
gCurrentPinballGame->modeTimerDisplayIndex = 0;
gCurrentPinballGame->saverLit = 0;
}
}
src = gRubyModeTimerTilePointers[gCurrentPinballGame->modeTimerDisplayIndex];
src = gRubyModeTimerTilePointers[gCurrentPinballGame->saverLit];
dest = gRubyModeTimerTilePointers[2];
DmaCopy16(3, src[0], dest[0], 0xC0);
DmaCopy16(3, src[1], dest[1], 0xC0);
@ -373,7 +373,7 @@ void AnimateRubyBallPowerUpSequence(void)
}
if (gCurrentPinballGame->ballShadowTimer == 40)
MPlayStart(&gMPlayInfo_SE1, &se_unk_87);
MPlayStart(&gMPlayInfo_SE1, &se_ball_upgrade);
if (gCurrentPinballGame->ballShadowTimer == 60)
gMain.fieldSpriteGroups[43]->available = 1;

View File

@ -308,8 +308,8 @@ void UpdateSapphireBoardAnimations(void)
if (gCurrentPinballGame->hudSpriteBaseY >= 8 && gCurrentPinballGame->hudSpriteBaseY < 182)
AnimateBumperHitCounter();
if (gCurrentPinballGame->modeTimeRemaining && gCurrentPinballGame->ballCatchState == 0)
gCurrentPinballGame->modeTimeRemaining--;
if (gCurrentPinballGame->saverTimeRemaining && gCurrentPinballGame->ballCatchState == 0)
gCurrentPinballGame->saverTimeRemaining--;
}
void DrawSapphireProgressDigits(void)
@ -456,23 +456,23 @@ void DrawSapphireModeTimerDisplay(void)
const u8 **src;
const u8 **dest;
if (gCurrentPinballGame->modeTimeRemaining > 300)
if (gCurrentPinballGame->saverTimeRemaining > 300)
{
gCurrentPinballGame->modeTimerDisplayIndex = 1;
gCurrentPinballGame->saverLit = 1;
}
else if (gCurrentPinballGame->modeTimeRemaining)
else if (gCurrentPinballGame->saverTimeRemaining)
{
if (gCurrentPinballGame->ballCatchState)
gCurrentPinballGame->modeTimerDisplayIndex = 1;
gCurrentPinballGame->saverLit = 1;
else
gCurrentPinballGame->modeTimerDisplayIndex = (gMain.fieldFrameCount & 0xF) / 8;
gCurrentPinballGame->saverLit = (gMain.fieldFrameCount & 0xF) / 8;
}
else
{
gCurrentPinballGame->modeTimerDisplayIndex = 0;
gCurrentPinballGame->saverLit = 0;
}
src = gSapphireModeTimerDisplayTilePtrs[gCurrentPinballGame->modeTimerDisplayIndex];
src = gSapphireModeTimerDisplayTilePtrs[gCurrentPinballGame->saverLit];
dest = gSapphireModeTimerDisplayTilePtrs[2];
DmaCopy16(3, src[0], dest[0], 0xE0);
DmaCopy16(3, src[1], dest[1], 0xE0);