注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

深夜是徘徊在潮湿睫毛上的我的梦以及他的梦

是直到最后都无法放手的一种气息,是我们生命中最后的思念……

 
 
 

日志

 
 

mapper 1(翻译一下)  

2009-01-09 19:49:25|  分类: FC技术书籍 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
This mapper is used on numerous U.S. and Japanese games, including Legend of Zelda, Metroid, Rad Racer, Mega Man 2, and many others.
  8000h-FFFFh
    Bit 0  Serial data loaded to 5bit shift register (LSB=1st write)
    Bit 7  Clear 5bit shift register (1=Reset, next write will be "1st write")
On fifth write, data in shift register is copied to Register 0..3 (depending on upper address bits), and the shift register is automatically cleared.
  8000h-9FFFh  Register 0 - Configuration Register
    Bit0-1 Name Table Mirroring
      0,1  Single-Screen (BLK0 only)
      2    Two-Screen Vertical Mirroring
      3    Two-Screen Horizontal Mirroring
    Bit2-3 PRG-Switching Mode (usually 3)
      0,1  Switchable 32K Area at 8000h-FFFFh (via Register 3)
      2    Switchable 16K Area at C000h-FFFFh (via Register 3)
           And Fixed  16K Area at 8000h-BFFFh (always 1st 16K)
      3    Switchable 16K Area at 8000h-BFFFh (via Register 3)
           And Fixed  16K Area at C000h-FFFFh (always last 16K)
    Bit4   VROM Switching Size (for carts with VROM)
      0    Swap 8K of VROM at PPU 0000h
      1    Swap 4K of VROM at PPU 0000h and 1000h
  A000h-BFFFh  Register 1
    Bit4-0 Select 4K or 8K VROM bank at 0000h (4K and 8K Mode, see Reg0/Bit4)
  C000h-DFFFh  Register 2
    Bit4-0 Select 4K VROM bank at 1000h (used in 4K Mode only, see Reg0/Bit4)
  E000h-FFFFh  Register 3
    Bit3-0 Select 16K or 2x16K ROM bank (see Reg0/Bit3-2)
    Bit4   Unused ?
Initially 1st and last 16K are mapped to 8000h and C000h.
In 32K PRG and 8K VROM mode, bank numbers specified in steps of two.

Register 3 is restricted to sixteen 16K banks, cartridges with more than 256K PRG ROM use Bit4 of Register 0-2 to expand the available memory area:
 Register 0, Bit 4
  <1024K carts>
   0 = Ignore 256K selection register 1
   1 = Acknowledge 256K selection register 1
 Register 1, Bit4 - 256K ROM Selection Register 0
  <512K carts>
   0 = Swap banks from first 256K of PRG
   1 = Swap banks from second 256K of PRG
  <1024K carts with bit 4 of register 0 off>
   0 = Swap banks from first 256K of PRG
   1 = Swap banks from third 256K of PRG
  <1024K carts with bit 4 of register 0 on>
   Low bit of 256K PRG bank selection
 Register 2, Bit4 - 256K ROM Selection Register 1
  <1024K carts with bit 4 of register 0 off>
   Store but ignore this bit (base 256K selection on 256K selection Reg 0)
  <1024K carts with bit 4 of register 0 on>
   High bit of 256K PRG bank selection


Reportedly some MMC1 carts have 16K SRAM, of which only 8K are battery backed, no idea how/where the additionally 8K are accessed, and no idea which 8K are battery backed and which are not (?).

-----------------------------------------------------------------------------------------------------------------------------

 

这mapper被使用众多美国和日本的游戏,包括塞尔达传说,银河,拉德赛车,洛克人2 ,以及其他。

 8000h-FFFFh

     0位串行数据加载到5位移位寄存器( LSB=第1 写)

     7位清除 5位移位寄存器( 1 =重置,下一写入将是“第1写” )

 

到了第5位,移位寄存器中的数据复制到寄存器0 .. 3 (取决于上地址位)并且移位寄存器是自动清除。

 8000h-9FFFh  0 -寄存器

     位0 - 1名称表镜像

       0,1单屏( 仅BLK0)

       2    双屏幕垂直镜像

       3    双屏幕水平镜像

     位2 - 3模块PRG开关模式(通常是3 )

       0,1  开关32KB区8000h - FFFFh (通过寄存器3 )

       2    开关16KB区C000h - FFFFh (通过寄存器3 )

            同时固定16KB区8000h - BFFFh (总是第一个16KB )

       3    开关的16KB区8000h - BFFFh (通过寄存器3 )

            同时固定的16KB区C000h - FFFFh (总是最后的16KB )

     位4   VROM开关尺寸(为了带VROM的盒卡 )

       0    互换8K的VROM在PPU 0000h

       1    互换的4K的VROM在PPU 0000h和1000h

   A000h-BFFFh  寄存器1

     位4-0选择4K或8K  VROM堆(bank)在0000h ( 4K和8K模式,见Reg0/Bit4 )

   C000h-DFFFh  寄存器2

     Bit4-0选择4K VROM堆(bank)在1000h (只使用在4K模式,见Reg0/Bit4 )

   E000h-FFFFh  寄存器3

     Bit3-0选择的16KB或2x16K堆(bank)(见Reg0/Bit3-2 )

     Bit4   未使用的?

 

最初,第一和最后的16KB映射到8000h和C000h 。

在32K模块PRG和8K VROM模式,堆(bank)号码指定步骤2 。

 

寄存器3只限于16个16KB堆(bank),盒带超过256K PRG ROM使用寄存器0-2的位4扩大可用内存方面:

寄存器0,位 4

   <1024K 盒带>

     0 =忽略256K选择寄存器1

     1 =确认256K选择寄存器1

  寄存器1 , 位4 - 256KROM选择寄存器0

   <512K盒带>

    0 =互换堆(bank) PRG第一256K

    1 =互换堆(bank) PRG第二256K  

   <1024K盒带有寄存器0的位4 关>

    0 =互换堆(bank) PRG第一256K

    1 =互换堆(bank) PRG第三256K

   <1024K盒带有寄存器0的位4 开>

    低位的256KPRG堆(bank)选择

  寄存器2 , 位4 - 256K PRG选择寄存器1

   <1024K盒带有寄存器0的位4 关>

    存储,但忽略此位(基于256K选择256K选择寄存器0 )

   <1024K盒带有寄存器0的位4 开>

    高位的256KPRG堆(bank)选择

 

 

据报道,一些MMC1盒带有16KB的SRAM ,其中只有8K是电池备份,不知道/在另外8K访问,并没有想到这是电池支持8K或不( ? ) 。

--------------------------------------------------------------------

曹老师

C1跟C3一样,1C000-1FFFF,映射$C000-$FFFF是固定的(驻留体)。能变动的只是8000-BFFF。一次切换16K(程序),数据为0-7,共8个16K=128K(1M)。端口是$FFFF。输入数据的时候右移4次,共输入5次,每一次一个bite。如你要切01体,

输入的数据是$01=%0 0 0 0 0 0 0 1,第一次写$FFFF为1,右移,第二次写0.。。。共写5次。这样你就把1M中的4000-7FFF映射到CPU的8000-BFFF。你可能只是想修改程序,因为C1已经没有decode了。那么你只要看到0-7共8个16K的体,其他都可以不管它了。这样可以直接写一个C3的程序来替代C1。

不过C1有一种是驻留体在8000-BFFF的模式,C3没有这样的模式,你就很难修改了。


  评论这张
 
阅读(764)| 评论(2)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017