PDA

Просмотр полной версии : А сцены игр здесь, значит, нет? :)



Raider
02.09.2007, 22:22
Поясняю, что имею в виду.
Как-то за все время пока бегал по zx.pk.ru так и не нашел "течения" людей, которые бы занимались дизассемблированием/копкой кода игрушек.
Это очень удручает. А в игрухах ведь много интересного.
Давайте делиться и рассказывать, кто что нашел...

вообще, в миру есть такое движение, называется rom hacking - введите эти два слова в google.
http://en.wikipedia.org/wiki/ROM_hacking
Rom hacking - течение наиболее близко к тому что я имею в виду. Я, например, имел удовольствие недавно поковырять SonEd - редактор игрушки Sonic. Сразу становится ясно что у нее внутри.
Про mario и не говорю =)

Очень важно уточнить - лично меня вовсе не инетерсует создание модов игр. Меня интересует только прикладнео знание как они написаны, как работает код у них внутри. Только в этом аксепте =)

goodboy
02.09.2007, 22:53
вот например: http://zx.pk.ru/showthread.php?t=3084

Raider
02.09.2007, 23:09
вот например: http://zx.pk.ru/showthread.php?t=3084

ну, два поста с максимальной информацией о адресах - это несколько слабовато..

rasmer
02.09.2007, 23:34
http://zx.pk.ru/showthread.php?t=4255&highlight=pulsoid

ну вот ещё есть...
но я пока подзабил на данный проект, но им заинтересовались уже для вставления туда ГС звучков....

Raider
03.09.2007, 16:02
ню понятна.
тяжко =)

char
03.09.2007, 16:22
ну я иногда развлекаюсь - дизасмя старые игрушки и испытывая удовольствие от разных находок :) это ж прям как археология, ептыть ;) (а происходит такое - обычно - когда свободное время выпадает на пик ностальжи к zx)

для того и наваял http://trd.speccy.cz/sbor/SPEDIZ.ZIP

вот, например, - аказываеццо, что Popeye - написана без использования IY, EXX и IM 2 ;)

/форум читаю редко

Raider
03.09.2007, 23:59
ну я иногда развлекаюсь - дизасмя старые игрушки и испытывая удовольствие от разных находок :) это ж прям как археология, ептыть ;) (а происходит такое - обычно - когда свободное время выпадает на пик ностальжи к zx)

для того и наваял http://trd.speccy.cz/sbor/SPEDIZ.ZIP

вот, например, - аказываеццо, что Popeye - написана без использования IY, EXX и IM 2 ;)

/форум читаю редко

про регистры - да.
есть чуваки, видать с C64 - глянь как музыка у тима фоллина нафигачена. один акумулятор и использован =)

потом, без IY написана большая часть игр на моей памяти. я сам его юзал несколько неохотно.
связана эта дискриминация с запарыванием данных по IY бейсиком. психология... :D

я дизассемблячу IDA, скинув эмулям дамп рабочей памяти.
она это делает на 5+..

нафорум захожу сам редко, то есть, то полгода нет.
отпиши свое мыло на fla_sh_inc
мыло точка ру. тока убери оба подчеркивания.

rasmer
04.09.2007, 00:35
я дизассемблячу IDA, скинув эмулям дамп рабочей памяти.
она это делает на 5+..Я так и не привык к этим виндовозным гуям... мну ближастее текстовый режим (исходы лабаю в редакторе от фары...). Пользуюсь SpeDiz(Жду ньювершн!!!)

char
07.09.2007, 00:31
...
нафорум захожу сам редко, то есть, то полгода нет.
отпиши свое мыло на fla_sh_inc
мыло точка ру. тока убери оба подчеркивания.

ну, емылко завсегда есть в архиве со spediz'ом ;)

...продолжим :)

например, в RiverRaid, - скроллер внизу - сделан не текстом, а полностью графикой, и всё это занимает уйму памяти :)

IsChess48 (Cyrus I) - удивительное и редкое для того времени (82-83г.?) стремление использовать inc l / dec l вместо inc hl / dec hl, и множество похожих, но слегка отличающихся процедур для расчета перемещений всех шахм. фигур...

первопроходцы-демомейкеры эдакие :) - не зря программа играла довольно сильно для своего времени ;)

Raider
13.09.2007, 22:59
как-нибудь раздербаню я r-type в IDA :-)

jerri
14.09.2007, 01:27
да ладно вам - R Type -сила
скорость 1\4 - 1 цикл - 4 фрейма - 12.5 фпс
Bob Pape очень старался сэкономить место
спрайты флипаются по горизонтали и вертикали
сами спрайты слегка сжаты :)

посмотрел версию для С=64 - совершенно не рулит

TomCaT
14.09.2007, 14:08
чем компилили Cauldron 1?

jerri
15.09.2007, 17:35
почему ты думаешь что компилили?

Shadow Maker
15.09.2007, 17:59
Там внутренности просто убийственные потому что... В трезвом уме такие конструкции написать по моему нельзя...

Raider
15.09.2007, 21:22
есть такая игруха Star Farce.
так вот там фарш не только на экране. я помню один раз пытался сделать наскок
на её код. это нечто. я естественно, могу ошибаться насчет качества. потому что я смотрел один раз и довольно фрагментарно. но как мне показалось, код размазан абсолютно по всей памяти вперемежку видимо с графикой.

Retrograd
15.09.2007, 22:33
Народ! А кто может показать на примере, как правильно дизассемблировать игру? Т.е. как определить блоки где хранится графика, как найти карту и т.п. Например, как правильно дизассемблировать тот же Manic Miner?

