光明之魂2吧 关注:11,312贴子:323,292
  • 9回复贴,共1

光明之魂2ROM文件扩容和字库扩容教程

取消只看楼主收藏回复

首先应该了解的是,游戏中使用的文字、符号、标志等其实是一张张图片,而字库的作用就是将这些图片依次编号并存储在ROM的指定区域中,当需要使用时直接按照对应编号调用即可。因此一旦需要使用字库中不存在的文字、符号或标志时,便需要对字库进行扩容。
光明之魂2的字库图片数据是紧密排列的(没有足够的空位),为了避免字库扩容时覆盖ROM中的一些重要数据而导致不必要的BUG,一般会对ROM文件进行扩容以获取更多的可用空间。
工具准备:CrystalTile2(简称CT2)、VisualBoyAdvance模拟器(简称VBA)、Photoshop


IP属地:浙江1楼2020-06-27 16:52回复
    一、使用CT2进行ROM文件扩容:
    1、打开CT2,新建一个8Mbits(8Mb=1MB)的空白文件并另存到桌面上

    2、打开“光明之魂2”ROM文件(记得备份^_^),使用“追加文件”命令追加步骤1的空白文件

    3、ROM文件末尾出现新的可用空间则扩容成功了,保存当前文件即可


    IP属地:浙江2楼2020-06-27 16:55
    回复
      广告
      立即查看
      二、字库图片地址的计算分析:


      IP属地:浙江3楼2020-06-27 16:56
      回复
        三、在CT2中显示字库图片:
        1、在打开VBA中打开光明之魂2,找到有对话框出现的游戏画面,按下图的方式保存调色板信息

        2、在CT2中,切换到Tile视图,并勾选“自适应Tile行列数”

        3、切换到“调色板”,导入第一步保存的调色板信息文件,鼠标单击选中最后一行

        4、切换到“属性”,在偏移地址中输入首个字库图片的地址(8D94E8),设置适当的缩放比例,调整ROM文件的窗口大小


        IP属地:浙江4楼2020-06-27 16:58
        回复
          四、绘制并导入新的字库图片:
          1、在CT2中用鼠标选中“李”字四个图块,单击“导出”按钮,保存为图片文件,用作修改样例

          2、用Photoshop打开“李”,打开颜色表,并使用对应的调色板颜色绘制,完成后保存即可
          注:若要添加文字,可以使用文本工具(宋体,10pt)作为参考,然后再加工调整

          3、使用CT2将新的字库图片导入到ROM中可用的空白位置,此处以扩容后的1000000为例
          注:此处添加了一个剑的标志和一个“坠”字


          IP属地:浙江5楼2020-06-27 17:01
          收起回复
            五、给新添加的字库图片分配页码和编号
            1、计算地址偏移量,01000000-008D94C8=00726B38(高低位倒置:38 6B 72 00)
            2、修改总页数,并添加07页01图片的地址偏移量

            注:因为8D94E8开始是00页01图片的数据,因此会出现下图所示的问题

            3、为了消除上面的问题,我们需要将字库的控制数据往前移


            IP属地:浙江6楼2020-06-27 17:03
            回复
              六、扩容后字库的测试
              1、按照字库编号规则,“剑标志”编号为0701,“坠”字编号为0702,给“短剑”命名测试

              2、在VBA中打开光明之魂2,进入游戏查看效果


              IP属地:浙江7楼2020-06-27 17:05
              回复
                七、字库扩容的问题处理
                1、关于“步骤五”中字库控制数据前移的问题,显而易见的是字库图片的前面是一张背景图及其16块调色板数据,而8D94A8~8D94C8之间的数据并没有被读取,鉴于只有32个字节且数据大多是00,因此推断可作为空白区域使用,产生BUG的概率很小。

                2、另外,地址偏移量使用的是有符号数,其范围为-8000000~7FFFFFFF,因此完全可以把控制字库的数据(8D94C8~8D94E8)直接复制到扩容后的某一块空白区域,再通过负值的地址偏移量计算出每一页字库01图片的首地址,规避“步骤五”出现的问题,如果了解这方面的计算可以自行尝试~


                IP属地:浙江8楼2020-06-27 17:06
                回复
                  广告
                  立即查看
                  八、给改版者们的提醒(非常重要★ᴗ★)
                  1、由于字库处理程序只在刚打开游戏的界面时才会运行,如果玩家直接用以前的即时存档打开的话会导致字库新增页码中的文字无法正常显示。此时必须记录存档,重新开始游戏(即让游戏运行字库处理程序)读档后才能正常显示,希望做了字库扩容的改版在发布的时候不要忘记提醒玩家!
                  2、最后字库扩容教程的核心部分在步骤二和步骤五,请耐心查看后进行字库扩容,以免出现不必要的BUG,就这样啦~


                  IP属地:浙江9楼2020-06-27 17:09
                  回复
                    @浩俊杰🌀
                    因为字库里所有贴图是共用一个调色板的,所以原则上我们也只用调色板里已有的15种颜色(第一种颜色为背景色),简单说一下使用技巧吧~
                    ① 利用VBA导出字库使用的调色板,保存类型选择(.ACT)

                    ② 用PS打开“李”贴图,在“色板”窗口面板中,选择“载入色板”,文件类型为“颜色表(.ACT)”,载入第一步中VBA保存的调色板文件



                    ③ 接下来就可以用吸管工具快速选取调色板中的颜色作为绘图工具的前景色了~


                    IP属地:浙江15楼2020-08-21 18:46
                    回复