From e6d669d18748ff1ad7b1dfb88db8ed9b865db0f0 Mon Sep 17 00:00:00 2001 From: joevt Date: Sat, 20 Apr 2024 01:04:05 -0700 Subject: [PATCH] atimach64gx: Check end of regs region. There's only up to 256 regs. --- devices/video/atimach64gx.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/devices/video/atimach64gx.cpp b/devices/video/atimach64gx.cpp index 4e8cb84..0b1705b 100644 --- a/devices/video/atimach64gx.cpp +++ b/devices/video/atimach64gx.cpp @@ -539,7 +539,7 @@ uint32_t AtiMach64Gx::read(uint32_t rgn_start, uint32_t offset, int size) if (offset < this->vram_size) { return read_mem(&this->vram_ptr[offset], size); } - if (offset >= this->mm_regs_offset) { + if (offset >= this->mm_regs_offset && offset < this->mm_regs_offset + 0x400) { return BYTESWAP_SIZED(read_reg(offset - this->mm_regs_offset, size), size); } return 0; @@ -561,7 +561,7 @@ void AtiMach64Gx::write(uint32_t rgn_start, uint32_t offset, uint32_t value, int if (offset < this->vram_size) { return write_mem(&this->vram_ptr[offset], value, size); } - if (offset >= this->mm_regs_offset) { + if (offset >= this->mm_regs_offset && offset < this->mm_regs_offset + 0x400) { return write_reg(offset - this->mm_regs_offset, BYTESWAP_SIZED(value, size), size); } return;