char
16.09.2007, 07:27
определить блоки поможет только личный опыт и, например, нажатие/просмотр/замена/стирание команд 0/5/7 в spediz'е :)

char
16.09.2007, 13:52
насчет Star Farce: так автор тот еще шутник:
;#5CD7
DEFM "Sure, hack it. No protection. "
DEFM "Dead easy, eh?"
...
;#BCDA
DEFM "LAURENT N. LOVES CLARE L."

а вот это (и похоже, не только), выполняется после запуска:
;
L_F0ED LD HL,L_CF58
LD B,#19
LD DE,#0019
L_F0F5 LD A,(HL)
AND #E0
LD (HL),A
ADD HL,DE
DJNZ L_F0F5
RET
прямо по живому мочит, гад ))) - портя отработавший код, текст и т.д.

так что, вместо имеющегося снапшота, надо смотреть авторскую-изначальную версию...

...

в приложении слегка подправленная MM2.$$$ (разметка блоков дизасма m.miner'а)

Slider
16.09.2007, 21:35
Даже авторская изначальная версия проработав некоторое время, сбрасывается. Так что, ты говоришь, оно портит? Надо вычислить все эти куски и замочить их!

Lethargeek
17.09.2007, 08:59
Там внутренности просто убийственные потому что... В трезвом уме такие конструкции написать по моему нельзя...
А вдруг подстрочник с 6502? Или вообще с компилятора под оный? ;)

diver
17.09.2007, 18:35
Народ! А кто может показать на примере, как правильно дизассемблировать игру? Т.е. как определить блоки где хранится графика, как найти карту и т.п. Например, как правильно дизассемблировать тот же Manic Miner?

на примере уже не могу, давно это было, только по памяти, я делал так:
1) поиск текста - самое простое, если в игре есть текст, то тупым поиском по кодовому блоку он находится. изредка, конечно, он зашифрован, а иногда еще и скомпрессирован.
2) поиск шрифта, спрайтов, анимации - тоже проще простого, тупым просмотром в RAW формате и изменением ширины спрайта в знакоместах
3) карту проще искать конечно блочную, например, как в Nipper 2 - повторяющиеся блоки - это тот же font, которым написана карта, соответственно надо искать сочетание повторений. а затем экспериментальным путем, заменяя байты проверять, запуская игру.
4) соответственно все процедуры - по CALL'ам и RET'ам.

Firelord
27.09.2007, 16:38
А кто может показать на примере, как правильно дизассемблировать игру?
К каждой игре индивидуальный подход. Когда у меня не было средств ПК, а следовательно, эмуляторов, IDA и т.п., я написал на Бейсике несколько небольших утилит.

Сначала загружал машинный код (обычно через Copy-copy), потом NEW и подзагружал утилиты по очереди. Они искали разные комбинации байт (легко было искать как команды, так и числовые значения) и позволяли просматривать текст. Чтобы узнать, где лежат изображения, обычно было достаточно написать сходу маленькую процедурку 33, L, H, 17, 0, 64, 1, 0, 8, 237, 176, 201 и из Бейсика проверять по очереди все комбинации HL.

Я пользовался всем этим тогда для поиска "кодов бессмертия", а несколько позже для того, чтобы перевести игры на русский язык. Для этого тоже специальная утилитка была сваяна на скорую руку.

Stingrey
27.09.2007, 17:31
Для поиска в "теле" программы шрифтов и спрайтов, имхо, Sprite Tools 2.0 - вне конкуренции! Все делается визуально и очень быстро (в турбо-режиме). http://trd.speccy.cz/system/SPRTO_20.ZIP

Raider
27.09.2007, 20:38
А вдруг подстрочник с 6502? Или вообще с компилятора под оный? ;)

Компиляторы/рекомпилеры пробовали только единицы и эти игры легко узнаваемы своей убогостью.
Так что распространившееся в последнее время предположение насчет компиляторов - смело можно исключить из предположений.

Добавлено через 12 минут

Народ! А кто может показать на примере, как правильно дизассемблировать игру? Т.е. как определить блоки где хранится графика, как найти карту и т.п. Например, как правильно дизассемблировать тот же Manic Miner?

Совсем забыл отписать автору этого вопроса.
Код/графика/уровни очень просто определяются когда просматриваешь память в символьном виде.
Именно не HEX-коды, а символы.
Через весьма небольшое время глаз начинает безошибочно по комбинациям символов определять код и графику. Данные уровней тоже весьма специфичны и отличаются от кода и от спрайтов.

У меня стояла прошивка 90-го года, в которой было такое просматривание. На экране, умещалось по 20 символов в строке (если не путаю). Причем, если на экране будет умещаться по 8,16,24 символа - данные в игре можно будет буквально "видеть глазами" в виде символов. Будут видны спрайты, структура уровней, таблицы итд.

А вообще - не хватает просматривалки которая бы:
1. Выводила дизассемблер в одном столбце
2. параллельно выводила бы графику интерпретированную как спрайты
3. выводила бы символы и ширину символьного окна можно было бы произвольно изменять.

Добавлено через 14 минут

Для поиска в "теле" программы шрифтов и спрайтов, имхо, Sprite Tools 2.0 - вне конкуренции! Все делается визуально и очень быстро (в турбо-режиме). http://trd.speccy.cz/system/SPRTO_20.ZIP

в Zynaps спрайты находит? :v2_laugh: