const char *ext, *p;
char buf[256], buf2[256];
int i, d, ret, good_cue;
- struct stat statf;
+ struct stat64 statf;
FILE *f;
for (i = 1; i < count; i++) {
p = buf2;
snprintf(buf, sizeof(buf), "%s/%s", basedir, p);
- ret = stat(buf, &statf);
+ ret = stat64(buf, &statf);
if (ret == 0) {
rm_namelist_entry(namelist, count, p);
good_cue = 1;
{
static const char *defaults[] = { "/media", "/mnt/sd", "/mnt" };
char path[256];
- struct stat st;
+ struct stat64 st;
FILE *f;
int i, ret = -1;
out:
if (is_get) {
for (i = 0; last_selected_fname[0] == 0
- || stat(last_selected_fname, &st) != 0; i++)
+ || stat64(last_selected_fname, &st) != 0; i++)
{
if (i >= ARRAY_SIZE(defaults))
break;
static const char *filter_exts[] = {
"bin", "img", "mdf", "iso", "cue", "z",
- "bz", "znx", "pbp", "cbn"
+ "bz", "znx", "pbp", "cbn", NULL
};
// rrrr rggg gggb bbbb
if (ext == NULL)
return 0xffff;
ext++;
- for (i = 0; i < array_size(filter_exts); i++)
+ for (i = 0; filter_exts[i] != NULL; i++)
if (strcasecmp(ext, filter_exts[i]) == 0)
return 0x7bff;
for (i = 0; i < array_size(other_exts); i++)
if (f == NULL)
return;
- if (gzseek(f, 0x29933d, SEEK_SET) != 0x29933d) {
- fprintf(stderr, "gzseek failed\n");
+ if ((ret = (int)gzseek(f, 0x29933d, SEEK_SET)) != 0x29933d) {
+ fprintf(stderr, "gzseek failed: %d\n", ret);
gzclose(f);
return;
}
static int run_exe(void)
{
+ const char *exts[] = { "exe", NULL };
const char *fname;
fname = menu_loop_romsel(last_selected_fname,
- sizeof(last_selected_fname), NULL);
+ sizeof(last_selected_fname), exts, NULL);
if (fname == NULL)
return -1;
const char *fname;
fname = menu_loop_romsel(last_selected_fname,
- sizeof(last_selected_fname), optional_cdimg_filter);
+ sizeof(last_selected_fname), filter_exts,
+ optional_cdimg_filter);
if (fname == NULL)
return -1;
static int swap_cd_image(void)
{
- char *fname;
+ const char *fname;
fname = menu_loop_romsel(last_selected_fname,
- sizeof(last_selected_fname), optional_cdimg_filter);
+ sizeof(last_selected_fname), filter_exts,
+ optional_cdimg_filter);
if (fname == NULL)
return -1;
static void load_pcsx_cht(void)
{
+ const char *exts[] = { "cht", NULL };
+ const char *fname;
char path[256];
- char *fname;
path[0] = 0;
- fname = menu_loop_romsel(path, sizeof(path), NULL);
+ fname = menu_loop_romsel(path, sizeof(path), exts, NULL);
if (fname == NULL)
return;
plat_video_menu_leave();
psxCpu = (Config.Cpu == CPU_INTERPRETER) ? &psxInt : &psxRec;
- if (psxCpu != prev_cpu)
+ if (psxCpu != prev_cpu) {
+ prev_cpu->Shutdown();
+ psxCpu->Init();
// note that this does not really reset, just clears drc caches
psxCpu->Reset();
+ }
// core doesn't care about Config.Cdda changes,
// so handle them manually here