It is currently Wed Dec 13, 2017 3:50 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 2 posts ] 
Author Message
PostPosted: Fri Feb 04, 2005 4:19 pm 
Offline
User avatar

Joined: Tue Dec 21, 2004 8:35 pm
Posts: 600
Location: Argentina
Im using 03FFFH of PPU Ram (plain array data) and im wraping from that value. Wich i think its correct, at least nestress give me ok on wraping (not very dificult to do).

But tell me if im doing right:

According to InesHeader and Mirroring bit, im mirroring the name tables (maybe its easier to change a pointer), but im actually really mirroring (write to $2413 -> 2x13).

The problem is that when mirroring all its OK with 1942, but for Battle City the graph (bk) are not displayed (the title screen), and some other errors in other roms. This not happen when i dont mirror.

What i want to mean is that maybe a game its using Single Screen or something like that, "cart.nes" dont VScroll Correctly.

So if one of these roms are using single mirroring, how i do to detect that? there is no bit info in InesHeader that say that. NesTech.doc says that a single screen mirroring game use mappers, but i cant any in the list of Fayzullin doc that says "single screen".

I thought maybe it was implicited by a 1 ChrRom in InesHeader, but 1942 use 1 chr rom and Battle City, too. So i have to activate/deactivate the future (mirroring) to run this games.

Any help?

_________________
ANes


Top
 Profile  
 
PostPosted: Fri Feb 04, 2005 5:17 pm 
Offline
User avatar

Joined: Wed Nov 10, 2004 6:47 pm
Posts: 1845
Anes wrote:
According to InesHeader and Mirroring bit, im mirroring the name tables (maybe its easier to change a pointer), but im actually really mirroring (write to $2413 -> 2x13).


Well... there's still 2 nametables on the NES -- even if the game uses single screen mirroring, it likely still uses both nametables. An example of this is RC Pro Am... which uses Single Screen mirroring by putting the racetrack in one nametable, and keeping the statusbar in the other nametable... then midframe it switches which nametable is being mirrored.

You're right about it being easier with just changing a pointer. The method I have is pretty simple:

I have 4 pointers for each nametable addressing area (accessed through ppu $2000, $2400, $2800, and $2C00). I then have 2k elsewhere which I have those pointers point to -- depending on the current mirroring mode. When the game changes mirroring modes, the only work I have to do is change my 4 pointers so that they point to the 2k differently.

Quote:
So if one of these roms are using single mirroring, how i do to detect that? there is no bit info in InesHeader that say that. NesTech.doc says that a single screen mirroring game use mappers, but i cant any in the list of Fayzullin doc that says "single screen".


It is set through mappers. MMC1 has single screen mirroring capabilites (used in RC Pro Am... and I think Conflict, and other games). I wouldn't trust Marat's mapper info... personally... I use kevtris' mapper docs whenever applicable (http://www.tripoint.org/kevtris/mappers/mappers.html). If you check the MMC1 documentation, you can see that the mirroring mode is set through the $8000-$9FFF register range. You'll note that it has 2 seperate single-screen mirroring modes -- this is so it can use both nametables. A write of $00 would do single-screen mirroring with nametable A... and a write of $01 would mirror nametable B.


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

All times are UTC - 7 hours


Who is online

Users browsing this forum: krzysiobal and 6 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