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:
parent
2f9de4942c
commit
9d8adbb581
10
Core/apu.c
10
Core/apu.c
@ -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 ?
|
||||||
|
@ -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 {
|
||||||
|
Loading…
Reference in New Issue
Block a user