notaz.gp2x.de
/
pcsx_rearmed.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
4295c49
)
cdriso: make sure to open correct file for cdda
author
notaz
<notasas@gmail.com>
Sun, 26 May 2013 14:16:07 +0000
(17:16 +0300)
committer
notaz
<notasas@gmail.com>
Sun, 26 May 2013 14:16:07 +0000
(17:16 +0300)
libpcsxcore/cdriso.c
patch
|
blob
|
blame
|
history
diff --git
a/libpcsxcore/cdriso.c
b/libpcsxcore/cdriso.c
index
f7359ce
..
bfa7d76
100644
(file)
--- a/
libpcsxcore/cdriso.c
+++ b/
libpcsxcore/cdriso.c
@@
-1213,6
+1213,8
@@
static void PrintTracks(void) {
// file for playback
static long CALLBACK ISOopen(void) {
boolean isMode1ISO = FALSE;
// file for playback
static long CALLBACK ISOopen(void) {
boolean isMode1ISO = FALSE;
+ char alt_bin_filename[MAXPATHLEN];
+ const char *bin_filename;
if (cdHandle != NULL) {
return 0; // it's already open
if (cdHandle != NULL) {
return 0; // it's already open
@@
-1268,27
+1270,30
@@
static long CALLBACK ISOopen(void) {
fseek(cdHandle, 0, SEEK_END);
// maybe user selected metadata file instead of main .bin ..
fseek(cdHandle, 0, SEEK_END);
// maybe user selected metadata file instead of main .bin ..
+ bin_filename = GetIsoFile();
if (ftell(cdHandle) < 2352 * 0x10) {
static const char *exts[] = { ".bin", ".BIN", ".img", ".IMG" };
if (ftell(cdHandle) < 2352 * 0x10) {
static const char *exts[] = { ".bin", ".BIN", ".img", ".IMG" };
- char tmp[MAXPATHLEN], *p;
- FILE *tmpf;
+ FILE *tmpf = NULL;
size_t i;
size_t i;
+ char *p;
- strncpy(
tmp, GetIsoFile(), sizeof(tmp
));
-
tmp
[MAXPATHLEN - 1] = '\0';
- if (strlen(
tmp
) >= 4) {
- p =
tmp + strlen(tmp
) - 4;
+ strncpy(
alt_bin_filename, bin_filename, sizeof(alt_bin_filename
));
+
alt_bin_filename
[MAXPATHLEN - 1] = '\0';
+ if (strlen(
alt_bin_filename
) >= 4) {
+ p =
alt_bin_filename + strlen(alt_bin_filename
) - 4;
for (i = 0; i < sizeof(exts) / sizeof(exts[0]); i++) {
strcpy(p, exts[i]);
for (i = 0; i < sizeof(exts) / sizeof(exts[0]); i++) {
strcpy(p, exts[i]);
- tmpf = fopen(tmp, "rb");
- if (tmpf != NULL) {
- fclose(cdHandle);
- cdHandle = tmpf;
- fseek(cdHandle, 0, SEEK_END);
+ tmpf = fopen(alt_bin_filename, "rb");
+ if (tmpf != NULL)
break;
break;
- }
}
}
}
}
+ if (tmpf != NULL) {
+ bin_filename = alt_bin_filename;
+ fclose(cdHandle);
+ cdHandle = tmpf;
+ fseek(cdHandle, 0, SEEK_END);
+ }
}
// guess whether it is mode1/2048
}
// guess whether it is mode1/2048
@@
-1314,7
+1319,7
@@
static long CALLBACK ISOopen(void) {
// make sure we have another handle open for cdda
if (numtracks > 1 && ti[1].handle == NULL) {
// make sure we have another handle open for cdda
if (numtracks > 1 && ti[1].handle == NULL) {
- ti[1].handle = fopen(
GetIsoFile()
, "rb");
+ ti[1].handle = fopen(
bin_filename
, "rb");
}
cdda_cur_sector = 0;
cdda_file_offset = 0;
}
cdda_cur_sector = 0;
cdda_file_offset = 0;