void __fastcall k1945iiiWriteByte(unsigned int sekAddress, unsigned char byteValue) { switch (sekAddress) { case 0x4C0000: MSM6295Command(0, byteValue); break; case 0x500000: MSM6295Command(1, byteValue); break; // default: // bprintf(PRINT_NORMAL, _T("Attempt to write byte value %x to location %x\n"), byteValue, sekAddress); } }
void dec0_aud_write_byte(unsigned short address, unsigned char data) { if (address == 0x0800) // YM2203 write { BurnYM2203Write(0, 0, data); return ; } if ( address ==0x0801) { BurnYM2203Write(0, 1, data); return ; } if (address == 0x1000) // YM3812 write { BurnYM3812Write(0, data); return ; } if (address == 0x1001) { BurnYM3812Write(1, data); return ; } if (address == 0x3800) // OKI write { MSM6295Command(0, data); return ; } bprintf(PRINT_NORMAL, _T("unmapped audio write: %x: %x,\n"),address,data); }
static void __fastcall kbash2WriteByte(UINT32 sekAddress, UINT8 byteValue) { switch (sekAddress) { case 0x200021: MSM6295Command(1, byteValue); return; case 0x200025: MSM6295Command(0, byteValue); return; case 0x200029: oki_set_bank(byteValue); return; // default: // printf("Attempt to write byte value %x to location %x\n", byteValue, sekAddress); } }
void __fastcall speedspn_sound_write(UINT16 address, UINT8 data) { switch (address) { case 0x9000: oki_bankswitch(data); return; case 0x9800: MSM6295Command(0, data); return; } }
void __fastcall speedspn_sound_write(unsigned short address, unsigned char data) { switch (address) { case 0x9000: oki_bankswitch(data); return; case 0x9800: MSM6295Command(0, data); return; } }
void __fastcall shippumdZ80Write(UINT16 nAddress, UINT8 nValue) { switch (nAddress) { case 0xE000: BurnYM2151SelectRegister(nValue); break; case 0xE001: BurnYM2151WriteRegister(nValue); break; case 0xE004: MSM6295Command(0, nValue); break; } }
void __fastcall shippumdZ80Write(unsigned short nAddress, unsigned char nValue) { switch (nAddress) { case 0xE000: BurnYM2151SelectRegister(nValue); break; case 0xE001: BurnYM2151WriteRegister(nValue); break; case 0xE004: MSM6295Command(0, nValue); break; } }
void __fastcall snowbro2WriteWord(UINT32 sekAddress, UINT16 wordValue) { switch (sekAddress) { case 0x300000: // Set GP9001 VRAM address-pointer ToaGP9001SetRAMPointer(wordValue); break; case 0x300004: case 0x300006: ToaGP9001WriteRAM(wordValue, 0); break; case 0x300008: ToaGP9001SelectRegister(wordValue); break; case 0x30000C: ToaGP9001WriteRegister(wordValue); break; case 0x600000: MSM6295Command(0, wordValue & 0xFF); break; case 0x700030: { INT32 nBankOffset = (wordValue & 0x01) << 18; MSM6295SampleInfo[0][0] = MSM6295ROM + nBankOffset; MSM6295SampleData[0][0] = MSM6295ROM + nBankOffset; MSM6295SampleInfo[0][1] = MSM6295ROM + nBankOffset + 0x0100; MSM6295SampleData[0][1] = MSM6295ROM + nBankOffset + 0x10000; MSM6295SampleInfo[0][2] = MSM6295ROM + nBankOffset + 0x0200; MSM6295SampleData[0][2] = MSM6295ROM + nBankOffset + 0x20000; MSM6295SampleInfo[0][3] = MSM6295ROM + nBankOffset + 0x0300; MSM6295SampleData[0][3] = MSM6295ROM + nBankOffset + 0x30000; break; } case 0x500000: BurnYM2151SelectRegister(wordValue); break; case 0x500002: BurnYM2151WriteRegister(wordValue); break; default: { // printf("Attempt to write word value %x to location %x\n", wordValue, sekAddress); } } }
void __fastcall kbash_v25_write(UINT32 address, UINT8 data) { switch (address) { case 0x04000: BurnYM2151SelectRegister(data); return; case 0x04001: BurnYM2151WriteRegister(data); return; case 0x04002: MSM6295Command(0, data); return; } }
void __fastcall mahoudaiZ80Write(UINT16 nAddress, UINT8 nValue) { // bprintf(PRINT_NORMAL, "Z80 attempted to write address %04X with value %02X.\n", nAddress, nValue); switch (nAddress) { case 0xE000: BurnYM2151SelectRegister(nValue); break; case 0xE001: BurnYM2151WriteRegister(nValue); break; case 0xE004: MSM6295Command(0, nValue); // bprintf(PRINT_NORMAL, "OKI M6295 command %02X sent\n", nValue); break; } }
void __fastcall dogyuun_v25_write(unsigned int address, unsigned char data) { switch (address) { case 0x00000: BurnYM2151SelectRegister(data); return; case 0x00001: BurnYM2151WriteRegister(data); return; case 0x00004: MSM6295Command(0, 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 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 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; } } }
void __fastcall donpachiWriteWord(unsigned int sekAddress, unsigned short wordValue) { switch (sekAddress) { case 0x600000: CaveTileReg[1][0] = wordValue; break; case 0x600002: CaveTileReg[1][1] = wordValue; break; case 0x600004: CaveTileReg[1][2] = wordValue; break; case 0x700000: CaveTileReg[0][0] = wordValue; break; case 0x700002: CaveTileReg[0][1] = wordValue; break; case 0x700004: CaveTileReg[0][2] = wordValue; break; case 0x800000: CaveTileReg[2][0] = wordValue; break; case 0x800002: CaveTileReg[2][1] = wordValue; break; case 0x800004: CaveTileReg[2][2] = wordValue; break; case 0x900000: nCaveXOffset = wordValue; return; case 0x900002: nCaveYOffset = wordValue; return; case 0x900008: CaveSpriteBuffer(); nCaveSpriteBank = wordValue; return; case 0xB00000: case 0xB00002: MSM6295Command(0, wordValue); break; case 0xB00010: case 0xB00012: MSM6295Command(1, wordValue); break; case 0xB00020: case 0xB00021: case 0xB00022: case 0xB00023: case 0xB00024: case 0xB00025: case 0xB00026: case 0xB00027: case 0xB00028: case 0xB00029: case 0xB0002A: case 0xB0002B: case 0xB0002C: case 0xB0002D: case 0xB0002E: case 0xB0002F: { int nBank = (sekAddress >> 1) & 3; int nChip = (sekAddress >> 3) & 1; int nAddress = wordValue << 16; while (nAddress > nBankSize[nChip]) { nAddress -= nBankSize[nChip]; } if (nChip == 1) { MSM6295SampleData[1][nBank] = MSM6295ROM + nAddress; MSM6295SampleInfo[1][nBank] = MSM6295ROM + nAddress + (nBank << 8); } else { MSM6295SampleData[0][nBank] = MSM6295ROM + 0x100000 + nAddress; if (nBank == 0) { MSM6295SampleInfo[0][0] = MSM6295ROM + 0x100000 + nAddress + 0x0000; MSM6295SampleInfo[0][1] = MSM6295ROM + 0x100000 + nAddress + 0x0100; MSM6295SampleInfo[0][2] = MSM6295ROM + 0x100000 + nAddress + 0x0200; MSM6295SampleInfo[0][3] = MSM6295ROM + 0x100000 + nAddress + 0x0300; } } break; } case 0xD00000: wordValue >>= 8; EEPROMWrite(wordValue & 0x04, wordValue & 0x02, wordValue & 0x08); break; default: { // bprintf(PRINT_NORMAL, "Attempt to write word value %x to location %x\n", wordValue, sekAddress); } } }
void __fastcall donpachiWriteByte(unsigned int sekAddress, unsigned char byteValue) { switch (sekAddress) { case 0xB00000: case 0xB00001: case 0xB00002: case 0xB00003: MSM6295Command(0, byteValue); break; case 0xB00010: case 0xB00011: case 0xB00012: case 0xB00013: MSM6295Command(1, byteValue); break; case 0xB00020: case 0xB00021: case 0xB00022: case 0xB00023: case 0xB00024: case 0xB00025: case 0xB00026: case 0xB00027: case 0xB00028: case 0xB00029: case 0xB0002A: case 0xB0002B: case 0xB0002C: case 0xB0002D: case 0xB0002E: case 0xB0002F: { int nBank = (sekAddress >> 1) & 3; int nChip = (sekAddress >> 3) & 1; int nAddress = byteValue << 16; while (nAddress > nBankSize[nChip]) { nAddress -= nBankSize[nChip]; } if (nChip == 1) { MSM6295SampleData[1][nBank] = MSM6295ROM + nAddress; MSM6295SampleInfo[1][nBank] = MSM6295ROM + nAddress + (nBank << 8); } else { MSM6295SampleData[0][nBank] = MSM6295ROM + 0x100000 + nAddress; if (nBank == 0) { MSM6295SampleInfo[0][0] = MSM6295ROM + 0x100000 + nAddress + 0x0000; MSM6295SampleInfo[0][1] = MSM6295ROM + 0x100000 + nAddress + 0x0100; MSM6295SampleInfo[0][2] = MSM6295ROM + 0x100000 + nAddress + 0x0200; MSM6295SampleInfo[0][3] = MSM6295ROM + 0x100000 + nAddress + 0x0300; } } break; } case 0xD00000: EEPROMWrite(byteValue & 0x04, byteValue & 0x02, byteValue & 0x08); break; default: { // bprintf(PRINT_NORMAL, "Attempt to write byte value %x to location %x\n", byteValue, sekAddress); } } }