F.G. Kaal Posted June 29 Share Posted June 29 I have added a quick view to the latest verrsion of Ti99Dir but now I found out that with some MyArt files Ti99Dir is wrong; It doesn't figure out correctly what the format/size is of the MyArt picture "256x212" or "512x212" pixels. What I have found somewhere is (can't remember when or where): /* * Format 256x212: * Byte 0: Background color * Byte 1: Flag 0 (=256x212) * Byte 2: Colorcode GGGRRRBB * Byte 3: Number of pixels * etc * * Format 512x212: * Byte 0: Background color * Byte 1: Flag 1 (=512x212) * Byte 2: Color palette 16 colors: 0RRR0BBB * Byte 3: Color palette 16 colors: 0???0GGG * Byte 34: Colorcode: CCCC00LL index in palette, LSBits are MSBits length * Byte 35: Length: LLLLLLLL max length value is >0200 * etc */ But byte 1 seems to be wrong or means something else. For all the 512x212 MyArt pictures I have in my collection byte 1 has the value of >FA and that is the only byte that is checked to differentiate between these two picture formats. But recently I found on a Mame bootdisk I use some MyArt pictures of 256x212 pixels with also a byte 1 with a value of >FA. It is also possible that these pictures are wrong but I don't know for sure. Does anybody now of a better method to distinguish between these two MyArt picture formats? 1 Quote Link to comment Share on other sites More sharing options...
+9640News Posted June 29 Share Posted June 29 Let me know if this helps you out. This is some source code from the Geneve's ABASIC call to load a Myart Image. MYARTLOAD.txt 1 Quote Link to comment Share on other sites More sharing options...
+mizapf Posted June 29 Share Posted June 29 In TIImageTool I'm actually simulating the rendering by reading all RLE data elements and checking whether I get a 512x212 or 256x212 result. 1 Quote Link to comment Share on other sites More sharing options...
F.G. Kaal Posted June 30 Author Share Posted June 30 (edited) 16 hours ago, 9640News said: Let me know if this helps you out. This is some source code from the Geneve's ABASIC call to load a Myart Image. Thank's, I'll have a look into this. And ... allready looked into that: The ABASIC source code example is using the current screen mode set for determining how to display the picture, it doesn't care what the real type of the picture is. Screen mode 8 or 10: display as if it is a 512x212 pixel picture and reading color palette first. Screen mode 9: display as if it is a 256x212 pixel picture. If I remember correctly with MyArt; the user have to set the correct screen mode first before loading a picture. But anyway, the first data bytes are confirmed: BYTE 0 BACKGROUND COLOR 1 FLAG 0=256 MODE 0<>=512 MODE Those Myart 256x212 Pictures I found on the Bootdisk I use are from some Basic game ((happens to be from the directory ABASIC/DEMO); I think it is correct to assume that byte 1 of these files are incorrectly set to >FA. Edited June 30 by F.G. Kaal 1 Quote Link to comment Share on other sites More sharing options...
F.G. Kaal Posted June 30 Author Share Posted June 30 15 hours ago, mizapf said: In TIImageTool I'm actually simulating the rendering by reading all RLE data elements and checking whether I get a 512x212 or 256x212 result. In Ti99Dir I'm only checking the first 256 bytes for determining what kind of data it is. I don't think it is an option to read a complete file when building a directory list. It is an option when displaying the picture though. I check TIImageTool how you handle this 🙂 Quote Link to comment Share on other sites More sharing options...
+mizapf Posted June 30 Share Posted June 30 I'm doing it when actually opening the image; this is fast enough so you don't notice it. If you want to do it in the directory listing, I'd probably try and see how long it really takes. Even if you had 127 images, I can imagine it's only a fraction of a second until every file is checked. 1 Quote Link to comment Share on other sites More sharing options...
F.G. Kaal Posted June 30 Author Share Posted June 30 3 hours ago, mizapf said: I'm doing it when actually opening the image; ... I see that TIImageTool is doing the same approach as Ti99Dir does but checks the complete file. A DIS/FIX 128 can be a Myart picture, a GIF picture, an Archive file a Forth file or something else. This afternoon I came to the following method: I can simple determine if it is a GIF, Archive, Forth or maybe a Myart picture. Before displaying a Myart picture; count the total number of pixels and horizontal lines of the picture fore both 256x212 and 512x212. Also for 512x212 check the MSByte of every COLOR/LENGTH word (CCCC00XL LLLLLLLL). If this value & 0x0F00 > 0x200 then it is an error in the length part. This should be > 0x0100 but I see MyArt pictures where sometimes a bit to much is set (here the X in CCCC00XL LLLLLLLL). It is a 512x212 picture if byte 1 of record 0 is not 0 (usually 0xFA) and the number of pixels / number of horizontal lines == 512 and number of length errors == 0. It is a 256x212 picture if the number of pixels / number of horizontal lines == 256 If both checks are correct then it is a 512x212 picture If both checks fails then it is a 256x212 picture (or some other kind of file) For the few files I have checked so far these assumptions seems okay 🙂 2 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.