comparison tools/lib64gfx.c @ 1388:4f81528aa4f6

Simplify some image format definitions by using macro to define screen ram blocks.
author Matti Hamalainen <ccr@tnsp.org>
date Sun, 24 Sep 2017 21:45:35 +0300
parents 14d79e4d82cf
children 979f550ead77
comparison
equal deleted inserted replaced
1387:14d79e4d82cf 1388:4f81528aa4f6
533 533
534 534
535 // 535 //
536 // Array with data for supported formats 536 // Array with data for supported formats
537 // 537 //
538 #define DEF_SCREEN_RAM(start, oindex, bindex) { DT_SCREEN_RAM, (start) + (0x400 * (oindex)), (bindex), 0, NULL, NULL }
539 #define DEF_SCREEN_RAMS_8(start, sindex) \
540 DEF_SCREEN_RAM((start), 0, (sindex + 0)), \
541 DEF_SCREEN_RAM((start), 1, (sindex + 1)), \
542 DEF_SCREEN_RAM((start), 2, (sindex + 2)), \
543 DEF_SCREEN_RAM((start), 3, (sindex + 3)), \
544 DEF_SCREEN_RAM((start), 4, (sindex + 4)), \
545 DEF_SCREEN_RAM((start), 5, (sindex + 5)), \
546 DEF_SCREEN_RAM((start), 6, (sindex + 6)), \
547 DEF_SCREEN_RAM((start), 7, (sindex + 7)),
548
549
538 const DMC64ImageFormat dmC64ImageFormats[] = 550 const DMC64ImageFormat dmC64ImageFormats[] =
539 { 551 {
540 { 552 {
541 D64_FMT_MC, "d2p", "DrazPaint 2.0 (packed)", 0x5800, 0, 553 D64_FMT_MC, "d2p", "DrazPaint 2.0 (packed)", 0x5800, 0,
542 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT, 554 C64_SCR_WIDTH / 2, C64_SCR_HEIGHT,
739 NULL, NULL, 751 NULL, NULL,
740 NULL, NULL, NULL, fmtGetPixelBMFLI, 752 NULL, NULL, NULL, fmtGetPixelBMFLI,
741 { 753 {
742 { DT_EXTRA_DATA, 0x0000, 0, 200, NULL, NULL }, 754 { DT_EXTRA_DATA, 0x0000, 0, 200, NULL, NULL },
743 { DT_COLOR_RAM, 0x0100, 0, 0, NULL, NULL }, 755 { DT_COLOR_RAM, 0x0100, 0, 0, NULL, NULL },
744 756 DEF_SCREEN_RAMS_8(0x0500, 0)
745 { DT_SCREEN_RAM, 0x0500, 0, 0, NULL, NULL },
746 { DT_SCREEN_RAM, 0x0900, 1, 0, NULL, NULL },
747 { DT_SCREEN_RAM, 0x0d00, 2, 0, NULL, NULL },
748 { DT_SCREEN_RAM, 0x1100, 3, 0, NULL, NULL },
749
750 { DT_SCREEN_RAM, 0x1500, 4, 0, NULL, NULL },
751 { DT_SCREEN_RAM, 0x1900, 5, 0, NULL, NULL },
752 { DT_SCREEN_RAM, 0x1d00, 6, 0, NULL, NULL },
753 { DT_SCREEN_RAM, 0x2100, 7, 0, NULL, NULL },
754
755 { DT_BITMAP, 0x2500, 0, 0, NULL, NULL }, 757 { DT_BITMAP, 0x2500, 0, 0, NULL, NULL },
756 { DT_LAST, 0, 0, 0, NULL, NULL }, 758 { DT_LAST, 0, 0, 0, NULL, NULL },
757 } 759 }
758 }, 760 },
759 761
763 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 765 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
764 NULL, NULL, 766 NULL, NULL,
765 NULL, NULL, NULL, fmtGetPixelFLIDesigner, 767 NULL, NULL, NULL, fmtGetPixelFLIDesigner,
766 { 768 {
767 { DT_COLOR_RAM, 0x0000, 0, 0, NULL, NULL }, 769 { DT_COLOR_RAM, 0x0000, 0, 0, NULL, NULL },
768 { DT_SCREEN_RAM, 0x0400, 0, 0, NULL, NULL }, 770 DEF_SCREEN_RAMS_8(0x0400, 0)
769 { DT_SCREEN_RAM, 0x0800, 1, 0, NULL, NULL },
770 { DT_SCREEN_RAM, 0x0c00, 2, 0, NULL, NULL },
771 { DT_SCREEN_RAM, 0x1000, 3, 0, NULL, NULL },
772 { DT_SCREEN_RAM, 0x1400, 4, 0, NULL, NULL },
773 { DT_SCREEN_RAM, 0x1800, 5, 0, NULL, NULL },
774 { DT_SCREEN_RAM, 0x1c00, 6, 0, NULL, NULL },
775 { DT_SCREEN_RAM, 0x2000, 7, 0, NULL, NULL },
776 { DT_BITMAP, 0x2400, 0, 0, NULL, NULL }, 771 { DT_BITMAP, 0x2400, 0, 0, NULL, NULL },
777 { DT_LAST, 0, 0, 0, NULL, NULL }, 772 { DT_LAST, 0, 0, 0, NULL, NULL },
778 } 773 }
779 }, 774 },
780 775
806 NULL, NULL, NULL, NULL, 801 NULL, NULL, NULL, NULL,
807 { 802 {
808 { DT_BITMAP, 0x0000, 0, XX2_BSIZE, NULL, NULL }, 803 { DT_BITMAP, 0x0000, 0, XX2_BSIZE, NULL, NULL },
809 { DT_COLOR_RAM, XX2_BSIZE + XX2_SIZE, 0, XX2_SIZE, NULL, NULL }, 804 { DT_COLOR_RAM, XX2_BSIZE + XX2_SIZE, 0, XX2_SIZE, NULL, NULL },
810 { DT_SCREEN_RAM, XX2_BSIZE, 0, XX2_SIZE, NULL, NULL }, 805 { DT_SCREEN_RAM, XX2_BSIZE, 0, XX2_SIZE, NULL, NULL },
811
812 { DT_COLOR_SET, 11, 0, DC_BGCOL, NULL, NULL }, 806 { DT_COLOR_SET, 11, 0, DC_BGCOL, NULL, NULL },
813 { DT_LAST, 0, 0, 0, NULL, NULL }, 807 { DT_LAST, 0, 0, 0, NULL, NULL },
814 } 808 }
815 }, 809 },
816
817 #define FP2_SCREEN_RAM(oindex, bindex) { DT_SCREEN_RAM, FP2_SCREEN_RAM_START + (0x400 * (oindex)), (bindex), 0, NULL, NULL }
818 810
819 { 811 {
820 D64_FMT_MC | D64_FMT_FLI | D64_FMT_ILACE, "fp2", "FunPaint II (unpacked)", 0x3ff0, 33694, 812 D64_FMT_MC | D64_FMT_FLI | D64_FMT_ILACE, "fp2", "FunPaint II (unpacked)", 0x3ff0, 33694,
821 C64_SCR_WIDTH, C64_SCR_HEIGHT, 813 C64_SCR_WIDTH, C64_SCR_HEIGHT,
822 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 814 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
823 fmtProbeFunPaint2Unpacked, fmtDecodeFunPaint2Unpacked, 815 fmtProbeFunPaint2Unpacked, fmtDecodeFunPaint2Unpacked,
824 NULL, NULL, NULL, fmtGetPixelFunPaint2, 816 NULL, NULL, NULL, fmtGetPixelFunPaint2,
825 { 817 {
826 #define FP2_SCREEN_RAM_START 0 818 DEF_SCREEN_RAMS_8(0x0000, 0)
827 FP2_SCREEN_RAM(0, 0),
828 FP2_SCREEN_RAM(1, 1),
829 FP2_SCREEN_RAM(2, 2),
830 FP2_SCREEN_RAM(3, 3),
831 FP2_SCREEN_RAM(4, 4),
832 FP2_SCREEN_RAM(5, 5),
833 FP2_SCREEN_RAM(6, 6),
834 FP2_SCREEN_RAM(7, 7),
835
836 { DT_BITMAP, 0x2000, 0, 0, NULL, NULL }, 819 { DT_BITMAP, 0x2000, 0, 0, NULL, NULL },
837 { DT_EXTRA_DATA, 0x3f40, 0, 100, NULL, NULL }, 820 { DT_EXTRA_DATA, 0x3f40, 0, 100, NULL, NULL },
838 { DT_COLOR_RAM, 0x4000, 0, 0, NULL, NULL }, 821 { DT_COLOR_RAM, 0x4000, 0, 0, NULL, NULL },
839 822 DEF_SCREEN_RAMS_8(0x4000, 8)
840 #undef FP2_SCREEN_RAM_START
841 #define FP2_SCREEN_RAM_START 0x4000
842
843 FP2_SCREEN_RAM(0, 8),
844 FP2_SCREEN_RAM(1, 9),
845 FP2_SCREEN_RAM(2, 10),
846 FP2_SCREEN_RAM(3, 11),
847 FP2_SCREEN_RAM(4, 12),
848 FP2_SCREEN_RAM(5, 13),
849 FP2_SCREEN_RAM(6, 14),
850 FP2_SCREEN_RAM(7, 15),
851
852 { DT_BITMAP, 0x63e8, 1, 0, NULL, NULL }, 823 { DT_BITMAP, 0x63e8, 1, 0, NULL, NULL },
853 { DT_EXTRA_DATA, 0x8328, 1, 100, NULL, NULL }, 824 { DT_EXTRA_DATA, 0x8328, 1, 100, NULL, NULL },
854
855 { DT_LAST, 0, 0, 0, NULL, NULL }, 825 { DT_LAST, 0, 0, 0, NULL, NULL },
856 } 826 }
857 }, 827 },
858 828
859 { 829 {
861 C64_SCR_WIDTH, C64_SCR_HEIGHT, 831 C64_SCR_WIDTH, C64_SCR_HEIGHT,
862 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT, 832 C64_SCR_CH_WIDTH , C64_SCR_CH_HEIGHT,
863 fmtProbeFunPaint2Packed, fmtDecodeFunPaint2Packed, 833 fmtProbeFunPaint2Packed, fmtDecodeFunPaint2Packed,
864 NULL, NULL, NULL, fmtGetPixelFunPaint2, 834 NULL, NULL, NULL, fmtGetPixelFunPaint2,
865 { 835 {
866 836 DEF_SCREEN_RAMS_8(0x0000, 0)
867 #undef FP2_SCREEN_RAM_START
868 #define FP2_SCREEN_RAM_START 0
869 FP2_SCREEN_RAM(0, 0),
870 FP2_SCREEN_RAM(1, 1),
871 FP2_SCREEN_RAM(2, 2),
872 FP2_SCREEN_RAM(3, 3),
873 FP2_SCREEN_RAM(4, 4),
874 FP2_SCREEN_RAM(5, 5),
875 FP2_SCREEN_RAM(6, 6),
876 FP2_SCREEN_RAM(7, 7),
877
878 { DT_BITMAP, 0x2000, 0, 0, NULL, NULL }, 837 { DT_BITMAP, 0x2000, 0, 0, NULL, NULL },
879 { DT_EXTRA_DATA, 0x3f40, 0, 100, NULL, NULL }, 838 { DT_EXTRA_DATA, 0x3f40, 0, 100, NULL, NULL },
880 { DT_COLOR_RAM, 0x4000, 0, 0, NULL, NULL }, 839 { DT_COLOR_RAM, 0x4000, 0, 0, NULL, NULL },
881 840 DEF_SCREEN_RAMS_8(0x4000, 8)
882 #undef FP2_SCREEN_RAM_START
883 #define FP2_SCREEN_RAM_START 0x4000
884
885 FP2_SCREEN_RAM(0, 8),
886 FP2_SCREEN_RAM(1, 9),
887 FP2_SCREEN_RAM(2, 10),
888 FP2_SCREEN_RAM(3, 11),
889 FP2_SCREEN_RAM(4, 12),
890 FP2_SCREEN_RAM(5, 13),
891 FP2_SCREEN_RAM(6, 14),
892 FP2_SCREEN_RAM(7, 15),
893
894 { DT_BITMAP, 0x63e8, 1, 0, NULL, NULL }, 841 { DT_BITMAP, 0x63e8, 1, 0, NULL, NULL },
895 { DT_EXTRA_DATA, 0x8328, 1, 100, NULL, NULL }, 842 { DT_EXTRA_DATA, 0x8328, 1, 100, NULL, NULL },
896
897 { DT_LAST, 0, 0, 0, NULL, NULL }, 843 { DT_LAST, 0, 0, 0, NULL, NULL },
898 } 844 }
899 }, 845 },
900 846
901 }; 847 };