GBA BIOS: Fix MidiKey2Freq BIOS reads

This commit is contained in:
Jeffrey Pfau 2016-10-11 22:01:13 -07:00
parent 4cbcc41e35
commit 8ac697f310
2 changed files with 6 additions and 0 deletions

View File

@ -5,6 +5,7 @@ Bugfixes:
- LR35902: Fix core never exiting with certain event patterns
- GB Timer: Improve DIV reset behavior
- GBA Memory: Fix misaligned BIOS reads
- GBA BIOS: Fix MidiKey2Freq BIOS reads
Misc:
- SDL: Remove scancode key input
- GBA Video: Clean up unused timers

View File

@ -244,7 +244,12 @@ static void _ObjAffineSet(struct GBA* gba) {
static void _MidiKey2Freq(struct GBA* gba) {
struct ARMCore* cpu = gba->cpu;
int oldRegion = gba->memory.activeRegion;
gba->memory.activeRegion = REGION_BIOS;
uint32_t key = cpu->memory.load32(cpu, cpu->gprs[0] + 4, 0);
gba->memory.activeRegion = oldRegion;
cpu->gprs[0] = key / powf(2, (180.f - cpu->gprs[1] - cpu->gprs[2] / 256.f) / 12.f);
}