Просмотр полной версии : А сцены игр здесь, значит, нет? :)
Поясняю, что имею в виду.
Как-то за все время пока бегал по zx.pk.ru так и не нашел "течения" людей, которые бы занимались дизассемблированием/копкой кода игрушек.
Это очень удручает. А в игрухах ведь много интересного.
Давайте делиться и рассказывать, кто что нашел...
вообще, в миру есть такое движение, называется rom hacking - введите эти два слова в google.
http://en.wikipedia.org/wiki/ROM_hacking
Rom hacking - течение наиболее близко к тому что я имею в виду. Я, например, имел удовольствие недавно поковырять SonEd - редактор игрушки Sonic. Сразу становится ясно что у нее внутри.
Про mario и не говорю =)
Очень важно уточнить - лично меня вовсе не инетерсует создание модов игр. Меня интересует только прикладнео знание как они написаны, как работает код у них внутри. Только в этом аксепте =)
вот например: http://zx.pk.ru/showthread.php?t=3084
вот например: http://zx.pk.ru/showthread.php?t=3084
ну, два поста с максимальной информацией о адресах - это несколько слабовато..
http://zx.pk.ru/showthread.php?t=4255&highlight=pulsoid
ну вот ещё есть...
но я пока подзабил на данный проект, но им заинтересовались уже для вставления туда ГС звучков....
ну я иногда развлекаюсь - дизасмя старые игрушки и испытывая удовольствие от разных находок :) это ж прям как археология, ептыть ;) (а происходит такое - обычно - когда свободное время выпадает на пик ностальжи к zx)
для того и наваял http://trd.speccy.cz/sbor/SPEDIZ.ZIP
вот, например, - аказываеццо, что Popeye - написана без использования IY, EXX и IM 2 ;)
/форум читаю редко
ну я иногда развлекаюсь - дизасмя старые игрушки и испытывая удовольствие от разных находок :) это ж прям как археология, ептыть ;) (а происходит такое - обычно - когда свободное время выпадает на пик ностальжи к zx)
для того и наваял http://trd.speccy.cz/sbor/SPEDIZ.ZIP
вот, например, - аказываеццо, что Popeye - написана без использования IY, EXX и IM 2 ;)
/форум читаю редко
про регистры - да.
есть чуваки, видать с C64 - глянь как музыка у тима фоллина нафигачена. один акумулятор и использован =)
потом, без IY написана большая часть игр на моей памяти. я сам его юзал несколько неохотно.
связана эта дискриминация с запарыванием данных по IY бейсиком. психология... :D
я дизассемблячу IDA, скинув эмулям дамп рабочей памяти.
она это делает на 5+..
нафорум захожу сам редко, то есть, то полгода нет.
отпиши свое мыло на fla_sh_inc
мыло точка ру. тока убери оба подчеркивания.
я дизассемблячу IDA, скинув эмулям дамп рабочей памяти.
она это делает на 5+..Я так и не привык к этим виндовозным гуям... мну ближастее текстовый режим (исходы лабаю в редакторе от фары...). Пользуюсь SpeDiz(Жду ньювершн!!!)
...
нафорум захожу сам редко, то есть, то полгода нет.
отпиши свое мыло на fla_sh_inc
мыло точка ру. тока убери оба подчеркивания.
ну, емылко завсегда есть в архиве со spediz'ом ;)
...продолжим :)
например, в RiverRaid, - скроллер внизу - сделан не текстом, а полностью графикой, и всё это занимает уйму памяти :)
IsChess48 (Cyrus I) - удивительное и редкое для того времени (82-83г.?) стремление использовать inc l / dec l вместо inc hl / dec hl, и множество похожих, но слегка отличающихся процедур для расчета перемещений всех шахм. фигур...
первопроходцы-демомейкеры эдакие :) - не зря программа играла довольно сильно для своего времени ;)
как-нибудь раздербаню я r-type в IDA :-)
да ладно вам - R Type -сила
скорость 1\4 - 1 цикл - 4 фрейма - 12.5 фпс
Bob Pape очень старался сэкономить место
спрайты флипаются по горизонтали и вертикали
сами спрайты слегка сжаты :)
посмотрел версию для С=64 - совершенно не рулит
чем компилили Cauldron 1?
почему ты думаешь что компилили?
Shadow Maker
15.09.2007, 17:59
Там внутренности просто убийственные потому что... В трезвом уме такие конструкции написать по моему нельзя...
есть такая игруха Star Farce.
так вот там фарш не только на экране. я помню один раз пытался сделать наскок
на её код. это нечто. я естественно, могу ошибаться насчет качества. потому что я смотрел один раз и довольно фрагментарно. но как мне показалось, код размазан абсолютно по всей памяти вперемежку видимо с графикой.
Retrograd
15.09.2007, 22:33
Народ! А кто может показать на примере, как правильно дизассемблировать игру? Т.е. как определить блоки где хранится графика, как найти карту и т.п. Например, как правильно дизассемблировать тот же Manic Miner?
определить блоки поможет только личный опыт и, например, нажатие/просмотр/замена/стирание команд 0/5/7 в spediz'е :)
насчет 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'а)
Даже авторская изначальная версия проработав некоторое время, сбрасывается. Так что, ты говоришь, оно портит? Надо вычислить все эти куски и замочить их!
Lethargeek
17.09.2007, 08:59
Там внутренности просто убийственные потому что... В трезвом уме такие конструкции написать по моему нельзя...
А вдруг подстрочник с 6502? Или вообще с компилятора под оный? ;)
Народ! А кто может показать на примере, как правильно дизассемблировать игру? Т.е. как определить блоки где хранится графика, как найти карту и т.п. Например, как правильно дизассемблировать тот же 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
А вдруг подстрочник с 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:
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot