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

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


Сообщения - perfect_genius

Страницы: [1] 2 3 4 5 ... 37 Далее
1
У временной памяти вообще нет ресурса, вроде бы. Или предел недостижим.
Глитчер не создаёт файлы (только при выходе), но редактирует ром, да. Сотня/две сотни изменений мелкого файла - ерунда для ресурса накопителя, он даже не заметит.
Рамдиск для тебя слишком сложно?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

16
Разное / Все о Nintendo
« : 09 Март 2024, 02:02:37 »
Действительно, почему же так не поступила перед выпуском предыдущих своих консолей? Видимо потому, что Супер Свитч будет тем же Свитч (только Супер), а значит заэмулить её будет проще, чем писать с нуля. У Wii внутрянка была частично от предыдущей консоли, поэтому это могло облегчить создание её эмулятора. Тогда понятно, что Нинка не хочет повторить подобного.

17
Разное / Все о Nintendo
« : 09 Март 2024, 00:20:34 »
Drowfan, разве Bleem закрылся не из-за того, что обанкротилась компания-разработчик? А обанкротилась, потому что потратила все средства на суды с Sony. И выиграла, кстати.
Если бы в эмуляторе был биос, то вряд ли бы выиграла. Значит, вместо него был самописный заменитель, как бывает в некоторых эмуляторах.

Быть может, это и разозлило Nintendo.
Разозлило её, что она скоро выпускает Супер Свитч, а тут эмулятор уже реально отвлекает от будущего инфоповода. Скорее всего, следующая консоль будет совместима со Свитч, что снова продлевает статус эмулятора актуальной консоли.

18
найти инструкцию, отвечающую за формат чтения именно этого блока
Сложно сказать определённо, тут надо думать как учёный, изучающий чёрный ящик :)
Надо определиться какую инструкцию нам надо искать. Глитчер умеет пока только в "да/нет", а не "больше/меньше".
Допустим, ищем инструкцию, которая должна проверять количество команд (239). Инвертируем её и что мы должны увидеть в игре? Какой эффект?
В игре же можно промотать все эти 239 команд в меню? Курсор/выделение доходит до последней и далее прыгает на первую команду/остаётся на месте? Надо сохраниться перед нажатием и поработать в Глитчере. Если при очередном нажатии курсор/выделение уйдёт за край, в несуществующую команду, в глюк-зависание, то значит угадали - такая инструкция есть :lol:
Далее можно в роме попробовать вставить в конец списка одну из команд и убедиться - выбирается ли она.

19
Т.е. из двух байт 0x0001 он может считать 01, обратившись по адресу левого, чётного байта, который 0x00?

20
можно ли будет это глитчером найти?
Глитчер сможет найти только один из этих указателей. А раз ты всё это уже нашёл, то моя программа ничем пока не поможет.

XX 00 YYYY - где X - ид команды, Y - ид игрока, зачем нули - не знаю.
Без нулей иксы или игреки встанут на нечётный адрес и Сега не сможет получить к ним доступ. Т.е. для выравнивания.

21
я продолжал тыкать пункт "1"
Тогда претензии насчёт графических багов неуместны :?


дополнение:
Глитчер просто бомбардирует всех кандидатов на инструкции. Отвечают ли они за графику, звук или ИИ - определить невозможно. Это делает человек, запуская багованный ром в эмуляторе и видя, что нужная ему инструкция задета, и далее начинает локализовывать её.

Будем ждать с нетерпением!
Там именно удобства, ничего кардинально нового: ром не надо переименовывать, отмена ошибочно нажатой клавиши и бэкап перед интересными багами для продолжения поиска с этого места в будущем.
Также изменены сообщения на более подробные.

22
где он? И ты говорил новая версия скоро будет. Я с ней смогу спрайты стран заменить
Тэстирую сейчас. Будет быстрее и со всякими удобствами. Но что-то менять или размножать пока не может, этим займусь после тэста.

