TapeDump v1.0 - a tool to dump carts without extra hardware

Discuss technical or other issues relating to programming the Nintendo Entertainment System, Famicom, or compatible systems. See the NESdev wiki for more information.

Moderator: Moderators

User avatar
thefox
Posts: 3134
Joined: Mon Jan 03, 2005 10:36 am
Location: 🇫🇮
Contact:

Post by thefox »

I've been thinking about doing a controller port serial dumping software, but haven't done it so far because I have no use for it. It would be pretty easy to do using blargg's NRPC library (the same one I used for the PC2NES PowerPak transfer software). It's too bad NRPC was never officially released, but if somebody want's to use it you can get it from the PC2NES sources.
Download STREEMERZ for NES from fauxgame.com! — Some other stuff I've done: fo.aspekt.fi
User avatar
Memblers
Site Admin
Posts: 4044
Joined: Mon Sep 20, 2004 6:04 am
Location: Indianapolis
Contact:

Post by Memblers »

jpx72 wrote: There's no problem building it but can you provide the software for it? Something understandable (English) and relatively easy to controll? Last time I asked about this I was pointed towards some Japanese web, couldn't even get the right schematics...
But if it's that simple, why then the need of CopyNES? Profit?
CopyNES was from 12 years ago, and was cheaper too when kevtris sold them.

I've used these XMODEM routines, usually loaded in WRAM on cartridge, but think it would fit in NES RAM (though taking out the 512 bytes of lookup tables might help).

