mirror of https://github.com/mgba-emu/mgba.git
GBA BIOS: Fix BIOS decompression routines with invalid source addresses
This commit is contained in:
parent
e61d413d69
commit
826569fdf7
1
CHANGES
1
CHANGES
|
@ -47,6 +47,7 @@ Bugfixes:
|
||||||
- Qt: Fix patch loading while a game is running
|
- Qt: Fix patch loading while a game is running
|
||||||
- Util: Fix sockets on Windows
|
- Util: Fix sockets on Windows
|
||||||
- Qt: Fix crash when loading a game after stopping GDB server
|
- Qt: Fix crash when loading a game after stopping GDB server
|
||||||
|
- GBA BIOS: Fix BIOS decompression routines with invalid source addresses
|
||||||
Misc:
|
Misc:
|
||||||
- GBA Audio: Change internal audio sample buffer from 32-bit to 16-bit samples
|
- GBA Audio: Change internal audio sample buffer from 32-bit to 16-bit samples
|
||||||
- GBA Memory: Simplify memory API and use fixed bus width
|
- GBA Memory: Simplify memory API and use fixed bus width
|
||||||
|
|
|
@ -233,6 +233,7 @@ void GBASwi16(struct ARMCore* cpu, int immediate) {
|
||||||
case 0x12:
|
case 0x12:
|
||||||
if (cpu->gprs[0] < BASE_WORKING_RAM) {
|
if (cpu->gprs[0] < BASE_WORKING_RAM) {
|
||||||
GBALog(gba, GBA_LOG_GAME_ERROR, "Bad LZ77 source");
|
GBALog(gba, GBA_LOG_GAME_ERROR, "Bad LZ77 source");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
switch (cpu->gprs[1] >> BASE_OFFSET) {
|
switch (cpu->gprs[1] >> BASE_OFFSET) {
|
||||||
default:
|
default:
|
||||||
|
@ -247,6 +248,7 @@ void GBASwi16(struct ARMCore* cpu, int immediate) {
|
||||||
case 0x13:
|
case 0x13:
|
||||||
if (cpu->gprs[0] < BASE_WORKING_RAM) {
|
if (cpu->gprs[0] < BASE_WORKING_RAM) {
|
||||||
GBALog(gba, GBA_LOG_GAME_ERROR, "Bad Huffman source");
|
GBALog(gba, GBA_LOG_GAME_ERROR, "Bad Huffman source");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
switch (cpu->gprs[1] >> BASE_OFFSET) {
|
switch (cpu->gprs[1] >> BASE_OFFSET) {
|
||||||
default:
|
default:
|
||||||
|
@ -262,6 +264,7 @@ void GBASwi16(struct ARMCore* cpu, int immediate) {
|
||||||
case 0x15:
|
case 0x15:
|
||||||
if (cpu->gprs[0] < BASE_WORKING_RAM) {
|
if (cpu->gprs[0] < BASE_WORKING_RAM) {
|
||||||
GBALog(gba, GBA_LOG_GAME_ERROR, "Bad RL source");
|
GBALog(gba, GBA_LOG_GAME_ERROR, "Bad RL source");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
switch (cpu->gprs[1] >> BASE_OFFSET) {
|
switch (cpu->gprs[1] >> BASE_OFFSET) {
|
||||||
default:
|
default:
|
||||||
|
@ -278,6 +281,7 @@ void GBASwi16(struct ARMCore* cpu, int immediate) {
|
||||||
case 0x18:
|
case 0x18:
|
||||||
if (cpu->gprs[0] < BASE_WORKING_RAM) {
|
if (cpu->gprs[0] < BASE_WORKING_RAM) {
|
||||||
GBALog(gba, GBA_LOG_GAME_ERROR, "Bad UnFilter source");
|
GBALog(gba, GBA_LOG_GAME_ERROR, "Bad UnFilter source");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
switch (cpu->gprs[1] >> BASE_OFFSET) {
|
switch (cpu->gprs[1] >> BASE_OFFSET) {
|
||||||
default:
|
default:
|
||||||
|
|
Loading…
Reference in New Issue