【小发现】FDS转NES的难点
前段时间心血来潮,试着研究把一个FDS游戏转换成NES格式,结果不出意料的失败了;不过我从中吸取出了几个FDS系统的特点,因为我不是专业研究FC的,充其量也只算业余爱好,各位看个乐呵就行。
1、FDS BIOS可不是只有加载磁盘内容那么简单,它为了进一步增大磁盘的可用容量还包含了控制器读取、填充VRAM等常见的代码,开发者想要调用可以直接call过去,在当年容量寸土寸金的年代可以帮开发者在程序省下很多珍贵的Byte(想想当年老任是怎么把超级马里奥1整整塞进32KB+8KB的FC卡带里面的,你就可以理解为什么他们会这么做了......);并且BIOS还会检测磁碟机系统电池的电量,我试着把BIOS的内容塞进最后一个8KB bank,然后不出意外的出现了BATTERY ERROR,而且我找不到call的地方。可能唯一的解决方案就是重新写一个BIOS放进去,同时还要将读盘的代码换成切Bank的;而且还要找到这个游戏CALL BIOS的地方然后把地址一个个换掉......
(不过《银河号》改版《Zanac-Zanac》的转换工具不仅需要FDS版和NES版,还需要一个FDS BIOS,我猜这个版本是直接拿BIOS转换成卡带可用的格式的;这个改版可以选择FDS版和NES版,有意思。)
2、FDS的内存结构是32KB WRAM+8KB 固定Bank,有的磁碟机游戏还会实时往$6000-$DFFF写入内容,这也决定了只有MMC5可以完美复现磁碟机读盘的结构;老外的《VS越野摩托》的转换版就是用的是MMC5;不过盗版商当年可没有MMC5这种东西(最接近的可能就是JY公司的Mapper 90了,但他们似乎只自己用),所以他们就针对游戏实际切换内容的内存结构去专门做兼容Mapper;典型的例子就是《梦工厂》的转换版,他们搞了一个特别复杂的内存结构去兼容。

浙公网安备 33010602011771号