It is currently Thu Nov 23, 2017 7:13 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 55 posts ]  Go to page Previous  1, 2, 3, 4  Next
Author Message
PostPosted: Mon Jan 26, 2015 3:17 am 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 6450
Location: UK (temporarily)
rainwarrior wrote:
A clean palette change during normal background rendering is elite tier.
Since I already went to the effort of marking it up, I'm providing an annotated version of the Indiana Jones title screen here (made because I feel like it got glossed over earlier)
Attachment:
Indiana Jones and the Last Crusade-title-screen-with-cpu-ppu-activity-marked.png
Indiana Jones and the Last Crusade-title-screen-with-cpu-ppu-activity-marked.png [ 6.15 KiB | Viewed 2086 times ]
As stated, advanced technique. Very difficult to use with anything going on at the same time. (The entire top two-thirds of the screen is carefully timed loops for almost-pixel-exact writes to the PPU).

What's interesting, and a tangent, is that it hadn't occured to me that we could write the first half to $2006 before we disable video.

Sik wrote:
Wait, how do the emphasis bits work? Because that looks a tad more washed out than I expected.
It looks washed out because the greyscale bit is set at the same time, which turns all colors $XY (for 0≤Y≤$D) into $X0.Colors $xE and $xF are preserved so that black can stay black, even when the greyscale bit is set.


Last edited by lidnariq on Mon Jan 26, 2015 1:23 pm, edited 1 time in total.

Top
 Profile  
 
PostPosted: Mon Jan 26, 2015 3:40 am 
Offline
User avatar

Joined: Sun Jan 25, 2015 6:51 pm
Posts: 69
Location: Tokyo
rainwarrior wrote:
There are all sorts of permutations of weird technical possibilities that you could pull off on the NES, but a lot of them really aren't typical. Like, if you're trying to faithfully "fake" the look of an NES game, you probably don't want to be trying special tricks that aren't really part of the NES experience.

For instance, MMC5 8x8 pixel attributes were only used in 1 game, to my knowledge (Just Breed), and it was a Japan-only RPG. It's a thing you could technically pull off on an NES, but it's not characteristic of NES games at all. Part of the reason it wasn't used is that having 8x8 pixel granularity in the world can quadruple the complexity of your map (ROM size constraints, RAM constraints, extra collision tests required, etc.) so even if you had the special MMC5 hardware for 8x8 attributes, it's a significant burden on the NES to make a world that puts it to use!

A palette change for a status bar is an advanced and atypical technique. A clean palette change during normal background rendering is elite tier. Something like this usually comes with weird design constraints, and these are things you don't really consider when you're just looking at one technical issue; you only find them when you try to build a whole game. Suddenly you find this one technical feature you implemented is dictating how you have to design your maps, etc. A lot of these techniques aren't seen much for good reason (though sometimes it's just that we have better knowledge and tools now than back then).

An emphasis change like Noah's ark is fairly easy to implement. It's not typical, but it's very doable. Your water line has to be straight, this way, though.

Anyhow, I don't really understand the point of trying to push the NES graphical capabilites to the limit without actually using an NES. It doesn't matter what was technically possible or not. Just make a nice game, and if you like the NES look, imitate the parts of it that feel good to you, and ignore the rest. If it's important to you that it be NES-faithful, for some reason, you should probably stick to normal techniques that look and feel like real NES games, not technical obscurities... but... never mind my opinion. I don't know what motivates you. If you can make a good game out of it, do whatever suits you.


Thanks for the honest feedback. :beer: Sounds like you have had to go through this on a programming level and why one might avoid it.

The motivation for myself as designer is to get a feel for the limits (believe it or not having limits makes pixel art easier) so I can make a base. I'm quite interested in how far the NES was pushed in it's sunset years, and what the true limits are. Hopefully this will then be a defining factor in the look of the game.

_________________
twitter: http://twitter.com/hawkun
Pirate Pop Plus - gameboy styled game for 3DS, WiiU & Steam


Top
 Profile  
 
PostPosted: Mon Jan 26, 2015 7:49 am 
Offline
User avatar

Joined: Mon Jan 03, 2005 10:36 am
Posts: 2981
Location: Tampere, Finland
lidnariq wrote:
Colors $xE and $xF are preserved so that black can stay black, even when the greyscale bit is set.

Is this true? If so, the wiki is wrong:

wiki wrote:
When grayscale is turned on, the PPU ignores the lower nibble of each palette entry. This causes a bitwise AND with $30 on any value read from PPU $3F00-$3FFF, both on the display and through PPUDATA ($2007).


I've always thought black turns into $00 (gray) as well when gr[a|e]yscale mode is turned on.

_________________
Download STREEMERZ for NES from fauxgame.com! — Some other stuff I've done: kkfos.aspekt.fi


Top
 Profile  
 
PostPosted: Mon Jan 26, 2015 8:01 am 
Offline
User avatar

Joined: Fri Nov 12, 2004 2:49 pm
Posts: 7273
Location: Chexbres, VD, Switzerland
No, the wiki is right and lidnariq is wrong.


Top
 Profile  
 
PostPosted: Mon Jan 26, 2015 8:08 am 
Online
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 10118
Location: Rio de Janeiro - Brazil
Sik wrote:
Wait, how do the emphasis bits work? Because that looks a tad more washed out than I expected.

Yeah, that's because in grayscale mode all colors get to look like the grays in the first column of the palette, which actually has 2 whites and 2 grays. Not the best selection to represent a grayscale image (only 3 colors: white, gray, darker gray).

lidnariq wrote:
Colors $xE and $xF are preserved so that black can stay black, even when the greyscale bit is set.

Never heard of this. Did you test this behavior anywhere?


Top
 Profile  
 
PostPosted: Mon Jan 26, 2015 12:37 pm 
Offline
User avatar

Joined: Fri Aug 23, 2013 2:14 am
Posts: 264
I understand some people's concerns, namely Rainwarrior's where he says that emulating obscure NES tricks would be pointless if this were not to be made on the NES. Moreso since these tricks often impact game design in some cases. Though what if someone (or a team) wanted to make a prototype for an NES game using any possible technique to greatly enhance the experience in a higher, quicker to develop language? Of course, you can accomplish certain things much easier with the modern engine, without even using NES tricks.

And as for the MMC5 single tile attribute, one other game uses this also, though I'm not sure if you should really count it since it was not a proper commercial release. ROM City Rampage.


Top
 Profile  
 
PostPosted: Mon Jan 26, 2015 6:18 pm 
Offline
User avatar

Joined: Fri Nov 19, 2004 7:35 pm
Posts: 3951
The Game Boy Color, on the other hand, allowed you to rewrite the palette whenever you wanted without needing to disable rendering or anything like that. They used it for static screens like title screens, or other games like Wacky Races pushed it to the limit for use during gameplay.

_________________
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!


Top
 Profile  
 
PostPosted: Mon Jan 26, 2015 7:36 pm 
Offline
User avatar

Joined: Mon Sep 15, 2014 4:35 pm
Posts: 3114
Location: Nacogdoches, Texas
Not really important to the conversation, but can the Game Boy color have a different palette every 8x8 block, or every 16x16 like the NES? also, how many palettes does it have?


Top
 Profile  
 
PostPosted: Mon Jan 26, 2015 8:10 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19254
Location: NE Indiana, USA (NTSC)
Game Boy Color has 8x8 pixel (per-tile) palette selection, like the MMC5, Super NES, or GBA. It has eight 4-color background palettes (with distinct color 0 in each) and eight 3-color sprite palettes. The palettes are RGB with 32 levels per channel, but the gamma is kind of screwy.


Top
 Profile  
 
PostPosted: Mon Jan 26, 2015 8:52 pm 
Offline
User avatar

Joined: Mon Sep 15, 2014 4:35 pm
Posts: 3114
Location: Nacogdoches, Texas
The Game Boy Color uses 15bit RGB (same as SNES, GBA, and might as well include Neo Geo, even if it did have a seemingly unused 16th bit) but has all tiles being 2bpp and 49 colors on screen without changing palettes mid scan line? (Talk about mixed priorities. :roll: )


Top
 Profile  
 
PostPosted: Mon Jan 26, 2015 11:39 pm 
Offline

Joined: Thu Aug 12, 2010 3:43 am
Posts: 1589
Probably on the screen type, really. The Game Gear has 4 bits per component for instance (despite still only showing 31 colors), when the Mega Drive, an otherwise superior system, only had 3. Make what you want out of that. And yeah, the gamma in the GBC screen is crap, to the point that the suggestion is to ditch away half of the entire range (effectively making it 4 bits per component in practice).

Also pretty sure the Neo Geo used the 16th bit for something, although whether it was useful or not is a different issue.


Top
 Profile  
 
PostPosted: Tue Jan 27, 2015 11:48 am 
Offline
User avatar

Joined: Mon Sep 15, 2014 4:35 pm
Posts: 3114
Location: Nacogdoches, Texas
The Neo Geo had the 16th bit decreased the color by a "half bit", meaning that you can have a color like R:12 G:20 B:4, (24bit color) but not something like R:12 G:24 B:4, if that makes sense. I've just looked at a bunch of colors from the graphics from Metal Slug, and none that I've noticed are not perfectly divisible by 8. The half brightness bit could be really useful for a black and white screen, but with having 4bpp 16x16 tiles, you cant really use all the colors that easily, unless you have something like a gradient going down the length of the screen. 8bpp graphics is one reason I think that the SNES can look about as good as the Neo Geo, but it leaves quite a dent in vram... (Which, obviously, isn't a problem on the Neo Geo.)


Top
 Profile  
 
PostPosted: Tue Jan 27, 2015 7:00 pm 
Offline
User avatar

Joined: Wed Feb 13, 2008 9:10 am
Posts: 582
Location: Estonia, Rapla city (50 and 60Hz compatible :P)
The 16th bit decreases the output to around half of all the color channels, and it is done in analog domain. I don't remember the exact circuit though, there's probably some non-linearity involved...

_________________
http://www.tmeeco.eu


Top
 Profile  
 
PostPosted: Tue Jan 27, 2015 7:16 pm 
Offline
User avatar

Joined: Mon Sep 15, 2014 4:35 pm
Posts: 3114
Location: Nacogdoches, Texas
TmEE wrote:
The 16th bit decreases the output to around half of all the color channels,

So I was right.

TmEE wrote:
and it is done in analog domain. I don't remember the exact circuit though, there's probably some non-linearity involved...

Meaning that the 16th bit is calculated after all the other bits in a different process? I guess that is why the SNES, GBC, and GBA don't have a sixteenth color bit, despite having the space to do so. Seems like quite a bit (no pun intended :wink: ) of work for one measly bit...


Top
 Profile  
 
PostPosted: Tue Jan 27, 2015 7:50 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 6450
Location: UK (temporarily)
No, it's a quite simple circuit in analog ... Assuming the attenuation is linear, it's not even particularly redundant: of the 33k new colors, only 1/8 of them are redundant with the original 33k. I'm just not certain whether it's particularly useful.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 55 posts ]  Go to page Previous  1, 2, 3, 4  Next

All times are UTC - 7 hours


Who is online

Users browsing this forum: mkwong98 and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group