summaryrefslogtreecommitdiff
path: root/vdp.c
diff options
context:
space:
mode:
Diffstat (limited to 'vdp.c')
-rw-r--r--vdp.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/vdp.c b/vdp.c
index 4c764fa..e86407e 100644
--- a/vdp.c
+++ b/vdp.c
@@ -518,13 +518,15 @@ void vdp_advance_dma(vdp_context * context)
context->cd &= 0xF;
}
}
-
+#include <assert.h>
void write_vram_byte(vdp_context *context, uint16_t address, uint8_t value)
{
if (!(address & 4)) {
uint16_t sat_address = (context->regs[REG_SAT] & 0x7F) << 9;
- if(address >= sat_address && address <= sat_address + SAT_CACHE_SIZE*2) {
- context->sat_cache[(address & 3) | (address >> 1 & 0x1FC)] = value;
+ if(address >= sat_address && address < (sat_address + SAT_CACHE_SIZE*2)) {
+ uint16_t cache_address = address - sat_address;
+ cache_address = (cache_address & 3) | (cache_address >> 1 & 0x1FC);
+ context->sat_cache[cache_address] = value;
}
}
context->vdpmem[address] = value;