Is it possible to add new colors to the palette?
Moderator: Moderators
Is it possible to add new colors to the palette?
Say you want a shade of red that is simply not on the predetermined 64-color palette of the NES. Would it be possible to create new colors for the PPU to display? I assume this would be done, if possible, through the use of custom-made mappers.
Or are mappers ONLY for supplying additional RAM to the CPU and APU?
Or are mappers ONLY for supplying additional RAM to the CPU and APU?
Re: Is it possible to add new colors to the palette?
Mappers on the NES do two things: memory paging and interval timing. The "paging" part makes additional ROM or RAM available to the CPU and PPU, and "interval timing" is used to notify the CPU that the electron beam has reached a particular point down the screen. That's why Nintendo's ASIC mappers are called "Memory Management Controller" (MMC). Even the mighty MMC5's ExGrafix mode is just an extremely fine-grained CHR ROM mapper, specifying a 4K bank number for each tile.
You can tint the entire screen using the emphasis bits in $2001. A mapper's interval timer may help you build a raster effect that tints one strip of scanlines different from another strip. But apart from that, mappers can't affect the palette. That's why the color bar test cards in the NES port of the 240p test suite aren't exact matches for the 75% intensity pure colors on the SMPTE EG 1-1990 test card.
You can tint the entire screen using the emphasis bits in $2001. A mapper's interval timer may help you build a raster effect that tints one strip of scanlines different from another strip. But apart from that, mappers can't affect the palette. That's why the color bar test cards in the NES port of the 240p test suite aren't exact matches for the 75% intensity pure colors on the SMPTE EG 1-1990 test card.
Re: Is it possible to add new colors to the palette?
You can only customize the palette if you change the PPU, or attach some extra hardware to it (e.g. NESRGB and Hi-Def NES), which means the console has to be modified. It can't possibly be done from the cartridge side, because the cartridge is not at all involved with color generation, so there're no signals related to this in the cartridge connector.
The only way you'd be able to change video characteristics that depend on more than external memory access is if you put a custom video chip inside the cartridge and connect a cable from that to the TV, instead of using the console's video jack. Most would consider this cheating though, since you could just as well put an entire 3DS inside the cartridge and use the NES just for input, meaning games wouldn't be running on the NES at all. Needless to say, it would not be economically viable to sell cartridges containing entire video systems (or more modern gaming systems!) in them, not to mention the time you'd spend developing your own video chip.
The only way you'd be able to change video characteristics that depend on more than external memory access is if you put a custom video chip inside the cartridge and connect a cable from that to the TV, instead of using the console's video jack. Most would consider this cheating though, since you could just as well put an entire 3DS inside the cartridge and use the NES just for input, meaning games wouldn't be running on the NES at all. Needless to say, it would not be economically viable to sell cartridges containing entire video systems (or more modern gaming systems!) in them, not to mention the time you'd spend developing your own video chip.
Re: Is it possible to add new colors to the palette?
Oh, wait, that gives me the most terrible idea! We could intentionally cause voltage sag by drawing huge amounts of power on the cartridge. This would couple back into the video signal and allow us to change the color of things.tokumaru wrote:The only way you'd be able to change video characteristics that depend on more than external memory access is if you put a custom video chip inside the cartridge
And we should never ever do it, because one'd have to calibrate it on every different console you wanted to use, and some consoles would never work anyway.
Re: Is it possible to add new colors to the palette?
The calibration screen should be interesting... "Press A until the picture looks correct OR your NES explodes"
Re: Is it possible to add new colors to the palette?
That's what I call "gaming on the edge".tokumaru wrote:The calibration screen should be interesting... "Press A until the picture looks correct OR your NES explodes"
Re: Is it possible to add new colors to the palette?
Ha, I just saw several of those a few days ago. Carts for the SNES and NES that take input and power from there, but have their own video output, and play $ANOTHER_CONSOLE's games.tokumaru wrote:The only way you'd be able to change video characteristics that depend on more than external memory access is if you put a custom video chip inside the cartridge and connect a cable from that to the TV, instead of using the console's video jack. Most would consider this cheating though, since you could just as well put an entire 3DS inside the cartridge and use the NES just for input, meaning games wouldn't be running on the NES at all. Needless to say, it would not be economically viable to sell cartridges containing entire video systems (or more modern gaming systems!) in them, not to mention the time you'd spend developing your own video chip.
Re: Is it possible to add new colors to the palette?
Well, you could add an arbitrary video overlay system via the expansion port, but I'm not really clear to what end. You don't have access to any other PPU signals, so you can't trivially lock to the same pixel clock.
Re: Is it possible to add new colors to the palette?
I never noticed that there was a video out pin in the expansion port... Not that I can see any advantage in getting the composite video from there rather than from the back of the console... I mean, even if you were gonna pull a 32X you'd still need the add-on to output its own video signal, so it might just as well generate something advanced enough that doesn't require any of the blurry video from the PPU.
Re: Is it possible to add new colors to the palette?
In theory, composite out (pin 21) and master clock are all you need. The PPU outputs one dot of picture or blanking every 4 master clocks (5 on PAL), it outputs vertical sync every vblank, and it outputs horizontal sync and a "color burst" (dark area with hue $08) before every line. But the real WTF is that there's no master clock on the expansion port.lidnariq wrote:Well, you could add an arbitrary video overlay system via the expansion port, but I'm not really clear to what end. You don't have access to any other PPU signals, so you can't trivially lock to the same pixel clock.
- rainwarrior
- Posts: 8732
- Joined: Sun Jan 22, 2012 12:03 pm
- Location: Canada
- Contact:
Re: Is it possible to add new colors to the palette?
Why? The cartridge can easily route it to an expansion pin.tepples wrote:...the real WTF is that there's no master clock on the expansion port.
Re: Is it possible to add new colors to the palette?
Or, devices like the Hi-Def NES could be modified/designed to allow for software to detect that they are installed and ask to modify the palette. But this would be a pretty specific target market ...tokumaru wrote:You can only customize the palette if you change the PPU, or attach some extra hardware to it (e.g. NESRGB and Hi-Def NES), which means the console has to be modified. It can't possibly be done from the cartridge side, because the cartridge is not at all involved with color generation, so there're no signals related to this in the cartridge connector.
The only way you'd be able to change video characteristics that depend on more than external memory access is if you put a custom video chip inside the cartridge and connect a cable from that to the TV, instead of using the console's video jack.
Re: Is it possible to add new colors to the palette?
Well, the biggest advantage would be that you wouldn't need a passthrough cable which would look cleaner as well as being less prone to get connected wrong by a clueless or distracted person. The 32X needed a passthrough cable in addition to changing where the video output goes.tokumaru wrote:I never noticed that there was a video out pin in the expansion port... Not that I can see any advantage in getting the composite video from there rather than from the back of the console... I mean, even if you were gonna pull a 32X you'd still need the add-on to output its own video signal, so it might just as well generate something advanced enough that doesn't require any of the blurry video from the PPU.
Re: Is it possible to add new colors to the palette?
That reminds me of how Shantae for the Game Boy Color had special features when used on a Game Boy Advance. Maybe there could be some backwards compatibility between the vanilla NES and the Hi-Def NES in the same manner.Movax12 wrote:tokumaru wrote:Or, devices like the Hi-Def NES could be modified/designed to allow for software to detect that they are installed and ask to modify the palette. But this would be a pretty specific target market ...