| 
			
				|  | shedevr.org.ru Группа перевода приставочных игр "ШЕДЕВР"
 
 |  
 
	
		| Предыдущая тема :: Следующая тема |  
		| Автор | Сообщение |  
		| Чувак НН 
 
 
 Зарегистрирован: 06.11.2006
 Сообщения: 3
 Откуда: H HOBrOpOg
 
 | 
			
				|  Добавлено: Пт Ноя 10, 2006 3:25 pm    Заголовок сообщения: Распаковка сжатой крафики...ВРУЧНУЮ |   |  
				| 
 |  
				| Не думайте что я псих или ещё что нибудь в этом роде.Учу ассебблер на X86. Инструкции понимаю , но прочитал на "Шедевре" статью о сжатии графики и ничего после нахождения инструкции распаковке не понял. Как же ручками распаковать графон??? Print screen не предлагать, мне важен сам процесс распаковки! Заранее спасибо!   P.S Я могу и прогу написать вы тока объясните что надо сделать
 _________________
 Молоко вдвойне смешней если после огурцов...
 |  |  
		| Вернуться к началу |  |  
		|  |  
		| gottax 
 
  
 Зарегистрирован: 16.11.2003
 Сообщения: 588
 Откуда: Курск
 
 | 
			
				|  Добавлено: Пт Ноя 10, 2006 4:37 pm    Заголовок сообщения: |   |  
				| 
 |  
				| Запомни три основных алгорима - RLE, LZ, Huffman. Их вариации/сочетания используются во всех алгоритмах сжатия данных (не обязательно графики) в консольных играх. Если будешь хорошо понимать принципы их работы, значит сможешь сломать практически любой игровой алгоритм сжатия данных независимо от платформы. Ну и для непосредственного нахождения запакованных данных нужно умело пользоваться дебаггером. 
 Асьм x86 тут вообще нафиг нужен, если только ты не собираешься на нём распаковщик писать. Лично я в этом смысла не вижу, так как для этой цели подойдёт любой язык высокого уровня.
 |  |  
		| Вернуться к началу |  |  
		|  |  
		| IfoR 
 
 
 Зарегистрирован: 16.05.2006
 Сообщения: 334
 
 
 | 
			
				|  Добавлено: Пт Ноя 10, 2006 6:00 pm    Заголовок сообщения: |   |  
				| 
 |  
				|  	  | gottax писал(а): |  	  | RLE, LZ, Huffman | 
 Хотелось бы прочитать про эти алгоритмы, но только но русском языке, пожалуйста...
 
 
  	  | gottax писал(а): |  	  | цели подойдёт любой язык высокого уровня. | 
 Ну, на языке низкого уровня писать интересней.
   
 Ну, мне ассемблер x86 только в кракерстве нужен....
 |  |  
		| Вернуться к началу |  |  
		|  |  
		| Чувак НН 
 
 
 Зарегистрирован: 06.11.2006
 Сообщения: 3
 Откуда: H HOBrOpOg
 
 | 
			
				|  Добавлено: Пт Ноя 10, 2006 6:52 pm    Заголовок сообщения: |   |  
				| 
 |  
				| gottax,Спасибо за ответ,а я уж думал меня за психа примут  Как пользоваться Дебаггером поконкретнее,пожалуйста. Есть GensKMOD но он почему-то показывает адрес в RAM а мне надо ROM. Перевожу игруху Tom & Jerry (для начала)но не могу найти один из шрифтов (Press Start которыи) Он ведь вполне может быть запакован (хотя большая часть спрайтов, и шрифтов НЕ запакована)Можно ли ручками то распаковать?? _________________
 Молоко вдвойне смешней если после огурцов...
 |  |  
		| Вернуться к началу |  |  
		|  |  
		| PEREVODчик 
 
  
 Зарегистрирован: 07.07.2006
 Сообщения: 105
 Откуда: Kirov
 
 | 
			
				|  Добавлено: Пт Ноя 10, 2006 7:57 pm    Заголовок сообщения: |   |  
				| 
 |  
				|  	  | Чувак НН писал(а): |  	  | Можно ли ручками то распаковать?? | 
 А чем-же ещё?
  |  |  
		| Вернуться к началу |  |  
		|  |  
		| IfoR 
 
 
 Зарегистрирован: 16.05.2006
 Сообщения: 334
 
 
 | 
			
				|  Добавлено: Пт Ноя 10, 2006 8:09 pm    Заголовок сообщения: |   |  
				| 
 |  
				|  	  | Чувак НН писал(а): |  	  | gottax,Спасибо за ответ,а я уж думал меня за психа примут  | 
 Да... Стандартный вопрос.
 
 
  	  | Чувак НН писал(а): |  	  | Как пользоваться Дебаггером поконкретнее,пожалуйста. Есть GensKMOD но он почему-то показывает адрес в RAM а мне надо ROM. | 
 А зачем тебе ROM?
  Подожди, а в эмуляторах ПЗУ используется? |  |  
		| Вернуться к началу |  |  
		|  |  
		| Ghost 
 
  
 Зарегистрирован: 24.04.2004
 Сообщения: 237
 
 
 | 
			
				|  Добавлено: Сб Ноя 11, 2006 12:27 am    Заголовок сообщения: |   |  
				| 
 |  
				| Как находить код распаковки графики с дебуггером: как правило, графика сначала распаковывается в RAM, затем копируется в нужный участок VRAM или через DMA, или простыми командами пересылки. Поэтому чтобы попасть на код распаковки, надо сначала узнать, когда и откуда из RAM графика пересылается в VRAM, затем уже определить, когда она начинает туда распаковываться. Для примера возьмём Tom & Jerry: рисунок Press Start виден в самом начале VRAM на момент появления титульного экрана, но не экрана с копирайтами, значит, она пересылается после исчезновения второго экрана. Когда он потемнеет, отсчитываем некоторое число кадров и смотрим, появилась ли графика в VRAM. Так определяем граничный кадр, в котором графики там ещё нет, но после трассировки кода она появится. В нашем случае кусок из $5280 байт копируется через DMA с адреса $FF0008. Там мы можем заметить характерные значения (3333 3333 3CCC), соответствующие точкам в тайлах. Заново отсчитываем число кадров после экрана с копирайтами, на этот раз до появления этих байт в RAM - мы вышли на распаковку.
 В данном примере
 00084C - выборка "экрана", его номер в D0, далее код для экрана в 00085A
 Для титульного экрана d0=2, pc=380e, там вызывается процедура 0007CA, наверно, для загрузки графики (в смысле следующие отвечают не за графику), в ней производится вычисление начального адреса, далее
 0007DA: BSR $0950 - размер куска графики (в нашем случае $5280)
 0007DE: BSR $1CE8 - установка начальных значений перед распаковкой
 0007E6: BSR $0954 - распаковка
 Процедура 000954 - 000A08 - собственно распаковка данных
 
 Чтобы поставить брекпоинт на 00084C, надо включить патч-код 00084C:60FE до зависания игры, а после зайти в дебуггер.
 
 ...Ладно, я сегодня добрый, вот вам бонусы
   Значения d0 на 00084C:
 0 - логотип SEGA
 1 - второй экран
 2 - титульный экран
 3 - настройки
 4, 5 - экран перед 1-м уровнем
 6 - при взломе d0 на вызове другого экрана не определено (через некоторое время ошибка деления на ноль), на самом деле отвечает за восстановление уровня (после таймаута или проигрыша)
 7 - выбор уровня
 8 - экран Game Over
 9 - титры
 
 Если не прерывать демонстрацию, можно перейти на титульный экран нажатием Start с экрана с логотипом SEGA или со следующего экрана. {Да, это трик такой}
 
 ...Заметили строку "7 - выбор уровня"? Я тоже заметил и нашёл вот что:
 Набрать комбинацию на титульном экране, затем нажать Start:
 A, A, ВНИЗ, ВВЕРХ, ВНИЗ, ВВЕРХ, ВЛЕВО, ВПРАВО, B - посмотреть титры
 ВВЕРХ, ВЛЕВО, ВНИЗ, A, B, ВПРАВО, ВЛЕВО, ВНИЗ, A - остановить время
 ВВЕРХ, ВВЕРХ, ВЛЕВО, ВПРАВО, ВПРАВО, ВНИЗ, B, B, A - неуязвимость
 ВВЕРХ, ВНИЗ, ВЛЕВО, ВПРАВО, A, A, B, ВНИЗ, ВВЕРХ - выбор уровня
 1-й код перекрывает 4-й, т.е. если они оба включены, вы попадёте на титры.
 
 =))))))))))))))
 _________________
 Мысль - это интеллектуальный эксцесс данного индивидуума.
 |  |  
		| Вернуться к началу |  |  
		|  |  
		| gottax 
 
  
 Зарегистрирован: 16.11.2003
 Сообщения: 588
 Откуда: Курск
 
 | 
			
				|  Добавлено: Вс Ноя 12, 2006 9:26 am    Заголовок сообщения: |   |  
				| 
 |  
				|  	  | Ura_Orlov писал(а): |  	  | Хотелось бы прочитать про эти алгоритмы, но только но русском языке, пожалуйста... | 
 
 Например, тут.
 |  |  
		| Вернуться к началу |  |  
		|  |  
		| Гость 
 
 
 
 
 
 
 | 
			
				|  Добавлено: Вс Ноя 12, 2006 11:23 am    Заголовок сообщения: |   |  
				| 
 |  
				| Ghost Ты чем дебажишь?? У меня KMOD но адреса вааще не те! Я нашел куда обращается игра "Spy : 68k -> VRAM of 256 bytes from FFCA7A to D800 (VRAM access)" Я так понял с адреса 00CA7A в POMe прочитано 256 байт так ведь??
 В дизасмном тексте игра сюда обращается.(по моему)
 Привожу в пример кусок:
 "01798A		DC.W	$CA7A" - Это ОНО??
 "01798C		ROXR.B	D2,D4"
 "01798E		MOVE.W	#$5C1E,D0"
 "017992		CHK	-$38(A1,A4.L),D2"
 "017996		DC.W	$791D"
 "017998		SUB.L	A7,D6"
 ....
 Дизассемблировал с помощью "Nick o'DIMM's Sega Genesis Disassembler v0.04"
 А что дальше-то делать??
 PEREVODчик Если ты графон распаковать можешь то объясни подробнее пожалуйста как ты это делаешь (на примере чего-нибудь)
 |  |  
		| Вернуться к началу |  |  
		|  |  
		| PEREVODчик 
 
  
 Зарегистрирован: 07.07.2006
 Сообщения: 105
 Откуда: Kirov
 
 | 
			
				|  Добавлено: Вс Ноя 12, 2006 11:57 am    Заголовок сообщения: |   |  
				| 
 |  
				|  	  | Цитата: |  	  | Если ты графон распаковать можешь то объясни подробнее пожалуйста как ты это делаешь (на примере чего-нибудь) | 
 По-моему, Ghost достаточно хорошо всё объяснил для понимания(уж куда подробнее);
 а метод(наилучший) тут один:дебажишь, находишь, пишешь распаковщик.
 |  |  
		| Вернуться к началу |  |  
		|  |  
		| Гость 
 
 
 
 
 
 
 | 
			
				|  Добавлено: Вс Ноя 12, 2006 12:21 pm    Заголовок сообщения: |   |  
				| 
 |  
				| Я не понял как он нашёл все эти значения. 	  | Цитата: |  	  | В нашем случае кусок из $5280 байт копируется через DMA с адреса $FF0008... | 
 Нет у меня адресов таких почему то. А распаковать мне надо ВРУЧНУЮ не написав распаковщика, а то я нифига не пойму.
 И ещё: Как посмотреть RAM? В дебаггерах находил тока VRAM,Z80,68k
 |  |  
		| Вернуться к началу |  |  
		|  |  
		| PEREVODчик 
 
  
 Зарегистрирован: 07.07.2006
 Сообщения: 105
 Откуда: Kirov
 
 | 
			
				|  Добавлено: Вс Ноя 12, 2006 12:31 pm    Заголовок сообщения: |   |  
				| 
 |  
				|  	  | Цитата: |  	  | А распаковать мне надо ВРУЧНУЮ не написав распаковщика | 
 Хе, ну тогда не надо искать процедуру распаковки,дебажить,просто найди корруптероом(поганкой,например) блок запакованных данных и смотри закономерность в Hex-editore.(в данном случае ты,наверное знаешь,по какому адресу запакованный шрифт-искать не надо).
 |  |  
		| Вернуться к началу |  |  
		|  |  
		| Гость 
 
 
 
 
 
 
 | 
			
				|  Добавлено: Вс Ноя 12, 2006 1:55 pm    Заголовок сообщения: |   |  
				| 
 |  
				| Да,кстати чё за алгоритмы такие:Nemesis,Enigma,Saxman,Koshinski,Koshinski moduled? Я так понял это всё те-же вариации RLE,LZ,Huffman? PREREVODчик То есть мне надо найти ресурс в РОМе и пробовать его распаковать всеми известными методами?
   А в дебаге не может быть написан алгоритм распаковки? (Добавить такие-то значения столько то раз и т.д)
 |  |  
		| Вернуться к началу |  |  
		|  |  
		| PEREVODчик 
 
  
 Зарегистрирован: 07.07.2006
 Сообщения: 105
 Откуда: Kirov
 
 | 
			
				|  Добавлено: Вс Ноя 12, 2006 2:01 pm    Заголовок сообщения: |   |  
				| 
 |  
				|  	  | Цитата: |  	  | То есть мне надо найти ресурс в РОМе и пробовать его распаковать всеми известными методами? | 
 Нет, конечно. Просто,глядя на последовательность байт,подставляя свои значения,понять закономерность.
 
  	  | Цитата: |  	  | А в дебаге не может быть написан алгоритм распаковки? | 
 Да, он там есть. Но закономерность обычно выглядит проще,чем набор кодов. Если ты хорошо понимаешь код - можешь этот алгоритм найти через него.
 |  |  
		| Вернуться к началу |  |  
		|  |  
		| Гость 
 
 
 
 
 
 
 | 
			
				|  Добавлено: Вс Ноя 12, 2006 4:09 pm    Заголовок сообщения: |   |  
				| 
 |  
				| Не понял что значит проще чем набор кодов? 	  | Цитата: |  	  | Да, он там есть. Но закономерность обычно выглядит проще,чем набор кодов | 
 Кстати как бы попроще найти запакованные ресурсы? В РОМе наних есть поинтеры или что-то в этом роде? И с чем искать, с "Поганкой"?
 |  |  
		| Вернуться к началу |  |  
		|  |  
		| PEREVODчик 
 
  
 Зарегистрирован: 07.07.2006
 Сообщения: 105
 Откуда: Kirov
 
 | 
			
				|  Добавлено: Вс Ноя 12, 2006 5:01 pm    Заголовок сообщения: |   |  
				| 
 |  
				|  	  | Цитата: |  	  | Не понял что значит проще чем набор кодов? | 
 Я имею в виду,что алгоритм сам по себе может простым, а ассемблерных кодов наворочено куча. Выберай что тебе проще-смотреть байты в Hex-editore или сам код распаковки.
 
  	  | Цитата: |  	  | Кстати как бы попроще найти запакованные ресурсы? В РОМе наних есть поинтеры или что-то в этом роде? И с чем искать, с "Поганкой"? | 
 Если знаешь пойнтер на ресурсы - хорошо,нет - ищи их с помощью "поганки".
 |  |  
		| Вернуться к началу |  |  
		|  |  
		| Ghost 
 
  
 Зарегистрирован: 24.04.2004
 Сообщения: 237
 
 
 | 
			
				|  Добавлено: Вс Ноя 12, 2006 5:53 pm    Заголовок сообщения: |   |  
				| 
 |  
				| Я пользуюсь обычно Gens210-mk2 от Никодима. 
 А кто сказал, что это нужная нам графика? Она по адресу 0000, а не D800. Это во-первых. Во-вторых, 	  | Цитата: |  	  | Я нашел куда обращается игра "Spy : 68k -> VRAM of 256 bytes from FFCA7A to D800 (VRAM access)" | 
 
 не с 00CA7A, а с FFCA7A. 	  | Цитата: |  	  | Я так понял с адреса 00CA7A в POMe прочитано 256 байт так ведь?? | 
 
 
 Чаще пользуюсь sega-asm'ом (есть на tv-games.narod.ru), он быстрее, хоть и больше глючит. По указанным тобой адресам в роме не те значения, наверно, ты smd дизасмил, а надо bin. 	  | Цитата: |  	  | Привожу в пример кусок: "01798A DC.W $CA7A"
 ...
 Дизассемблировал с помощью "Nick o'DIMM's Sega Genesis Disassembler v0.04"
 | 
 
 А чтобы распаковать вручную, посмотри команды 000954 - 000A08 - написано же "собственно распаковка данных".
 _________________
 Мысль - это интеллектуальный эксцесс данного индивидуума.
 |  |  
		| Вернуться к началу |  |  
		|  |  
		| Гость 
 
 
 
 
 
 
 | 
			
				|  Добавлено: Пн Ноя 13, 2006 2:01 pm    Заголовок сообщения: |   |  
				| 
 |  
				| Нет я стопудово дизасмил BIN!  Не знаю тогда почему |  |  
		| Вернуться к началу |  |  
		|  |  
		| Гость 
 
 
 
 
 
 
 | 
			
				|  Добавлено: Вт Ноя 14, 2006 7:36 pm    Заголовок сообщения: |   |  
				| 
 |  
				| да, забыл спросить - мне чем нибудь может помочь эмуль с бряками? |  |  
		| Вернуться к началу |  |  
		|  |  
		| Freeman 
 
  
 Зарегистрирован: 28.07.2007
 Сообщения: 30
 Откуда: Краснодар
 
 | 
			
				|  Добавлено: Сб Июл 28, 2007 2:43 pm    Заголовок сообщения: НАПОМОЩЬ!!!!!!!!!!!!!! |   |  
				| 
 |  
				| Где взять учебник по ассемблеру и дизассемблеру???  Я хочу его выучить и сделать хак Mortal Kombat 1! Добавлю Рептилию, боссов и убиру наконец время!!!!!! Подскажите плиз, где учебник взять или помогите с хаком! Заранее спасибо, icq (ася) 471236784 |  |  
		| Вернуться к началу |  |  
		|  |  
		| HoRRoR RRC2008
 
  
  
 Зарегистрирован: 21.06.2006
 Сообщения: 2341
 Откуда: Ростов-на-Дону
 
 |  |  
		| Вернуться к началу |  |  
		|  |  
		| Freeman 
 
  
 Зарегистрирован: 28.07.2007
 Сообщения: 30
 Откуда: Краснодар
 
 | 
			
				|  Добавлено: Сб Июл 28, 2007 5:30 pm    Заголовок сообщения: Нужна помощь. |   |  
				| 
 |  
				|  А где учебник взять??? ПОМОГИ ПОЖАЛУЙСТА! |  |  
		| Вернуться к началу |  |  
		|  |  
		| Shiru 
 
 
 Зарегистрирован: 25.10.2006
 Сообщения: 295
 Откуда: Russia, Moscow
 
 | 
			
				|  Добавлено: Сб Июл 28, 2007 6:06 pm    Заголовок сообщения: |   |  
				| 
 |  
				| Тебе для начала не учебник надо, а понять - что именно ты собираешься изучать. Нет в природе такого учебника, который можно прочитать, и научиться 'ассемблеру и дизассемблеру'. 
 Для начала ознакомься с этими статьями (ссылка в форуме некликабельна, копируй в адресную строку браузера):
 
 http://ru.wikipedia.org/wiki/Ассемблер
 http://ru.wikipedia.org/wiki/Дизассемблер
 |  |  
		| Вернуться к началу |  |  
		|  |  
		| Freeman 
 
  
 Зарегистрирован: 28.07.2007
 Сообщения: 30
 Откуда: Краснодар
 
 | 
			
				|  Добавлено: Сб Июл 28, 2007 7:13 pm    Заголовок сообщения: Сайт не верный! |   |  
				| 
 |  
				|  Там про асм и дизасм ничего нет! |  |  
		| Вернуться к началу |  |  
		|  |  
		| Freeman 
 
  
 Зарегистрирован: 28.07.2007
 Сообщения: 30
 Откуда: Краснодар
 
 | 
			
				|  Добавлено: Сб Июл 28, 2007 7:21 pm    Заголовок сообщения: АДРЕС КНОПОК В hex РЕДАКТОРЕ |   |  
				| 
 |  
				| Напишите кто нибудь, как в hex редакторе обозначаются кнопки sega genesis, в мортале код на кровь A B A C A B B, а как это будет в hex? Хочется код на кровь изменить еще!
 |  |  
		| Вернуться к началу |  |  
		|  |  
		|  |  
  
	| 
 
 | Вы не можете начинать темы Вы можете отвечать на сообщения
 Вы не можете редактировать свои сообщения
 Вы не можете удалять свои сообщения
 Вы не можете голосовать в опросах
 
 |  
 Powered by phpBB © 2001, 2005 phpBB Group
 
 |