форум группы Chief-Net форум группы Chief-Net
Перевод приставочных игр и не только!
drako site Перейти на сайт группы     Наш чат      Помощь      Поиск      Пользователи


 Страниц (3): « 1 2 [3]   

> Описание: Разбор алгоритма LZSS
Ace Lightning Пользователь
Отправлено: 03 Февраля, 2016 - 07:11:55
Post Id



VIP


Покинул форум
Сообщений всего: 480
Дата рег-ции: Июнь 2015  





Ace Lightning
Вот обнаружил интересную вещь:
Если посмотреть на выделенную последовательность
http://i23.fastpic.ru/big/2011/0...6ddaecf32137.jpg
И сравнить с последовательностью в роме
F7 AA B1 B1 DC 61 08
F7 - флаговый байт.
DC 61 - байты сжатия.
Да вот только, если посмотреть на картинке как распаковались эти байты (20 20 00 00)... такой последовательности в распакованных данных нет. Поэтому не понятно откуда они взялись. И если поиграть с этими тремя старшими битами второго байта, то в роме появляются откуда-то байты 20...
 
 Top
Ace Lightning Пользователь
Отправлено: 03 Февраля, 2016 - 07:12:44
Post Id



VIP


Покинул форум
Сообщений всего: 480
Дата рег-ции: Июнь 2015  





Ace Lightning
Покопался в ассемблере:

Длина вычисляется правильно - берётся 5 младших бит второго байта и прибавляется 3
CODE:
and a,1F
add a, 03


Из трёх старших битов второго байта пары сжатия берётся только первые два
CODE:
and a, 03

И они становятся старшими битами адреса.

Но всё равно мало что понятно.. по поводу моего верхнего поста: в самой игре адрес указывает именно на байты 20 20 00 00... но откуда они там взялись мне не понятно Недовольство, огорчение

В интернете почитал про алгоритм LZSS, там объяснялось, что пара байт сжатия - это <смещение, длина>. Здесь же этот алгоритм извратили Улыбка
 
 Top
TrickZter Пользователь
Отправлено: 03 Февраля, 2016 - 07:13:16
Post Id





Покинул форум
Сообщений всего: 560
Дата рег-ции: Июнь 2015  





TrickZter
Цитата:
в самой игре адрес указывает именно на байты 20 20 00 00... но откуда они там взялись мне не понятно Недовольство, огорчение


Картинка распаковывается в некий буфер в оперативке и если указатель направлен за пределы картинки, то будут копироваться какие-нибудь левые данные, которые сейчас хранятся по этому адресу. Я пробовал менять указатель на один, два, десять байтов раньше начала картинки и тоже появлялись 20-ки. Может быть они специально туда были заранее загружены, а может просто для всех адресов не попадающих в картинку берутся 20-ки.
 
 Top
Ace Lightning Пользователь
Отправлено: 03 Февраля, 2016 - 07:13:37
Post Id



VIP


Покинул форум
Сообщений всего: 480
Дата рег-ции: Июнь 2015  





Ace Lightning

Нет, определённо не для всех берутся биты 20. Т.к. в случае выше распаковалось 20 20 00 00. На сколько я понял, буфер здесь состоит из 255 байт 22 и 2 байт 00. Вобще, там 34 байта 00 (да и байт 22 встречается там 992 раза Улыбка)) ), но тогда все нули запаковывались бы из этого буфера, а они берутся из моей распакованной последовательности, поэтому вероятно 32 байта нулей в буфер не входят...
Чтож, тогда придётся ещё и буфер задавать перед распаковкой, посмотрим, что из этого получится..
 
 Top
Ace Lightning Пользователь
Отправлено: 03 Февраля, 2016 - 07:15:09
Post Id



VIP


Покинул форум
Сообщений всего: 480
Дата рег-ции: Июнь 2015  





Я это сделал!!! Наконец-то я написал распаковщик!! Ура!
Сегодня, когда сравнил дамп памяти эмулятора и мою распакованную последовательность, увидел заветное сообщение, которое я ждал так давно:
Теперь нужно найти всю графику, перерисовать и начать писать запаковщик. Так что перевод будет!!!!! yahoo Ура! Ура!
Прикреплено изображение
prog.jpg

 
 Top
