so i was thinking about making a little uC based circuit to dump a NES cartridge. just to see if i could, for fun and experience or whatever.
so i got started with some research into the cartridges and stuff, but the information out there is kinda patchy and i still have some questions that i was hoping someone could answer...
mostly im confused about exactly how the data and address lines work...
there are two sets of address/data lines, one for the CPU (the PRG ones) and one for the 'PPU' (the CHR ones) or whatever, right?
so i can see from the memory map i have that the actual ROM image resides in the upper portion of the CPU address space, from 0x8000 to 0xFFFF
my first question is what gives? there are only 15 address lines (a0 - a14)! it seems to me that you can only access 0x0000 to 0x7FFF, which is exactly mutually exclusive of the area i want. the only thing i can think of is that the 16th line is the CE pin of the PRG ROM or something, which actually seems to make a lot of sense. Im mostly confused because this one schematic i am referring to references the "a15" line even though it does not appear in any pinout i can find. it also references the PRG CE separately
second thing, it is my understanding that i must also dump the 0x0000 to 0x1FFF region of the PPU (CHR) address space, *IF* there is ROM there and not RAM. is this correct? is there anything else past 0x2000 that is part of the game's ROM?
hope someone has enough technical know-how to answer these questions. if this project works i plan to move on to SNES, and share all my work with you guys.
NES cartrige dumping
Moderator: Moderators
NES cartrige dumping

"Linux is only free if your time is worthless"
-
gannon
- Moderator
- Posts: 6974
- Joined: Sun Apr 04, 2004 4:48 pm
- Location: Near that one big lake
- Contact:
Re: NES cartrige dumping
That's where mapper IC circuitry comes in. I suggest you go to the NESdev forums if you want to expand on a project like this, although you'll probably be recommended to just assemble a copyNES and write plugins for any mappers without existing plugins.timmeh87 wrote:my first question is what gives? there are only 15 address lines (a0 - a14)! it seems to me that you can only access 0x0000 to 0x7FFF
hm. copynes looks a lot more complicated than what i had in mind. i wanted something you could just pop a cart in, press a button on your computer, and dump/write it.
my motivation is pretty pirate-oriented. (i think its ok cause some copyright expired though? we wont talk about it anyways...)
but yeah. i have some more information and plenty of ideas...
my motivation is pretty pirate-oriented. (i think its ok cause some copyright expired though? we wont talk about it anyways...)
but yeah. i have some more information and plenty of ideas...

"Linux is only free if your time is worthless"
Well, as for a flash cart type device, how complex do you want it? Multi mapper support? Or just one mapper? If you want an easy way to get started you should begin by just making a device for NROM (mapper 0) games. I did that, but it's not a "plug 'n play" style you wanted. I could post up some pictures in a few hours here. My current version has EPROM's instead of a Flash chip. I also have a design on paper which uses flash chips and plugs directly into the computer by means of a parallel port. I haven't built it yet because my software skills aren't very good, but it would be very do-able. Unfortunately a multi mapper unit would be really complex, so I just make one cartridge for each mapper type I want. It's pretty easy once you get the hang of it.
Oh yeah, moderator, please move this to the Nintendo 8 bit section, I think it would fit better there.
Edit: OK, here are some pics of my NROM dev cart, which can be used to play dumps/homebrew games on my NES.
<a href="http://photobucket.com/" target="_blank"><img src="http://i77.photobucket.com/albums/j78/arfink/mapr01.jpg" border="0" alt="Photobucket - Video and Image Hosting"></a>
<a href="http://photobucket.com/" target="_blank"><img src="http://i77.photobucket.com/albums/j78/a ... switch.jpg" border="0" alt="Photobucket - Video and Image Hosting"></a>
This switch changes the mirroring.
<a href="http://photobucket.com/" target="_blank"><img src="http://i77.photobucket.com/albums/j78/a ... inside.jpg" border="0" alt="Photobucket - Video and Image Hosting"></a>
This is the inside
If you want to get some really detailed instructions/help then go to the NESdev forums at: nesdev.parodius.com/bbs/
These guys were very helpful to me.
Oh yeah, moderator, please move this to the Nintendo 8 bit section, I think it would fit better there.
Edit: OK, here are some pics of my NROM dev cart, which can be used to play dumps/homebrew games on my NES.
<a href="http://photobucket.com/" target="_blank"><img src="http://i77.photobucket.com/albums/j78/arfink/mapr01.jpg" border="0" alt="Photobucket - Video and Image Hosting"></a>
<a href="http://photobucket.com/" target="_blank"><img src="http://i77.photobucket.com/albums/j78/a ... switch.jpg" border="0" alt="Photobucket - Video and Image Hosting"></a>
This switch changes the mirroring.
<a href="http://photobucket.com/" target="_blank"><img src="http://i77.photobucket.com/albums/j78/a ... inside.jpg" border="0" alt="Photobucket - Video and Image Hosting"></a>
This is the inside
If you want to get some really detailed instructions/help then go to the NESdev forums at: nesdev.parodius.com/bbs/
These guys were very helpful to me.
Emulation isn't accurate. There is no substitute for real hardware!
