MMC1,2,3,4/Sunsoft-5B reproduction circuit boards. INL-ROM

A place that you can discuss reproduction of classic titles or "licensed-for-reproduction" homebrew for personal use.

Moderators: B00daW, Moderators

Forum rules
1. NO BLATANT PIRACY. This includes reproducing homebrew less than 10 years old, with the exception of free software.
2. No advertising your reproductions, with the exception of free software.
3. Be nice. See RFC 1855 if you aren't sure what this means.
User avatar
infiniteneslives
Posts: 2102
Joined: Mon Apr 04, 2011 11:49 am
Location: WhereverIparkIt, USA
Contact:

Post by infiniteneslives »

tokumaru wrote:But then you'll have to use regular DIP ROMs, so that people can easily use their own sockets and chips,
That was the plan in the first place. As far as I know people prefer standard EPROMs for producing carts. Unless I'm mistaken...

Supporting other memories (like PLCC for flash) would be a bonus.

The WRAM will have to support 0.6" SRAM for reasons that bunnyboy pointed out with battery backing. But I should be able to easily support 0.3" SRAM just like original production carts did.

CHR RAM is the one that's kinda up in the air, the easiest and cheapest solution I see is 0.3" SRAM, since there is no need to battery back and PCB layout would be simple. If I were to try and support CHR RAM and ROM at the same time I might be able to pull it off with SOIC SRAM soldered to the back of the board without making the PCB much larger. But unless someone provides a convincing argument as to why I should do that I probably won't. I think it'll end up being more hassle than worth to do that.
80sFREAK
Posts: 275
Joined: Sat Sep 03, 2011 11:40 pm

Post by 80sFREAK »

What is the problem to support both 0.3" and 0.6" JEDEC complaint SRAM?
User avatar
infiniteneslives
Posts: 2102
Joined: Mon Apr 04, 2011 11:49 am
Location: WhereverIparkIt, USA
Contact:

Post by infiniteneslives »

80sFREAK wrote:What is the problem to support both 0.3" and 0.6" JEDEC complaint SRAM?
None as far as I'm concerned with WRAM that's why I'm planning to implement them on top of each other like NES boards did for WRAM. CHR-RAM is a little different story though. I obviously have to support CHR ROM and RAM on the same PCB. So CHR-RAM probably won't support both 0.6" and 0.3" like WRAM, because I'm already working around the footprint of the CHR-ROM. So CHR RAM will most likely only be supported by 0.3" SRAM because it would be easiest and effectively consume no board space.
User avatar
infiniteneslives
Posts: 2102
Joined: Mon Apr 04, 2011 11:49 am
Location: WhereverIparkIt, USA
Contact:

Post by infiniteneslives »

Well I've got a few updates on this matter.

As jim's cool posted I've been in contact with him to help out in testing his NES CIC and will be helping out with the FCB flavor of CIC. He's done some great work with re-REing the CIC and has plans for some great release terms on his design. So I'm planning on incorporating his AVR CIC on this board. Good news is they will be on the cheap, so adding a CIC to the purchase of a PCB won't cost much for those unwilling/able to clip the pin from their NES.

I've also made some good progress on my 3D printer which is actually printing things besides giant globs of plastic mess now :) I should be able to get it up to snuff and make some decent cases in the near future to go along with these boards. Keep in mind 3D printing doesn't end up with near the polished look of injection molding like the original cases or retrozone's but they are still durable and should work out nicely. One cool factor is you can do things like dual color printing and such so if I decided to get real fancy I could print the name or graphic of a game 'into' the face of the cart shell. It might end up being more hassle than it's worth though so we'll have to wait and see. Here's an idea of the extreme of what's possible I probably won't go this far with 4 colors and all but it gives you the idea. (not my work, or face ;) BTW)
Image


So in the next couple months I'll be working out the actual design of the board and logic and everything. I found a place that'll make PCBs on the cheap and not charge any different based on minimizing board size or not (for this scale). So I may get more versatile with this if there is more board space without extra cost. The one significant issue with that deal is the boards are coated with HASL (solder) which isn't nearly as great as plating like the original carts and such but I don't have much evidence to support that. So I'll have to see if I can get that resolved with them. Otherwise I'll go with everyone's input on the matter.

I've pretty much decided on the two CPLD method so unless something goes wrong during prototyping that's the plan. Since jim's cool is working on the FCB CIC as well I may very well support it also. It's just a bummer that it won't support the MMC3 due to lack of /IRQ support. But MMC1 and discrete additions would be better than the 20 games that were released for it. If you have interest in the FCB (Famicom Station) in this project let me know. Because your interest mostly decides whether it's supported or not. It's possible I'm asking the wrong crowd though...

My goal is completing the design and prototype over the summer and have a small run of PCBs made up in August/Sept time frame. Larger runs to follow based on demand.
User avatar
infiniteneslives
Posts: 2102
Joined: Mon Apr 04, 2011 11:49 am
Location: WhereverIparkIt, USA
Contact:

Re: MMC3 (or similar) reproduction circuit boards anyone?

Post by infiniteneslives »

Well finally finding some time to make this project a reality. I'm working on the prototype now and will be finalizing the PCB shortly and ordering the first batch of board next week.

Assuming there are no surprises I'll be making them available for $11 plus shipping. That would be for the PCB and full blown MMC3 512KB (PRG & CHR). Also includes power regulator (3.3V), power and noise caps for mapper.

It is possible to get down to my original goal of $10 but mapper optimizations have to be made to allow for a smaller CPLD. Basically that means the modes are fixed and the ROM limit is 256KB PRG 128KB CHR. That would work for many games but not all obviously.

Additionally it'll be a MMC1 compatible board that only needs one of the larger CPLDs for $8.

PCB alone will be $5

Some more details:
EDIT: *** The cpld is a 3.3V part that is 5V tolerant. *** This means you can run it in a 5V NES with no problem, but it will drive it's outputs to 3.3V. You can select your own parts to ensure Vih is satisfied (fine for most parts). The only thing you might question is things like CIRAM A10 that's the cart controls. I've tested and verified that this is not an issue and performs great. This isn't of much concern, but I want to fully disclose everything.

* It's a larger board ~10cm (4") square. And will have some 'perf board' style space to allow for simpler mapper testing, demoing, and prototyping all on one PCB (crazy things like NROM-368 etc...). My goal is around the size of a 40pin DIP (room for AY-3-8910???) or more of free perforated area. I'm considering preconnecting some of the holes for a 8x flipflop's inputs for super UNROM style that would require running some extra connections manually.

* 32 pin EPROM for PRG/CHR

* 28 pin 0.6" DIP and SOIC WRAM

* SOIC VRAM 32KB (possibly DIP, but not pushing for it at the moment)

* CIClone, and Jim's Cool CIC (8-soic) support. Jim's Cool CIC should be available soldered on at a low cost (details to come). Possibly FCB CIC support as well.

* Battery backing compatibility

* Gold plated finish and 0.47" board thickness (no surprises...)

* A probably maze of jumpers to allow for configurationability. Things like four screen mirroring and such. Although I'm going to try and keep it simple for common set ups and let any complex choices get resolved in the perf area.

* Extended connector "fingers" that actually go INTO the shell of the cart. That way something like EXP pins can EASILY be tapped off without hacking away at the cart shell like you do with original carts.

Don't have much of a solution for cases. Retrozone is the place to go for these. If demand for these boards grows enough I'll consider ordering a large amount from him and reselling them at cost to save people shipping from two separate places.

I'm also stocking up on the rest of the parts required to populate the board. Once I figure out how much time in involved with assembly I can provide assembly costs. But if you want to buy the unassembled parts from me it'll be something like:
Parts ONLY:
$1.50 32KB soic SRAM (<5uA stby current should be decent for battery backing).
$1 power caps, diodes (SMT), clip, and battery.
?? ROMs


So everything above is about as low as I could get the cost. I'm only ordering a few dozen boards and parts worth for now. I'll guarantee the above prices until that stock is gone. Prices are subject to change for future orders, but I don't expect them to change. If it looks like the demand will suck up everything quickly I'll consider ordering more to start so there are enough to go around. Additionally if these become popular enough for a second run and enough people request, I'll order some 60pin famicom versions the second time around. Although expect a ~$1-2 more due to lower quantities to start.

I'm just letting everyone know this is becoming a reality and wanted to see what the pulse was on what if any immediate demand there may be for these. Release is expected in late September after I've had a chance to assemble a few and verify everything.

If you have any feedback or final suggestions before I finalize the design feel free to let me know. I'm still at the point I can consider requests, but act fast because the I'm trying to order boards next week.

EDIT: Additionally around the time I'm ready to release them I'll publish my MMC3 logic design so there are no mysteries of what's going on inside. :)
If you're gonna play the Game Boy, you gotta learn to play it right. -Kenny Rogers
3gengames
Formerly 65024U
Posts: 2281
Joined: Sat Mar 27, 2010 12:57 pm

Re: MMC3 (or similar) reproduction circuit boards anyone?

Post by 3gengames »

Can't wait to see this happen! :D Now, who's gonna make the first homebrew to use theses? hehe. :)
tepples
Posts: 22345
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: MMC3 (or similar) reproduction circuit boards anyone?

Post by tepples »

infiniteneslives wrote:It is possible to get down to my original goal of $10 but mapper optimizations have to be made to allow for a smaller CPLD. Basically that means the modes are fixed and the ROM limit is 256KB PRG 128KB CHR. That would work for many games but not all obviously.
Could you consider a 512/32 version for people who don't need CHR ROM support and think they can make the next Mega Man 4/6?

