{"id":933,"date":"2014-06-08T03:00:54","date_gmt":"2014-06-08T08:00:54","guid":{"rendered":"http:\/\/scope-eye.net\/?p=933"},"modified":"2016-08-21T03:30:26","modified_gmt":"2016-08-21T08:30:26","slug":"rgb-upgrade-for-the-nintendo-entertainment-system","status":"publish","type":"post","link":"https:\/\/scope-eye.net\/?p=933","title":{"rendered":"RGB upgrade for the Nintendo Entertainment System"},"content":{"rendered":"<p>For a long time I was completely unaware of this: the composite video output that comes out of the NES is pretty terrible.<br \/>\nWhen I got my first HDTV in 2007 and tried my Nintendo with it, I was able to see the problem clearly: straight edges were jagged, shapes staggered oddly as they moved across the screen, and other strange artifacts were appearing as well, like &#8220;checkerboard&#8221; echoes of on-screen shapes elsewhere in the frame. Initially I thought my NES was in need of repair, but all these things are pretty much normal for the system. It&#8217;s all part of how the system renders video. It all looks fine on an old, low resolution TV, but it starts to look pretty terrible when you hook up to higher-quality displays.<br \/>\n<a href=\"\/model-data\/nesrgb\/front_view.jpeg\"><img decoding=\"async\" src=\"\/model-data\/nesrgb\/front_view_thumb.jpeg\" \/><\/a><br \/>\n<!--more--><br \/>\nMy first thought was to look for instructions on how to modify the system for S-video. (In S-video, brightness and color information for the image are carried on different wires, which reduces some of the problems associated with composite video, in which all this information is encoded on a single wire) Unfortunately that turned out to be rather difficult: no matter how deep you dig into the internals of a NES, composite video is all you&#8217;ll find. People got around this by using parts from the Playchoice 10, the arcade version of the NES hardware, but there are two big problems with this: First, people have been doing this modification for years, and it&#8217;s been gradually depleting the supply of Playchoice systems available for purchase. Second, while the Playchoice played the same software as the NES, the graphics chip didn&#8217;t behave quite the same in all cases. The colors were different and some features of the chip didn&#8217;t work the same as on the NES. Most NES software looks a bit weird on a Playchoice graphics chip, and some just looks completely wrong. Despite all these drawbacks, for a while I had hoped to someday perform the modification on one of my systems.<br \/>\nFortunately, fans of the system have been working on new ways to improve its output. One of the more exciting recent developments is a product called <a href=\"http:\/\/etim.net.au\/nesrgb\/\">NESRGB<\/a>. It works together with the system&#8217;s original graphics chip to produce a much clearer version of the same image &#8211; compared to using Playchoice parts to upgrade a NES, it&#8217;s more affordable, more compatible, and its output looks better.<br \/>\nThe board was unfortunately out of stock for a while, so I had to be patient. Toward the end of May I finally was able to get my hands on it and immediately started modifying my NES to use the board. The first step, removing the NES&#8217;s graphics chip, is by far the hardest part, at least if you don&#8217;t have specialized equipment to do it. It must be done carefully and gently, or the system could be badly damaged in the process. Once that&#8217;s done, the rest of the project is pretty simple &#8211; add a few connectors to the back of the machine and wire them up, and do a little basic soldering to get everything in place.<br \/>\n<a href=\"\/model-data\/nesrgb\/installation_overview.jpeg\"><img decoding=\"async\" src=\"\/model-data\/nesrgb\/installation_overview_thumb.jpeg\" title=\"The new video jacks are visible in the back. The medium-size green board is the NESRGB.\" \/><\/a><a href=\"\/model-data\/nesrgb\/installation_overview_2.jpeg\" title=\"The NESRGB is mounted into a socket where the graphics chip was - important here because the NESRGB can't be easily disconnected from the panel-mounted video jacks.\"><img decoding=\"async\" src=\"\/model-data\/nesrgb\/installation_overview_2_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/nesrgb\/video_connectors.jpeg\" title=\"The newly-added video connectors: RGB on the left, S-Video on the right.\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/video_connectors_thumb.jpeg\" \/><\/a><br \/>\nThe kit included video connectors designed for installation on the back panel of the machine: a 4-pin mini-DIN for S-Video, and an 8-pin mini-DIN for RGB. Although I don&#8217;t (yet) have a use for the RGB connection, I installed both ports as well as an optional feature, the &#8220;palette switch&#8221;. NESRGB can render colors in three different style: one meant to simulate the colors from an unmodified console, one meant to simulate the brighter look often seen on NES emulators, and one meant to simulate the look of Playchoice-10 hardware. Additionally, the NESRGB can be turned off to allow the original graphics chip to produce the picture. The kit includes a 3-position toggle switch for palette selection, but I wanted something a little sleeker. I installed a small tactile pushbutton on the side of the case, next to the A\/V jacks, and I used this together with an Arduino to switch between the different palettes and modes.<br \/>\n<a href=\"\/model-data\/nesrgb\/palette_button.jpeg\" title=\"Though after all the trouble I went through to install the switch...  I never use the other palettes.\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/palette_button_thumb.jpeg\" \/><\/a><br \/>\nAs long as I had the machine open, I decided to do another modification: In the Japanese version of the NES, the &#8220;Famicom&#8221;, there&#8217;s a cartridge pin through which cartridges can produce their own sound effects or music. The NES doesn&#8217;t have this. So I added a resistor so I can hear these additional sounds when playing certain Japanese games on my NES.<br \/>\n<a href=\"\/model-data\/nesrgb\/audio_mod.jpeg\" title=\"I also had to make a corresponding change to my cartridge adaptor.\"><img decoding=\"async\" src=\"\/model-data\/nesrgb\/audio_mod_thumb.jpeg\" \/><\/a><br \/>\nAfter a few days of working on the project, tending to detail after detail of the video connections and the palette switch, I was finally ready to seal it all up. There have been a few small issues with the video output, but the result is far, far better than what&#8217;s obtained from an unmodified console.<br \/>\n<a href=\"\/model-data\/nesrgb\/front_view.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/front_view_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/nesrgb\/side_view.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/side_view_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/nesrgb\/rear_view.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/rear_view_thumb.jpeg\" \/><\/a><br \/>\n<a href=\"\/model-data\/nesrgb\/smb_title_before.jpeg\" title=\"This is a pretty good example of the \\\"dot crawl\\\" effect on the NES, visible on the vertical edges\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/smb_title_before_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/nesrgb\/smb_title_after.jpeg\" title=\"With NESRGB, the vertical lines have a much clearer appearance.\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/smb_title_after_thumb.jpeg\" \/><\/a><br \/>\n<a href=\"\/model-data\/nesrgb\/smb_copyright_date_before.jpeg\" title=\"Sometimes on the NES, important information can become illegible, as with this text.\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/smb_copyright_date_before_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/nesrgb\/smb_copyright_date_after.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/smb_copyright_date_after_thumb.jpeg\" \/><\/a><\/p>\n<p><a href=\"\/model-data\/nesrgb\/smb_itsame_before.jpeg\" title=\"This is how the dot crawl distortion affects character sprites and simple backgrounds\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/smb_itsame_before_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/nesrgb\/smb_itsame_after.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/smb_itsame_after_thumb.jpeg\" \/><\/a><br \/>\n<a href=\"\/model-data\/nesrgb\/smb_treachery_of_images_before.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/smb_treachery_of_images_before_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/nesrgb\/smb_treachery_of_images_after.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/smb_treachery_of_images_after_thumb.jpeg\" \/><\/a><br \/>\n<a href=\"\/model-data\/nesrgb\/smb_underground_before.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/smb_underground_before_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/nesrgb\/smb_underground_after.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/smb_underground_after_thumb.jpeg\" \/><\/a><\/p>\n<p>There are some trade-offs, of course: basically, since the NES had lousy video output, many games were designed for lousy video output, with the assumption that you wouldn&#8217;t be able to see individual pixels, that they&#8217;d blend together. For instance, the sidewalk in the first stage of &#8220;Ninja Gaiden&#8221; is a big checkerboard, but on the original hardware it all smooths out to a medium gray.<br \/>\n<a href=\"\/model-data\/nesrgb\/ryukenden_sidewalk_before.jpeg\" title=\"On the original hardware, the pixels of the street blended together\"><img decoding=\"async\" src=\"\/model-data\/nesrgb\/ryukenden_sidewalk_before_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/nesrgb\/ryukenden_sidewalk_after.jpeg\" title=\"On NESRGB, the pixels of the street are perhaps too clear and distinct...\"><img decoding=\"async\" src=\"\/model-data\/nesrgb\/ryukenden_sidewalk_after_thumb.jpeg\" \/><\/a><br \/>\n<a href=\"\/model-data\/nesrgb\/ryukenden_climbing_before.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/ryukenden_climbing_before_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/nesrgb\/ryukenden_climbing_after.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/ryukenden_climbing_after_thumb.jpeg\" \/><\/a><\/p>\n<p>Below are more comparison shots of the NES with and without the mod.<\/p>\n<h3>Super Mario Bros. 3<\/h3>\n<p><a href=\"\/model-data\/nesrgb\/mario_3_map_before.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/mario_3_map_before_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/nesrgb\/mario_3_map_after.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/mario_3_map_before_thumb.jpeg\" \/><\/a><br \/>\n<a href=\"\/model-data\/nesrgb\/mario_3_gameplay_before.jpeg\" title=\"This additionally shows some weird artifact I was seeing with my HDTV before the mod: I think it's just responding badly to some signal quality issue in the NES.\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/mario_3_gameplay_before_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/nesrgb\/mario_3_gameplay_after.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/mario_3_gameplay_after_thumb.jpeg\" \/><\/a><br \/>\n<a href=\"\/model-data\/nesrgb\/mario_3_card_before.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/mario_3_card_before_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/nesrgb\/mario_3_card_after.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/mario_3_card_after_thumb.jpeg\" \/><\/a><\/p>\n<h3>Teenage Mutant Ninja Turtles<\/h3>\n<p><a href=\"\/model-data\/nesrgb\/raph_before.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/raph_before_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/nesrgb\/raph_after.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/raph_after_thumb.jpeg\" \/><\/a><br \/>\n<a href=\"\/model-data\/nesrgb\/raph_portrait_before.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/raph_portrait_before_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/nesrgb\/raph_portrait_after.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/raph_portrait_after_thumb.jpeg\" \/><\/a><\/p>\n<h3>Akumajou Densetsu (Castlevania 3)<br \/>\n<a href=\"\/model-data\/nesrgb\/akumajou_name_entry_before.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/akumajou_name_entry_before_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/nesrgb\/akumajou_name_entry_after.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/akumajou_name_entry_after_thumb.jpeg\" \/><\/a><br \/>\n<a href=\"\/model-data\/nesrgb\/akumajou_life_bar_before.jpeg\" title=\"The life gauge in Castlevania is one of my favorite examples of NES dot crawl distortion\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/akumajou_life_bar_before_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/nesrgb\/akumajou_life_bar_after.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/akumajou_life_bar_after_thumb.jpeg\" \/><\/a><br \/>\n<a href=\"\/model-data\/nesrgb\/akumajou_stained_glass_before.jpeg\" title=\"Without the mod, as seen here, may actually be better in the case of these stained glass windows\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/akumajou_stained_glass_before_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/nesrgb\/akumajou_stained_glass_after.jpeg\" title=\"Without the irregular edges and color blending, the window looks too sterile, perhaps\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/akumajou_stained_glass_after_thumb.jpeg\" \/><\/a><br \/>\n<a href=\"\/model-data\/nesrgb\/akumajou_fireball_before.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/akumajou_fireball_before_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/nesrgb\/akumajou_fireball_after.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/akumajou_fireball_after_thumb.jpeg\" \/><\/a><br \/>\n<a href=\"\/model-data\/nesrgb\/mad_forest_before.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/mad_forest_before_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/nesrgb\/mad_forest_after.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/mad_forest_after_thumb.jpeg\" \/><\/a><br \/>\n<a href=\"\/model-data\/nesrgb\/sypha_before.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/sypha_before_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/nesrgb\/sypha_after.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/sypha_after_thumb.jpeg\" \/><\/a><\/p>\n<h3>Rockman 3 (Megaman 3)<\/h3>\n<p><a href=\"\/model-data\/nesrgb\/rockman_3_title_before.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/rockman_3_title_before_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/nesrgb\/rockman_3_title_after.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/rockman_3_title_after_thumb.jpeg\" \/><\/a><br \/>\n<a href=\"\/model-data\/nesrgb\/rockman_lifebar_before.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/rockman_lifebar_before_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/nesrgb\/rockman_lifebar_after.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/rockman_lifebar_after_thumb.jpeg\" \/><\/a><br \/>\n<a href=\"\/model-data\/nesrgb\/gemini_man_stage_before.jpeg\" title=\"Again, the blending here may actually lend something to the stage's sense of otherworldliness.\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/gemini_man_stage_before_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/nesrgb\/gemini_man_stage_after.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/gemini_man_stage_after_thumb.jpeg\" \/><\/a><br \/>\n<a href=\"\/model-data\/nesrgb\/hard_man_stage_2_before.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/hard_man_stage_2_before_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/nesrgb\/hard_man_stage_2_after.jpeg\" title=\"Here the red in the background wall seems perhaps too bright in the NESRGB picture\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/hard_man_stage_2_after_thumb.jpeg\" \/><\/a><br \/>\n<a href=\"\/model-data\/nesrgb\/hard_man_stage_before.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/hard_man_stage_before_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/nesrgb\/hard_man_stage_after.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/hard_man_stage_after_thumb.jpeg\" \/><\/a><br \/>\n<a href=\"\/model-data\/nesrgb\/snake_man_stage_before.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/snake_man_stage_before_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/nesrgb\/snake_man_stage_after.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/snake_man_stage_after_thumb.jpeg\" \/><\/a><br \/>\n<a href=\"\/model-data\/nesrgb\/top_man_stage_before.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/top_man_stage_before_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/nesrgb\/top_man_stage_after.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/top_man_stage_after_thumb.jpeg\" \/><\/a><\/p>\n<h3>Dr. Mario<\/h3>\n<p><a href=\"\/model-data\/nesrgb\/dr_mario_title_before.jpeg\" title=\"Check out that heart...\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/dr_mario_title_before_thumb.jpeg\" \/><\/a><a href=\"\/model-data\/nesrgb\/dr_mario_title_after.jpeg\" title=\"\" ><img decoding=\"async\" src=\"\/model-data\/nesrgb\/dr_mario_title_after_thumb.jpeg\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>For a long time I was completely unaware of this: the composite video output that comes out of the NES is pretty terrible. When I got my first HDTV in 2007 and tried my Nintendo with it, I was able to see the problem clearly: straight edges were jagged, shapes staggered oddly as they moved [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[41],"tags":[77,75,76],"_links":{"self":[{"href":"https:\/\/scope-eye.net\/index.php?rest_route=\/wp\/v2\/posts\/933"}],"collection":[{"href":"https:\/\/scope-eye.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/scope-eye.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/scope-eye.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/scope-eye.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=933"}],"version-history":[{"count":8,"href":"https:\/\/scope-eye.net\/index.php?rest_route=\/wp\/v2\/posts\/933\/revisions"}],"predecessor-version":[{"id":941,"href":"https:\/\/scope-eye.net\/index.php?rest_route=\/wp\/v2\/posts\/933\/revisions\/941"}],"wp:attachment":[{"href":"https:\/\/scope-eye.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=933"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scope-eye.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=933"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scope-eye.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=933"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}