Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411512 Posts in 69376 Topics- by 58431 Members - Latest Member: Bohdan_Zoshchenko

April 27, 2024, 11:21:37 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperArt (Moderator: JWK5)NES-accurate palette limits
Pages: [1]
Print
Author Topic: NES-accurate palette limits  (Read 12381 times)
Lilfut
Level 0
**


View Profile
« on: March 28, 2012, 08:04:14 AM »

Hello, I am currently working on an NES-style Megaman fangame. One of the bosses, Chaos Man, is designed to have mismatching colors:

Now, to clarify, though this is being made in Game Maker, I want to simulate the NES's limitations as closely as possible.
What I want to know is, if I simulated sprite layering, how much, if at all, would I need to reduce the palette? More simply, how many palettes can the NES have on-screen at once (though, of course, one will be reserved for Mega Man himself)?
Logged
Schoq
Level 10
*****


♡∞


View Profile WWW
« Reply #1 on: March 28, 2012, 11:42:50 AM »

(though, of course, one will be reserved for Mega Man himself)?
Two, actually: One for the body and one for the face (which I think it shares with the health bar).

Chaos Man as he is now has too many colours to display even if his sprites were the only ones on screen. You have to reduce him to 3+3 + transparency. His attack sprites should also share these colours.

http://i.imgur.com/HFhAT.gif

http://www.wayofthepixel.net/pixelation/index.php?topic=10784.msg115062#msg115062
Logged

♡ ♥ make games, not money ♥ ♡
Lilfut
Level 0
**


View Profile
« Reply #2 on: March 28, 2012, 11:44:25 AM »

So he'll have a total of 8 colors, excluding the outline? Okay, should be easy enough to deal with.
EDIT: 5, actually.
Shit.
Were there never any mappers that added more palettes or something? Keep in mind, the background palette could also be shared, possibly increasing the color limit.
« Last Edit: March 28, 2012, 11:55:23 AM by Lilfut » Logged
Schoq
Level 10
*****


♡∞


View Profile WWW
« Reply #3 on: March 28, 2012, 11:56:01 AM »

no, a total of 6 + transparency. Since each sprite palette has to include transparency.
Logged

♡ ♥ make games, not money ♥ ♡
Lilfut
Level 0
**


View Profile
« Reply #4 on: March 28, 2012, 11:57:13 AM »

And the background palette can't be shared at all.
I could also share a palette with Megaman, though it would mean a color change with every weapon switch. That would work with Chaos Man, actually.

Okay, so, I'm working on the fixed sprites now. One issue I noticed is that the gimmick for Chaos Man's stage is that he himself shows up throughout the level to harass Megaman by doing things like disabling some of his weapons. This seems like a big issue, palette-wise, until I realized that, being Chaos Man, he might not just stick with one outfit. Therefore, he has 3 variable palettes: one shared with Megaman (changes based on weapon), two shared with enemies (changes based on enemies in room), and then he has the face palette, which I don't believe ever changes.

Edit:
« Last Edit: March 28, 2012, 12:25:08 PM by Lilfut » Logged
Kramlack
Guest
« Reply #5 on: March 28, 2012, 02:05:49 PM »

Holy hell, this is a mess. Chaos Man would constantly be in a flickering state with the amount of sprites he contains. NES can only produce 8 sprites per raster line. Chaos Man alone with only 3 colours would take up 4, and across the body you're using NINE extra sprites that I can count. You would basically never see his body, and that's if he was the only thing on the screen.

Basically, you need to really optimize the palette or reduce the colours quite a bit to make it work.

Here's my breakdown of his first frame. I didn't bother pointing out the sprites after the middle because my point has already been made.
Logged
Lilfut
Level 0
**


View Profile
« Reply #6 on: March 28, 2012, 02:11:08 PM »

Well, in that case I think I'll fudge the limitations a bit.
I figure this new sprite is closer to the NES's limitations while still preserving my vision, and I think it looks better anyway.
Logged
Kramlack
Guest
« Reply #7 on: March 28, 2012, 02:23:32 PM »

If you're going to ignore the restrictions then why even use them in the first place?
Logged
Lilfut
Level 0
**


View Profile
« Reply #8 on: March 28, 2012, 02:31:14 PM »

I'm not universally ignoring them. What I have could technically run on an NES, it would just lag out the ass. Furthermore, it looks more like a real NES sprite than the original draft.
Logged
Schoq
Level 10
*****


♡∞


View Profile WWW
« Reply #9 on: March 28, 2012, 02:58:56 PM »

One idea: colour him like a regular robot master, but constantly cycle the palettes.
Though I guess this is probably tough to do with game maker, and better suited for Chrome Man or something :P

Another Idea: Play on the sprite flicker. Compose him out of many overlaid sprites but don't display them all at once.
Logged

♡ ♥ make games, not money ♥ ♡
Kramlack
Guest
« Reply #10 on: March 28, 2012, 03:08:13 PM »

One idea: colour him like a regular robot master, but constantly cycle the palettes.
Though I guess this is probably tough to do with game maker, and better suited for Chrome Man or something Tongue

Another Idea: Play on the sprite flicker. Compose him out of many overlaid sprites but don't display them all at once.

These are both incredible ideas. The first one was already done by Galaxy Man in MM9 actually.
« Last Edit: March 28, 2012, 03:13:46 PM by Kramlack » Logged
Lilfut
Level 0
**


View Profile
« Reply #11 on: March 28, 2012, 04:18:10 PM »

The second one's definitely worth doing. Thanks for the tip.
Logged
DavidCaruso
YEEEAAAHHHHHH
Level 10
*



View Profile
« Reply #12 on: March 28, 2012, 06:17:52 PM »

Alternative really crazy-ass solution: change one sprite palette color every 2 or 3 rows and pretend you're using scanline interrupts, lol (you can even have this as an excuse to use VRC6 for music since that comes with an IRQ counter)
Logged

Steel Assault devlog - NES-style 2D action platformer: successfully Kickstarted!
ink.inc
Guest
« Reply #13 on: March 28, 2012, 07:02:02 PM »

this is being made in Game Maker

What I have could technically run on an NES

i doubt this

a gm game with nothing in it still uses 22,908 K of ram to run
Logged
ஒழுக்கின்மை (Paul Eres)
Level 10
*****


Also known as रिंकू.


View Profile WWW
« Reply #14 on: March 28, 2012, 07:23:02 PM »

that depends on the version of game maker; later versions are more ram-hungry

but yeah, if you're going to do "nes restrictions" it's best not to keep bending the rules too much. suggested readings, if you haven't read these:

http://en.wikipedia.org/wiki/List_of_videogame_consoles_palettes#NES
http://en.wikipedia.org/wiki/Picture_Processing_Unit
http://en.wikipedia.org/wiki/Nintendo_Entertainment_System#Video
Logged

rogerlevy
Guest
« Reply #15 on: April 05, 2012, 11:31:46 AM »

i would suggest that OP simply use YY-CHR.

http://www.smwiki.net/wiki/YY-CHR

no point bending over backwards to create the impression of restrictions when you could just work within enforced ones.
Logged
Azure Lazuline
Level 2
**



View Profile WWW
« Reply #16 on: April 05, 2012, 09:01:37 PM »

If you're just trying to make something that "feels like an NES game", it's good to try to stick with the limits as much as possible, but you can fudge them a little for added effect. For example, look at Mega Man 9. I believe

has notes too high for the NES to handle, and the

are impossible too (or if they are possible there, they're definitely not when it shows up in the Wily stages since there's a background behind it). But it's not like someone playing the game would say "The platform is taking up too many sprite slots, it totally breaks the immersion!"
Logged

Overkill
Level 3
***


Andrew G. Crowell


View Profile WWW
« Reply #17 on: April 05, 2012, 10:24:23 PM »

I once made something that would convert a palette image into CHR data on the NES. You gave it a paletted image, and it'd convert that into a 2-bit image by taking palette indexes modulo 4. https://github.com/Bananattack/nel-d/blob/master/tools/img2chr.py -- granted, this was for actual NES rom assets: https://github.com/Bananattack/nel-d/blob/master/tests/common/scroller_tiles.png which became http://dl.dropbox.com/u/72165/scroller.nes

I recommend you just keep things color-less 3-shade (+ black = transparency) art until you apply the NES palette. That's what I did, and I could keep all my assets in NES restrictions. Of course if you're not making an NES game, but want to keep the NES feel, I suggest you respect palette limitations and feel free to do more than 8-sprites-per-row, just don't abuse sprite layering too much, like what you were doing in this:



But if you're just going for a general retro look, I recommend not even using the NES palette and just going with sprite with 3 colors + transparency, because the NES palette is kind of terrible. It's only really necessary if you're doing a strict NES homage, otherwise there are a billion other palettes you could be using instead that would probably be more fitting.

I guess for an original Mega Man tribute (exempting MM9 and MM10 which disregard sprite limitations entirely other than 3-colors per sprite for the most part -- even if they allow a flicker-mode, they still appear to use more than 64 sprites on-screen in spots), you're sort of stuck using the NES palette, but in that I also suggest respecting the 8-sprite-per-scanline/64-sprite-total limitation. MM9 art is a bit of a disappointing sequel when you consider how great the art looked in MM4-6.
« Last Edit: April 09, 2012, 07:52:02 PM by Overkill » Logged

Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic