Talk:CPU memory map: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(Undo revision 17257 by 38.141.52.250 (talk))
Line 5: Line 5:


::Well, I'm not talking about the whole PowerPak. I'm only talking about one of the mappers used for it. The NSF player mapper. Actually, I think Kevtris' hardware NSF player does the same thing, and there may be others. The TNS line of NSF playing cartridges do not; they simply replace the table in the initially mapped high bank of the ROM, and expects it to remain fixed (or else it crashes). NSF players are the only application I can think of that really require this. Game ROMs always have their own bank-appropriate vector tables. NSFs are unique in that the data doesn't already have vectors (the player is expected to provide them, if needed by the implementation), and the specification permits paging that has to share space with the vectors. - [[User:Rainwarrior|Rainwarrior]] ([[User talk:Rainwarrior|talk]]) 22:11, 28 May 2015 (MDT)
::Well, I'm not talking about the whole PowerPak. I'm only talking about one of the mappers used for it. The NSF player mapper. Actually, I think Kevtris' hardware NSF player does the same thing, and there may be others. The TNS line of NSF playing cartridges do not; they simply replace the table in the initially mapped high bank of the ROM, and expects it to remain fixed (or else it crashes). NSF players are the only application I can think of that really require this. Game ROMs always have their own bank-appropriate vector tables. NSFs are unique in that the data doesn't already have vectors (the player is expected to provide them, if needed by the implementation), and the specification permits paging that has to share space with the vectors. - [[User:Rainwarrior|Rainwarrior]] ([[User talk:Rainwarrior|talk]]) 22:11, 28 May 2015 (MDT)
== DMC DMA accessible region ==
In the most recent edit by Pubby, this was added:
If using DMC audio:
*$C000-$FFF1 = DPCM samples
Where does $FFF1 come from?  According to the page [[APU DMC]], it says these 2 things:
*Sample address = %11AAAAAA.AA000000 = $C000 + (A * 64)
*The address is incremented; if it exceeds $FFFF, it is wrapped around to $8000.
Although the minimum sample address possible to write to $4012 appears to be $C000, it would appear by the second point that doing a wraparound could in fact access more DPCM samples stored at $8000.  Is this correct?  [[User:Ben Boldt|Ben Boldt]] ([[User talk:Ben Boldt|talk]]) 20:25, 15 February 2022 (UTC)

Revision as of 20:25, 15 February 2022

A mapper could switch just the vectors, but it would be very unusual. Do any?

In response to Myask's question in the 11011 edit summary, the PowerPak's NSF mapper does this. I don't know any other examples offhand, though. - Rainwarrior (talk) 15:45, 28 May 2015 (MDT)

Arguably the PowerPak is not a mapper but a metamapper. On the other hand, I wonder how deeply (if at all) the Powerpak can emulate itself. On that note, metamapper seems like a useful term...or just another word for multicart mapper.Myask (talk) 16:09, 28 May 2015 (MDT)
Well, I'm not talking about the whole PowerPak. I'm only talking about one of the mappers used for it. The NSF player mapper. Actually, I think Kevtris' hardware NSF player does the same thing, and there may be others. The TNS line of NSF playing cartridges do not; they simply replace the table in the initially mapped high bank of the ROM, and expects it to remain fixed (or else it crashes). NSF players are the only application I can think of that really require this. Game ROMs always have their own bank-appropriate vector tables. NSFs are unique in that the data doesn't already have vectors (the player is expected to provide them, if needed by the implementation), and the specification permits paging that has to share space with the vectors. - Rainwarrior (talk) 22:11, 28 May 2015 (MDT)

DMC DMA accessible region

In the most recent edit by Pubby, this was added:

If using DMC audio:

  • $C000-$FFF1 = DPCM samples

Where does $FFF1 come from? According to the page APU DMC, it says these 2 things:

  • Sample address = %11AAAAAA.AA000000 = $C000 + (A * 64)
  • The address is incremented; if it exceeds $FFFF, it is wrapped around to $8000.

Although the minimum sample address possible to write to $4012 appears to be $C000, it would appear by the second point that doing a wraparound could in fact access more DPCM samples stored at $8000. Is this correct? Ben Boldt (talk) 20:25, 15 February 2022 (UTC)