Der梦幻模拟战研究笔记3-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 非我方部队数量

加载中,请稍候...

评论

2条评论
  1. 1010112123 回复

    这压缩方法,回退和复制字节数都太少了。。。。还不如LZS,不过考虑到sfc的那些资源,应该也足够了.....

    • 回复

      @1010112123 原始数据最大也就几K,这么个简单的压缩也就够了,杀鸡用不着牛刀= =

发表评论

电子邮件地址不会被公开。 必填项已用*标注