1
Программирование / Помощь в использовании makefile для компиляции утилит на С
« : 05 Май 2026, 09:26:32 »Не тот древний, но скомпилировал с помощью pcc-20111206-win32.exeНу теперь осталось найти тот самый и скомпилировать под unix систему
В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.
Не тот древний, но скомпилировал с помощью pcc-20111206-win32.exeНу теперь осталось найти тот самый и скомпилировать под unix систему
И всё равно в С++ коде имена магическим образом не появились бы, это смогла бы нейросеть, видя картинку игры.Этого никто и не обещал, тут понятное дело нужно будет создавать "словарь" по адресам и вручную обзывать функции.
У меня имена даёт человек.
У тебя есть опыт реверса?нет

Как ты автоматически найдёш конец таблицы прыжком switch или вычислиш адрес прыжка, который записываетса в регистр? Или может проходил игру так, штобы эмулятр полностью разметил весь ром (где код, а где данные)? Это же надо применить всё, потыкать в каждый тайник, использовать все приёмы и т.д. И всё равно останетса код, который не доступен - што-то вырезанное, отладочное, всякий мусор...Как любит отвечать один форумчанин - а ты
Если бы можно было пройти код автоматически полностью, то не было бы проблемы в хаках сдвигать код.
Я делаю свой рекомпилятр игр Сеги, и человеку придётса делать в игре всё, штобы покрыть все пути. Програма будет подсказывать типа "холодно-горячо", насколько близок чел к новой ветке кода.

Программа у меня выдаёт пустой файл на тестовом примере, наверно не рабочая.Думаю, возможно, причина не в этом, а в том что код писался и собирался под древний Portable C Compiler, который даже не поддерживал (на 2001) до конца стандарт c89, и даже не под windows, указано - This translator is written in portable C language (both DOS and UNIX has been actively used in development). Думаю проще найти тот древний PCC (это даже не 1.0, т.к. она вышла только в 2011) и скомпилить бинарник на нем.
Как можно статически вычислить все условные прыжки, например? Это даже динамически непросто - требуетса пройти все возможные ветки кода.И в чём сложность пройти все ветки кода, когда как раз всё равно придётся "проходить весь код"? Я понимаю, когда код самоизменяющийся/генерирующийся в ram, это да гораздо сложнее, но вряд ли, кто такое юзал в мегадрайве.
Ещё вот эти рекомпилятры непонятно чем отличаютса от дизасма Иды и Гидры. Даже нейросеть не смогла обьяснить, как и автр этово на Хабре.Странный вопрос, рекомпилятор по сути это декомпиляция плюс трансляция. Так что ничем она не отличается, а включает ее в себя. Но я не шарю, лучше спросить того, кто шарит за эту тему, кто эмули писал, например MetalliC'a.
Вот на Сеге я сам всё расщупал, а на снес вообще ничего не смог сделать.Оно там делается почти также за одним исключением - после ввода кнопок направления должна быть выдержана пауза, перед тем как нажать кнопку удара.
есть комбо на месте кулаками; есть нижнее комбо в движении (зажать диагональ вперед-вниз, нажимать кнопку атаки до окончания комбо); есть верхнее комбо в движении (зажать диагональ вперед-вверх, нажимать кнопку атаки до окончания комбо),Это не комбо, в классическом его понимание, т.к. может быть заблокировано врагом, да и сама игра это за комбо не засчитывает. А комбо выполняется, как уже написали выше, комбинацией ударов "по этажам".
худшая игра серииНа вкус и цвет, для меня одна из лучших.
с дикими багами при использовании крюка,В игре есть баги, но с такими не сталкивался, что за баги с крюком?
Боёвка однокнопочная, не файтинг короче. Выглядит круто, звучит круто, но приедается почти сразу.
Блок не знаю зачем нужен, но он тоже есть.Блок очень удобная вещь, с ним играть в разы спокойнее, не нужно скакать от прожектайлов врагов, т.к. их можно тупо блочить, выжидая момент для атаки.
Этой примочкой можно получить код поведения персонажа из игры?В теории да, на практике код не человекочитаемый, ни фига не проще, чем ассемблер читать.
Написал я автору в дискорде про недостающие файлы и дал ссылку на этот тред, может отпишется.Короч, автор ответил что это альфа, выложил т.к. особо нетерпеливые очень просили, сейчас у него нет времени ей дальше заниматься.
Судя по именам формата func_[hex_addr].cpp, нейронка будто разбивает дизасм на подпрограммы и каждую почему-то заносит в отдельный source-файл, после чего переписывает на C++. Проблема в том, что в итоге после компиляции с C++ подпрограмма может получиться гораздо тяжелее, чем была.Нету там никакой нейронки, да и чтобы генерить файлы по шаблону она и не нужна, это сама программа делает, за это отвечает модуль lifter.cpp. Видимо он преобразует распознанные анализатором инструкции в эквивалентный cpp код.
Было бы из-за чего шум поднимать.Я всего лишь написал пост, а сделать из этого отдельную тему это уже решение модератора, так что ты давай к нему с этими претензиями

