Need help for MMC5 advanced features

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Need help for MMC5 advanced features
by on (#111829)
I found mmc5:
The ability to use different CHR banks for background and 8x16 sprites.

and I want to know how to use different CHR banks for background.
anyone konw the features,is there a example exist.
Re: Need help for MMC5 advanced features
by on (#111833)
If you're looking for a commercial game that uses that feature, Castlevania III uses it very briefly in the second quest to add some new enemies. There are passwords that start you on the second quest.
Otherwise, go find some mapper documentation.
Re: Need help for MMC5 advanced features
by on (#111840)
I thought CV3 uses it all the time? Anyway, there is a mapper document you can look at attached here.
Re: Need help for MMC5 advanced features
by on (#111847)
I don't think it is an "advanced feature", it's more like a very basic feature of the MMC5.

Doing the same trick is possible on any mapper with CHR-ROM, but it requires two very well timed writes to CHR-Banking register per scanline, while on the MMC5 this "bankswitching" is done automatically.
Re: Need help for MMC5 advanced features
by on (#111857)
Bregalad wrote:
while on the MMC5 this "bankswitching" is done automatically.

how to do it?
For example,I want to show 960 different titles in a screen.(Usually only show 256 titles).
Re: Need help for MMC5 advanced features
by on (#111862)
If you want to show all tiles unique, there are two ways to do it:
  1. Sprite 0 or scanline interrupts triggering a tile bank change during hblank. This has been used since MMC1 if not earlier for title screens and is seen in, for example, Smash TV's title screen.
  2. Use the MMC5's third nametable to specify the attribute and top 6 bits of the tile number. This "ExGrafix" mode is exclusive to the MMC5 and is the only way to properly show a box of ideographic text without either CHR RAM, precomposing all sentences, or using huge pixels as in Jing Ke Xin Zhuan (荊軻新傳).
Re: Need help for MMC5 advanced features
by on (#111866)
tepples wrote:
Sprite 0 or scanline interrupts triggering a tile bank change during hblank. This has been used since MMC1 if not earlier for title screens and is seen in, for example, Smash TV's title screen.


If you use something with smaller than 4KB CHR banks the timing doesn't need to be as precise. With something like MMC3 and using 2KB background banks you could just swap banks one or few scanlines before the switch so long as the tiles at the seam are from different banks.