PokéBase - Pokémon Q&A
3 votes
2,623 views

What causes this problem?

by
ive look in bulbapedia and its there, but doesnt explain about why its crashes
I've done some research into this glitch and I'm actually starting to doubt that Bulbapedia's correct on this one. There's no documented evidence of Ruby and Sapphire crashing after using Thunderbolt—at best they seem to suffer from the same looped audio problem that Emerald does. This in turn seems to be frame related, according to the Glitch City Discord server, which has managed to consistently replicate the glitch in Emerald with a prepared savestate.

Heck, I'm not even sure Thunder can cause this problem at all: every documented instance of looped audio has come from Thunderbolt. I'm a little surprised this glitch is as underexplored as it is for being so well-known.

Here's some of the Discord logs I mentioned. As a side note, I truly loathe how Discord has largely replaced classic forums... this information is not very accessible and makes finding information on specific mechanics unnecessarily difficult. Thank god for Pokemon DB dot net.

Blue, 8/11/24, 3:00 PM
Hey I'm looking into the thunderbolt sound freeze glitch and trying to find out more about it. Looking through discussions here, it does not look like any cause for it has been confirmed. But I do have a few questions:

    Has this ever been confirmed happening with thunder? While the page says it can happen with thunder, every account of it happening has been about thunderbolt.
    Is this exclusive to emerald? Again, I see this only happening in Emerald. The animation routines look the same between emerald and RS, but it may be unrelated to animation routines.
    Has this ever caused a crash? All previous recordings of the glitch have the sound repeatedly loop, but I have seen written accounts of crashes without hard evidence.

Paiwand, 8/11/24, 5:11 PM
In extension to @Blue's question:

Seems to occur in this function in sound.c

void PlaySE12WithPanning(u16 songNum, s8 pan)
{
    m4aSongNumStart(songNum);
    m4aMPlayImmInit(&gMPlayInfo_SE1);
    m4aMPlayImmInit(&gMPlayInfo_SE2);
    m4aMPlayPanpotControl(&gMPlayInfo_SE1, TRACKS_ALL, pan);
    m4aMPlayPanpotControl(&gMPlayInfo_SE2, TRACKS_ALL, pan);
}

That calls those other functions with multiple while loops and sound flags in m4a.c.

Also seems to be frame related meaning a flag or counter is not allowing it to exit a function and keeping the thunderbolt sound going.

Please log in or register to answer this question.