Page 1 of 4

Mapper Decapping?

Posted: Sat May 14, 2011 7:52 pm
by Dr. Floppy
I was perusing some earlier threads when I came upon these:

http://nesdev.com/bbs/viewtopic.php?t=7413

http://nesdev.com/bbs/viewtopic.php?t=7 ... sc&start=0

Specifically, the comments from tepples and Memblers about decapping specific mappers in order to fully realize/replicate their activity piqued my interest. My understanding is that the major mapper chips (MMC1, MMC3, MMC5) are no longer being produced by anybody, requiring homebrew developers and reproduction-seekers to sacrifice existing carts.

Would the information obtained by the aforementioned decapping process allow for the eventual reproduction of these mapper chips themselves? What exactly does it take to physically program and produce such a thing?

Posted: Sat May 14, 2011 8:55 pm
by MottZilla
MMC1 has been produced on a CPLD by RetroZone ( retrousb.com ) but the original ASICs obviously have not been made in a long time. If someone did decap the mappers then ofcourse people could reproduce them most likely by using some programmable device as no one is ever going to have the volume of cartridges to actually have the ASICs produced again.

Posted: Sat May 14, 2011 10:43 pm
by Dr. Floppy
What would it take to decap the mappers? I recall something about needing one of each kind? To whom would such donations be made?

Posted: Sat May 14, 2011 11:29 pm
by Jeroen
It costs aloooooooot of money to have it done. (800 per chip and you're off cheap I think?) The problem is that its not something you can just do at home easily.

Posted: Sat May 14, 2011 11:34 pm
by Dr. Floppy
Jeroen wrote:It costs aloooooooot of money to have it done. (800 per chip and you're off cheap I think?) The problem is that its not something you can just do at home easily.
Where does one go to have it done? To whom does one pay the $800+, and in what form do we get the results?

Posted: Sat May 14, 2011 11:46 pm
by Jeroen
1.) No idea tbh I know there's companies that do it.
2.) The resulrt is a photo of the die...that you stil have "trace" yourself (so look where all the transistors are and what they do.)

Posted: Sun May 15, 2011 12:47 am
by Dr. Floppy
Would the services provided by this firm suffice?

http://www.soltecelectronics.com/decapsulation.aspx


They seem to have a very reasonable fee schedule, offer a bulk discount and are able to preserve the integrity of the die. :)

Posted: Sun May 15, 2011 1:52 am
by Jeroen
Looks like they just check for authenticity....if you had a microscope of your own you could take a die picture though.

Posted: Sun May 15, 2011 5:06 am
by tepples
Would the Visual6502.org people be able to help with this? They appear to have die images of an NES "support chip" (the lockout chip).

Posted: Sun May 15, 2011 5:08 am
by qbradq
Decapping the mappers is a way to (possibly) understand the operation of the mappers 100%. However I think we've got MMC1 and 3 covered. MMC5 is a little more complex, but it seems we've got all the pieces of the puzzle there too.

Some of the very exotic custom mappers from non-domestic games and pirate carts could benefit from this, however there is not much of a demand as most of them are already emulated well enough to play the games.

You really only need that low-level understanding if you want to create a physical cart that runs the original software.

Or am I off base on that?

Posted: Sun May 15, 2011 5:10 am
by tepples
qbradq wrote:You really only need that low-level understanding if you want to create a physical cart that runs the original software.
And the people working on NES-and-mappers-in-one hardware projects are creating physical carts that run NES software.
  • MMC1 is a known known: all 20 latches in that thing are well documented.
  • MMC3 is a known unknown: there are still a few doubts about edge cases in the scanline counter.
  • MMC5 is an unknown unknown: we don't even know what we don't know.

Posted: Sun May 15, 2011 5:17 am
by Bregalad
MMC1 is a known known: all 20 latches in that thing are well documented.
25 latches actually (I guess you forgot the temporary shift register).

Unfortunately the MMC1 is a known unknown as well : I think the effect of RMW instrucitons on the MMC1 is still mysterious, such as the difference between original MMC1, MMC1A, MMC1B1 and MMC1B2.

Posted: Sun May 15, 2011 2:52 pm
by Dr. Floppy
Jeroen wrote:Looks like they just check for authenticity....if you had a microscope of your own you could take a die picture though.
What sort of microscope would one use for this? Specifically, what minimum level of magnification would be necessary to attain the resolution required to make firm conclusions, and how exactly does one capture the image?

qbradq wrote:MMC5 is a little more complex, but it seems we've got all the pieces of the puzzle there too...

...You really only need that low-level understanding if you want to create a physical cart that runs the original software.
Would that allow for the eventual pseudo-reproduction of MMC5 chips (or functional facsimiles) themselves? For example, if a homebrew project utilizing MMC5 succeeded, could the sacrifice of existing MMC5 carts be avoided by way of something like this: http://www.retrousb.com/product_info.ph ... ucts_id=43 ?

Also, if someone wanted to create their own custom mapper (pirates do it; why can't the "good guys"?) based on MMC5, what information/level of detail would they need and what would be the best way of acquiring it?

Posted: Sun May 15, 2011 3:54 pm
by 3gengames
If you make a good NES game off of MMC5, it gets turned into something of this scale: http://www.retrocityrampage.com/

Posted: Mon May 16, 2011 5:38 am
by qbradq
Dr. Floppy wrote:
qbradq wrote:MMC5 is a little more complex, but it seems we've got all the pieces of the puzzle there too...

...You really only need that low-level understanding if you want to create a physical cart that runs the original software.
Would that allow for the eventual pseudo-reproduction of MMC5 chips (or functional facsimiles) themselves? For example, if a homebrew project utilizing MMC5 succeeded, could the sacrifice of existing MMC5 carts be avoided by way of something like this: http://www.retrousb.com/product_info.ph ... ucts_id=43 ?
Short answer: Yes.
Long answer: A reproduction MMC5 is possible without decapping one, but it will take a lot more guess work. We already know how to describe the behavior of the MMC5 well enough to emulate existing software, and with some trial and error we can reproduce the behavior as described in hardware.

This is the kind of thing I like to refer to as implementing the iNES mapper as opposed to the actual mapper. There are two camps on this issue, one arguing that it is perfectly acceptable, the other arguing that if we implement such a mapper, then figure out how the MMC5 "really" works that it will somehow implode the universe :wink:

Either way an MMC5 reproduction is going to be very expensive. Programmable logic alone is not up to the task (due to the built-in 1KB EXRAM), so you would have to use multiple IC's and work out all of the timing issues there. A custom ASIC is going to be way too expensive for a hobby (or small to medium sized commercial) project (I think).
Dr. Floppy wrote:Also, if someone wanted to create their own custom mapper (pirates do it; why can't the "good guys"?) based on MMC5, what information/level of detail would they need and what would be the best way of acquiring it?
We do :D The only down side is that if you build a custom mapper cart it will not be compatible with existing emulators. This is not a problem if you do all of your development on the hardware and do not want folks to be able to emulate your game. Some of us fall into this category, most of us do not. It has been discussed at length :D

As for MMC5 info and creating custom mappers based on it I will link to our recent discussions about it. If you have the hardware skills to pull this stuff off I will gladly bend over backwards to help you get the information and support you need.


Here is a forum thread with a lot of good MMC5 technical discussion and info: http://nesdev.com/bbs/viewtopic.php?t=7653
And here is a thread where we discussed using a sub-set of the MMC5 (note that I lack the hardware skills to pull this project off, as it turns out :D) http://nesdev.com/bbs/viewtopic.php?t=7650