With the potential of a new ZSNES (which will likely emulate the audio of ROMs more accurately than previous builds) soon, smkdan spotted a rather major flaw which is apparent in 99% of ports which use echo commands. Several Japanese TXTs contain this error as well.
The command for echo is $F1 $XX $YY $ZZ. Most people will often set the $XX here higher than $04, in which I was recently informed crashes the game on accurate emulators. Here is smkdan's breakdown of why:
This seems to be a rather major bug with many, many ports on SMWC and elsewhere.
Therefore, from here on out, all songs which contain a value greater than $04 in $XX will be rejected. This will last until I can get ahold of Romi (or if anyone is on the IRC very early in the morning EST, I would appreciate it if you could contact him). Also, if you have recently ported a track which contains a value greater than $04, please fix it.
Thanks for your understanding.
The command for echo is $F1 $XX $YY $ZZ. Most people will often set the $XX here higher than $04, in which I was recently informed crashes the game on accurate emulators. Here is smkdan's breakdown of why:
Originally posted by smkdan
The APU setup has 64KB of RAM (ARAM) that is shared between music data, sample data, SPC code and the echo buffer. The echo buffer is used whenever echo is enabled in a piece of music, it's constantly written to as audio is generated. SMW originally allocated only 8KB for this, directly after the echo buffer comes the sample data. 8KB only allows for a echo length/echo delay setting of 4 at most, you can use lower settings with no problem, but 5 or higher means the sample data gets corrupted because the echo buffer is now greater than 8KB i.e. it's 'overflowing' from the original 8KB area into the sample data and sample data is lost. The result is no audio at all beyond a few pops and clicks.
Snes9x and ZSNES don't emulate the audio side of things properly which is why you don't hear the consequences on these. bsnes DOES emulate it properly and if the audio in a hack dies in bsnes, then it's probably becuase the custom music set the echo delay too long. ZSNES 2.0 WILL emulate it properly and all hacks that don't follow this rule will be running deaf.
Snes9x and ZSNES don't emulate the audio side of things properly which is why you don't hear the consequences on these. bsnes DOES emulate it properly and if the audio in a hack dies in bsnes, then it's probably becuase the custom music set the echo delay too long. ZSNES 2.0 WILL emulate it properly and all hacks that don't follow this rule will be running deaf.
This seems to be a rather major bug with many, many ports on SMWC and elsewhere.
Therefore, from here on out, all songs which contain a value greater than $04 in $XX will be rejected. This will last until I can get ahold of Romi (or if anyone is on the IRC very early in the morning EST, I would appreciate it if you could contact him). Also, if you have recently ported a track which contains a value greater than $04, please fix it.
Thanks for your understanding.