You could also perhaps change only the Send_a_Byte routine in TapeDump to use a 19200 baud send from xmodem.asm. Then you would just need a program that can save all data coming in the serial port (I'm sure there are many). Sounds easy, maybe it could work? I haven't tested this at all, but I modified it so it should assemble OK.

Code: Select all

;----
Put_Chr:
send_at_19200:
        sta     <LOOP_CN2	;Save A temporarily
        sta     <LOOP_CN3	;Save A temporarily

        txa     ;Save our X reg
	pha
	tya
	pha
        lda     <LOOP_CN2

;        eor #$FF

        lda #0
        sta $4016               ; start bit

        ldx #16
@b1:
        dex
        bne @b1

        nop
        ldy #8                  ; send 8 data bits


@send_data_bits:
        lda #0
        lsr <LOOP_CN3
        rol
        sta $4016

        ldx #13
@b2:
        dex
        bne @b2

        nop
        nop
        nop

        dey
        bne @send_data_bits

        lda #1
        sta $4016               ; stop bit

        ldx #15
@b3:
        dex
        bne @b3

	pla
	tay
	pla
	tax
	lda	<LOOP_CN2	;Get A again... bummer

        rts


;--------
User avatar
MottZilla
Posts: 2837
Joined: Wed Dec 06, 2006 8:18 pm

Post by MottZilla »

On the Rockman pirate subject, I added support for emulating it in my own emulator based apon the information previous posted and it works fine. If jpx72 chooses to release the ROM dump I helped him clean up and assemble then others can certainly add support for it too.

Just a pretty basic MMC3 based multi-cart.
User avatar
jpx72
Posts: 178
Joined: Tue Sep 28, 2010 3:27 am
Location: Slovakia
Contact:

Post by jpx72 »

After a long search based on an information that Rockman 6in1 cartridge was dumped before by some Chinese guys, I finally found it. It's much more accurate dump than I and MotZilla made, because it was dumped by a kazzo rom dumper. It's all there, the extra 30 lives in Rockman 3 and removed Capcom logo in Rockman 4. And it has been already emulated in CaH4e3's FCEU port under UNIF header. If anyone wants, I can provide link to the dump via PM. Would be nice to see it emulated in Nestopia.
mrm78
Posts: 7
Joined: Wed Oct 05, 2011 10:24 am

Post by mrm78 »

this is a great tool :D
i got an strange idear for an alternative transfering mode.
Could we maybe use the background color + some time based scanline + midscanline code for sending data over a simple data matrix like barcode?
that can be captured with an webcam?

greetings marcel
User avatar
tokumaru
Posts: 12427
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Post by tokumaru »

I guess it should be possible to output a QR code or something like that, but you'd still need several frames to transfer games... I guess over a minute worth of video for larger games (if you use a video capture card to get all 60 frames per second, obviously more than that if you use a webcam). Still a much better time than what is possible with audio, but we'd most likely need a custom tool to convert the video back into a ROM file.
tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples »

I've looked into Denso Wave's QR Code as a way of automatically submitting high scores that the player achieves in a video game. The problem is that it takes a while for a 6502 to encode all the Reed-Solomon error correction that makes up part of each frame of a QR Code. Furthermore, it presupposes CHR RAM.

I still believe that much more is possible with audio if you abandon FSK in favor of QAM.
ccovell
Posts: 1045
Joined: Sun Mar 19, 2006 9:44 pm
Location: Japan
Contact:

Post by ccovell »

mrm78 wrote:this is a great tool :D
i got an strange idear for an alternative transfering mode.
Could we maybe use the background color + some time based scanline + midscanline code for sending data over a simple data matrix like barcode?
that can be captured with an webcam?

greetings marcel
You mean like this?

Image

I've done it (see above), but it's most useful with games/embedded roms that have CHR-RAM. It works fine over a video capture card but then there's post-processing and cutting of image captures, etc. that the user needs to do.

Basically, it's more fiddly. Audio decoders are much more widespread and require less hardware/knowledge to get a working dump. Easiest = best deserving the label of 'poor-man's dumper'.
User avatar
jpx72
Posts: 178
Joined: Tue Sep 28, 2010 3:27 am
Location: Slovakia
Contact:

Post by jpx72 »

I wouldn't mind playing wih the image output, it's easier to clean an image than to clean a wav file.
User avatar
byemu
Posts: 297
Joined: Mon Sep 05, 2011 5:56 pm
Contact:

Re: TapeDump v1.0 - a tool to dump carts without extra hardw

Post by byemu »

I found this:
NES/Famicom serial cable specification
http://slack.net/~ant/old/nes-code/serial/spec.html

code:
http://slack.net/~ant/old/nes-code/

I'ts a easy and faster way to dump famicom/nes cartridge!
maybe easier than kcs.
I want to you can improve your tape to suport serial cable,thanks!
ccovell
Posts: 1045
Joined: Sun Mar 19, 2006 9:44 pm
Location: Japan
Contact:

Re: TapeDump v1.0 - a tool to dump carts without extra hardw

Post by ccovell »

That's another good idea alongside the parallel port idea I'm working on here. They both still invalidate the general "without extra hardware" idea. And it being easier is quite debatable -- not only do you have to build a cable, you have to wire together an RS-232 level converter!

Update: Castle Excellent's KCS reading functions seem to work OK, even through the rather hysteretic Famicom microphone circuit, so the next version of TapeDump might be able to keep its lack of required hardware for data uploading as well. Fingers crossed!
User avatar
oRBIT2002
Posts: 687
Joined: Sun Mar 19, 2006 3:06 am
Location: Gothenburg/Sweden

Re: TapeDump v1.0 - a tool to dump carts without extra hardw

Post by oRBIT2002 »

Someone needs to port the "KCS"-program to a more modern environment. It obviously requires Dosbox on x64 systems.. :/
tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: TapeDump v1.0 - a tool to dump carts without extra hardw

Post by tepples »

Is the source code for this KCS program available? Is its author contactable?
ccovell
Posts: 1045
Joined: Sun Mar 19, 2006 9:44 pm
Location: Japan
Contact:

Re: TapeDump v1.0 - a tool to dump carts without extra hardw

Post by ccovell »

Here is some code from alternative en/decoders:

http://brainwagon.org/2011/07/22/the-ka ... -standard/

The KCS08 program was written in 16-bit FORTH, so I'm not so sure the code would even be recompilable by us. Anyone know FORTH?
zzo38
Posts: 1096
Joined: Mon Feb 07, 2011 12:46 pm

Re: TapeDump v1.0 - a tool to dump carts without extra hardw

Post by zzo38 »

ccovell wrote:Here is some code from alternative en/decoders:

http://brainwagon.org/2011/07/22/the-ka ... -standard/

The KCS08 program was written in 16-bit FORTH, so I'm not so sure the code would even be recompilable by us. Anyone know FORTH?
I know about Forth. You might be able to run it on Gforth (although it is 32-bits); any differences in the system can be programmed in Forth itself (this is one of the features of Forth!).

However, I am also interested in if the encoder/decoder could be written in Csound.
(Free Hero Mesh - FOSS puzzle game engine)
Post Reply