The previous code always read the state of bank 0. The correct behaviour
is to read from the bank that isn't selected. Most likely, no game has
ever tried to read from this RAM and verify the values because the
values are destroyed as soon as the channel starts to play the desired
sound.
Writes were done correctly: The values are saved to the bank that isn't
selected.
Also, when the sound hardware is off, it acts like bank 0 has been
selected in register SOUND3CNT_L.