AuthorTopic: The Non-Exhaustive Restriction Guide  (Read 54422 times)

Offline saimo

  • 0010
  • *
  • Posts: 164
  • Karma: +1/-0
    • View Profile
    • RETREAM

Re: The Non-Exhaustive Restriction Guide

Reply #10 on: September 17, 2010, 09:28:28 pm
Yeah, I can imagine a few good examples, like how the tiles were gradient-hued in Lionheart on the first stage...

Definitely a good example, although, IMHO, negatively counter-balanced by the saturated purple of the sky - I'd wouldn't be surprised if the sky colors weren't chosen by Henk (and viceversa).
« Last Edit: September 17, 2010, 09:30:43 pm by saimo »

Offline ptoing

  • Administrator
  • 0101
  • *
  • Posts: 3048
  • Karma: +0/-0
  • variegated quadrangle arranger
    • the_ptoing
    • http://pixeljoint.com/p/2191.htm
    • View Profile
    • ptoing bloing

Re: The Non-Exhaustive Restriction Guide

Reply #11 on: September 17, 2010, 09:36:44 pm

12 bit RGB444 palette (4096 colours). This basically means you only have 16 instead of 256 choices per RGB channel.
On modern PCs this basically would be all values 00, 11, 22, 33, 44... up to FF.

000 ... FFF


Yeh I know on Amiga it is just 000...FFF but on PC that would translate to 00 and FF in the case of the Amiga I think because you often see old pics converted F0F0F0 which does not look right. From what I gather the Amiga had the full range of brightness, as opposed to the Atari ST where F0 seems to be the right way to convert stuff.

There are no ugly colours, only ugly combinations of colours.

Offline saimo

  • 0010
  • *
  • Posts: 164
  • Karma: +1/-0
    • View Profile
    • RETREAM

Re: The Non-Exhaustive Restriction Guide

Reply #12 on: September 17, 2010, 10:12:26 pm
Yeh I know on Amiga it is just 000...FFF but on PC that would translate to 00 and FF in the case of the Amiga I think because you often see old pics converted F0F0F0 which does not look right. From what I gather the Amiga had the full range of brightness, as opposed to the Atari ST where F0 seems to be the right way to convert stuff.

Ah, wait... so you were talking about single channels? If so, sorry, what you said is correct :y:: in fact, AGA Amigas, when programmed to work in 12-bit mode, automatically mirror the higher 4 bits in the lower 4 bits (because the palette is 24-bit anyway), basically doing the 0 ... F -> 00 ... FF conversion you indicated.
Well, maybe that passage could use some rewording ;)

Offline ilkke

  • 0010
  • *
  • Posts: 234
  • Karma: +0/-0
  • pix off
    • iLkKke
    • http://pixeljoint.com/p/9270.htm
    • View Profile
    • 'daily' art blog

Re: The Non-Exhaustive Restriction Guide

Reply #13 on: February 22, 2012, 10:55:47 am
Just realized I could add some info for Amiga500.

Overscan mode allows drawing the image on the screen border. It does not increase the resolution in the sense of making pixels smaller, instead it makes the page bigger. Used whenever you want to avoid the screen border being coloured with whatever is in palette index 0.

There is a third 'special' (6-bitplane) mode on amiga, in addition to extra-halfbright (EHB) and hold-and-modify (HAM). It is called dual-playfield, and allows the bitplanes to be combined in 2 3-bitplaned layers, each with 8 colors (3bp). The advantage is that these can be scrolled by hardware independently with great speed. Some games use this (chuck rock 2, bubba & stix, turrican 2 intro). Hardware sprites can be used to hide the limitations of DPF mode, as well as copper splits.

On the topic of copper splits, it is commonly known that copper can change the entire palette each horizontal line. What is less known is that it can change a single colour index every 8 pixels (or was it 16?). This theoretically enables use of extra colours.

