uint8_t c64_vizawrite_cartridge_device::c64_cd_r(address_space &space, offs_t offset, uint8_t data, int sphi2, int ba, int roml, int romh, int io1, int io2) { if (!roml) { offs_t addr = (m_game << 13) | (offset & 0x1fff); data = UNSCRAMBLE_DATA(m_roml[UNSCRAMBLE_ADDRESS(addr)]); } else if (!romh) { offs_t addr = offset & 0x1fff; data = UNSCRAMBLE_DATA(m_romh[UNSCRAMBLE_ADDRESS(addr)]); } return data; }
UINT8 c64_vizastar_cartridge_device::c64_cd_r(address_space &space, offs_t offset, UINT8 data, int sphi2, int ba, int roml, int romh, int io1, int io2) { if (!roml) { data = UNSCRAMBLE_DATA(m_roml[UNSCRAMBLE_ADDRESS(offset & 0xfff)]); } return data; }
UINT8 c64_warp_speed_cartridge_device::c64_cd_r(address_space &space, offs_t offset, UINT8 data, int sphi2, int ba, int roml, int romh, int io1, int io2) { if (!roml || !romh || !io1 || !io2) { offs_t addr = UNSCRAMBLE_ADDRESS(offset & 0x3fff); data = UNSCRAMBLE_DATA(m_roml[addr]); } return data; }
uint8_t c64_silverrock_cartridge_device::c64_cd_r(address_space &space, offs_t offset, uint8_t data, int sphi2, int ba, int roml, int romh, int io1, int io2) { if (!roml) { offs_t addr = (m_bank << 13) | (offset & 0x1fff); addr = (addr & 0x10000) | UNSCRAMBLE_ADDRESS(addr); data = UNSCRAMBLE_DATA(m_roml[addr]); } return data; }