GBA BIOS: Fix BIOS decompression routines with invalid source addresses
Jeffrey Pfau jeffrey@endrift.com
Fri, 06 Mar 2015 22:18:27 -0800
2 files changed,
5 insertions(+),
0 deletions(-)
M
CHANGES
→
CHANGES
@@ -47,6 +47,7 @@ - Qt: Fix crash when starting GDB stub after closing a game
- Qt: Fix patch loading while a game is running - Util: Fix sockets on Windows - Qt: Fix crash when loading a game after stopping GDB server + - GBA BIOS: Fix BIOS decompression routines with invalid source addresses Misc: - GBA Audio: Change internal audio sample buffer from 32-bit to 16-bit samples - GBA Memory: Simplify memory API and use fixed bus width
M
src/gba/bios.c
→
src/gba/bios.c
@@ -233,6 +233,7 @@ case 0x11:
case 0x12: if (cpu->gprs[0] < BASE_WORKING_RAM) { GBALog(gba, GBA_LOG_GAME_ERROR, "Bad LZ77 source"); + break; } switch (cpu->gprs[1] >> BASE_OFFSET) { default:@@ -247,6 +248,7 @@ break;
case 0x13: if (cpu->gprs[0] < BASE_WORKING_RAM) { GBALog(gba, GBA_LOG_GAME_ERROR, "Bad Huffman source"); + break; } switch (cpu->gprs[1] >> BASE_OFFSET) { default:@@ -262,6 +264,7 @@ case 0x14:
case 0x15: if (cpu->gprs[0] < BASE_WORKING_RAM) { GBALog(gba, GBA_LOG_GAME_ERROR, "Bad RL source"); + break; } switch (cpu->gprs[1] >> BASE_OFFSET) { default:@@ -278,6 +281,7 @@ case 0x17:
case 0x18: if (cpu->gprs[0] < BASE_WORKING_RAM) { GBALog(gba, GBA_LOG_GAME_ERROR, "Bad UnFilter source"); + break; } switch (cpu->gprs[1] >> BASE_OFFSET) { default: