From b41073bda3c218242ad6bb4b80ab04469a39a933 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Tue, 21 Mar 2017 23:39:56 -0700 Subject: [PATCH] DS Slot-1: Emulate secure area lockout --- src/ds/slot1.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/ds/slot1.c b/src/ds/slot1.c index ac10947b0..8d35d6873 100644 --- a/src/ds/slot1.c +++ b/src/ds/slot1.c @@ -132,6 +132,10 @@ static void DSSlot1StartTransfer(struct DS* ds) { ds->memory.slot1.address |= ds->memory.slot1.command[2] << 16; ds->memory.slot1.address |= ds->memory.slot1.command[3] << 8; ds->memory.slot1.address |= ds->memory.slot1.command[4]; + if (ds->memory.slot1.address < 0x8000) { + mLOG(DS_SLOT1, GAME_ERROR, "Invalid read from secure area: %04X", ds->memory.slot1.address); + ds->memory.slot1.address = 0x8000 + (ds->memory.slot1.address & 0x1FF); + } if (ds->romVf) { ds->romVf->seek(ds->romVf, ds->memory.slot1.address, SEEK_SET); }