22 #include "audio/sid.h" 23 #include "common/debug.h" 32 const uint8_t *trackDataPtr;
34 const uint8_t *patternDataPtr;
36 uint8_t instrumentIndex;
45 uint8_t portaTargetNote;
56 uint8_t sustainRelease;
60 uint8_t arpeggioIndex;
61 uint8_t arpeggioSpeed;
62 uint8_t arpeggioCounter;
63 uint8_t arpeggioNoteOffsetIndex;
68 uint8_t vibratoDirection;
69 int16_t vibratoCurrentOffset;
74 uint8_t hardRestartValue;
75 uint8_t hardRestartDelay;
76 uint8_t hardRestartCounter;
77 bool hardRestartActive;
88 uint8_t whatever2_vibDirToggle;
91 uint16_t portaStepRaw;
95 uint8_t something_else[3];
101 uint8_t arpTableIndex;
102 uint8_t arpSpeedHiNibble;
107 uint16_t stuff_freq_porta_vib;
108 uint16_t stuff_freq_base;
109 uint16_t stuff_freq_hard_restart;
110 uint8_t stuff_arp_counter;
111 uint8_t stuff_arp_note_index;
114 uint8_t things_vib_state;
115 uint16_t things_vib_depth;
116 uint8_t things_vib_delay_reload;
117 uint8_t things_vib_delay_ctr;
119 uint8_t currentNoteSlideTarget;
122 uint8_t glideDownTimer;
131 uint8_t pwLo()
const {
return something_else[0]; }
132 uint8_t pwHi()
const {
return something_else[2]; }
133 void setPwLo(uint8_t val) { something_else[0] = val; }
134 void setPwHi(uint8_t val) { something_else[2] = val; }
137 trackDataPtr =
nullptr;
139 patternDataPtr =
nullptr;
157 arpeggioNoteOffsetIndex = 0;
161 vibratoDirection = 0;
162 vibratoCurrentOffset = 0;
164 hardRestartValue = 0;
165 hardRestartDelay = 0;
166 hardRestartCounter = 0;
167 hardRestartActive =
false;
179 whatever2_vibDirToggle = 0;
181 memset(something_else, 0,
sizeof(something_else));
184 arpSpeedHiNibble = 0;
185 stuff_freq_porta_vib = 0;
187 stuff_freq_hard_restart = 0;
188 stuff_arp_counter = 0;
189 stuff_arp_note_index = 0;
190 things_vib_state = 0;
191 things_vib_depth = 0;
192 things_vib_delay_reload = 0;
193 things_vib_delay_ctr = 0;
194 currentNoteSlideTarget = 0;
203 enum PlayState { STOPPED,
206 enum ContinuousEffectEntry {
211 PlayState _playState;
212 uint8_t _targetTuneIndex;
215 uint8_t _globalTempo;
216 int8_t _globalTempoCounter;
219 VoiceState _voiceState[3];
226 void startMusic(
int tuneIndex = 1);
232 void SID_Write(
int reg, uint8_t data);
234 void handleChangeTune(
int tuneIndex);
235 void handleResetVoices();
236 void playVoice(
int voiceIndex);
237 void applyNote(VoiceState &v,
int sidOffset,
const uint8_t *instA0);
238 ContinuousEffectEntry postNoteEffectSetup(VoiceState &v,
const uint8_t *instA0,
const uint8_t *instA1);
239 void applyContinuousEffects(VoiceState &v,
int sidOffset,
const uint8_t *instA0,
const uint8_t *instA1,
bool startAtPortamento);
240 void applyHardRestart(VoiceState &v,
int sidOffset,
const uint8_t *instA1);
Definition: c64.music.h:27