so, there's a part of a tune i'm that just absolutely CHUGS when i play it on my DMG (as opposed to my GBA). yes, i'm aware of the DMG's slower CPU and that you shouldn't do things that are too crazy on. but from what i've googled, there doesn't seem to be all that much documentation on the specifics of what not to do.
i'm wondering if anyone has run into anything similar to what i've been dealing with, and i'd appreciate any insights on what you guys have about lightening the CPU load.
Here are the symptoms:
- when the pattern starts playing, the song doesn't noticeably slow down yet, but any button presses are delayed by about half a second.
- halfway through the chain, the song playback slows down to like 2/3 of its original speed. at this point, the buttons stop receiving input altogether; it seems as if the button presses get buffered
- after the pattern starts playing, the CPU and the input start doing things REALLY fast, almost as if to catch up from before. any key presses that were buffered when the CPU was chugging now take effect, all at once.
- also, after the slow part, the cursor becomes hypersensitive for the next pattern - any press of the directional arrows seems to move the cursor by 3 or 4 spaces, instead of just one
- eventually the DMG returns to normal playback speed and the buttons receive their input normally once again.
- i tried isolating that set of chains temporarily to loop that slow section of the song continuously, but as expected, the slowdown compounds upon itself and sure enough, i get a "TOO BUSY!" error in LSDJ that prevents me from stopping playback, leaving me no choice but to turn the game boy off.
here's a table i'm using that might be the culprit, it's basically a pulse wave arpeggio with some hop (H) commands interleaved to space out the modulating of pitch (TSP) and the pulse width (Wxx commands):
VOL TSP CMD CMD
00 00 00 W00
00 00 H20 HD0
00 02 00 W01
00 02 H22 HD2
00 04 00 W02
00 04 H24 HD4
00 07 00 W03
00 07 H26 HD6
00 0C 00 W03
00 0C H28 HD8
00 00 H00 W02
00 00 00 HDA
00 00 00 W01
00 00 00 HDC
00 00 00 W01
00 00 00 HDE
the thing is, i don't think i'm doing anything overly taxing in that table compared to the other parts of my song. you'd think the overabundance of H commands might be excessive, but i've actually done this in other songs (with more stuff going on in the other channels at that), and they seem to work fine in my DMG.
I have a complex swing groove too, which i thought meant more tricky stuff being thrown at the CPU, but getting rid of the groove didn't reduce the slowdown.
Could the slowdown possibly have anything to do with a corrupt LSDSNG?
anyway, i know -- lots of disjointed theories that i barfed onto this thread, but it'd help to have any thoughts from those who have had more experience dealing with slowdown.