我正在尝试使用旧的roms gfx文件(这个例子尝试使用snow bros arcade设置一个)来保存瓷砖是如何进行逆向工程的。
这就是我现在所知道的:
每种颜色都指向可以更改的调色板(然后当您更改调色板时,可以更改切片中的颜色)。
瓷砖尺寸为16x16。
当我在十六进制编辑器中看到文件时,我有点困惑。我不知道一个像素有多少字节,或者他们如何看待该图块。
知道这是如何运作的吗?
答案 0 :(得分:2)
在没有任何文档的情况下,我首先假设每个像素是一个字节(简单地是256色调色板的索引),并且(16 x 16)256个字节的块组成一个区块。
现在完全有可能还有一些标题信息。因此,您需要读取偏移+ 256 字节并使用加载的调色板或仅使用灰度调色板显示该字节。
继续递增偏移量,直到看到像瓷砖的东西。现在通过读取后续切片来测试您的假设(之后将偏移量增加256个字节)。当然 - 如果瓷砖之间有其他数据,你必须重新做这件事,直到你确定步幅为止。
请注意,如果您没有加载正确的调色板,颜色很可能会显得混乱。你将不得不依赖你的模式识别技能。
所有这一切,您可以为该控制台找到existing open-source emulator,并尝试对其代码进行反向工程以发现该格式。
答案 1 :(得分:0)
我找到了答案(至少在snowbros游戏中):
图块以128个字节保存。
每个字节为2种颜色(每种颜色4位(当然索引))并以这种方式进行结构化:
Hex文件:
当然十六进制从0开始,但我认为这更直观,每个celd是一个字节(2个像素)。