summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2009-09-05 05:03:19 +0000
committerSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2009-09-05 05:03:19 +0000
commit067dbe9f695cbb9f819b07a5cc9fd5b765b1e28b (patch)
tree219de62b389a96f3d3cfc56a0a14e2e5968a7a02
parente981d45b93d19ac577adb215cf1339e89a76b174 (diff)
downloadpcsxr-067dbe9f695cbb9f819b07a5cc9fd5b765b1e28b.tar.gz
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@29006 e17a0e51-4ae3-4d35-97c3-1a29b211df97
-rw-r--r--ChangeLog6
-rw-r--r--libpcsxcore/cdriso.c17
2 files changed, 21 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index fc269325..5f26ce10 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+September 5, 2009 Wei Mingzhi <weimingzhi@gmail.com>
+
+ * libpcsxcore/cdriso.c: Don't feed CDDA data to the SPU plugin when CDDA
+ is muted, which fixes the "noise" in Final Fantasy 8. Also check for
+ image.bin.toc in addition to image.toc.
+
September 4, 2009 Wei Mingzhi <weimingzhi@gmail.com>
* libpcsxcore/cdriso.c: Don't delay before feeding CDDA data to the SPU
diff --git a/libpcsxcore/cdriso.c b/libpcsxcore/cdriso.c
index 66c9f3aa..21ecd95d 100644
--- a/libpcsxcore/cdriso.c
+++ b/libpcsxcore/cdriso.c
@@ -20,6 +20,7 @@
#include "psxcommon.h"
#include "plugins.h"
+#include "cdrom.h"
#ifdef _WIN32
#include <process.h>
@@ -144,7 +145,16 @@ static void *playthread(void *param)
break;
}
- SPU_playCDDAchannel((short *)sndbuffer, d);
+ if (!cdr.Muted) {
+ SPU_playCDDAchannel((short *)sndbuffer, d);
+ }
+ else {
+#ifdef _WIN32
+ Sleep(1000 * d / CD_FRAMESIZE_RAW / 75 - 80);
+#else
+ usleep(1000 * d / CD_FRAMESIZE_RAW / 75 * 1000);
+#endif
+ }
}
#ifdef _WIN32
@@ -227,7 +237,10 @@ static int parsetoc(const char *isofile) {
}
if ((fi = fopen(tocname, "r")) == NULL) {
- return -1;
+ sprintf(tocname, "%s.toc", isofile);
+ if ((fi = fopen(tocname, "r")) == NULL) {
+ return -1;
+ }
}
memset(&ti, 0, sizeof(ti));