Subject: Re: [stella] Miniaturization (NES programming) From: "Andrew Davie" <adavie@xxxxxxxxxxxxx> Date: Mon, 17 Apr 2000 10:09:18 +1000 |
> I believe that what this actually did was shrink the > region in which there could be N (16?) distinct colors > from 32*32 pixels to something smaller. No, I don't > know how that's possible either. The NES colour palette consisted of 16 bytes, organised into groups of 4 palettes. Of those 4 palettes, the first colour was the background colour, and the remaining 3 were the pixel colours. Only the very first background colour was actually used, so in reality you had 13 available colours for screen display. However, you were limited to choosing only one palette for each 2x2 character area on the screen. So, if somebody managed to reduce that to a palette for each character - then you can legitimately claim to 'pump out more screen colours'. I achieved this in a different way, by simply rewriting the palette on-the-fly. On the NES, screen memory (from memory) was 30 lines of 32 characters, giving you 960 characters. There was 2K total of display memory, for two screens, mapped (connected) either horizontally or vertically according to how the cart was hardwired. Memory management chips (MMC) later allowed program control over this. But, back to basics... each of the two screens therefore had just 1K of video memory. 960 bytes of this was used for the character data (each character being one of 256 'names'). So, to incorporate colours, the remaining 64 bytes (1024 - 960) of the 1K display area were used. A B C D The above shows a 2x2 grid of characters The colours for these characters were defined in a single byte of the palette. Each had 2 bits. I recall the format was DDCCBBAA, but that is very ifffy memory, being some 10+ years old. So, the way colours were achieved on the screen (by the hardware).... First, we have a single byte giving the character 'name'. There are 960 of these, defining the whole screen. Each character name is used to look up the character's definition, which consists of 16 bytes of data (two sets of 8 bytes, giving a 4-colour character). That is, the name references the character definitions. The palette data for the current 2x2 block is combined with the pixel colour from the character definition, to give a colour number from 0-15. The colour number is looked-up in the current palette, and that colour is used to display. NES programming was fun. It was quite roundabout :) Now, as to how to increase colours - one of the things that I found amusing about the Nintendo machines was the general trend to include more and more power onto the cartridge. Towards the end of the SNES, the cartridges were much, much more powerful than the actual machine - having onboard 3D processors, etc.! It is possible that a similar hardware improvement was done on NES carts to achieve the improved colour resolution (an analogy is the memory management chips (MMC) which provided much-improved scrolling and bank-switching capability). Cheers A -- Andrew Davie adavie@xxxxxxxxxxxxx or adavie@xxxxxxxxxxxxxxxxx see my award-winning Museum of Soviet Calculators http://www.taswegian.com/MOSCOW/soviet.html ----- Original Message ----- From: "Dan Knapp" <dankna@xxxxxxxxxxxxxx> To: <stella@xxxxxxxxxxx> Sent: Monday, April 17, 2000 9:20 AM Subject: Re: [stella] Miniaturization > > That reminds me (I could be wrong, red pencil where > > necessary): I seem to recall, back when the NES was > > the big kid on the block, a company called "Color > > Dreams" that claimed to have a special chip that made > > the NES pump out more on-screen colors at once than > > the hardware could alone. How, exactly, is this > > possible (if you don't know, you don't have to > > answer), and if possible, did anyone try it with the > > 2600? > > I believe that what this actually did was shrink the > region in which there could be N (16?) distinct colors > from 32*32 pixels to something smaller. No, I don't > know how that's possible either. > > > ___Dan Knapp, Knight of the Random Seed______________Beep Blip Bonk_______ > dankna@xxxxxxxxxxxxxx --- http://brain.mics.net/~dankna/ --- pbmserv: dank > > > -- > Archives (includes files) at http://www.biglist.com/lists/stella/archives/ > Unsub & more at http://www.biglist.com/lists/stella/ > -- Archives (includes files) at http://www.biglist.com/lists/stella/archives/ Unsub & more at http://www.biglist.com/lists/stella/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [stella] Miniaturization, Dan Knapp | Thread | Re: [stella] Miniaturization, Glenn Saunders |
Re: [stella] Miniaturization, John Vivian Matthews | Date | Re: [stella] Miniaturization, Kevin Horton |
Month |