all repos — mgba @ 6f9dbbc20d155b09aef456de2a7db45286ac56dd

mGBA Game Boy Advance Emulator

GBA BIOS: Fix undefined instruction HLE behavior
Vicki Pfau vi@endrift.com
Mon, 10 Feb 2020 18:03:48 -0800
commit

6f9dbbc20d155b09aef456de2a7db45286ac56dd

parent

1f4403243d0c74f229474680969e2e0ecd871d61

3 files changed, 10 insertions(+), 3 deletions(-)

jump to
M CHANGESCHANGES

@@ -1,6 +1,7 @@

0.8.1: (Future) Emulation fixes: - GB Serialize: Fix timing bug loading channel 4 timing + - GBA BIOS: Fix undefined instruction HLE behavior - GBA Memory: Misaligned SRAM writes are ignored - GBA Serialize: Fix serializing DMA transfer register - GBA Serialize: Fix audio DMA timing deserialization
M src/gba/hle-bios.csrc/gba/hle-bios.c

@@ -3,10 +3,10 @@

#include <mgba/internal/gba/memory.h> 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, 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, 0x00, 0x00, 0x5d, 0xe3, 0x01, 0xd3, 0xa0, 0x03, 0x20, 0xd0, 0x4d, 0x02, 0x00, 0x58, 0x2d, 0xe9, 0x02, 0xb0, 0x5e, 0xe5, 0x9c, 0xc0, 0xa0, 0xe3,

@@ -49,5 +49,6 @@ 0x03, 0x70, 0xa0, 0xe1, 0x03, 0x80, 0xa0, 0xe1, 0x03, 0x90, 0xa0, 0xe1,

0x03, 0xa0, 0xa0, 0xe1, 0x02, 0x00, 0x51, 0xe1, 0xf8, 0x07, 0xa1, 0xb8, 0xfc, 0xff, 0xff, 0xba, 0x03, 0x00, 0x00, 0xea, 0x02, 0x00, 0x51, 0xe1, 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 };
M src/gba/hle-bios.ssrc/gba/hle-bios.s

@@ -187,4 +187,9 @@ blt 0b

2: ldmfd sp!, {r4-r10, pc} +undefBase: +subs pc, lr, #4 +.word 0 +.word 0x03A0E004 + .ltorg