mirror of https://github.com/mgba-emu/mgba.git
GBA BIOS: Add DACS compatibility to HLE BIOS (closes #2972)
This commit is contained in:
parent
3f0d06e307
commit
44e074a15e
|
@ -3,9 +3,9 @@
|
||||||
#include <mgba/internal/gba/memory.h>
|
#include <mgba/internal/gba/memory.h>
|
||||||
|
|
||||||
const uint8_t hleBios[GBA_SIZE_BIOS] = {
|
const uint8_t hleBios[GBA_SIZE_BIOS] = {
|
||||||
0xd3, 0x00, 0x00, 0xea, 0x66, 0x00, 0x00, 0xea, 0x0c, 0x00, 0x00, 0xea,
|
0xd3, 0x00, 0x00, 0xea, 0xe1, 0x00, 0x00, 0xea, 0x0c, 0x00, 0x00, 0xea,
|
||||||
0xfe, 0xff, 0xff, 0xea, 0xfe, 0xff, 0xff, 0xea, 0x00, 0x00, 0xa0, 0xe1,
|
0xdf, 0x00, 0x00, 0xea, 0xde, 0x00, 0x00, 0xea, 0x00, 0x00, 0xa0, 0xe1,
|
||||||
0x59, 0x00, 0x00, 0xea, 0xfe, 0xff, 0xff, 0xea, 0x00, 0x00, 0x00, 0x00,
|
0x59, 0x00, 0x00, 0xea, 0xdb, 0x00, 0x00, 0xea, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5d, 0xe3, 0x01, 0xd3, 0xa0, 0x03,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5d, 0xe3, 0x01, 0xd3, 0xa0, 0x03,
|
||||||
|
@ -78,5 +78,13 @@ const uint8_t hleBios[GBA_SIZE_BIOS] = {
|
||||||
0x00, 0x10, 0xa0, 0x13, 0x1e, 0xff, 0x2f, 0x11, 0x1c, 0xe0, 0x9f, 0xe5,
|
0x00, 0x10, 0xa0, 0x13, 0x1e, 0xff, 0x2f, 0x11, 0x1c, 0xe0, 0x9f, 0xe5,
|
||||||
0x00, 0x10, 0x9e, 0xe5, 0x00, 0x00, 0x51, 0xe3, 0x00, 0x10, 0xa0, 0xe3,
|
0x00, 0x10, 0x9e, 0xe5, 0x00, 0x00, 0x51, 0xe3, 0x00, 0x10, 0xa0, 0xe3,
|
||||||
0x1e, 0xff, 0x2f, 0x11, 0xc0, 0xe0, 0x4e, 0xe2, 0x1e, 0xff, 0x2f, 0xe1,
|
0x1e, 0xff, 0x2f, 0x11, 0xc0, 0xe0, 0x4e, 0xe2, 0x1e, 0xff, 0x2f, 0xe1,
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x29, 0xe1, 0xc0, 0x00, 0x00, 0x02
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x29, 0xe1, 0xc0, 0x00, 0x00, 0x02,
|
||||||
|
0x4c, 0xd0, 0x9f, 0xe5, 0x00, 0x50, 0x2d, 0xe9, 0x00, 0xc0, 0x4f, 0xe1,
|
||||||
|
0x00, 0xe0, 0x0f, 0xe1, 0x00, 0x50, 0x2d, 0xe9, 0x02, 0xe3, 0xa0, 0xe3,
|
||||||
|
0x9c, 0xc0, 0xde, 0xe5, 0xa5, 0x00, 0x5c, 0xe3, 0x04, 0x00, 0x00, 0x1a,
|
||||||
|
0xb4, 0xc0, 0xde, 0xe5, 0x80, 0x00, 0x1c, 0xe3, 0x04, 0xe0, 0x8f, 0xe2,
|
||||||
|
0x20, 0xf0, 0x9f, 0x15, 0x20, 0xf0, 0x9f, 0x05, 0x14, 0xd0, 0x9f, 0xe5,
|
||||||
|
0x10, 0xc0, 0x1d, 0xe5, 0x0c, 0xf0, 0x69, 0xe1, 0x00, 0x50, 0x3d, 0xe9,
|
||||||
|
0x04, 0xf0, 0x5e, 0xe2, 0x00, 0x00, 0x00, 0x00, 0x04, 0xe0, 0xa0, 0x03,
|
||||||
|
0xf0, 0x7f, 0x00, 0x03, 0x00, 0x20, 0xfe, 0x09, 0x00, 0xc0, 0xff, 0x09
|
||||||
};
|
};
|
||||||
|
|
|
@ -123,7 +123,7 @@ subs pc, lr, #4
|
||||||
.word 0
|
.word 0
|
||||||
.word 0xE55EC002
|
.word 0xE55EC002
|
||||||
|
|
||||||
undefBase:
|
@ Padding for back compat
|
||||||
subs pc, lr, #4
|
subs pc, lr, #4
|
||||||
.word 0
|
.word 0
|
||||||
.word 0x03A0E004
|
.word 0x03A0E004
|
||||||
|
@ -328,3 +328,32 @@ sub lr, #0xC0
|
||||||
bx lr
|
bx lr
|
||||||
.word 0
|
.word 0
|
||||||
.word 0xE129F000
|
.word 0xE129F000
|
||||||
|
|
||||||
|
.ltorg
|
||||||
|
|
||||||
|
undefBase:
|
||||||
|
pabtBase:
|
||||||
|
dabtBase:
|
||||||
|
fiqBase:
|
||||||
|
ldr sp, =0x03007FF0
|
||||||
|
stmdb sp!, {r12, lr}
|
||||||
|
mrs r12, spsr
|
||||||
|
mrs lr, cpsr
|
||||||
|
stmdb sp!, {r12, lr}
|
||||||
|
mov lr, #0x08000000
|
||||||
|
ldrb r12, [lr, #0x9C]
|
||||||
|
cmp r12, #0xA5
|
||||||
|
bne 1f
|
||||||
|
ldrb r12, [lr, #0xB4]
|
||||||
|
tst r12, #0x80
|
||||||
|
adr lr, 1f
|
||||||
|
ldrne pc, =0x09FE2000
|
||||||
|
ldreq pc, =0x09FFC000
|
||||||
|
1:
|
||||||
|
ldr sp, =0x03007FF0
|
||||||
|
ldr r12, [sp, #-0x10]
|
||||||
|
msr spsr, r12
|
||||||
|
ldmdb sp!, {r12, lr}
|
||||||
|
subs pc, lr, #4
|
||||||
|
.word 0
|
||||||
|
.word 0x03A0E004
|
||||||
|
|
Loading…
Reference in New Issue