diff --git a/src/loadsave.c b/src/loadsave.c index d63c2525..1eb8d96d 100644 --- a/src/loadsave.c +++ b/src/loadsave.c @@ -87,7 +87,9 @@ void Load_Recoil_Image(T_IO_Context *); // ENUM Name TestFunc LoadFunc SaveFunc PalOnly Comment Layers Ext Exts const T_Format File_formats[] = { - {FORMAT_ALL_IMAGES, "(all)", NULL, NULL, NULL, 0, 0, 0, "", "gif;png;bmp;2bp;pcx;pkm;iff;lbm;ilbm;sham;ham;ham6;ham8;acbm;pic;anim;img;sci;scq;scf;scn;sco;pi1;pc1;cel;neo;c64;p64;a64;pi;rp;koa;koala;fli;bml;cdu;prg;tga;pnm;xpm;xcf;jpg;jpeg;tif;tiff;ico;ic2;cur;cm5;pph;info;flc"}, + {FORMAT_ALL_IMAGES, "(all)", NULL, NULL, NULL, 0, 0, 0, "", + "gif;png;bmp;2bp;pcx;pkm;iff;lbm;ilbm;sham;ham;ham6;ham8;acbm;pic;anim;img;sci;scq;scf;scn;sco;pi1;pc1;cel;neo;" + "c64;p64;a64;pi;rp;aas;art;dd;iph;hpc;koa;koala;fli;bml;cdu;prg;tga;pnm;xpm;xcf;jpg;jpeg;tif;tiff;ico;ic2;cur;cm5;pph;info;flc"}, {FORMAT_ALL_PALETTES, "(pal)", NULL, NULL, NULL, 1, 0, 0, "", "kcf;pal;gpl"}, {FORMAT_ALL_FILES, "(*.*)", NULL, NULL, NULL, 0, 0, 0, "", "*"}, {FORMAT_GIF, " gif", Test_GIF, Load_GIF, Save_GIF, 0, 1, 1, "gif", "gif"}, @@ -109,7 +111,7 @@ const T_Format File_formats[] = { {FORMAT_KCF, " kcf", Test_KCF, Load_KCF, Save_KCF, 1, 0, 0, "kcf", "kcf"}, {FORMAT_PAL, " pal", Test_PAL, Load_PAL, Save_PAL, 1, 0, 0, "pal", "pal"}, {FORMAT_GPL, " gpl", Test_GPL, Load_GPL, Save_GPL, 1, 0, 0, "gpl", "gpl"}, - {FORMAT_C64, " c64", Test_C64, Load_C64, Save_C64, 0, 1, 0, "c64", "c64;p64;a64;pi;rp;koa;koala;fli;bml;cdu;prg"}, + {FORMAT_C64, " c64", Test_C64, Load_C64, Save_C64, 0, 1, 0, "c64", "c64;p64;a64;pi;rp;aas;art;dd;iph;hpc;koa;koala;fli;bml;cdu;prg"}, {FORMAT_SCR, " cpc", NULL, NULL, Save_SCR, 0, 0, 0, "cpc", "cpc;scr"}, {FORMAT_CM5, " cm5", Test_CM5, Load_CM5, Save_CM5, 0, 0, 1, "cm5", "cm5"}, {FORMAT_PPH, " pph", Test_PPH, Load_PPH, Save_PPH, 0, 0, 1, "pph", "pph"}, diff --git a/src/miscfileformats.c b/src/miscfileformats.c index 163d8281..bc15d595 100644 --- a/src/miscfileformats.c +++ b/src/miscfileformats.c @@ -2254,6 +2254,12 @@ void Test_C64(T_IO_Context * context, FILE * file) // case 1002: // (screen or color) + loadaddr case 8002: // raw bitmap with loadaddr case 9002: // bitmap + ScreenRAM + loadaddr + // $4000 => InterPaint Hi-Res (.iph) + case 9003: // bitmap + ScreenRAM + loadaddr (+ border ?) + case 9009: // bitmap + ScreenRAM + loadaddr + // $2000 => Art Studio + case 9218: + // $5C00 => Doodle case 10003: // multicolor + loadaddr // $6000 => Koala Painter case 10050: @@ -2528,6 +2534,9 @@ void Load_C64(T_IO_Context * context) case 8002: // raw bitmap with loadaddr case 9000: // bitmap + ScreenRAM case 9002: // bitmap + ScreenRAM + loadaddr + case 9003: // bitmap + ScreenRAM + loadaddr (+border ?) + case 9009: // bitmap + ScreenRAM + loadaddr + case 9218: // Doodle case 10001: // multicolor case 10003: // multicolor + loadaddr case 10050: // Picasso64 + loadaddr @@ -2570,6 +2579,7 @@ void Load_C64(T_IO_Context * context) case 8000: // raw bitmap hasLoadAddr=0; loadFormat=F_bitmap; + context->Ratio = PIXEL_SIMPLE; bitmap=file_buffer+0; // length: 8000 screen_ram=dummy_screen; break; @@ -2577,6 +2587,7 @@ void Load_C64(T_IO_Context * context) case 8002: // raw bitmap with loadaddr hasLoadAddr=1; loadFormat=F_bitmap; + context->Ratio = PIXEL_SIMPLE; bitmap=file_buffer+2; // length: 8000 screen_ram=dummy_screen; break; @@ -2584,17 +2595,36 @@ void Load_C64(T_IO_Context * context) case 9000: // bitmap + ScreenRAM hasLoadAddr=0; loadFormat=F_hires; + context->Ratio = PIXEL_SIMPLE; bitmap=file_buffer+0; // length: 8000 screen_ram=file_buffer+8000; // length: 1000 break; + case 9003: // bitmap + ScreenRAM + loadaddr (+ border ?) case 9002: // bitmap + ScreenRAM + loadaddr hasLoadAddr=1; loadFormat=F_hires; + context->Ratio = PIXEL_SIMPLE; bitmap=file_buffer+2; // length: 8000 screen_ram=file_buffer+8002; // length: 1000 break; + case 9009: // Art Studio (.aas) + hasLoadAddr=1; + loadFormat=F_hires; + context->Ratio = PIXEL_SIMPLE; + bitmap=file_buffer+2; // length: 8000 + screen_ram=file_buffer+8002; // length: 1000 + break; + + case 9218: // Doodle (.dd) + hasLoadAddr=1; + loadFormat=F_hires; + context->Ratio = PIXEL_SIMPLE; + screen_ram=file_buffer+2; // length: 1000 (+24 padding) + bitmap=file_buffer+1024+2; // length: 8000 + break; + case 10001: // multicolor hasLoadAddr=0; loadFormat=F_multi;