This is not correct, this bug only affects the PCM registers and not actual output. Currently not emulated at all.

This commit is contained in:
Lior Halphon 2019-06-07 18:37:19 +03:00
parent 2f9de4942c
commit 9d8adbb581
2 changed files with 0 additions and 11 deletions

View File

@ -489,16 +489,6 @@ void GB_apu_run(GB_gameboy_t *gb)
} }
gb->apu.current_lfsr_sample = gb->apu.noise_channel.lfsr & 1; gb->apu.current_lfsr_sample = gb->apu.noise_channel.lfsr & 1;
if (gb->model == GB_MODEL_CGB_C) {
/* Todo: This was confirmed to happen on a CGB-C. This may or may not happen on pre-CGB models.
Because this degrades audio quality, and testing this on a pre-CGB device requires audio records,
I'll assume these devices are innocent until proven guilty.
Also happens on CGB-B, but not on CGB-D.
*/
gb->apu.current_lfsr_sample &= gb->apu.previous_lfsr_sample;
}
gb->apu.previous_lfsr_sample = gb->apu.noise_channel.lfsr & 1;
update_sample(gb, GB_NOISE, update_sample(gb, GB_NOISE,
gb->apu.current_lfsr_sample ? gb->apu.current_lfsr_sample ?

View File

@ -114,7 +114,6 @@ typedef struct
bool skip_div_event; bool skip_div_event;
bool current_lfsr_sample; bool current_lfsr_sample;
bool previous_lfsr_sample;
} GB_apu_t; } GB_apu_t;
typedef enum { typedef enum {