I already posted some earlier version of these "cartridge dumper" roms in the forums (link), but I think it's better (and easier to keep up to date in case I release newer versions) to have all of them in one place. (Actually this is more meant as a backup copy for myself...)
These are stripped down versions of the menu-based cartridge dumper that I made years ago (I put up this other blog entry with an updated version of that one too). They allow to dump 2600 cartridges using a stock 2600 console. In fact, if you use the "Audio" transfer method, and you "hot-swap" cartridges, it doesn't require any custom hardware.
Optional extra hardware allows to use a faster Serial transmission, or to keep both cartridges connected and enable them alternatively instead of unplugging and plugging them with the console powered on.
Instead of an on-screen menu which allows to select the cartridge type, transfer method and transfer speed, in this case there are separate binaries for each combination of those settings. I think these are easier to use with programmable cartridges (Harmony, Unocart, Pluscart, Supercharger), as you just load the version you need and you are ready to start the dump, while the menu version requires to first set the correct options using the console switches to navigate the on-screen menu. The latter makes more sense if you're burning an eprom cart, or if you need to use the "custom" mode, to attempt dumping some unsupported bankswitching type.
There are 8 Cartridge types supported: 4k (non bankswicthed), F8, F6, F4, FE, FA, E0, E7.
2 transfer methods: Audio or Serial.
2 speeds: slow (520 baud Audio or 19200 baud Serial) and fast (1300 baud Audio or 38400 baud Serial)
When combined, it adds up to 32 different versions. Here are the binaries for use with flashcarts:
Here the audio files ready for Supercharger/Cuttle Cart I
If you choose the "Audio" method, you need to record the audio output from the console, save it o a PC as uncompressed "wav" file, and then use a small utility program to convert it into a binary file. (or you can just post the recording here or by PM and I'll convert for you).
If the console is A/V modded, then you can connect directly the audio output to a PC soundcard (or any other device you're using to record the audio). Else, you could use the headphone jack of the TV (if it has one), or an old VCR to demodulate the rf output into separate video and audio signals. If you're in Europe, the audio signal can also be picked up from the TV SCART socket.
It's important that the TV is fine tuned to have the best audio possible (sometimes this doesn't correspond to the best video!). You might need to play a bit with the volume settings before you get reliable recordings. To test this you don't need to hot-swap cartridges: just leave the cart with the dumper rom inserted and let it dump itself.
For the Serial connection some sort of adapter is required. The TTL serial signal is on pin 1 of the right controller port. If using a TTL serial to USB adapter, you only need to connect the RX pin to pin 1 of the controller port, and GND to pin 8. If you're using a real RS232 port, or a USB to RS232 adapter, you'll need a lever converter. These can be easily found, but there are also a lot of schematics to build one yourself if you prefer. They typically use a MAX232 IC, but you can also build one with a few discrete components that you might already have in your parts bin. I successfully build this one: https://web.archive.org/web/20080218095911/http://www.uchobby.com/index.php/2007/06/11/ttl-to-rs232-adaptor-explained/ and it always worked fine with both "real" serial ports and USB adapters. Note that you actually only need to build half of it (the "TTL TX to RS232 RX" part) for this application, as the communication is unidirectional.
The serial port has to be configured to 8N1 (8 data bits, no parity, 1 stop bit) and 19200 or 38400 baud, depending on which speed you choose to use. (try the fastest one, and switch to the slower one if you encounter any issue). The dump is sent as raw binary, so you need a terminal emulator program that can capture raw data from the serial port. On linux I actually just use the "cat" command from the bash shell after setting the port correctly, and it works just fine for me.
How to dump a cartridge (hot-swapping method):
1 - Load the dumper rom for the cart type you're trying to dump and the transfer method/speed of your choice. The slower ones should be more reliable, so try those in case of problems. The screen will show two vertical bars with cycling colors at the two sides. If you're using the audio transfer, you'll hear a continuous tone. Note that this isn't a proper TV signal, as there's not vertical synchronization (I attempted to generate a more on spec signal in previous versions, but it never worked very well and in the end I dropped it).
2 - Without powering off the console, unplug the cart you used to load the rom. If the two bars are not there anymore, or if they're solid color, the program crashed. Retry from the beginning in this case, else proceed with the following step.
3 - Without powering off the console, plug the cart you want to dump. If the bars are still there and if they're still cycling colors, proceed with the next step. Else try again from the beginning.
4 - Start recording (if using the audio method), or the data capture (if using the Serial one).
5 - Press the RESET switch on the console until the screen goes black.
6 - When the bars reappear, the transfer is complete. You can now stop the recording/capture software. Note that the audio transfer is S L O W ! (up to a minute and a half for a simple 4k game). You can dump the same game again by pressing RESET at this point.
If you used the "Serial " method, you only have to save the captured data and no further step is necessary.
In case of "audio" method, instead, save the recording as uncompressed "wav" file and then convert it to binary using the command line utility attached below. If you prefer, you can post the wav file here on the forums (or by PM) and I'll convert it for you.
Hot-swapping cartridges is potentially dangerous for the carts and/or the console. That said, I did it several times without any issue, and I imagine it wasn't that uncommon to happen also back in the day, since video game consoles were used by kids, so I think the risk is minimal.
In any case, I assume no responsibility for any damage that can be caused by using the software described in this post.
A way to reduce the potential risk, is to build a cart switcher, or modify one of the existing ones such as the Video Game Brain.
Utility for converting audio files to binary
The only change compared to the version I posted in the old thread is that the program now prints the position (in seconds) on the audio file where it stopped converting data, which is sometimes useful to track down issues in a waveform that fails to convert properly. (Note that the program also still accepts an ascii file as input, which is what the original version of the dumper outputted through the serial connection and required to be converted too. This is no longer used by the latest version)
As you can notice by looking at the source, I'm not a programmer...
In case someone wants to code a better converter utility, details of the audio format can be found in the comments in the asm source above.
This is a command line program. Just specify the input and output filenames. If you omit the latter, it will be named "out.bin".
2600dumper inputfile.wav outputfile.bin
Windows executable (32 bit). I use Linux and don't have any Windows machine, so I only tested this in wine, and it seems to work.