Load_C64() support for Paint Magic files
This commit is contained in:
parent
4e4414b912
commit
c251a1ca22
@ -89,8 +89,8 @@ void Load_Recoil_Image(T_IO_Context *);
|
|||||||
const T_Format File_formats[] = {
|
const T_Format File_formats[] = {
|
||||||
{FORMAT_ALL_IMAGES, "(all)", NULL, NULL, NULL, 0, 0, 0, "",
|
{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;"
|
"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;ipt;hpc;ocp;koa;koala;fli;"
|
"c64;p64;a64;pi;rp;aas;art;dd;iph;ipt;hpc;ocp;koa;koala;fli;bml;cdu;prg;pmg;"
|
||||||
"bml;cdu;prg;tga;pnm;xpm;xcf;jpg;jpeg;tif;tiff;ico;ic2;cur;cm5;pph;info;flc;bin;map"},
|
"tga;pnm;xpm;xcf;jpg;jpeg;tif;tiff;ico;ic2;cur;cm5;pph;info;flc;bin;map"},
|
||||||
{FORMAT_ALL_PALETTES, "(pal)", NULL, NULL, NULL, 1, 0, 0, "", "kcf;pal;gpl"},
|
{FORMAT_ALL_PALETTES, "(pal)", NULL, NULL, NULL, 1, 0, 0, "", "kcf;pal;gpl"},
|
||||||
{FORMAT_ALL_FILES, "(*.*)", NULL, NULL, NULL, 0, 0, 0, "", "*"},
|
{FORMAT_ALL_FILES, "(*.*)", NULL, NULL, NULL, 0, 0, 0, "", "*"},
|
||||||
{FORMAT_GIF, " gif", Test_GIF, Load_GIF, Save_GIF, 0, 1, 1, "gif", "gif"},
|
{FORMAT_GIF, " gif", Test_GIF, Load_GIF, Save_GIF, 0, 1, 1, "gif", "gif"},
|
||||||
@ -112,7 +112,8 @@ const T_Format File_formats[] = {
|
|||||||
{FORMAT_KCF, " kcf", Test_KCF, Load_KCF, Save_KCF, 1, 0, 0, "kcf", "kcf"},
|
{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_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_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;aas;art;dd;iph;ipt;hpc;ocp;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;ipt;hpc;ocp;koa;koala;fli;bml;cdu;prg;pmg"},
|
||||||
{FORMAT_SCR, " cpc", NULL, NULL, Save_SCR, 0, 0, 0, "cpc", "cpc;scr"},
|
{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_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"},
|
{FORMAT_PPH, " pph", Test_PPH, Load_PPH, Save_PPH, 0, 0, 1, "pph", "pph"},
|
||||||
|
|||||||
@ -2308,6 +2308,8 @@ void Test_C64(T_IO_Context * context, FILE * file)
|
|||||||
// $2000 => Art Studio
|
// $2000 => Art Studio
|
||||||
case 9218:
|
case 9218:
|
||||||
// $5C00 => Doodle
|
// $5C00 => Doodle
|
||||||
|
case 9332:
|
||||||
|
// $3F8E => Paint Magic (.pmg) 'JEDI' at offset $0010 and $2010
|
||||||
case 10003: // multicolor + loadaddr
|
case 10003: // multicolor + loadaddr
|
||||||
// $4000 => InterPaint multicolor
|
// $4000 => InterPaint multicolor
|
||||||
// $6000 => Koala Painter
|
// $6000 => Koala Painter
|
||||||
@ -2687,6 +2689,7 @@ void Load_C64(T_IO_Context * context)
|
|||||||
|
|
||||||
byte *file_buffer;
|
byte *file_buffer;
|
||||||
byte *bitmap, *screen_ram, *color_ram=NULL, *background=NULL; // Only pointers to existing data
|
byte *bitmap, *screen_ram, *color_ram=NULL, *background=NULL; // Only pointers to existing data
|
||||||
|
byte *temp_buffer = NULL;
|
||||||
word width, height=200;
|
word width, height=200;
|
||||||
|
|
||||||
file = Open_file_read(context);
|
file = Open_file_read(context);
|
||||||
@ -2767,6 +2770,20 @@ void Load_C64(T_IO_Context * context)
|
|||||||
bitmap=file_buffer+1024+2; // length: 8000
|
bitmap=file_buffer+1024+2; // length: 8000
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 9332: // Paint Magic .pmg
|
||||||
|
hasLoadAddr=1;
|
||||||
|
loadFormat=F_multi;
|
||||||
|
// Display routine between offset $0002 and $0073 (114 bytes)
|
||||||
|
// duplicated between offset $2002 and $2073
|
||||||
|
bitmap=file_buffer+114+2; // $0074
|
||||||
|
background=file_buffer+8000+114+2;// $1FB4
|
||||||
|
temp_buffer=malloc(1000);
|
||||||
|
memset(temp_buffer, file_buffer[3+8000+114+2], 1000); // color RAM Byte
|
||||||
|
color_ram=temp_buffer;
|
||||||
|
//border byte = file_buffer[4+8000+114+2];
|
||||||
|
screen_ram=file_buffer+8192+114+2; // $2074
|
||||||
|
break;
|
||||||
|
|
||||||
case 10001: // multicolor
|
case 10001: // multicolor
|
||||||
hasLoadAddr=0;
|
hasLoadAddr=0;
|
||||||
loadFormat=F_multi;
|
loadFormat=F_multi;
|
||||||
@ -2967,6 +2984,8 @@ void Load_C64(T_IO_Context * context)
|
|||||||
}
|
}
|
||||||
|
|
||||||
free(file_buffer);
|
free(file_buffer);
|
||||||
|
if (temp_buffer)
|
||||||
|
free(temp_buffer);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
File_error = 1;
|
File_error = 1;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user