Jump to content
IGNORED

Fun with Tile Studio: creating the Paddle Party title screen


catsfolly

Recommended Posts

Recently, Willy's artist created a nice box design for Paddle Party, which included a cool "Paddle Party" logo. I wanted to try and put the same logo on the title screen, in spite of my general lack of artistic ability.

 

I decided to try and do it using a free Windows program called "tile studio".

 

First, I took the box image:

post-14916-0-65671600-1352998037_thumb.png

 

and cut out the logo part. (Using windows paint, which is not the greatest graphics program on earth, but it is free…)

 

post-14916-0-25377600-1352996258_thumb.png

 

The cut out logo was 458 pixels wide. The Intellivision screen is only 160 pixels wide (20 characters * 8 pixels per character).

I decided that 14 characters * 8 = 112 pixels wide would be a good size for the logo.

This would leave me 24 pixels of border on each side.

 

24 pixels border + 112 pixels logo + 24 pixels border = 160 pixels

 

So, how much do I scale the logo to get it down to 112?

 

112/458 = 0.24454148, which is not a very round number.

 

After some figuring I found that 112/466 = 0.24 exactly.

 

So, I expanded the logo bitmap in paint to make it 466 pixels wide.

Then, I selected the whole image, and scaled it down to 24 percent.

 

Here is the result. It is blocky, but that's Intellivision for you.

 

post-14916-0-07889800-1352996305.png

 

 

Then I saved it as a monochrome bmp file. This reduced everything to only 2 colors. This made it even uglier:

 

post-14916-0-96339500-1352997592.png

 

After some hand tweaking of the bits, I ended up with this version.

 

post-14916-0-53072900-1352997659.png

 

Then, I started up tile studio. I selected the "import tile option", and chose my file to import from.

I specified the tile size as 8 by 8 (the default is 32 by 32).

After importing, 42 tiles had been created. (14 * 3).

 

The I selected "create new map". I created a map of size 14 by 3. Then I painted my characters onto the map.

This was pretty easy because the characters were in sequence.

Luckily, the dividing line of the characters fell between "paddle" and "party",

so I would be able to make them different colors on the Intellivision...

 

Here is what the map looked like in tile studio:

 

post-14916-0-51673200-1352996427.png

 

Once the map was created, I hit the menu option to remove duplicates in the tiles. This reduced the number of tiles to 31 (including a blank, which I didn't need because the Intellivision character set has a blank built in.)

 

Under "code generation" I selected the GBA option (if I did this a lot, I guess I would want to make my own option). I told it to generate code, and it generated a data file (containing the character patterns) and a map file (containing the numbers of the characters needed to display the logo).

 

After massaging these files and integrating them into my program, I ended up with this:

post-14916-0-44323400-1352996506_thumb.gif

 

It looked pretty good, but it was kind of flat. I wanted the character outlines (like in the original), or a the least some kind of shadow behind

the characters. But the Intellivision display only allows 2 colors per character.

 

So, the only resource left is the motion objects. There are 8 motion objects. If I put them together, side by side, they would be 8 * 8 = 64 pixels wide. But the logo is 112 bits wide! Hmmm. But, the motion objects have a double wide mode, where each bit is 2 pixels wide. If I put the objects in that mode, then 7 objects would be 7 * 8 * 2 = 112 pixels wide, but horizontally blocky. What would that look like?

 

Only way to find out is to try it. So I took my 112 pixel wide logo image and reduced it in half vertically. Here it is (after some pixel tweaks:)

 

post-14916-0-86920700-1352997692.png

 

Here it is stretched out vertically (and with different colors):

 

post-14916-0-39985900-1352997699.png

 

It looked pretty bad, but maybe it would work as a shadow.

So I ran this image through tile studio, and created new character data and maps for it. Then I set up the motion objects to use this data in the program.

 

I set the priority bit to make the objects appear behind the characters. I offset the image 1 pixel down and 1 pixel to the right of the original image. This was the result:

 

post-14916-0-65297100-1352996979_thumb.gif

 

I wasn't to happy with it. It didn't look clean. It looked like the idea wasn't going to work. But just for fun, I tried an offset of 2 pixels down and 2 pixels to the right. This worked much better:

 

 

post-14916-0-26691800-1352997012_thumb.gif

If you look closely, you can see the flaws in the shadow, but at a glance I think it looks pretty good. I also tried this offset:

 

post-14916-0-65860900-1352997040_thumb.gif

 

Then we experimented with a variety of colors:

 

post-14916-0-50615700-1352997070_thumb.png

 

We finally decided on this version….

post-14916-0-98729900-1352997150_thumb.gif

 

And now I have one motion object left for special effects....

 

I was pretty happy with Tile Studio.

 

What do you think? Questions? Comments?

 

Catsfolly

  • Like 3
Link to comment
Share on other sites

Looks cool, but wow, what an ordeal.

 

It seems so complicated. :)

 

And I thought I had it tough, drawing screens by hand using ASCII text files. LOL!

 

Actually it wasn't so bad.

 

Maybe I described it in so much detail that it sounded like an "ordeal".

 

Essentially what I did was this:

 

1. Took an existing graphic.

2. Used Windows paint to automatically reduce the size and colors

3. Hand tweaked the results.

4. Ran the image through a program (Tile Studio) which generated the gram data and tile lists I needed to display the image on the Intellivision.

 

So, not so bad. For me, an "ordeai" would be taking a blank page and trying to reproduce the logo entirely by hand...

 

Catsfolly

Link to comment
Share on other sites

