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

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

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

 
 
 

日志

 
 

说说M1有关切VRAM的部分  

2010-02-03 23:59:58|  分类: FC网友经验 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

七月(784949562)  20:23:28
有关M1寄存器操作,不理解可以问我
维京猎人(413640314)  20:27:05
你说说M1有关切VRAM的部分
七月(784949562)  20:27:21
呃……你等下
七月(784949562)  20:28:59
$8000-9FFF:  [...C PSMM]
    C = CHR Mode (0=8k mode, 1=4k mode)
    P = PRG Size (0=32k mode, 1=16k mode)
    S = Slot select:
        0 = $C000 swappable, $8000 fixed to page $00 (mode A)
        1 = $8000 swappable, $C000 fixed to page $0F (mode B)
        This bit is ignored when 'P' is clear (32k mode)
    M = Mirroring control:
        %00 = 1ScA
        %01 = 1ScB
        %10 = Vert
        %11 = Horz

注意这个寄存器的C位,当它为1时,就是4KB模式……最大化看吧
七月(784949562)  20:30:00
一般游戏开始时,就会对这个寄存器进向设置,一般带有VROM的游戏数为1E,1F两个
七月(784949562)  20:31:55
   LDA #$0E ; 设置PROM模式为16KB,且驻存体映射到$C000-$FFFF,镜像为垂直模式(不同游戏在此处有些不同)

   STA $9FFF    ; 第0位写入寄存器
   LSR A
   STA $9FFF    ; 第1位写入寄存器
   LSR A
   STA $9FFF    ; 第2位写入寄存器
   LSR A
   STA $9FFF    ; 第3位写入寄存器
   LSR A
   STA $9FFF    ; 第4位写入寄存器(MAPPER 1 一次只能写入一位,且所有寄存器只用5位)

这些是没带VROM的格式,先凑合看着吧
七月(784949562)  20:33:39
理解后,我再说下面的吧,还早呢
维京猎人(413640314)  20:38:21
$0E是00001110
那写入是取最底位吗?为什么右移?
七月(784949562)  20:38:42
MAPPER 1 一次只能写入一位,且所有寄存器只用5位
维京猎人(413640314)  20:39:03
写入的次序是?
七月(784949562)  20:39:18
取最底位
七月(784949562)  20:39:37
0位才对
维京猎人(413640314)  20:39:56
写入的次序是不是:M低,M高,S,P,C
七月(784949562)  20:40:21
呵呵,是的
维京猎人(413640314)  20:40:48
了解
七月(784949562)  20:41:05
那么,继续
维京猎人(413640314)  20:41:12
你这样一说,那个mapper文档我就会看了
七月(784949562)  20:41:51
呃……看来你已理解了
维京猎人(413640314)  20:43:50
看,曹老是这样说M1的,(看后晕死)
曹老师

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没有这样的模式,你就很难修改了。


维京猎人(413640314)  20:44:52
M1和C1是不是一回事?
七月(784949562)  20:45:02
当然是一样了
维京猎人(413640314)  20:45:36
要是他像你这样说,我早就会了
七月(784949562)  20:45:41
她说的不完整……
七月(784949562)  20:46:10
,数据为0-7……这不对,数据应为:0-F
维京猎人(413640314)  20:46:23
他说的也十分的随意
七月(784949562)  20:47:30
有一个她说对了,就是C1有一种是驻留体在8000-BFFF的模式……
七月(784949562)  20:48:25
也许当时外星想汉化那个游戏,不巧,碰上这种模式……
维京猎人(413640314)  20:59:05
S是什么作用?指常驻和切页区吗?

swappable是什么意思?

fixed to page呢
七月(784949562)  20:59:52
那个啊
七月(784949562)  21:00:12
一定要设1哦,不然直切32KB
七月(784949562)  21:00:35
 
错了
七月(784949562)  21:00:58
为0时就是驻留体在8000-BFFF的模式……
维京猎人(413640314)  21:04:11
google上译
fixed to page的意思是固定页,swappable是热插拔
就是
fixed to page的意思是常驻,swappable是切页

维京猎人(413640314)  21:04:37
跟你说的一样了
七月(784949562)  21:05:17
呵呵,我表达能力差……
维京猎人(413640314)  21:05:49
那下一句:This bit is ignored when 'P' is clear (32k mode)

意思为:P为0忽略这位
七月(784949562)  21:06:29
不是,为0时就是32KB模式……直切32KB,做合卡时好用
维京猎人(413640314)  21:06:42
就是P=0时,忽略S位
那驻留是哪一段?
七月(784949562)  21:06:58
没用了,都切了
维京猎人(413640314)  21:07:49
就是从8000到FFFF全切
七月(784949562)  21:07:59
是的
维京猎人(413640314)  21:08:16
M有什么用?
七月(784949562)  21:08:30
镜像选项
七月(784949562)  21:08:42
V,H和单屏幕
维京猎人(413640314)  21:09:18
1ScA和1ScB是什么?
七月(784949562)  21:09:29
哦,你等下
七月(784949562)  21:10:59
 [  $2000  ][  $2000  ]
 [  $20000  ][  $2000  ]

 1ScA模式

七月(784949562)  21:11:12
另外那个我就不说了
维京猎人(413640314)  21:12:19
那用2005能办到,为什么要搞个B出来?
七月(784949562)  21:12:47
不知道……我没用过
维京猎人(413640314)  21:13:02
用m1可以将H,V改来改去,也不错..
七月(784949562)  21:13:23
多数MAPPER都支持这样改动

  评论这张
 
阅读(473)| 评论(0)
推荐 转载

历史上的今天

评论

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

页脚

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