comparison tools/lib64fmts.c @ 2238:5db6e0b63b35

Change again how the interlace type information is stored. Now store it in DMC64Image::extraInfo[] where it actually makes sense. Also add index for FLI type.
author Matti Hamalainen <ccr@tnsp.org>
date Sat, 15 Jun 2019 06:43:36 +0300
parents a36c81c3df85
children 48b48251610a
comparison
equal deleted inserted replaced
2237:26f1bae40fb6 2238:5db6e0b63b35
393 static int fmtDrazLaceGetLaceType(const DMC64EncDecOp *op, DMC64Image *img, 393 static int fmtDrazLaceGetLaceType(const DMC64EncDecOp *op, DMC64Image *img,
394 const DMGrowBuf *buf, const DMC64ImageCommonFormat *fmt) 394 const DMGrowBuf *buf, const DMC64ImageCommonFormat *fmt)
395 { 395 {
396 (void) fmt; 396 (void) fmt;
397 397
398 img->laceType = buf->data[op->offs] ? D64_ILACE_RES : D64_ILACE_COLOR; 398 img->extraInfo[D64_EI_ILACE_TYPE] = buf->data[op->offs] ? D64_ILACE_RES : D64_ILACE_COLOR;
399 return DMERR_OK; 399 return DMERR_OK;
400 } 400 }
401 401
402 402
403 static int fmtDrazLaceSetLaceType(const DMC64EncDecOp *op, DMGrowBuf *buf, 403 static int fmtDrazLaceSetLaceType(const DMC64EncDecOp *op, DMGrowBuf *buf,
404 const DMC64Image *img, const DMC64ImageCommonFormat *fmt) 404 const DMC64Image *img, const DMC64ImageCommonFormat *fmt)
405 { 405 {
406 (void) fmt; 406 (void) fmt;
407 buf->data[op->offs] = (img->laceType == D64_ILACE_RES) ? 1 : 0; 407 buf->data[op->offs] = (img->extraInfo[D64_EI_ILACE_TYPE] == D64_ILACE_RES) ? 1 : 0;
408 return DMERR_OK; 408 return DMERR_OK;
409 } 409 }
410 410
411 411
412 static int fmtGetPixelDrazLace(Uint8 *col, 412 static int fmtGetPixelDrazLace(Uint8 *col,
1658 { 1658 {
1659 { DO_COPY , DS_EXTRA_DATA , 0x0000, 0, 200, 0, NULL, NULL, DF_NORMAL }, 1659 { DO_COPY , DS_EXTRA_DATA , 0x0000, 0, 200, 0, NULL, NULL, DF_NORMAL },
1660 { DO_COPY , DS_COLOR_RAM , 0x0100, 0, 0, 0, NULL, NULL, DF_NORMAL }, 1660 { DO_COPY , DS_COLOR_RAM , 0x0100, 0, 0, 0, NULL, NULL, DF_NORMAL },
1661 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM, 0x0500, 0, 0x400, 0, DF_NORMAL), 1661 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM, 0x0500, 0, 0x400, 0, DF_NORMAL),
1662 { DO_COPY , DS_BITMAP_RAM , 0x2500, 0, 0, 0, NULL, NULL, DF_NORMAL }, 1662 { DO_COPY , DS_BITMAP_RAM , 0x2500, 0, 0, 0, NULL, NULL, DF_NORMAL },
1663 { DO_SET_OP , DS_EXTRA_INFO , D64_FLI_8, 0, 0, D64_EI_FLI_TYPE, NULL, NULL, DF_DECODE },
1663 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL, DF_NORMAL }, 1664 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL, DF_NORMAL },
1664 } 1665 }
1665 }, 1666 },
1666 1667
1667 { // #2: Art Studio etc. Hires 1668 { // #2: Art Studio etc. Hires
1691 { DO_COPY , DS_EXTRA_DATA , 0x3f48, 0, 100 , 0, NULL, NULL, DF_NORMAL }, 1692 { DO_COPY , DS_EXTRA_DATA , 0x3f48, 0, 100 , 0, NULL, NULL, DF_NORMAL },
1692 { DO_COPY , DS_COLOR_RAM , 0x4000, 0, 0 , 0, NULL, NULL, DF_NORMAL }, 1693 { DO_COPY , DS_COLOR_RAM , 0x4000, 0, 0 , 0, NULL, NULL, DF_NORMAL },
1693 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM , 0x43e8, 8, 0x400, 0, DF_NORMAL), 1694 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM , 0x43e8, 8, 0x400, 0, DF_NORMAL),
1694 { DO_COPY , DS_BITMAP_RAM , 0x63e8, 1, 0 , 0, NULL, NULL, DF_NORMAL }, 1695 { DO_COPY , DS_BITMAP_RAM , 0x63e8, 1, 0 , 0, NULL, NULL, DF_NORMAL },
1695 { DO_COPY , DS_EXTRA_DATA , 0x8328, 0, 100 , 100, NULL, NULL, DF_NORMAL }, 1696 { DO_COPY , DS_EXTRA_DATA , 0x8328, 0, 100 , 100, NULL, NULL, DF_NORMAL },
1696 { DO_SET_OP , DS_ILACE_TYPE , D64_ILACE_RES, 0 , 0 , 0, NULL, NULL, DF_DECODE }, 1697 { DO_SET_OP , DS_EXTRA_INFO , D64_ILACE_RES, 0 , 0 , D64_EI_ILACE_TYPE, NULL, NULL, DF_DECODE },
1698 { DO_SET_OP , DS_EXTRA_INFO , D64_FLI_8, 0, 0, D64_EI_FLI_TYPE, NULL, NULL, DF_DECODE },
1697 { DO_LAST , 0 , 0 , 0, 0 , 0, NULL, NULL, DF_NORMAL }, 1699 { DO_LAST , 0 , 0 , 0, 0 , 0, NULL, NULL, DF_NORMAL },
1698 } 1700 }
1699 }, 1701 },
1700 1702
1701 { // #4: DrazPaint 1.x & 2 1703 { // #4: DrazPaint 1.x & 2
1744 { DO_SET_MEM_LO , DS_BGCOL , 0x03e8, 0, 0, 0, NULL, NULL, DF_NORMAL }, 1746 { DO_SET_MEM_LO , DS_BGCOL , 0x03e8, 0, 0, 0, NULL, NULL, DF_NORMAL },
1745 { DO_COPY , DS_BITMAP_RAM , 0x0400, 0, 0, 0, NULL, NULL, DF_NORMAL }, 1747 { DO_COPY , DS_BITMAP_RAM , 0x0400, 0, 0, 0, NULL, NULL, DF_NORMAL },
1746 { DO_COPY , DS_BITMAP_RAM , 0x2400, 1, 0, 0, NULL, NULL, DF_NORMAL }, 1748 { DO_COPY , DS_BITMAP_RAM , 0x2400, 1, 0, 0, NULL, NULL, DF_NORMAL },
1747 { DO_COPY , DS_SCREEN_RAM , 0x4400, 1, 0, 0, NULL, NULL, DF_NORMAL }, 1749 { DO_COPY , DS_SCREEN_RAM , 0x4400, 1, 0, 0, NULL, NULL, DF_NORMAL },
1748 { DO_COPY , DS_COLOR_RAM , 0x4800, 0, 0, 0, NULL, NULL, DF_NORMAL }, 1750 { DO_COPY , DS_COLOR_RAM , 0x4800, 0, 0, 0, NULL, NULL, DF_NORMAL },
1749 { DO_SET_OP , DS_ILACE_TYPE , D64_ILACE_RES, 0 , 0 , 0, NULL, NULL, DF_DECODE }, 1751 { DO_SET_OP , DS_EXTRA_INFO , D64_ILACE_RES, 0 , 0 , D64_EI_ILACE_TYPE, NULL, NULL, DF_DECODE },
1750 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL, DF_NORMAL }, 1752 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL, DF_NORMAL },
1751 } 1753 }
1752 }, 1754 },
1753 1755
1754 { // #7: ECI Graphic Editor Hires FLI 1756 { // #7: ECI Graphic Editor Hires FLI
1761 { 1763 {
1762 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, 0, NULL, NULL, DF_NORMAL }, 1764 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, 0, NULL, NULL, DF_NORMAL },
1763 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM , 0x2000, 0, 0x400, 0, DF_NORMAL), 1765 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM , 0x2000, 0, 0x400, 0, DF_NORMAL),
1764 { DO_COPY , DS_BITMAP_RAM , 0x4000, 1, 0, 0, NULL, NULL, DF_NORMAL }, 1766 { DO_COPY , DS_BITMAP_RAM , 0x4000, 1, 0, 0, NULL, NULL, DF_NORMAL },
1765 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM , 0x6000, 8, 0x400, 0, DF_NORMAL), 1767 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM , 0x6000, 8, 0x400, 0, DF_NORMAL),
1766 { DO_SET_OP , DS_ILACE_TYPE , D64_ILACE_COLOR, 0 , 0 , 0, NULL, NULL, DF_DECODE }, 1768 { DO_SET_OP , DS_EXTRA_INFO , D64_ILACE_COLOR, 0 , 0 , D64_EI_ILACE_TYPE, NULL, NULL, DF_DECODE },
1769 { DO_SET_OP , DS_EXTRA_INFO , D64_FLI_8, 0, 0, D64_EI_FLI_TYPE, NULL, NULL, DF_DECODE },
1767 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL, DF_NORMAL }, 1770 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL, DF_NORMAL },
1768 } 1771 }
1769 }, 1772 },
1770 1773
1771 { // #8: Cosmos Designs Hires Manager 1774 { // #8: Cosmos Designs Hires Manager
1776 NULL, NULL, 1779 NULL, NULL,
1777 fmtGetPixelCrestHIFLIorCDHM, 1780 fmtGetPixelCrestHIFLIorCDHM,
1778 { 1781 {
1779 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, 0, NULL, NULL, DF_NORMAL }, 1782 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0, 0, NULL, NULL, DF_NORMAL },
1780 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM , 0x2000, 0, 0x400, 0, DF_NORMAL), 1783 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM , 0x2000, 0, 0x400, 0, DF_NORMAL),
1784 { DO_SET_OP , DS_EXTRA_INFO , D64_FLI_8, 0, 0, D64_EI_FLI_TYPE, NULL, NULL, DF_DECODE },
1781 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL, DF_NORMAL }, 1785 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL, DF_NORMAL },
1782 } 1786 }
1783 }, 1787 },
1784 1788
1785 { // #9: FBI Crew FLI Designer 1.x & 2.0 1789 { // #9: FBI Crew FLI Designer 1.x & 2.0
1791 fmtGetPixelFLIDesigner, 1795 fmtGetPixelFLIDesigner,
1792 { 1796 {
1793 { DO_COPY , DS_COLOR_RAM , 0x0000, 0, 0, 0, NULL, NULL, DF_NORMAL }, 1797 { DO_COPY , DS_COLOR_RAM , 0x0000, 0, 0, 0, NULL, NULL, DF_NORMAL },
1794 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM, 0x0400, 0, 0x400, 0, DF_NORMAL), 1798 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM, 0x0400, 0, 0x400, 0, DF_NORMAL),
1795 { DO_COPY , DS_BITMAP_RAM , 0x2400, 0, 0, 0, NULL, NULL, DF_NORMAL }, 1799 { DO_COPY , DS_BITMAP_RAM , 0x2400, 0, 0, 0, NULL, NULL, DF_NORMAL },
1800 { DO_SET_OP , DS_EXTRA_INFO , D64_FLI_8, 0, 0, D64_EI_FLI_TYPE, NULL, NULL, DF_DECODE },
1796 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL, DF_NORMAL }, 1801 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL, DF_NORMAL },
1797 } 1802 }
1798 }, 1803 },
1799 1804
1800 { // #10: Doodle 1805 { // #10: Doodle
1822 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM, 0x0000, 0 , 0x0400, 0x0400, DF_NORMAL), 1827 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM, 0x0000, 0 , 0x0400, 0x0400, DF_NORMAL),
1823 DEF_REPEAT_BLOCK_8(DS_EXTRA_DATA, 0x03f8, 0 , 0x0400, 8, DF_DECODE), // Sprite pointers for each bank 1828 DEF_REPEAT_BLOCK_8(DS_EXTRA_DATA, 0x03f8, 0 , 0x0400, 8, DF_DECODE), // Sprite pointers for each bank
1824 { DO_COPY , DS_EXTRA_DATA , 0x03e8, 15 , 2 , 0, NULL, NULL, DF_DECODE }, // 2 sprite colors 1829 { DO_COPY , DS_EXTRA_DATA , 0x03e8, 15 , 2 , 0, NULL, NULL, DF_DECODE }, // 2 sprite colors
1825 { DO_COPY , DS_EXTRA_DATA , 0x0000, 14 , 0x3e00, 0, NULL, NULL, DF_DECODE }, // Lazily copy whole data for sprite data 1830 { DO_COPY , DS_EXTRA_DATA , 0x0000, 14 , 0x3e00, 0, NULL, NULL, DF_DECODE }, // Lazily copy whole data for sprite data
1826 { DO_COPY , DS_BITMAP_RAM , 0x2000, 0 , 0 , 0, NULL, NULL, DF_NORMAL }, 1831 { DO_COPY , DS_BITMAP_RAM , 0x2000, 0 , 0 , 0, NULL, NULL, DF_NORMAL },
1832 { DO_SET_OP , DS_EXTRA_INFO , D64_FLI_8, 0, 0, D64_EI_FLI_TYPE, NULL, NULL, DF_DECODE },
1827 { DO_LAST , 0 , 0 , 0 , 0 , 0, NULL, NULL, DF_NORMAL }, 1833 { DO_LAST , 0 , 0 , 0 , 0 , 0, NULL, NULL, DF_NORMAL },
1828 } 1834 }
1829 }, 1835 },
1830 }; 1836 };
1831 1837
2277 { DO_COPY , DS_COLOR_RAM , 0x0001, 0, 0x400 , 0, NULL, NULL, DF_NORMAL }, 2283 { DO_COPY , DS_COLOR_RAM , 0x0001, 0, 0x400 , 0, NULL, NULL, DF_NORMAL },
2278 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM , 0x0401, 0, 0x400, 0, DF_NORMAL), 2284 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM , 0x0401, 0, 0x400, 0, DF_NORMAL),
2279 { DO_COPY , DS_BITMAP_RAM , 0x2401, 0, 0x2000, 0, NULL, NULL, DF_NORMAL }, 2285 { DO_COPY , DS_BITMAP_RAM , 0x2401, 0, 0x2000, 0, NULL, NULL, DF_NORMAL },
2280 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM , 0x4401, 8, 0x400, 0x400, DF_NORMAL), 2286 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM , 0x4401, 8, 0x400, 0x400, DF_NORMAL),
2281 { DO_COPY , DS_BITMAP_RAM , 0x6401, 1, 0x2000, 0, NULL, NULL, DF_NORMAL }, 2287 { DO_COPY , DS_BITMAP_RAM , 0x6401, 1, 0x2000, 0, NULL, NULL, DF_NORMAL },
2288 { DO_SET_OP , DS_EXTRA_INFO , D64_FLI_8, 0, 0, D64_EI_FLI_TYPE, NULL, NULL, DF_DECODE },
2282 { DO_LAST , 0 , 0 , 0, 0 , 0, NULL, NULL, DF_NORMAL }, 2289 { DO_LAST , 0 , 0 , 0, 0 , 0, NULL, NULL, DF_NORMAL },
2283 } 2290 }
2284 }, 2291 },
2285 NULL 2292 NULL
2286 }, 2293 },
2427 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM , 0x4400, 8, 0x400, 0, DF_NORMAL), 2434 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM , 0x4400, 8, 0x400, 0, DF_NORMAL),
2428 { DO_COPY , DS_BITMAP_RAM , 0x6400, 1, 0 , 0, NULL, NULL, DF_NORMAL }, 2435 { DO_COPY , DS_BITMAP_RAM , 0x6400, 1, 0 , 0, NULL, NULL, DF_NORMAL },
2429 // GunPaint does not store the last 3 d021 values .. so set them to black 2436 // GunPaint does not store the last 3 d021 values .. so set them to black
2430 // XXX TODO: According to some, the last 4 should be same .. 2437 // XXX TODO: According to some, the last 4 should be same ..
2431 { DO_SET_MEM , DS_EXTRA_DATA , 0 , 0, 3 , 20+177, NULL, NULL, DF_NORMAL }, 2438 { DO_SET_MEM , DS_EXTRA_DATA , 0 , 0, 3 , 20+177, NULL, NULL, DF_NORMAL },
2432 { DO_SET_OP , DS_ILACE_TYPE , D64_ILACE_RES, 0 , 0 , 0, NULL, NULL, DF_DECODE }, 2439 { DO_SET_OP , DS_EXTRA_INFO , D64_ILACE_RES , 0, 0 , D64_EI_ILACE_TYPE, NULL, NULL, DF_DECODE },
2440 { DO_SET_OP , DS_EXTRA_INFO , D64_FLI_8 , 0, 0 , D64_EI_FLI_TYPE, NULL, NULL, DF_DECODE },
2433 { DO_FUNC , 0 , 0 , 0, 0 , 0, NULL, fmtEncodeGunPaint, DF_NORMAL }, 2441 { DO_FUNC , 0 , 0 , 0, 0 , 0, NULL, fmtEncodeGunPaint, DF_NORMAL },
2434 { DO_LAST , 0 , 0 , 0, 0 , 0, NULL, NULL, DF_NORMAL }, 2442 { DO_LAST , 0 , 0 , 0, 0 , 0, NULL, NULL, DF_NORMAL },
2435 } 2443 }
2436 }, 2444 },
2437 NULL 2445 NULL
2453 { DO_COPY , DS_COLOR_RAM , 0x0400, 1, 0, 0, NULL, NULL, DF_NORMAL }, 2461 { DO_COPY , DS_COLOR_RAM , 0x0400, 1, 0, 0, NULL, NULL, DF_NORMAL },
2454 { DO_COPY , DS_SCREEN_RAM , 0x0800, 0, 0, 0, NULL, NULL, DF_NORMAL }, 2462 { DO_COPY , DS_SCREEN_RAM , 0x0800, 0, 0, 0, NULL, NULL, DF_NORMAL },
2455 { DO_COPY , DS_SCREEN_RAM , 0x0c00, 1, 0, 0, NULL, NULL, DF_NORMAL }, 2463 { DO_COPY , DS_SCREEN_RAM , 0x0c00, 1, 0, 0, NULL, NULL, DF_NORMAL },
2456 { DO_COPY , DS_BITMAP_RAM , 0x1000, 0, 0, 0, NULL, NULL, DF_NORMAL }, 2464 { DO_COPY , DS_BITMAP_RAM , 0x1000, 0, 0, 0, NULL, NULL, DF_NORMAL },
2457 { DO_COPY , DS_EXTRA_DATA , 0x2f40, 0, D64_SCR_HEIGHT / 4, 0, NULL, NULL, DF_NORMAL }, 2465 { DO_COPY , DS_EXTRA_DATA , 0x2f40, 0, D64_SCR_HEIGHT / 4, 0, NULL, NULL, DF_NORMAL },
2466 { DO_SET_OP , DS_EXTRA_INFO , D64_FLI_8 , 0, 0 , D64_EI_FLI_TYPE, NULL, NULL, DF_DECODE },
2458 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL, DF_NORMAL }, 2467 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL, DF_NORMAL },
2459 } 2468 }
2460 }, 2469 },
2461 NULL 2470 NULL
2462 }, 2471 },
2477 { DO_SET_OP , DS_SCREEN_RAM , 0x10 , 0, 0, 0, NULL, NULL, DF_NORMAL }, 2486 { DO_SET_OP , DS_SCREEN_RAM , 0x10 , 0, 0, 0, NULL, NULL, DF_NORMAL },
2478 { DO_SET_MEM_LO , DS_BGCOL , 0x9580 - 0x4800, 0, 0, 0, NULL, NULL, DF_NORMAL }, 2487 { DO_SET_MEM_LO , DS_BGCOL , 0x9580 - 0x4800, 0, 0, 0, NULL, NULL, DF_NORMAL },
2479 { DO_SET_MEM_LO , DS_D022 , 0x9581 - 0x4800, 0, 0, 0, NULL, NULL, DF_NORMAL }, // Sprite color 2488 { DO_SET_MEM_LO , DS_D022 , 0x9581 - 0x4800, 0, 0, 0, NULL, NULL, DF_NORMAL }, // Sprite color
2480 { DO_SET_MEM_LO , DS_COLOR_RAM , 0x9582 - 0x4800, 0, 0, 0, NULL, NULL, DF_NORMAL }, 2489 { DO_SET_MEM_LO , DS_COLOR_RAM , 0x9582 - 0x4800, 0, 0, 0, NULL, NULL, DF_NORMAL },
2481 { DO_COPY , DS_EXTRA_DATA , 0x5ac0 - 0x4800, 0, D64_SPR_SIZE * 235, 0, NULL, NULL, DF_NORMAL }, // Sprite data 2490 { DO_COPY , DS_EXTRA_DATA , 0x5ac0 - 0x4800, 0, D64_SPR_SIZE * 235, 0, NULL, NULL, DF_NORMAL }, // Sprite data
2491 { DO_SET_OP , DS_EXTRA_INFO , D64_FLI_8 , 0, 0 , D64_EI_FLI_TYPE, NULL, NULL, DF_DECODE },
2482 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL, DF_NORMAL }, 2492 { DO_LAST , 0 , 0 , 0, 0, 0, NULL, NULL, DF_NORMAL },
2483 } 2493 }
2484 }, 2494 },
2485 NULL 2495 NULL
2486 }, 2496 },
2497 NULL, NULL, 2507 NULL, NULL,
2498 fmtGetPixelCrestHIFLIorCDHM, 2508 fmtGetPixelCrestHIFLIorCDHM,
2499 { 2509 {
2500 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0 , 0, NULL, NULL, DF_NORMAL }, 2510 { DO_COPY , DS_BITMAP_RAM , 0x0000, 0, 0 , 0, NULL, NULL, DF_NORMAL },
2501 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM , 0x2000, 0, 0x400, 0, DF_NORMAL), 2511 DEF_REPEAT_BLOCK_8(DS_SCREEN_RAM , 0x2000, 0, 0x400, 0, DF_NORMAL),
2512 { DO_SET_OP , DS_EXTRA_INFO , D64_FLI_8 , 0, 0 , D64_EI_FLI_TYPE, NULL, NULL, DF_DECODE },
2502 { DO_LAST , 0 , 0 , 0, 0 , 0, NULL, NULL, DF_NORMAL }, 2513 { DO_LAST , 0 , 0 , 0, 0 , 0, NULL, NULL, DF_NORMAL },
2503 } 2514 }
2504 }, 2515 },
2505 NULL 2516 NULL
2506 }, 2517 },