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;
if (media_type == PM_BAD_DETECT)
goto out;
- if ((PicoAHW & PAHW_MCD) && Pico_mcd != NULL)
- Stop_CD();
+ if ((PicoIn.AHW & PAHW_MCD) && Pico_mcd != NULL)
+ cdd_unload();
PicoCartUnload();
- PicoAHW = 0;
- PicoQuirks = 0;
+ PicoIn.AHW = 0;
+ PicoIn.quirks = 0;
if (media_type == PM_CD)
{
goto out;
}
- PicoAHW |= PAHW_MCD;
+ PicoIn.AHW |= PAHW_MCD;
}
else {
media_type = PM_BAD_CD;
}
else if (media_type == PM_MARK3) {
lprintf("detected SMS ROM\n");
- PicoAHW = PAHW_SMS;
+ PicoIn.AHW = PAHW_SMS;
}
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;
}
- ret = PicoCartLoad(rom, &rom_data, &rom_size, (PicoAHW & PAHW_SMS) ? 1 : 0);
+ ret = PicoCartLoad(rom, &rom_data, &rom_size, (PicoIn.AHW & 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;
}
goto out;
}
- if (!(PicoAHW & PAHW_SMS)) {
+ if (!(PicoIn.AHW & PAHW_SMS)) {
unsigned short *d = (unsigned short *)(rom_data + 4);
if ((((d[0] << 16) | d[1]) & 0xffffff) >= (int)rom_size) {
lprintf("bad reset vector\n");
}
// load config for this ROM (do this before insert to get correct region)
- if (!(PicoAHW & PAHW_MCD)) {
+ if (!(PicoIn.AHW & PAHW_MCD)) {
memcpy(media_id_header, rom_data + 0x100, sizeof(media_id_header));
if (do_region_override != NULL)
do_region_override(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)
+ if (PicoIn.quirks & PQUIRK_FORCE_6BTN)
PicoSetInputDevice(0, PICO_INPUT_PAD_6BTN);
out: