A BepInEx 6 (IL2CPP) plugin for Patapon 1+2 Replay that restores a near-original audio experience. It is an extended continuation of JurasPatryk's original Music Fixes mod, keeping the original theme‑loop fix and adding a faithful recreation of the rhythm "helper" behavior from the PSP originals in both Patapon 1 and Patapon 2.
On the Replay release, the Mood_High (Fever) play counter could overrun and break the intended theme loop. The plugin virtualizes the play count back into the original 16‑step window so the Fever theme loops the way it did on PSP.
On PSP, the rhythm helper (the light backing instrumental that keeps you on the beat) ducks away during the chant / response phase and returns while you are drumming a command. The Replay release plays it flat. This plugin restores that behavior:
The fade even leads slightly into the chant (starting a configurable ~250 ms early) and is tempo-adaptive, so the timing stays consistent as Fever speeds the song up.
The two games are built very differently under the hood, so each needed its own approach.
RhythmBgmPlayer) whose inner
sequencer voice (rhythm_) owns the real volume. The outer player's volume calls are
no‑ops because it carries no live CriWare resource (rid = -1), which is why the original
mod could only hard‑mute it.setVolumeDirect
directly.Rhythm.isPlay_: it flips true when a command is issued (chant
begins → silence the helper) and false when the input window reopens (restore it).Patapon 2's audio engine is structured completely differently, which made this the hard part:
Rhythm.update never fires, Rhythm.getState() is constant, and the per‑frame
Director methods are unsafe to call from injected hooks — so none of the P1 techniques
port over.P2.Sound namespace (the parallel P2S.* classes are
compiled in but dead at runtime).The working solution:
P2.Sound.BeatCommander.update — the real per‑frame battle tick.BeatCommander.getState(): State_Nage (投げ, command /
input) vs State_Kaesi (返し, response / chant).Kaesi, fade the BGM mixing category volume down to a configurable floor and
back up afterward. Because the game re‑applies that category's volume every frame, the
fade value is recomputed and re‑applied each frame so it can't be reverted.Settings live in BepInEx/config/juras.patapon.audiofix.cfg.
[AudioFix]| Key | Default | Description |
|---|---|---|
AudioFix_ThemeLoopFix |
1 |
Enable the Fever theme play‑count loop fix. 0 to disable. |
AudioFix_HelperMute |
1 |
Enable the helper fade behavior. 0 to disable. |
[AudioFix_P2] (Patapon 2 helper‑fade tuning)| Key | Default | Description |
|---|---|---|
AudioFix_P2HelperCategory |
3 |
CriWare mixing category that carries the helper (3 = BGM). Only change if a game update moves it. |
AudioFix_P2FadeMs |
400 |
Fade duration in milliseconds. Higher = more gradual. |
AudioFix_P2FadeLeadMs |
250 |
How many milliseconds before the chant the fade begins. 0 = start exactly at the chant. Tempo‑adaptive. |
AudioFix_P2FullVolumePercent |
70 |
The helper's full (un‑ducked) volume as a percent. Lower it if the helper briefly jumps louder at the chant start; raise it if it's too quiet while drumming. |
Install through r2modman / Thunderstore Mod Manager, or drop PataponAudioFixes.dll into
BepInEx/plugins/.
Note: this mod replaces the original Music Fixes (it uses the same plugin id, so the two should not be installed together).
Please keep the original author's credit intact in any redistribution.
All notable changes to Music Fixes Extended.
Extended release — adds a faithful recreation of the PSP rhythm helper behavior on top of the original theme‑loop fix.
BeatCommander Nage/Kaesi phase and applied by ducking the
BGM mixing category, re-applied each frame so the game's own volume resets can't revert it.[AudioFix_P2]): AudioFix_P2HelperCategory, AudioFix_P2FadeMs,
AudioFix_P2FadeLeadMs, AudioFix_P2FullVolumePercent.