static WRITE_HANDLER( tp84_filter_w ) { int C; /* 76489 #0 */ C = 0; if (offset & 0x008) C += 47000; /* 47000pF = 0.047uF */ if (offset & 0x010) C += 470000; /* 470000pF = 0.47uF */ set_RC_filter(0,1000,2200,1000,C); /* 76489 #1 (optional) */ C = 0; if (offset & 0x020) C += 47000; /* 47000pF = 0.047uF */ if (offset & 0x040) C += 470000; /* 470000pF = 0.47uF */ // set_RC_filter(1,1000,2200,1000,C); /* 76489 #2 */ C = 0; if (offset & 0x080) C += 470000; /* 470000pF = 0.47uF */ set_RC_filter(1,1000,2200,1000,C); /* 76489 #3 */ C = 0; if (offset & 0x100) C += 470000; /* 470000pF = 0.47uF */ set_RC_filter(2,1000,2200,1000,C); }
int stream_init_multi(int channels,const char **names,const int *default_mixing_levels, int sample_rate, int param,void (*callback)(int param,INT16 **buffer,int length)) { int channel,i; channel = mixer_allocate_channels(channels,default_mixing_levels); stream_joined_channels[channel] = channels; for (i = 0;i < channels;i++) { mixer_set_name(channel+i,names[i]); if ((stream_buffer[channel+i] = osd_malloc(sizeof(INT16)*BUFFER_LEN)) == 0) return -1; stream_sample_rate[channel+i] = sample_rate; stream_buffer_pos[channel+i] = 0; if (sample_rate) stream_sample_length[channel+i] = 1000000 / sample_rate; else stream_sample_length[channel+i] = 0; } stream_param[channel] = param; stream_callback_multi[channel] = callback; set_RC_filter(channel,0,0,0,0); return channel; }
int stream_init(const char *name,int default_mixing_level, int sample_rate, int param,void (*callback)(int param,INT16 *buffer,int length)) { int channel; channel = mixer_allocate_channel(default_mixing_level); stream_joined_channels[channel] = 1; mixer_set_name(channel,name); if ((stream_buffer[channel] = osd_malloc(sizeof(INT16)*BUFFER_LEN)) == 0) return -1; stream_sample_rate[channel] = sample_rate; stream_buffer_pos[channel] = 0; if (sample_rate) stream_sample_length[channel] = 1000000 / sample_rate; else stream_sample_length[channel] = 0; stream_param[channel] = param; stream_callback[channel] = callback; set_RC_filter(channel,0,0,0,0); return channel; }
static void filter_w(int chip, int channel, int data) { int C = 0; if (data & 1) C += 220000; /* 220000pF = 0.220uF */ if (data & 2) C += 47000; /* 47000pF = 0.047uF */ set_RC_filter(3*chip + channel,1000,5100,0,C); }
static WRITE_HANDLER( ddrible_vlm5030_ctrl_w ) { unsigned char *SPEECH_ROM = memory_region(REGION_SOUND1); /* b7 : vlm data bus OE */ /* b6 : VLM5030-RST */ /* b5 : VLM5030-ST */ /* b4 : VLM5300-VCU */ /* b3 : ROM bank select */ VLM5030_RST( data & 0x40 ? 1 : 0 ); VLM5030_ST( data & 0x20 ? 1 : 0 ); VLM5030_VCU( data & 0x10 ? 1 : 0 ); VLM5030_set_rom(&SPEECH_ROM[data & 0x08 ? 0x10000 : 0]); /* b2 : SSG-C rc filter enable */ /* b1 : SSG-B rc filter enable */ /* b0 : SSG-A rc filter enable */ set_RC_filter(2,1000,2200,1000,data & 0x04 ? 150000 : 0); /* YM2203-SSG-C */ set_RC_filter(1,1000,2200,1000,data & 0x02 ? 150000 : 0); /* YM2203-SSG-B */ set_RC_filter(0,1000,2200,1000,data & 0x01 ? 150000 : 0); /* YM2203-SSG-A */ }
static WRITE_HANDLER( junofrst_portB_w ) { int i; for (i = 0;i < 3;i++) { int C; C = 0; if (data & 1) C += 47000; /* 47000pF = 0.047uF */ if (data & 2) C += 220000; /* 220000pF = 0.22uF */ data >>= 2; set_RC_filter(i,1000,2200,200,C); } }
static void filter_w(int chip,int data) { int i; for (i = 0;i < 3;i++) { int C; C = 0; if (data & 1) C += 47000; /* 47000pF = 0.047uF */ if (data & 2) C += 220000; /* 220000pF = 0.22uF */ data >>= 2; set_RC_filter(3*chip + i,1000,2200,200,C); } }
static WRITE_HANDLER( megazone_portB_w ) { int i; for (i = 0;i < 3;i++) { int C; C = 0; if (data & 1) C += 10000; /* 10000pF = 0.01uF */ if (data & 2) C += 220000; /* 220000pF = 0.22uF */ data >>= 2; set_RC_filter(i,1000,2200,200,C); } }
static void megazone_portB_w(int offset,int data) { int i; for (i = 0;i < 3;i++) { int C; C = 0; if (data & 1) C += 10000; /* 10000pF = 0.01uF */ if (data & 2) C += 220000; /* 220000pF = 0.22uF */ data >>= 2; set_RC_filter(i,1000,2200,200,C); } }
static WRITE_HANDLER( ironhors_filter_w ) { set_RC_filter(0,1000,2200,1000,data & 0x04 ? 220000 : 0); /* YM2203-SSG-A */ set_RC_filter(1,1000,2200,1000,data & 0x02 ? 220000 : 0); /* YM2203-SSG-B */ set_RC_filter(2,1000,2200,1000,data & 0x01 ? 220000 : 0); /* YM2203-SSG-C */ }