X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=pico%2Fmedia.c;h=b7fa7f56732e0c97ce0634db3bb73bc94472a9e6;hb=9e38b1f0d61b1f3d22cb253921afad8c84691bc4;hp=c03846d87fb7dac72c2aebe8c93cad083da390ad;hpb=a76fad41291b7be0b42554353d6775dcdff065e0;p=picodrive.git diff --git a/pico/media.c b/pico/media.c index c03846d..b7fa7f5 100644 --- a/pico/media.c +++ b/pico/media.c @@ -132,14 +132,15 @@ int PicoCdCheck(const char *fname_in, int *pregion) cue_track_type type = CT_UNKNOWN; cue_data_t *cue_data = NULL; - get_ext(fname_in, ext); - if (strcasecmp(ext, ".cue") == 0) { - cue_data = cue_parse(fname_in); - if (cue_data != NULL) { - fname = cue_data->tracks[1].fname; - type = cue_data->tracks[1].type; - } - else + // opens a cue, or searches for one + cue_data = cue_parse(fname_in); + if (cue_data != NULL) { + fname = cue_data->tracks[1].fname; + type = cue_data->tracks[1].type; + } + else { + get_ext(fname_in, ext); + if (strcasecmp(ext, ".cue") == 0) return -1; } @@ -197,7 +198,7 @@ enum media_type_e PicoLoadMedia(const char *filename, { const char *rom_fname = filename; enum media_type_e media_type; - cd_img_type cd_img_type = CIT_NOT_CD; + enum cd_img_type cd_img_type = CIT_NOT_CD; unsigned char *rom_data = NULL; unsigned int rom_size = 0; pm_file *rom = NULL; @@ -209,7 +210,7 @@ enum media_type_e PicoLoadMedia(const char *filename, goto out; if ((PicoAHW & PAHW_MCD) && Pico_mcd != NULL) - Stop_CD(); + cdd_unload(); PicoCartUnload(); PicoAHW = 0; PicoQuirks = 0; @@ -243,7 +244,7 @@ enum media_type_e PicoLoadMedia(const char *filename, rom = pm_open(rom_fname); if (rom == NULL) { - lprintf("Failed to open ROM"); + lprintf("Failed to open ROM\n"); media_type = PM_ERROR; goto out; } @@ -251,9 +252,9 @@ enum media_type_e PicoLoadMedia(const char *filename, ret = PicoCartLoad(rom, &rom_data, &rom_size, (PicoAHW & PAHW_SMS) ? 1 : 0); pm_close(rom); if (ret != 0) { - if (ret == 2) lprintf("Out of memory"); - else if (ret == 3) lprintf("Read failed"); - else lprintf("PicoCartLoad() failed."); + if (ret == 2) lprintf("Out of memory\n"); + else if (ret == 3) lprintf("Read failed\n"); + else lprintf("PicoCartLoad() failed.\n"); media_type = PM_ERROR; goto out; } @@ -286,15 +287,17 @@ enum media_type_e PicoLoadMedia(const char *filename, goto out; } rom_data = NULL; // now belongs to PicoCart + Pico.m.ncart_in = 0; // insert CD if it was detected if (cd_img_type != CIT_NOT_CD) { - ret = Insert_CD(filename, cd_img_type); + ret = cdd_load(filename, cd_img_type); if (ret != 0) { PicoCartUnload(); media_type = PM_BAD_CD; goto out; } + Pico.m.ncart_in = 1; } if (PicoQuirks & PQUIRK_FORCE_6BTN)