Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
HoRRoR RRC2008
Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
Добавлено: Чт Июл 06, 2006 8:57 pm Заголовок сообщения: Сжатая графика Pac-man 2(SEGA) |
|
|
Блин, понимаю еще ломать сжатую RLE 1BPP графику, но сжатую неизвестно каким образом 4BPP... Я весь день бьюсь, и пока-что все, чего я добился - нашел места с байтами графики, а дальше все строится из байт, как-то ссылающихся на те самые байты графики. Я так понял, сначала прописываются все необходимые последовательности байт графики, затем из них строятся наиболее часто встречающиеся блоки, а из них уже буквы.
Па-ма-ги-те!!! Это одна из моих самых любимых игр на сеге(раз десять точно прходил), поэтому если я ее не переведу, я умру! Спасите мою ЖЗ (гугл не предлагать ). |
|
Вернуться к началу |
|
|
АнС RRC2008
Зарегистрирован: 08.11.2003 Сообщения: 2818
|
Добавлено: Чт Июл 06, 2006 10:34 pm Заголовок сообщения: |
|
|
Судя по твоим словам, это LZ77. |
|
Вернуться к началу |
|
|
HoRRoR RRC2008
Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
Добавлено: Пт Июл 07, 2006 7:53 am Заголовок сообщения: |
|
|
Походу да. Вот только чё-то кой-чего не пойму. Есть байты, которые заменять можно - тогда изменяется только одна буква или одна общая часть букв, а другие нельзя - портятся все буквы. Я думаю, эти байты описывают или координаты заполнения графикой, или количество повторений. А если количество повторений изменить, то через это кол-во он попытается прочитать командный байт - а там, вот те на, байт графики, вот и глюк, так же и скоординатами - задашь ссылку в космос, вот и глюкнуло.
Не знаю, это только мои догадки. Никак с этим LZ77 не разберусь... |
|
Вернуться к началу |
|
|
HoRRoR RRC2008
Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
Добавлено: Сб Июл 08, 2006 8:24 am Заголовок сообщения: |
|
|
УРА! УРА! УРА!!!!!!!
Я решил проблему со сжатой графикой!!!
И без всякой распаковки/запаковки.
Я просто взял, открыл дебаггер, увидел там шрифты, скопировал их(перерисовал по пикселям), затем перебил ссылку на шрифты на ссылку на пустое место в роме(его там полно) и сейчас вставляю их без сжатия. Самое главное, что ВСЁ РАБОТАЕТ!!! |
|
Вернуться к началу |
|
|
PEREVODчик
Зарегистрирован: 07.07.2006 Сообщения: 105 Откуда: Kirov
|
Добавлено: Сб Июл 08, 2006 8:37 am Заголовок сообщения: |
|
|
Повезло.Жаль, что не всегда этот метод помогает. |
|
Вернуться к началу |
|
|
HoRRoR RRC2008
Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
Добавлено: Сб Июл 08, 2006 9:37 am Заголовок сообщения: |
|
|
PEREVODчик писал(а): | Повезло.Жаль, что не всегда этот метод помогает. |
Мне конечно повезло, но если учесть, что я два дня подряд без перерыва пытался вывести алгоритм сжатия(это моя первая практика со сжатой графикой), то мне не очень-то и повезло. |
|
Вернуться к началу |
|
|
PEREVODчик
Зарегистрирован: 07.07.2006 Сообщения: 105 Откуда: Kirov
|
Добавлено: Сб Июл 08, 2006 9:59 am Заголовок сообщения: |
|
|
Я первый раз переводил сжатую графику дней 5, а вывев алгоритм,
удивлялся его простоте (оказался LZ77). |
|
Вернуться к началу |
|
|
HoRRoR RRC2008
Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
Добавлено: Сб Июл 08, 2006 10:10 am Заголовок сообщения: |
|
|
Я за два дня чуть с ума с ним не сошел, но был уже близок к цели. |
|
Вернуться к началу |
|
|
PEREVODчик
Зарегистрирован: 07.07.2006 Сообщения: 105 Откуда: Kirov
|
Добавлено: Сб Июл 08, 2006 10:16 am Заголовок сообщения: |
|
|
Скажи по какому адресу находится сжатая графика, вроде что-то знакомое. |
|
Вернуться к началу |
|
|
HoRRoR RRC2008
Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
Добавлено: Сб Июл 08, 2006 11:52 am Заголовок сообщения: |
|
|
Именно один из 3-х(может 4-х) шрифтов - 187411-1875D4(конечный адрес может быть неверен - не уточнял), а остальную графику еще не копал. |
|
Вернуться к началу |
|
|
PEREVODчик
Зарегистрирован: 07.07.2006 Сообщения: 105 Откуда: Kirov
|
Добавлено: Сб Июл 08, 2006 2:10 pm Заголовок сообщения: |
|
|
Да уж! Тут есть, что переводить. Тут графических слов больше, чем знакогенных.Игра нормальная, возможно я ей займусь,как только
закончу DUNE. По адресу $187711h увидел признаки LZ. Кстати, решены все проблемы с графикой? То есть всю графику можешь засунуть, не запаковывая? |
|
Вернуться к началу |
|
|
HoRRoR RRC2008
Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
Добавлено: Сб Июл 08, 2006 2:46 pm Заголовок сообщения: |
|
|
Написал прогу, первый шрифт удачно засунул. (скриншот)
Скорей всего будет возможность сохранить пароли на английском, там 14 ссылок на этот блок графики, если повезет, то со шрифтом пароля не будут использоваться данные, которые надо переводить.
Но возникла первая трудность - предется в разжатом виде перерисовывать небо. Наверное придется вычислять алгоритм - тогда не надо будет по пикселям копировать. Кстати, зачем DUNE второй раз переводить? Понимаю, что это твоя любимая игра, но всё же, выходит, что ты трудишься напрасно.
З.Ы. Если хочешь, можем объеденить усилия. |
|
Вернуться к началу |
|
|
PEREVODчик
Зарегистрирован: 07.07.2006 Сообщения: 105 Откуда: Kirov
|
Добавлено: Сб Июл 08, 2006 3:06 pm Заголовок сообщения: |
|
|
Не люблю оставлять недоделки. Перевод Шедевра хороший, но мне все же хочется сделать свой+кое-что подправить.
А небо можешь и в разжатом виде перерисовать-места в конце рома можно сделать сколько угодно. |
|
Вернуться к началу |
|
|
HoRRoR RRC2008
Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
Добавлено: Сб Июл 08, 2006 3:21 pm Заголовок сообщения: |
|
|
PEREVODчик писал(а): |
А небо можешь и в разжатом виде перерисовать-места в конце рома можно сделать сколько угодно. |
Я имею ввиду, чтоб не мучаться по пикселям рисовать, разжал и вставил. |
|
Вернуться к началу |
|
|
PEREVODчик
Зарегистрирован: 07.07.2006 Сообщения: 105 Откуда: Kirov
|
Добавлено: Сб Июл 08, 2006 3:30 pm Заголовок сообщения: |
|
|
Не знаю правильно ли я тебя понял.Ты хочешь, чтобы небо хранилось в роме в разжатом виде, хочешь распаковать оригинал.
Если так, то вставь небо из SAVE.Сохранись месте, где оно нарисовано. В save оно(небо) явно отразится в распакованном виде. |
|
Вернуться к началу |
|
|
HoRRoR RRC2008
Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
Добавлено: Сб Июл 08, 2006 3:33 pm Заголовок сообщения: |
|
|
PEREVODчик писал(а): | Не знаю правильно ли я тебя понял.Ты хочешь, чтобы небо хранилось в роме в разжатом виде, хочешь распаковать оригинал.
Если так, то вставь небо из SAVE.Сохранись месте, где оно нарисовано. В save оно(небо) явно отразится в распакованном виде. |
......
* бъется головой об стол *
Ой, кажись мозги заработали...
Почему эта вумная мысля мне в голову не пришла...? |
|
Вернуться к началу |
|
|
HoRRoR RRC2008
Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
Добавлено: Сб Июл 08, 2006 8:00 pm Заголовок сообщения: |
|
|
Бывают же чудеса на свете...
Короче, решил я попробовать вставить небо не разжимая, т.к. в дебаггере только полосы какие-то(видно кодировка другая), помучаться пришлось бы.
Наугад определил предпологаемое место конца блока с шрифтом, практически наугад выбрал место, куда его вставить после разжатого шрифта, вставил, запустил ром...
...
После выхода из режима карты все должно было померкнуть(ром наверное обиделся и решил мне устроиить ядерную зиму ), но...
Вверху было голубое небо со спокойно плывущими облаками...
Я до сих пор в шоке |
|
Вернуться к началу |
|
|
АнС RRC2008
Зарегистрирован: 08.11.2003 Сообщения: 2818
|
Добавлено: Сб Июл 08, 2006 10:12 pm Заголовок сообщения: |
|
|
Наверняка это где-то потом выйдет боком, не обязательно именно в том месте. Нельзя так безответственно подходить к хакингу. |
|
Вернуться к началу |
|
|
Ghost
Зарегистрирован: 24.04.2004 Сообщения: 237
|
Добавлено: Вс Июл 09, 2006 12:22 am Заголовок сообщения: |
|
|
Довольно простой LZ. Основная процедура распаковки LZ - 0016E2. Вот привожу её код:
Код: | 000016E2 MOVE.B (A0)+,D3
000016E4 MOVEQ #$01,D4
000016E6 LSL.W D3,D4
000016E8 SUBQ.W #$1,D4
000016EA MOVE.B (A0)+,D0
000016EC BEQ $0000172C
000016EE LSR.B #1,D0
000016F0 BEQ $000016EA
000016F2 BCC $000016F8
000016F4 MOVE.B (A0)+,(A1)+
000016F6 BRA $000016EE
000016F8 CMP.B #$08,D3
000016FC BEQ $00001712
000016FE MOVE.B (A0)+,D1
00001700 LSL.W #8,D1
00001702 MOVE.B (A0)+,D1
00001704 MOVE.W D1,D2
00001706 SUBQ.W #$1,D2
00001708 AND.W D4,D2
0000170A SUB.W D4,D1
0000170C SUBQ.W #$1,D1
0000170E LSR.W D3,D1
00001710 BRA $0000171E
00001712 MOVEQ #$00,D2
00001714 MOVEQ #$00,D1
00001716 MOVE.B (A0)+,D1
00001718 SUBQ.B #$1,D1
0000171A MOVE.B (A0)+,D2
0000171C SUBQ.B #$1,D2
0000171E NEG.W D2
00001720 LEA $FF(A1,D2.L),A2
00001724 MOVE.B (A2)+,(A1)+
00001726 SUBQ.W #$1,D1
00001728 BCC $00001724
0000172A BRA $000016EE
0000172C RTS |
Если надо, чуть попозже разъясню, как она работает. С помощью брякпоинтов несложно определить, где какие куски графики лежат, например:
160073-160709 - первичный шрифт
149376-14B0C1 - Pac-Man над надписью Namco
15623F-15753B - основная графика для титульного экрана
14EB26-15079A - тайлмэп для неё (и ещё что-то?)
15853E-15948B - графика для введения
187411-187635 - цветной шрифт
17798C-177CDD - тайлмэп для введения
и т.д. _________________ Мысль - это интеллектуальный эксцесс данного индивидуума. |
|
Вернуться к началу |
|
|
HoRRoR RRC2008
Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
Добавлено: Вс Июл 09, 2006 6:44 pm Заголовок сообщения: |
|
|
Ух-ты!!! Наконец-то я смог зайти на форум!!!!!!!!!!!
Блин, весь день на сайт не мог войти...
АнС писал(а): | Наверняка это где-то потом выйдет боком, не обязательно именно в том месте. Нельзя так безответственно подходить к хакингу. |
Я бы по любому пересмотрел все игровые ситуации и исправил бы, если надо.
Ghost писал(а): | Довольно простой LZ. Основная процедура распаковки LZ - 0016E2. Вот привожу её код: |
Эээээ....
Я тут только вчера книгу по ассемблеру нашел, начал потихоньку пытаться выучить, так что в нем я полный чайник. Но все равно спасибо за информацию - попытаюсь разобраться.
И вооще, за эту неделю столько информации в мой мозг залезло, что я почуствовал себя раза в три умнее
Раньше не было надобности учить подобное, а теперь...
Скажите кто нибудь, мне, простому смертному, суждено ассемблер выучить? И за сколько вы в нем разобрались? |
|
Вернуться к началу |
|
|
IfoR
Зарегистрирован: 16.05.2006 Сообщения: 334
|
Добавлено: Вс Июл 09, 2006 8:00 pm Заголовок сообщения: |
|
|
HoRRoR писал(а): | Скажите кто нибудь, мне, простому смертному, суждено ассемблер выучить? И за сколько вы в нем разобрались? |
Да ты только не торопись. Для начала используй справочник команд. Продизасемблируй, что нибуть и попробуй разобраться в коде. Глядишь и через неделю незаметно для себя будешь асмM68K на пять знать 80%.
Да и дебагер - это дизассемблер + ассемблер (то есть с возможностью редактирования кода на ходу). Пока не одного дебагера (именно для M68K) не встречал.
Эх, мне бы сейчас дебагер + трейсер для M68K. Это была б убойная сила!
Последний раз редактировалось: IfoR (Вс Июл 09, 2006 8:06 pm), всего редактировалось 1 раз |
|
Вернуться к началу |
|
|
HoRRoR RRC2008
Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
|
Вернуться к началу |
|
|
IfoR
Зарегистрирован: 16.05.2006 Сообщения: 334
|
Добавлено: Вс Июл 09, 2006 8:07 pm Заголовок сообщения: |
|
|
Это я опечатолся. |
|
Вернуться к началу |
|
|
HoRRoR RRC2008
Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
|
Вернуться к началу |
|
|
Ghost
Зарегистрирован: 24.04.2004 Сообщения: 237
|
Добавлено: Вс Июл 09, 2006 8:27 pm Заголовок сообщения: |
|
|
Дебаггер (не "именно для M68K", а для всей сеги в целом - так даже лучше) есть в Gens. _________________ Мысль - это интеллектуальный эксцесс данного индивидуума. |
|
Вернуться к началу |
|
|
|