Jump to content
IGNORED

Harmony as a CopyCart


batari

Recommended Posts

I have a basic CopyCart functionality working for Harmony. It doesn't dump carts yet (well you can dump Harmony contents using certain freeware utilities, but that's a subject for later.) This is just a CopyCart, and only 2k/4k is working. It requires a modified Video Game Brain or custom connector. If you make a custom connector, it must have at least a DPDT switch that allows Harmony and another cart to be plugged into the console at the same time, and swap GND/A12 for each of the two carts. Disclaimer: If done improperly, you can damage things, so I can't be responsible for things like this :) But the CopyCart does work and is safe if done right.

 

When the cart dumper functionality is working, you can use the modified Game Brain or other device you created to do it.

 

To use the Harmony as a CopyCart, download the attached copycart.bin image directly to Harmony using the software:

copycart.bin

Do not copy the file to SD as this will not work - the CopyCart overwrites multicart BIOS and you need to reflash it when done with CopyCart mode. Use the EEPROM loader dialog to download it, and that's it. You do not need to copy an image to SD - the Harmony will now boot in CopyCart mode.

post-5792-127731657491_thumb.gif

 

Now insert Harmony and the cart to copy in the Game Brain or other cart selector. Select Harmony and boot. You should get an image like this:

post-5792-1277316804_thumb.png

 

This means the Harmony is ready to copy. Now select the other cart in your cart selector, and press RESET. You should get this image, which indicates the Harmony is done.

post-5792-127731687999_thumb.png

 

Now plug Harmony directly into your console and it will play the game from the other cart!

  • Like 2
Link to comment
Share on other sites

Very cool!

I can't wait to try it. Especially since I got the Game selector recently also. If you can get a cart dumper working, will it write to SD or will it be some other method of getting the info from harmony RAM?

I doubt it will write to SD, as that will be very difficult to do. Most likely, the Harmony will send the data out its USB port.
Link to comment
Share on other sites

Very cool!

I can't wait to try it. Especially since I got the Game selector recently also. If you can get a cart dumper working, will it write to SD or will it be some other method of getting the info from harmony RAM?

I doubt it will write to SD, as that will be very difficult to do. Most likely, the Harmony will send the data out its USB port.

That's what I thought at first, but writing a USB stack didn't seem easier to me! Either way, I am impressed.

Link to comment
Share on other sites

Very cool!

I can't wait to try it. Especially since I got the Game selector recently also. If you can get a cart dumper working, will it write to SD or will it be some other method of getting the info from harmony RAM?

I doubt it will write to SD, as that will be very difficult to do. Most likely, the Harmony will send the data out its USB port.

That's what I thought at first, but writing a USB stack didn't seem easier to me! Either way, I am impressed.

Harmony has a USB chip that makes this easy. The only thing to figure out is the file transfer protocol.

Link to comment
Share on other sites

Nice! :thumbsup: :thumbsup: I tried the copycart using a custom cart selector that I've built some time ago and it worked fine.

 

In the past, I used the utility you posted in the fb2 forum to dump my carts with a regular vcs and a supercharger. I built this cart selector because hot swapping the carts once the utility was loaded in the vcs ram didn't work for one of my games (my laserbase cart always caused the vcs to crash when hot plugged).

post-10599-127763759764_thumb.jpgpost-10599-127763760711_thumb.jpg

 

I'm looking forward for updates on this. Thanks for sharing!

Link to comment
Share on other sites

  • 3 weeks later...
  • 2 weeks later...
  • 2 months later...

Batari, I have a VCS "test mule" six-switcher boardset that I've already modified to accept ZIF sockets for all four chips including the 4050 buffer, so I can quickly test suspect ICs when servicing consoles. I've figured out what the differences are in the pinout of the unpopulated ROM position, compared to the cartridge port, and am prepared to add a second port there to make this unit into a cartridge dumper as well -- assuming this project is going forward.

 

Did I misunderstand something in the schematics? You wrote in the first post above that A12 should be swapped to GND on the unselected one of the two cart ports, but as I understand it A12 is equivalent to /CS0, which is active low. In other words, I believe the A12 pin should be pulled high, not low, for the cartridge not selected.

 

Assuming you're right and I'm wrong, then I guess A12 (card edge position 18) should be connected to logic that can effectively ground and isolate it simultaneously. But if I'm right and it should be pulled up, a simple pullup resistor will suffice and the switch need only open the A12 line. The only question then, would be how large of a pullup resistor could I get away with (so as to minimize its effect on the circuit with the cartridge selected)?

Link to comment
Share on other sites

Batari, I have a VCS "test mule" six-switcher boardset that I've already modified to accept ZIF sockets for all four chips including the 4050 buffer, so I can quickly test suspect ICs when servicing consoles. I've figured out what the differences are in the pinout of the unpopulated ROM position, compared to the cartridge port, and am prepared to add a second port there to make this unit into a cartridge dumper as well -- assuming this project is going forward.

 

Did I misunderstand something in the schematics? You wrote in the first post above that A12 should be swapped to GND on the unselected one of the two cart ports, but as I understand it A12 is equivalent to /CS0, which is active low. In other words, I believe the A12 pin should be pulled high, not low, for the cartridge not selected.

 

Assuming you're right and I'm wrong, then I guess A12 (card edge position 18) should be connected to logic that can effectively ground and isolate it simultaneously. But if I'm right and it should be pulled up, a simple pullup resistor will suffice and the switch need only open the A12 line. The only question then, would be how large of a pullup resistor could I get away with (so as to minimize its effect on the circuit with the cartridge selected)?

A12 should be pulled high to select the cart port, and low otherwise. It acts as an active-high chip select. To deselect, you'd need a pulldown resistor. I'd imagine you could use something fairly large, like 47-100k?

 

However, this is irrelevant as the cart dumper has evolved and now bears little resemblance to its original form. The reason for the switch was it failed on a game and it was due to the game driving the data bus (albeit weakly) under certain conditions. The cart dumper as it is now no longer requires a console. It also doesn't really need a cart selector - an old floppy cable would work fine. How it works is the Harmony itself drives the address lines on the cart to dump, and reads the data into its own memory, buffering a bank at a time, then sends it over USB to a PC. The only thing you need to do is provide power to the cart to dump, which you can do with a hacked-up USB cable as the Harmony cannot power the cart itself.

 

The cart dumper works and is quite nice. The only reason I haven't released it yet is the software on the PC side needs some work.

Link to comment
Share on other sites

However, this is irrelevant as the cart dumper has evolved and now bears little resemblance to its original form. The reason for the switch was it failed on a game and it was due to the game driving the data bus (albeit weakly) under certain conditions. The cart dumper as it is now no longer requires a console. It also doesn't really need a cart selector - an old floppy cable would work fine. How it works is the Harmony itself drives the address lines on the cart to dump, and reads the data into its own memory, buffering a bank at a time, then sends it over USB to a PC. The only thing you need to do is provide power to the cart to dump, which you can do with a hacked-up USB cable as the Harmony cannot power the cart itself.

 

The cart dumper works and is quite nice. The only reason I haven't released it yet is the software on the PC side needs some work.

 

This sounds really good! I actually bought a romscanner in anticipation of this dumper, but I'm much happier that it won't use it at all. If you need any help testing LMK I'll see what I can do.

 

 

Jeff

Link to comment
Share on other sites

A12 should be pulled high to select the cart port, and low otherwise. It acts as an active-high chip select. To deselect, you'd need a pulldown resistor. I'd imagine you could use something fairly large, like 47-100k?

Thanks for confirming my error; I was able to find the correct info online (though no answer as to why so many schematics have it wrong).

 

The size of the pulldown resistor would depend on how the CPU drives the A12 line. If it's TTL-style it would need to be very low, circa 250 ohms. But since the ICs are mostly MOS process and this net has no pullup on the motherboard (which would indicate that it's driven by an open BJT collector if present), a weak pulldown might work.

 

Since the Harmony-Dumper has evolved so far, I'll probably either leave my test unit well enough alone, or stick a socket and switch with appropriate isolating logic into the onboard ROM position, and plug a SALT Diagnostic Test Cart 2.6 EPROM in it.

Edited by A.J. Franzman
Link to comment
Share on other sites

Here is the first crack at the Harmony-based cart dumper. Command-line only and Windows 2000 or later. Source is included for the one custom exe if you are running another OS. The other executables (uudecode, lpc21isp) are also open-source and available elsewhere for free download.

 

You will need to modify a game selector, floppy drive cable, or you may build your own setup using edge connectors.

 

I used an old floppy drive cable. If you use a floppy cable, note that one of the ends usually has pins 10-16 "twisted" so you will need to take apart the cable end and twist these wires back so these conductors go straight through.

Building your dumper

Pins 1-10 and 12-23 of Harmony should be connected straight through to the slot for the dump cart. Pin numbers are based on the Harmony edge connector (to see pin numbers, push up the dust door on your Harmony, and they are visible just above the edge connector.)

 

Pin 11 should be connected to the dump cart only, and you need to apply 5v here, possibly from another USB cable. Also, apply GND from your 5v supply to pin 12.

 

Pin 24 should be left unconnected.

Running the dump utilities

To dump, plug both Harmony and the dump cart into your dumper, apply power to the dump cart, and plug in the Harmony's USB cable. Type "dumper" from the command line. You will enter bankswitch type and the com port of Harmony, then the cart dumper firmware will be downloaded to Harmony and run, and if successful, you'll see screens full of uuencoded text scroll by in 4k chunks. When it's finished (you'll see "end" and no more activity) press ESC and the output will be decoded into a binary. The binary will always be saved as dump.bin, so be sure to rename it.

 

After the dump, your Harmony will not function normally unless you reload the BIOS.

 

Right now, 2k/4k, F8, F6, and F4 bankswitching are supported, and you may specify some others with option 5, by entering the first hotspot and number of banks. Bankswitching methods that read the data bus are not yet supported, such as 3F, FE, and possibly others.

 

DISCLAIMER:

Due to the electronics skill involved, take on this project at your own risk. I can't be responsible for anything bad that happens if you do anything mentioned in this post, incorrectly or correctly.

 

Also, the dump firmware will overwrite your Harmony's BIOS and it won't function normally until you reload the BIOS.

 

Please test this and report any bugs.

Harmony_cart_dumper.zip

Link to comment
Share on other sites

Here is the first crack at the Harmony-based cart dumper. Command-line only and Windows 2000 or later. Source is included for the one custom exe if you are running another OS. The other executables (uudecode, lpc21isp) are also open-source and available elsewhere for free download.

 

You will need to modify a game selector, floppy drive cable, or you may build your own setup using edge connectors.

 

I used an old floppy drive cable. If you use a floppy cable, note that one of the ends usually has pins 10-16 "twisted" so you will need to take apart the cable end and twist these wires back so these conductors go straight through.

Building your dumper

Pins 1-10 and 12-23 of Harmony should be connected straight through to the slot for the dump cart. Pin numbers are based on the Harmony edge connector (to see pin numbers, push up the dust door on your Harmony, and they are visible just above the edge connector.)

 

Pin 11 should be connected to the dump cart only, and you need to apply 5v here, possibly from another USB cable. Also, apply GND from your 5v supply to pin 12.

 

Pin 24 should be left unconnected.

Running the dump utilities

To dump, plug both Harmony and the dump cart into your dumper, apply power to the dump cart, and plug in the Harmony's USB cable. Type "dumper" from the command line. You will enter bankswitch type and the com port of Harmony, then the cart dumper firmware will be downloaded to Harmony and run, and if successful, you'll see screens full of uuencoded text scroll by in 4k chunks. When it's finished (you'll see "end" and no more activity) press ESC and the output will be decoded into a binary. The binary will always be saved as dump.bin, so be sure to rename it.

 

After the dump, your Harmony will not function normally unless you reload the BIOS.

 

Right now, 2k/4k, F8, F6, and F4 bankswitching are supported, and you may specify some others with option 5, by entering the first hotspot and number of banks. Bankswitching methods that read the data bus are not yet supported, such as 3F, FE, and possibly others.

 

DISCLAIMER:

Due to the electronics skill involved, take on this project at your own risk. I can't be responsible for anything bad that happens if you do anything mentioned in this post, incorrectly or correctly.

 

Also, the dump firmware will overwrite your Harmony's BIOS and it won't function normally until you reload the BIOS.

 

Please test this and report any bugs.

Total coolness, what is the limitations of this. I'll re-read the thread, is it only 4K games?

Link to comment
Share on other sites

Total coolness, what is the limitations of this. I'll re-read the thread, is it only 4K games?

It will do 4k, F8, F6, F4, and custom bankswitching (you specify the start hotspot and number of banks.) The current limitations are that schemes using the data bus won't work yet (such as 3F or FE) and schemes like E0, although you could dump all of the data using custom bankswitching, wouldn't result in a playable binary unless it was processed after the fact.

Link to comment
Share on other sites

One more thing - I want to make it clear that the new dumper DOES NOT use the console. If you attempt to use the dump software while Harmony is powered up in a console, or if you attempt to use your Harmony after the dump process without reloading its BIOS, you could damage the Harmony, the console, or both.

 

I would edit my post but it has been too long.

Link to comment
Share on other sites

This seems pretty straightforward. Just to regurgitate for reinforcement though, pin 12 (ground) is connected straight through from the Harmony to the cart being dumped, and then connected to the ground of the 5V power supply. Pin 24 is left floating, and Pin 11 (+5V) is connected to the positive on the power supply. Is that all correct?

 

 

How much mA is required for the power supply?

 

 

I'm going to look for an old floppy cable of eBay. Is there a particular model or name for the cable I should be searching for? Batari, maybe you could post a picture of your set-up?

 

 

This looks promising so far!! :)

  • Like 1
Link to comment
Share on other sites

I was thinking that one could hack the USB cable by slicing open the outer covering and tapping into the +5V and Ground lines with a pair of jumper wires, then tap the other ends of the jumper wires into the floppy cable, thereby making it a one-piece unit with 4 plugs on it (cart to read, Harmony cart, Harmony USB, computer USB) needing no other power source.

 

If there's much chance of RFI issues, perhaps the power jumper should be a shielded pair. I don't even know if USB cables are shielded, but if they are, then just connect the shields together and it should be OK. Harmony uses a very slow data rate so shielding probably won't be necessary anyway.

Edited by A.J. Franzman
Link to comment
Share on other sites

This seems pretty straightforward. Just to regurgitate for reinforcement though, pin 12 (ground) is connected straight through from the Harmony to the cart being dumped, and then connected to the ground of the 5V power supply. Pin 24 is left floating, and Pin 11 (+5V) is connected to the positive on the power supply. Is that all correct?

Yes, aside from the other pins that are also connected straight through.

How much mA is required for the power supply?

I don't know, but enough to power a cart. I'd guess under 100ma.

I'm going to look for an old floppy cable of eBay. Is there a particular model or name for the cable I should be searching for? Batari, maybe you could post a picture of your set-up?

The reason I suggested a floppy cable was because many of us will have one lying around somewhere from an old PC. I'm referring to the kind with the edge connector, which were used for 5.25" drives. If you don't have one, you probably know someone who does. Either way, I wouldn't pay eBay prices and wait forever for shipping when these cables should be easy to find elsewhere.

 

I was thinking that one could hack the USB cable by slicing open the outer covering and tapping into the +5V and Ground lines with a pair of jumper wires, then tap the other ends of the jumper wires into the floppy cable, thereby making it a one-piece unit with 4 plugs on it (cart to read, Harmony cart, Harmony USB, computer USB) needing no other power source.

 

If there's much chance of RFI issues, perhaps the power jumper should be a shielded pair. I don't even know if USB cables are shielded, but if they are, then just connect the shields together and it should be OK. Harmony uses a very slow data rate so shielding probably won't be necessary anyway.

I wouldn't worry about RFI as the data rate is only 38400 bps. I could have made it faster, but I didn't see much point in that.

 

You should be able to hack into an existing USB mini-B cable for both Harmony comms and dump cart power.

 

Also, Harmony gets its power from the USB port already. There's no need for a second power to Harmony's cart port, so the cable would just need three ends.

Link to comment
Share on other sites

Also, Harmony gets its power from the USB port already. There's no need for a second power to Harmony's cart port, so the cable would just need three ends.

I was thinking of making just one cable for all Harmony cart purposes, so it would need four ends. When not dumping cartridges (such as a BIOS update, or programming a single binary file), the two floppy cable ends would not be connected to anything.

 

Otherwise, after using the three-ended cable to dump a cartridge to the Harmony, then I would need to swap out that cable for a normal USB cable to send the dumped binary from the Harmony to the PC. My computer only has one free external USB port at the moment, so I could not connect two cables at the same time.

Link to comment
Share on other sites

Ok, I tried this, and it doesn't seem to be working. Here's a pic of my setup:

 

post-4413-128691922507_thumb.jpg

 

The Harmony Cart is on the bottom, the other cart is Adventure.

Pin 24 is cut near the bottom, +5v from a USB cable is attached to pin 11 of the dump cart and the ground is attached to pin 12 which is connected to both carts.

 

The "Harmony Programming Tool" tells me that the Harmony Cart is on com4.

 

So after connecting everything and running dumper.bat:

D:\Harmony\dumper>dumper
Enter bankswitch type:
1. 2k/4k
2. F8
3. F6
4. F4
5. Custom
1
COM port of Harmony (ex. com2)
com4
.
When dumping has completed, press ESC
Press any key to continue . . .
lpc21isp version 1.80
File dump.arm:
	loaded...
	image size : 4332
Image size : 4332
Synchronizing (ESC to abort). OK
Read bootcode version: 21
2
Read part ID: LPC2103, 32 kiB ROM / 8 kiB SRAM (0x4FF11)
Will start programming at Sector 1 if possible, and conclude with Sector 0 to en
sure that checksum is written last.
Erasing sector 0 first, to invalidate checksum. OK
Sector 1: ...........
Sector 0: ......................................................................
........................
Download Finished... taking 4 seconds
Now launching the brand new code
Terminal started (press Escape to abort)

 

It never gets any futher than that. After about 20 minutes I press ESC and there is a file named lpc21isp.log that's 0 bytes long.

Link to comment
Share on other sites

For some reason, and I haven't figured out why yet, sometimes it hangs at that point. If you don't see text right away that says "Fred's cart dumper" then you should press ESC and try again immedately.

I am also having this probably. I have only gotten a single 4k dump successful so far out of 20 tries, and none for 8k/16k. I'm glad this problem was posted cause I was going out of my head trying to figure it out.

 

 

I compared the one dump I got though, and it was a perfect copy. :)

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