2010-08-09 13:28:56 +00:00
|
|
|
#ifdef DSP_CPP
|
|
|
|
|
|
|
|
void DSP::misc_27() {
|
2013-05-05 09:21:30 +00:00
|
|
|
state.t_pmon = REG(pmon) & ~1; //voice 0 doesn't support PMON
|
2010-08-09 13:28:56 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void DSP::misc_28() {
|
|
|
|
state.t_non = REG(non);
|
|
|
|
state.t_eon = REG(eon);
|
|
|
|
state.t_dir = REG(dir);
|
|
|
|
}
|
|
|
|
|
|
|
|
void DSP::misc_29() {
|
|
|
|
state.every_other_sample ^= 1;
|
|
|
|
if(state.every_other_sample) {
|
2013-05-05 09:21:30 +00:00
|
|
|
state.new_kon &= ~state.kon; //clears KON 63 clocks after it was last read
|
2010-08-09 13:28:56 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void DSP::misc_30() {
|
|
|
|
if(state.every_other_sample) {
|
|
|
|
state.kon = state.new_kon;
|
|
|
|
state.t_koff = REG(koff);
|
|
|
|
}
|
|
|
|
|
|
|
|
counter_tick();
|
|
|
|
|
|
|
|
//noise
|
|
|
|
if(counter_poll(REG(flg) & 0x1f) == true) {
|
|
|
|
int feedback = (state.noise << 13) ^ (state.noise << 14);
|
|
|
|
state.noise = (feedback & 0x4000) ^ (state.noise >> 1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|