Nintendo 64 Advanced RGB Upgraded Console Set
The Nintendo 64 Advanced RGB Upgraded Console Set includes:
- One pre-modded Advanced RGB Console with Expansion Pak
- One Retro Fighters Smoke Brawler 64 controller
- HD Retrovision SNES Cable
- One OEM power supply.
This is still an original N64 so there are no compatibility issues with any games or accessories.
Borti's Advanced RGB Github can be found here and information for ordering your own Advanced RGB board can be found here.
Features
- Supporting for different FPGAs [1] on a common PCB design:
- Cyclone IV EP4CE10E22
- Cyclone 10 LP 10CL010YE144
- Video DAC ADV7125 (or ADV7123)
- Detection of 240p/288p vs. 480i/576i together with detection of NTSC vs. PAL mode
- Heuristic for de-blur function [2], De-Blur in 240p/288p (horizontal resolution decreased from 640 to 320 pixels)
- 15bit color mode
- IGR features:
- reset the console with the controller
- full control on de-blur and 15bit mode with the controller
- Advanced features:
- output of RGsB or YPBPr on demand
- linedoubling of 240p/288p video to 480p/576p incl. optional bob de-interlace of 480i/576i to 480p/576p
- selectable scanline strength incl hybrid depth
- possible VGA output [3]
- on-screen menu for configuration
The following shortly describes the main features of the firmware and how to use / control them.
Notes
[1]
For now, support for 6k LEs FPGAs (EP4CE6E22 and 10CL006YE144) has been discontinued. They are to small for an OSD menu implementation due to the small amount of block RAM. I will try to get it fit in future.
[2]
Heuristic for de-blur function highly depends on the image content. So it might be the case that de-blur is switched on and off rapidly even on small content changes. In any case you can override the heuristic by forcing de-blur on or off.
If you observe something like that or where do you think that de-blur is not correctly guessed, please take a note (PAL / NTSC N64, game, ROM, situation), where I can check that and can try to further improve the heuristic algorithm. Send me your observation vie email or open an issue here on GitHub.
[3]
Not available if the filter adddon is used as HSYNC and VSYNC are shared outputs with F1 and F2 (filter selection)
In-Game Routines (IGR)
Three functunalities are implemented: toggle de-blur feature / override heuristic for de-blur and toggle the 15bit mode (see above) as well as resetting the console.
The button combination are as follows:
- open on-screen menu: D-pad ri + L + R + C-ri
- reset the console: Z + Start + R + A + B (must be enabled in menu)
- (de)activate de-blur / override heuristic for de-blur: (must be enabled in menu, see description above)
- (de)activate 15bit mode: (must be enabled in menu, see description above)
Final remark on IGR:
However, as the communication between N64 and the controller goes over a single wire, sniffing the input is not an easy task (and probably my solution is not the best one). This together with the lack of an exhaustive testing (many many games out there as well my limited time), I'm looking forward to any incomming issue report to furhter improve this feature :)
De-Blur
De-blur of the picture information is only be done in 240p/288p. This is be done by simply blanking every second pixel. Normally, the blanked pixels are used to introduce blur by the N64 in 240p/288p mode. However, some games like Mario Tennis, 007 Goldeneye, and some others use these pixel for additional information rather than for bluring effects. In other words this means that these games uses full horizontal resolution even in 240p/288p output mode. Hence, the picture looks more blurry in this case if de-blur feature is activated.
- By default heuristic is activated on every power cycle and on every reset! However, as the heuristic guess might be not reliable, the guess can be overriden.
- Press Z + Start + R + C-le to deactivate de-blur (overrides the guess, quick access function must be enabled in menu)
- Press Z + Start + R + C-ri to activate de-blur (overrides the guess, quick access function must be enabled in menu)
Heuristic for De-Blur
As noted above, the N64 typically outputs a 320pixel wide picture in 240p/288p. As the pixel clock does not change compared to 480i/576i there outputted pixel wide is 640. On the one hand, most games outputs a 320pixel wide picture in 240p/288p and use the remaining pixels to introduce a blur. This can be removed by simply blank these interpolated pixels. On the other hand, a minor number of games outputs a 'full' 640pixel wide picture also in 240p/288p. In this case blanking out the suspected interpolated pixels causes a blurry picture.
The heuristic algorithm estimates whether a game uses the first or the second method. Depending on the result de-blur is active or not. However, as the estimation could be wrong, the user has the opportunity to override the estimation. (see section de-blur) At the moment it is not implemented that the heuristic can be switched on once overridden except with a reset or a new power cycle.
15bit Color Mode
The 15bit color mode reduces the color depth from 21bit (7bit for each color) downto 15bits (5bit for each color). Some very few games just use the five MSBs of the color information and the two LSBs for some kind of gamma dither. The 15bit color mode simply sets the two LSBs to '0'.
- By default the 15bit mode is off! The default is set on each power cycle but not on a reset.
- to deactivate 15bit mode press Z + Start + R + C-up. (quick access function must be enabled in menu)
- to (re)activate 15bit mode press Z + Start + R + C-dw. (quick access function must be enabled in menu)
Low Pass Filtering of the Video Output
The video DAC does not use any filtering. In general, this is also not needed. If you need DAC post-filtering though (receiver has a ADC build without any pre-filtering), you can install the filter addon (also provided in this repository).
The filter addon is based on a THS7368, where the video channels with selectable filter are used. As the filter is selected over the same pins as HSYNC and VSYNC, the addon is not compatible to VGA.