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( paradise_okibank_w ) { if (data & ~0x02) logerror("CPU #0 - PC %04X: unknown oki bank bits %02X\n",activecpu_get_pc(),data); if (sndti_exists(SOUND_OKIM6295, 1)) OKIM6295_set_bank_base(1, (data & 0x02) ? 0x40000 : 0); }
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 void atari_machine_start(running_machine *machine, int type, const pia6821_interface *pia_intf, int has_cart) { gtia_interface gtia_intf; atari = type; /* GTIA */ memset(>ia_intf, 0, sizeof(gtia_intf)); if (port_tag_to_index("console") >= 0) gtia_intf.console_read = console_read; if (sndti_exists(SOUND_DAC, 0)) gtia_intf.console_write = console_write; gtia_init(machine, >ia_intf); /* pokey */ add_reset_callback(Machine, pokey_reset); /* PIA */ if (pia_intf) { pia_config(0, pia_intf); add_reset_callback(Machine, _pia_reset); } /* ANTIC */ add_reset_callback(Machine, _antic_reset); /* cartridge */ if (has_cart) add_reset_callback(Machine, cart_reset); #ifdef MESS { offs_t ram_top; offs_t ram_size; if (!strcmp(Machine->gamedrv->name, "a400") || !strcmp(Machine->gamedrv->name, "a400pal") || !strcmp(Machine->gamedrv->name, "a800") || !strcmp(Machine->gamedrv->name, "a800pal") || !strcmp(Machine->gamedrv->name, "a800xl")) { ram_size = 0xA000; } else { ram_size = 0x8000; } /* install RAM */ ram_top = MIN(mess_ram_size, ram_size) - 1; memory_install_read8_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x0000, ram_top, 0, 0, SMH_BANK2); memory_install_write8_handler(machine, 0, ADDRESS_SPACE_PROGRAM, 0x0000, ram_top, 0, 0, SMH_BANK2); memory_set_bankptr(2, mess_ram); } #endif /* MESS */ /* save states */ state_save_register_global_pointer(((UINT8 *) &antic.r), sizeof(antic.r)); state_save_register_global_pointer(((UINT8 *) &antic.w), sizeof(antic.w)); }