mirror of https://github.com/mgba-emu/mgba.git
GB Audio: Fix restarting envelope when writing to register (fixes #3067)
This commit is contained in:
parent
1f6337fc1f
commit
c8f4d4aad9
1
CHANGES
1
CHANGES
|
@ -10,6 +10,7 @@ Emulation fixes:
|
||||||
- ARM: Fake bpkt instruction should take no cycles (fixes mgba.io/i/2551)
|
- ARM: Fake bpkt instruction should take no cycles (fixes mgba.io/i/2551)
|
||||||
- GB Audio: Fix channels 1/2 staying muted if restarted after long silence
|
- GB Audio: Fix channels 1/2 staying muted if restarted after long silence
|
||||||
- GB Audio: Fix channel 1 restarting if sweep applies after stop (fixes mgba.io/i/2965)
|
- GB Audio: Fix channel 1 restarting if sweep applies after stop (fixes mgba.io/i/2965)
|
||||||
|
- GB Audio: Fix restarting envelope when writing to register (fixes mgba.io/i/3067)
|
||||||
- GB I/O: Read back proper SVBK value after writing 0 (fixes mgba.io/i/2921)
|
- GB I/O: Read back proper SVBK value after writing 0 (fixes mgba.io/i/2921)
|
||||||
- GB I/O: Fix STAT writing IRQ trigger conditions (fixes mgba.io/i/2501)
|
- GB I/O: Fix STAT writing IRQ trigger conditions (fixes mgba.io/i/2501)
|
||||||
- GB Serialize: Add missing Pocket Cam state to savestates
|
- GB Serialize: Add missing Pocket Cam state to savestates
|
||||||
|
|
|
@ -880,9 +880,6 @@ static void _sample(struct mTiming* timing, void* user, uint32_t cyclesLate) {
|
||||||
bool _resetEnvelope(struct GBAudioEnvelope* envelope) {
|
bool _resetEnvelope(struct GBAudioEnvelope* envelope) {
|
||||||
envelope->currentVolume = envelope->initialVolume;
|
envelope->currentVolume = envelope->initialVolume;
|
||||||
_updateEnvelopeDead(envelope);
|
_updateEnvelopeDead(envelope);
|
||||||
if (!envelope->dead) {
|
|
||||||
envelope->nextStep = envelope->stepTime;
|
|
||||||
}
|
|
||||||
return envelope->initialVolume || envelope->direction;
|
return envelope->initialVolume || envelope->direction;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -967,6 +964,7 @@ static void _updateEnvelopeDead(struct GBAudioEnvelope* envelope) {
|
||||||
envelope->dead = 1;
|
envelope->dead = 1;
|
||||||
} else {
|
} else {
|
||||||
envelope->dead = 0;
|
envelope->dead = 0;
|
||||||
|
envelope->nextStep = envelope->stepTime;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue