A note about ROM nametables in Mappers 209/211

Discuss emulation of the Nintendo Entertainment System and Famicom.

Moderator: Moderators

Post Reply
Posts: 1189
Joined: Thu May 19, 2005 11:30 am

A note about ROM nametables in Mappers 209/211

Post by NewRisingSun » Wed Mar 28, 2018 8:47 am

iNES Mappers 209/211 support ROM nametables, but only when the PPU is reading.

ROM Nametables are active while the PPU is reading if:
  1. Extended Mirroring is active ($D000 bit $20s or $D001 bit $08s set) and not suppressed via Jumper (i.e. not Mapper 90), and
  2. enabled for all nametables if $D000 bit $40s is set, or for each nametable individually if that nametable 's $B00x bit $80s is the opposite of $D002 bit $80s.
While the PPU is writing however, the mapper hardware behaves as if condition 2 is false, so that even when ROM Nametables are active, writes to those nametables still land in the CIRAM bank specified via $B00x bit $01s, and will be visible if one of the other three nametables in the address space is set to map to the same CIRAM bank.

ROM nametables not being active during PPU writes is relevant for the game Tiny Toon Adventures 6 (original Mapper 211 version): if ROM nametables are active during writing, the initial text in the introduction ("Baabs is dreaming about becoming an actress. She is daydreaming that she has great courage, intelligence and power") will not be shown even as the letter printing sound effect is heard, and the text window will remain blank during those lines. Only BizHawk gets it right, Nestopia, FCEUX, puNES, Mesen and stock Nintendulator get it wrong, and RockNES does not support Mapper 211.

Posts: 815
Joined: Sun Feb 07, 2016 6:16 pm

Re: A note about ROM nametables in Mappers 209/211

Post by Sour » Wed Mar 28, 2018 4:53 pm

Thanks for posting this - I've changed it in Mesen and it seems to be working fine for the game you mentioned (still need to double-check with other games, though).

Would probably be a good idea to update the JY Company page on the wiki to mention this (since it doesn't seem to be mentioned anywhere?) Also, you talked about $D001 bit $08, but there is no reference to this flag on the wiki page either?

Post Reply