fix .mod import and update doc

This commit is contained in:
tildearrow 2024-04-23 14:43:38 -05:00
parent 7a217ccdb1
commit 284f0ced68
2 changed files with 18 additions and 3 deletions

View file

@ -93,10 +93,25 @@ not all chips support these effects.
- `FCxx`: **Note release.** releases current note after `xx` ticks. this releases macros and triggers key off in FM/hardware envelope chips. - `FCxx`: **Note release.** releases current note after `xx` ticks. this releases macros and triggers key off in FM/hardware envelope chips.
- `E7xx`: **Macro release.** releases macros after `xx` ticks. this does not trigger key off. - `E7xx`: **Macro release.** releases macros after `xx` ticks. this does not trigger key off.
## sample offset
these effects make the current playing sample on the channel jump to a specific position.
only some chips support this effect.
sample offset is a 24-bit (3 byte) number.
- `90xx`: **Set sample offset (first byte).**
- `91xx`: **Set sample offset (second byte).**
- `92xx`: **Set sample offset (third byte).**
you may use these effects simultaneously in a row.
if you do not set a byte, its last value will be used.
in previous versions of Furnace a `9xxx` effect existed which set the sample position to `$xxx00` (`xxx` was effectively multiplied by 256). this maps to `920x 91xx` in current Furnace.
## other ## other
- `9xxx`: **Set sample position.** jumps current sample to position `xxx * 0x100`.
- not all chips support this effect.
- `EBxx`: **Set LEGACY sample mode bank.** selects sample bank. used only for compatibility. - `EBxx`: **Set LEGACY sample mode bank.** selects sample bank. used only for compatibility.
- does not apply on Amiga. - does not apply on Amiga.
- `EExx`: **Send external command.** - `EExx`: **Send external command.**

View file

@ -322,7 +322,7 @@ bool DivEngine::loadMod(unsigned char* file, size_t len) {
setEffectState[3]=fxVal; setEffectState[3]=fxVal;
break; break;
case 9: // set offset case 9: // set offset
writeFxCol(0x90,fxVal); writeFxCol(0x91,fxVal);
break; break;
case 10: // vol slide case 10: // vol slide
effectState[4]=fxVal; effectState[4]=fxVal;