INT32 SolomonDoReset() { SolomonIrqFire = 0; // SolomonFlipScreen = 0; SolomonSoundLatch = 0; #ifdef RAZE0 z80_reset(); CZetOpen(0); CZetReset(); CZetClose(); #else for (UINT32 i = 0; i < 2; i++) { CZetOpen(i); CZetReset(); CZetClose(); } #endif for (UINT32 i = 0; i < 3; i++) { AY8910Reset(i); } return 0; }
INT32 AY8910Init(INT32 chip, INT32 clock, INT32 sample_rate, read8_handler portAread, read8_handler portBread, write8_handler portAwrite, write8_handler portBwrite) { struct AY8910 *PSG = &AYPSG[chip]; #if defined FBA_DEBUG #ifdef __GNUC__ DebugSnd_AY8910Initted = 1; #endif #endif AYStreamUpdate = dummy_callback; if (chip != num) { return 1; } memset(PSG, 0, sizeof(struct AY8910)); PSG->SampleRate = sample_rate; PSG->PortAread = portAread; PSG->PortBread = portBread; PSG->PortAwrite = portAwrite; PSG->PortBwrite = portBwrite; AY8910_set_clock(chip, clock); build_mixer_table(chip); // default routes AY8910Volumes[(chip * 3) + BURN_SND_AY8910_ROUTE_1] = 1.00; AY8910Volumes[(chip * 3) + BURN_SND_AY8910_ROUTE_2] = 1.00; AY8910Volumes[(chip * 3) + BURN_SND_AY8910_ROUTE_3] = 1.00; AY8910RouteDirs[(chip * 3) + BURN_SND_AY8910_ROUTE_1] = BURN_SND_ROUTE_BOTH; AY8910RouteDirs[(chip * 3) + BURN_SND_AY8910_ROUTE_2] = BURN_SND_ROUTE_BOTH; AY8910RouteDirs[(chip * 3) + BURN_SND_AY8910_ROUTE_3] = BURN_SND_ROUTE_BOTH; AY8910Reset(chip); num++; return 0; }
static int DrvDoReset() { DrvReset = 0; memset (Rom + 0x0000, 0, 0x0400); memset (Rom + 0x8000, 0, 0x0400); memset (BankRam, 0, 0x0400); tile_bank = 0; flipscreen = 0; m6502Open(0); m6502Reset(); m6502Close(); AY8910Reset(0); return 0; }