Yeah, bytecodes are definitely key. With NES games, one thing I've noticed a LOT of games have in common is their use of "positive" values [#00-7F] as coded frequencies (tones, pitches, etc.) and the first line or two of "negative" values [#80-FF] as rhythmic duration markers.
For example, SMB1
and Zelda 1
both utilize the bytes #80-87 as rhythm markers. When the game engine encounters any of these bytes, it uses the low-nybble (right digit) as an offset into a lookup table to find out how many frames each of the next series of frequencies is supposed to last. (60 frames in 1 second.) It isn't out of the ordinary to see music data that looks like:
Note how the bytes starting with $8 all precede a byte or bytes characterized by smaller numbers. Being from the Midwest, it kinda reminds me of a cornfield after the first winter frost. Some dessicated stalks are still standing upright, but they're surrounded mostly by collapsed compatriots. Whenever I see a field of bytes in the 2x-3x-4x range, interspersed with 8x (and sometimes 9x) bytes, I have a sneaking suspicion that what I'm seeing just might be music data.
(Anyone who recognized the coded musical reference gets a