Gfx瓷砖保存在Arcade Game roms中

时间:2012-07-13 19:40:11

标签: gfx

我正在尝试使用旧的roms gfx文件(这个例子尝试使用snow bros arcade设置一个)来保存瓷砖是如何进行逆向工程的。

这就是我现在所知道的:

  • 每种颜色都指向可以更改的调色板(然后当您更改调色板时,可以更改切片中的颜色)。

  • 瓷砖尺寸为16x16。

当我在十六进制编辑器中看到文件时,我有点困惑。我不知道一个像素有多少字节,或者他们如何看待该图块。

知道这是如何运作的吗?

2 个答案:

答案 0 :(得分:2)

在没有任何文档的情况下,我首先假设每个像素是一个字节(简单地是256色调色板的索引),并且(16 x 16)256个字节的块组成一个区块。

现在完全有可能还有一些标题信息。因此,您需要读取偏移+ 256 字节并使用加载的调色板或仅使用灰度调色板显示该字节。

继续递增偏移量,直到看到像瓷砖的东西。现在通过读取后续切片来测试您的假设(之后将偏移量增加256个字节)。当然 - 如果瓷砖之间有其他数据,你必须重新做这件事,直到你确定步幅为止。

请注意,如果您没有加载正确的调色板,颜色很可能会显得混乱。你将不得不依赖你的模式识别技能。

所有这一切,您可以为该控制台找到existing open-source emulator,并尝试对其代码进行反向工程以发现该格式。

答案 1 :(得分:0)

我找到了答案(至少在snowbros游戏中):

图块以128个字节保存。

每个字节为2种颜色(每种颜色4位(当然索引))并以这种方式进行结构化:

Hex文件:

enter image description here

当然十六进制从0开始,但我认为这更直观,每个celd是一个字节(2个像素)。