DS Memory: Allow 8-bit reads from VRAM

This commit is contained in:
Vicki Pfau 2017-03-06 14:21:00 -08:00
parent 476a4767a3
commit ff37b44a49
1 changed files with 10 additions and 0 deletions

View File

@ -967,6 +967,16 @@ uint32_t DS9Load8(struct ARMCore* cpu, uint32_t address, int* cycleCounter) {
case DS_REGION_IO:
value = (DS9IORead(ds, address & 0xFFFE) >> ((address & 0x0001) << 3)) & 0xFF;
break;
case DS_REGION_VRAM: {
unsigned mask = _selectVRAM(memory, address >> DS_VRAM_OFFSET);
int i = 0;
for (i = 0; i < 9; ++i) {
if (mask & (1 << i)) {
value |= ((uint8_t*) memory->vramBank[i])[address & _vramMask[i]];
}
}
break;
}
case DS9_REGION_BIOS:
// TODO: Fix undersized BIOS
// TODO: Fix masking