X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=libpcsxcore%2Fppf.c;h=0d80107b5cc50b97bcfe19c5b6b0d686384e10e1;hp=268ed1cb8a3d6de8b23e774e91d1efb827495409;hb=eaa895dc8ff02d63cf52b5d0faf0d8272a96a822;hpb=ae4e7dc990c2acd9cb208dd8fb02f1c96f915b7c diff --git a/libpcsxcore/ppf.c b/libpcsxcore/ppf.c index 268ed1cb..0d80107b 100644 --- a/libpcsxcore/ppf.c +++ b/libpcsxcore/ppf.c @@ -190,6 +190,8 @@ void BuildPPFCache() { FreePPFCache(); + if (CdromId[0] == '\0') return; + // Generate filename in the format of SLUS_123.45 buffer[0] = toupper(CdromId[0]); buffer[1] = toupper(CdromId[1]); @@ -335,25 +337,37 @@ void BuildPPFCache() { unsigned char *sbi_sectors; int LoadSBI(const char *fname, int sector_count) { - char buffer[16], sbifile[MAXPATHLEN]; + char buffer[16]; FILE *sbihandle; - u8 sbitime[3]; + u8 sbitime[3], t; int s; sbihandle = fopen(fname, "rb"); if (sbihandle == NULL) return -1; -if (sbi_sectors != NULL) printf("sbi_sectors?\n"); sbi_sectors = calloc(1, sector_count / 8); if (sbi_sectors == NULL) return -1; // 4-byte SBI header fread(buffer, 1, 4, sbihandle); - while (!feof(sbihandle)) { - fread(sbitime, 1, 3, sbihandle); - fread(buffer, 1, 11, sbihandle); + while (1) { + s = fread(sbitime, 1, 3, sbihandle); + if (s != 3) + break; + fread(&t, 1, 1, sbihandle); + switch (t) { + default: + case 1: + s = 10; + break; + case 2: + case 3: + s = 3; + break; + } + fseek(sbihandle, s, SEEK_CUR); s = MSF2SECT(btoi(sbitime[0]), btoi(sbitime[1]), btoi(sbitime[2])); if (s < sector_count)