- Java 83.4%
- Shell 16.6%
Forge's post-mod-load resource refresh restarts the sound system while the vanilla startup load is still in flight; the second SoundSystem races the first for LWJGL's single OpenAL context and Paulscode's static init flag, ending in a 40 s timeout, AL.destroy() and silent mode. Coremod skips the redundant restart while a loader is in progress (still posting SoundLoadEvent). Includes the diagnostic probe agent and findings. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| probe | ||
| soundreloadfix | ||
| .gitignore | ||
| FINDINGS.md | ||
| README.md | ||
| ROLLBACK.md | ||
| run_test.sh | ||
| TESTING.md | ||
ForgeSoundFix (soundreloadfix)
A small Forge coremod for Minecraft 1.7.10 / Forge 10.13.4.1614. It fixes the problem where there is no audio at all, the log shows
Only one OpenAL context may be instantiated at any one time, and about 40 s later the
sound system falls back to SoundSystem did not load after 30 seconds → Silent Mode.
It shows up on fast machines with few mods. Forge's post-mod-load resource refresh restarts the
sound system while the vanilla startup load is still running, so two SoundSystems race for the single
LWJGL OpenAL context. The loser's failure ends with the winner's context being destroyed. The fix skips that
redundant restart while a load is still in flight; Forge's SoundLoadEvent is still posted. Full analysis: FINDINGS.md.
Install
Build soundreloadfix-1.0.0.jar and drop it into .minecraft/mods/. A successful start logs
[SoundReloadFix]: Patched SoundManager and Sound system restart skipped.
JVM flags: -Dsoundreloadfix.enabled=false disables the patch; -Dsoundreloadfix.debug=true logs call stacks.
If the SoundManager bytecode doesn't match the expected Forge 1614 shape, the mod logs a warning and patches nothing.
Build
soundreloadfix/build.sh
Requires a JDK ≥ 9 (compiles with --release 8) and the MultiMC library cache (Forge universal 1614,
launchwrapper 1.12, ASM 5.0.3, log4j-api beta9). Override the cache path with MMC_LIBS=....
Layout
soundreloadfix/: the coremod (plugin, ASM transformer, runtime hooks).probe/: diagnostic-only javaagent that logs SoundManager/Paulscode/AL.create/AL.destroywith ms timestamps and stacks.run_test.sh: launch-and-capture harness used during the investigation.FINDINGS.md,TESTING.md,ROLLBACK.md.