Otherwise, I'm looking forward to it.
User avatar
infiniteneslives
Posts: 2102
Joined: Mon Apr 04, 2011 11:49 am
Location: WhereverIparkIt, USA
Contact:

Re: MMC3 (or similar) reproduction circuit boards anyone?

Post by infiniteneslives »

tepples wrote:
infiniteneslives wrote:It is possible to get down to my original goal of $10 but mapper optimizations have to be made to allow for a smaller CPLD. Basically that means the modes are fixed and the ROM limit is 256KB PRG 128KB CHR. That would work for many games but not all obviously.
Could you consider a 512/32 version for people who don't need CHR ROM support and think they can make the next Mega Man 4/6?
Yeah I plan to check that one out. My guess is it should work allowing for the $10 board. The main issue is the large amount of logic needed for the C and P bits to be changeable in reg0:
http://wiki.nesdev.com/w/index.php/MMC3

I checked a game or two, but I'm guessing most games set these bits and never touch them again. So if I hard wire those bits a LOT of logic is minimized. Additionally the ROM sizes needed to be limited 256Kb PRG, and 128Kb CHR. So 32Kb of VRAM should be cake assuming C and P are fixed. I'll check to see if the implementation of switchable C/P bits, or 512Kb PRG can be added back if CHR is limited to 32Kb.

I'll do my best to keep matters like this simple. But to some degree it requires the user to have a detailed knowledge of their application, and what the C and P bits do exactly. Basically, for a novice user, or for indefinite applications one is probably best to spend the dollar on the full fledged MMC3. If it got to the point where someone wanted to release a game using these boards though the optimization if possible would be well worth it. Once i ship a board with C/P fixed to one value, you'll never be able to switch it to the opposite value really.


EDIT: I did have someone wondering if I was making them available to everyone. The answer is yes. If you're interested in getting any number of them from the first batch, I recommend PMing me with the quantity. NO OBLIGATIONS, it will help me gauge that I've got a good quantity while I'm ordering everything. Additionally, once they are ready to go out the door, I'll send them in order of request. If you change your mind, no big deal or hard feelings. I'll just move down the list. I'd rather have a couple dozen extra than a couple disappointed folks who have to wait until I can get the next batch and full production together.
If you're gonna play the Game Boy, you gotta learn to play it right. -Kenny Rogers
lidnariq
Posts: 10677
Joined: Sun Apr 13, 2008 11:12 am
Location: Seattle

Re: MMC3 (or similar) reproduction circuit boards anyone?

Post by lidnariq »

infiniteneslives wrote:Additionally the ROM sizes needed to be limited 256Kb PRG, and 128Kb CHR.
Any chance I could persuade you to go into where these limitations came from?
User avatar
MottZilla
Posts: 2835
Joined: Wed Dec 06, 2006 8:18 pm

Re: MMC3 (or similar) reproduction circuit boards anyone?

Post by MottZilla »

It's nice to see you're going to get this going. Be sure to post some pictures of a completely assembled pcb when you can.
tepples
Posts: 22345
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: MMC3 (or similar) reproduction circuit boards anyone?

Post by tepples »

lidnariq wrote:
infiniteneslives wrote:Additionally the ROM sizes needed to be limited 256Kb PRG, and 128Kb CHR.
Any chance I could persuade you to go into where these limitations came from?
A CPLD (complex programmable logic device) is made up of macrocells. You can think of each macrocell as holding one bit of state. MMC3, with its fine-grained bankswitching, has 7+7+8+8+8+8 = 46 bits of state for the CHR ROM banks alone. Cutting to 128 KiB shaves that to 6+6+7+7+7+7=40 bits, and cutting to 32 KiB (as one might if dropping CHR ROM support in favor of exclusive CHR RAM support) cuts it further to 4+4+5+5+5+5 = 28 bits.
User avatar
infiniteneslives
Posts: 2102
Joined: Mon Apr 04, 2011 11:49 am
Location: WhereverIparkIt, USA
Contact:

Re: MMC3 (or similar) reproduction circuit boards anyone?

Post by infiniteneslives »

lidnariq wrote:
infiniteneslives wrote:Additionally the ROM sizes needed to be limited 256Kb PRG, and 128Kb CHR.
Any chance I could persuade you to go into where these limitations came from?
Yeah Tepples' explaination is pretty accurate. The number of states doesn't usually directly equal the number of macro-cells but it's a fair approximation. You can find some of the things earlier in this thread that led me to this. But basically the most cost effective way to recreate the MMC3 was use TWO separate Xilinx 9500 series CPLDs. They come in 72 and 36 Mcell flavors. Basically the Scanline counter, PRG bankswitching, and WRAM control fits into one 72 Mcell CPLD and CHR bankswitching and mirroring ALONE take up a second 72 Mcell device. I was hoping to be able to make things fit into a smaller CPLD (or One big 72 and one small 36 Mcell). The thing that was actually limiting the CHR wasn't the logic amount (Mcells) but actually the number of terms (inputs to the logic). Basically there are so many terms that things have to be broken up into more Mcells to complete the operation.

