Hex定位到首战地图点,我们可以看到类似于
0E 0F 00 00 10 31 02 2F 2E ... FF 的结构。把它解析出来大概是这样的:
高 宽 00 00 aa bb cc dd …… FF 其中,
高是地图纵高Y;
宽是地图横宽X;
00 00起止或格式符号;
后面开始的是地图绘制,也就是aa bb cc dd这些。
从2E到FF(包含2E和FF,这里的FF是特别的),每一个值都代表着一个贴图的编号,具体哪个编号,请看附录图。
简单点说把数值跟在后边填进去就行了,abcd只是代号,请修改为具体的。
外传里为了节省和方便(但也给我们这些修改的多了些麻烦),是可以使用“数量+贴图号”这种格式来绘制地图的,比如02 30 就表示“连续2个草地”,数量的范围是01-2D,可以等于2D。大于2D就会被识别为贴图编号,数量为1个。比如 30 31 表示“1个草地,接着,1个树木”。但贴图FF是特别的,它前面必须加数量才是贴图编号,比如01 FF表示1个船首桅。连续贴图可以节省字节数。
FF 地图结束
规格决定了你需要数多少块贴图,比如0E 0F表明(从00开始数)这是15*16大小的地图,总计 240块。在具体绘制的时候,数量总数应该等于这个数。
以上,
就是这样。
下面我们再来看具体一点的。
使用的是最笨的方法:同字节数替换。
来举个例子,出村首战的拉姆森林地图(第3号战场)

村战
打开hex编辑器,打开rom,定位到861B(如何得知,请看附录·战场地图定位)。

861B
开始 0E 0F 00 00(Y*X)地图大小,0E是14但它的计数是从00位开始的,所以也就是网格方块纵x横15x16。
紧接着的
10 31 02 2F 2E 0D 31 D3 DA 2E 31 02 30 02 31 06 30 31 30 02 D3 2E D6 0A 30 31 30 02 D3 2E D6 0C 30 02 D3 2E D6 0C 30 02 D3 2F 31 04 30 31 02 30 31 04 30 12 D3 2E 31 04 30 31 02 30 31 04 30 02 D3 2E D6 0C 30 2E D1 2E D6 0C 30 2F D7 2E D6 0B 30 31 02 D3 2E D6 0A 30 02 31 03 2F 31 04 30 18 31 FF 就是具体的地图代码
布局位置开始 (861f)
从左到右从上到下。重复一次:值如果小于或等于内置的最大数目值(45个 也就是2D)那就是表示数量,不然就是表示贴图。
现在开始解读:
10 31 (16个31绿树 地图的第一行结束,请对比参照上面的图片可以更直观)
02 2F (2个2F村立墙,第二行开始)
2E (接着是一个2E村墙)
0D 31(再接着13个31树)
D3 (空地)
DA (治疗池)
2E (接着是一个2E村墙)
……
最后FF 结束或补位 共98字节
所以我要绘制的新图应该是(也是98字节)
0F 31 2E 0F 31 2E 2E D1 05 30 02 31 05 30 31 2E 2F D7 0C 30 31 2E 0E 30 31 2E 0F 30 2E 04 30 31 30 31 02 30 02 31 DA 03 30 2F 04 30 02 31 03 30 31 30 31 08 30 31 30 31 02 30 03 31 03 30 2E 0F 30 2E 0E 30 31 2E 2E D1 0C 30 31 2E 2F D7 05 30 02 31 05 30 31 2E 0F 31 2E 0F 31 2E FF FF FF FF FF FF

村战改
改图结束,简单粗暴。
再进一步就是调整敌我部队位置,这里略。
剩余的我制作了PDF电子书,各位可以直接下载收藏。

电子书目录
https://www.ksite.cn/contents/fe2-mapdoc.html
备用下载(百度分流):
https://wenku.baidu.com/view/ef37af884593daef5ef7ba0d4a7302768f996f49.html