Talk:Comparison of Nintendo mappers: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
No edit summary
 
(6 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== 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.
{| class="tabular sortable"
! iNES || Chips || Max PRG || PRG bank size || Max CHR || CHR bank size || Mirroring || PRG RAM? || Bus conflicts?
|-
| [[iNES Mapper 011|11]]/[[iNES Mapper 144|144]] || 1 || 128 || 32 || 128 || 8 || V/H hardwired || No || Yes
|-
| [[NINA-001]] ([[iNES Mapper 034|34]]) || 6 || 64 || 32 || 64 || 4 + 4 || V hardwired || Yes || No
|-
| [[iNES Mapper 036|36]] || ? || 128 || 32 || 128 || 8 || V hardwired || Unlikely || Likely
|-
| [[iNES Mapper 038|38]] || 2 || 128 || 32 || 32 || 8 || V/H hardwired || Impossible || No
|-
| [[iNES Mapper 070|70]] || 3 || 256 || 16 + 16F || 128 || 8 || V/H hardwired || No || Likely
|-
| [[iNES Mapper 072|72]] || 4+speech || 256 || 16 + 16F || 128 || 8 || V/H hardwired || No || Yes
|-
| [[iNES Mapper 077|77]] || 4 || 512 || 32 || 32 + 6RAM || 2 || 4 || No || Likely
|-
| [[iNES Mapper 078|78a]] || 5 || 128 || 16 + 16F || 128 || 8 || V/H switchable || No || Yes
|-
| [[iNES Mapper 078|78b]] || 3 || 128 || 16 + 16F || 128 || 8 || 1 || No || Likely
|-
| [[iNES Mapper 079|79]] || 2 || 64 || 32 || 64 || 8 || V/H hardwired || No || No
|-
| [[iNES Mapper 086|86]] || 3+speech || 128 || 32 || 64 || 8 || V/H hardwired || Impossible || No
|-
| [[iNES Mapper 087|87]] || 2 || 32 ||  || 32 || 8 || V/H hardwired || Impossible || No
|-
| [[iNES Mapper 089|89]] || (2)† || 128 || 16 + 16F || 128 || 8 || 1 || No || Yes
|-
| [[iNES Mapper 092|92]] || 5+speech || 256 || 16F + 16 || 128 || 8 || V/H hardwired || No || Yes
|-
| [[iNES Mapper 093|93]] || (2)† || 128 || 16 + 16F || 8‡ || || V/H hardwired || No || Yes
|-
| [[iNES Mapper 094|94]] || 2 || 128 || 16 + 16F || 8 || || V/H hardwired || No || Yes
|-
| [[iNES Mapper 096|96]] || 3 || 128 || 32 || 32RAM || 4 + 4F / 16 || V/H hardwired || No || Likely
|-
| [[iNES Mapper 099|99]] || 0* || 40 || 8 + 24F || 16 || 8 || 4 || No || No
|-
| [[iNES Mapper 101|101]] || 2? || 32 || || 32 || 8 || V hardwired || Impossible || No
|-
| [[iNES Mapper 140|140]] || 3 || 128 || 32 || 128 || 8 || V/H hardwired || Impossible || No
|-
| [[iNES Mapper 152|152]] || 3 || 128 || 16 + 16F || 128 || 8 || 1 || No || Likely
|-
| [[iNES Mapper 168|168]] || 7 || 64 || 16 + 16F || 64RAM || 4F + 4 || V hardwired || No || No
|-
| [[iNES Mapper 184|184]] || (3)† || 32 || || 32 || 4 + 4 || V/H hardwired || Impossible || No
|}
† Mappers [[iNES Mapper 089|89]], [[iNES Mapper 093|93]], and [[iNES Mapper 184|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 [[iNES Mapper 093|93]] is technically the same [[iNES Mapper 089|89]] other than mirroring, but it only commercially existed using 8kB of CHR-RAM
<nowiki>*</nowiki> 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 ==
== Mapper Wizard ==


Line 65: Line 4:


: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. —[[User:Lidnariq|Lidnariq]] ([[User talk:Lidnariq|talk]]) 17:57, 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. —[[User:Lidnariq|Lidnariq]] ([[User talk: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). 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. --[[User:Zzo38|Zzo38]] ([[User talk:Zzo38|talk]]) 23:17, 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. --[[User:Zzo38|Zzo38]] ([[User talk: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? --[[User:Tepples|Tepples]] ([[User talk:Tepples|talk]]) 19:45, 23 June 2013 (MDT)
:What exactly are you making that needs more than 8 KiB? Is it working memory or save memory? --[[User:Tepples|Tepples]] ([[User talk: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. --[[User:Zzo38|Zzo38]] ([[User talk:Zzo38|talk]]) 23:17, 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). --[[User:Zzo38|Zzo38]] ([[User talk: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. --[[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)
:::::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)

Latest revision as of 03:05, 15 August 2013

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)