all repos — mgba @ db16620861ed9d9f1104bde2556d80be9e87a911

mGBA Game Boy Advance Emulator

DS Video: Fix crash in extmode 1.x with memory unmapped
Vicki Pfau vi@endrift.com
Tue, 14 Mar 2017 00:44:06 -0700
commit

db16620861ed9d9f1104bde2556d80be9e87a911

parent

dcf7a80e883d9488189a198b075f16f8cc236d67

1 files changed, 10 insertions(+), 2 deletions(-)

jump to
M src/ds/renderers/software.csrc/ds/renderers/software.c

@@ -752,7 +752,11 @@ BACKGROUND_BITMAP_ITERATE(width, height);

if (!mosaicWait) { uint32_t address = (localX >> 8) + (localY >> 8) * width; - color = ((uint8_t*)renderer->d.vramBG[address >> 17])[address]; + uint8_t* vram = (uint8_t*) renderer->d.vramBG[address >> 17]; + if (UNLIKELY(!vram)) { + continue; + } + color = vram[address]; mosaicWait = mosaicH; } else { --mosaicWait;

@@ -804,7 +808,11 @@ BACKGROUND_BITMAP_ITERATE(width, height);

if (!mosaicWait) { uint32_t address = ((localX >> 8) + (localY >> 8) * width) << 1; - LOAD_16(color, address & 0x1FFFE, renderer->d.vramBG[address >> 17]); + uint16_t* vram = renderer->d.vramBG[address >> 17]; + if (UNLIKELY(!vram)) { + continue; + } + LOAD_16(color, address & 0x1FFFE, vram); #ifndef COLOR_16_BIT unsigned color32; color32 = 0;