nesdev.com
http://forums.nesdev.com/

TapeDump v1.0 - a tool to dump carts without extra hardware
http://forums.nesdev.com/viewtopic.php?f=2&t=7978
Page 1 of 12

Author:  ccovell [ Fri Jul 15, 2011 3:47 pm ]
Post subject:  TapeDump v1.0 - a tool to dump carts without extra hardware

Hi, folks. Last weekend, I received a Famicom Proto/Sample cart in the mail which had its EPROMs soldered to the game PCB, making the usual EPROM dumping a bit treacherous. So, after a little thought, I decided to write up a Famicom dumping program that sent cartridge data to a PC as an audio stream.

The dumping worked pretty well, so if this program sounds useful to anyone else, please feel free to try it out.

Image

Explanation and controls are here: http://www.chrismcovell.com/TapeDump_Controls.html

And the .NES ROMs (NTSC and PAL versions) and source are here: http://www.chrismcovell.com/data/TapeDump.zip

Comments, complaints welcome.

Author:  cpow [ Fri Jul 15, 2011 4:02 pm ]
Post subject:  Re: TapeDump - a program to dump carts without extra hardwar

ccovell wrote:
Hi, folks. Last weekend, I received a Famicom Proto/Sample cart in the mail which had its EPROMs soldered to the game PCB, making the usual EPROM dumping a bit treacherous. So, after a little thought, I decided to write up a Famicom dumping program that sent cartridge data to a PC as an audio stream.

The dumping worked pretty well, so if this program sounds useful to anyone else, please feel free to try it out.

Explanation and controls are here: http://www.chrismcovell.com/texts/TapeD ... trols.html

And the .NES ROMs (NTSC and (untested on hardware) PAL versions) and source are here: http://www.chrismcovell.com/data/TapeDump.zip

Comments, complaints welcome. I was considering adding a menu front-end to automate dumping of a cart, but if few people really care, maybe I won't...


What a fantastic idea. I'd love to hear some of the results! Probably a bit like playing a data CD in an audio CD player? Or, more likely, listening to a 300baud modem communicating on a voice line.

EDIT: Just noticed the example WAV in the download. Wow what memories!

Author:  tepples [ Fri Jul 15, 2011 4:24 pm ]
Post subject: 

The Apple II cassette interface worked at about 1000 baud using frequency shift keying. I'd bet with a decent sound card, transfer rates comparable to a 56K modem would be feasible.

The page mentions the usual pak-swap gotchas:
  • Interfacing with the game's NMI handler and CHR banks in order to detect the start of vblank in order to display the UI (avoided here by using solid colors)
  • Having to cut pin 4 if using a front-loading NES

Author:  tokumaru [ Fri Jul 15, 2011 4:40 pm ]
Post subject: 

tepples wrote:
Interfacing with the game's NMI handler in order to detect the start of vblank in order to display the UI

For such a simple program I think you can get away with just disabling NMIs and polling $2002. I mean, since you can't rely on what's mapped to the CHR area you can't have much of an UI anyway.

Quote:
Having to cut pin 4 if using a front-loading NES

Yeah, no way around that, I guess. Although I imagine that if you are into activities like dumping carts you probably own a few consoles and wouldn't mind modding one of them.

Author:  thefox [ Fri Jul 15, 2011 8:12 pm ]
Post subject: 

Cool idea! Now if I only had any carts to dump... :)

Author:  cpow [ Fri Jul 15, 2011 8:34 pm ]
Post subject: 

thefox wrote:
Cool idea! Now if I only had any carts to dump... :)


I just dumped the dumper itself just to hear it. :D

I then thought about implementing a "Disable CIC" feature in nesicide so I could "insert a cartridge hot" and listen to dumps of some other ROMs.

Then I thought hell if I'm going that far, I mightaswell record the output of a ROM, pass it through the decoder he referenced, and see what kind of results I get.

Then I went off looking for my tape player to bring it even more retro.

Then the kids needed to go to bed so I got sidetracked.