Actually it wasn't so bad.

 

Maybe I described it in so much detail that it sounded like an "ordeal".

 

Essentially what I did was this:

 

1. Took an existing graphic.

2. Used Windows paint to automatically reduce the size and colors

3. Hand tweaked the results.

4. Ran the image through a program (Tile Studio) which generated the gram data and tile lists I needed to display the image on the Intellivision.

 

So, not so bad. For me, an "ordeai" would be taking a blank page and trying to reproduce the logo entirely by hand...

 

Catsfolly

 

Ah, but you see, reproducing it by hand works for me. In trying to avoid the "complication" of using external programs, I end up doing double or triple the effort (building a "ripper" script, drawing the thing by hand, etc.). As my mother used to tell me, "the lazy man works twice as much." :)

 

It does look cool. :)

 

-dZ.

Link to comment
Share on other sites

I wonder what my perl script would do with this logo. I am kinda in the same territory as DZ, in as much as I make my own scripts, possibly working too hard in the process. ;-)

 

I should post that script, warts and all.

So, what does your perl script do exactly?

I think that tools like Tile Studio can be useful for importing existing graphics into the Intellivision.

Or, for creating things that are easily done with graphics tools, like circles and ellipses.

 

On the other hand, when you write your own tools, you always learn a lot.

 

Whatever works!

 

Catsfolly

Link to comment
Share on other sites

So, what does your perl script do exactly?

I think that tools like Tile Studio can be useful for importing existing graphics into the Intellivision.

Or, for creating things that are easily done with graphics tools, like circles and ellipses.

 

On the other hand, when you write your own tools, you always learn a lot.

 

Whatever works!

 

Catsfolly

 

I don't know about intvnut's, but I created a library of Perl scripts to rip ASCII files and generate Intellivision data from them I am willing to share them too, but keep in mind that they are designed to support the way I work, which may not be common. Also, the code that they generate relies heavily on my macros and data structures already present in my game framework, so it may be less useful.

 

Basically, I have one script for "scenery" and one script for "sprites." They both share the same libraries, and they both read a source file drawn in ASCII using "." and "#" to denote off and on pixels, respectively; but their interfaces and purposes are slightly different.

 

The "scenery" script accepts one or more background scenes of any size. The source file may contain additional attributes to describe the input, such as the origin of output (if not [0,0]), and the colours for the Color Stack. It then generates two output files containing the GRAM tile data and the BACKTAB attribute words. These are all ready to use, with proper references and computed values and all.

 

This script takes care of extracting unique tiles, and then compares each one against a reference of the GROM tile set. When generating the BACKTAB data, it will use GROM over GRAM whenever possible, conserving the latter.

 

The output to STDOUT includes the total number of tiles ripped, the number of unique ones, and how much GRAM is needed. I use this information to iterate numerous times, tweaking slightly the source drawing, to use more GROM or reuse GRAM tiles, until the specific size requirement is met.

 

The "sprite" script accepts one or more frame-animation sequences for a sprite. The source file also supports additional attributes specifying the resolution (single or double), as well as colour information. The output is merely the GRAM tile data, ready to be blasted to the STIC during VBLANK.

 

Below is an example of the source data for the "gift scene," shown during the Bad Toy's introduction.

 

; =============================================================================
; Copyright 2010-2012, James Pujals (DZ-Jay), <dz-game@techunlimited.net>.
; =============================================================================

@@GIFT_SCENE:

; ----------------
; Foreground:
; ----------------
; 0 = Black
; 1 = Dark Green
; 2 = Yellow
; 3 = Orange
; 4 = Purple
; 5 = Red
; 6 = White
; 7 = Light Blue

; ----------------
; Background (Color Stack):
; ----------------
; 0 = Black
; 1 = Dark Green
; 2 = Yellow
; 3 = Purple
GRAM_BLOCK: GiftScene
COLOR_STK:  C_BLK, C_DGR, C_YEL, C_PUR

:COL=0,0 :COL=2,1 :COL=1,1 :COL=0,1 :COL=0,1 :COL=7,0 :COL=0,0
........ ........ .#.##### ######## ........ ........ ........
........ ........ .#.##### ######## ........ ........ ........
........ ........ .#.##### ######## ........ ........ ........
........ ........ .#.##### ######## ........ ........ ........
........ ........ .#.##### ##.##.## ........ ........ ........
........ ######## ........ ###..### ........ ........ ........
........ ........ .#.##### ........ ........ ..##.#.. ........
........ ######## ........ ........ ........ .#.##.#. ........
:COL=5,0 :COL=2,1 :COL=2,0 :COL=4,1 :COL=0,1 :COL=6,0 :COL=3,1
........ ........ #.#..... ######## ######## ######## ........
........ ........ #.#..... ##.##### ####.### #.###.## ...#....
..#.#... ........ #.#....# ......## #......# ######## .##.###.
...#.... ........ #.#....# #.#.#.## ######## ###.###. ###.####
.##.###. ........ #.#....# .#.#..## #......# ######## ###.####
........ ........ #.#....# #.#.#.## ######## #.###.## ........
.##.###. ........ #.#....# .#.#..## #......# ######## ###.####
.##.###. ........ #.#....# #.#.#.## ######## ###.###. ###.####

 

And below is a an example of a sprite animation. This one is for the Snowball crumbling when it hits Carol:

 

@@Splat:
:0       :1       :2       :3       :4       :5       :6       :7       :8       :9       :10      :11      :12
........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........
........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........
........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........
..###... ........ ........ ........ ........ ....#... ........ ........ ........ ........ ........ ........ ........
.#####.. ...#.... ........ ........ ....#... .#..#..# #...#..# ........ ........ ........ ........ ........ ........
.#####.. ..###... ...#.... ....#... ..#.#.#. ........ ....#... #......# ........ ........ ........ ........ ........
#..#..#. .#####.. ..###... .#....#. .##...## .#..#..# ........ ....#... .......# ........ ........ ........ ........
#######. .#.#.#.. .#####.. ..####.. ...#.#.. #......# #......# ....#... #...#... ........ ........ ........ ........
#######. .#####.. .#####.. ..#####. .#.###.# ...###.. #...#..# .......# ........ ....#... ........ ........ ........
#######. .#####.. ..###... ..####.. ...###.. .#.....# ...#.#.. #...#..# ....#... #......# ....#... ........ ........
.#####.. ..###... ...#.... .#..#.#. .#..#..# .#.#.#.# .#...... #....... .......# ....#... ........ ....#... ........
.#####.. ...#.... ........ ........ ....#... ....#... .#.....# ...#.#.. #...#..# ........ #......# ........ ....#...
..###... ........ ........ ........ ........ ........ ...###.. .#...... #....... ....#..# ...###.. ..####.. ..####..
........ ........ ........ ........ ........ ........ ........ .#.#.#.# ...#.#.# #..###.# ..#####. #.#####. ..#.#.#.
........ ........ ........ ........ ........ ........ ........ ....#... .#..#... ..####.# ##..#..# .#..#..# .##.#.##
........ ........ ........ ........ ........ ........ ........ ........ .#.###.# ######## ######## ######## ########

 

Link to comment
Share on other sites

So, what does your perl script do exactly?

I think that tools like Tile Studio can be useful for importing existing graphics into the Intellivision.

Or, for creating things that are easily done with graphics tools, like circles and ellipses.

 

On the other hand, when you write your own tools, you always learn a lot.

 

Whatever works!

 

Catsfolly

 

My perl script isn't terribly sophisticated. It takes an ASCII graphic (with different color layers) and tries to generate a GRAM image and BACKTAB image with MOB fixups. It looks for redundant GRAM cards and tries to compress them away.

 

I'll do up a demo screen and post the code.

Link to comment
Share on other sites

Cool one! Did you draw that by hand, or did you rip it from an image file?

 

I started with a JPG from the Intarwebs, scaled it in GIMP, superimposed a grid on it, and then manually transferred it to ASCII. I made some hand-tweaks to the conversion to make it fit in the GRAM tile set, too.

Link to comment
Share on other sites

 

I started with a JPG from the Intarwebs, scaled it in GIMP, superimposed a grid on it, and then manually transferred it to ASCII. I made some hand-tweaks to the conversion to make it fit in the GRAM tile set, too.

 

Ah! That's what I do. Cool.

Link to comment
Share on other sites

  • 2 years later...

Do you have a set of definitions for tiles/palettes you might share? I am experimenting with tile studio but there seems to be a bit of config work to make the tiles GRAM-ready...

 

Thanks.

 

 

Recently, Willy's artist created a nice box design for Paddle Party, which included a cool "Paddle Party" logo. I wanted to try and put the same logo on the title screen, in spite of my general lack of artistic ability.

I decided to try and do it using a free Windows program called "tile studio".

[snip]

I was pretty happy with Tile Studio.

What do you think? Questions? Comments?

Catsfolly

Link to comment
Share on other sites

Do you have a set of definitions for tiles/palettes you might share? I am experimenting with tile studio but there seems to be a bit of config work to make the tiles GRAM-ready...

 

Thanks.

 

 

I only used it for monochrome image conversion, so I didn't have any palettes. I selected the "gameboy option and was able to convert the files generated with a few substitutions.

 

For example, converting the shadow map image created this file:

; --------------------------------------------------
; DATA.ASM
; Generated by Tile Studio version 3.0
; Date: 2012/10/28, Time: 23:02:58 
; --------------------------------------------------

	AREA demo_data, DATA, READONLY


	EXPORT Tiles1
	EXPORT pplogoshadow



	ALIGN 4
 
Tiles1

	ALIGN 4
 
pplogoshadow
	DCB	  0,  0,  0,  0,  0,  0,  0,  0
	DCB	  0,  0,  0,  0,  0,  0,  0,  0
	DCB	  0,  0,  0,  0,  0,  0,  0,  0
	DCB	  0,  0,  0,  0,  0,  0,  0,  0
	DCB	  0,  0,  0,  0,  0,  0,  0,  0
	DCB	  0,  0,  0,  0,  0,  0,  0,  0
	DCB	  0,  0,  0,  0,  0,  0,  0,  0
	DCB	  0,  0,  0,  0,  0,  0,  0,  0


	DCB	  0,  0,  0,  0,  0,  0,  0,  0
	DCB	  0,  0,  0,  0,  0,  0,  0,  0
	DCB	  0,  0,  0,  0,  0,  0,  0,  0
	DCB	  0,  1,  1,  1,  0,  0,  0,  1
	DCB	  1,  1,  1,  1,  0,  0,  1,  1
	DCB	  1,  1,  1,  1,  1,  0,  1,  1
	DCB	  1,  0,  0,  1,  1,  1,  1,  0
	DCB	  1,  0,  0,  0,  1,  1,  1,  0


	DCB	  0,  0,  0,  0,  0,  0,  0,  1
	DCB	  0,  0,  0,  0,  0,  0,  0,  1
	DCB	  0,  0,  0,  0,  0,  0,  0,  1
	DCB	  1,  0,  0,  0,  1,  1,  0,  1
	DCB	  1,  1,  0,  0,  1,  1,  0,  1
	DCB	  1,  1,  0,  1,  1,  0,  0,  1
	DCB	  0,  1,  1,  1,  1,  0,  0,  1
	DCB	  0,  1,  1,  1,  1,  0,  0,  1


	DCB	  1,  0,  0,  0,  0,  1,  1,  1
	DCB	  1,  0,  0,  0,  0,  1,  1,  1
	DCB	  1,  0,  0,  0,  0,  1,  1,  1
	DCB	  1,  0,  1,  1,  0,  1,  1,  1
	DCB	  1,  0,  1,  1,  0,  1,  1,  1
	DCB	  1,  1,  1,  0,  0,  1,  1,  1
	DCB	  1,  1,  1,  0,  0,  1,  1,  1
	DCB	  1,  1,  1,  0,  0,  1,  1,  1


	DCB	  1,  0,  0,  0,  0,  0,  0,  0
	DCB	  1,  0,  0,  0,  0,  0,  0,  0
	DCB	  1,  0,  0,  0,  0,  0,  0,  0
	DCB	  1,  0,  0,  0,  1,  1,  0,  0
	DCB	  1,  0,  0,  1,  1,  1,  1,  0
	DCB	  1,  0,  1,  1,  1,  1,  1,  0
	DCB	  1,  0,  1,  1,  0,  0,  1,  0
	DCB	  1,  0,  1,  1,  0,  0,  1,  0


	DCB	  0,  0,  0,  0,  0,  0,  0,  0
	DCB	  0,  0,  0,  0,  0,  0,  0,  0
	DCB	  0,  0,  0,  0,  0,  0,  0,  0
	DCB	  0,  0,  0,  0,  0,  0,  0,  0
	DCB	  0,  0,  0,  0,  0,  0,  0,  0
	DCB	  0,  0,  0,  0,  0,  0,  0,  0
	DCB	  0,  0,  0,  0,  0,  0,  1,  1
	DCB	  0,  0,  0,  0,  0,  0,  1,  1


	DCB	  1,  0,  1,  0,  1,  1,  1,  0
	DCB	  1,  0,  0,  0,  1,  1,  1,  0
	DCB	  1,  0,  0,  1,  1,  1,  1,  0
	DCB	  1,  0,  1,  1,  1,  0,  1,  0
	DCB	  1,  0,  1,  1,  0,  0,  1,  1
	DCB	  1,  0,  1,  1,  0,  0,  1,  1
	DCB	  1,  0,  0,  0,  0,  0,  0,  0
	DCB	  1,  0,  0,  0,  0,  0,  0,  0


	DCB	  0,  1,  1,  1,  1,  0,  0,  1
	DCB	  0,  1,  1,  1,  1,  0,  0,  1
	DCB	  0,  1,  1,  1,  1,  0,  0,  1
	DCB	  0,  1,  1,  1,  1,  1,  1,  1
	DCB	  0,  1,  1,  0,  1,  1,  1,  1
	DCB	  0,  1,  1,  0,  1,  1,  1,  0
	DCB	  0,  0,  0,  0,  0,  0,  0,  0
	DCB	  0,  0,  0,  0,  0,  0,  0,  0


	DCB	  1,  1,  1,  0,  0,  1,  1,  1
	DCB	  1,  1,  1,  0,  0,  1,  1,  1
	DCB	  1,  1,  1,  0,  0,  1,  1,  0
	DCB	  0,  1,  1,  1,  1,  1,  0,  0
	DCB	  0,  0,  1,  1,  1,  1,  0,  0
	DCB	  0,  0,  1,  1,  1,  0,  0,  0
	DCB	  0,  0,  0,  0,  0,  0,  0,  0
	DCB	  0,  0,  0,  0,  0,  0,  0,  0


	DCB	  1,  0,  1,  1,  0,  0,  1,  0
	DCB	  1,  0,  1,  1,  0,  0,  1,  0
	DCB	  1,  0,  1,  1,  0,  0,  0,  0
	DCB	  1,  1,  0,  1,  1,  1,  1,  0
	DCB	  1,  1,  1,  1,  1,  1,  1,  0
	DCB	  0,  1,  1,  1,  1,  1,  1,  0
	DCB	  0,  0,  0,  0,  0,  0,  0,  0
	DCB	  0,  0,  0,  0,  0,  0,  0,  0


	DCB	  0,  0,  0,  0,  0,  0,  0,  0
	DCB	  0,  1,  1,  1,  0,  0,  0,  1
	DCB	  1,  1,  1,  1,  0,  0,  1,  1
	DCB	  1,  1,  1,  1,  1,  0,  1,  1
	DCB	  1,  0,  0,  1,  1,  1,  1,  0
	DCB	  1,  0,  0,  0,  1,  1,  1,  0
	DCB	  1,  0,  1,  0,  1,  1,  1,  0
	DCB	  1,  0,  0,  0,  1,  1,  1,  0


	DCB	  0,  0,  0,  0,  0,  0,  1,  1
	DCB	  1,  0,  0,  0,  0,  1,  1,  1
	DCB	  1,  1,  0,  0,  0,  1,  1,  1
	DCB	  1,  1,  0,  0,  1,  1,  1,  1
	DCB	  0,  1,  1,  1,  1,  1,  1,  1
	DCB	  0,  1,  1,  1,  1,  0,  1,  1
	DCB	  0,  1,  1,  1,  1,  0,  1,  1
	DCB	  0,  1,  1,  1,  1,  0,  1,  1


	DCB	  0,  0,  0,  0,  0,  0,  0,  0
	DCB	  1,  0,  1,  0,  0,  0,  1,  1
	DCB	  1,  0,  1,  0,  0,  0,  1,  1
	DCB	  1,  0,  1,  0,  0,  0,  1,  1
	DCB	  0,  0,  1,  0,  0,  0,  1,  1
	DCB	  0,  0,  1,  0,  0,  0,  1,  1
	DCB	  0,  0,  1,  0,  0,  0,  1,  1
	DCB	  0,  0,  1,  0,  0,  0,  1,  1


	DCB	  1,  0,  0,  0,  0,  0,  0,  0
	DCB	  1,  0,  0,  0,  0,  0,  0,  0
	DCB	  1,  0,  0,  0,  0,  0,  0,  0
	DCB	  0,  0,  0,  0,  0,  0,  0,  0
	DCB	  0,  0,  0,  0,  0,  0,  0,  0
	DCB	  0,  0,  0,  0,  0,  0,  0,  0
	DCB	  0,  0,  0,  0,  0,  0,  0,  0
	DCB	  0,  0,  0,  0,  0,  0,  0,  0


	DCB	  1,  0,  0,  1,  1,  1,  1,  0
	DCB	  1,  0,  1,  1,  1,  0,  1,  0
	DCB	  1,  0,  1,  1,  0,  0,  1,  1
	DCB	  1,  0,  1,  1,  0,  0,  1,  1
	DCB	  1,  0,  0,  0,  0,  0,  0,  0
	DCB	  1,  0,  0,  0,  0,  0,  0,  0
	DCB	  1,  0,  0,  0,  0,  0,  0,  0
	DCB	  1,  0,  0,  0,  0,  0,  0,  0


	DCB	  0,  1,  1,  1,  1,  0,  0,  1
	DCB	  0,  1,  1,  1,  1,  0,  0,  1
	DCB	  0,  1,  1,  1,  1,  0,  0,  1
	DCB	  0,  1,  1,  1,  1,  0,  0,  0
	DCB	  0,  0,  0,  0,  0,  0,  0,  0
	DCB	  0,  0,  0,  0,  0,  0,  0,  0
	DCB	  0,  0,  0,  0,  0,  0,  0,  0
	DCB	  0,  0,  0,  0,  0,  0,  0,  0


	DCB	  0,  0,  1,  1,  0,  0,  1,  1
	DCB	  1,  0,  1,  1,  1,  1,  1,  1
	DCB	  1,  0,  0,  1,  1,  1,  1,  1
	DCB	  1,  0,  0,  0,  1,  1,  1,  1
	DCB	  0,  0,  0,  0,  0,  0,  1,  1
	DCB	  0,  0,  0,  0,  0,  0,  1,  1
	DCB	  0,  0,  0,  0,  0,  1,  1,  0
	DCB	  0,  0,  0,  0,  0,  1,  1,  0



	END

Using an editor, I made the following substitutions (in this order):

 

replace 'DCB ` with 'BITMAP "'

replace '0, ' with '.'

replace '1, ' with '#'

replace '1' with '#"'

replace '0' with '."'

 

Then, the file looked like this:

; --------------------------------------------------
; DATA.ASM
; Generated by Tile Studio version 3.."
; Date: 2."#"2/#"."/28, Time: 23:."2:58 
; --------------------------------------------------

	AREA demo_data, DATA, READONLY


	EXPORT Tiles#"
	EXPORT pplogoshadow



	ALIGN 4
 
Tiles#"

	ALIGN 4
 
pplogoshadow
	BITMAP	  "........"
	BITMAP	  "........"
	BITMAP	  "........"
	BITMAP	  "........"
	BITMAP	  "........"
	BITMAP	  "........"
	BITMAP	  "........"
	BITMAP	  "........"


	BITMAP	  "........"
	BITMAP	  "........"
	BITMAP	  "........"
	BITMAP	  ".###...#"
	BITMAP	  "####..##"
	BITMAP	  "#####.##"
	BITMAP	  "#..####."
	BITMAP	  "#...###."


	BITMAP	  ".......#"
	BITMAP	  ".......#"
	BITMAP	  ".......#"
	BITMAP	  "#...##.#"
	BITMAP	  "##..##.#"
	BITMAP	  "##.##..#"
	BITMAP	  ".####..#"
	BITMAP	  ".####..#"


	BITMAP	  "#....###"
	BITMAP	  "#....###"
	BITMAP	  "#....###"
	BITMAP	  "#.##.###"
	BITMAP	  "#.##.###"
	BITMAP	  "###..###"
	BITMAP	  "###..###"
	BITMAP	  "###..###"


	BITMAP	  "#......."
	BITMAP	  "#......."
	BITMAP	  "#......."
	BITMAP	  "#...##.."
	BITMAP	  "#..####."
	BITMAP	  "#.#####."
	BITMAP	  "#.##..#."
	BITMAP	  "#.##..#."


	BITMAP	  "........"
	BITMAP	  "........"
	BITMAP	  "........"
	BITMAP	  "........"
	BITMAP	  "........"
	BITMAP	  "........"
	BITMAP	  "......##"
	BITMAP	  "......##"


	BITMAP	  "#.#.###."
	BITMAP	  "#...###."
	BITMAP	  "#..####."
	BITMAP	  "#.###.#."
	BITMAP	  "#.##..##"
	BITMAP	  "#.##..##"
	BITMAP	  "#......."
	BITMAP	  "#......."


	BITMAP	  ".####..#"
	BITMAP	  ".####..#"
	BITMAP	  ".####..#"
	BITMAP	  ".#######"
	BITMAP	  ".##.####"
	BITMAP	  ".##.###."
	BITMAP	  "........"
	BITMAP	  "........"


	BITMAP	  "###..###"
	BITMAP	  "###..###"
	BITMAP	  "###..##."
	BITMAP	  ".#####.."
	BITMAP	  "..####.."
	BITMAP	  "..###..."
	BITMAP	  "........"
	BITMAP	  "........"


	BITMAP	  "#.##..#."
	BITMAP	  "#.##..#."
	BITMAP	  "#.##...."
	BITMAP	  "##.####."
	BITMAP	  "#######."
	BITMAP	  ".######."
	BITMAP	  "........"
	BITMAP	  "........"


	BITMAP	  "........"
	BITMAP	  ".###...#"
	BITMAP	  "####..##"
	BITMAP	  "#####.##"
	BITMAP	  "#..####."
	BITMAP	  "#...###."
	BITMAP	  "#.#.###."
	BITMAP	  "#...###."


	BITMAP	  "......##"
	BITMAP	  "#....###"
	BITMAP	  "##...###"
	BITMAP	  "##..####"
	BITMAP	  ".#######"
	BITMAP	  ".####.##"
	BITMAP	  ".####.##"
	BITMAP	  ".####.##"


	BITMAP	  "........"
	BITMAP	  "#.#...##"
	BITMAP	  "#.#...##"
	BITMAP	  "#.#...##"
	BITMAP	  "..#...##"
	BITMAP	  "..#...##"
	BITMAP	  "..#...##"
	BITMAP	  "..#...##"


	BITMAP	  "#......."
	BITMAP	  "#......."
	BITMAP	  "#......."
	BITMAP	  "........"
	BITMAP	  "........"
	BITMAP	  "........"
	BITMAP	  "........"
	BITMAP	  "........"


	BITMAP	  "#..####."
	BITMAP	  "#.###.#."
	BITMAP	  "#.##..##"
	BITMAP	  "#.##..##"
	BITMAP	  "#......."
	BITMAP	  "#......."
	BITMAP	  "#......."
	BITMAP	  "#......."


	BITMAP	  ".####..#"
	BITMAP	  ".####..#"
	BITMAP	  ".####..#"
	BITMAP	  ".####..."
	BITMAP	  "........"
	BITMAP	  "........"
	BITMAP	  "........"
	BITMAP	  "........"


	BITMAP	  "..##..##"
	BITMAP	  "#.######"
	BITMAP	  "#..#####"
	BITMAP	  "#...####"
	BITMAP	  "......##"
	BITMAP	  "......##"
	BITMAP	  ".....##."
	BITMAP	  ".....##."



	END

The map file looked like this:

// --------------------------------------------------
// Maps.inc
// Generated by Tile Studio version 3.0
// Date: 2012/10/28, Time: 23:02:58 
// --------------------------------------------------

const u16 Tiles1_TileCount = 1;


const u16 pplogoshadow_TileCount = 17;

#define pplogoshadow_Map1_Width   (7)
#define pplogoshadow_Map1_Height  (3)

const u16 pplogoshadow_Map1[7 * 3] =
{
    1,  2,  3,  4,  0,  5,  0,
    6,  7,  8,  9, 10, 11, 12,
   13,  0,  0,  0, 14, 15, 16
};



Which is mainly just a list of the tile numbers that make up the image. This can easily be converted to data statements.

 

If you use Tile Studio a lot, I think you can write your own output definitions and avoid all this file manipulation. But I only used it a few times.

 

 

Does this help?

 

Catsfolly

  • Like 1
Link to comment
Share on other sites

That absolutely does. Thanks!

 

I only used it for monochrome image conversion, so I didn't have any palettes. I selected the "gameboy option and was able to convert the files generated with a few substitutions.

 

For example, converting the shadow map image created this file:


[snip]

 

 

Does this help?

 

Catsfolly

Link to comment
Share on other sites

Using an editor, I made the following substitutions (in this order):

 

replace 'DCB ` with 'BITMAP "'

replace '0, ' with '.'

replace '1, ' with '#'

replace '1' with '#"'

replace '0' with '."'

I'm curious now... Your editor of choice wouldn't happen to be 'vi' or a related clone, would it? (I rock 'vim' myself, and that sequence strikes me as something I'd do with a series of s///g operations...) Or are you more the EMACS type, or into the world of GUI editors?

Link to comment
Share on other sites

I'm curious now... Your editor of choice wouldn't happen to be 'vi' or a related clone, would it? (I rock 'vim' myself, and that sequence strikes me as something I'd do with a series of s///g operations...) Or are you more the EMACS type, or into the world of GUI editors?

I did quite a bit of vi back in the day, when terminals were terminals. So vi probably still influences my thinking.

But, I did this with a gui editor.

 

Catsfolly

Link to comment
Share on other sites

I did quite a bit of vi back in the day, when terminals were terminals. So vi probably still influences my thinking.

But, I did this with a gui editor.

 

 

Gotcha. :-)

 

I've got an 80 column brain, I think, with hjkl baked into my fingers. Trips me up when I do use a GUI editor, as they often get cranky when you hit escape (well, Outlook at least does), and I've been known to fill a line or two of text with jjjjjjjjjjjjjj or kkkkkkkkkkkkkkk..... :)

  • Like 1
