Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - perfect_genius

Страницы: [1] 2 3 4 5 ... 37 Далее
1
Про понимание существующего кода нейросетями. Если иностранец выполнил именно то, что было нужно, то неважно как ему перевёл разговорник. Если бинарник делает именно то, что описала нейросеть, изучавшая его, то всё норм. Если нет, то придётся уже лезть разбираться самому.

2
Пишешь ты интересно, но
предполагается, что ромхакер уже знает что где лежит в роме и в каком формате. И это что-то существующими доступными программами не редактируется, а хотелось бы сделать что-то свое
почему же тогда материал для начинающих? Лучше бы отметить это в заголовке, типа [All] Создание редактора рома на Бэйсике для начинающих.
Так твой материал найдёт твоя целевая аудитория, а не твоя - пройдёт мимо и даже не будет иметь повода отвлекать тебя.

3
DimonRU, вот здесь за собой прибери, пожалуйста.

4
Revers, так он про это же и говорит. Пусть нейросеть улучшает картинку, а не забирает у нас сборку пазла.

supremacy, тема ведь про понимание уже существующего кода. При создании программы с помощью нейросети мы можем удостовериться в правильности работы этой программы только разобравшись в написанном или написав самому свою версию такой же программы и сравнить результаты их работы. А если код уже есть, то остаётся только тэстировать понимание нейросетью кода:
Цитата
Как работает код?
Для чего используется рекурсия? Проиграй этот код для входных значений: EAX = 321, ECX = 16, EDI = 1000h
Цитата
Этот код преобразует десятичное число, заданное в регистрах EAX в строковое представление в регистре EDI. Рекурсия используется для преобразования числа в строку до тех пор, пока число не станет меньше радикса (в данном случае 16).
Цитата
После выполнения кода в строковом буфере EDI будет записано "321".

Если результат не совпадает с результатом работы программы, тогда и можно начать не доверять нейросети.

5
FireFox Фан, попробуй тогда создать там отдельную тему.

6
Вот снова пробуют, уже на более серьёзных нейросетях:
Цитата
We are a team of researchers from different universities (Arizona State University, EURECOM and University of Padua) who would like to set up a user study to measure the impact of Large Language Models (e.g. ChatGPT, LLAMA 2) during the Software Reverse Engineering (SRE) process.
docs.google.com/forms/d/e/1FAIpQLSd4n6x7hpCmBWQXX75H7nWeMABSjM9p6P58YChqOTiXG_F9xA/viewform

7
В переводах на другие языки видно, что титульный экран переделывали.
У их авторов спрашивал инструменты?

Профиль Марата

9
Кажется, декомпил Zero Tolerance где-то на форме выкладывали. Он даже компилился.
С QuackShot Starring Donald Duck не путаешь? Исходники Zero Tolerance есть у Сегамана, но отдать сообществу не имеет права. А в сетевой части разобраться не смог. Ну хоть исходники в видеотрансляции засветил, и на том спасибо. Поможет в будущем дизасме.

vetalfox очень давно воюет с MK3 в плане графики
Он ведь уже бросил это дело и пропал в прошлом году?

10
DimonRU, тебе ж сюда: emu-land.net/forum/index.php/topic,85072.0.html
Не забудь удалить свой коммент.

11
скоро будет что-то дизассемблированное для сеги и помимо соников! 
DrMefistO разбирал ведь QuackShot Starring Donald Duck: emu-land.net/forum/index.php/topic,81348.0.html

12
Есть тема про переводы. Зачем ты создал ещё одну? :?

13
Главное не переехать за край, а то упадёшь.

14
FireFox Фан, просто поищи в этих файлах через хекс-редактор заголовки ромов, названия.

15
Разное / Все о Nintendo
« : 30 Март 2024, 02:28:52 »
Т.е. будет или Super Switch, или Switch Advance. Ставлю на первый вариант :)

16
У временной памяти вообще нет ресурса, вроде бы. Или предел недостижим.
Глитчер не создаёт файлы (только при выходе), но редактирует ром, да. Сотня/две сотни изменений мелкого файла - ерунда для ресурса накопителя, он даже не заметит.
Рамдиск для тебя слишком сложно?

17
Типа "Глитчер 3.0", но новая область поисков, другая логика. Т.е. предыдущий поиск остаётся ("инвертер - вкл/выкл"), а это дополнение к нему ("поменять местами/размножить"). Или же разделю на две отдельные программы и будет набор инструментов с одним общим названием.

Этот тестовый код уже может изменить и поведение игроков, по идее. Поменять G и D, оставив буквы на своих местах - один из твоих пунктов.
А для Je$TeR может помочь лучше разобраться в формате команд, найти дополнительные списки указателей/смещений, переуказать нужные на конец рома, где разместит свои вещи.

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

