Jump to content
Mikebloke

Tennis: A Pong Chip Port to the Intellivision

Recommended Posts

Long story Short(ish), I intended to be super geeky and attempt to homebrew right down from the Fairchild Channel F onwards - this meant learning Assembly for the first time despite programming for quite a long time (but out of habit).

 

Life of course throws a spanner, and various things (like working 7 days a week) meant I didn't have a lot of time to learn it either. I got to the point where I believed even simple early programs I tried wouldn't assemble right and then wouldn't load into an emulator. I got deflated and gave up.

 

I have bought a couple of Atari 2600 paperbacks in the past in preparation for taking a shot at them, as I prefer to read from a book (I grew up with an Amstrad 464 manual, so I prefer paperback and not bothered by number of pages!) and then noticed someone did an intellivision one too. I grabbed it with a lulu code, thinking it was another thing I could try in a million years. When it came in the post I flipped through it and saw it was a form of BASIC

 

"Aghhh!" I thought, I wanted to learn assembly, not BASIC (which I grew up with) but then realised that actually, if anything is going to draw me in to do anything at all, its going to be something that I can code something competent in 24 hours and have something to show for it.

 

So here we go, I've used Nanochess's book on Intellivision Programming to bring you a Pong chip port of 'Tennis' within 24 hours. Specifically, this is attempting to emulate my Binatone Colour TV Mark 10 machine from 1978. I've adapted Nanochess's example code for paddle and ball to look and act a bit like you'd get on the Binatone pong chip.

 

For reference, here is an indirect capture of the game I've 'ported': https://youtu.be/udNX2jTWPvE?t=12 and here is some basic info on the Colour Mark 10: http://www.old-computers.com/museum/computer.asp?st=3&c=1036

 

I have a soft spot for really bad and old games, so I'm going to attempt to completely port the entire ten game library so it plays in the intellivision. I'm not a collector of pong machines, so I only own the last colour Binatone model, the ruleset below might be more common than I think, but it seems oddly unique. This Binatone was useful for me as the target game was control pad operated, not light gun - meaning it still runs on modern tvs with all the games.

 

The features that this game has include:

 

  • Playfield and colours just like the Binatone Colour TV Mark 10!
  • Play continues until someone hits 15 points, then everything magically stops!
  • Serves 5 balls from the left paddle, then 5 balls from the right paddle; then repeats - just like the Binatone!
  • When a point is scored, the ball appears in the servers side ready until the server presses the action button!
  • Can move left or right as well as up and down - although not as cumbersome as the original Binatone "joystick" control!

 

There is still some things I can do to this game:

 

  1. Make the sounds more similar to the original Binatone: I just used the code provided in Nanochess's example
  2. Work out if the original Binatone has any different rebound angling for better emulation of the original game
  3. Decide on whether the boundaries of the screen / players side should be blocked. Right now you have to stay in your half, and you can't zip off the top or bottom like you can in the Binatone
  4. Add the various options that were available physically on the Pong machine itself such as paddle length and ball speed
  5. Add in the other games from the Binatone Colour TV Mark 10 - probably by taking advantage of the intellivision keypad

tennis.rom

Edited by Mikebloke
  • Like 7

Share this post


Link to post
Share on other sites

Hey Mikebloke,

 

From one UK Intellivision programmer to another, welcome! Good choice for your first project, as someone who has written one or two console simulations that run on the Intellivision, I think you'll find this is a really interesting project. :thumbsup:

 

The Binatone TV Master 10 is one of many later dedicated Pong consoles that were based on the General Instrument AY-3-8610 game and AY-3-8615 colour chip. As such, it is a distant relative of the Intellivision itself, as its chipset was designed and manufactured by the same company. You can find the AY-3-8610 documented on page 26 of this datasheet. I suspect that, ignoring PAL / NTSC differences, the circuit diagram on page 27 is pretty much what you will find inside your Binatone. You will also see on pages 51 to 59 of the same datasheet that the AY-3-8610 could be put onto a cartridge and used along with other games in the Gimini Economy 8600 semi-programmable system. This was released in the UK as the Binatone Superstar Programmable or Grandstand Colour Programmable.

 

Unfortunately, I don't think you'll be able to do what most people typically think of as an emulation of the console on the Intellivision. This is because the Binatone does not have a microprocessor or software, so normal software emulation is out of the question. And I doubt it will be possible to do a hardware emulation in the sense of SPICE or something similar, because the CP-1610 CPU in the Intellivision will be way too slow (although it would be amazing to be proven wrong on this :)). However, personally I don't think this is important and does not mean that you cannot put together a really interesting simulation, or that doing so will not be challenging. For example, I notice that the Binatone uses analogue joysticks. Reproducing the fluid feel of these using the Intellivision's disks will be an interesting challenge.

 

I suspect that, at its core, the Binatone is really just a single bat and ball game and the ten game choices are defining combinations of configuration values for that one game. These might indicate things like...

  • Whether there is one or two players
  • Whether player motion is two dimensional or constrained to a single dimension
  • Whether goals are shown
  • Where each player's scoring zone is
  • Whether each of the four outer walls of the playfield are drawn and cause a bounce

etc, etc.

 

I think it would be really cool if you were to structure your simulation in the same way. So that rather than having code to specifically simulate each of the ten games, you had a single core game, with handlers for things like movement and scoring criteria that are configured by setting variables. Choosing a particular game then sets the appropriate combination of values in these variables and the personality of the game changes. Hmm, I wonder how the two rifle games might fit into this structure, perhaps I'm wrong about it being a single core game... :ponder:

 

I think this would be cool because, in addition to architecturally being much closer to how the hardware is probably implemented, it would also make it really easy to try out combinations that were not supported by the console, for example basketball with two paddles per player, or goalies that can move in two dimensions. It would be interesting to know how these might have played and whether the versions that got in the released console really were the ten most fun games or whether there are hidden gems.

 

Anyway, I've prattled on enough. I look forward to seeing how this project progresses and if I can be of any help just drop me a line.

 

 

Cheers

 

decle

Edited by decle

Share this post


Link to post
Share on other sites

You can still learn CP-1610 Assembly Language if you really, really want to. Some of us still use it, so ask any questions you'd like. ;)

 

-dZ.

  • Like 1

Share this post


Link to post
Share on other sites

One cool feature of IntyBASIC is that you can mix BASIC and assembly together. I've written some Keyboard Component exploration code that is mostly BASIC but then uses assembly for a few of the low-level routines.

Share this post


Link to post
Share on other sites

In fact, I'm such a space cadet I actually prefer assembly language when writing for the Intellivision. :grin: :jango:

 

Now if you really want to have fun, someone's decapped the AY-3-8600-1. Most of the logic seems to be simple PLAs and counters, which isn't too surprising. While a SPICE simulation is over the top, a switch-level sim would at least let you work out what the exact rules are. Not sure if anyone has actually tried to make a transistor-level netlist from the decap though.

  • Like 2

Share this post


Link to post
Share on other sites

In fact, I'm such a space cadet I actually prefer assembly language when writing for the Intellivision. :grin: :jango:

 

Now if you really want to have fun, someone's decapped the AY-3-8600-1. Most of the logic seems to be simple PLAs and counters, which isn't too surprising. While a SPICE simulation is over the top, a switch-level sim would at least let you work out what the exact rules are. Not sure if anyone has actually tried to make a transistor-level netlist from the decap though.

 

I agree Joe, a really interesting intermediate level simulation should be possible in either IntyBASIC or CP-1610 assembly. Lol, as always there nothing new under the sun! It also looks as though Mikebloke might be blessed with good timing, always a good skill to have :thumbsup:

 

It seems Cole Johnson is in the process of reverse engineering the earlier AY-3-8500 also based on decap images by Sean Riddle and the work of the Visual 6502 project. He has done some great work (which made him one of the winners of the Fall 2018 RetroChallenge), including getting an online transistor level simulation up and running, well worth a read. One of the more interesting findings thus far is the identification of how game selection relates to internal circuit configuration. While the left player can have one or two paddles (main paddle and "soccer striker" paddle), the right player can have up to three paddles!? (main player, "soccer striker" and main player paddle repositioned for the squash game - the left player uses their "soccer striker" paddle when playing squash). The choice of game is decoded into configuration that may inhibit the drawing of one or more of each player's paddles. The cool thing is that by selecting "no game" (something that was typically prevented by the mehanical game selection slider, but can be done by driving the chip pins directly) no player paddles are disabled, leading to an undocumented variation of soccer called Handicap, where the right player has three paddles and the left player only has two. Like everything else, this is not new news...

 

 

...but I think it is interesting to find out how the behaviour comes about. It is also a small example of the kind of behaviour I was refering to, that can be trivial and really cool to implement by trying to understand and follow the architecture of the original system when implementing a simuation.

Edited by decle
  • Like 2

Share this post


Link to post
Share on other sites

Hello! I'm here because big brother Google tracks what links to my blog. Good job on your port Mike, if you have any questions regarding chip behavior just ask me, I'd love to help. Philosophical question: if you're playing simple-minded Pong on the Intellivision, does that make it the "Dumbvision"?

 

I'm planning on making a transistor-level netlist of the AY-3-8600-1 sometime, as all the resources are in place except the highlighted die photos. The AY-3-8606-1 (weird cross between breakout and pong) is currently in the process of being highlighted (>50% done), I prioritized it first as its not just an upgraded AY-3-8500 like the 8600 is. If anyone wants to contribute, you can help highlight or even donate chips for decapping. Within a few months, some of these systems should be playable on a FPGA board like MiST and/or emulated in MAME.

 

Oh, here's something related you might be interested in intvnut, a transistor-level sim of the SP0256 based on these images. I used some of your reverse-engineering work in the process of making it. Unfortunately the internal microprocessor doesn't work properly yet due to some bug somewhere, but it's cool nonetheless. Once my tools + experience improve, I'll hopefully get it more functional.

  • Like 3

Share this post


Link to post
Share on other sites

Oh, here's something related you might be interested in intvnut, a transistor-level sim of the SP0256 based on these images. I used some of your reverse-engineering work in the process of making it. Unfortunately the internal microprocessor doesn't work properly yet due to some bug somewhere, but it's cool nonetheless. Once my tools + experience improve, I'll hopefully get it more functional.

 

Yeah, I had seen the SP0256 in-browser sim. It's fun to look at but not particularly pleasant to use or understand. ;-) Is there a way to run it from a command line, and perhaps script it? When it comes to identifying which nets are busted, it'd be nice to be able to run tests in batch rather than trying to click checkboxes in real time in a GUI (yikes!).

  • Like 1

Share this post


Link to post
Share on other sites

Hello @TheProgrammerIncarnate!

 

The work you've done with decapping chips is great! I remember playing the 2 vs 3 paddles of "Handicap" against my brother when we were kids back in the day. After playing the standard games for a while, we started moving the slider switches slowly and discovered that the system would behave weird when the switches were just right. This was either with the Wonder Wizard Bullseye or with a 2nd pong system that might have been the Wonder Wizard Sharp Shooter. Since my brother was younger and not quite as skilled, I'd let him play with the 3 paddles. However, we were always worried that we were abusing the system and would ruin it so we tended not to play that mode too long. It's cool to find out that it appears the circuitry was just fine.

 

post-37124-0-82539200-1551424891.jpg

 

If you're looking for other chips to decap, one suggestion would be the AY-3-8765 which is the chip used in Atari Stunt Cycle. That system also has some weird modes if you get the switches just right. Going from decades old memories, one mode makes you invincible where you just pass through most/all obstacles. That mode gets boring in 30 seconds. Another mode causes the cycle to just flying diagonally across the screen (at angle that is about 30 downward from a left-to-right horizontal line).

 

post-37124-0-85269200-1551424806.jpg

 

One other chip to decap could be the glob-top chip (aka chip-on-board) chip in the Intellivision ECS module. This would be an awesome contribution to the Intellivision community. I can private message you through AtariAge to share what information I know about this chip.

 

post-37124-0-55183700-1551425301.jpg

 

Lastly, I love that you posted my goofy cat/SP0256 image on your blog. ;)

http://atariage.com/forums/topic/252738-intellivoice-sp0256-die-shot-cleaned-up/?p=3619920

  • Like 1

Share this post


Link to post
Share on other sites

 

I agree Joe, a really interesting intermediate level simulation should be possible in either IntyBASIC or CP-1610 assembly. Lol, as always there nothing new under the sun! It also looks as though Mikebloke might be blessed with good timing, always a good skill to have :thumbsup:

 

It seems Cole Johnson is in the process of reverse engineering the earlier AY-3-8500 also based on decap images by Sean Riddle and the work of the Visual 6502 project. He has done some great work (which made him one of the winners of the Fall 2018 RetroChallenge), including getting an online transistor level simulation up and running, well worth a read. One of the more interesting findings thus far is the identification of how game selection relates to internal circuit configuration. While the left player can have one or two paddles (main paddle and "soccer striker" paddle), the right player can have up to three paddles!? (main player, "soccer striker" and main player paddle repositioned for the squash game - the left player uses their "soccer striker" paddle when playing squash). The choice of game is decoded into configuration that may inhibit the drawing of one or more of each player's paddles. The cool thing is that by selecting "no game" (something that was typically prevented by the mehanical game selection slider, but can be done by driving the chip pins directly) no player paddles are disabled, leading to an undocumented variation of soccer called Handicap, where the right player has three paddles and the left player only has two. Like everything else, this is not new news...

 

 

...but I think it is interesting to find out how the behaviour comes about. It is also a small example of the kind of behaviour I was refering to, that can be trivial and really cool to implement by trying to understand and follow the architecture of the original system when implementing a simuation.

 

Here's something interesting. Cole's reverse engineering page points out a mask number for the AY-3-8500. It's number 30285. I just noticed on one of the procurement spec documents from PapaIntellivision (CCF10232011_00012.pdf), that they have a table of mask numbers for the various chips on page 197:

gi_mask_numbers.png

 

Notice that the CPU has a lower mask number than the AY-3-8500. This suggests that the CP1610 uses the same mask set as the CP1600.

 

Also 32121-AAA is likely the Intellivision II EXEC, which is why it's listed as 40-1 rather than 40K.

 

Anyway... enough threadjacking on that topic. I just found it rather interesting that other sleuthing decle and I have been working on intersected with this thread in an interesting manner.

Edited by intvnut
  • Like 2

Share this post


Link to post
Share on other sites

 

One other chip to decap could be the glob-top chip (aka chip-on-board) chip in the Intellivision ECS module. This would be an awesome contribution to the Intellivision community. I can private message you through AtariAge to share what information I know about this chip.

 

attachicon.gifpost-38373-0-99685800-1452107213.jpg

 

Lastly, I love that you posted my goofy cat/SP0256 image on your blog. ;)

http://atariage.com/forums/topic/252738-intellivoice-sp0256-die-shot-cleaned-up/?p=3619920

 

I personally would love to see decapped CP1610, AY-3-8900-1, and RA-3-9600 chips. I'd happily donate them to the cause.

 

And as much as I'd like to see inside the STIC1A chip from the Tutorvision, those are in such rare supply I would not happily donate one to the cause unless it's known to truly be dead. :-)

  • Like 1

Share this post


Link to post
Share on other sites

Sorry for taking over your thread Mikebloke,

 

I made my own here: (http://atariage.com/forums/topic/288899-ay-3-8500-emulation-update/) where the discussion can continue.

 

 

Yeah, I had seen the SP0256 in-browser sim. It's fun to look at but not particularly pleasant to use or understand. ;-) Is there a way to run it from a command line, and perhaps script it? When it comes to identifying which nets are busted, it'd be nice to be able to run tests in batch rather than trying to click checkboxes in real time in a GUI (yikes!).

 

The browser sim is more educational than usable given its speed. I planned on (once it was more complete) to make a button to automatically start a sound sequence instead of the current arcane signal-toggling. That would be useless until I fixed the bugs in it though. Eventually I may make it into a faster non-browser simulation, or an extremely fast Verilator-based emulation with scripted interaction and file output.

 

 

If you're looking for other chips to decap, one suggestion would be the AY-3-8765 which is the chip used in Atari Stunt Cycle. That system also has some weird modes if you get the switches just right. Going from decades old memories, one mode makes you invincible where you just pass through most/all obstacles. That mode gets boring in 30 seconds. Another mode causes the cycle to just flying diagonally across the screen (at angle that is about 30 downward from a left-to-right horizontal line).

 

==picture==

 

One other chip to decap could be the glob-top chip (aka chip-on-board) chip in the Intellivision ECS module. This would be an awesome contribution to the Intellivision community. I can private message you through AtariAge to share what information I know about this chip.

 

==picture

 

Lastly, I love that you posted my goofy cat/SP0256 image on your blog. ;)

http://atariage.com/...d-up/?p=3619920

 

Hmm I thought Atari used their own chip in stunt cycle instead of GI's. I don't think anyone has popped one open to see. They definitely used their own PONG chips instead of GI's. It would be funny if they used "clone chips" in their "original" version port. Kinda like Nintendo downloading ROMs from the internet to use in their emulators (yes I know that wasn't true.)

 

Finding unknown game modes is one of the reasons I'm doing this. The AY-3-8606-1 I'm currently highlighting has two testing pads inside it. They probably don't do anything playable, but the fact that you can access them is pretty neat.

 

You can PM me about your ECS chip findings, I'm interested. How well has the system been emulated/documented so far?

 

 

 

I personally would love to see decapped CP1610, AY-3-8900-1, and RA-3-9600 chips. I'd happily donate them to the cause.

 

And as much as I'd like to see inside the STIC1A chip from the Tutorvision, those are in such rare supply I would not happily donate one to the cause unless it's known to truly be dead. :-)

 

The 8900A has been decapped, although a metal-removed shot would make highlighting easier. Non-working chips are perfectly fine for decapping, so keep your eye out for anyone with broken systems.

Share this post


Link to post
Share on other sites

...

 

Hmm I thought Atari used their own chip in stunt cycle instead of GI's. I don't think anyone has popped one open to see. They definitely used their own PONG chips instead of GI's. It would be funny if they used "clone chips" in their "original" version port. Kinda like Nintendo downloading ROMs from the internet to use in their emulators (yes I know that wasn't true.)

 

Finding unknown game modes is one of the reasons I'm doing this. The AY-3-8606-1 I'm currently highlighting has two testing pads inside it. They probably don't do anything playable, but the fact that you can access them is pretty neat.

 

You can PM me about your ECS chip findings, I'm interested. How well has the system been emulated/documented so far?

 

...

 

 

Atari Stunt Cycle is a little odd because there are 2 versions of it. The Atari version just has the AY-3-8760-1 while the Sears version has the same chip plus a non-GI pong chip for extra games. Earlier, I said Atari Stunt Cycle used the 8765 because that is what GI listed in its catalog when the actual hardware used the 8760 with the GI logo on it. I'm not sure what differences, if any, there are between these 2 chip numbers.

 

http://atariage.com/forums/topic/269435-repair-questions-for-stunt-cycle-sc-450/

  • Like 1

Share this post


Link to post
Share on other sites

The 8900A has been decapped, although a metal-removed shot would make highlighting easier. Non-working chips are perfectly fine for decapping, so keep your eye out for anyone with broken systems.

 

That link goes to the AY-3-8910A sound chip. The AY-3-8900-1 is the STIC video chip. :-)

  • Like 1

Share this post


Link to post
Share on other sites

 

That link goes to the AY-3-8910A sound chip. The AY-3-8900-1 is the STIC video chip. :-)

 

Oops, my bad. I've wanted to look inside a STIC too.

 

 

Atari Stunt Cycle is a little odd because there are 2 versions of it. The Atari version just has the AY-3-8760-1 while the Sears version has the same chip plus a non-GI pong chip for extra games. Earlier, I said Atari Stunt Cycle used the 8765 because that is what GI listed in its catalog when the actual hardware used the 8760 with the GI logo on it. I'm not sure what differences, if any, there are between these 2 chip numbers.

 

http://atariage.com/...t-cycle-sc-450/

 

Ok, thanks for the link, I didn't know someone had popped one open. Its interesting, there is an empty 26-pin DIP spot on the right. According to pong-story, the 8760 and 8765 each have their own NTSC/PAL variants, so my theory is he 8760 is a standalone variant with the 8615's support functions integrated onto it, while the 8765 is designed to go in PC-50x carts. This would explain the empty spot, which may hold a 8615 in some versions of the board. Its cheaper though to combine 2 chips into 1.

 

Theory confirmed: The AY-3-8760 is described on page 42 of the GIMINI catalog, the AY-3-8765 on page 57.

  • Like 1

Share this post


Link to post
Share on other sites

Woah! So much interest and a much more interesting side conversation regarding the AY chips! Thanks guys I totally don't mind you hijacking! I'll definitely follow the other thread too.

 

So just an update: My time is quite limited but I do have a working "target" game on the go now with my rom, I'm going to try and get a little more done on it before I reupload though.

 

I'll reply to a few people who messaged too:

 

 

Very cool!

This is a great . Thanks for sharing ROM.

 

Thanks guys, hopefully this is the first of many :thumbsup:

 

 

Hey Mikebloke,

 

From one UK Intellivision programmer to another, welcome! Good choice for your first project, as someone who has written one or two console simulations that run on the Intellivision, I think you'll find this is a really interesting project. :thumbsup:

 

[snip]

 

Anyway, I've prattled on enough. I look forward to seeing how this project progresses and if I can be of any help just drop me a line.

 

 

Cheers

 

decle

 

Thanks for the information decle, it obviously won't be a true 'software' emulation, but rather emulation from the literal form of the word. I've made some adjustments already, but there probably isn't a true way of emulating how bad the controllers are on this thing. Still, its intended as preservation of an integrated 1st gen console, rather than a like-for-like copy. I'm really really interested in demakes generally, although in this case its more of an 'upmake'.

 

You can still learn CP-1610 Assembly Language if you really, really want to. Some of us still use it, so ask any questions you'd like. ;)

 

-dZ.

One cool feature of IntyBASIC is that you can mix BASIC and assembly together. I've written some Keyboard Component exploration code that is mostly BASIC but then uses assembly for a few of the low-level routines.

In fact, I'm such a space cadet I actually prefer assembly language when writing for the Intellivision. :grin: :jango:

 

Now if you really want to have fun, someone's decapped the AY-3-8600-1. Most of the logic seems to be simple PLAs and counters, which isn't too surprising. While a SPICE simulation is over the top, a switch-level sim would at least let you work out what the exact rules are. Not sure if anyone has actually tried to make a transistor-level netlist from the decap though.

 

Cool stuff :o yes, I got a bit put off trying to do the assembly for the Fairchild Channel F. I think I shot for the moon and and came back to earth with a crash and then an explosion like a V2 rocket. My hope is if I can learn it for a more established and supported community like the intellivision - I can bring back that knowledge to the fairchild. Perhaps a Binatone clone for the Fairchild one day too!

 

Hello! I'm here because big brother Google tracks what links to my blog. Good job on your port Mike, if you have any questions regarding chip behavior just ask me, I'd love to help. Philosophical question: if you're playing simple-minded Pong on the Intellivision, does that make it the "Dumbvision"?

 

I'm planning on making a transistor-level netlist of the AY-3-8600-1 sometime, as all the resources are in place except the highlighted die photos. The AY-3-8606-1 (weird cross between breakout and pong) is currently in the process of being highlighted (>50% done), I prioritized it first as its not just an upgraded AY-3-8500 like the 8600 is. If anyone wants to contribute, you can help highlight or even donate chips for decapping. Within a few months, some of these systems should be playable on a FPGA board like MiST and/or emulated in MAME.

 

Oh, here's something related you might be interested in intvnut, a transistor-level sim of the SP0256 based on these images. I used some of your reverse-engineering work in the process of making it. Unfortunately the internal microprocessor doesn't work properly yet due to some bug somewhere, but it's cool nonetheless. Once my tools + experience improve, I'll hopefully get it more functional.

 

XD I'll be honest I would quite like to make super versions of the games included in the Binatone and other pong systems, and getting to grips with Intybasic means it might actually be possible. I'll probably take a shot at some PC-50x games as well at some point.

 

All the info and work on the AY chips looks amazing everyone, really good stuff and very interesting. While I am not as technical as you guys on a hardware level, its super interesting and I'll keep reading anything you guys have.

  • Like 3

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...