Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> no skin in this, but maybe it is legal to create a digital copy of your own but illegal to download someone else's generated copy?

I think that's probably true, but it's not what Nintendo is claiming. They claim that the copying devices themselves are illegal to own or use, since the result is a file that can be illegally uploaded and shared, and that as a result, any digital copy that a consumer might create is also illegal, even if kept for personal use.

> but I would wager the amount of people with the hardware to migrate NES/SNES/Genesis/etc. cartridges to ROMs is pretty low.

Yes, but not terribly exotic. There are EEPROMs that are drop-in replacements, in many cases. So they're also the kinds of chips that you can just connect an EEPROM reader to, to dump the data. Reading the data from the cartridge pins themselves can be a little more complex; I know that the 8-bit Nintendo systems broke their games into swappable sections, with access controlled by a mapper chip. To dump those games from the cartridge connector, one would need to send bank-swapping signals to the chip. The NES had a couple hundred variants of these mapper chips; the Game Boy had about 5 common ones. Not sure about the SNES. Sega Genesis/Megadrive just exposed the cartridge pins directly to the CPU's address bus, I think.

I know that people build Arduino-based ROM dumpers. The secret sauce is more in the mapper-handling code than anything else.

Newer systems like the Nintendo DS are likely to be less straightforward, but I haven't looked into it that closely.



I recall using a Nintendo DS to dump ROMs to a device in the GBA slot, which would then store it in memory, so you could then eject the cartridge in the DS slot and insert another device that could write to a MicroSD card. GBA and GB cartridges could be transferred directly from the GBA slot.

The difficulty there was in loading and running the software.

Once games distributed on discs, backing up for swap-free play became easier, but I still recall having to use the original Wii hardware to read discs and write their files to a specially formatted hard drive.

If you have the device designed to read the original game distribution medium, you can modify it, sometimes just with software, to read game files and write them to the medium of your choosing. The original console has to decode the data and get it to the CPU somehow, and if you can run your own code on the CPU, you can always dump, even if it is just by displaying a series of 2-d bar codes on a TV screen and taking photos of them.

It is also worth noting that you cannot trust a company like Nintendo or Sony to make a distinction between civil-illegal that results in a tort, where the company can sue you for damages (if they find out about it), and criminal-illegal that results in a crime, where the state can put you in prison (if they find out about it).


> The original console has to decode the data and get it to the CPU somehow, and if you can run your own code on the CPU, you can always dump, even if it is just by displaying a series of 2-d bar codes on a TV screen and taking photos of them.

That would be a novel hack, and I've considered something similar with an old IBM computer with an almost-dead floppy (probably a stretched drive belt?) The floppy will read something like the first 50-100KB from a disk, and fails on the rest. That'd easily be enough for a little program that reads the hard drive sector by sector, displaying them on screen as a colored grid, or something. Then it'd be an exercise in video processing to extract the data.


Not novel. I heard about it from a possibly apocryphal espionage story wherein a program was loaded to an airgapped machine, then it flashed a rapid sequence of 2-d bar codes on the screen, and the attacker exfiltrated the data as a video file.

For your problem, I'd try pumping the data out of the serial or parallel ports first. An RS232 to USB cable might work.


>Not sure about the SNES. Sega Genesis/Megadrive just exposed the cartridge pins directly to the CPU's address bus, I think.

The Genesis/MD and SNES work the same way. Expose an address bus and data bus via the pins and let the cartridge handle any sort of mapping.


Sorry, my comment was badly-worded. I was thinking about older systems having 16-bit memory spaces, into which all IO is mapped (including the cartridge). So all but the absolute simplest games would need bank-switching hardware.

Looking at the Genesis and SNES, each exposes a 24-bit address bus. I was speculating that the increased area would be enough that bank switching wouldn't be necessary (the largest SNES game seems to be around 48Mbit, right? A little over a third of the CPU's memory, although I haven't looked up where the cartridge data's window is usually mapped).

Of course, there's the added fun of external coprocessors and such.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: