GB BIOS: Include timing in degenerate ArcTan2 cases (fixes #2763)

This commit is contained in:
Vicki Pfau 2022-12-27 20:39:19 -08:00
parent 520609d12a
commit 0a4cafcd57
2 changed files with 3 additions and 0 deletions

View File

@ -7,6 +7,7 @@ Emulation fixes:
- GB Audio: Fix channel 3 volume being changed between samples (fixes mgba.io/i/1896) - GB Audio: Fix channel 3 volume being changed between samples (fixes mgba.io/i/1896)
- GB Audio: Fix up boot sequence - GB Audio: Fix up boot sequence
- GB Audio: Fix updating channels other than 2 when writing NR5x - GB Audio: Fix updating channels other than 2 when writing NR5x
- GB BIOS: Include timing in degenerate ArcTan2 cases (fixes mgba.io/i/2763)
- GB Memory: Actually, HDMAs should start when LCD is off (fixes mgba.io/i/2662) - GB Memory: Actually, HDMAs should start when LCD is off (fixes mgba.io/i/2662)
- GB Serialize: Don't write BGP/OBP when loading SCGB state (fixes mgba.io/i/2694) - GB Serialize: Don't write BGP/OBP when loading SCGB state (fixes mgba.io/i/2694)
- GB SIO: Further fix bidirectional transfer starting - GB SIO: Further fix bidirectional transfer starting

View File

@ -336,12 +336,14 @@ static int16_t _ArcTan(int32_t i, int32_t* r1, int32_t* r3, uint32_t* cycles) {
static int16_t _ArcTan2(int32_t x, int32_t y, int32_t* r1, uint32_t* cycles) { static int16_t _ArcTan2(int32_t x, int32_t y, int32_t* r1, uint32_t* cycles) {
if (!y) { if (!y) {
*cycles = 11;
if (x >= 0) { if (x >= 0) {
return 0; return 0;
} }
return 0x8000; return 0x8000;
} }
if (!x) { if (!x) {
*cycles = 11;
if (y >= 0) { if (y >= 0) {
return 0x4000; return 0x4000;
} }