Mercurial > hg > dmlib
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 }; |