From 01a592100f8afb6f57dd52e70da61b0f9a9ac308 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sun, 25 Sep 2022 04:02:06 -0500 Subject: [PATCH] SNES: define effects (they don't work yet) --- src/engine/dispatch.h | 12 ++++++++++++ src/engine/playback.cpp | 24 ++++++++++++++++++------ src/engine/sysDef.cpp | 30 +++++++++++++++++++++++++++++- 3 files changed, 59 insertions(+), 7 deletions(-) diff --git a/src/engine/dispatch.h b/src/engine/dispatch.h index 70dec249..c7b75791 100644 --- a/src/engine/dispatch.h +++ b/src/engine/dispatch.h @@ -192,6 +192,18 @@ enum DivDispatchCmds { DIV_CMD_ADPCMA_GLOBAL_VOLUME, + DIV_CMD_SNES_ECHO, + DIV_CMD_SNES_PITCH_MOD, + DIV_CMD_SNES_INVERT, + DIV_CMD_SNES_GAIN_MODE, + DIV_CMD_SNES_GAIN, + DIV_CMD_SNES_ECHO_ENABLE, + DIV_CMD_SNES_ECHO_DELAY, + DIV_CMD_SNES_ECHO_VOL_LEFT, + DIV_CMD_SNES_ECHO_VOL_RIGHT, + DIV_CMD_SNES_ECHO_FEEDBACK, + DIV_CMD_SNES_ECHO_FIR, + DIV_ALWAYS_SET_VOLUME, // () -> alwaysSetVol DIV_CMD_MAX diff --git a/src/engine/playback.cpp b/src/engine/playback.cpp index 20892057..ca62009a 100644 --- a/src/engine/playback.cpp +++ b/src/engine/playback.cpp @@ -185,15 +185,27 @@ const char* cmdName[]={ "N163_GLOBAL_WAVE_LOADLEN", "N163_GLOBAL_WAVE_LOADMODE", - "DIV_CMD_SU_SWEEP_PERIOD_LOW", - "DIV_CMD_SU_SWEEP_PERIOD_HIGH", - "DIV_CMD_SU_SWEEP_BOUND", - "DIV_CMD_SU_SWEEP_ENABLE", - "DIV_CMD_SU_SYNC_PERIOD_LOW", - "DIV_CMD_SU_SYNC_PERIOD_HIGH", + "SU_SWEEP_PERIOD_LOW", + "SU_SWEEP_PERIOD_HIGH", + "SU_SWEEP_BOUND", + "SU_SWEEP_ENABLE", + "SU_SYNC_PERIOD_LOW", + "SU_SYNC_PERIOD_HIGH", "ADPCMA_GLOBAL_VOLUME", + "SNES_ECHO", + "SNES_PITCH_MOD", + "SNES_INVERT", + "SNES_GAIN_MODE", + "SNES_GAIN", + "SNES_ECHO_ENABLE", + "SNES_ECHO_DELAY", + "SNES_ECHO_VOL_LEFT", + "SNES_ECHO_VOL_RIGHT", + "SNES_ECHO_FEEDBACK", + "SNES_ECHO_FIR", + "ALWAYS_SET_VOLUME" }; diff --git a/src/engine/sysDef.cpp b/src/engine/sysDef.cpp index 624b6a72..1196cf00 100644 --- a/src/engine/sysDef.cpp +++ b/src/engine/sysDef.cpp @@ -863,7 +863,35 @@ void DivEngine::registerSystems() { {"Channel 1", "Channel 2", "Channel 3", "Channel 4", "Channel 5", "Channel 6", "Channel 7", "Channel 8"}, {"CH1", "CH2", "CH3", "CH4", "CH5", "CH6", "CH7", "CH8"}, {DIV_CH_PCM, DIV_CH_PCM, DIV_CH_PCM, DIV_CH_PCM, DIV_CH_PCM, DIV_CH_PCM, DIV_CH_PCM, DIV_CH_PCM}, - {DIV_INS_SNES, DIV_INS_SNES, DIV_INS_SNES, DIV_INS_SNES, DIV_INS_SNES, DIV_INS_SNES, DIV_INS_SNES, DIV_INS_SNES} + {DIV_INS_SNES, DIV_INS_SNES, DIV_INS_SNES, DIV_INS_SNES, DIV_INS_SNES, DIV_INS_SNES, DIV_INS_SNES, DIV_INS_SNES}, + {}, + { + {0x10, {DIV_CMD_WAVE, "10xx: Set waveform"}}, + {0x11, {DIV_CMD_STD_NOISE_MODE, "11xx: Toggle noise mode"}}, + {0x12, {DIV_CMD_SNES_ECHO, "12xx: Toggle echo on this channel"}}, + {0x13, {DIV_CMD_SNES_PITCH_MOD, "13xx: Toggle pitch modulation"}}, + {0x14, {DIV_CMD_SNES_INVERT, "14xy: Toggle invert (x: left; y: right)"}}, + {0x15, {DIV_CMD_SNES_GAIN_MODE, "15xx: Set gain mode"}}, + {0x16, {DIV_CMD_SNES_GAIN, "16xx: Set gain"}}, + {0x18, {DIV_CMD_SNES_ECHO_ENABLE, "18xx: Enable echo buffer"}}, + {0x19, {DIV_CMD_SNES_ECHO_DELAY, "19xx: Set echo delay"}}, + {0x1a, {DIV_CMD_SNES_ECHO_VOL_LEFT, "1Axx: Set left echo volume"}}, + {0x1b, {DIV_CMD_SNES_ECHO_VOL_RIGHT, "1Bxx: Set right echo volume"}}, + {0x1c, {DIV_CMD_SNES_ECHO_FEEDBACK, "1Cxx: Set echo feedback"}}, + {0x1d, {DIV_CMD_STD_NOISE_FREQ, "1Dxx: Set noise frequency"}}, + {0x20, {DIV_CMD_FM_AR, "20xx: Set attack"}}, + {0x21, {DIV_CMD_FM_DR, "21xx: Set decay"}}, + {0x22, {DIV_CMD_FM_SL, "22xx: Set sustain"}}, + {0x23, {DIV_CMD_FM_RR, "23xx: Set release"}}, + {0x30, {DIV_CMD_SNES_ECHO_FIR, "30xx: Set echo filter coefficient 0",constVal<0>,effectVal}}, + {0x31, {DIV_CMD_SNES_ECHO_FIR, "31xx: Set echo filter coefficient 1",constVal<1>,effectVal}}, + {0x32, {DIV_CMD_SNES_ECHO_FIR, "32xx: Set echo filter coefficient 2",constVal<2>,effectVal}}, + {0x33, {DIV_CMD_SNES_ECHO_FIR, "33xx: Set echo filter coefficient 3",constVal<3>,effectVal}}, + {0x34, {DIV_CMD_SNES_ECHO_FIR, "34xx: Set echo filter coefficient 4",constVal<4>,effectVal}}, + {0x35, {DIV_CMD_SNES_ECHO_FIR, "35xx: Set echo filter coefficient 5",constVal<5>,effectVal}}, + {0x36, {DIV_CMD_SNES_ECHO_FIR, "36xx: Set echo filter coefficient 6",constVal<6>,effectVal}}, + {0x37, {DIV_CMD_SNES_ECHO_FIR, "37xx: Set echo filter coefficient 7",constVal<7>,effectVal}}, + } ); sysDefs[DIV_SYSTEM_VRC6]=new DivSysDef(