забавный момент через Глитчер нашел. Жаль только, что не записал видео.
Тебе достаточно закрыть Глитчер, скопировать файл [поиск на паузе] и дописать в названии комментарий себе. Например "[поиск на паузе] забавный момент", чтобы разобраться в будущем.
омрачало происходящее действие - так это сопутствующие графические артефакты
Т.е. ты заметил интересное, нажал пункт 3 и продолжал отсеивать инструкции до конца, пока не осталась одна?
Обычно при отсеивании пропадают все ненужные графические баги.

твой игрок стоит как вкопаный секунд 5 и даже кнопка B не работает
Жаль, что твои сохранения не подходит к эмуляторам на ПК. Я бы посмотрел можно ли это исправить.

23
Думаю, раз он точный и это не форк (т.е. оригинал), то нет особой разницы какую использовать.
У меня ночная сборка - 0.6.3
При этом у него нет автоисправления контрольной суммы, т.е. ром с защитой будет активно сопротивляться изменениям. Видимо, придётся добавлять исправление в Глитчер.
FIFA вроде бы без такой защиты.

24
Je$TeR, мда, это дикость o_0
Вот почему я не смог разобраться в управлении.
Да, Глитчер пока не может такое изменить, он только инвертирует. Т.е. выключив проверку на нажатие B, игра будет постоянно переключать игроков, но и автоматически выбивать, если расстояние подходит.
У меня есть старые наработки по автопоиску драйвера геймпада в роме, чтобы можно было переназначать кнопки. Подумаю, что можно сделать.

Razuka, надеюсь, насчёт эмулятора ты понял, это серьёзное препятствие вообще что-то делать с игрой. Т.е. тебе теперь надо копить сохранения в BlastEm, я переключаюсь на него.

25
Sharpnull, так он мог просто забыть, что это он и делает :lol:

26
А ещё случилась немыслимая вещь. Я сделал несколько сохранений бага на одной версии Gens, а на другой версии у Razuka эти сохранения показывают другое поведение бага! Он то есть, то нет. Мы даже сверили ромы.
Т.е. против нас теперь даже кривость эмуляторов Gens :lol:  Получается, я мог исправить баг только для своей версии эмулятора - у меня он больше не встречался.
Нам надо использовать один общий эмулятор и желательно точный, как BlastEm.

Почему бы не попробовать тогда исправить расстановку игроков, как предлагает Je$TeR?
В моём нулевом сохранении игрок скидывает мяч как при баге, но мяч ловят. Т.е. перерасстановка действительно может решить проблему.

поменяв выбивание мяча на другую кнопку (а не на B, сейчас) сейчас бы улучшило геймплей многократно и было бы намного проще
А в чём проблема такого управления?

27
Разное / Все о Nintendo
« : 04 Март 2024, 20:31:09 »
Закрывает фанатские нелегальные поделки, когда другие компании (кроме Take Two) закрывают глаза. Сейчас вон на эмулятор Свитча наехала, что, считай, приговор эмулю.

28
Ты проверял именно на версии FIFA_Soccer_96_(F)_UEFA_only_v1_1?
Старая версия Глитчера оставляет найденную инструкцию изменённой в роме, если что.

29
Такое только в Gens? Потому что в BlastEm, Fusion и BizHawk такого нет.
Впервые увидел и тоже ужаснулся.

30
экран отображается если после игры в galaxian оба игрока зажимают любую одну или несколько кнопок
Получается, изменение этой инструкции помогает включить секретное меню, но при этом в мини-игре всё время будто нажато направление влево у первого игрока.

Почему же так неинтуитивно показывать этот экран? Видимо, изначально стрельба не требовала долбёжки по кнопке, лишь удерживание.
Сейчас проверил и необязательно зажимать обоим игрокам.
А ещё, даже тут разрабы накосячили - у второго игрока не работает Mode для показа этого экрана :lol:
Когда-то в коде обнаружил странности с этой кнопкой, может быть с этим и связано:
после драйвера геймпада Mode зачем-то откидывается для геймпада 1 в команде по адресу 0xE766, а у геймпада 2 он сохраняется (команда по адресу 0xE732)

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