constint32_tm_whitenoise_tap1;// mask for white noise tap 1 (higher one, usually bit 14)
constint32_tm_whitenoise_tap2;// mask for white noise tap 2 (lower one, usually bit 13)
boolm_negate;// output negate flag
constint32_tm_clock_divider;// clock divider
constboolm_ncr_style_psg;// flag to ignore writes to regs 1,3,5,6,7 with bit 7 low
constboolm_sega_style_psg;// flag to make frequency zero acts as if it is one more than max (0x3ff+1) or if it acts like 0; the initial register is pointing to 0x3 instead of 0x0; the volume reg is preloaded with 0xF instead of 0x0
int32_tm_clock;
int32_tm_vol_table[16];// volume table (for 4-bit to db conversion)
int32_tm_register[8];// registers
int32_tm_last_register;// last register written
int32_tm_volume[4];// db volume of voice 0-2 and noise
uint32_tm_RNG;// noise generator LFSR
int32_tm_current_clock;
int32_tm_period[4];// Length of 1/2 of waveform
int32_tm_count[4];// Position within the waveform
int32_tm_output[4];// 1-bit output of each channel, pre-volume