X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=inline;f=pico%2Fmemory.c;h=fb5fa9be09d0dfc863b241b8571995c708d32de7;hb=4f2cdbf551ad1a7f487b65b4754cbf7983e80b8a;hp=cb1b5ac37de97fea9184f609b6968c4cff3b1284;hpb=e23f4494fb0b5bc31f8f8a61db88642c33f85516;p=picodrive.git diff --git a/pico/memory.c b/pico/memory.c index cb1b5ac..fb5fa9b 100644 --- a/pico/memory.c +++ b/pico/memory.c @@ -932,7 +932,7 @@ static int ym2612_write_local(u32 a, u32 d, int is_from_z80) int scanline = get_scanline(is_from_z80); //elprintf(EL_STATUS, "%03i -> %03i dac w %08x z80 %i", PsndDacLine, scanline, d, is_from_z80); ym2612.dacout = ((int)d - 0x80) << 6; - if (PsndOut && ym2612.dacen && scanline >= PsndDacLine) + if (ym2612.dacen) PsndDoDAC(scanline); return 0; } @@ -1016,8 +1016,10 @@ static int ym2612_write_local(u32 a, u32 d, int is_from_z80) } case 0x2b: { /* DAC Sel (YM2612) */ int scanline = get_scanline(is_from_z80); - ym2612.dacen = d & 0x80; - if (d & 0x80) PsndDacLine = scanline; + if (ym2612.dacen != (d & 0x80)) { + ym2612.dacen = d & 0x80; + PsndDacLine = scanline; + } #ifdef __GP2X__ if (PicoOpt & POPT_EXT_FM) YM2612Write_940(a, d, scanline); #endif