Jump to content

alex_79's Photo


Member Since 7 Sep 2006
OFFLINE Last Active Mar 9 2019 12:32 PM

#2345385 My 2600 cart dumper

Posted by alex_79 on Tue Aug 9, 2011 3:57 PM

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.

#2344283 Complete cleaning up a Jr. console

Posted by alex_79 on Mon Aug 8, 2011 11:24 AM

I found out that if I put the channel select to ch 2 I have to switch to ch 3 on my tv.
When I choose ch 3 I have to switch to ch 4.

That's normal. Consoles from different areas use different channels (but they didn't change the plastic mold). Look at this scan from the Jr. manual:

You can try the rf cord from the vader: the connector is the same, but it's inside the console, so you have to unscrew and open the case.

#2344272 How many different versions are there of the original joystick?

Posted by alex_79 on Mon Aug 8, 2011 11:08 AM

If i recall correct, the vader did release with cx-40 sticks here in Europe. The junior came with proline joysticks. I can't recall seeing the 7800 joypads being release with the junior. All juniors i have seen for sale recent years come with the proline sticks.

During its lifespan, the junior was sold in Europe with prolines, cx40 and joypads.

01.jpg 01b.jpg
02.jpg 03.jpg
04.jpg 05.jpg
06.jpg 07.jpg

#2342790 My 2600 cart dumper

Posted by alex_79 on Sat Aug 6, 2011 12:11 PM

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.

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.

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:

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:

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)
P1080043.JPG P1080045.JPG
P1060039.JPG P1060038.JPG

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:

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.

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.

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:
2600dumper.bin_3.png 2600dumper.bin_6.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.


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

A = RS232
B = Audio FSK

A = fast transfer
B = slow transfer


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

Attached File  2600dumper_v064-2011-08-11.zip   16.17KB   212 downloads


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:

Attached File  2600dumper_source.zip   15.24KB   82 downloads

#2342622 Power supply question (Black irish jr. console)

Posted by alex_79 on Sat Aug 6, 2011 8:08 AM

The power supplies for the various 2600 models are all the same, as Benzman66 said. The specs are the same for both PAL and NTSC models:
9V DC 500 mA, center tip positive. 1/8" (3.5mm) plug (the one used for mono audio).

If you're searching for a replacement you can use slighty different values for voltage and current:

Quoting from this old post by A.J. Franzman:

So, aside from the 1/8 inch phone plug w/ tip positive, your supply's ratings need to be in these ranges:
7.5 - 15 volts DC
500 mA or higher

#2330282 2600 Rom Comparisions and Dumps

Posted by alex_79 on Thu Jul 21, 2011 7:56 AM

Here's the zip:

Including Going-Up?? from Starpath Corporation and some ROMs that surely need to be compared to the versions in V6.


The "Going Up" binary contains garbage data in filler areas and wrong checksums. If you look at the file with an hex editor you'll clearly see that those areas contain uninitialized data from the RAM memory of the computer used to convert the tapes. Dumping the same tape would produce a different binary every time with differences on those areas.

This is an extract from the hex dump of the binary in the zip file:
00001310  00 00 00 00 00 00 00 00  00 00 00 00 18 00 00 00  |................|
00001320  6d 00 61 00 6b 00 65 00  62 00 69 00 6e 00 2e 00  |m.a.k.e.b.i.n...|
00001330  65 00 78 00 65 00 00 00  e5 ea 5b 7c 1c f6 12 00  |e.x.e.....[|....|
00001340  04 00 00 00 cc f1 12 00  09 04 00 00 00 00 00 00  |................|
00001350  78 d1 5c 7c 18 00 00 00  00 00 00 00 04 f6 12 00  |x.\|............|
00001360  09 04 00 00 00 00 00 00  78 d1 5c 7c 00 00 00 00  |........x.\|....|
00001370  00 00 00 00 24 f6 12 00  04 f2 5b 7c 0c f6 12 00  |....$.....[|....|
00001380  14 f6 12 00 20 f6 12 00  90 2e 13 00 5c 00 4e 00  |.... .......\.N.|
00001390  4c 00 53 00 5c 00 4e 00  6c 00 73 00 53 00 65 00  |L.S.\.N.l.s.S.e.|
000013a0  63 00 74 00 69 00 6f 00  6e 00 53 00 6f 00 72 00  |c.t.i.o.n.S.o.r.|
000013b0  74 00 6b 00 65 00 79 00  30 00 30 00 30 00 30 00  |t.k.e.y.|
000013c0  30 00 34 00 30 00 39 00  00 00 00 00 00 00 00 00  ||
000013d0  00 f0 fd 7f 70 f1 fc 77  79 13 f9 77 58 f9 12 00  |....p..wy..wX...|
000013e0  00 00 00 80 34 f9 12 00  00 00 00 00 00 f0 fd 7f  |....4...........|
000013f0  70 f1 fc 77 00 00 00 00  00 00 00 00 00 00 00 00  |p..w............|
00001400  00 00 00 00 00 00 00 00  00 00 00 00 bb 6d f8 77  |.............m.w|
00001410  5c 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |\...............|
00001420  4e 00 00 00 43 00 3a 00  5c 00 44 00 4f 00 43 00  |N...C.:.\.D.O.C.|
00001430  55 00 4d 00 45 00 7e 00  31 00 5c 00 53 00 43 00  |U.M.E.~.1.\.S.C.|
00001440  4f 00 54 00 54 00 53 00  7e 00 31 00 5c 00 44 00  |O.T.T.S.~.1.\.D.|
00001450  65 00 73 00 6b 00 74 00  6f 00 70 00 5c 00 53 00  |e.s.k.t.o.p.\.S.|
00001460  74 00 61 00 72 00 70 00  61 00 74 00 68 00 5c 00  |t.a.r.p.a.t.h.\.|
00001470  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00001b40  00 00 00 00 64 00 6c 00  6c 00 2e 00 64 00 6c 00  |....d.l.l...d.l.|
00001b50  6c 00 00 00 72 00 6f 00  73 00 6f 00 66 00 74 00  |l...r.o.s.o.f.t.|
00001b60  5c 00 57 00 69 00 6e 00  64 00 6f 00 77 00 73 00  |\.W.i.n.d.o.w.s.|
00001b70  20 00 4e 00 54 00 5c 00  43 00 75 00 72 00 72 00  | .N.T.\.C.u.r.r.|
00001b80  65 00 6e 00 74 00 56 00  65 00 72 00 73 00 69 00  |e.n.t.V.e.r.s.i.|
00001b90  6f 00 6e 00 5c 00 49 00  6d 00 61 00 67 00 65 00  |o.n.\.I.m.a.g.e.|
00001ba0  20 00 46 00 69 00 6c 00  65 00 20 00 45 00 78 00  | .F.i.l.e. .E.x.|
00001bb0  65 00 63 00 75 00 74 00  69 00 6f 00 6e 00 20 00  |e.c.u.t.i.o.n. .|
00001bc0  4f 00 70 00 74 00 69 00  6f 00 6e 00 73 00 5c 00  |O.p.t.i.o.n.s.\.|
00001bd0  6d 00 61 00 6b 00 65 00  62 00 69 00 6e 00 2e 00  |m.a.k.e.b.i.n...|
00001be0  65 00 78 00 65 00 00 00  00 00 00 00 00 00 00 00  |e.x.e...........|
00001bf0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
Look at the ascii chars on the right column: you can see directory paths from a Windows system. That surely wasn't on those tapes from the early '80s! ;)

Here is a fixed version with filler data cleared to 0 and corrected checksums (I used the sc_rom utility that I posted here). Again, there's no difference in the actual code, it's just easier to check for real differences in this way. And Stella won't print out warnings for the invalid checksums if you run the game from the command line.

Attached File  Going_Up_Fixed.zip   1.31KB   119 downloads

I noticed that you still have the "joined" versions of "Party Mix" (both PAL and NTSC) in v6.0 collection. You should remove them: Party Mix is not a "real" multiload game, but consists of separate minigames, so you can only play "Bop a Buggy" using the joined files in both emulators or flash carts. The code in the split versions is 100% identical and those allow to play all the minigames.

#2326539 Kanomi Justifer for sega... will it work with the 7800?

Posted by alex_79 on Sun Jul 17, 2011 6:53 AM

I just got my first SMS gun in the mail today. Does anyone know of a wiring schematic somewhere on the web for making an adapter for the 7800 console?



#2321322 Jr. Pac-Man stuck in 2600?

Posted by alex_79 on Sat Jul 9, 2011 2:59 PM

I found that some carts made in Honk Kong have defective molds. One of the 2 plastic "hooks" which keep the 2 halves of the shell toghether is too big and makes the cart difficult to insert on some consoles (especially the 6-switches, because the cart slot is more recessed).

If that's the problem with your cart just file down a bit the defective hook.
Here's is a picture of a fixed cart:

#2320769 Flashback 3 at E3? Is it real?

Posted by alex_79 on Fri Jul 8, 2011 5:20 PM

There's an update about this on "Dig That Box".


We have also learned the product is expected to ship in early August, around the first of the month. We have even been told by one distributor that it is currently "on the boat" from China.

#2302164 Pause Mod through Controller?

Posted by alex_79 on Tue Jun 14, 2011 2:58 AM

Looking at the pinouts for the Genny controller and the 2600's port, I found that pin 9, used for Start on the Genny, is unused!!

Pin 9 is an analog input and while not used by joystick, its needed for paddles and keyboard controllers.

#2298220 Flashback 3 at E3? Is it real?

Posted by alex_79 on Wed Jun 8, 2011 4:27 PM

I just noted that in the picture at the website linked in the first post you can barely see the console in the background.
It looks like a FB2 with joystick ports on the front.

#2292542 z26 3.0

Posted by alex_79 on Wed Jun 1, 2011 2:08 PM

I mainly use stella but I still have z26 on my computer and I use it from time to time. I find its "Trace mode" useful when testing my attempts in 2600 programming. And, as others stated, it's lightweight and works well even on old hardware.

I didn't tried the latest version yet because my main computer hard drive failed and I'm currently using an old pc without OpenGl support, but I'm glad to know that z26 is still being developed.

Long live z26! :thumbsup:

#2255694 Is there a command-line tool for transfering ROMs to the Harmony?

Posted by alex_79 on Mon Apr 11, 2011 4:25 AM

I don't know if this is documented, but the harmony cart software can be used from the command line to download a single rom to the harmony. The command
harmonycart game.bin
will download the rom called "game.bin" into the harmony in single-load mode. I use the linux version, but I think this is true for windows and mac as well.

#2096342 What is my 2600?

Posted by alex_79 on Fri Sep 17, 2010 7:31 AM

Heavy and Light Sixers differs in the bottom half of the plastic case. I posted comparison pictures here

#1979766 Supercharger loads limit

Posted by alex_79 on Sat Apr 3, 2010 4:24 AM

I did some tests with supercharger multiloads and found that the harmony only support up to 4 loads. Are there plans to increase this limit, loading data from the internal eeprom or from the sd_card?
IMHO, with the Harmony available, supercharger games are now an interesting option for homebrews as they can be played on a real Supercharger, Cuttle Cart I/II, Harmony and they can even be published as carts using the Melody board.

Here is the source for the test binary that I used if anyone is interested. (It's an hack of the 208 in 1 Multicart Menuscreen, that I did using the fully commented source code posted here by Omegamatrix).

You can set the number of loads by changing the "LOADS" value in the source file. The resulting binary is a single file ready for Harmony or emulators. You must split it in 8448 bytes chunks if you want to load it on a real Supercharger/Cuttle Cart using Playbin or makewav, or for use in Cuttle Cart II. The rom just keep showing a menu where you can select the next load by setting its index number with the joystick. The index number for loads other than the first (0) is displayed on top of the screen.
Z26 won't run a file bigger than 512k, so it's limited to 61 loads. Stella will load larger files, but can access only the first 62 loads. The max number of loads (without duplicate index numbers) would be 256, although I don't think any homebrew authos would need all that space for a 2600 game.