X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=pico%2Fmedia.c;h=904693f955f2d70643780126bfa698f1c0e5b774;hb=5ad7000693ff868383277f7ba4da3567ccbeed04;hp=ef9b315f41a4e4cf68558bac6f2231d427d8ea1a;hpb=3e9da86efec76685d7fb374003ed0e2d9bc7c5fb;p=picodrive.git diff --git a/pico/media.c b/pico/media.c index ef9b315..904693f 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; } @@ -212,12 +213,13 @@ enum media_type_e PicoLoadMedia(const char *filename, Stop_CD(); PicoCartUnload(); PicoAHW = 0; + PicoQuirks = 0; if (media_type == PM_CD) { // check for MegaCD image cd_img_type = PicoCdCheck(filename, &cd_region); - if (cd_img_type >= 0 && cd_img_type != CIT_NOT_CD) + if ((int)cd_img_type >= 0 && cd_img_type != CIT_NOT_CD) { // valid CD image, ask frontend for BIOS.. rom_fname = NULL; @@ -285,6 +287,7 @@ 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) { @@ -294,8 +297,12 @@ enum media_type_e PicoLoadMedia(const char *filename, media_type = PM_BAD_CD; goto out; } + Pico.m.ncart_in = 1; } + if (PicoQuirks & PQUIRK_FORCE_6BTN) + PicoSetInputDevice(0, PICO_INPUT_PAD_6BTN); + out: if (rom_data) free(rom_data);