It is also perhaps worth noting that Amiga could easily switch between PAL and NTSC frequencies on the fly (you only needed to poke one register), thus for example stretching the 320x200 ntsc image to fullscreen that would be 320x256 in PAL. The only visible difference would be more prominent scanlines in NTSC, but in turn the clock would increase to 60hz from 50hz.

(*copper = one of amiga's 2 graphic coprocessors)
i

Offline Ai

  • 0100
  • ***
  • Posts: 1070
  • Karma: +2/-0
  • finti
    • View Profile

Re: The Non-Exhaustive Restriction Guide

Reply #14 on: February 27, 2012, 02:07:58 pm
You guys might find this interesting -- CPC modes 5 and 6
These are actually invented modes that are adequately restricted to be interesting:
Quote
1.- Mode 5: Is a cpc mode 1(320x200x4) using rasters, in this mode you have
one ink fixed for all the screen, two inks fixed for each line and the
fourth ink can change each 48 pixels, the screen size is 288 x 256 pixels.
The palette is storage in the next order: Fixed colour, the two colours
fixed for the first line, the six variable colours for the first line, the
two colours fixed for the second line, the six variable colours for the
second line,...

2.- Mode 6: Is a cpc mode 2(640x200x2) using rasters, in this mode you have
one ink that is fixed for each line and the other ink can change each 96
pixels, the screen size is 672 x 256 pixels. The palette is storage in the
next order: Fixed colour for the first line, the seven variable colours for
the first line, the fixed colour for the second line, the seven variable
colours for the second line,...

It is possible to display on a real CPC, with sufficiently optimized raster code.
AA tutorial about handling irregular lines.

If you're not at least a little uncomfortable, chances are you're not learning that much.

Offline Ryumaru

  • Moderator
  • 0100
  • *
  • Posts: 1639
  • Karma: +0/-0
  • to be animated soonly
    • View Profile

Re: The Non-Exhaustive Restriction Guide

Reply #15 on: March 14, 2012, 11:08:47 am
Great post; I think showing some pieces that go with the restrictions would be nice as well. Can you list any of the games that used that expensive cartridge for the NES? And did the artists use that extra bit of freedom well?

Offline Kasumi

  • 0010
  • *
  • Posts: 273
  • Karma: +1/-0
    • View Profile

Re: The Non-Exhaustive Restriction Guide

Reply #16 on: March 14, 2012, 12:46:36 pm
There are several expensive cart setups for NES. I guess MMC5 is the main one I specifically don't like.  :)

Here's a list of all the MMC5 games.

I honestly haven't played too many of them, as most are japan only/no one talks about them enough for me to care to dig them up. Most have heard of Castlevania III, though. I haven't gone over it with a fine tooth comb, but from what I remember from it... no. The artists didn't really take advantage. In fact, they may not have actually used the extended attributes (what allows for a different palette per 8x8 region instead of 16x16) at all, they may have chosen MMC5 for any of the other cool coding things it offers. I've seen "regular" NES games that look much better. Look at these backgrounds! All with "regular" graphical limitations.

Have you heard of Retro City Rampage? The game was actually initially developed as an actual NES game under a different name and it used MMC5. It's actually the best use of the different background palette per 8x8 tile I've seen. Here's a video. The difference is pretty subtle. At 0:56 and 1:33 in the video, you can see a hospital building. Two of those orange signs on the building are 8x8 and a different palette than what surrounds them. (At least... I THINK they're 8x8. A rom was never released, and it's hard to count pixels on a scaled youtube video.  :crazy:) Then again, they could just as easily be sprites. I say they're tiles, because all four sprite palettes are also on that screen and while one contains orange, it's not the shade of the signs. Plus the signs are "on the grid" and they wouldn't need to be if they were sprites.

That game is actually also super smart with its palette use. It may have been able to look more or less as good without MMC5, but MMC5 also lets you do a lot of neat coding the game probably couldn't have lived without. MMC5 also extends the audio, giving you two extra sound channels to work with.

Once again, I haven't looked super closely, but I think even the non NES Retro City Rampage doesn't break the MMC5 graphical limitations for its game world. It uses a higher resolution than NES, and it may or may not display more than 64 sprites at once, but it seems to keep to four background palettes on screen at once, 1 palette per 8x8 tile, with one color (it chose black) being the same in all four palettes. Look for some videos of it, not only is it filled with NEStalgia, but it looks amazing and is definitely close enough to pull inspiration about what's possible from it.

For other expensive cart setups, there's VRC7 which as far I know know doesn't extend graphics in a way that's particularly exciting. (It allows very small parts of its tileset to be swapped out rather than entire page, but some other less expensive boards have things like this). What makes VRC7 special is the audio expansion it provides. It's why Gimmick is able to sound so good.

VRC7 cover of this song. I generally even avoid famitracker songs made with any kind of audio expansion, but maybe it's because I'm salty that I can't use that stuff in my own game.

In any case, if you decide to look for neat artistic stuff in that MMC5 game list please post about anything good you find. I'd honestly love to see it as well, but I'm busy coding and tend to only go out of my way to indulge myself in cool NES stuff I can actually use for what I'm doing at the moment. Sorry!

As always, my post ended up super long. Sorry 'bout that.

tl;dr, I don't have screenshot examples of good use of MMC5's extended attributes, but look at Retro City Rampage! LISTEN TO GIMMICK! WOW!
« Last Edit: March 14, 2012, 01:23:09 pm by Kasumi »
I program NES games. Thus, I'm the unofficial forum dealer of too much information about the NES.

Offline HughSpectrum

  • 0010
  • *
  • Posts: 283
  • Karma: +0/-0
    • View Profile

Re: The Non-Exhaustive Restriction Guide

Reply #17 on: March 14, 2012, 01:49:34 pm
Quote
I honestly haven't played too many of them, as most are japan only/no one talks about them enough for me to care to dig them up. Most have heard of Castlevania III, though. I haven't gone over it with a fine tooth comb, but from what I remember from it... no. The artists didn't really take advantage. In fact, they may not have actually used the extended attributes (what allows for a different palette per 8x8 region instead of 16x16) at all, they may have chosen MMC5 for any of the other cool coding things it offers. I've seen "regular" NES games that look much better. Look at these backgrounds! All with "regular" graphical limitations.
That's because the Japanese version of Castlevania III didn't actually use MMC5, I believe.  Instead it had a special chip to greatly improve the music quality.

Offline Kasumi

  • 0010
  • *
  • Posts: 273
  • Karma: +1/-0
    • View Profile

Re: The Non-Exhaustive Restriction Guide

Reply #18 on: March 14, 2012, 02:13:01 pm
You're right! The japanese version is VRC6, which provides extended audio. MMC5 provided some of the same audio things. I guess they wouldn't have bothered making the graphics better just for localization. Too bad.
I program NES games. Thus, I'm the unofficial forum dealer of too much information about the NES.

Offline Trihook

  • 0001
  • *
  • Posts: 2
  • Karma: +0/-0
    • View Profile

Re: The Non-Exhaustive Restriction Guide

Reply #19 on: May 11, 2016, 02:10:45 pm
Sega Genesis/Mega Drive

The regular genny without the CD or 32x add-ons:

H40 mode
screen size: 320x224
Sprite pixels per scanline (this includes transparent pixels): 320
Sprites per scanline: 20
Sprites per screen: 80

H32
screen size: 256x224
Sprite pixels per scanline (this includes transparent pixels): 256
Sprites per scanline: 16
Sprites per screen: 64

Interlace mode
Same as normal modes, except the vertical resolution is doubled, for the tiles and sprites both. This makes the pixels appear wide. Tiles in this mode are 8x16 instead of the regular 8x8 px. This will take the same screen space as regular mode 8x8 tile. Using these double tiles will eat up ram that much faster, so the number of unique tiles is halved. Some emulators will not display this mode correctly.

Master System mode
Compatibility mode for Master System games, see the Master System post for more details.

Colors
Global palette is 9bit RGB ( https://en.wikipedia.org/wiki/List_of_monochrome_and_RGB_palettes#9-bit_RGB )
You can use 4 palettes of 16 colors each, the first index of each palette is considered transparent. The palette is applied per tile or sprite. One border color can be picked out of these 4 palettes, and it will be displayed for screen space out of the regular resolution, and also in case every pixel on the same spot is transparent. Picking one of the transparent indexes from the 4 palettes as this border color will show that particular color.

Extra colors
The genny can display shadow and higlight colors. The mechanics are a bit convoluted, so I'll just quote the original source
"This mode is kind of a mess. Essentially, tiles are either "shadowed" or "normal" based on whether or not their priority bit is set. Note that a transparent high priority pixel can make the opaque low-priority pixel below it "normal" rather than shadowed. On top of this, sprite colors $3E and $3F will modify the shadow highlight state of the pixels below them rather than displaying as normal, allowing you to set shadow or highlight status on a per-pixel basis. There are 15 distinct voltage levels for each channel. Normal mode maps the 8 values evenly over this range. Shadow scrunches them down to the bottom half and highlight pushes them up to the top half. There is exactly one level that overlaps between shadow and highlight."

The shadow and highlight palette taken from sega retro: http://segaretro.org/images/2/28/Mega_Drive_Palette.png

Sprites
Sprites are either 8x8, 16x16 or 32x32 pixels in size. It is allowed to mix sprite sizes.

Memory
The video ram can be configured as you wish more or less, with a regular count of 1296 tiles available for backgrounds. With on the fly loading from the cart and configurable ram allocation, the number of unique tiles is more or less a non issue. The tiles can have a flip by x and/or y flag set, so they can be flipped vertically and/or horizontally to save ram. Most carts are 512kb to 2Mb. Largest old commercial cart is 5Mb (Street Fighter 2), while today some use larger carts, like Pier Solar (8MB).

Layers
The genny can display 2 BG layers, 1 sprite layer and one window layer. The window layer substitutes the BG layer A where shown. It is non scrollable thus usually used for status bars and such. Each tile and sprite has a priority flag that can be set or unset, so it is possible with some scene arrangements to have the screen show what appears to be multiple background planes. If you look at some genny game videos, you can see that the different scrolling "planes" are actually only 2 BG layers that are separated from each other so that different parts of the same BG layer don't overlap.

Scrolling
BG layers can be scrolled at different speeds horizontally by pixel (those old skool wavy effecdts) or by tile. With some scene arrangements, this can be used to simulate many backgorund layers and fake 3d. Vertically, the BG layers can only be scrolled at different speeds in 16px (2 tile) increments. There is no hardware supported rotation.

Raster Splits
You can have raster splits on the genny, and change palettes on the fly to show more colors on screen at once, but the raster split has artifacts, so this is usually masked by sprites (sonic 1 water level is a good example).

As a side note, the genny has 2 gamepad ports, and a standard gamepad has a d-pad and 4 buttons (A B C + Start). Later on the genny got a controller with more buttons (I suspect Street Fighter 2 had something to do with this), which has a d-pad, 6 main button ( 2 rows of 3 buttons named A, B, C, x, y, z), a right shoulder button named mode and a centrally positioned START button. I'm not sure about light guns, wheels and multi taps, but I'm certain some games (Pete Sampras Tennis) had 2 extra gampad ports on the cart itself. Some sonic games used the so called "lock-on" technology which enabled players to plug a cart into a cart for extra features.

Take care not to use the top and botom row of tiles for anything important, the same as the first and last 2 column of tiles in any given screen, due to some TV screens cutting them off at some point or shifting the screen horizontally by some margin of pixels, depending on the TV manufacturer and the TV standard (PAL/NTSC).

Here's a link to a youtube video showing off some of the genesis more impressive gfx feats: https://www.youtube.com/watch?v=MjkDq02Apyw
« Last Edit: May 11, 2016, 04:19:35 pm by Trihook »