Ahh well. ccovell, I am envious at the simplicity and beauty of your project. Nice work!

Author:  infiniteneslives [ Fri Jul 15, 2011 11:10 pm ]
Post subject: 

This is a crazy awesome idea. I may just have to try it out when I get a simple dev cart running.

Author:  e5frog [ Sat Jul 16, 2011 7:58 am ]
Post subject: 

I can confirm that the PAL-version works well on a PAL machine, just tried dumping Excitebike on my PAL NES and registered here just to tell about it.

With a cable connected directly to the stationary PC the 1200 bps option didn't work very well in the conversion process, had no problems at all with 600 or 300. Well, it's not hooked directly... there's some gadgets on the same line so if I had hooked it directly maybe the 1200 would have worked as well.

Just to make sure I got it out right I had another dump to compare with, the dumper then gave me four parts of PRG before repeating (as expected), I didn't really have to do anything. Assembling them though needed to be done 4+1+2+3 and the 8kB CHR part was dumped in one piece and added last - it ended up as an exact match to the dump I already had.

Nice to know that it works, I guess you would need to be somewhat of an expert to make good use of it if the cart you want to dump has any kind of a mapper or maybe some work could be done on the interface so you could choose a mapper before starting the dump with automatic switching of the areas getting all the data out at once would also be nice.

Super-great idea that requires almost no modification to the unit (I already had the CIC disabled and also a PowerPak) - I wish I had something odd to dump - I guess I can check if my own carts are the same as other known versions of course...

Very good idea and extremely well executed, works like a charm!
I agree that this may help dumping some of those rare carts that noone wants to open, solder on or send away. I'm not much of a NES-guy myself but it's a small part of my overall collection - and hacking is always fun!

EDIT:
Tried it again and pushed out all four parts of the PRG into the sampler program on the PC without stopping in between and then ran all of them through KCS08. Apart from the $C0, 00 first I got the entire 16kB in one go.

Author:  MottZilla [ Sat Jul 16, 2011 10:00 am ]
Post subject: 

This is a pretty nifty creation. Could it be combined with the Game Genie hack that was made awhile back to avoid swapping and the need to disable the lockout?

Author:  e5frog [ Sat Jul 16, 2011 12:25 pm ]
Post subject: 

Tried the 1200 bps again on my PAL-machine, no problem at all with a direct connection. The entire Excitebike cart dumped in less than 5 minutes.

Author:  marvelus10 [ Sat Jul 16, 2011 12:51 pm ]
Post subject: 

This is brilliant, thank you.

Author:  infiniteneslives [ Sat Jul 16, 2011 2:28 pm ]
Post subject: 

Does it support any mappers?

Author:  e5frog [ Sat Jul 16, 2011 2:40 pm ]
Post subject: 

It says in the texts that it's built for the "Konami VRC2" mapper so I guess it supports that and similar ones (if any). Currently you have to add other mappers yourself, let's hope ccovell wants to add a nice front end and some mappers in a future version.

Author:  tepples [ Sat Jul 16, 2011 4:56 pm ]
Post subject: 

Such a "nice front end" would probably have to involve autodetecting the mapper and then searching CHR ROM for a blank tile and a solid tile in order to write messages directly in the nametable. Then sprite 0 could be used to build a ghetto vblank detector.

Author:  e5frog [ Sun Jul 17, 2011 3:35 am ]
Post subject: 

Sounds like you know what to to tepples, go right ahead.

Is there enough room in the NES internal RAM to do all that?

You can have any graphics you want until you swap carts, selecting mapper manually perhaps and so on, maybe set and be able to test dumping speeds instead of doing it blindly and then send the whole cart out in a single sweep maybe including a proper iNES header as well. Everything would be set in RAM and then you'd swap carts.
That rudimentary text by using a filled or the most filled char could be used after that I guess for better information in case someone has trouble seeing colors. ;-)

Great start here anyway, the idea is brilliant, I hope it's developed further and that everyone who likes it also registers here and leaves a comment.

Page 1 of 12 All times are UTC - 7 hours
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/