void __fastcall crimfght_sound_write(UINT16 address, UINT8 data) { if ((address & 0xfff0) == 0xe000) { K007232WriteReg(0, address & 0x0f, data); return; } switch (address) { case 0xa000: BurnYM2151SelectRegister(data); return; case 0xa001: BurnYM2151WriteRegister(data); return; } }
void __fastcall snowbro2WriteByte(UINT32 sekAddress, UINT8 byteValue) { switch (sekAddress) { case 0x600001: MSM6295Command(0, byteValue); break; case 0x500001: BurnYM2151SelectRegister(byteValue); break; case 0x500003: BurnYM2151WriteRegister(byteValue); break; default: { // printf("Attempt to write byte value %x to location %x\n", byteValue, sekAddress); } } }
void __fastcall RastanZ80Write(unsigned short a,unsigned char d) { switch (a) { case 0xb000: { UINT8 *rom = MSM5205ROM; int len = 0x10000; int start = d << 8; int end; /* look for end of sample */ end = (start + 3) & ~3; while (end < len && *((unsigned int *)(&rom[end])) != 0x08080808) end += 4; MSM5205Play(start,(end-start)*2,0); } return; case 0xc000: return; case 0xd000: return; case 0x9000: BurnYM2151SelectRegister(d); return; case 0x9001: BurnYM2151WriteRegister(d); return; case 0xa000: tc0140_slave_port_w(d); return; case 0xa001: tc0140_slave_comm_w(d); return; default: bprintf(PRINT_NORMAL, _T("z80write %x\n"),a); } }
void __fastcall battlegZ80Write(UINT16 nAddress, UINT8 nValue) { // printf("z80 wrote %4X with %2X\n", nAddress, nValue); switch (nAddress) { case 0xE000: BurnYM2151SelectRegister(nValue); break; case 0xE001: BurnYM2151WriteRegister(nValue); break; case 0xE004: MSM6295Command(0, nValue); break; case 0xE006: MSM6295SampleInfo[0][0] = MSM6295ROM + ((nValue & 0x0F) << 16); MSM6295SampleData[0][0] = MSM6295ROM + ((nValue & 0x0F) << 16); MSM6295SampleInfo[0][1] = MSM6295ROM + ((nValue & 0xF0) << 12) + 0x0100; MSM6295SampleData[0][1] = MSM6295ROM + ((nValue & 0xF0) << 12); break; case 0xE008: MSM6295SampleInfo[0][2] = MSM6295ROM + ((nValue & 0x0F) << 16) + 0x0200; MSM6295SampleData[0][2] = MSM6295ROM + ((nValue & 0x0F) << 16); MSM6295SampleInfo[0][3] = MSM6295ROM + ((nValue & 0xF0) << 12) + 0x0300; MSM6295SampleData[0][3] = MSM6295ROM + ((nValue & 0xF0) << 12); break; case 0xE00A: { drvZ80Bankswitch(nValue); break; } case 0xE00C: // Once a sound command is processed, it is written to this address // printf("z80 wrote %4X -> %2X\n", nAddress, nValue); break; } }
void __fastcall parodius_sound_write(UINT16 address, UINT8 data) { switch (address) { case 0xf800: BurnYM2151SelectRegister(data); return; case 0xf801: BurnYM2151WriteRegister(data); return; case 0xfa00: nCyclesDone[1] += ZetRun(100); ZetNmi(); return; } if (address >= 0xfc00 && address <= 0xfc2f) { K053260Write(0, address & 0x3f, data); } }
void __fastcall scontra_sound_write(unsigned short address, unsigned char data) { if ((address & 0xfff0) == 0xb000) { K007232WriteReg(0, address & 0x0f, data); return; } switch (address) { case 0xc000: BurnYM2151SelectRegister(data); return; case 0xc001: BurnYM2151WriteRegister(data); return; case 0xf000: scontra_snd_bankswitch_w(data); return; } }
void __fastcall twinhawkZ80Write(unsigned short a,unsigned char d) { switch (a) { case 0xe000: BurnYM2151SelectRegister(d); return; case 0xe001: BurnYM2151WriteRegister(d); return; case 0xe200: tc0140_slave_port_w(d); return; case 0xe201: tc0140_slave_comm_w(d); return; case 0xf200: twinhawkBankSwitch(0,d); default: return; } }
void __fastcall Sf2mdtZ80Write(UINT16 a, UINT8 d) { switch (a) { case 0xd800: { BurnYM2151SelectRegister(d); return; } case 0xd801: { BurnYM2151WriteRegister(d); return; } case 0xe000: { MSM5205SetRoute(0, (d & 0x20) ? 0 : 0.25, BURN_SND_ROUTE_BOTH); MSM5205SetRoute(1, (d & 0x10) ? 0 : 0.25, BURN_SND_ROUTE_BOTH); Sf2mdtZ80BankAddress = (d & Sf2mdtNumZ80Banks) * 0x4000; ZetMapArea(0x8000, 0xbfff, 0, CpsZRom + Sf2mdtZ80BankAddress); ZetMapArea(0x8000, 0xbfff, 2, CpsZRom + Sf2mdtZ80BankAddress); return; } case 0xe400: { Sf2mdtSampleBuffer1 = d; return; } case 0xe800: { Sf2mdtSampleBuffer2 = d; return; } default: { bprintf(PRINT_NORMAL, _T("Z80 #1 Write => %04X, %02X\n"), a, d); } } }
void __fastcall batriderZOut(UINT16 nAddress, UINT8 nValue) { nAddress &= 0xFF; switch (nAddress) { // The 68000 expects to read back the sound command it sent case 0x40: RamShared[4] = nValue; break; case 0x42: RamShared[5] = nValue; break; case 0x44: // ??? case 0x46: // Acknowledge interrupt break; case 0x80: BurnYM2151SelectRegister(nValue); break; case 0x81: BurnYM2151WriteRegister(nValue); break; case 0x82: MSM6295Command(0, nValue); break; case 0x84: MSM6295Command(1, nValue); break; case 0x88: { drvZ80Bankswitch(nValue); break; case 0xC0: MSM6295SampleInfo[0][0] = MSM6295ROM + ((nValue & 0x0F) << 16); MSM6295SampleData[0][0] = MSM6295ROM + ((nValue & 0x0F) << 16); MSM6295SampleInfo[0][1] = MSM6295ROM + ((nValue & 0xF0) << 12) + 0x0100; MSM6295SampleData[0][1] = MSM6295ROM + ((nValue & 0xF0) << 12); break; case 0xC2: MSM6295SampleInfo[0][2] = MSM6295ROM + ((nValue & 0x0F) << 16) + 0x0200; MSM6295SampleData[0][2] = MSM6295ROM + ((nValue & 0x0F) << 16); MSM6295SampleInfo[0][3] = MSM6295ROM + ((nValue & 0xF0) << 12) + 0x0300; MSM6295SampleData[0][3] = MSM6295ROM + ((nValue & 0xF0) << 12); break; case 0xC4: MSM6295SampleInfo[1][0] = MSM6295ROM + 0x0100000 + ((nValue & 0x0F) << 16); MSM6295SampleData[1][0] = MSM6295ROM + 0x0100000 + ((nValue & 0x0F) << 16); MSM6295SampleInfo[1][1] = MSM6295ROM + 0x0100000 + ((nValue & 0xF0) << 12) + 0x0100; MSM6295SampleData[1][1] = MSM6295ROM + 0x0100000 + ((nValue & 0xF0) << 12); break; case 0xC6: MSM6295SampleInfo[1][2] = MSM6295ROM + 0x0100000 + ((nValue & 0x0F) << 16) + 0x0200; MSM6295SampleData[1][2] = MSM6295ROM + 0x0100000 + ((nValue & 0x0F) << 16); MSM6295SampleInfo[1][3] = MSM6295ROM + 0x0100000 + ((nValue & 0xF0) << 12) + 0x0300; MSM6295SampleData[1][3] = MSM6295ROM + 0x0100000 + ((nValue & 0xF0) << 12); break; } } }