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/
第一篇: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
所以需要写个小程序转换字库,编辑好之后再转换回去。之前写的转换工具忘了放哪里去了,找到了再上传吧。
第二篇:SFC文本
之前笔记1中已经得到了字库,接下来就要确定码表。把字库按顺序打出来,然后再用一些工具确定字符对应的编码。
确定编码可以用一些动态修改器,比如个人喜欢用的CheatEngine,
SFC模拟器snes9x已经自带了修改器,确定码表的过程太繁琐就从略了。
得到码表之后就可以找文本了,
用CT2打开中文版ROM,CT2里菜单-码表-选择码表,选择之前确定的码表,然后菜单-码表-启用码表,
然后就可以在0x210120处找到游戏的文本。
http://ww2.sinaimg.cn/mw690/3f3a1b7djw1f866w8drcuj20iw06twi3.jpg
0x210120前面的那些好像是乱码?仔细观察其实那是文本块的指针,每3个字节一个指针。
搞清除规律之后就可以用工具或者写工具导出文本了,然后修改文本,修改字库,把修改后的字库和文本再导入到ROM里,一个汉化游戏可能就那样横空出世了~!
第三篇: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 非我方部队数量
第四篇: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=结束标志 不明觉厉
页:
[1]