Fix the lprintf method (libretro side)
[picodrive.git] / pico / media.c
index c03846d..b7fa7f5 100644 (file)
@@ -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)