Talk:Comparison of Nintendo mappers: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
No edit summary
Line 70: Line 70:
:::Actually, instead of UNROM, I could use MMC4 to emulate it but write the program in such a way that it works even if discrete logic is used to implement only the PRG RAM and the PRG ROM 16K bank switching and even if it has bus conflicts, but also works with MMC4. However, I don't know if there is a similar thing to be done with a game written to use MMC5 and converted to discrete logic. --[[User:Zzo38|Zzo38]] ([[User talk:Zzo38|talk]]) 01:58, 24 June 2013 (MDT)
:::Actually, instead of UNROM, I could use MMC4 to emulate it but write the program in such a way that it works even if discrete logic is used to implement only the PRG RAM and the PRG ROM 16K bank switching and even if it has bus conflicts, but also works with MMC4. However, I don't know if there is a similar thing to be done with a game written to use MMC5 and converted to discrete logic. --[[User:Zzo38|Zzo38]] ([[User talk:Zzo38|talk]]) 01:58, 24 June 2013 (MDT)
::::MMC5 has no registers outside of $5xxx. You could implement it such that writes to $5115 are mirrored to $C000 or whatever. You may also want to put the "how to make a reproduction using hardware that's not MMC5" guide inside the ROM so that it can't be separated. —[[User:Lidnariq|Lidnariq]] ([[User talk:Lidnariq|talk]]) 12:15, 24 June 2013 (MDT)
::::MMC5 has no registers outside of $5xxx. You could implement it such that writes to $5115 are mirrored to $C000 or whatever. You may also want to put the "how to make a reproduction using hardware that's not MMC5" guide inside the ROM so that it can't be separated. —[[User:Lidnariq|Lidnariq]] ([[User talk:Lidnariq|talk]]) 12:15, 24 June 2013 (MDT)
:::::Thank you; I think this can help. (I am not sure that the instructions should be inside of the ROM; I could put them in another file too which is in the same ZIP archive.) --[[User:Zzo38|Zzo38]] ([[User talk:Zzo38|talk]]) 16:16, 24 June 2013 (MDT)

Revision as of 22:16, 24 June 2013

Rare discrete logic

This table describes the mappers as they existed, as opposed to any obvious oversize extensions.

You probably don't actually want to use these.

iNES Chips Max PRG PRG bank size Max CHR CHR bank size Mirroring PRG RAM? Bus conflicts?
11/144 1 128 32 128 8 V/H hardwired No Yes
NINA-001 (34) 6 64 32 64 4 + 4 V hardwired Yes No
36 ? 128 32 128 8 V hardwired Unlikely Likely
38 2 128 32 32 8 V/H hardwired Impossible No
70 3 256 16 + 16F 128 8 V/H hardwired No Likely
72 4+speech 256 16 + 16F 128 8 V/H hardwired No Yes
77 4 512 32 32 + 6RAM 2 4 No Likely
78a 5 128 16 + 16F 128 8 V/H switchable No Yes
78b 3 128 16 + 16F 128 8 1 No Likely
79 2 64 32 64 8 V/H hardwired No No
86 3+speech 128 32 64 8 V/H hardwired Impossible No
87 2 32 32 8 V/H hardwired Impossible No
89 (2)† 128 16 + 16F 128 8 1 No Yes
92 5+speech 256 16F + 16 128 8 V/H hardwired No Yes
93 (2)† 128 16 + 16F 8‡ V/H hardwired No Yes
94 2 128 16 + 16F 8 V/H hardwired No Yes
96 3 128 32 32RAM 4 + 4F / 16 V/H hardwired No Likely
99 0* 40 8 + 24F 16 8 4 No No
101 2? 32 32 8 V hardwired Impossible No
140 3 128 32 128 8 V/H hardwired Impossible No
152 3 128 16 + 16F 128 8 1 No Likely
168 7 64 16 + 16F 64RAM 4F + 4 V hardwired No No
184 (3)† 32 32 4 + 4 V/H hardwired Impossible No