Link to comment
Share on other sites

  • 4 weeks later...

My hat goes off, and my heart goes out, to the lo-fi Intellivision graphic artists out there. I have spent at least 40 minutes on making just 2 tiles look semi-presentable.

 

You wouldn't believe—or maybe you would—how many times I redrew the tank in Space Patrol, and some of the other elements (rocks and space plant, particularly).

Link to comment
Share on other sites

This animation took me 3 days--back when I was working 20 hour days on Christmas Carol. The first 8 or 10 hours were spent on just getting the look of the Snowman right.

@@Horiz:
:0       :1       :2       :3       :4       :5       :6       :7       :8       :9
..####.. .####... ........ ........ .####... ..####.. ...####. ........ ........ ...####.
.######. ######.. .####... .####... ######.. .######. ..###### ...####. ...####. ..######
.#.#.##. #.#.##.. ######.. ######.. #.#.##.. .#.#.##. ..#.#.## ..###### ..###### ..#.#.##
.######. ######.. #.#.##.. #.#.##.. ######.. .######. ..###### ..#.#.## ..#.#.## ..######
.##..##. ##..##.. ######.. ######.. ##..##.. .##..##. ..##..## ..###### ..###### ..##..##
..##.#.. .##.#... ##..##.. ##..##.. .##.#... ..##.#.. ...##.#. ..##..## ..##..## ...##.#.
.######. .#####.. .####... .####... .#####.. .######. ..#####. ...####. ...####. ..#####.
.##.###. .#.####. .######. .######. .#.####. .##.###. .###.##. .######. .######. .###.##.
######## ######## ##.##### ##.##### ######## ######## ######## #####.## #####.## ########
###.#### ##.##### ######## ######## ##.##### ###.#### ####.### ######## ######## ####.###
######## ######## ##.##### ##.##### ######## ######## ######## ####.### ####.### ########
###.#### ###.#### ######## ######## ###.#### ###.#### ###.#### ######## ######## ###.####
######## ######## ###.#### ###.#### ######## ######## ######## ###.#### ###.#### ########
.######. .######. ######## ######## .######. .######. .######. ######## ######## .######.
.######. .######. .######. .######. .######. .######. .######. .######. .######. .######.
..####.. ..####.. ...####. ...####. ..####.. ..####.. ..####.. .####... .####... ..####..

And I remember spending 4 days in re-doing Carol's animation to make it more smooth and natural.

@@Horiz
:0       :1       :2       :3       :4       :5       :6       :7       :8       :9       :10      :11      :12      :13      :14      :15      :16      :17      :18      :19      :20      :21      :22      :23
...###.. ...###.. ...####. ...####. ...###.. ...###.. ...####. ...####. ...###.. ...###.. ...####. ...####. ...###.. ...###.. ...####. ...####. ...###.. ...###.. ...####. ...####. ...###.. ...###.. ...####. ...####.
..###.#. ..###.#. ..###... ..###... ..###.#. ..###.#. ..###... ..###... ..###.#. ..###.#. ..###... ..###... ..###.#. ..###.#. ..###... ..###... ..###.#. ..###.#. ..###... ..###... ..###.#. ..###.#. ..###... ..###...
..###... ..###... ..###... ..###... ..###... ..###... ..###... ..###... ..###... ..###... ..###... ..###... ..###... ..###... ..###... ..###... ..###... ..###... ..###... ..###... ..###... ..###... ..###... ..###...
..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###..
..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###.. ..$###..
..$$$$.. ..$$$$.. ..$$$$.. ..$$$$.. ..$$$$$. ..$$$$$. ..$$$$$. ..$$$$$. ..$$$$$. ..$$$$$. ..$$$$.. ..$$$$.. ..$$$$.. ..$$$$.. ..$$$$.. ..$$$$.. ..$$$$$. ..$$$$$. ..$$$$$. ..$$$$$. ..$$$$$. ..$$$$$. ..$$$$.. ..$$$$..
...##$.. ...##$.. ...##$.. ...###$. ...###$. ...###.$ ...###.$ ...###$$ ...###$. ...###$. ...##$.. ...##$.. ...##$.. ...##$.. ...##$.. ...###$. ...###$. ...###.$ ...###.$ ...###$$ ...###$. ...###$. ...##$.. ...##$..
..##.$.. ..##.$.. ..##.$.. ..##.#$. ..##.#.$ ..##.#.$ ..##.#.$ ..##.#.$ ..##.#$$ ..##.#$$ ..##.$$. ..##.$$. ..##.$.. ..##.$.. ..##.$.. ..##.#$. ..##.#.$ ..##.#.$ ..##.#.$ ..##.#.$ ..##.#$$ ..##.#$$ ..##.$$. ..##.$$.
..#.#$$. ..##.$$. ..##.$$. ..##.#$. ..###..$ ..##.#.$ ..##.#.$ ..##.#.$ ..#.##.$ ..##.#.$ ..##.#$$ ..##.#$$ ..###$$. ..##.$$. ..##.$$. ..##.#$. ..#.##.$ ..##.#.$ ..##.#.$ ..##.#.$ ..###..$ ..##.#.$ ..##.#$$ ..##.#$.
..#.##$. ..#.##$. ..##.#$. ..###.$. ..####$. ..###..$ ..##.#.. ..##.#.$ ..#.##.$ ..#.##.$ ..##.#.$ ..###..$ ..####$. ..###.$. ..##.#$. ..##.#$. ..#.##$. ..#.##.$ ..##.#$. ..###..$ ..####.$ ..###..$ ..##.#.$ ..##.#.$
..$###.. ..#$##.. ..#$##.. ..###$.. ..####$. ..###$.. ..##$#.. ..#$##.. ..$###.. ..#$##.. ..#$##.. ..###$.. ..####$. ..###$.. ..##$#.. ..#$##.. ..$###.. ..#$##.. ..#$##.. ..###$.. ..####.$ ..###$.. ..##$#.. ..#$##..
..####.. .#####.. ..####.. ..####.. ..####.. .#####.. ..####.. ..####.. ..####.. .#####.. ..####.. ..####.. ..####.. .#####.. ..####.. ..####.. ..####.. .#####.. ..####.. ..####.. ..####.. .#####.. ..####.. ..####..
..###... .##.##.. ..#.#... ...##... ..###... .##.##.. ..#.#... ...##... ..###... .##.##.. ..#.#... ...##... ..###... .##.##.. ..#.#... ...##... ..###... .##.##.. ..#.#... ...##... ..###... .##.##.. ..#.#... ...##...
...##... .#...##. ..#.###. ...###.. ...##... .#...##. ..#.###. ...###.. ...##... .#...##. ..#.###. ...###.. ...##... .#...##. ..#.###. ...###.. ...##... .#...##. ..#.###. ...###.. ...##... .#...##. ..#.###. ...###..
...##... ##....#. .#....#. ...#.#.. ...##... ##....#. .#....#. ...#.#.. ...##... ##....#. .#....#. ...#.#.. ...##... ##....#. .#....#. ...#.#.. ...##... ##....#. .#....#. ...#.#.. ...##... ##....#. .#....#. ...#.#..
...##... ......#. .#...... ...#.... ...##... ......#. .#...... ...#.... ...##... ......#. .#...... ...#.... ...##... ......#. .#...... ...#.... ...##... ......#. .#...... ...#.... ...##... ......#. .#...... ...#....

