Talk:NES 2.0 submappers

From NESdev Wiki
Revision as of 08:18, 19 January 2014 by Zzo38 (talk | contribs)
Jump to navigationJump to search

I like this. I have written some ideas relating to this (as a user subpage) but your article is much better, but incomplete so we can improve it. --Zzo38 14:39, 23 September 2012 (MDT)

iNES Mapper 078

My point, although poorly represented, is that no existing game needs mapper 78 to support hard-wired mirroring. It is not necessary for original games, and it is not necessary for homebrew: User:Lidnariq/Discrete Logic Table shows that mappers 70 and 72 are equally capable. Thus there is no reason to allocate a submapper. —Lidnariq (talk) 12:14, 6 April 2013 (MDT)

MMC5

Should there perhaps be MMC5 submapper for CL and SL mode? (See also my comment on the MMC5 pinout) If there are significant differences between MMC5 and MMC5B (it says they are unknown; I am guessing there aren't any significant differences), should there also be submapper codes for this? --Zzo38 (talk) 14:11, 28 April 2013 (MDT)

No games were known released in CL mode. For the most part, I'm trying to not allocate a submapper until I can both describe the differences and describe a need for it. ... which makes me have second thoughts about the CNROM allocation; if the game cares about those diodes it'd be m185. —Lidnariq (talk) 14:27, 28 April 2013 (MDT)
Well, the mapper does support CL, even if no existing games use it; it means that a homebrew game can use CL if it ever seems useful for whatever arcane reason (even CL games would probably work fine with SL though, but maybe CL would have other effects; I don't know if it would scroll only the colors or what). --Zzo38 (talk) 18:34, 28 April 2013 (MDT)

MMC3

Ok, NesCartDB knows of no games that use MMC3 and hardwired 2 screen mirroring, despite its jumper-ability on TEROM and TFROM. Was this supposed need an artifact of splitting off iNES Mapper 206? Also, am I correct in thinking that we believe that all games work correctly with MMC3C style interrupts?

Given this ... what behavior does mapper 4 need submappers for? Should I roll my proposal over kevtris's, replace it with a subset that only handles MMC3A vs MMC3C, or just replace the entire section with an explanation about how why no submappers are necessary? —Lidnariq (talk) 22:13, 30 April 2013 (MDT)

Add the things that the jumpers on the mapper support, even if you know of no games that use it. Anyways, even if all of the games you know about work with MMC3C interrupts, some might not, and there should be a way to indicate this difference since it still can affect things. --Zzo38 (talk) 22:29, 30 April 2013 (MDT)

"Don't care" bits

I see that some submapper numbers say to use 0 for don't care. I might suggest that the Mapper/Number and Mapper/NumberEx fields of .nes.ini to be used to indicate this more explicitly; using the Number you can specify multiple submapper numbers, with vertical bars, so if all combinations are specified then it means "don't care". --Zzo38 (talk) 22:43, 30 April 2013 (MDT)

iNES Mapper 185

Nestopia's internal database instead implements mapper 185 as two trinary numbers: D0 and D1 must be low/high/don't care.

I wonder if that's better?

For that matter, I've never heard of any 16kiB CHR m185 games, nor any games that have only one don't care line. Maybe simply allocating four submappers corresponding to the LSBs is better.—Lidnariq (talk) 20:09, 16 January 2014 (MST)

Does expansion volume warrant a separate field in the header?

You say: "Furthermore, different 163-using PCBs also used a different resistor to change the relative volume of the expansion audio relative to the internal 2A03 audio. It is unclear if this variation warrants a submapper." I may suggest that you could make another header field (perhaps high six bits of byte 12?) for expansion volume. --Zzo38 (talk) 15:04, 18 January 2014 (MST)

Further modifying NES2.0 is uncalled for. The question is whether the information belongs at all, not whether it belongs in the submapper field. (If it does belong, this is exactly what the submapper field is for) —Lidnariq (talk) 15:11, 18 January 2014 (MST)
If it doesn't belong in the NES 2.0 header at all, it can go in the .NES.INI instead, I suppose. However, depending on exactly what groups of cartridges use these different resistors, it might or might not be useful as a submapper number. Didn't I read somewhere that the actual use of different resistors in different cartridges is more confusing than specified here, or something like that? --Zzo38 (talk) 15:36, 18 January 2014 (MST)
The header needs to describe the behavior of the cartridge PCB. Something that is inside the cartridge and cross-cuts across multiple mappers belongs in a dedicated field. Examples of cross-cutting concerns include memory sizes (bytes 4-5, 8-11), mirroring (byte 6 bits 0 and 3), NTSC/PAL/Vs./PC10 (byte 7 bits 0-1 and bytes 12-13), etc. The next step is to determine whether mix volume is a cross-cutting concern or whether it's exclusive to the N163. Do all MMC5 games using expansion audio have the same volume relative to the 2A03 channels? Do all Sunsoft 5B games? Do all VRC6 games? (Among synths listed in the NSF spec, FDS and VRC7 have one cartridge each, so we need not concern ourselves with those.) --Tepples (talk) 18:23, 18 January 2014 (MST)
Correct; this is my reason to think if a expansion audio needs a separate field or not. If there is a separate header field, then it should be defined for VRC7 too (for consistency, and that someone might want to write a new program using different mixer volume) (and that emulators expecting a NES 2.0 header on the BIOS, will allow it to work with FDS too). --Zzo38 (talk) 19:08, 18 January 2014 (MST)
All three VRC6 games use the same module with the 6-bit R-2R DAC and mixing resistor. The Sunsoft 5B is a singleton (Gimmick!). This leaves only MMC5 and the 163, but no-one's ever put an oscilloscope on the four MMC5 audio lines to find out exactly what the four pins do, or exactly what variation in resistors effect.
So, first off: what ExROM says about the resistors is wrong; R1,R2,R4, and C4 are clearly all part of the audio path on the HVC-EWROM, HVC-ETROM, and HVC-EKROM boards. HVC-ELROM has a substantially different layout, but since it has the same values of resistors and capacitors, it seems likely that it also supports expansion audio.
  • The vast majority of games use the resistor and capacitor values that are silkscreened on the PCB: 15kΩ/15kΩ/10kΩ/0.1µF. This includes Sangokushi 2, Suikoden: Tenmei no Chikai, Nobunaga no Yabou: Sengoku Gunyuuden, L'Empereur, Ishin no Arashi, Daikoukai Jidai, Uchuu Keibitai SDF, and Gunsight.
  • A few games replace R2 with a 6.8kΩ resistor instead of 15kΩ, including Nobunaga no Yabou: Bushou Fuuunroku, Shin 4 Nin Uchi Mahjong: Yakuman Tengoku, Royal Blood, and Just Breed.
  • In a current NSF archive, only three games seem to use MMC5's audio: Just Breed, Metal Slader Glory, and Shin 4 Nin Uchi Mahjong. The two of those three that are in NESCartDB both use a 6.8k resistor.
  • We don't know what difference is volume is caused by changing R2.
So, my conclusion: there could be two different mixing volumes for MMC5, but most likely only one was ever used. —Lidnariq (talk) 22:39, 18 January 2014 (MST)
Perhaps someone should figure out what exactly R2 affects (for this purpose, there is probably no need to figure out the other resistors). Even if only one is used, the other way exists and should be specified, in my opinion which is to include all possibilities even if some aren't used. If R2 is figured out and does affect mixing volumes in the way which will become known, then this should be specified. If you are using submapper numbers to indicate the difference, you can assign bit2 of the MMC5 submapper number; set for 15k and clear for 6.8k. (This isn't necessary if nothing applicable to the audio is affected by R2, though.) --Zzo38 (talk) 01:18, 19 January 2014 (MST)