1、hcb文件结构
a) 开始4个字节,指示entry的地址在文件中的偏移,相当于一个二级指针。

b) 从开始4个字节之后到entry之前,存储游戏的指令, 此外游戏的文本也包含在指令里面,个人感觉像代码段和数据段的混合,后面称为执行段。fvp本身相当于一个虚拟机,有自己的指令集,每条指令的作用前人已经整理出来了,见下图。结构体里的三项分别表示单字节的指令码,指令和操作数的类型, 除了string和字符串的长度相关,以外其他所有指令都是固定的长度。

c) entry, 指示虚拟机的入口地址。在上面的执行段里面,指令并不是单独的,而是多条指令拼在一起来实现一个功能,也就是函数,在这里entry指示的应该是主函数的起始地址。

d) entry后6个字节,不清楚干嘛的,总之封包的时候保持就行,这里称为魔术字

e) 在魔术字之后,对应标题,第一个字节为标题的字符串的字节长度,后续为内容,以00结尾

f) 最后是fvp系统的函数,比如音频相关和天气特效之类的,在代码段通过指令码0x3+占用两个字节的序号直接调用。这里最开头的两个字节表示fvp系统函数的数量(选中部分前的94 00),然后就是这0x94个函数,每个函数的第一个字节没搞明白,第二个字节是函数名的长度,剩下的就是函数名了。这部分也可以原封不动封回去。
