enhance neGcon compatibility
[pcsx_rearmed.git] / libpcsxcore / cdriso.c
index d6672f9..46ee020 100644 (file)
 #include "ppf.h"
 
 #ifdef _WIN32
+#define WIN32_LEAN_AND_MEAN
 #include <process.h>
 #include <windows.h>
 #define strcasecmp _stricmp
+#define usleep(x) (Sleep((x) / 1000))
 #else
 #include <pthread.h>
 #include <sys/time.h>
@@ -221,7 +223,9 @@ static void *playthread(void *param)
                        do {
                                ret = SPU_playCDDAchannel((short *)sndbuffer, s);
                                if (ret == 0x7761)
+            {
                                        usleep(6 * 1000);
+            }
                        } while (ret == 0x7761 && playing); // rearmed_wait
                }
 
@@ -232,7 +236,9 @@ static void *playthread(void *param)
                        // HACK: stop feeding data while emu is paused
                        extern int stop;
                        while (stop && playing)
+         {
                                usleep(10000);
+         }
 
                        now = GetTickCount();
                        osleep = t - now;
@@ -552,9 +558,9 @@ static int parsecue(const char *isofile) {
                        pregapOffset = -1; // mark to fill track start_offset
                }
                else if (!strcmp(token, "FILE")) {
-                       t = sscanf(linebuf, " FILE \"%256[^\"]\"", tmpb);
+                       t = sscanf(linebuf, " FILE \"%255[^\"]\"", tmpb);
                        if (t != 1)
-                               sscanf(linebuf, " FILE %256s", tmpb);
+                               sscanf(linebuf, " FILE %255s", tmpb);
 
                        // absolute path?
                        ti[numtracks + 1].handle = fopen(tmpb, "rb");
@@ -795,6 +801,8 @@ static int handlepbp(const char *isofile) {
        if (ext == NULL || (strcmp(ext, ".pbp") != 0 && strcmp(ext, ".PBP") != 0))
                return -1;
 
+       fseek(cdHandle, 0, SEEK_SET);
+
        numtracks = 0;
 
        ret = fread(&pbp_hdr, 1, sizeof(pbp_hdr), cdHandle);
@@ -958,6 +966,8 @@ static int handlecbin(const char *isofile) {
        if (ext == NULL || (strcasecmp(ext + 1, ".cbn") != 0 && strcasecmp(ext, ".cbin") != 0))
                return -1;
 
+       fseek(cdHandle, 0, SEEK_SET);
+
        ret = fread(&ciso_hdr, 1, sizeof(ciso_hdr), cdHandle);
        if (ret != sizeof(ciso_hdr)) {
                SysPrintf("failed to read ciso header\n");