NESASM can be kinda weird sometimes... I believe that the .bank statements are mandatory every 8KB, so maybe including a 32KB CHR file at once might not work. I can't tell for sure, since I don't use this assembler, so hopefully someone else will confirm this.
raydempsey wrote:Question: Under the settings I have, what bank numbers represent which sections of my tiles.chr? For example, how could I take the information at $4000-$43FF of my tiles.chr and bank switch that into the PPU at say, PPU $1000-$13FF?
You select the target location for the tiles by writing to $8000. If your goal is to map the tiles to $1000-$13FF, that would mean that you have the second pattern table broken up in 4 1KB chunks, and you should set the lower 3 bits of the $8000 write to 010 (2), to tell the mapper you'll be mapping tiles into the first 1Kb slot. Then simply write the bank index to $8001. Since you want the bank located $4000 bytes into the CHR file, and each bank is 1KB ($400 bytes) large, the bank number is $4000 / $400 = $10, or 16 in decimal. When bankswitching 2KB CHR banks, the lower bit of the bank index is ignored. This means that to select the third 2KB bank, you'll not be writing 3 to $8001, you'll write 6, because the banks are twice as large as the 1KB ones.
All of this is written in the wiki page, be sure to check it out if you haven't already: http://wiki.nesdev.com/w/index.php/MMC3