static WRITE8_HANDLER( ddrible_vlm5030_ctrl_w ) { UINT8 *SPEECH_ROM = memory_region(REGION_SOUND1); /* b7 : vlm data bus OE */ /* b6 : VLM5030-RST */ /* b5 : VLM5030-ST */ /* b4 : VLM5300-VCU */ /* b3 : ROM bank select */ if (sndti_exists(SOUND_VLM5030, 0)) { 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 */ if (sndti_exists(SOUND_FILTER_RC, 2)) { filter_rc_set_RC(2,FLT_RC_LOWPASS, 1000,2200,1000,data & 0x04 ? CAP_N(150) : 0); /* YM2203-SSG-C */ filter_rc_set_RC(1,FLT_RC_LOWPASS, 1000,2200,1000,data & 0x02 ? CAP_N(150) : 0); /* YM2203-SSG-B */ filter_rc_set_RC(0,FLT_RC_LOWPASS, 1000,2200,1000,data & 0x01 ? CAP_N(150) : 0); /* YM2203-SSG-A */ } }
static WRITE8_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 */ filter_rc_set_RC(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 */ // filter_rc_set_RC(1,1000,2200,1000,C); /* 76489 #2 */ C = 0; if (offset & 0x080) C += 470000; /* 470000pF = 0.47uF */ filter_rc_set_RC(1,1000,2200,1000,C); /* 76489 #3 */ C = 0; if (offset & 0x100) C += 470000; /* 470000pF = 0.47uF */ filter_rc_set_RC(2,1000,2200,1000,C); }
static WRITE8_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 */ filter_rc_set_RC(devtag_get_device(space->machine, "filter1"),FLT_RC_LOWPASS,1000,2200,1000,CAP_P(C)); /* 76489 #1 (optional) */ C = 0; if (offset & 0x020) C += 47000; /* 47000pF = 0.047uF */ if (offset & 0x040) C += 470000; /* 470000pF = 0.47uF */ // filter_rc_set_RC(devtag_get_device(space->machine, "filter2"),1000,2200,1000,C); /* 76489 #2 */ C = 0; if (offset & 0x080) C += 470000; /* 470000pF = 0.47uF */ filter_rc_set_RC(devtag_get_device(space->machine, "filter2"),FLT_RC_LOWPASS,1000,2200,1000,CAP_P(C)); /* 76489 #3 */ C = 0; if (offset & 0x100) C += 470000; /* 470000pF = 0.47uF */ filter_rc_set_RC(devtag_get_device(space->machine, "filter3"),FLT_RC_LOWPASS,1000,2200,1000,CAP_P(C)); }
static WRITE8_DEVICE_HANDLER( ddribble_vlm5030_ctrl_w ) { ddribble_state *state = device->machine->driver_data<ddribble_state>(); UINT8 *SPEECH_ROM = device->machine->region("vlm")->base(); /* b7 : vlm data bus OE */ /* b6 : VLM5030-RST */ vlm5030_rst(device, data & 0x40 ? 1 : 0); /* b5 : VLM5030-ST */ vlm5030_st(device, data & 0x20 ? 1 : 0); /* b4 : VLM5300-VCU */ vlm5030_vcu(device, data & 0x10 ? 1 : 0); /* b3 : ROM bank select */ vlm5030_set_rom(device, &SPEECH_ROM[data & 0x08 ? 0x10000 : 0]); /* b2 : SSG-C rc filter enable */ filter_rc_set_RC(state->filter3, FLT_RC_LOWPASS, 1000, 2200, 1000, data & 0x04 ? CAP_N(150) : 0); /* YM2203-SSG-C */ /* b1 : SSG-B rc filter enable */ filter_rc_set_RC(state->filter2, FLT_RC_LOWPASS, 1000, 2200, 1000, data & 0x02 ? CAP_N(150) : 0); /* YM2203-SSG-B */ /* b0 : SSG-A rc filter enable */ filter_rc_set_RC(state->filter1, FLT_RC_LOWPASS, 1000, 2200, 1000, data & 0x01 ? CAP_N(150) : 0); /* YM2203-SSG-A */ }
static void filter_write(INT32 num, UINT8 d) { INT32 C = 0; if (d & 1) C += 220000; /* 220000pF = 0.220uF */ if (d & 2) C += 47000; /* 47000pF = 0.047uF */ filter_rc_set_RC(num, FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(C)); }
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 */ filter_rc_set_RC(3*chip + channel,1000,5100,0,C); }
static void filter_w( device_t *device, int data ) { int C = 0; if (data & 1) C += 220000; /* 220000pF = 0.220uF */ if (data & 2) C += 47000; /* 47000pF = 0.047uF */ filter_rc_set_RC(device, FLT_RC_LOWPASS, 1000, 5100, 0, CAP_P(C)); }
static WRITE8_HANDLER(circusc_sound_w) { int c; switch (offset & 7) { /* CS2 */ case 0: sn_latch = data; break; /* CS3 */ case 1: SN76496_0_w(0, sn_latch); break; /* CS4 */ case 2: SN76496_1_w(0, sn_latch); break; /* CS5 */ case 3: DAC_data_w(0, data); break; /* CS6 */ case 4: c = (offset & 0x20) ? 470000 : 0; filter_rc_set_RC(0, 1000, 2200, 1000, c); c = 0; if (offset & 0x10) c += 470000; if (offset & 0x08) c += 47000; filter_rc_set_RC(1, 1000, 2200, 1000, c); c = (offset & 0x40) ? 470000 : 0; filter_rc_set_RC(2, 1000, 10000, 1000, c); } }
static void filter_w(int chip, int channel, int data) { int C; C = 0; if (data & 1) C += 220000; /* 220000pF = 0.220uF */ if (data & 2) C += 47000; /* 47000pF = 0.047uF */ if (sndti_exists(SOUND_FILTER_RC, 3*chip + channel)) filter_rc_set_RC(3*chip + channel,FLT_RC_LOWPASS,1000,5100,0,CAP_P(C)); }
static WRITE8_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; filter_rc_set_RC(i,1000,2200,200,C); } }
static WRITE8_DEVICE_HANDLER( megazone_port_b_w ) { static const char *const fltname[] = { "filter.0.0", "filter.0.1", "filter.0.2" }; int i; for (i = 0; i < 3; i++) { int C = 0; if (data & 1) C += 10000; /* 10000pF = 0.01uF */ if (data & 2) C += 220000; /* 220000pF = 0.22uF */ data >>= 2; filter_rc_set_RC(device->machine->device(fltname[i]),FLT_RC_LOWPASS,1000,2200,200,CAP_P(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; filter_rc_set_RC(3*chip + i,1000,2200,200,C); } }