It is currently Thu Oct 19, 2017 6:44 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 5 posts ] 
Author Message
PostPosted: Mon Jul 22, 2013 4:09 pm 
Offline
User avatar

Joined: Sun Sep 19, 2004 9:28 pm
Posts: 3192
Location: Mountain View, CA, USA
Does anyone happen to know which PRG-ROM banks get mapped to $8000-9fff, $a000-bffff, $c000-dfff, and $e000-ffff with VRC2 (and possibly VRC4) by default/at power-on?

It's not really made clear in the Wiki...

http://wiki.nesdev.com/w/index.php/VRC2

Edit: Updated, since I found some other information that seemed to conflict with my assumptions, so now I'm uber-confused. :P


Top
 Profile  
 
PostPosted: Mon Jul 22, 2013 6:24 pm 
Online

Joined: Sun Apr 13, 2008 11:12 am
Posts: 6284
Location: Seattle
Is there reason to think the changeable banks have a default, instead of just being an analog effect?
Anyway, VRC2 is 8+8+16F banking; VRC4 is "same as MMC3" PRG banking.
Would adding "Banks sections" address your question?


Top
 Profile  
 
PostPosted: Mon Jul 22, 2013 7:19 pm 
Offline
User avatar

Joined: Mon Apr 04, 2011 11:49 am
Posts: 1905
Location: WhereverIparkIt, USA
All you need to know is that $C000-FFFF is PERMANENTLY fixed to the last 16KB of PRG-ROM. That's all you really need since it guarantees vectors are where they need to be.

Although you're right, the wiki doesn't really explain this well. It could benefit from a 'banks' section similar to MMC3.

Disch's docs explain it fairly well with this diagram. The -1 and -2 denote fixed to the last and second to last 8KB bank respectively. The registers at $800x and $A00x control their respective banks. You SHOULD assume these start up UNKNOWN. Relying on whatever they may start up and you're asking for trouble. Even if the hardware is known startup value, it hasn't been documented; so emulators are sure to get it wrong.

Code:
PRG Setup:
--------------------------

      $8000   $A000   $C000   $E000 
    +-------+-------+-------+-------+
    | $8000 | $A000 | { -2} | { -1} |
    +-------+-------+-------+-------+

_________________
If you're gonna play the Game Boy, you gotta learn to play it right. -Kenny Rogers


Top
 Profile  
 
PostPosted: Mon Jul 22, 2013 8:07 pm 
Offline
User avatar

Joined: Sun Sep 19, 2004 9:28 pm
Posts: 3192
Location: Mountain View, CA, USA
infiniteneslives wrote:
All you need to know is that $C000-FFFF is PERMANENTLY fixed to the last 16KB of PRG-ROM. That's all you really need since it guarantees vectors are where they need to be.

This is what I needed to know, actually. :-)

And yeah, these pages really need a Banks section (similar to the MMC3 wiki) explaining what's hard-wired or mapped to what. I can't stress the importance of this enough, particularly when doing REing of games. I tend to assume the last PRG bank is what's most relevant (mainly because of the 6502 vectors), but not all the mappers are like that.


Top
 Profile  
 
PostPosted: Tue Jul 23, 2013 11:01 am 
Offline
User avatar

Joined: Wed Dec 06, 2006 8:18 pm
Posts: 2801
The other issue is that different batches of VRC2 or VRC4 may have different power up characteristics anyway. Disch's docs usually mention if a mapper expects a certain power-up state and the games that fail without it. Atleast I remember one such case like that.


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 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