void __fastcall korokoroWriteByte(UINT32 sekAddress, UINT8 byteValue) { switch (sekAddress) { case 0x240001: YMZ280BSelectRegister(byteValue); break; case 0x240003: YMZ280BWriteRegister(byteValue); break; case 0x280008: case 0x280009: // leds break; case 0x28000a: korokoro_hopper = byteValue & 0x01; EEPROMWrite(byteValue & 0x20, byteValue & 0x10, byteValue & 0x40); break; // default: // bprintf(PRINT_NORMAL, "Attempt to write byte value %x to location %x\n", byteValue, sekAddress); } }
void __fastcall korokoroWriteWord(UINT32 sekAddress, UINT16 wordValue) { switch (sekAddress) { case 0x140000: CaveTileReg[0][0] = wordValue; break; case 0x140002: CaveTileReg[0][1] = wordValue; break; case 0x140004: CaveTileReg[0][2] = wordValue; break; case 0x1c0000: case 0x300000: nCaveXOffset = wordValue; return; case 0x1c0002: case 0x300002: nCaveYOffset = wordValue; return; case 0x1c0008: case 0x300008: CaveSpriteBuffer(); nCaveSpriteBank = wordValue; return; case 0x240000: YMZ280BSelectRegister(wordValue & 0xff); break; case 0x240002: YMZ280BWriteRegister(wordValue & 0xff); break; case 0x280008: return; case 0x28000a: { wordValue >>= 8; korokoro_hopper = wordValue & 0x01; EEPROMWrite(wordValue & 0x20, wordValue & 0x10, wordValue & 0x40); break; } // default: // bprintf(PRINT_NORMAL, "Attempt to write word value %x to location %x\n", wordValue, sekAddress); } }
void __fastcall ddonpachWriteByte(UINT32 sekAddress, UINT8 byteValue) { switch (sekAddress) { case 0x300001: YMZ280BSelectRegister(byteValue); return; case 0x300003: YMZ280BWriteRegister(byteValue); return; case 0xE00000: EEPROMWrite(byteValue & 0x04, byteValue & 0x02, byteValue & 0x08); return; default: { // bprintf(PRINT_NORMAL, "Attempt to write byte value %x to location %x\n", byteValue, sekAddress); } } }
void __fastcall ddonpachWriteWord(UINT32 sekAddress, UINT16 wordValue) { switch (sekAddress) { case 0x300000: YMZ280BSelectRegister(wordValue); return; case 0x300002: YMZ280BWriteRegister(wordValue); return; case 0x800000: nCaveXOffset = wordValue; return; case 0x800002: nCaveYOffset = wordValue; return; case 0x800008: CaveSpriteBuffer(); nCaveSpriteBank = wordValue; return; case 0x900000: CaveTileReg[0][0] = wordValue; return; case 0x900002: CaveTileReg[0][1] = wordValue; return; case 0x900004: CaveTileReg[0][2] = wordValue; return; case 0xA00000: CaveTileReg[1][0] = wordValue; return; case 0xA00002: CaveTileReg[1][1] = wordValue; return; case 0xA00004: CaveTileReg[1][2] = wordValue; return; case 0xB00000: CaveTileReg[2][0] = wordValue; return; case 0xB00002: CaveTileReg[2][1] = wordValue; return; case 0xB00004: CaveTileReg[2][2] = wordValue; return; case 0xE00000: wordValue >>= 8; EEPROMWrite(wordValue & 0x04, wordValue & 0x02, wordValue & 0x08); return; default: { // bprintf(PRINT_NORMAL, "Attempt to write word value %x to location %x\n", wordValue, sekAddress); } } }