From 0102fcbda87399cae5721c86940808aa8fdc5a2f Mon Sep 17 00:00:00 2001 From: Postbox2 <53163105+host12prog@users.noreply.github.com> Date: Wed, 29 Jun 2022 18:42:33 +0700 Subject: [PATCH] Create soundunit.md --- papers/doc/7-systems/soundunit.md | 43 +++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 papers/doc/7-systems/soundunit.md diff --git a/papers/doc/7-systems/soundunit.md b/papers/doc/7-systems/soundunit.md new file mode 100644 index 000000000..ef1b1eda1 --- /dev/null +++ b/papers/doc/7-systems/soundunit.md @@ -0,0 +1,43 @@ +# TildeArrow Sound Unit +This is a fantasy sound chip, used in the specs2 fantasy console designed by tildearrow. It includes native support for sample playback, but with only 20K of sample data. Since 0.6pre1, this sound chip is no longer hidden by default and can be accessed through the module creation screen and can be added or removed. +# Effects +`10xx`: set waveform + - 0: pulse wave + - 1: sawtooth + - 2: sine wave + - 3: triangle wave + - 4: noise + - 5: periodic noise + - 6: TODO find name for waves 6, 7 + - 7: TODO find name for waves 6, 7 +`12xx`: set waveform (0 to 7F) +`13xx`: set resonance of filter (0 to FF) + - despite what the internal effects list says (0 to F), you can use a resonance value from 0 to FF (255) +`14xx`: set filter mode and ringmod + - bit 0: ring mod + - bit 1: low pass + - bit 2: high pass + - bit 3: band pass +`15xx`: set frequency sweep period low byte +`16xx`: set frequency sweep period high byte +`17xx`: set volume sweep period low byte +`18xx`: set volume sweep period high byte +`19xx`: set cutoff sweep period low byte +`1Axx`: set cutoff sweep period low byte +`1Bxx`: set frequency sweep boundary +`1Cxx`: set volume sweep boundary +`1Dxx`: set cutoff sweep boundary +`1Exx`: set phase reset period low byte +`1Fxx`: set phase reset period high byte +`20xx`: toggle frequency sweep + - bit 0-6: speed + - bit 7: up direction +`21xx`: toggle volume sweep + - bit 0-4: speed + - bit 5: up direction + - bit 6: loop + - bit 7: alternate +`22xx`: toggle cutoff sweep + - bit 0-6: speed + - bit 7: up direction +`4xxx`: set cutoff (0 to FFF)