I'm not sure if this is documented, but I accidentally discovered some neat features of the audio engine while playing Jelpi in corrupted mode.
I noticed that sometimes the music would be affected in a way that couldn't be possible with just the editor. By experimenting a little further I discovered a small section in memory dedicated to effects:
0x5f40: play channel twice slower
0x5f41: a very short delay (cheap reverb/unison simulation)
0x5f42: distortion (rounds the output waveform to min or max depending on which is nearest)
0x5f43: low-pass filter
For each of these values, bits 0 to 3 correspond to channels 1 to 4 respectively (for example, poke(0x5f42,6) will apply distortion to channels 2 and 4). Bits 4 to 7 seem to be unused.
With that in mind, I decided to code a little program that would apply random effects to random tracks until the song becomes completely destroyed. Here's the result (the song is pretty cheesy I have to admit).
Enjoy :)


This is extremely cool and useful, nice find! I can already think of many fun ways to make use of this, like applying a low-pass filter on the music while in some sort of inventory screen or reverb in caves.
I'm loving all these undocumented features being discovered, every new find is more exciting than the last.


Kickass spritework, qbicfeet. Tell me you're doing a Spelunky demake. Or at least a La Mulana one. :D
[Please log in to post a comment]