[Coco] getting graphics into CoCo games easier
Roger Taylor
operator at coco3.com
Sun Jan 20 09:38:05 EST 2008
At 08:23 AM 1/20/2008, you wrote:
>Roger Taylor wrote:
>>One thing we've needed for years is a way to convert existing
>>graphics from a PC into sprites and bitmaps for use with CoCo games, etc.
>>I could easily write a Projector-3 format driver that converts
>>whatever is on the graphics screen into a compressed .asm source
>>code file representing the image, as well as specific areas of the
>>image as a grid or single areas. If a grid of a certain
>>width/height/size is chosen, a source code file would be created
>>with fcb's/fdb's/fqb's of the graphics data. I know of ways to
>>automatically create the sprite masks, including a one-pixel black
>>bordered mask if that's desired.
>>Again, you could take any kind of image, and if it's not a GIF,
>>BMP, or some other P-3 compatible format you can use a PC editor to
>>turn it into one, then move it to a virtual .dsk that P-3 (running
>>in M.E.S.S. or VCC) can access. Load in the picture, and then
>>choose <E>ncode and type .asm for the new extension and voila.
>>That's what I want it to do anyway. A highlighter grid will appear
>>on the display where you can section off the area the sprites are
>>in and size them, etc. before saving to the source code file.
>>I'm sure the .asm file could grow pretty large if I don't use some
>>kind of compression scheme, but the Rainbow IDE doesn't care how
>>big the files are and has no problem with crunching this kind of
>>stuff. The idea is to make it easier to make CoCo games using
>>existing HQ graphics found all over the web, scanned in, hand drawn
>>from the PC, etc.
>>I also almost forgot, does Chet Simpson's ImageMaster actually work
>>to create CoCo sprites in .asm source?
>
>That would be a useful addition to Projector. In general, the asm
>listing should be a binary representation of the image and the game
>program should provide a means of converting the source into normal
>data. For example, 16 color data could be presented as:
>
>FXB 0 0 0 0 0 0 0
>FXB 0 0 0 13 0 0 0
>FXB 0 0 13 11 13 0 0
>FXB 0 13 11 11 11 13 0
>FXB 0 13 11 11 11 13 0
>FXB 0 0 13 11 13 0 0
>FXB 0 0 0 13 0 0 0
>FXB 0 0 0 0 0 0 0
>
>Where X would indicate the number of bits per pixel in the above
>data, the value would be the palette color, and the software would
>automatically convert the palette value to the necessary 4 bit patterns.
>This is easy for two color screens as %nnnnnnnn notation can be
>used. Current assemblers would not like or handle the above notation.
>
>The above would mean you could "draw" in your source code file and
>not have to use a graphics package to create the images.
>
>--
Great idea. Actually, I'm drawing my sprites this way right now,
using CCASM's FQB (form quad byte psuedo op)... fqb $FF0000FF where
0-F is the color.
Just a random example of a what I'd like to make P-3 produce for the
.asm data. I find it also quicker and easier to pad sprites+mask to
256 or 512 bytes. You can load reg.A with the sprite #, clear reg.B,
shift A to the left if needed, add the MSB of what CPU page the
sprites start, etc. to save a few cycles.
fqb $FF0000FF
fqb $F000000F
fqb $F000000F
fqb $FF0000FF
fqb $FFF00FFF
fqb $FFF00FFF
fqb $FFFFFFFF
More information about the Coco
mailing list