† Mappers 89, 93, and 184 exist as a single IC, however their functions are trivially described using a small number of 7400-series ICs, and likely contain multiple silicon dice that were wire bonded together in the same package.

‡ Mapper 93 is technically the same 89 other than mirroring, but it only commercially existed using 8kB of CHR-RAM

* the Vs System distributed its original games as five or six 8 KiB ROMs, and decoding on its mainboard allowed banking of CHR like CNROM. It is a little disingenuous to claim that 0 ICs were necessary for banking since the same functionality is not possible on a Famicom, however, banking was incrementally free.


Mapper Wizard

I don't really like the mapper wizard (for one thing it doesn't seem to mention how much PRG RAM you need, and doesn't have a lot of choices), which is one of the reasons why I made User:Zzo38/mapperlist. However, that list is incomplete; can you help with it? Perhaps more information would be useful in there too, such as the number of 74xx series ICs, etc, and then we can improve it and use that list of mappers to make up a lot of things, such as SQL queries to select one, or a wiki article listing them in various tables, etc. --Zzo38 (talk) 17:25, 23 June 2013 (MDT)

Have you seen User:Lidnariq/MMC3_Variants ? In any case, if you want more than 8KiB PRG-RAM, your only choices are MMC1 and MMC5. Period. Also, I'm really not clear what's up with the template stuff you've put on your userpage there; it makes it completely illegible. —Lidnariq (talk) 17:57, 23 June 2013 (MDT)
OK, I have seen it now, and that helps a bit too. Note that I mean in general; I don't only mean the program with 64K PRG RAM (which I was going to write a Z-machine interpreter for versions 1 to 3; however, MMC5 works too and makes some things easier to program in, although it is a more complicated mapper so it might discourage someone who want to make a cartridge of it; MMC5 is probably also needed if I extend it to version 4 and 5 of Z-machine). The reason the template stuff is used, is that you can easily add new fields when needed and then you can call it as a template from another template with a callback, to make tables and so on in the wiki, and it could be converted into other formats such as SQL and so on using external programs too. --Zzo38 (talk) 23:17, 23 June 2013 (MDT)
What exactly are you making that needs more than 8 KiB? Is it working memory or save memory? --Tepples (talk) 19:45, 23 June 2013 (MDT)
Working memory; it is a Z-machine interpreter (see above). However, note that when I mention the mapper list, I don't mean only for this program; I mean in general it can be useful for various purposes. However, if I make a different text adventure system for the Famicom (where the same authoring system can compile into Z-machine format), then a simple variant of UNROM (with 8K PRG RAM added and changed from CHR RAM to CHR ROM) should be sufficient (although some emulators might fail to support it anyways; looking at the FCEUX source codes it seems to fail to support such a variant of UNROM and I cannot find another discrete mapper doing such a thing). --Zzo38 (talk) 23:17, 23 June 2013 (MDT)
Actually, instead of UNROM, I could use MMC4 to emulate it but write the program in such a way that it works even if discrete logic is used to implement only the PRG RAM and the PRG ROM 16K bank switching and even if it has bus conflicts, but also works with MMC4. However, I don't know if there is a similar thing to be done with a game written to use MMC5 and converted to discrete logic. --Zzo38 (talk) 01:58, 24 June 2013 (MDT)
MMC5 has no registers outside of $5xxx. You could implement it such that writes to $5115 are mirrored to $C000 or whatever. You may also want to put the "how to make a reproduction using hardware that's not MMC5" guide inside the ROM so that it can't be separated. —Lidnariq (talk) 12:15, 24 June 2013 (MDT)
Thank you; I think this can help. (I am not sure that the instructions should be inside of the ROM; I could put them in another file too which is in the same ZIP archive.) --Zzo38 (talk) 16:16, 24 June 2013 (MDT)