So I just tried to think of some ways that the logic could be minimized to allow it to fit on One 72 and one 36 Mcell part (108 Mcells total). Honestly I've only checked 1-2 games, but it's logical that there isn't much point to change the P and C bits of reg0 after initializing the mapper. You just pick your preference and never touch them again. So if you know what the game uses, or are creating your own game it can be coded/designed with this in mind. That solved the number of terms problem but didn't quite cut it down to 108 Mcells. So after that, realizing there was only one game that ever used 512KB PRG and CHR, I figured we could shave the ROM sizes. Cutting 2 bits from CHR and 1 from PRG allowed everything to fit and compile. It actually required some blocks to be juggled around to make things fit well. The large CPLD gets ALL bankswitching, and the smaller one holds the scanline counter, mirroring, and PRG ROM /CE.

The separation of blocks kind of opens things up to the idea of some interesting mappers. I know there has always been a high cost associated with the idea of a scanline counter. But in reality it'll fit in a pretty small CPLD with room to spare for extras. If you're willing to put up with discrete style bankswitching, one could even incorporate some cheapo logic gates in tandem with the scanline counting CPLD. The idea of this board being that you could easily demo up something like that without requiring you to design a PCB and shell out large sums of money for a small run. We'll see how things go, but a simple board like this allows some difficult hurdles for most people to be jumped easily. I would have killed to have something like this when I first started out making boards and such.

For any advanced users interested I'll be making the board arrangement to allow for socketed CPLDs. The won't satisfy case clearances, but since I'm using PLCC, it allows convinces like that. If someone decided they want to try out programming a CPLD to brew up their own mapper, this would be a great tool.

I've got all the parts in hand now so I'll be using my "NES-protoboard" to protoype things out this weekend. That way there are no surprises when the boards show up :)

EDIT: oh and I'm officially naming the board INL-ROM :)
If you're gonna play the Game Boy, you gotta learn to play it right. -Kenny Rogers
User avatar
MottZilla
Posts: 2835
Joined: Wed Dec 06, 2006 8:18 pm

Re: MMC3 (or similar) reproduction circuit boards. INL-ROM

Post by MottZilla »

Could you clarify, will a full fledged MMC3 clone be an option? Supporting everything the MMC3 does, in terms of ROM size and mode switching?
User avatar
infiniteneslives
Posts: 2102
Joined: Mon Apr 04, 2011 11:49 am
Location: WhereverIparkIt, USA
Contact:

Re: MMC3 (or similar) reproduction circuit boards. INL-ROM

Post by infiniteneslives »

MottZilla wrote:Could you clarify, will a full fledged MMC3 clone be an option? Supporting everything the MMC3 does, in terms of ROM size and mode switching?
Yeah sorry,

The FULL FLEDGED MMC3 just like Nintendo made it is the $11 option. It uses TWO 72Mcell CPLDs, the minimized version uses one 36Mcell and one 72Mcell CPLD and saves you a $1. So that's where the possible savings comes into play, but only for specific applications.

Honestly the minimized version probably isn't worth messing around with unless you're looking at higher quantities. It's possible it'll end up being more hassle than it's worth from my end, and I may only offer the minimized version on special request. Otherwise the only way to attempt to avoid confusion is tell people the board is only good for a specific game. I don't think that's the route I want to go unless it were a homebrew game with author support. Never the less I'm designing it with the option available to help achieve my goal of versatility and configurability.
If you're gonna play the Game Boy, you gotta learn to play it right. -Kenny Rogers
3gengames
Formerly 65024U
Posts: 2281
Joined: Sat Mar 27, 2010 12:57 pm

Re: MMC3 (or similar) reproduction circuit boards. INL-ROM

Post by 3gengames »

In my honestly opinion, I love this. But if you don't make sue it works as an option to recreate new MMC3 games without killing older games, you put yourself at risk because you can't sit on these and wait for an MMC3 homebrew. The repro guys will use it more far sooner than anone here because nobody is writing MMC3 games because they know they're harder to make on a cart and aren't as easy as MMC1, UNROM, etc. games. As for the slimmed down version, I think you shouldn't do that until they've got somebody who is GOING to use a bit of them. Saying a board will work for MMC3 games UNDER X and Y prg/chr will turn off anybody wanting to use it for a repro, especially because often times that use 1 board for every type. Plus, tons of MMC3 games are over 128KB Program...
Post Reply