Skip to content

Commit 5e1b28b

Browse files
committed
Fix #1793
1 parent e3314b2 commit 5e1b28b

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

retail/cardenginei/arm9/source/cardengine.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -651,12 +651,16 @@ static inline void cardReadRAM(u8* dst, u32 src, u32 len/*, int romPartNo*/) {
651651
WRAM_CR = 0; // Set shared WRAM to ARM9
652652
}
653653
while (len > 0) {
654-
newSrc = (ce9->romMap[i][1]-ce9->romMap[i][0])+src;
655654
newLen = len;
656-
while (newSrc+newLen > ce9->romMap[i][2]) {
657-
newLen--;
655+
if (i < ce9->romMapLines) {
656+
newSrc = (ce9->romMap[i][1]-ce9->romMap[i][0])+src;
657+
while (newSrc+newLen > ce9->romMap[i][2]) {
658+
newLen--;
659+
}
660+
tonccpy(dst, (u8*)newSrc, newLen);
661+
} else {
662+
toncset(dst, 0, newLen); // Fill dst with 0 if ROM area is not within the map
658663
}
659-
tonccpy(dst, (u8*)newSrc, newLen);
660664
src += newLen;
661665
dst += newLen;
662666
len -= newLen;

0 commit comments

Comments
 (0)