comparison tools/lib64fmts.c @ 1545:3b613fcbf3ff

Improve how format read/write capabilities are marked and shown.
author Matti Hamalainen <ccr@tnsp.org>
date Sat, 12 May 2018 21:01:46 +0300
parents 69fa95707e65
children fa4fa9a6e78f
comparison
equal deleted inserted replaced
1544:48823642c4fb 1545:3b613fcbf3ff
505 505
506 506
507 const DMC64ImageFormat dmC64ImageFormats[] = 507 const DMC64ImageFormat dmC64ImageFormats[] =
508 { 508 {
509 { 509 {
510 D64_FMT_MC, "d2p", "DrazPaint 1.4/2.0 (packed)", 0x5800, 0, 510 D64_FMT_MC, "d2p", "DrazPaint 1.4/2.0 (packed)", 0x5800, 0, DM_FMT_RDWR,
511 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT, 511 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT,
512 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 512 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
513 fmtProbeDrazPaint20Packed, 513 fmtProbeDrazPaint20Packed,
514 fmtDecodeDrazPaintPacked, fmtEncodeDrazPaintPacked, 514 fmtDecodeDrazPaintPacked, fmtEncodeDrazPaintPacked,
515 NULL, NULL, 515 NULL, NULL,
522 { DT_LAST, 0, 0, 0, NULL, NULL }, 522 { DT_LAST, 0, 0, 0, NULL, NULL },
523 } 523 }
524 }, 524 },
525 525
526 { 526 {
527 D64_FMT_MC, "drp", "DrazPaint (unpacked)", 0x5800, 10051, 527 D64_FMT_MC, "drp", "DrazPaint (unpacked)", 0x5800, 10051, DM_FMT_RDWR,
528 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT, 528 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT,
529 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 529 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
530 NULL, 530 NULL,
531 NULL, NULL, 531 NULL, NULL,
532 NULL, NULL, 532 NULL, NULL,
539 { DT_LAST, 0, 0, 0, NULL, NULL }, 539 { DT_LAST, 0, 0, 0, NULL, NULL },
540 } 540 }
541 }, 541 },
542 542
543 { 543 {
544 D64_FMT_MC | D64_FMT_ILACE, "dlp", "DrazLace 1.0 (packed)", 0x5800, 0, 544 D64_FMT_MC | D64_FMT_ILACE, "dlp", "DrazLace 1.0 (packed)", 0x5800, 0, DM_FMT_RDWR,
545 C64_SCR_WIDTH , C64_SCR_HEIGHT, 545 C64_SCR_WIDTH , C64_SCR_HEIGHT,
546 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, 546 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT,
547 fmtProbeDrazLace10Packed, 547 fmtProbeDrazLace10Packed,
548 fmtDecodeDrazPaintPacked, fmtEncodeDrazPaintPacked, 548 fmtDecodeDrazPaintPacked, fmtEncodeDrazPaintPacked,
549 NULL, NULL, 549 NULL, NULL,
559 { DT_LAST, 0, 0, 0, NULL, NULL }, 559 { DT_LAST, 0, 0, 0, NULL, NULL },
560 } 560 }
561 }, 561 },
562 562
563 { 563 {
564 D64_FMT_MC | D64_FMT_ILACE, "drl", "DrazLace 1.0 (unpacked)", 0x5800, 18242, 564 D64_FMT_MC | D64_FMT_ILACE, "drl", "DrazLace 1.0 (unpacked)", 0x5800, 18242, DM_FMT_RDWR,
565 C64_SCR_WIDTH , C64_SCR_HEIGHT, 565 C64_SCR_WIDTH , C64_SCR_HEIGHT,
566 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, 566 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT,
567 NULL, 567 NULL,
568 NULL, NULL, 568 NULL, NULL,
569 NULL, NULL, 569 NULL, NULL,
579 { DT_LAST, 0, 0, 0, NULL, NULL }, 579 { DT_LAST, 0, 0, 0, NULL, NULL },
580 } 580 }
581 }, 581 },
582 582
583 { 583 {
584 D64_FMT_MC | D64_FMT_ILACE, "mci", "Truepaint (unpacked)", 0x9c00, 19434, 584 D64_FMT_MC | D64_FMT_ILACE, "mci", "Truepaint (unpacked)", 0x9c00, 19434, DM_FMT_RD,
585 C64_SCR_WIDTH , C64_SCR_HEIGHT, 585 C64_SCR_WIDTH , C64_SCR_HEIGHT,
586 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, 586 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT,
587 NULL, 587 NULL,
588 NULL, NULL, 588 NULL, NULL,
589 NULL, NULL, 589 NULL, NULL,
599 { DT_LAST, 0, 0, 0, NULL, NULL }, 599 { DT_LAST, 0, 0, 0, NULL, NULL },
600 } 600 }
601 }, 601 },
602 602
603 { 603 {
604 D64_FMT_MC, "kla", "Koala Paint (unpacked)", 0x6000, 10003, 604 D64_FMT_MC, "kla", "Koala Paint (unpacked)", 0x6000, 10003, DM_FMT_RDWR,
605 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT, 605 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT,
606 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 606 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
607 NULL, 607 NULL,
608 NULL, NULL, 608 NULL, NULL,
609 NULL, NULL, 609 NULL, NULL,
616 { DT_LAST, 0, 0, 0, NULL, NULL }, 616 { DT_LAST, 0, 0, 0, NULL, NULL },
617 } 617 }
618 }, 618 },
619 619
620 { 620 {
621 D64_FMT_MC, "ocp", "Advanced Art Studio (unpacked)", 0x2000, 10018, 621 D64_FMT_MC, "aas", "Advanced Art Studio (unpacked)", 0x2000, 10018, DM_FMT_RDWR,
622 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT, 622 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT,
623 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 623 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
624 NULL, 624 NULL,
625 NULL, NULL, 625 NULL, NULL,
626 NULL, NULL, 626 NULL, NULL,
633 { DT_LAST, 0, 0, 0, NULL, NULL }, 633 { DT_LAST, 0, 0, 0, NULL, NULL },
634 } 634 }
635 }, 635 },
636 636
637 { 637 {
638 D64_FMT_MC, "ami", "Amica Paint (packed)", 0x4000, 0, 638 D64_FMT_MC, "ami", "Amica Paint (packed)", 0x4000, 0, DM_FMT_RDWR,
639 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT, 639 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT,
640 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 640 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
641 fmtProbeAmicaPaintPacked, 641 fmtProbeAmicaPaintPacked,
642 fmtDecodeAmicaPaintPacked, fmtEncodeAmicaPaintPacked, 642 fmtDecodeAmicaPaintPacked, fmtEncodeAmicaPaintPacked,
643 NULL, NULL, 643 NULL, NULL,
650 { DT_LAST, 0, 0, 0, NULL, NULL }, 650 { DT_LAST, 0, 0, 0, NULL, NULL },
651 } 651 }
652 }, 652 },
653 653
654 { 654 {
655 D64_FMT_MC, "rpm", "Run Paint (unpacked)", 0x6000, 10006, 655 D64_FMT_MC, "rpm", "Run Paint (unpacked)", 0x6000, 10006, DM_FMT_RDWR,
656 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT, 656 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT,
657 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 657 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
658 NULL, 658 NULL,
659 NULL, NULL, 659 NULL, NULL,
660 NULL, NULL, 660 NULL, NULL,
667 { DT_LAST, 0, 0, 0, NULL, NULL }, 667 { DT_LAST, 0, 0, 0, NULL, NULL },
668 } 668 }
669 }, 669 },
670 670
671 { 671 {
672 D64_FMT_HIRES, "art", "Art Studio (unpacked)", 0x2000, 9009, 672 D64_FMT_HIRES, "art", "Art Studio (unpacked)", 0x2000, 9009, DM_FMT_RD,
673 C64_SCR_WIDTH , C64_SCR_HEIGHT, 673 C64_SCR_WIDTH , C64_SCR_HEIGHT,
674 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 674 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
675 NULL, 675 NULL,
676 NULL, NULL, 676 NULL, NULL,
677 NULL, NULL, 677 NULL, NULL,
682 { DT_LAST, 0, 0, 0, NULL, NULL }, 682 { DT_LAST, 0, 0, 0, NULL, NULL },
683 } 683 }
684 }, 684 },
685 685
686 { 686 {
687 D64_FMT_HIRES, "iph", "Interpaint (unpacked)", 0x4000, 9002, 687 D64_FMT_HIRES, "iph", "Interpaint (unpacked)", 0x4000, 9002, DM_FMT_RD,
688 C64_SCR_WIDTH , C64_SCR_HEIGHT, 688 C64_SCR_WIDTH , C64_SCR_HEIGHT,
689 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, 689 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT,
690 NULL, 690 NULL,
691 NULL, NULL, 691 NULL, NULL,
692 NULL, NULL, 692 NULL, NULL,
697 { DT_LAST, 0, 0, 0, NULL, NULL }, 697 { DT_LAST, 0, 0, 0, NULL, NULL },
698 } 698 }
699 }, 699 },
700 700
701 { 701 {
702 D64_FMT_MC, "ipc", "Interpaint MC (unpacked)", 0x4000, 10003, 702 D64_FMT_MC, "ipc", "Interpaint MC (unpacked)", 0x4000, 10003, DM_FMT_RDWR,
703 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT, 703 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT,
704 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, 704 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT,
705 NULL, 705 NULL,
706 NULL, NULL, 706 NULL, NULL,
707 NULL, NULL, 707 NULL, NULL,
714 { DT_LAST, 0, 0, 0, NULL, NULL }, 714 { DT_LAST, 0, 0, 0, NULL, NULL },
715 } 715 }
716 }, 716 },
717 717
718 { 718 {
719 D64_FMT_HIRES, "dd", "Doodle (unpacked)", 0x1c00, 9218, 719 D64_FMT_HIRES, "dd", "Doodle (unpacked)", 0x1c00, 9218, DM_FMT_RDWR,
720 C64_SCR_WIDTH , C64_SCR_HEIGHT, 720 C64_SCR_WIDTH , C64_SCR_HEIGHT,
721 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, 721 C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT,
722 NULL, 722 NULL,
723 NULL, NULL, 723 NULL, NULL,
724 NULL, NULL, 724 NULL, NULL,
729 { DT_LAST, 0, 0, 0, NULL, NULL }, 729 { DT_LAST, 0, 0, 0, NULL, NULL },
730 } 730 }
731 }, 731 },
732 732
733 { 733 {
734 D64_FMT_MC | D64_FMT_FLI, "bml", "Blackmail FLI (unpacked)", 0x3b00, 17474, 734 D64_FMT_MC | D64_FMT_FLI, "bml", "Blackmail FLI (unpacked)", 0x3b00, 17474, DM_FMT_RDWR,
735 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT, 735 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT,
736 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 736 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
737 NULL, 737 NULL,
738 NULL, NULL, 738 NULL, NULL,
739 NULL, NULL, 739 NULL, NULL,
746 { DT_LAST, 0, 0, 0, NULL, NULL }, 746 { DT_LAST, 0, 0, 0, NULL, NULL },
747 } 747 }
748 }, 748 },
749 749
750 { 750 {
751 D64_FMT_MC | D64_FMT_FLI, "fli", "FLI Designer (unpacked)", 0, 17409, 751 D64_FMT_MC | D64_FMT_FLI, "fli", "FLI Designer (unpacked)", 0, 17409, DM_FMT_RD,
752 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT, 752 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT,
753 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 753 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
754 fmtProbeFLIDesigner, 754 fmtProbeFLIDesigner,
755 NULL, NULL, 755 NULL, NULL,
756 NULL, NULL, 756 NULL, NULL,
762 { DT_LAST, 0, 0, 0, NULL, NULL }, 762 { DT_LAST, 0, 0, 0, NULL, NULL },
763 } 763 }
764 }, 764 },
765 765
766 { 766 {
767 D64_FMT_MC, "xx1", "Unknown $2000 format (unpacked)", 0x2000, 10242, 767 D64_FMT_MC, "xx1", "Unknown $2000 format (unpacked)", 0x2000, 10242, DM_FMT_RD,
768 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT, 768 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT,
769 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 769 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
770 NULL, 770 NULL,
771 NULL, NULL, 771 NULL, NULL,
772 NULL, NULL, 772 NULL, NULL,
784 #define XX2_HEIGHT_CH 10 784 #define XX2_HEIGHT_CH 10
785 #define XX2_SIZE (XX2_WIDTH_CH * XX2_HEIGHT_CH) 785 #define XX2_SIZE (XX2_WIDTH_CH * XX2_HEIGHT_CH)
786 #define XX2_BSIZE (XX2_SIZE * 8) 786 #define XX2_BSIZE (XX2_SIZE * 8)
787 787
788 { 788 {
789 D64_FMT_MC, "xx2", "Unknown $2000 format (unpacked)", 0x2000, 0, 789 D64_FMT_MC, "xx2", "Unknown $2000 format (unpacked)", 0x2000, 0, DM_FMT_RD,
790 XX2_WIDTH_CH * 4, XX2_HEIGHT_CH * 8, 790 XX2_WIDTH_CH * 4, XX2_HEIGHT_CH * 8,
791 XX2_WIDTH_CH , XX2_HEIGHT_CH, 791 XX2_WIDTH_CH , XX2_HEIGHT_CH,
792 fmtProbeFormatXX2, 792 fmtProbeFormatXX2,
793 fmtDecodeFormatXX2, NULL, 793 fmtDecodeFormatXX2, NULL,
794 NULL, NULL, 794 NULL, NULL,
801 { DT_LAST, 0, 0, 0, NULL, NULL }, 801 { DT_LAST, 0, 0, 0, NULL, NULL },
802 } 802 }
803 }, 803 },
804 804
805 { 805 {
806 D64_FMT_MC | D64_FMT_FLI | D64_FMT_ILACE, "fp2", "FunPaint II (unpacked)", 0x3ff0, 33694, 806 D64_FMT_MC | D64_FMT_FLI | D64_FMT_ILACE,
807 "fp2", "FunPaint II (unpacked)", 0x3ff0, 33694, DM_FMT_RD,
807 C64_SCR_WIDTH, C64_SCR_HEIGHT, 808 C64_SCR_WIDTH, C64_SCR_HEIGHT,
808 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 809 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
809 fmtProbeFunPaint2Unpacked, 810 fmtProbeFunPaint2Unpacked,
810 fmtDecodeFunPaint2Unpacked, fmtEncodeFunPaint2Unpacked, 811 fmtDecodeFunPaint2Unpacked, fmtEncodeFunPaint2Unpacked,
811 NULL, NULL, 812 NULL, NULL,
821 { DT_LAST, 0, 0, 0, NULL, NULL }, 822 { DT_LAST, 0, 0, 0, NULL, NULL },
822 } 823 }
823 }, 824 },
824 825
825 { 826 {
826 D64_FMT_MC | D64_FMT_FLI | D64_FMT_ILACE, "fp2p", "FunPaint II (packed)", 0x3ff0, 0, 827 D64_FMT_MC | D64_FMT_FLI | D64_FMT_ILACE,
828 "fp2p", "FunPaint II (packed)", 0x3ff0, 0, DM_FMT_RD,
827 C64_SCR_WIDTH, C64_SCR_HEIGHT, 829 C64_SCR_WIDTH, C64_SCR_HEIGHT,
828 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 830 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
829 fmtProbeFunPaint2Packed, 831 fmtProbeFunPaint2Packed,
830 fmtDecodeFunPaint2Packed, fmtEncodeFunPaint2Packed, 832 fmtDecodeFunPaint2Packed, fmtEncodeFunPaint2Packed,
831 NULL, NULL, 833 NULL, NULL,
841 { DT_LAST, 0, 0, 0, NULL, NULL }, 843 { DT_LAST, 0, 0, 0, NULL, NULL },
842 } 844 }
843 }, 845 },
844 846
845 { 847 {
846 D64_FMT_MC | D64_FMT_FLI | D64_FMT_ILACE, "gun", "GunPaint (unpacked)", 0x4000, 0, 848 D64_FMT_MC | D64_FMT_FLI | D64_FMT_ILACE,
849 "gun", "GunPaint (unpacked)", 0x4000, 0, DM_FMT_RD,
847 C64_SCR_WIDTH, C64_SCR_HEIGHT, 850 C64_SCR_WIDTH, C64_SCR_HEIGHT,
848 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 851 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
849 fmtProbeGunPaint, 852 fmtProbeGunPaint,
850 NULL, NULL, 853 NULL, NULL,
851 NULL, NULL, 854 NULL, NULL,
861 { DT_LAST, 0, 0, 0, NULL, NULL }, 864 { DT_LAST, 0, 0, 0, NULL, NULL },
862 } 865 }
863 }, 866 },
864 867
865 { 868 {
866 D64_FMT_HIRES | D64_FMT_FLI, "chi", "Crest Hires FLI Designer (unpacked)", 0x4000, 16386, 869 D64_FMT_HIRES | D64_FMT_FLI,
870 "chi", "Crest Hires FLI Designer (unpacked)", 0x4000, 16386, DM_FMT_RD,
867 C64_SCR_WIDTH, 14 * 8, 871 C64_SCR_WIDTH, 14 * 8,
868 C64_SCR_CH_WIDTH , 14, 872 C64_SCR_CH_WIDTH , 14,
869 NULL, 873 NULL,
870 NULL, NULL, 874 NULL, NULL,
871 NULL, NULL, 875 NULL, NULL,