Половины файлов нету нужных для сборки, описание мутное. Если оно работает, то только у автора и только с соником. Больше никто не разберётся, в текущем виде.Ну хз, другому челу с дискорда 10 минут потребовалось, чтобы разобраться и скомпилировать проект.
И как потом собрать? Cгенерированные func_*.cpp файлы ссылаются на recomp_runtime.h, которого в репозитории нет. Из-за этого полученный код не собирается.А ты про обратную сборку из cpp, пропустил этот пост
У меня не получилось, короче. В одну сторону, работает. Каким-то чудом скомпилировал эти тулзы, они декомпилировали ром (насколько хорошо, большой вопрос). В output папке не появилось никаких рантаймов и makefile, что бы собрать обратно во что-то рабочее.
Наверное, должны были быть recomp_runtime.h и recomp_runtime.cpp, но их там нет. Либо забыли положить, либо не сделано до конца, либо я что-то делаю не так.
Я честно хз, я даже саму тулзу не пробовал собрать, оно мне пока вроде и не к чему, но да, пока все сыро и немного на отвали выглядит. Напиши ему ишью в репу пусть чинит, а то понимаешь хайпа навел, а оно нифига не фурычит
Непонятный текст там в источнике. Типа берётса ром и разбираетса. А эмулятр причём?В роме записаны инструкции, в эмуляторе есть декодер и интерпретатор этих инструкций. Как минимум, на сколько я понимаю, можно воспользоваться этим декодером.![]()
) тут в дискорд SGDK залетел и такой приблудой поделился под Sega Genesis - статический рекомпилятор на основе эмулятора SegaCxx. Позволяет получить из бинарника не asm, а с++ код, который после можно собрать под нужную платформу (звуковое и графическое API тоже подменяется на кроссплатформенные). На хабре вот тоже заметка про него https://habr.com/ru/articles/1029360/.в общем... нужен эмуль с сурсами, чтобы поправить там выгрузку трассера. во первых чтобы выгружало все, во вторых сам текст выгрузки хотелось бы перебрать. оставить только адрес обращения, без текста опкода, без текста дизасма, и прилагать текст только тех регистров, какие изменяются в этой конкретной команде. тогда общий объем трассера будет поменьше. сейчас Арес съедает циклы, добавляя omitted и количество циклов, сколько он сожрал.Так у Ares исходники открыты и есть подробная инструкция как собрать из них даже для винды (что не часто бывает).
а где тот - да хрен его знает.Blastem вообще не хостится на GitHub (там есть по моему только зеркало с исходниками), потому что он не на гите, а на Mercurial и на своём сервере. А вопросы задавать проще в официальном дискорде, ссылки на это всё есть на главной странице оф. сайта.

Всем здравстуйте, я тут новый. Я недавно скачал sgdk и у меня есть вопрос: файл resources.h сам должен создаваться?
И какое нафиг ии... все сделано рукамиНа дурака рассказ, портреты 146% нейронка.
Если кто подскажет, что свежее AkelPad поставить и сопоставимое по функционалу за 0 денег и при этом не Notepad++, буду благодарен.Я с него пару лет назад перешёл на CudaText от нашего разраба. Это аналог SublimeText (но есть тулбар), кроссплатформерный, бесплатный, с открытым исходным кодом, функциюионал хороший и расширяется плагинами. Рекомендую.
Mad, пожалуй, я поспешил с выводом, сейчас попробовал найти информацию, лишь это нашел: "Electra can be first found singing at Barbon's bar", так что, возможно, она реально поет.Более того, если запустить бетку и дойти до места первой встречи с электрой, то на ее месте можно увидеть заглушку в виде очень живучего "донована" по имени - Singer.
Кароче ясно одно - своего ценника игра не стоит.Судя по отзывам в стиме, писающих от радости игроков, своей цели авторы вполне достигли. Да игра, по всей видимости не так плоха, как я ожидал, но и не настолько хороша.
Рассказывай, что нового у этим скамеров?)Я их скамерами и не считаю, возможно жертвами нескольких неудачных решений и обстоятельств. Но это лично моё мнение. А что до нового, ну спроси у них сам, захотят расскажут, а мне в чужую кухню лезть и сплетничать за спиной не комильфо

Кстати, я удивился, што такое принимают в Стим. Кто-то встречал другие подобные програмы там? Интересно сколько они стоят.
Есть встроенный отладчик, "можно следить за палитрами, переменными, координатами и состоянием игры в реальном времени"Это из видео инфа или ты один из тестеров?
