For Nova the Squirrel 1 on the NES I used the MMC1 mapper (by default; you can build it for three other choices) because I wanted wide emulation/flashcart support, and MMC1 seemed like the simplest hardware that was guaranteed to have the emulator provide extra RAM, which my game needed. Unfortunately MMC1 is not great.

As far as I'm aware, for the most part you've kind of got the following tiers for NES homebrew board complexity/price:

  1. NROM, no extra chips
  2. Simple boards with 7400 series chips
  3. More complicated boards with programmable logic, that traditionally used a custom chip in 80s/90s carts

So once you're already at the point where you've got programmable logic on your board, there's not much of a reason you can't just use MMC3 instead because you're already paying for the chips that can do it. MMC3 is much more convenient to work with and which has additional features I could have used to do effects. So it feels kind of silly to have gone for MMC1, but I know there were additional circumstances there.

Factors that went into choosing MMC1

I specifically wanted Nova the Squirrel to work with the Action 53 project and the mapper used for that has capabilities that are very close to what MMC1 can do, and you can build the game to run on that mapper. In the end that ended up being moot because I don't think the people behind those carts wanted to pay for extra RAM, which rules out Nova the Squirrel. I did play with making a demo that adapted the engine to use a workaround, but I didn't really want to bother with trying to port the game over to work with that, if it was even possible without compromises I didn't want to make. I'd rather do another game that would fit, and I eventually will.

Also, there was actually a point in the past where you could get new-parts MMC1s easily but not MMC3s! I don't know when it changed, but at least in 2008 or so I remember that there was a point where the CPLDs that seemed like reasonable options weren't really there yet, and MMC3 required too many resources, unless you used two CPLDs? I think we're past that point now.

Edit: as Pino pointed out MMC1 and MMC3 becoming the same price-wise was probably the result of popular 5-volt CPLDs getting discontinued. And it's easy to get a 3.3v CPLD that can fit any mapper you like.

Some good positives

There is is another benefit to me sticking to simple board features: you actually can make a board that plays Nova the Squirrel with 7400 series chips and no programmable logic, if you want to. It would require making a board for it (and I think most people would rather just go use a preexisting MMC1 board design), but you could definitely do it.

Years later I don't know if I would even want to do a cart release anymore. The idea of having a physical product for strangers to buy doesn't excite me at all, and I don't feel comfortable entering into a contract with anyone over one of my games, which I'd probably have to do for a cart release unless I wanted to manufacture and ship out carts myself. But maybe it's still important that it's easy for people to make their own carts for personal use, which a 7400-series option would help with. That feels like it fits the spirit of me making a game and making it open source and inviting people to tinker with it.

There's also a good advantage to using MMC1 specifically: Some emulators support letting you give MMC1 32KB of extra RAM instead of just 8KB, and it's one of the few pre-established mappers that can do that. And my game will take advantage of that by letting you design and save levels.

Previous Post Next Post