Bringing a new HI-DEF NES kit to market; where to start
Moderator: Moderators
Re: Bringing a new HI-DEF NES kit to market; where to start
I suppose before any active work can start on my end I need to secure at least one hi-def nes kit to reverse engineer and breadboard a replica for testing whenever I have enough knowledge to start/hire fpga programming. Or get two kits; one for reference and the other to wipe and use for the testing.
I'm willing to compensate anyone that has a solid understanding of how the hi-def nes kit works regarding what needs to happen in between the NES CPU/PPU & the HDMI signal out and wants to help. Be it on a consultant basis or writing a project scope that an FPGA coder can take and run with; or anything else in between.
Help out enough and you can even name the thing or I'll put your name on any PCB boards I have made.
Please reach out if interested.
Thanks to those that have kindly replied in this thread and I'm sure I'll be asking more questions down the road.
I'm willing to compensate anyone that has a solid understanding of how the hi-def nes kit works regarding what needs to happen in between the NES CPU/PPU & the HDMI signal out and wants to help. Be it on a consultant basis or writing a project scope that an FPGA coder can take and run with; or anything else in between.
Help out enough and you can even name the thing or I'll put your name on any PCB boards I have made.
Please reach out if interested.
Thanks to those that have kindly replied in this thread and I'm sure I'll be asking more questions down the road.
Re: Bringing a new HI-DEF NES kit to market; where to start
Just to be clear: we've told you everything already.
1- You'll need to intercept the data bus between the CPU and PPU and
1a- replace palette entries as they're being written
1b- replace writes to PPUCTRL as they're being written
1c- snoop on emphasis writes
1d- probably snoop on something else too
2- you'll need to capture pixels as they're emitted on the EXT pins
3- you'll need to figure out how to handle converting the analog video from the PPU and convert it into a 5th bit
4- For the dejitter mod, you'll need to stall the PPU (and preferably CPU too) by 4 clocks whenever the PPU tries to skip a pixel
5- For even-more pedantic HDTVs, you'll have to slow down the source clock to 60 Hz × 4 × 262 × 341 from the normal speed
6- Because people probably want sound over HDMI and not a separate analog output, you'll either need to synthesize the NES sound channels from scratch, or filter and ADC the existing ones
7- You'll need a set of "circular buffers" to accept the 5-bit entries from the EXT and VID pins, combine it with the emphasis bits and the palette that you intercepted and replaced, and insert those into a linebuffer, while your separate DVI sender accepts data from the linebuffer and scales it by an integer amount so that people don't complain about aliasing
and the stupid thing that people complained about more than anything else:
8- Absolutely do not, under any circumstance, display all 240 scanlines. End users are stupid and will think the normal NES glitches are your bug, not intentionally there by the original programmers.
1- You'll need to intercept the data bus between the CPU and PPU and
1a- replace palette entries as they're being written
1b- replace writes to PPUCTRL as they're being written
1c- snoop on emphasis writes
1d- probably snoop on something else too
2- you'll need to capture pixels as they're emitted on the EXT pins
3- you'll need to figure out how to handle converting the analog video from the PPU and convert it into a 5th bit
4- For the dejitter mod, you'll need to stall the PPU (and preferably CPU too) by 4 clocks whenever the PPU tries to skip a pixel
5- For even-more pedantic HDTVs, you'll have to slow down the source clock to 60 Hz × 4 × 262 × 341 from the normal speed
6- Because people probably want sound over HDMI and not a separate analog output, you'll either need to synthesize the NES sound channels from scratch, or filter and ADC the existing ones
7- You'll need a set of "circular buffers" to accept the 5-bit entries from the EXT and VID pins, combine it with the emphasis bits and the palette that you intercepted and replaced, and insert those into a linebuffer, while your separate DVI sender accepts data from the linebuffer and scales it by an integer amount so that people don't complain about aliasing
and the stupid thing that people complained about more than anything else:
8- Absolutely do not, under any circumstance, display all 240 scanlines. End users are stupid and will think the normal NES glitches are your bug, not intentionally there by the original programmers.
- Individualised
- Posts: 310
- Joined: Mon Sep 05, 2022 6:46 am
- TmEE
- Posts: 960
- Joined: Wed Feb 13, 2008 9:10 am
- Location: Norway (50 and 60Hz compatible :P)
- Contact:
Re: Bringing a new HI-DEF NES kit to market; where to start
There's no reason things cannot be configurable. Jumpers, button combinations etc.
Re: Bringing a new HI-DEF NES kit to market; where to start
Thanks lidnariq, I appreciate the bulleted list and I apologize if my current lack of knowledge offended you or anyone else.
I simply didn't discern that all I needed to know to get started was already answered in this thread.
Obviously I have much to learn, but I am excited to do so and appreciate the feedback.
Re: Bringing a new HI-DEF NES kit to market; where to start
In practice, if you show all 240 lines of an NTSC NES output, the next person to use it – which is possibly the same person at some amorphous time in the future – will blame you.
Unless it's a PAL NES, in which seeing all the glitches is authentically terrible.
Unless it's a PAL NES, in which seeing all the glitches is authentically terrible.
Re: Bringing a new HI-DEF NES kit to market; where to start
Users will complain about every picture quirk. There was complaining about the stray dot from $2000 writes that briefly kicks the PPU out of slave mode. There was complaining about the 'random glitchy line' in SMB1 that people insisted totally didn't happen on original hardware. You can't avoid it without emulating the whole PPU and not implementing certain glitches.
It may seem small, but the change in timing to 60.0 Hz seems to me like a bigger deal because a nontrivial part of the potential audience (speedrunners, particularly on Twitch) will stay away from the device.
Particularly given the substantial cost to install a mod like this in a console (which is normally not 100% reversible if someone chooses to remove it), all of the pitfalls and potentially unfixable edge cases, and the variety of original hardware chips that pose a customer service problem (Hi-Def NES had all sorts of complaints related to PAL chips and certain chip revisions like 'laser-H' CPUs), I'd really give some thought to trying to do an external converter that takes composite and tries to extract the original image from it. It would be easy to install, reversible, and might be able to produce a more correct image. It's also meaningfully different from the existing RGB solutions, which you can already convert to HDMI with existing converters to play your NES on a modern display with a 'clean' image that doesn't look like 'crap'.
It may seem small, but the change in timing to 60.0 Hz seems to me like a bigger deal because a nontrivial part of the potential audience (speedrunners, particularly on Twitch) will stay away from the device.
Particularly given the substantial cost to install a mod like this in a console (which is normally not 100% reversible if someone chooses to remove it), all of the pitfalls and potentially unfixable edge cases, and the variety of original hardware chips that pose a customer service problem (Hi-Def NES had all sorts of complaints related to PAL chips and certain chip revisions like 'laser-H' CPUs), I'd really give some thought to trying to do an external converter that takes composite and tries to extract the original image from it. It would be easy to install, reversible, and might be able to produce a more correct image. It's also meaningfully different from the existing RGB solutions, which you can already convert to HDMI with existing converters to play your NES on a modern display with a 'clean' image that doesn't look like 'crap'.
- Individualised
- Posts: 310
- Joined: Mon Sep 05, 2022 6:46 am
Re: Bringing a new HI-DEF NES kit to market; where to start
This is a generalisation. I prefer to see the full picture at all times even if it means I see stuff that would be hidden on an NTSC television - I live in a PAL region anyway.
The reality is, to those who are annoyed by such graphical quirks, real hardware is never going to look perfect and they may as well be better off using an emulator.
Re: Bringing a new HI-DEF NES kit to market; where to start
All of this is true. But the problem is that when it comes to tech support, you don't want to even get as far as them complaining.Individualised wrote: ↑Wed Mar 22, 2023 6:56 pm This is a generalisation. I prefer to see the full picture at all times even if it means I see stuff that would be hidden on an NTSC television - I live in a PAL region anyway.
The reality is, to those who are annoyed by such graphical quirks, real hardware is never going to look perfect and they may as well be better off using an emulator.
I'm not advising this based on ideals, but direct observation of what Kev had to deal with. End users are idiots, end users don't read, and end users forget. They will see the glitchy bits, complain about it, and at the absolute best they'll take up your tech support time.
Re: Bringing a new HI-DEF NES kit to market; where to start
Would you agree the possible user complaints you mentioned being aimed directly at me would be moot if it was open source once I get the basics working enough to publish on github?lidnariq wrote: ↑Wed Mar 22, 2023 6:47 pm In practice, if you show all 240 lines of an NTSC NES output, the next person to use it – which is possibly the same person at some amorphous time in the future – will blame you.
Unless it's a PAL NES, in which seeing all the glitches is authentically terrible.
My thought process behind that is, "hey, it's open source. If you don't like something and the hardware supports your need then you're free to contribute or make a fork if you know how."
Re: Bringing a new HI-DEF NES kit to market; where to start
Yes, there's plenty to be said for the "free as in puppy" class of software :}
Re: Bringing a new HI-DEF NES kit to market; where to start
That gave me an idea for adding a 240p Test Suite feature to detect whether an EXT output modification is in use through its effect on PPU open bus.Fiskbit wrote: ↑Fri Mar 17, 2023 6:56 amBoth the NESRGB and Hi-Def NES rely on an unused PPU mode generally referred to as slave mode (though I am becoming fond of 'EXT output mode' for improved clarity) where the PPU outputs 4 of the 5 bits of the palette index used by each pixel via the PPU's EXT pins.
EDIT: Prototype of test ROM
Re: Bringing a new HI-DEF NES kit to market; where to start
Ha, soon we'll see vintage homebrew that refuses to run on HDMI-modded systems. Only refusing emulators is so 2010.
Re: Bringing a new HI-DEF NES kit to market; where to start
Since my last post I have acquired an Analogue NT mini Noir and a Retrotink 5X Pro. This is in addition to my two original front loaders, an AVS, and a homebrewed Wii.
After spending all that money and getting hands-on experience with all of those options I must admit I have changed my view regarding the Hi-Def NES kit being the best option for using original hardware on todays HD TVs.
Personally I prefer the Retrotink plug-n-play kind of option. I think it does way more than one would need if only concerned with the NES console and so I am changing focus to learning more about an external option but is designed for the NES only (in hopes it would cost less than the 5x pro).
Perhaps tepples's idea that you mentioned here. I like the points regarding correct aspect ratio and speed.
After spending all that money and getting hands-on experience with all of those options I must admit I have changed my view regarding the Hi-Def NES kit being the best option for using original hardware on todays HD TVs.
Personally I prefer the Retrotink plug-n-play kind of option. I think it does way more than one would need if only concerned with the NES console and so I am changing focus to learning more about an external option but is designed for the NES only (in hopes it would cost less than the 5x pro).
Perhaps tepples's idea that you mentioned here. I like the points regarding correct aspect ratio and speed.
Admittedly I have plenty of questions, and I'd assume its best to start a new thread, but if you or tepples have an idea for what equipment I would need to R&D such an idea and could PM me with that info I would be most appreciative.Fiskbit wrote: ↑Mon Mar 20, 2023 2:58 pm The way things are, no solution is perfect; they all introduce at least some kind of visual problem in some situations and, for digital video without freesync, either timing differences or tearing/hitching. Personally, I think the composite artifacts from the NES are a feature, not a bug, but as far as pixel-perfect solutions go, the one most interesting to me would be reproducing the original 256x240 or 283x242 pixel image from the composite output, as I hinted at above. This would require no modifications to the console, no emulation, and no weird passthrough cartridge that won't work well with a frontloader. Then with 4k and freesync, you'd be able to have it run at the correct aspect ratio and speed. Tepples, aka PinoBatch, wrote about this solution on the Discord a couple years ago: