Jump to content
IGNORED

My 2600 cart dumper


alex_79

Recommended Posts

EDIT 2022-07-22: the latest version can be found in my blog

------------------------------------------------------------------------------

 

I started programming this because I wanted to see if I could dump the games built into a clone 2600 console without desoldering the rom chip. I used the clever FB2 dumper software by Batari in the past to dump cartridges, but it didn't work in this case, because this particular clone console doesn't have bidirectional controller ports, so it cannot send the data to the PC using those. I came out with the idea of using the TIA audio output to send data in the same way old computers did with audio cassette recorders.

After having a first proof of concept working, I expanded it by adding an on-screen menu to choose between different bankswitch formats and communication methods (I added an optional serial output like in Batari's software). The working principles remains the same as in the fb2dumper:
- The dumping routine is copied to VCS ram and then executed.
- It displays a "ready screen" running from ram while waiting for a key press, allowing the user to make the game accessibile in the cartridge port (by swapping cartridges or using a special connector).
- Then you press the key and the game is read and trasferred to a PC.

Although there are better and more user-friendly ways to dump 2600 games (for example using an Harmony cart) I think this could still be of some use if other methods aren't available.

I intended to do some more testing, but I haven't worked on this for a while, and I decided to share it in it's current state. It's likely that it has some bugs.


WARNING: Use the software and circuits described here at your own risk! I assume no responsability for damages caused to your PC, console or games.



What do you need:

- An atari 2600 or compatible

- Some sort of programmable cartridge (the software is Supercharger-compatible) or an eprom burned with the dumper software

- (optional but recommended) A circuit to switch between the dumper software and the game to be dumped while the console is powered. It can be either an external device (which plugs into the 2600 and has 2 additional cart ports on it for the dumper and the game, or just 1 cart port for the game and an eprom chip with the dumper installed in it) or built inside the console itself.
It's possibile to use the dumper without such a circuit by just "hot swapping" the carts: I used this method with the FB2 dumper too and worked just fine for me, but there's risk of damage to carts and/or the console if done improperly.

- An adapter to connect to the PC serial port or, as an alternative, a cable to connect the audio output to the PC soundcard.

- A PC with a terminal emulator or an audio recording software.

- The utility to convert the ascii file (if you used the serial connection) or wav file (audio connection) into a binary file (the "rom" of the game).



Example of circuit to switch between dumper and game:

This is the pinout of the 2600 cart port. Pin 18 which is the CPU A12 address line is used as a "Chip Enable" (CE) signal for the cartridge. If the pin is high, then the cart is selected.
post-10599-0-53220500-1312652727_thumb.png


To switch between the dumper and the game a DPDT switch can be used. When it's in one position the CE pin of one cart is connected to console A12, while CE pin of the other cart is grounded. The connection are inverted with the switch in the other position. All the other pins are connected in parallel (game A1 and dumper A1 are both connected to the console A1, etc..). If you use an eprom inside the device for the dumper software you'll need to invert the CE signal, because eproms have an "active low" chip enable pin.
Instead of building it from scratch you can use a modified "Video Game Brain" or a similar cart selector.
post-10599-0-78596400-1312652752_thumb.png

-------
EDIT: This simple circuit worked quite well for me (the software rarely crash while operating the switch), but results may vary depending on the specific console and components used to build the dumper. User Madhatter, for exaple, was unable to use it because the console always crashed, so he designed this debounce circuit which solved the problem:
post-10599-0-66793500-1320188611_thumb.png

Here is his website with some great Atari-related projects and also an article reporting his experience building the dumper. (the page is in spanish, but you can use google translator if you don't know the language).
-------


If you want to dump the games built-in a console, you'll need a different circuit: in those consoles usually pin 24 of the cart port is used to detect the cartridge: most cartridges (there are a few exceptions) connect internally that pin to ground allowing the console to detect it. If the pin is not grounded the internal games are run. To allow the dumper to work without modifying the console you need an adapter like this:
post-10599-0-43661800-1312652774_thumb.png

Again you'll need an inverter if you use an eprom for the dumper software incorporated into the device.


This is the one I built. It has an eprom with the dumper software, and combines the 2 above circuits to allow dumping both cartridges and built-in games.
(EDIT: the pin on the bottom left was mislabeled in the schematic. I fixed it and also added pictures of the inside)
post-10599-0-02385300-1312652810_thumb.jpg post-10599-0-40757800-1312652818_thumb.jpg
post-10599-0-78958900-1314779488_thumb.jpg post-10599-0-44143400-1314779470_thumb.jpg
post-10599-0-99994900-1314779434_thumb.png



Adapter for serial connection:

I used the method suggested by supercat in the fb2dumper thread about having the console to output both normal and inverted TTL levels on different pins. By connecting the inverted signal to RD (Receive Data) pin of a PC serial port and the non-inverted one to GND pin, the port on the PC will see -5V for a "one" bit and +5V for a "zero", which is compatible with the RS232 standard. The dumper uses the right controller port on the console with the following pinout:

pin 1 (inverted TTL data)
pin 2 (TTL data)
pin 8 (ground)

These are the connections for the 9 pin and 25 pin style serial connectors.

2600 | PC (9 pin)
--------------------
pin 1 -> pin 2
pin 2 -> pin 5


2600 | PC (25 pin)
--------------------
pin 1 -> pin 3
pin 2 -> pin 7

If you have a TTL to RS232 or a TTL to USB converter, ignore the inverted signal and use the non-inverted one and the 2600 GND pin.
You'll need a terminal program (like Hyper Terminal or Minicom) on your PC which is able to save ascii file and configured for a 9600 baud or 19200 baud transmission 8N1 (8 bits, no parity, 1 stop bit) and no flow control.


Connecting audio to the PC:

If you use the audio transfer method you need to record the audio from the 2600 into a wav file. If the console you're using is A/V modded you can just connect it directly into the audio input of your PC soundcard. Else you can use the audio output from your TV (if present) or from an old VCR. If your TV or VCR has an headphone jack, that will work too.
You'll need a program to record the audio to a wav file. (I used Audacity on my Linux PC). You must experiment a little with volume settings on the TV/VCR and soundcard until the wav files convert without errors. Avoid clipping. Setting the volume so that the waveform's peaks in Audacity are about half of the maximum level works fine for me (For my tests I connected the console RF cable to a small 5" Black&white CRT and then connected the headphone output of the TV to the MIC input of the soundcard).
NOTE: the audio transfer is S L O W ! A 4k game takes about 40 seconds to be transferred at the fast speed (1300 baud) and about 1 minute and a half at slow speed (520 baud). So I suggest to use the serial method whenever possible.

----------------------------------

How to dump a game:

(These instructions are mainly for dumping cartridges. Dumping built-in games must be examined case by case, because different consoles use different methods to select the games).

1 - Select the dumper rom using the switch in the circuit derscribed previously and turn on the console. The following menu is shown:
post-10599-0-93988600-1312652871_thumb.png


2 - Choose the bankswitch type (there's not autodetection, so you must try different ones until you get a playable rom if you don't know which one is used in your game), the output method and the transfer speed. Use the SELECT switch to cycle through the menu entries (the current one will blink) and the RESET switch to change its value.
There are 10 bankswitch schemes (ignore the "CUSTOM" entry for now): Standard (4k, non bankswitched), F8, FE, E0, 3F, UA, FA, F6, E7, F4. There aren't separate entries for games with additional ram so, for example, you use the F8 bank scheme also for F8SC (F8 with Superchip).
Check Kevin Horton's size.txt document for an explanation of the various bankswitch methods.
I tested the software with 4k,FE,F8 and F6 bankswitch types. I don't have carts to test the other schemes.
post-10599-0-22685000-1312653003_thumb.png


3 - When you are set select the "DONE" entry at the bottom and press RESET to switch to the next screen.
A screen is displayed, consisting in two bars at the side with cycling colors. This means that the software is ready to start the data transfer.
post-10599-0-78702200-1312652902_thumb.png

NOTE: Due to lack of space (the code runs in the VCS RAM which is only 128 bytes), this is not a "proper" TV signal, because it lacks the "vertical sync" pulses. It usually works with CRT TVs, but some modern LCD or video capture cards could just refuse to display it.

4 - Flip the switch to make the game rom accessibile by the console (or "hot swap" the carts). If the bars at the side of the screen become solid colored, the software crashed and you must power-cycle and restart from the beginning. In my tests this doesn't happen using the switch method, while frequently occurs by hot swapping the carts.

5 - Start the audio recording software or the ascii file capture in the terminal emulator

6 - Press the RESET switch to start the actual data transfer. The screen goes black while the data is sent to the PC. When finished the colored bars reappear.

7 - Stop the audio recording / file capture on the PC.

8 - Convert the saved wav or ascii file to binary by using the included command line utility.
You just need to specify the input and output file names:

2600dumper <input_file_name> <output_file_name>

If you omit the output file name, it will be called "out.bin".
If the resulting file size is not the expected one, then there were errors during the transfer. In this case check your connections, try adjusting the volume settings (if you're using the audio method) and retry.


9 - Test the binary with an emulator.


After the transfer is finished, pressing RESET will start execution at the address stored in the "start vector" (locations $FFFC and $FFFD). This will usually start the game, but sometimes will fail because it doesn't check if the correct bank is selected. If you switch back to the dumper rom before pressing RESET, the dumper will be restarted.

---------------------------------------
dumping unsupported bankswitch schemes:

Selecting the "CUSTOM" type in the main menu allows to dump some of the unsupported bankswitching formats. What the software does is to read from or write to a location in the 2600 memory map (the "hotspot") and then reading data from an address range. You would need to dump the various banks one at the time and then reassemble the complete binary by hand.
If you choose the CUSTOM type in step 2 above, an additional menu screen is displayed:
post-10599-0-45349000-1312652941_thumb.png post-10599-0-01442300-1312652974_thumb.png

2B - You can chose to read or write the hotspot (and in the second case you can set the value to be written), select the hotspot address, the start and end addresses of the area to be dumped and optionally the TIA and RIOT base addresses to be used by the software (in case the standard ones may trigger the hotspot). All values are in hexadecimal format. You can find the 2600 memory map, with all the TIA and RIOT mirrors, here.

The hotspot can be in any location in the 2600 memory map, but the software only allows to write into TIA addresses $2D - $3F and in cartridge space (and their mirrors). The address range of the area to dump can only be in cart space. The software will automatically correct any out of range value.

After setting the desired values, proceed from step 3 above.
--------------------------------------------



ADDITIONAL FEATURES:

console switches


- the TV TYPE switch is used to select the TV format:
COLOR = 60 Hz
B&W = 50 Hz

If you get a rolling screen and the console you're using doesn't have a TV TYPE switch, keep the SELECT switch pressed at power up.

- the difficulty switches can be used to select the output method and speed (they only work in the main menu, flipping them in the "custom" menu or "ready screen" doesn't have any effect).

LEFT DIFFICULTY:
A = RS232
B = Audio FSK

RIGHT DIFFICULTY
A = fast transfer
B = slow transfer



controllers


- a joystick in the left port can be used to navigate the menu: moving the stick to the right change the current menu entry, while pressing the button changes its value.

- a keyboard controller/video touchpad/Kids controller can be used too. the "*" key selects the menu entry, while any digit from "0" to "9" change its value. When in the custom menu you can type the hex values directly by using the keypad. Hex digits "A" to "F" can be typed in by pressing the "#" key (which acts like a "SHIFT" key) before keys "1" to "6". A little arrow in the lower-left area of the screen indicates that the next digit will be "shifted".

+--------+--------+--------+
|   A    |   B    |    C   |
|        |        |        |
|   1    |   2    |    3   |
|        |        |        |
+--------+--------+--------+
|   D    |   E    |    F   |
|        |        |        |
|   4    |   5    |    6   |
|        |        |        |
+--------+--------+--------+
|        |        |        |
|        |        |        |
|   7    |   8    |    9   |
|        |        |        |
+--------+--------+--------+
|        |        |        |
|        |        |        |
| SELECT |   0    | SHIFT  |
|        |        |        |
+--------+--------+--------+

NOTE: During the "ready" screen you can only use the RESET switch on the console to start the data transfer. The controllers (joystick or keypads) aren't checked by the software in that case.



automatic dumper/game switch


- Pin 18 of 6532 ("RIOT") chip is set "low" when the game to be dumped needs to be accessed. Otherwise is in "high" state (according to the 6532 datasheet it's always "high" at power up). This pin isn't connected to anything inside the console, so the idea was to use that signal, when the dumper is installed inside the console, to automatically switch to the game when needed. (you'll need a circuit to implement the logic). I haven't actually tested this feature.

-------


Here are the files:

2600dumper_v064-2011-08-11.zip

 

---------------
EDIT 2016-06-06: I haven't worked on this since the last version, but the subject of audio communication has been brought up recently in another thread, so I post the sources in case someone is interested. I'm just an amateur programmer, and I kept adding features while I was working on it, so the result is quite a mess, and to make things worse, comments are part in english and part in italian...

Anyway, here they are:

2600dumper_source.zip

Edited by alex_79
  • Like 19
  • Thanks 1
Link to comment
Share on other sites

Very impressive.

I'm a little confused, does the program that reads and dumps the carts, with onscreen menu, all fit in ram?

The ability to use audio is impressive as well, what would be cool is if a similar device could be made by modifying a supercharger.

Use it to run your program, and then use it to send the data back over the audio cable! I assume it would need to be serial data generated by reading some ram address, that is connected to the cable, and you would flip a switch to connect it before dumping...

Link to comment
Share on other sites

Thanks everyone for the appreciation! :)

 

 

I'm a little confused, does the program that reads and dumps the carts, with onscreen menu, all fit in ram?

Only the actual dumping routine is in ram (it displays the "ready screen" with the colored bars, reads the cart and send audio or serial data to the PC). The on-screen menu runs from rom.

 

 

The ability to use audio is impressive as well, what would be cool is if a similar device could be made by modifying a supercharger.

The software will run on an unmodded Supercharger just fine. The audio transfer doesn't need any mod or adapter: it uses the normal audio output of the 2600. (and it works quite well in my tests, even through RF) :)

Edited by alex_79
Link to comment
Share on other sites

Thanks everyone for the appreciation! :)

 

 

I'm a little confused, does the program that reads and dumps the carts, with onscreen menu, all fit in ram?

Only the actual dumping routine is in ram (it displays the "ready screen" with the colored bars, reads the cart and send audio or serial data to the PC). The on-screen menu runs from rom.

 

 

The ability to use audio is impressive as well, what would be cool is if a similar device could be made by modifying a supercharger.

The software will run on an unmodded Supercharger just fine. The audio transfer doesn't need any mod or adapter: it uses the normal audio output of the 2600. (and it works quite well in my tests, even through RF) :)

What I meant was if you could play back the data via the supercharger's audio cable. Mainly for coolness, plus many tvs don't have audio out.

Link to comment
Share on other sites

What I meant was if you could play back the data via the supercharger's audio cable. Mainly for coolness, plus many tvs don't have audio out.

Ah, ok.

 

It would be also possible to build an audio interface that connects to the controller port, like the one used by the Magicard (there are instructions and schematics in the manual). Anyway, this would require to rewrite the transfer routine in the software.

 

Another option is to just build the audio part of one of the several a/v mods for the VCS.

 

As for the TV audio output, I don't know what are the typical connections for NTSC Tv sets, but PAL ones have scart sockets which are bidirectional for both composite video and audio. Else you can use the headphone jack, which is quite common, or a VCR.

Link to comment
Share on other sites

There's a bug in the version of the software that I posted: the sound generated when a key is pressed during the on-screen menu is not turned off completely, resulting in a continuous low-volume "buzz". The attached version fixes this.

 

 

 

 

 

 

Perhaps you can sell one to Schizophretard?

I don't have the parts to build more of them. I used recycled components, like a cart port from a dead console and a pc floppy cable to do the connections. Moreover my soldering skills aren't so good and the cheap eprom burner I used isn't reliable. Better ask someone with more experience in electronics and more professional tools to build one.

 

The software needs some more testing too.

:)

Link to comment
Share on other sites

It's cool. If someone provided detailed videos about modifying a Video Game Brain(or sold me one) and dumping with a Harmony Cart I'll probably do fine. I learn better with visual demonstrations. Even if I were confident that I'm comprehending the directions that I'm reading I'm still uncomfortable doing something with rare electronics that I haven't seen done with my own eyes. I could either electrocute myself or even worst destroy a ROM that hasn't been dumped.

Link to comment
Share on other sites

It's cool. If someone provided detailed videos about modifying a Video Game Brain(or sold me one) and dumping with a Harmony Cart I'll probably do fine.

The latest version of the harmony cart dumper doesn't need the video game brain or similar device, but just a simple custom cable to connect the harmony to the cart to be dumped. A console isn't needed anymore, the bankswitch type is autodetected and the data is transfered at high speed through the usb cable to the PC. Maybe you could find someone here on AA who could build the cable for you.

 

 

 

The modified video game brain can be used with the software I posted and with the fb2dumper. The mod isn't a consequence of using it with the dumper software, but a fix for the bad design of that device. Using a video game brain without the mod suggested by Batari is dangerous for the console and the carts even when used for its original intended purpose.

 

There are other cart selectors for the 2600 like the RomScanner and the Videoplexer and hopefully those are better designed and can be safely used without mods. Those both have a socket where you plug the original Atari power supply and a cable which connect into the power socket on the console. When you change the selected game, the unit automatically resets the console. For the use with the cart dumper you need to keep the console powered on while switching to the game, so you'll need 2 power adapters if using those devices: one connected to the cart selector and the other one to the console.

Link to comment
Share on other sites

It's cool. If someone provided detailed videos about modifying a Video Game Brain(or sold me one) and dumping with a Harmony Cart I'll probably do fine.

The latest version of the harmony cart dumper doesn't need the video game brain or similar device, but just a simple custom cable to connect the harmony to the cart to be dumped. A console isn't needed anymore, the bankswitch type is autodetected and the data is transfered at high speed through the usb cable to the PC. Maybe you could find someone here on AA who could build the cable for you.

 

 

 

The modified video game brain can be used with the software I posted and with the fb2dumper. The mod isn't a consequence of using it with the dumper software, but a fix for the bad design of that device. Using a video game brain without the mod suggested by Batari is dangerous for the console and the carts even when used for its original intended purpose.

 

There are other cart selectors for the 2600 like the RomScanner and the Videoplexer and hopefully those are better designed and can be safely used without mods. Those both have a socket where you plug the original Atari power supply and a cable which connect into the power socket on the console. When you change the selected game, the unit automatically resets the console. For the use with the cart dumper you need to keep the console powered on while switching to the game, so you'll need 2 power adapters if using those devices: one connected to the cart selector and the other one to the console.

 

So, I get the cable built, I add the dumping software, plug the cable between the Harmony Cart and cart to be dumped, plug the mini USB into my computer, run the software on the Harmony Cart, and then a bin. shows up on my computer? Any limitations like with multicarts maybe or anything else?

 

I have a ROM Scanner but have been scared to use it after hearing about the Video Game Brain. It is still new in box.

Link to comment
Share on other sites

So, I get the cable built, I add the dumping software, plug the cable between the Harmony Cart and cart to be dumped, plug the mini USB into my computer, run the software on the Harmony Cart, and then a bin. shows up on my computer?

Yes. Read carefully the thread in the Harmony forum where you'll find the instructions and the latest version of the software.

 

Any limitations like with multicarts maybe or anything else?

You should be able to dump multicarts one game at a time.

If the multicart has switches, you just set them for each game and then you dump it just like single game carts. If it's like the Atari "32 in 1" cart, where the games are selected by power-cycling the console, you should be able to dump them in sequence by power-cycling the cart (i.e. by unplugging the usb cable which powers it) after each dump. In case of multicarts with a menu, you should at least be able to dump the menu itself. You can post it on the forum so that it can be disassembled and examamined to identify the memory locations used to select the games (the "hotspots"). Then you should be able to dump the games using the "custom" option in the utility.

 

I have an Harmony but haven't yet build the special cable, so I didn't tried out the dumping software myself.

 

I have a ROM Scanner but have been scared to use it after hearing about the Video Game Brain. It is still new in box.

I don't have any of those cartridge selectors, so I can't say for sure, but I hope the video game brain bad design is an isolated case.

  • Like 1
Link to comment
Share on other sites

Thanks. I read that whole thread before. I was the last to post in it back in May. It all kind of confused me because I didn't have a video demonstration. I understand what you are saying about the multicarts though. I'll probably find someone to buy one of the cables from and then ask someone to explain step by step what to do as I'm doing it.

 

I also hope it is an isolated case because I really want to put my ROM Scanner on my VCS.

Link to comment
Share on other sites

Another little bugfix: now the sound is muted while using the RS232 transfer method.

 

 

If anyone is interested in trying if he can get data to the PC using the dumper software, but doesn't have or can't build a cart selector and fears to damage something by hot swapping the cartridges, a simple way is to just leave the dumper (running in a Supercharger, Cuttle Cart, Harmony or other programmable cart) plugged in the console and let it dump itself.

Link to comment
Share on other sites

I wonder if something like this could be used to dump Pink Panther, if anyone could get their hands on a copy? :ponder:

I read that Pink Panther use his own bankswithing scheme, but didn't find more specific info about that. Don't know if the "custom" option can be used or if it needs a special routine to be dumped.

Link to comment
Share on other sites

  • 1 month later...

Here is a link for a FB2 mod that auto detects a cartrage and switches the internal ROM off...

 

http://www94.pair.com/jsoper/flashback2.html

 

The reason I bring it up is that your dumper could be modified in a simmular way were the software automaticly flip flops between its ROM and the cartrage. Im not sure how you would go about programing a cart to effect something outside itself, but one person made a device that reads the memory addresses of Pole position relating to your speed to make an LED tachometer..then there is that 2600 version of Star Castle with the LED's that flash when you destroy the enemy.

 

http://www.atariage.com/forums/topic/178685-atari-2600-abs-device/

 

http://www.atariage.com/forums/topic/184943-star-castle-2600-2011-at-video-game-summit/

Link to comment
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.
Note: Your post will require moderator approval before it will be visible.

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...