The way I handle unique mappers that can't be ID'd via the header is to have the user manually specify which one they want to use before my emulator runs via a simple drop-down list. For example, MBC1M (the multicart variants of the MBC1) and MMM01 carts are done like this in GBE+. Most recently, I've added the MBC1S (sonar variant of the MBC1) to that list.
A lot of people scratch their heads when it comes to handling exotic carts that aren't well detected via the header or other metadata. To me, the solution is simple: don't automate the process. Just tell the user to decide things manually. The mappers outside the current "read the header" method are so small in number, they're edge cases where I'd expect a user to do some prior research (especially since GBE+ comes with a manual detailing such edge cases and how to deal with them)
On a separate note, it's actually not that hard to automatically detect MMM01 carts, it's just not as straightforward the other MBCs. An emulator need only verify that a valid cart header is in the last 32KB of the ROM when reading in that file (e.g. check for Nintendo logo just to be sure, maybe even do the checksums to be safe). If so, odds are it's an MMM01 cart (or some really tricky homebrew designed to fool the emulator). But this is not as simple as reading a single byte from a fixed location, so emudevs tend to make a fuss about MMM01
Anyway, great list! It's perfect for those looking to expand past the basic MBCs. It's useful too to have a list of all of the unofficial carts. Naturally, I have a couple of suggestions to add:
Gyogun Tanchiki: Pocket Sonar
- I've informally called this the "MBC1S". It's mostly MBC1; if you treat it as a normal MBC1 cart, you can browse the menus and play the mini game. But sonar functionality will not work. You'll either get a black screen or a white screen depending on what values an emulator returns for unaddressable cart RAM. It's still possible to emulate the sonar
via a static image (or other external input, like your own sonar device). Still working on finishing the documentation.
and Monster Maker: Barcode Saga
- Normal MBC1 carts, but they absolutely require a working Barcode Boy to communicate with. At the start, before being able to enter any play mode, the game pings the Barcode Boy. This isn't a problem with a flash cart as long as you hook it up to a real Barcode Boy, but most emulators will get stuck on a screen asking the user to power on the Barcode Boy. The other 3 Barcode Boy games play just fine without a Barcode Boy, you just can't scan cards for extra stuff.
Zok Zok Heroes
- Normal MBC5 cart, but needs the Full Changer accessory for battles. Without the special IR input, the game will get stuck during the first battle/tutorial waiting forever. Even getting past that, every other fight is almost impossible without using the Full Changer to change into different heroes. Not a problem for flashcarts, but definitely an issue for emulators.
GB Mobile Trainer
- Not exactly a "game" but it requires the GB Mobile Adapter. Once again, no issue for flashcarts since it's a normal MBC5 cart, but it's tricky for emulation.
Chee Chai Alien
- Normal MBC5 cart, but it's the one GBC game that extensively uses the IR receiver. Not tricky from an emulation standpoint (it's enough to return 0 every time the game reads the IR register to get the game to "work" as a hack) but on a real GBC, you better have that plastic clip-on. I tried playing with and without the clip-on, and it seemed to make a world of difference. At least, it took the frustration levels down a couple notches. It's hard to properly "capture" light input without the clip-on, and still finicky when you have it attached. Maybe not the best candidate for the list, but it's one to be aware of at least.
I don't mean to toot my own horn, but I spent a lot of time getting the above examples working in GBE+
Hopefully I'll be diving into the HuC-1 and HuC-3 stuff next year since I have everything necessary to emulate IR communications.