mirror of https://github.com/mgba-emu/mgba.git
GBA BIOS: Fix undefined instruction HLE behavior
This commit is contained in:
parent
1f4403243d
commit
6f9dbbc20d
1
CHANGES
1
CHANGES
|
@ -1,6 +1,7 @@
|
||||||
0.8.1: (Future)
|
0.8.1: (Future)
|
||||||
Emulation fixes:
|
Emulation fixes:
|
||||||
- GB Serialize: Fix timing bug loading channel 4 timing
|
- GB Serialize: Fix timing bug loading channel 4 timing
|
||||||
|
- GBA BIOS: Fix undefined instruction HLE behavior
|
||||||
- GBA Memory: Misaligned SRAM writes are ignored
|
- GBA Memory: Misaligned SRAM writes are ignored
|
||||||
- GBA Serialize: Fix serializing DMA transfer register
|
- GBA Serialize: Fix serializing DMA transfer register
|
||||||
- GBA Serialize: Fix audio DMA timing deserialization
|
- GBA Serialize: Fix audio DMA timing deserialization
|
||||||
|
|
|
@ -3,10 +3,10 @@
|
||||||
#include <mgba/internal/gba/memory.h>
|
#include <mgba/internal/gba/memory.h>
|
||||||
|
|
||||||
const uint8_t hleBios[SIZE_BIOS] = {
|
const uint8_t hleBios[SIZE_BIOS] = {
|
||||||
0x06, 0x00, 0x00, 0xea, 0xfe, 0xff, 0xff, 0xea, 0x0b, 0x00, 0x00, 0xea,
|
0x06, 0x00, 0x00, 0xea, 0x88, 0x00, 0x00, 0xea, 0x0b, 0x00, 0x00, 0xea,
|
||||||
0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea, 0x00, 0x00, 0xa0, 0xe1,
|
0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea, 0x00, 0x00, 0xa0, 0xe1,
|
||||||
0x2c, 0x00, 0x00, 0xea, 0xfe, 0xff, 0xff, 0xea, 0x02, 0x03, 0xa0, 0xe3,
|
0x2c, 0x00, 0x00, 0xea, 0xfe, 0xff, 0xff, 0xea, 0x02, 0x03, 0xa0, 0xe3,
|
||||||
0x03, 0x10, 0xd0, 0xe5, 0xea, 0x00, 0x51, 0xe3, 0xf8, 0x01, 0x9f, 0x15,
|
0x03, 0x10, 0xd0, 0xe5, 0xea, 0x00, 0x51, 0xe3, 0x04, 0x02, 0x9f, 0x15,
|
||||||
0x10, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x29, 0xe1,
|
0x10, 0xff, 0x2f, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x29, 0xe1,
|
||||||
0x00, 0x00, 0x5d, 0xe3, 0x01, 0xd3, 0xa0, 0x03, 0x20, 0xd0, 0x4d, 0x02,
|
0x00, 0x00, 0x5d, 0xe3, 0x01, 0xd3, 0xa0, 0x03, 0x20, 0xd0, 0x4d, 0x02,
|
||||||
0x00, 0x58, 0x2d, 0xe9, 0x02, 0xb0, 0x5e, 0xe5, 0x9c, 0xc0, 0xa0, 0xe3,
|
0x00, 0x58, 0x2d, 0xe9, 0x02, 0xb0, 0x5e, 0xe5, 0x9c, 0xc0, 0xa0, 0xe3,
|
||||||
|
@ -49,5 +49,6 @@ const uint8_t hleBios[SIZE_BIOS] = {
|
||||||
0x03, 0xa0, 0xa0, 0xe1, 0x02, 0x00, 0x51, 0xe1, 0xf8, 0x07, 0xa1, 0xb8,
|
0x03, 0xa0, 0xa0, 0xe1, 0x02, 0x00, 0x51, 0xe1, 0xf8, 0x07, 0xa1, 0xb8,
|
||||||
0xfc, 0xff, 0xff, 0xba, 0x03, 0x00, 0x00, 0xea, 0x02, 0x00, 0x51, 0xe1,
|
0xfc, 0xff, 0xff, 0xba, 0x03, 0x00, 0x00, 0xea, 0x02, 0x00, 0x51, 0xe1,
|
||||||
0xf8, 0x07, 0xb0, 0xb8, 0xf8, 0x07, 0xa1, 0xb8, 0xfb, 0xff, 0xff, 0xba,
|
0xf8, 0x07, 0xb0, 0xb8, 0xf8, 0x07, 0xa1, 0xb8, 0xfb, 0xff, 0xff, 0xba,
|
||||||
0xf0, 0x87, 0xbd, 0xe8, 0xc0, 0x00, 0x00, 0x02
|
0xf0, 0x87, 0xbd, 0xe8, 0x04, 0xf0, 0x5e, 0xe2, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x04, 0xe0, 0xa0, 0x03, 0xc0, 0x00, 0x00, 0x02
|
||||||
};
|
};
|
||||||
|
|
|
@ -187,4 +187,9 @@ blt 0b
|
||||||
2:
|
2:
|
||||||
ldmfd sp!, {r4-r10, pc}
|
ldmfd sp!, {r4-r10, pc}
|
||||||
|
|
||||||
|
undefBase:
|
||||||
|
subs pc, lr, #4
|
||||||
|
.word 0
|
||||||
|
.word 0x03A0E004
|
||||||
|
|
||||||
.ltorg
|
.ltorg
|
||||||
|
|
Loading…
Reference in New Issue