Jump to content

Photo

Atari 2600 RGB mod


259 replies to this topic

#26 tim. OFFLINE  

tim.

    Space Invader

  • 21 posts
  • Location:Australia

Posted Sat Jul 25, 2015 9:55 AM

Awesome work again Tim, a quickie question - could this be adapted to work with a 7800 one day?

 

Yes. I'm not working on it currently, but it's fairly high on the priority list. Sometime next year probably.

 

 

Any idea what the price of installation will be yet?

 

I don't think anybody's going to price it before they've done it. I don't offer installation services myself - I'm too busy and too far away.

 

Tim, Any plans to make this compatible with your NESRGB rgb to component converter?

 

It's already compatible. The usual warning of "don't expect it to work on a HDTV" applies.

 

That's smart. Are there any Screenshots?

 

I'll put some up on the web page tomorrow.



#27 Great Hierophant OFFLINE  

Great Hierophant

    Stargunner

  • 1,256 posts
  • Scribbler
  • Location:Massachusetts

Posted Sat Jul 25, 2015 12:00 PM

The NESRGB was a difficult install for any NES console because you always have to desolder the 40-pin Picture Processing Unit with out destroying it or the PCB underneath.  This mod install will be far easier for those of us with Heavy Sixers or Light Sixers because they have socketed TIA chips. Also any 4-switch console with a socketed TIA chip will also have an equally easy time.  

 

Also, the basic principle would allow a 2600 to HDMI board to be made, just like there is for the NES.  It would require a more complex design and a connection to the PIA to eliminate input lag.  

 

The 2600 has four color registers for six graphical objects plus the background color.  I assume that the registers for the graphical objects are each assigned a shade in the grayscale range to make distinguishing them easier.  The TIA outputs the luma values separately on three pins and the color information on a fourth pin.  The NES does not need separate color assignments for each of its thirty-two color registers because it outputs the the lower four bits of the palette index for each pixel on its PPU pins, so all background palettes are black and sprite palettes are white to distinguish the background and sprite pixels in the video output.


Edited by Great Hierophant, Sat Jul 25, 2015 12:07 PM.


#28 jarreboum OFFLINE  

jarreboum

    Space Invader

  • 44 posts

Posted Sun Jul 26, 2015 3:47 AM

The Composite and Svideo are passthrough or are they reencoded from your RGB out? If the latter is there a significant difference between the old mods and yours?



#29 ApolloBoy OFFLINE  

ApolloBoy

    Quadrunner

  • 5,663 posts
  • Location:San Jose, CA

Posted Sun Jul 26, 2015 11:06 AM

The Composite and Svideo are passthrough or are they reencoded from your RGB out?

They're encoded from RGB, which is also how the NESRGB does it. Looks like the 2600RGB uses the exact same video encoder as the NESRGB as well.

#30 jarreboum OFFLINE  

jarreboum

    Space Invader

  • 44 posts

Posted Tue Jul 28, 2015 10:38 AM

Where do the alternate palettes come from? What do they look like?



#31 coleridge OFFLINE  

coleridge

    Star Raider

  • 91 posts

Posted Tue Jul 28, 2015 11:21 AM

There will be a 7800 version next year? Sweet!  Makes me almost regret importing a French 7800.  Almost. 



#32 gsxrboy OFFLINE  

gsxrboy

    Space Invader

  • 21 posts

Posted Tue Jul 28, 2015 6:14 PM

 
Yes. I'm not working on it currently, but it's fairly high on the priority list. Sometime next year probably.


That's awesome news Tim, thanks on behalf of all 7800 owners :)

#33 tim. OFFLINE  

tim.

    Space Invader

  • 21 posts
  • Location:Australia

Posted Wed Jul 29, 2015 7:35 AM

I have put some photos up here
http://etim.net.au/2...gb/screenshots/
 

Where do the alternate palettes come from? What do they look like?

 
One is from the Stella emulator. The other two were from this forum - the Nabuko palette and the Trebor palette. I have uploaded them all here for you to try on your favourite emulator.

#34 Mitkraft OFFLINE  

Mitkraft

    Dragonstomper

  • 528 posts
  • Location:Houston, TX area

Posted Wed Jul 29, 2015 9:16 AM

image.png

 

Seriously.  I'm dying to place an order for one of these + an SMSFM mod.  Will these be 100% ready for prime time when you start offering them or is there any reason to wait?  Is that still going to be tomorrow?  Will your site handle whatever discount I might get in shipping for ordering them both at the same time?  Thanks!



#35 Thomas Jentzsch OFFLINE  

Thomas Jentzsch

    Thrust, Jammed, SWOOPS!, Boulder Dash, THREE·S, Star Castle

  • 22,374 posts
  • Always left from right here!
  • Location:Düsseldorf, Germany

Posted Thu Jul 30, 2015 3:19 AM

I wonder how this works technically. Is there some kind of frame buffer involved? Or is it still racing the beam?



#36 collinp OFFLINE  

collinp

    Space Invader

  • 35 posts

Posted Fri Jul 31, 2015 2:33 AM

I wonder how this works technically. Is there some kind of frame buffer involved? Or is it still racing the beam?

 

I highly doubt this is frame buffered. I installed Tim's NESRGB mod in my Nintendo and it definitely doesn't use a frame buffer.  Tim claims "The video timing is unchanged". Certainly it is unchanged on the Nintendo. 

 

The way the NESRGB works has been explained. It sits between the CPU and PPU (NES graphics chip). It intercepts palette writes destined for the PPU and remembers them. The NES PPU can be configured in a master mode to send information about the palette index it is currently displaying on 4 expansion pins as the video signal progresses across the scan line. To know exactly what palette index is being used you actually need a 5th bit indicating background or sprite that is not externalized from the PPU. This is where the NESRGB pulls a rabbit out of a hat; not only does it intercept palette writes and remember them but it changes them to color the sprites full white and background full black. A simple level test on the PPU's composite output allows the fifth bit to be extracted and the exact palette index for every pixel of the scan line to be determined. The sync signals are extracted directly from the PPU and as the beam races along the NESRGB generates a perfect RGB signal.

 

I have no inside knowledge about how Tim pulled off the TIA magic, but here's my guess... I don't see anything equivalent to the expansion pins on the TIA but on the TIA you have way fewer graphic entries to be addressed. Compared to 16 palette entries per sprite and 16 per background on the NES, you only have 5 separate graphics entities on the TIA. Unlike the NES which directly outputs composite from the PPU there are 3 luma pins from the TIA that are combined externally along with chroma to create the RF signal. 3 bits is enough to indicate which of the 5 TIA graphics elements is being displayed per pixel. One way this could work is that the RGB board intercepts the palette writes destined to the TIA and remembers them. It then feeds a special palette entry per graphics element to generate a unique binary pattern on the luma pins per graphic element. Then it synthesizes all this data to generate a perfect RGB signal. Again I have no idea how this mod really works, I'm just piecing together information based on Tim's hints so I could be off base here.

 

The NESRGB is really a brilliant mod and if something similar is coming to the 2600 I cannot be more excited. I have yet to find a video mod for the 2600 that I like. If this works half as well as the NESRGB we're in for something special here. 


Edited by collinp, Fri Jul 31, 2015 2:44 AM.


#37 Thomas Jentzsch OFFLINE  

Thomas Jentzsch

    Thrust, Jammed, SWOOPS!, Boulder Dash, THREE·S, Star Castle

  • 22,374 posts
  • Always left from right here!
  • Location:Düsseldorf, Germany

Posted Fri Jul 31, 2015 2:45 AM

Generating the color seems not the major problem to me (even though that's not straightforward too). 

 

But to know which element is displayed per pixel, the mod must very exactly replicate the TIA logic for that. There are a lot of programming tricks which have been developed in the past and maybe even more to come in the future. Simply emulating those tricks is not sufficient. Instead the mod must replicate all the timing quirks of the TIA 100%, else it would fail eventually.

 

If such a 100% timing replication has been achieved I would instantly buy one. But so far, I am missing important information here.



#38 collinp OFFLINE  

collinp

    Space Invader

  • 35 posts

Posted Fri Jul 31, 2015 3:01 AM

I doubt he's emulating much of the TIA at all. He didn't replicate the PPU on the NES either. He's almost certainly still using the TIA for the actual video generation. What I think he is doing is two things :

 

1. Capturing all palette updates from the game. The game thinks it's talking to the TIA, but i's not.

2. He's feeding the TIA a custom palette e.g.

   000 = BALL

   001 = MISSLE1

   010 = MISSLE 2

  ETC.

 

He's driven by the output timing of the TIA and can determine exactly what's being displayed from the custom palette. He can determine what color it is supposed to be because he's intercepted the game's palette update register writes.

 

Again, I don't know this is exactly how it works, but he pulls off something similar on the NESRGB and it works well. Admittedly he did have a couple firmware updates to fix a couple bugs. The biggest game compatibility one was something where he wasn't fully masking of address bits to capture all PPU palette updates. Otherwise the NESRGB has been very compatible.

 

We'll see. Maybe this won't be that compatible but in principle I think it could be. The NESRGB does work well for me so I am taking a little bit on faith. I will try to order one and see how it works. I'm refreshing the website now. It's been the 31st in Australia for almost a full day now! :)


Edited by collinp, Fri Jul 31, 2015 3:20 AM.


#39 Thomas Jentzsch OFFLINE  

Thomas Jentzsch

    Thrust, Jammed, SWOOPS!, Boulder Dash, THREE·S, Star Castle

  • 22,374 posts
  • Always left from right here!
  • Location:Düsseldorf, Germany

Posted Fri Jul 31, 2015 3:07 AM

Ah, so it gets input from both sides? CPU and TIA? That would make sense.



#40 collinp OFFLINE  

collinp

    Space Invader

  • 35 posts

Posted Fri Jul 31, 2015 3:14 AM

Ah, so it gets input from both sides? CPU and TIA? That would make sense.

 

I think so, at least that's how the NESRGB works.



#41 roland p OFFLINE  

roland p

    River Patroller

  • 2,395 posts
  • $23
  • Location:The Netherlands

Posted Fri Jul 31, 2015 5:24 AM

I too wonder how this works. I would think it would be the easiest to take the phase delayed (still digital) chroma signal and count clock pulses to get the color.

But this probably works different. Maybe the TIA is fed with black/white colors instead, and the board uses the luma pins to determine the color again. Edit: (probably what collinp said)

Edited by roland p, Fri Jul 31, 2015 5:29 AM.


#42 Mitkraft OFFLINE  

Mitkraft

    Dragonstomper

  • 528 posts
  • Location:Houston, TX area

Posted Sat Aug 1, 2015 9:17 AM

Tim, I see you have the instructions up now (although only 4-switch. I'll need the 6) and I'm curious, is there an easy way to do this without wiring anything to your joystick connections? I'd really rather leave those alone and I have no intentions of adding any buttons to them. Thanks!

#43 collinp OFFLINE  

collinp

    Space Invader

  • 35 posts

Posted Sat Aug 1, 2015 2:40 PM

Tim, I see you have the instructions up now (although only 4-switch. I'll need the 6) and I'm curious, is there an easy way to do this without wiring anything to your joystick connections? I'd really rather leave those alone and I have no intentions of adding any buttons to them. Thanks!

 

 

Darn, I have to wait another week and a half for the six switch kit. I guess it's been almost 38 years, I'll live.

 

Tim has said that the joystick features are optional. I don't intend to install them either.

 

But he didn't call out in the guide how he expects you to wire things up if you don't use the joystick mod. Hopefully he will update the guide with that info.

 

From looking at the wiring diagram I think you can simply skip all the wiring between the Extra pads and the left controller port. Instead you wire a push button switch between P and GND on the main pads. 

 

I am a little worried about the use of a push button for palette selection here. The NESRGB used a multi-position switch to set the palette mode so the switch position dictated the palette. With a push button the 2600RGB will need to remember what palette it's on since it can't just query the switch position. Is this selection remembered after the console loses power? Does it have two independent memories, one for the current PAL palette and one for the NTSC? 

 

Hopefully there's some non-volatile RAM in the mod that saves this info. It would be annoying to have to pick your palette every time you plugged your Atari in. Personally I'm not sure I want to even externalize the switch. I'd like to just pick the most faithful NTSC and PAL palettes once and leave the switch double stick taped to the inside of the console. That's what I did with my NES. No extra holes in my console. I suppose on the 2600 it does give you the pause feature so it might be worth externalizing. I'll have to think about it.



#44 collinp OFFLINE  

collinp

    Space Invader

  • 35 posts

Posted Sat Aug 1, 2015 3:03 PM

 

I am a little worried about the use of a push button for palette selection here. The NESRGB used a multi-position switch to set the palette mode so the switch position dictated the palette. With a push button the 2600RGB will need to remember what palette it's on since it can't just query the switch position. Is this selection remembered after the console loses power? Does it have two independent memories, one for the current PAL palette and one for the NTSC? 

 

Hopefully there's some non-volatile RAM in the mod that saves this info. 

 

Looking at his photos he's got an 24LC64 8K programable ROM on the board. No such EEPROM was present on the NESRGB. He states that it contains palette data and can be updated by a user with an EEPROM programmer. It is certainly possible that he uses a few bits in the EEPROM for the 2600RGB to remember palette selection across power loss. We'll see.



#45 jarreboum OFFLINE  

jarreboum

    Space Invader

  • 44 posts

Posted Sun Aug 2, 2015 12:24 PM

Yes, if it were a simple on/off switch between the two original pal and ntsc palettes I would have put it in place of the useless channel switch. But as it's automatic and I don't have pal60 games anyway, I won't install any switch. People with a lot of Pal60 games would probably have preferred the option of a manual two position switch, as it would give a tactile feedback of what palette you are using. A push button may be confusing sometimes.

I would have liked if there was an audio in pad, so it could mix the AtariVox internally. The two audio pins do confuse me though, especially since I expected to have the video and audio through the mini din8.

Also why do we have to replace the regulator? And the extra capacitor is an oversight of the original design or does it need to be put as it is?

#46 collinp OFFLINE  

collinp

    Space Invader

  • 35 posts

Posted Mon Aug 3, 2015 3:07 AM

Yes, if it were a simple on/off switch between the two original pal and ntsc palettes I would have put it in place of the useless channel switch. But as it's automatic and I don't have pal60 games anyway, I won't install any switch. People with a lot of Pal60 games would probably have preferred the option of a manual two position switch, as it would give a tactile feedback of what palette you are using. A push button may be confusing sometimes.

I would have liked if there was an audio in pad, so it could mix the AtariVox internally. The two audio pins do confuse me though, especially since I expected to have the video and audio through the mini din8.

Also why do we have to replace the regulator? And the extra capacitor is an oversight of the original design or does it need to be put as it is?

 

I wonder if there's a momentary switch that could replace the channel switch? Something that springs back like the reset and select switches but in the form factor of the channel switch. That would be a nice stealth way to externalize the palette switch on 4 switch units. I Googled a bit and didn't see anything, but that doesn't mean they don't exist.

 

On the NESRGB people were soldering to one of the resistors in the audio section to mix in expansion audio. In later revs Tim added a thru-hole to make mixing in audio easier than soldering a wire onto a surface mount resistor. In the photos for the 2600RGB there is a loan thru-hole over by the audio section. Maybe that's also for mixing in audio? I guess we'll have to see. Worst case I'm sure you can find a solder point to mix into the audio section.

 

And yeah what's up with the extra cap for the regulator? You would think it would be on the regulator board already. Maybe a last minute addition?



#47 Yurkie OFFLINE  

Yurkie

    Q*bert Champion

  • Topic Starter
  • 3,982 posts
  • Offering mods for ColecoVision and NESRGB
  • Location:Toledo, Ohio

Posted Wed Aug 5, 2015 6:21 PM

A few days behind schedule but shipment is on the way.

#48 Mitkraft OFFLINE  

Mitkraft

    Dragonstomper

  • 528 posts
  • Location:Houston, TX area

Posted Fri Aug 7, 2015 2:52 PM

I just noticed there is a component video add-on option to the 2600RGB.  Can either of you comment on that, how it works, and how good the result is compared to rgb?  I have a CRT with component video and not rgb so using that would save me from trying to find a pro video monitor or figuring out how to connect an arcade monitor to my consoles.



#49 jarreboum OFFLINE  

jarreboum

    Space Invader

  • 44 posts

Posted Fri Aug 7, 2015 3:22 PM

For all intents and purposes, Component is as good as RGBS. If you had both inputs, I would tell you to use RGBS and skip the useless step of encoding a video signal then decoding it one metre later. But you will get the same picture quality with a Component cable, and I strongly suggest you to use it since you can.
 
In a similar vein, you can get Scart to Component transcoder. They only convert the colour space from RGBS to YPbPr without any upscaling, filtering or buffering. They allow you to enjoy your consoles with RGB quality, and on a CRT you can also use lightguns and 3Dglasses, and rock the rhythm games with no input lag at all. Going from Composite, your mind will be blown.



#50 Mitkraft OFFLINE  

Mitkraft

    Dragonstomper

  • 528 posts
  • Location:Houston, TX area

Posted Fri Aug 7, 2015 3:44 PM

I work in A/V so I'm quite familiar with signal types.  If an RGBS monitor was easy to find in a 27" size I would gladly do so.  I'm not sure about your assertion that an RGBs->component video (colour space) conversion is as simple/lossless as you describe.  If that's true than I'm glad to hear it but I would like to hear others confirm that the conversion is indeed THAT clean because I love my 27" CRT that I use for retro gaming and it has component video but not RBG input.

For all intents and purposes, Component is as good as RGBS. If you had both inputs, I would tell you to use RGBS and skip the useless step of encoding a video signal then decoding it one metre later. But you will get the same picture quality with a Component cable, and I strongly suggest you to use it since you can.
 
In a similar vein, you can get Scart to Component transcoder. They only convert the colour space from RGBS to YPbPr without any upscaling, filtering or buffering. They allow you to enjoy your consoles with RGB quality, and on a CRT you can also use lightguns and 3Dglasses, and rock the rhythm games with no input lag at all. Going from Composite, your mind will be blown.






0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users