General Instruments PONG

Could someone please give me some info on the inner workings of the AY-3-8500 chip?
I am after a datasheet or doc from that era that will let me understand what it is that is happening within the chip to the point of being able to simulate accurately it in software.
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

HWhackerConnect With a Mentor Commented:
The data should be scanned and on its way in the next couple of days... but you'll probably be disappointed in the internal detail.  You may have to do a little reverse engineering:
 - record the video output and play it back on a machine that allows frame-by frame viewing.  From this you'll be able to extract the ball motions and how they relate to the video frame update rate.  Assume that the screen is an array of block pixels (ball-size) and determine the resolution of paddle and ball movement, and the screen size in pixels.

 My suspicion is that every element is resolved down to ball-size, and each "pixel" is a location with various attributes:
00 00 - empty: no interaction, 0% video;
11 10 - ball: 100% video; "hard" (bounces against X [or Y] hard surfaces reflect motion in Y [or X] direction while maintaining motion in the other direction);
11 10 - paddle center: hard; 100% video (same as ball);
01 10 - X wall: hard; 50% video - dashes
10 10 - Y wall: hard; 50% video - alternate horizontal lines;
11 01 - paddle edge: "firm" (ball's Y-direction motion toggles between normal and fast speeds on contact); 100% video;
11 00 - score: no interaction; 100% video (digits formed from a 3x5 pixel matrix).

(Bit pairs above: first = video 00=none 01=50%H 10=50%V 11=100%; second pair "hardness" 00=none 01=firm 10=hard; the presence of an unused state suggests I've neglected something, maybe hard-X and hard-Y to direct bounces...:)

 The ball's motion would have X and Y speed attributes, likely 0 (normal - 1 pixel jump per frame) and 1 (fast - 2 pixels jumped per frame). X speed is set by the expert setting, Y speed by bounces off paddle edges.

  Start with this set of assumptions and adjust the rules every time you uncover an exception. It's tedious (I've been there many times: the technique works on software too).  Just remember that the AY-3-8500 was the first worldwide large-volume single-chip device of its type - chances are it is a fairly straight-forward logic state machine on which everyone based their enhancements.
I'm not sure how much detail you want, and how accurate my memory of the thing is, but here goes:

The AY-3-8500(-1 for 525 line North American video) had a selection of games:
- Tennis (one paddle/player, open field ends);
- Soccer (two paddles/player, field end restricted to form a "goal";
- Squash (one player, one paddle, player side of field open);
- Two shooting games (my game didn't support, and my datasheet doesn't elaborate, so I can't help there);
 - Paddle positions are variable only vertically, over the full height of the field; there is no control of their horizontal position.

Player settings:
 - two ball speeds;
 - two paddle sizes (normal and half).

  Displayed near top of screen, on each player's side, was a 7-segment count that went up to 15 (I think).

  One annoying "bleep" (~1KHz?) for paddle hits, a shorter one for wall bounces, a higher-pitched short "bip" for point scoring.

  I have a GI book: I can scan the pages and EMail on request, but it is not the full sheet - evidently my copy came out toward the end of the product's life. It does elaborate on paddle positions and screen layout in general.

  I've still got one AY-3-8500-1 IC (without the game console... so things I throw away).  If you want wire it up and view the results for yourself, I could send it.
TheBeaverAuthor Commented:
Thanks for your response

There is heaps of info out there, on the net, about the external workings (how to wire it up, the games & settings), but nothing about what goes on inside the chip. I guess this is because GI assumed noone would care as you didn't have to code for it, just give it the inputs it needs.

I started this because I recently finished up getting one of these 70s consoles (with light gun), became facinated and decided to add the chip to my emulator, Mimic.

If you could send this chip it would be great. I could then wire it up to the parrallel port and check it out that way. As I said before, I have a working console but, because of its construction, am not able to access the component side of the PCB without destorying the unit. So desoldering the chip and putting in a socket is out :(
Realise that I am in Australia so the postage may be a few bucks. As a guide: I recently sent a unit the size of a null modem to the US and it cost A$6.00 (about US$3.00).

Sounds good. Is this a sheet of what happens inside the chip, or how to wire up the chip to make a console? I am more interested in the former.

Either way, please email me ( and let me know the size of the scans. If they are huge then I will setup some webspace for you upload them.

PS:I'm increasing the points for this question as 50 was all I had to offer when I asked :)
TheBeaverAuthor Commented:

I did hook the unit up to my TV card, but the interferrence was huge.Could hardly see a picture let alone analise it. How I am thinking of reverse engineering it is to hook it up to the parrallell port (output lines to the data lines, and then have another line to the clock pin so I can control the timing from my own code). That would allow me to record the output.
Glen A.IT Project ManagerCommented:
No comment has been added lately, so it's time to clean up this TA.
I will leave a recommendation in the Cleanup topic area that this question is:

Answered by: HWHacker

Please leave any comments here within the next seven days.


EE Cleanup Volunteer
All Courses

From novice to tech pro — start learning today.