GB Audio: Fix APU re-enable timing glitch

This commit is contained in:
Vicki Pfau 2022-06-06 22:35:35 -07:00
parent 542824e3c0
commit 00421cd046
14 changed files with 2 additions and 9 deletions

View File

@ -22,6 +22,7 @@ Emulation fixes:
- GB Audio: Fix channel 1/2 reseting edge cases (fixes mgba.io/i/1925) - GB Audio: Fix channel 1/2 reseting edge cases (fixes mgba.io/i/1925)
- GB Audio: Properly apply per-model audio differences - GB Audio: Properly apply per-model audio differences
- GB Audio: Revamp channel rendering - GB Audio: Revamp channel rendering
- GB Audio: Fix APU re-enable timing glitch
- GB Memory: Add cursory cartridge open bus emulation (fixes mgba.io/i/2032) - GB Memory: Add cursory cartridge open bus emulation (fixes mgba.io/i/2032)
- GB Serialize: Fix loading MBC1 states that affect bank 0 (fixes mgba.io/i/2402) - GB Serialize: Fix loading MBC1 states that affect bank 0 (fixes mgba.io/i/2402)
- GB Video: Draw SGB border pieces that overlap GB graphics (fixes mgba.io/i/1339) - GB Video: Draw SGB border pieces that overlap GB graphics (fixes mgba.io/i/1339)

Binary file not shown.

After

Width:  |  Height:  |  Size: 788 B

View File

@ -1,2 +0,0 @@
[testinfo]
fail=1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 870 B

View File

@ -1,2 +0,0 @@
[testinfo]
fail=1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 968 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 788 B

View File

@ -1,2 +0,0 @@
[testinfo]
fail=1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 890 B

View File

@ -1,2 +0,0 @@
[testinfo]
fail=1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 975 B

View File

@ -451,7 +451,7 @@ void GBAudioWriteNR52(struct GBAudio* audio, uint8_t value) {
audio->skipFrame = false; audio->skipFrame = false;
audio->frame = 7; audio->frame = 7;
if (audio->p && audio->p->timer.internalDiv & 0x400) { if (audio->p && audio->p->timer.internalDiv & (0x100 << audio->p->doubleSpeed)) {
audio->skipFrame = true; audio->skipFrame = true;
} }
} }