It is currently Sun Oct 22, 2017 3:15 am

All times are UTC - 7 hours





Post new topic Reply to topic  [ 5 posts ] 
Author Message
 Post subject: Help with MMC3 $8000.7
PostPosted: Sat Sep 24, 2005 6:33 pm 
Offline
User avatar

Joined: Mon Sep 27, 2004 2:13 pm
Posts: 1667
Location: .ma.us
Could somebody please explain $8000.7 in detail?

"When set, does an effective XOR of 1000h with the CHR addresses." -Kevtris

What does this mean? Which CHR addresses?

Thanks


Top
 Profile  
 
 Post subject:
PostPosted: Sat Sep 24, 2005 7:01 pm 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 10066
Location: Rio de Janeiro - Brazil
This is the place where the tiles you use to draw the screen are. The 8KByte chunk at the beginning of the PPU memory ($0000-$1FFF) that holds the pattern tables.

MMC3 bankswitching divides one of the 4K halfs in 2 parts and the other 4K in 4 parts. The bit you asked about lets you choose wich one you want to divide in 2 and the other one is diveded in 4 pieces.

In the mapper document, you can see that by default, the first page is divided in 2 pieces and the second is divided in 4 pieces. If you set that bit, you invert this.

At least this is what I understood from the document...


Top
 Profile  
 
 Post subject:
PostPosted: Sat Sep 24, 2005 7:02 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19115
Location: NE Indiana, USA (NTSC)
It affects how the MMC3 handles pattern table accesses.

One setting treats the CHR bank registers as
$0000 (2 KB), $0800 (2 KB), $1000 (1 KB), $1400 (1 KB), $1800 (1 KB), $1C00 (1 KB)
SMB3 uses this.

The other setting treats the CHR bank registers as
$1000 (2 KB), $1800 (2 KB), $0000 (1 KB), $0400 (1 KB), $0800 (1 KB), $0C00 (1 KB), in that order
Kirby uses this.


Last edited by tepples on Sat Sep 24, 2005 7:03 pm, edited 1 time in total.

Top
 Profile  
 
 Post subject:
PostPosted: Sat Sep 24, 2005 7:02 pm 
Offline
User avatar

Joined: Wed Nov 10, 2004 6:47 pm
Posts: 1845
When set... when the NES requests patterns at $1xxx, the cart returns patterns at $0xxx... likewise when the NES requests patterns at $0xxx, the cart returns patterns at $1xxx.

In practice... this allows the game to switch which pattern table has 2k banks and which has 1k banks. By default (that bit off), the right pattern table (typically sprites -- especially considering the way MMC3's IRQ counter works) has 1k swappable banks, and the left pattern table (BG) has 2k banks.

If the game wanted to have sprites 2k banks and BG 1k... it couldn't flip the pattern selection bits in $2000.3 and $2000.4 without breaking MMC3's IRQ counter operation -- so the game can flip on MMC3's $8000.7 bit to have the same effect.

You cannot manipulate $8000.7 to get all 1k banks... it won't work. As soon as you change the state of $8000.7 it will appear as though the pattern tables have instantly "switched"


edit -- pfft... 2 other people replied in the time I typed my reply XD hahaha


Top
 Profile  
 
 Post subject:
PostPosted: Sun Sep 25, 2005 7:01 am 
Offline
User avatar

Joined: Mon Sep 27, 2004 2:13 pm
Posts: 1667
Location: .ma.us
Thanks everybody I understand now


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 5 posts ] 

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group