I dumped this cart a little while back for Sardius. Nessie author got it working without much trouble and suggested 237 for the mapper number. I didn't add it to the NES DB yet, but I will eventually.
Here is the gist of how it works:
You can also download the TXT here.
The ROM will probably show up over at Lost Levels sooner or later.
Here is the gist of how it works:
Code:
Info for "Teletubbies / Y2K" 420-in-1 pirate multicart.
2nd draft (01/23/2010)
BootGod
Thanks to Nessie author, Martin, for testing and emulating!
This cart has been assigned as iNES #237 (seems to be free) and for UNIF,
BMC-TELETUBBIES (someone feel free to come up with a better one!)
This cart is a typical handful of NROM/CNROM/UNROM games with each game
appearing multiple times. Each menu item has a 3-digit code after the game
name, I'm guessing this is some kind of config data for loading the game.
The menu doesn't always load the game you'd expect, for example, selecting
"Home Alone" ends up loading "Brush Roller".
PRG appears to be 1MB (8Mbit) in size, logically arranged as 2 512KB ROMs.
Cart also contains an 8K VRAM chip in DIP form.
All ROM and MMC logic is contained in a single epoxy blob. All known mapper
logic came from toying around in BankWatch and MicroBug. As such, mapper info
may be incomplete.
The PCB is ID-less and uninteresting, just a single epoxy blob and a VRAM in
DIP form. It's a 60-pin Famicom PCB, but the cart it was found in was a recycled
5-screw NES cart with an official 60 -> 72 pin converter (NES-JOINT-01) and a
poor quality printed label.
The menu system used by this cart seems to be configurable as 4 different types:
0: 42-in-1
1: 5,000-in-1
2: 420-in-1
3: 10,000,000-in-1 (lol)
So it may be possible other carts out there use this mapper as well. Although
the way the menu is chosen is weird and may not work under the same iNES number
(see line A0 function).
Register area is $8000 - $FFFF, no bus conflicts
MMC uses A0-A2 and D0-D7 lines.
Reset button goes back to initial loading screen, rather than title screen of
last game.
Address line functions:
Function of line A0 is weird, when A0 is high, the PRG address space goes into
a funny state. In this cart, it has the effect of forcing PRG A1 line high
(e.g. address is OR'd by $02). The menu init routine uses this to determine
which menu type to use by reading a byte from a specific location and using the
value that shows up. If other carts that use this menu exist, the behaviour of
A0 must be different. This must be emulated to make menu use the correct mode.
Setting A1 high will lock the MMC into its current mode until the system is
reset. When locked the MMC will only operate on the current 128KB segment
(e.g. only bits D0-D2 still function).
A2 controls which 512K ROM or segment is active. So when A2 is low, the lower
512K is accessible and vice-versa.
Data line functions:
The MMC has 4 mapping modes which operate on 128K segments of ROM.
D6 and D7 control the current mapping mode. This affects how D0-D2 operate.
D7 D6
-----
0 0 : "UNROM" mode. D0-D2 select 16K to appear at $8000. $C000 is fixed the
last bank of current 128K segment.
0 1 : "CNROM??" mode. This works the same as UNROM mode, except only "even"
banks can be selected (e.g. line D0 doesn't operate). $C000 is still
fixed to last bank of segment.
1 0 : "16K NROM" mode. D0-D2 select 16K at $8000 and is mirrored to $C000 as well.
1 1 : "32K NROM" mode. D1-D2 select 32K at $8000. D0 has no effect in this mode.
D5 controls mirroring. Unset = horizontal, set = vertical
D4-D3 control which 128K segment of the current 512K is active.
D2-D0 control banking of the current 128K segment as described before.
2nd draft (01/23/2010)
BootGod
Thanks to Nessie author, Martin, for testing and emulating!
This cart has been assigned as iNES #237 (seems to be free) and for UNIF,
BMC-TELETUBBIES (someone feel free to come up with a better one!)
This cart is a typical handful of NROM/CNROM/UNROM games with each game
appearing multiple times. Each menu item has a 3-digit code after the game
name, I'm guessing this is some kind of config data for loading the game.
The menu doesn't always load the game you'd expect, for example, selecting
"Home Alone" ends up loading "Brush Roller".
PRG appears to be 1MB (8Mbit) in size, logically arranged as 2 512KB ROMs.
Cart also contains an 8K VRAM chip in DIP form.
All ROM and MMC logic is contained in a single epoxy blob. All known mapper
logic came from toying around in BankWatch and MicroBug. As such, mapper info
may be incomplete.
The PCB is ID-less and uninteresting, just a single epoxy blob and a VRAM in
DIP form. It's a 60-pin Famicom PCB, but the cart it was found in was a recycled
5-screw NES cart with an official 60 -> 72 pin converter (NES-JOINT-01) and a
poor quality printed label.
The menu system used by this cart seems to be configurable as 4 different types:
0: 42-in-1
1: 5,000-in-1
2: 420-in-1
3: 10,000,000-in-1 (lol)
So it may be possible other carts out there use this mapper as well. Although
the way the menu is chosen is weird and may not work under the same iNES number
(see line A0 function).
Register area is $8000 - $FFFF, no bus conflicts
MMC uses A0-A2 and D0-D7 lines.
Reset button goes back to initial loading screen, rather than title screen of
last game.
Address line functions:
Function of line A0 is weird, when A0 is high, the PRG address space goes into
a funny state. In this cart, it has the effect of forcing PRG A1 line high
(e.g. address is OR'd by $02). The menu init routine uses this to determine
which menu type to use by reading a byte from a specific location and using the
value that shows up. If other carts that use this menu exist, the behaviour of
A0 must be different. This must be emulated to make menu use the correct mode.
Setting A1 high will lock the MMC into its current mode until the system is
reset. When locked the MMC will only operate on the current 128KB segment
(e.g. only bits D0-D2 still function).
A2 controls which 512K ROM or segment is active. So when A2 is low, the lower
512K is accessible and vice-versa.
Data line functions:
The MMC has 4 mapping modes which operate on 128K segments of ROM.
D6 and D7 control the current mapping mode. This affects how D0-D2 operate.
D7 D6
-----
0 0 : "UNROM" mode. D0-D2 select 16K to appear at $8000. $C000 is fixed the
last bank of current 128K segment.
0 1 : "CNROM??" mode. This works the same as UNROM mode, except only "even"
banks can be selected (e.g. line D0 doesn't operate). $C000 is still
fixed to last bank of segment.
1 0 : "16K NROM" mode. D0-D2 select 16K at $8000 and is mirrored to $C000 as well.
1 1 : "32K NROM" mode. D1-D2 select 32K at $8000. D0 has no effect in this mode.
D5 controls mirroring. Unset = horizontal, set = vertical
D4-D3 control which 128K segment of the current 512K is active.
D2-D0 control banking of the current 128K segment as described before.
You can also download the TXT here.
The ROM will probably show up over at Lost Levels sooner or later.