X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=pico%2Fsound%2Fsound.c;h=236a48341a1a4c2211abcd6d82df94a1fb207791;hb=d0132772f773fbb4fbc4354b06a8e8d356ec70da;hp=48ad40953c008124878664ef54a9497e91314ae4;hpb=e743be2070a13d14cae39a55b815b62b0edb6776;p=picodrive.git diff --git a/pico/sound/sound.c b/pico/sound/sound.c index 48ad409..236a483 100644 --- a/pico/sound/sound.c +++ b/pico/sound/sound.c @@ -1,19 +1,22 @@ -// This is part of Pico Library - -// (c) Copyright 2004 Dave, All rights reserved. -// (c) Copyright 2006,2007 notaz, All rights reserved. -// Free for non-commercial use. - -// For commercial use, separate licencing terms must be obtained. - +/* + * PicoDrive + * (c) Copyright Dave, 2004 + * (C) notaz, 2006-2009 + * + * This work is licensed under the terms of MAME license. + * See COPYING file in the top-level directory. + */ #include #include "ym2612.h" #include "sn76496.h" #include "../pico_int.h" #include "../cd/pcm.h" +#include "../cd/cue.h" #include "mix.h" +#define SIMPLE_WRITE_SOUND 0 + void (*PsndMix_32_to_16l)(short *dest, int *src, int count) = mix_32_to_16l_stereo; // master int buffer to mix to @@ -181,6 +184,9 @@ PICO_INTERNAL void PsndDoDAC(int line_to) int dout = ym2612.dacout; int line_from = PsndDacLine; + if (line_to >= 312) + line_to = 311; + PsndDacLine = line_to + 1; pos =dac_info[line_from]>>4; @@ -255,7 +261,7 @@ PICO_INTERNAL void cdda_start_play(void) return; } - if (Pico_mcd->TOC.Tracks[i].ftype == TYPE_MP3) + if (Pico_mcd->TOC.Tracks[i].ftype == CT_MP3) { int pos1024 = 0; @@ -275,7 +281,7 @@ PICO_INTERNAL void cdda_start_play(void) cdda_stream = Pico_mcd->TOC.Tracks[i].F; PicoCDBufferFlush(); // buffering relies on fp not being touched pm_seek(cdda_stream, lba_offset * 2352, SEEK_SET); - if (Pico_mcd->TOC.Tracks[i].ftype == TYPE_WAV) + if (Pico_mcd->TOC.Tracks[i].ftype == CT_WAV) { // skip headers, assume it's 44kHz stereo uncompressed pm_seek(cdda_stream, 44, SEEK_CUR); @@ -353,7 +359,7 @@ static int PsndRender(int offset, int length) // note: only 44, 22 and 11 kHz supported, with forced stereo int index = Pico_mcd->scd.Cur_Track - 1; - if (Pico_mcd->TOC.Tracks[index].ftype == TYPE_MP3) + if (Pico_mcd->TOC.Tracks[index].ftype == CT_MP3) mp3_update(buf32, length, stereo); else cdda_raw_update(buf32, length);