From 6f9dbbc20d155b09aef456de2a7db45286ac56dd Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Mon, 10 Feb 2020 18:03:48 -0800 Subject: [PATCH] GBA BIOS: Fix undefined instruction HLE behavior --- CHANGES | 1 + src/gba/hle-bios.c | 7 ++++--- src/gba/hle-bios.s | 5 +++++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGES b/CHANGES index 1f0f3be33..63260cd1f 100644 --- a/CHANGES +++ b/CHANGES @@ -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 diff --git a/src/gba/hle-bios.c b/src/gba/hle-bios.c index 776c3d550..8903ca0ac 100644 --- a/src/gba/hle-bios.c +++ b/src/gba/hle-bios.c @@ -3,10 +3,10 @@ #include 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 @@ const uint8_t hleBios[SIZE_BIOS] = { 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 }; diff --git a/src/gba/hle-bios.s b/src/gba/hle-bios.s index 96de3ad61..bb7eb0c43 100644 --- a/src/gba/hle-bios.s +++ b/src/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