analoguejb / Analogue-Nt-Mini-Noir-JB

61 stars 0 forks source link

Palette selection is ignored when using analog video output #10

Open Bohman-Timothy opened 1 year ago

Bohman-Timothy commented 1 year ago

This is a somewhat shorthand version of the ticket I originally posted here: https://github.com/SmokeMonsterPacks/Nt-Mini-Noir-Jailbreak/issues/163

When the analog video output is connected via a compatible VGA adapter (purchased separately from a third party) to a compatible TV, the selected color palette option is ignored by the Analogue Nt Mini Noir. When choosing a palette in the menu, I can see a preview of the intended color palette on the game screen in the background, but as soon as the menu is closed, the colors revert to a default palette. For quickly observing the issue, try setting the palette to the built-in greyscale "Black & White" palette.

It doesn't matter which palette I select, whether a built-in palette option or a custom palette I have on my SD card—when the system menu is closed, the colors revert to a default palette (that for some reason doesn't seem to exactly match any of the built-in palette options).

I don't know how the Analogue Nt Mini Noir generates the colors for analog output, but the colors don't match what my NTSC-region NES console outputs when I compare both systems' video over a composite connection on the same television (and when I compare the two systems' video colors on a second television). One color that stands out to me as being noticeably different is the primary yellow color (its position in the sequence of colors in the palette is represented in hexadecimal as 28), which, when output by the Analogue system, is more greenish—a slightly greenish yellow, compared to the yellow from the original NES system. The default Nt Mini Noir analog palette is good, but it has several colors that I notice not matching the original NES system's palette, even though they are recognizably near the original system's actual colors.

Even if the Nt Mini Noir is emulating the method used by the original NES to output its colors, not all of these colors are the exact colors I've seen the actual NES console output on various televisions in my lifetime—and more to the point, the TVs on which I compared the Nt Mini Noir and the NTSC front-loading original NES. I'd like an option to be added to use either the default palette / color-generating method or a custom palette, which could potentially get closer to the colors I see my original NES generate. I'd also like to be able to use custom palettes that don't represent the original colors, such as a palette I have that simulates 4-color CGA computer graphics of cyan, magenta, white, and black. I'd like to be able to try out on a CRT television different palettes that aim for accuracy, as well as novelty color palettes. So this can be considered a feature request if it isn't accepted as a bug report.

Though, as I've thought more about it, maybe this is something that should be added to the official firmware.

SamuraiSamH commented 1 year ago

I have this same issue and it bugs me. It would look soooo great if I could get the pallete I want on my CRT through the RGB connection.

Peredonov commented 1 year ago

Analog RGB output should be able to use the different color palettes. It sounds like this issue is about the analog composite and S-video output, which indeed will not depend on palette selection as color is decoded from the NTSC (or PAL) simulated PPU as it would from an original Famicom/NES console.

@Bohman-Timothy it sounds like the difference you are seeing is simply due to a slight hue/tint difference between your NES's composite and tne Noir's composite, which has been observed since the Nt Mini which probably behaves the same as the Noir in this regard. See (scroll down to Analog Video section): http://nerdlypleasures.blogspot.com/2017/12/analogue-nt-mini-browsing-core-store-pt.html

This means that you can make the composite (and to some extent S-video) analog output from the Noir exactly match that of your NES by adjusting the the hue controls on your CRT. This way you don't need to rely on RGB color palettes, which will never be 100% like the NTSC/PAL output, as some colors may match but only for others to look off instead. Give this hue adjustment a try and see if you can get the yellows and other colors as you expect them.

Image from NP's blog:

Screen Shot 2023-08-19 at 9 17 05 AM
SamuraiSamH commented 1 year ago

"Analog RGB output should be able to use the different color palettes" - Nope, I connect it through RGB and I have this same issue. Choosing a pallete does nothing for actual gameplay, but you can see the palette while the menu is still up.

Peredonov commented 1 year ago

@SamuraiSamH I just confirmed that via RGB the palettes work normally. I do have a guess about why you are having an issue though.

I had never used analog RGB with a Noir before, only composite and S-video, but your issue got me curious since all these years the Noir, and previously the Nt Mini v1, had been used all these years as an alternative to a NESRGB by RGB monitor (PVM, etc.) and CRT TV with RGB users. I only found one other person who had an issue like yours on Reddit.

I connected my Noir to my BVM-type CRT monitor with a D-Sub (VGA) to BNC cable and displayed an RGBS (as well as RGBHV) picture and changed the palettes successfully as you can see below:

IMG_4168 IMG_4169 IMG_4171 IMG_4172

What does your video chain look like? Are you using a SCART cable going into a TV with SCART input? If so, it could be that the TV is not detecting the input as an RGB signal and is defaulting to the composite video from the sync line instead. To ensure that your TV is actually displaying the RGB signal, toggle the "700 RGB Level" setting in the advanced analog video settings menu:

IMG_4167

This setting (as well as the sync type setting) should only have an effect if you are actually displaying the RGB signal, in which case the palettes should also work.

Since analog RGB does work with selected palettes, and composite and S-video not doing so is expected and desired behavior, this issue can be closed. Anyone else welcome to confirm before closing it though.

SamuraiSamH commented 1 year ago

Aaaah yes, the 700 RGB Level setting did the trick! Thank you so much!! :)