18
Ты не ответил, в чём у тебя проблема с жёстким диском, вот и не сделал. Переходи уже на SSD, не сопротивляйся :D
Ну или создай RAM-диск.

19
Есть некоторые успехи с указателями. Новый алгоритм ищет группы байтов, похожие на указатели/смещения, и сдвигает их на одну позицию. В итоге в игре меняются местами то спрайты персонажей, то звуки, то ещё что. Т.е., как и писал ранее, можно будет объект/звук поменять на другой или размножить.
Примеры того, что получил буквально за первые пробы порчи рома:

   UMK3
1 - поменялось управление - подножка теперь апперкот, например. Файребол Сони замораживает противника, ракета Сектора тянет противника как сетка Сайракса...
4 - У Сони не работает захват ногами. У Страйкера пистолет наносит урон только вблизи. Надо разобраться что это за группа.

   Streets of Rage 2
1 - спрайты героев
2 - звуки в меню, падения
3 - координаты разрушаемых предметов
4 - ? (выпрыгивающие из люка сбивают других!)
7 - сила откидывания

   Contra Hard Corps
7 - указатели уровней. Можно выбирать любой уровень теперь
11 - кадры анимации смены портретов
14 - спрайты состояний персонажей

Ром надо переименовать в rom.gen, он будет повреждаться и восстанавливаться при каждом нажатии. При этом серьёзных багов новый способ хака не вызывает :ohmy:
Это только проба идеи, так что текущий неудобный интэрфэйс - временный.

Хотел проверить и вашу игру, но не знаю там ничего. Решил оставить удовольствие от открытий вам самим :)
Могут меняться, например, флаги, команды, униформа, звуки.

20
SeregaZ, есть некоторые успехи с указателями. Алгоритм ищет группы байтов, похожие на указатели или смещения, и сдвигает их на одну позицию. В итоге в игре то спрайты персонажей меняются местами, то звуки, то ещё что. Т.е., как и писал ранее, можно будет объект/звук поменять на другой или размножить. Можешь поиграться с UMK3, может и обнаружишь нужные тебе адреса.
Примеры того, что получил (число - это номер группы указателей/смещений):

   UMK3
1 - поменялось управление - подножка теперь апперкот, например. Файребол Сони тормозит, ракета Сектора тянет противника будто сетка Сайракса...
4 - У Сони не работает захват ногами. У Страйкера пистолет наносит урон только вблизи

   Streets of Rage 2
1 - спрайты героев
2 - звуки в меню и падения
3 - координаты активных предметов
4 - ? (выпрыгивающие из люка сбивают других)
5 - ? (у минибосса неуязвимость на летящие ножи?)
7 - сила перекидывания?

   Contra Hard Corps
7 - указатели уровней
11 - кадры анимации смены портретов
14 - спрайты состояний персонажей

Ром надо переименовать в rom.gen, он будет повреждаться и восстанавливаться при каждом нажатии. При этом серьёзных багов такой способ хака не вызывает :ohmy:
Это только проба идеи, так что текущий неудобный интэрфэйс - временный.

21
Судя по форме твоего текста ты набирал его на телефоне, который держал вертикально? :)

22
Все абсолютные адреса в роме, независимо от инструкции.
В итоге очередной провал, нужного не добился. Хотел сделать, чтобы в UMK3 при старте игры начинался не выбор режима боя, а Галага. Когда-то ковырял ром в отладчике и запомнилось, что легко перенаправлял экраны в друг друга меняя адреса прыжков.
Алгоритм поиска кандидатов в адреса был такой - проходим по чётным байтам рома и если этот байт - ноль, то смотрим следующие 3 байта.
Если это трёхбайтное число больше размера рома или меньше 512 (первые байты рома - векторы прерываний, прыжки на них не интересуют) - то пропускаем.
Сначала хотел собирать и перекрывающиеся кандидаты, но в итоге решил, что в любом случае повредим оба варианта и увидим результат на экране, поэтому оставил алгоритм простым.
Сначала искал момент прыжка в экран выбора режима боя. Заменял все кандидаты адресом самой первой инструкции игры. Ожидалось, что однажды нажму Start и игра покажет не экран выбора режима, а логотип Сеги. Это случилось уже примерно через 50 попыток, адрес прыжка найден? Но оказалось, что в логотип уходит и при выходе из настроек, и ещё где-то. Как так то? Я ж менял адрес только в одном месте... Выходит, что все эти экраны прыгают не на начало игры, а на код до места, где я изменил адрес.
Ок, всё равно проверим-ка изначальную идею. Теперь решил искать адрес прыжка на Галагу, нашёл быстро. Вставил этот адрес вместо прыжка на логотип Сеги и в итоге при старте происходит синий экран смерти :D
Тут пришла идея, что кандидатов лучше портить сразу адресом прыжка на Галагу, а не на логотип. Начал новый поиск и... ничего.
Видимо, перед прыжком на Галагу происходят всякие инициализации, которые пропускаются в случае старта из меню основной игры.
Впервые с начала разработки Глитчера заглянул в отладчик - а возможно ли вообще легко сделать то, что я хочу? Увидел спагетти кода UMK3 в этом месте, приуныл и решил оставить эту идею.

Далее решил искать числа в роме. Например, в Streets of Rage в начале даются 3 жизни - найти это число. Альтернатива поиску в памяти, т.е.
Не нашёл, зато нашёл континиусы, их тоже оказалось 3.
Решил снова глянуть в отладчик. Оказалось, что игра зачем-то формирует это число на ходу - вносит 1 в регистр, потом прибавляет это число на себя, добавляет ещё один 1 и раздаёт эту тройку обоим игрокам. Кто знает - что это? Защита от Game Genie? :neznayu:
В настройках можно выбрать уровень сложности, но это не влияет на количество жизней.
В итоге на эту идею тоже пока забил.

Добавлено позже:
Пока писал это, вдруг дошло, что я забыл проверять кандидаты на адреса - на чётность :facepalm:
100308 -> 65787 (отсеялось 35% кандидатов)
Вряд ли это изменит ситуацию, конечно.

23
vetalfox занимался оптимизацией тайлов и палитр:

Картиночки, я программировать и хакать не умею

Небольшая оптимизация:
- Убран 1 цвет кожи  :(
- перераспределены палитры
- убраны "лишние" тайлы
- выделены 2 отдельных цвета для курсоров выбора персонажей (то есть их можно в теории циклично менять на более тёмные/более светлые, как в аркаде)

Может, теперь ты можешь помочь ему, сделав софт?

24
Cyneprepou4uk, может и добавлю со временем, но пока не нашёл причины.
Идея была как можно меньше ломать работоспособность игры. Sharpnull предлагал трогать ещё BRA и NOP'ы, но старый алгоритм ломал инструкции блоками, подряд, поэтому это не подходило. Новый же перемешивает, поэтому можно попробовать добавить и их.
Пока буду ждать игру, к которому нельзя сделать хак трогая только BEQ/BNE.
Сейчас есть RoboCop Versus The Terminator и Battletoads, в которых не удалось отключить счөтчик очков отдельно от остального интэрфэйса, поэтому буду пробовать искать их координаты, чтобы установить его за экран.
Для инструкций "больше/меньше" не получается придумать хак.

SeregaZ, jmp сейчас тоже ковыряю. Вернее, только его адрес.

25
Судя по конечному результату (по цифре три) ты испортил картинку? Снова не смог понять чего ты добивался. Вроде бы оптимизации, но чего?
можно уложится в лимит тайлов и сделать второй слой менее тайлоемкий
Что это даёт?

26
Нет, надо просто продолжать выбирать пункты. При нажатии 3 появилось сообщение "Продолжайте до полной локализации инструкции"?

27
Попытался найти глитчером формации
Формации - это расстановка игроков? Если их несколько, то это уже не "да/нет", "включено/выключено". Ты ожидал получить другое расположение?
не понятно, как результат в виде нужного адреса получить
Пункт 3 же.

Искал, как отключить часть интэрфэйса в некоторых играх. Он исчезал только полностью, отдельно так и не нашөл. Только потом дошло, что раз в игре еө части никогда не появляются и не исчезают отдельно, то такого кода в игре с большой вероятностью нет.

Сейчас становится ясно, что сложность поиска я увөл от интэрфэйса программы в сторону ищущего. Он должен ясно понимать, что он хочет найти.
Поэтому сейчас стратегия такая: пусть ищущий сначала спросит в теме что надо искать, чтобы получить желаемое, и эксперты Эмулэнда подскажут :)

28
там лишь пару сотен опкодов (первые 2 байта), а не весь диапазон из 65536 возможных опкодов.
Я неправильно смотрел, во втором байте всө же всякие параметры инструкции типа регистров, направлений и режимов. Так что действительно по двум байтам можно определять, что это инструкция, хоть и придөтся проверять все возможные комбинации. Но пока острой необходимости в этом нет.

29
Я таки доделал Глитчер до пользовательского состояния и теперь берусь за указатели. Найти так структуры не обещаю, но надеюсь поменять флаги местами или размножить.

30
Оказывается, такой способ хакать игру действительно работает (не во всех случаях, смотрите примеры в обновлөнной шапке) и теперь даже не требует часы поиска :wow:
Сделал новую версию, которая ищет в 2-3 раза быстрее первой версии и имеет всякие дополнительные удобства.

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

Страницы: [1] 2 3 4 5 ... 37 Далее