Guyver Администратор
Отправлено: 03 Февраля, 2016 - 07:15:30
Post Id



Chief-Net


Покинул форум
Сообщений всего: 9959
Дата рег-ции: Окт. 2014  
Откуда: Магадан





Guyver
Молоток!

-----
Я не волшебник - я только учусь...
 
 Top
JurasskPark Пользователь
Отправлено: 03 Февраля, 2016 - 07:15:49
Post Id






Покинул форум
Сообщений всего: 363
Дата рег-ции: Окт. 2014  





JurasskPark

Кувалда!
P.S. На компе учетка понравилась. Голливудская улыбка
 
 Top
TrickZter Пользователь
Отправлено: 03 Февраля, 2016 - 07:16:07
Post Id





Покинул форум
Сообщений всего: 560
Дата рег-ции: Июнь 2015  





TrickZter

Киянка!
Цитата:
и начать писать запаковщик.

Запаковщик чуток сложнее писать, чем распаковщик: ведь надо не просто запаковать, а самым оптимальным способом. Хотя, если ресурс не влезет - его всегда можно перекинуть в конец рома.
 
 Top
Guyver Администратор
Отправлено: 03 Февраля, 2016 - 07:16:30
Post Id



Chief-Net


Покинул форум
Сообщений всего: 9959
Дата рег-ции: Окт. 2014  
Откуда: Магадан





Guyver
А у меня почти всегда "переведённое" меньше оригинала, так что оптимизировать алгоритм не требуется...

-----
Я не волшебник - я только учусь...
 
 Top
Ace Lightning Пользователь
Отправлено: 03 Февраля, 2016 - 07:16:56
Post Id



VIP


Покинул форум
Сообщений всего: 480
Дата рег-ции: Июнь 2015  





Ace Lightning
Цитата:
А у меня почти всегда "переведённое" меньше оригинала, так что оптимизировать алгоритм не требуется...


Везёт Тебе... Улыбка
 
 Top
lupus Пользователь
Отправлено: 03 Февраля, 2016 - 07:17:18
Post Id





Покинул форум
Сообщений всего: 1056
Дата рег-ции: Июнь 2015  
Откуда: Simferopol





lupus
Цитата:
А у меня почти всегда "переведённое" меньше оригинала, так что оптимизировать алгоритм не требуется...

Краткость - сестра таланта B)
 
 Top
Mefistotel Администратор
Отправлено: 03 Февраля, 2016 - 07:36:41
Post Id



Chief-Net


Покинул форум
Сообщений всего: 7055
Дата рег-ции: Окт. 2014  
Откуда: МАГАДАН





И потом Ace Lightning пропал.
Но я связался с ним по почте. Если найдет на старом компе наработки, то выложит. Возможно, доделаем его перевод.

-----
"Перевод старых игр - отличная возможность понять, как устроены программы, подучить иностранный язык и поднять уровень владения родным. Ну и конечно, это просто возможность "общения" со своей любимой игрой детства." © Dimouse
 
 Top
Страниц (3): « 1 2 [3]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Экстрим хакинг »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



> Похожие темы: Castlevania: Legends (GB)
Темы Форум Информация о теме Обновление
Battle City [NES]
АРХИВНАЯ ТЕМА 2011 ГОДА
Переводы Ответов: 10
Автор темы: Ace Lightning
04 Октября, 2016 - 06:38:39
Автор: Mefistotel
Double Dribble [NES]
АРХИВНАЯ ТЕМА 2011 ГОДА
Переводы Ответов: 4
Автор темы: Ace Lightning
04 Октября, 2016 - 06:46:40
Автор: Mefistotel
Приколы
Флудильня Ответов: 9
Автор темы: Ace Lightning
15 Июня, 2018 - 02:11:59
Автор: bybyc9lc9l
Castlevania: Ledends [GB]
АРХИВНАЯ ТЕМА 2012 года
Переводы Ответов: 16
Автор темы: Ace Lightning
07 Сентября, 2016 - 09:49:14
Автор: Mefistotel
Оптимальное сжатие в запаковщике
Программирование Ответов: 35
Автор темы: Ace Lightning
28 Января, 2019 - 09:59:35
Автор: Марат
 

Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®