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;
}
{
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;
goto out;
if ((PicoAHW & PAHW_MCD) && Pico_mcd != NULL)
- Stop_CD();
+ cdd_unload();
PicoCartUnload();
PicoAHW = 0;
+ PicoQuirks = 0;
if (media_type == PM_CD)
{
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)
+ PicoSetInputDevice(0, PICO_INPUT_PAD_6BTN);
+
out:
if (rom_data)
free(rom_data);