Two or three days went into making her walk sneakily:

@@Sneak
:0       :1       :2       :3       :4       :5
...####. ...####. ....###. ....###. ...####. ..####..
..###... ..###.#. ...###.# ...###.# ..###... .###....
..###... ..###... ...###.. ...###.. ..###... .###....
..$###.. ..$###.. ...$###. ...$###. ..$###.. .$###...
..$###.. ..$###.. ...$###. ...$###. ..$###.. .$###...
...$$$.. ..$$$$$. ...$$$$$ ...$$$$. ..$$$$$. ..$$$$..
...###$. ...###$. ....###$ ....###$ ...###$$ ...###$.
..#.##$. ..#.##$. ...##.#$ ...##.#$ ..##.#.$ ..##.#$$
$#.###$. .$.###$. ..$..#.$ ...#.##$ ..#.##.$ ..#.##.$
..####$. ..####$. ..####.$ ..$.##.$ .$.###.$ .$.###.$
..####.. ..####.. ######.. ..####.. ..####.. ..####..
..####.. .#####.. ######.. .#####.. ..####.. ..####..
..###... .##.##.. #...##.. .##.##.. ..#.#... ...##...
...##... .#...##. #....##. .#...##. ..#.###. ...###..
...##... ..#...#. ......#. ##....#. .#....#. ...#.#..
...##... ......#. ......#. ......#. .#...... ...#....

Making fire took over 12 hours, five of which were spent in reading animation tutorials and analysing animated GIF files frame by frame. The hardest part is keeping the essence of moving flames in such small detail.

@@Flame
:0       :1       :2       :3       :4       :5       :6       :7
........ ........ ...#...# .......# ....#... ...#.... ........ .......#
........ ...#...# ...#..#. ........ ...##... ...#.... ......#. ........
.......# ..##..## ......#. ....#... ...#.... ........ .....##. ........
...#..## ..#...#. ........ ...##... ...#.... ......#. ......#. ........
..##..#. ......#. ....#... ...#.... ........ .....##. ........ ..#...#.
..#...#. ...#.... ...##... ...#.... .....#.. .....#.. ........ ..#...#.
........ ...#.... ...#.... ........ .....#.. ........ .....#.. ..#..#..
...#.... ...#.#.. ........ ...#.... ...##... .....#.. ..#.#... ..##.#..
..##.... ..##.#.. ..#..... ...##... ..###... ...###.. ..#.#... ..###...
..###... ..####.. ..###... ..###... ..###... ..###... ..###... ...##...
..###... ..###... ..####.. ..####.. ..####.. ..####.. ..####.. ..####..
..####.. ..####.. ..####.. ..####.. ..####.. ..####.. ..####.. ..####..
..#$##.. ..#$##.. ..#$##.. ..#$##.. ..#$##.. ..#$##.. ..#$##.. ..#$##..
..#$$$.. ..#$$$.. ..#$$$.. ..#$$$.. ..#$$$.. ..#$$$.. ..#$$$.. ..#$$$..
...##$$$ ...##$$$ ...##$$$ ...##$$$ ...##$$$ ...##$$$ ...##$$$ ...##$$$
.......$ .......$ .......$ .......$ .......$ .......$ .......$ .......$

And, of course, the title screen took me about a week. As the video below shows, each change-build-run cycle involved often a single pixel:

https://vimeo.com/54165189

 

 

Yup, pixel art is a time and life absorbing sponge, mostly when you're not pixel artist yet obsessive as one. :)

 

-dZ.

Edited by DZ-Jay
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...