衔着鱼D猫 发表于 2016-9-25 22:19

Der梦幻模拟战研究笔记

本文由 痕 原创

出处1:http://langrisser.xyz/dernote1-sfcfont
出处2:http://langrisser.xyz/dernote2-sfctext
出处3:http://langrisser.xyz/dernote3-sfcextract
出处4:http://langrisser.xyz/dernote4-ps-ss-fx-extract

作者主页:http://langrisser.xyz/

衔着鱼D猫 发表于 2016-9-25 22:23

第一篇:SFC字库

因为有了PS版DER的经验,猜想字库是12*12的单色1bpp,

用CrystalTile2(简称CT2)打开中文版ROM,设置tile格式12*12 单色1bpp,

然后在0x200000处找到了像是字体的地方,如图

http://ww4.sinaimg.cn/mw690/3f3a1b7djw1f866w6xb97j20l20dzgz9.jpg

嗯,前面的像是‘囧’字,不过有点不太对劲= =

原来是SFC的字库的格式有点不一样,

一般字库的字节排列是这样的

http://ww4.sinaimg.cn/mw690/3f3a1b7djw1f866w7iy1lj20630313yq.jpg

而SFC der的字库字节排列是这样的

http://ww2.sinaimg.cn/mw690/3f3a1b7djw1f866w8aw12j206102ydg1.jpg

所以需要写个小程序转换字库,编辑好之后再转换回去。之前写的转换工具忘了放哪里去了,找到了再上传吧。

衔着鱼D猫 发表于 2016-9-25 22:25

第二篇:SFC文本

之前笔记1中已经得到了字库,接下来就要确定码表。

把字库按顺序打出来,然后再用一些工具确定字符对应的编码。

确定编码可以用一些动态修改器,比如个人喜欢用的CheatEngine,

SFC模拟器snes9x已经自带了修改器,确定码表的过程太繁琐就从略了。

得到码表之后就可以找文本了,

用CT2打开中文版ROM,CT2里菜单-码表-选择码表,选择之前确定的码表,然后菜单-码表-启用码表,

然后就可以在0x210120处找到游戏的文本。

http://ww2.sinaimg.cn/mw690/3f3a1b7djw1f866w8drcuj20iw06twi3.jpg

0x210120前面的那些好像是乱码?仔细观察其实那是文本块的指针,每3个字节一个指针。

搞清除规律之后就可以用工具或者写工具导出文本了,然后修改文本,修改字库,把修改后的字库和文本再导入到ROM里,一个汉化游戏可能就那样横空出世了~!

衔着鱼D猫 发表于 2016-9-25 22:25

第三篇:SFC资源解压

解压需要把字节转换成二进制,请自备计算器。

以下如无0x前缀均为二进制:

100 XXXX=XXXX

101 XX= {
101 00 = 0x10
101 01 = 0x30
101 10 = 0x80
101 11 = 0xFF
}

11 XXXXXXXX=XXXXXXXX

00 YYYY=复制一个字节,该字节位于当前位置之前YYYY个字节处

010 YYYY=复制二个字节,这两个字节位于当前位置之前YYYY个字节处

0110 YYYY=复制三个字节,这三个字节位于当前位置之前YYYY个字节处

01110 YYYYYYYY=复制二个字节,这两个字节位于当前位置之前YYYYYYYY个字节处

011110 YYYYYYYY=复制三个字节,这三个字节位于当前位置之前YYYYYYYY个字节处

0111110 YYYYYYYY=复制四个字节,这四个字节位于当前位置之前YYYYYYYY个字节处

01111110 XXXX YYYYYYYY=复制5+XXXX个字节,这些字节位于当前位置之前YYYYYYYY个字节处

01111111=结束标志

例子:SFC第一关战场配置数据

原始数据:

83 0E 44 09 61 50 28 44 C5 0B 14 C8 08 C9 26 14

转换成二进制:

10000011 00001110 01000100 00001001 01100001 01010000 00101000 01000100
11000101 00001011 00010100 11001000 00001000 11001001 00100110 00010100

重新排列一下:

1000001 1000011 1001000 1000000 1001011 000010 10100 000010 1000010 001001
1000101 000010 1100010100 1100100000 001000 1100100100 1001100 001010 0

解压后的数据:

01 03 08 00 0B 00 10 00 02 01 05 01 14 20 10 24 0C 00 …………

01 我方回合音乐
03 敌方回合音乐
08 00 我方出战部队指针
0B 00 我方部队坐标指针
10 00 非我方部队指针
02 我方出战部队数量
01 05 我方出战部队编号,01艾尔文,05海恩
01 是否强制配置指挥官
14 20 指挥官配置坐标1
10 24 指挥官配置坐标2
0C 00 非我方部队数量

衔着鱼D猫 发表于 2016-9-25 22:30

第四篇:PS/SS/FX资源解压

其实DER在PS/SS/FX的资源解压跟SFC的是基本一样的,但是要去掉这一行:100 XXXX=XXXX,统一使用:11 XXXXXXXX=XXXXXXXX 来表示单个字节。

解压需要把字节转换成二进制,请自备计算器。

以下如无0x前缀均为二进制:

101 XX= {
101 00 = 0x10
101 01 = 0x30
101 10 = 0x80
101 11 = 0xFF
}

11 XXXXXXXX=XXXXXXXX

00 YYYY=复制一个字节,该字节位于当前位置之前YYYY个字节处

010 YYYY=复制二个字节,这两个字节位于当前位置之前YYYY个字节处

0110 YYYY=复制三个字节,这三个字节位于当前位置之前YYYY个字节处

01110 YYYYYYYY=复制二个字节,这两个字节位于当前位置之前YYYYYYYY个字节处

011110 YYYYYYYY=复制三个字节,这三个字节位于当前位置之前YYYYYYYY个字节处

0111110 YYYYYYYY=复制四个字节,这四个字节位于当前位置之前YYYYYYYY个字节处

01111110 XXXX YYYYYYYY=复制5+XXXX个字节,这些字节位于当前位置之前YYYYYYYY个字节处

01111111=结束标志

Doi_Doi 发表于 2016-9-26 18:46

不明觉厉
页: [1]
查看完整版本: Der梦幻模拟战研究笔记