Продолжаем исследовать ROM-формат. На этот раз проверим его избыточность. Не вся информация используется при подсчете контрольной суммы и при чтении файла, а значит чем-то можно пожертвовать.
Вот, например, один блок из знаменитого Pillars:
Код:
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
55 55 55 55 E6 00 00 00 00 4E 4F 44 49 53 43 30 UUUUж NODISC0
30 30 30 30 30 30 30 70 69 6C 6C 61 72 73 20 20 0000000pillars
20 20 00 00 01 13 13 DE 00 00 00 00 E6 82 DE 8A ☺‼‼Ю ж'Ю_
AB 0F 4F 0A C9 47 0E F1 2D 24 24 2D 24 24 24 2D <☼O◙ЙG♫с-$$-$$$-
2D 24 24 24 E7 4F 06 53 25 2C 25 25 25 25 2C 80 -$$$зO♠S%,%%%%,_
00 00 00 00 E6 85 DE E0 9C 51 09 3D 30 7D 08 BC ж:Юа_Q○=0}◘_
FC 67 42 40 09 BB 83 07 38 40 09 BB 07 70 2F 3F ьgB@○>_•8@○>•p/?
08 BC 0E 5B 9C 9B 32 D1 00 00 00 00 E6 87 DE 60 ◘_♫[_>2С ж╪Ю`
30 73 C2 D6 E0 FB E7 C6 27 D9 DD 5D 15 E9 9A 35 0sВЦаызЖ'ЩЭ]§й_5
F2 E8 D1 AD B4 62 EC C4 3B FB 5F 09 9A 1C 93 94 тиС-_bмД;ы_○_∟""
00 00 00 00 E6 80 DE C3 C3 12 0E 49 E7 4F 06 38 ж_ЮГГ↕♫IзO♠8
2D 24 2D 2D 24 2D 2D 24 E7 4F 06 83 E7 47 0E 1F -$--$--$зO♠_зG♫▼
2C 25 25 25 2C 25 E7 FB 00 00 00 00 E6 81 DE E3 ,%%%,%зы ж_Юг
1F 8B 99 AE 4F 2B 1F 98 8E 9A 47 E3 3B 3B F1 33 ▼<TRO+▼___Gг;;с3
33 D5 53 88 A9 5F 33 92 D5 C1 3E 00 F5 C8 47 D8 3ХS_c_3'ХБ> хИGШ
00 00 00 00 E6 83 DE 2C 25 25 2C 25 25 25 25 25 ж_Ю,%%,%%%%%
2C 25 25 25 2C 25 25 25 2C 25 2D 25 25 25 25 2C ,%%%,%%%,%-%%%%,
2C 25 25 2C 25 25 2C 48 00 00 00 00 E6 86 DE AD ,%%,%%,H ж┼Ю-
B2 0B 92 35 64 E8 EA 5D 8D 66 92 95 CB 68 F6 9E _♂'5dик]_f'•Лhц_
8E 33 02 AC F4 FA B0 16 59 3E E0 36 81 9B 69 5E _3☻┐фъ°■Y>а6_>i^
00 00 00 00 E6 84 DE 25 E7 47 0E AD E7 4F 06 94 ж"Ю%зG♫-зO♠"
24 2D 24 2D 24 2D 24 24 E7 4F 06 DA E7 47 0E 4C $-$-$-$$зO♠ЪзG♫L
E7 F0 88 CE 17 1F 19 95
Красным цветом выделены байты, с которыми мы попрощаемся. Их 42 штуки.
Pillars - состоит из 19 блоков. Экономия 798 байт. Выигрыш в скорости загрузки 2 секунды.
Бластер - 98 блоков. Экономия 4116 байт - более 4 килобайт! Выигрыш в скорости загрузки 12 секунд!
Конечно, в эмуляторе все красиво, но надо проверить на реале. Работает!
Смотрим видео загрузки Pillars http://www.youtube.com/watch?v=fkEcZfCtHLA
Чтобы было веселее, заодно сделана случайная загрузка подблоков.