Page 1 of 1

Please help answer technical questions for pixel artists

Posted: Fri May 19, 2017 8:05 pm
by Bitbeam
Hi everyone. I'm a long time pro pixel artist (and also PC-Engine fan) and I'm working on rounding up concise and clear (artist friendly) info to help pixel artist who want to make authentic moc-ups and game art for the PC-Engine. I'm also doing this for all the other popular classic consoles, but seeing as I think the PC engine is one of the most under-appreciated consoles in the west, I'm especially interested in getting this concise information together and available to the great modern pixel artists out there.

I want to create as clear and concise a document as possible (for artists) where every sentence offers definitive guidance for exactly what rules and limits to follow, without drowning, confusing or intimidating artists with lots of technical jargon.

The final document will eventually be a web page, with attached images, animations, examples, and links to communities like this, and also special thanks to anyone who helped improve or confirm or clarify any of the information. This information will also be distributed with the industry standard pixel art program, so It's my hope this will encourage and entice many of todays best pixel artist to fall in love with developing art and games for the PC-Engine.


Here's (below) what I have so far. Can anyone who's interested please suggest edits, additions and provide the critical missing info?


_____________________________________________________________________________________________________________________________________________________________________



PC Engine/ TG-16

Graphical summary


Standard game resolution: The majority of games ran at 256x239. 352 and even 512 display width resolutions were possible, but very few games used those higher resolutions due to their hit on performance.

color range: The PC-Engine (Turbographics 16) uses 3 bits per color channel, providing a palette of 512 colors.

Number of color indexes available:
512 indexes used, 241 dedicated to background art and 241 indexes dedicated to sprites! That's SIXTEEN 16 color palettes EACH for backgrounds and sprites with the first color index of each palette being used for transparent pixels.

Background graphics color limitations:
Background graphics are always made from 8x8 pixel tiles. Every single tile can use any or all of the 16 colors from any of the sixteen 16 color palettes reserved for background graphics!

256 unique tiles can be used.

Background tiles CAN NOT be flipped horizontally or vertically.

Each background tile can be set to display either behind or in front of the sprites!

NOTE: The PC-Engine/TG-16 did not have any direct support for “dual playfield” layered scrolling, but there are two methods which some games put to use in order to create some fantastic parallax scrolling in their games.

The first method is to actually use animated tiles which change their appearance to look as though they are scrolling independently and at a different speed from the rest of the background. This is great when the background can be a small repeating pattern such as a brick wall etc. Be careful though. As this eats up your already limited number of available tile images quickly. For example: to allow a single 8x8 tile to look like a wall pattern which can scroll independently of the background, you need a total of 8 entire tile images. One image for each 1 pixel offset making the tile loop (scroll) horizontally. If you wanted your single 8x8 pixel tile to be able to scroll independently in both directions, you'd need all 8 vertical offset images for every horizontal offset! This would require a whopping 64 tiles! For this reason, most games which use this method limit the parallax effect to either horizontally or vertically and not both at the same time.

The second method doesn't use up any additional tile image space because it uses a trick to slice your background screen into horizontal segments, where each segment can be scrolled at a different speed! The slicing of the background screen has no effect on sprites, so don't worry, the player character wont be sliced in half, with their legs scrolling at a different speed than their upper body.
This method can only slice the screen into horizontal strips, not vertically.

Here is some more detailed information about this method, though this page is for NES, the general methodology is the same: http://www.dustmop.io/blog/2015/12/18/n ... cs-part-3/


Sprites: The PC-Engine/TG-16 can display 16 fifteen color (plus a “clear” index for transparent pixels) sprites per scan line (row of pixels on screen). You can have 64 sprites on screen in total, but any more than 16 per scan line will result in sprites flickering (becoming invisible). Each sprite can use any of the 16 sixteen color palettes available for sprites/

You can individually set any sprite to be any of the following sizes: 16x16,16x32,16x64,32x16,32x32,32x64

Sprites CAN BE horizontally or vertically flipped !

For more detailed technical references:

https://www.zophar.net/fileuploads/2/10 ... vdcdox.txt
http://archaicpixels.com/Main_Page


______________________________________________________________________________________________________________________________

Thanks so much for your time, any help would be greatly appreciated.

Re: Please help answer technical questions for pixel artists

Posted: Sun May 21, 2017 11:55 am
by MooZ
Hi!

That's a great idea.

Here are some remarks:

The color #0 is used for background/overscan. I don't remember if it's the color #0 (background palette) of color #256 (first palette entry of the sprite palettes).

You have 3 vertical resolution 192, 224 (the standard resolution), 240 (overscan).

The sprite limit is more subtle than that. It's limited by the memory bandwidth of the VDC.
You can not display more that 16*16 sprite pixels per line. So if you have 16 sprites with a width of 32 pixels on a line, only 8 of them will be displayed.
I think the confusion comes from the Sprite Overflow VDC interruption. I'll try to code a sample program to test if it's really triggered when there are more than 16 sprites on a given scanline, or if there's more than 16*16 sprites pixels.

Check Charles' doc for more technical infos ( https://github.com/asterick/TurboSharp/ ... cetech.txt )

Re: Please help answer technical questions for pixel artists

Posted: Fri May 26, 2017 2:12 pm
by Bitbeam
Thanks for the feedback. Anyone else? I'm glad/surprised I didn't make any mistakes or misrepresent anything. ;)

Re: Please help answer technical questions for pixel artists

Posted: Sun Aug 27, 2017 1:59 pm
by Kaminari
1/ The three available resolutions are actually:

256x224 (272x240 overscan)
336x224 (352x240 overscan)
512x224 (512x240 overscan)

The overscan area is usually never visible on a properly calibrated "square" CRT (contrary to what Chris Covell wants you to believe).

2/ Apart from tile mapping and screen splitting, a third method to create parallax fields is to use sprites. You can fill an entire 256x224 display with only 32 sprites (example: title screen of Raiden). In order to mitigate the 16-sprite horizontal limit, you can cut the display to 240x224 and make whole lines of backgrounds with only 15 sprites (example: Genpei Toma Den).

Dracula X uses a combination of the three methods to simulate multiple playfields, although I suspect it runs at 30 fps.