(Multi-channel EEP Engine Program) (the "EEP" representing the sound of a beep)
My second 1-bit sound engine. Assemble using fasmg. I use fasmg because its macro capabilities are practically required for a project with tons of SMC and dynamically relocated code like this.
See format.asm
for song data format instructions. See songs
for song examples. See my youtube channel for the examples, played back and recorded with oscilloscope visualizations.
Note: this is still in development. There is not yet any interface for playing or selecting songs, and there will be bugs.
I recommend checking out songs/zelda_4swords
. At some point it'll be able to read from an appvar, but for now I need to assemble to .bin and then include said .bin in the resulting .8xp (see test/test_zelda.z80
).
what works:
test/test_bitbang.z80
to testbitbang.z80
(might be broken by now, idk)test/test_canon.z80
to includesongs/canon/canon.z80
and play it as described in the youtube videotest/test_drum.z80
to test a few drum soundstest/test_vib.z80
to test vibrato (I used this to debug vibrato stuff at one point)test/test_zelda.z80
to embedsongs/zelda_4swords/zelda_4swords.bin
in the program and play it, as featured in this youtube videosongs/zelda_4swords/zelda_4swords.asm
(make sure to specifysongs/zelda_4swords/zelda_4swords.bin
as the output file) to generate the file needed bytest/test_zelda.z80
what doesn't work anymore:
test/test_driver.z80
at some point I used this to testdriver.z80
but I don't think it works anymore
also, note: all of the test_*.z80
files are named prgmA
on-calc
You may want to change cpuspeed.z80
to tune the notes to your own calc. Check the file for instructions. (at some point this is supposed to measure the CPU speed and tune itself automatically, but that's not implemented yet)