| Разработка и ромхакинг > Ромхакинг и программирование |
| Какой PSX дебаггер самый лучший? |
| (1/2) > >> |
| Raz:
Есть два вопроса: Какой PSX дебаггер самый лучший? И когда в PSX дебаггере ставится breakpoint на адрес, тогда часто срабатывает несколько инструкций, первая инструкция срабатывает 70 раз в секунду, а другая нужная инструкция срабатывает только раз. Как тогда выйти на эту инструкцию в дебаггере? Например в cheat engine показывает, что одна инструкция срабатывает постоянно, а другая лишь при определенном действии, но в PSX дебаггере выйти на вторую инструкцию нереально практически, что тогда делать? Может есть PSX дебаггер, который показывает количество сработавших инструкций? |
| paul_met:
--- Цитата: Raz от 02 Июнь 2020, 22:42:22 ---И когда в PSX дебаггере ставится breakpoint на адрес --- Конец цитаты --- Что значит на адрес? На запись, на чтение или на PC? В отладчике PCSX можно установить бряк на запись конкретного значения в конкретный адрес. В этом случае ничего лишнего срабатывать не будет. Можно даже бряк на регистр поставить. И если значение более или менее уникальное, то можно довольно быстро найти откуда оно берётся. |
| Raz:
--- Цитата: paul_met от 02 Июнь 2020, 22:58:35 ---Что значит на адрес? На запись, на чтение или на PC? В отладчике PCSX можно установить бряк на запись конкретного значения в конкретный адрес. В этом случае ничего лишнего срабатывать не будет. Можно даже бряк на регистр поставить. И если значение более или менее уникальное, то можно довольно быстро найти откуда оно берётся. --- Конец цитаты --- Забыл уточнить, бряк на чтение, на запись обычно меньше инструкций используется. И на PC тоже часто бывает какая-то инструкция пишется постоянно, а нужная инструкция срабатывает только раз. Чтоб выйти на необходимую инструкцию, в игре нужно сделать какое-то действие, набрать супер-прием на кнопках например, но так как PSX дебаггер постоянно срабатывает на бряке на чтение, игра постоянно останавливается, и сделать это получается почти нереально. Например, хочу изменить набор кнопок для разной магии в Castlevania Symphony of the night. Чтоб вместо набора влево, вправо, вверх, вниз + круг, было вверх, вниз + круг. Ставлю бряк на чтение по адресу где находится количество манны и игра постоянно останавливается, набрать прием на кнопках не получается, из-за срабатывания бряка на чтение. Что в этом случае нужно делать? |
| Sharpnull:
Raz, я не пробовал, но как вариант в MAME, который правда плохо эмулирует PSX, у breakpoint (PC) и watchpoint (запись или чтение памяти) можно указать условие и действие. В действии можно вывести информацию (printf, tracelog), а позже посмотреть, при этом не должно прерываться выполнение. В Mesen, например, есть Trace Logger, где можно указать условие при котором в файл запишется инструкция, например когда записывается что-то в адрес $4000. Должно быть что-то похожее для PSX. По-хорошему должен был кто-то сделать Mednafen с прикрученным расширенным отладчиком, сейчас там есть какой-то, но он вроде так себе. |
| krocki:
Raz, Всё просто...;) затираешь код инструкции который тебе мешает при бряке усё...ну или меняешь её с чтения на запись или записи на чтение (зависит от инструкции кода), что бы не мешалась временно и выйдешь на второй бряк кода инструкции, если он там есть. |
| Sharpnull:
Кстати, вы здесь говорите о древнючем PCSX 1.5 with Debugger? Я тоже как-то искал, попадался только этот хлам. No$PSX - простенький и неточный, тоже не годится. Rustation NG должен иметь отладчик, но сборку нужно искать или собирать самому, проверить не могу. По коду там поддержка GDB, значит можно как-то приспособить по-человечески. UPD: Он без GUI значит: This is not a standalone emulator, it's an emulator core that implements the libretro interface and can be used to play PlayStation game in a libretro frontend such as RetroArch. |
| Mr2:
--- Цитата: Sharpnull от 03 Июнь 2020, 01:35:56 ---Кстати, вы здесь говорите о древнючем PCSX 1.5 with Debugger? Я тоже как-то искал, попадался только этот хлам. --- Конец цитаты --- o_0 Вообще-то это и есть самый лучший PSX дебаггер. |
| paul_met:
--- Цитата: Sharpnull от 03 Июнь 2020, 01:35:56 ---Кстати, вы здесь говорите о древнючем PCSX 1.5 with Debugger? Я тоже как-то искал, попадался только этот хлам. --- Конец цитаты --- Его древность не отменяет тот факт, что он самый продвинутый в плане отладки (и не только среди отладчиков PSX). А отладчик из командной строки очень неудобный и не информативный. Взять тот же Меднафен - настолько неудобно постоянно все эти комбинации кнопок использовать, чтобы переключаться между режимами отладки и редактором памяти, что просто кучу времени убивает только одна навигация. И да, если отладчик не умеет делать дампы памяти (и загрузку её обратно), то лично для меня это не отладчик, а инвалид. |
| MetalliC:
--- Цитата: paul_met от 03 Июнь 2020, 07:53:47 ---Его древность не отменяет тот факт, что он самый продвинутый в плане отладки (и не только среди отладчиков PSX). --- Конец цитаты --- и чем же он продвинутый по сравнению скажем с MAME ? |
| paul_met:
--- Цитата: MetalliC от 03 Июнь 2020, 08:37:16 ---и чем же он продвинутый по сравнению скажем с MAME ? --- Конец цитаты --- Не знаю, что там в этом комбайне, не приходилось им пользоваться (да и смысла особого не было). В первую очередь имелись в виду специализированные эмули PSX с отладчиками (PSX 1.13, No$PSx). |
| dedok179:
Самый продвинутый в плане дебага это PCSX 1.5 with Debugger. Можно еще NO$PSX попробовать, но придется немного привыкнуть к тамошней системе задания бряков. Еще щас мутится PCSX Redux с продвинутым отладчиком, но он пока в некоторой степени сыром виде |
| MetalliC:
--- Цитата: paul_met от 03 Июнь 2020, 08:45:56 ---Не знаю, что там в этом комбайне, не приходилось им пользоваться (да и смысла особого не было). --- Конец цитаты --- ну так попробуй, но развидеть потом будет проблематично ;) плюс еще удобство и унификация - учишься один раз, и затем дебажишь любые системы поддерживаемые этим комбайном. |
| Raz:
Запускал cheat engine на PSX играх и показывает количество сработавших инструкций без прерывания процесса, но прога отображает байты как PC ассемблерные инструкции. У cheat engine исходник открытый, думал может можно переделать чтоб прога отображала байты как как PS ассемблерные инструкции (MIPS R3000A). Дебаггер там неплохой, скорей всего получше существующих для PS, и еще и настраиваемый под свои удобства. Тогда получился бы PS дебаггер, который может работать с любым эмулятором. MR2 сделал PSIG, которая отображает PSX инструкции в байтах, например. Или эта идея плохая, что посоветуете? |
| krocki:
Raz, Увы СЕ только под пк приложения типа интел асм...в ром залезть типа инструкций кода увидеть нифига...максимум что ты можешь юзать в читэнджине это...память редактить удобно, искать адреса для бряка отладчика в эмуле...ну ещё анализ структуры, если юзашь усё... конечно можно было написать плагин для СЕ например на той же LUA, что бы он память определённого дипазона в нех переводил в MIPS R3000A и отображал бы в другом окне отладке инструкции psx, проси у автора проги СЕ "Дарк Байта" может сделает. ;) |
| DrMefistO:
Советую смотреть на no$psx, если под винду. Очень крутой. |
| Raz:
--- Цитата: krocki от 03 Июнь 2020, 12:27:06 ---максимум что ты можешь юзать в читэнджине это...память редактить удобно, искать адреса для бряка отладчика в эмуле...ну ещё анализ структуры, если юзашь усё... конечно можно было написать плагин для СЕ например на той же LUA, что бы он память определённого дипазона в нех переводил в MIPS R3000A и отображал бы в другом окне отладке инструкции psx, проси у автора проги СЕ "Дарк Байта" может сделает. ;) --- Конец цитаты --- Думал может, самому попробовать это сделать, но в исходнике СЕ не вижу где эти инструкции находятся, не знаю или есть это в исходнике. |
| megavolt85:
--- Цитата: DrMefistO от 03 Июнь 2020, 18:31:58 ---Советую смотреть на no$psx, если под винду. --- Конец цитаты --- вот кстати сам его только и юзаю, просто замечательная весчь --- Цитата: MetalliC от 03 Июнь 2020, 08:37:16 ---по сравнению скажем с MAME ? --- Конец цитаты --- честно говоря не юзал, под линукс есть? а то no$psx прекрасен, но крутить его в виртуалке для меня напряжно, хотелось бы чего то нативного |
| Mr2:
--- Цитата: Raz от 03 Июнь 2020, 00:12:58 ---Ставлю бряк на чтение по адресу где находится количество манны и игра постоянно останавливается, набрать прием на кнопках не получается, из-за срабатывания бряка на чтение. Что в этом случае нужно делать? --- Конец цитаты --- Скорее всего мана постоянно читается для отображения её количества на экране. Можешь просто отключить эту инструкцию чтения, через патч в окне отладчика. |
| krocki:
как по мне когда юзал... PCSX 1.5 - хорошо японки игры робили на сколько я помню, в отличии от pSX 1.13... главное что бы игра запускалась нормально у PCSX 1.5 плохо было quicksave'ами не всегда робили...особенно бесят игры где нельзя скипануть заставку типа финал фантази, приходилось кадровой пропуск делать...ну или спидхак на СЕ юзать. |
| Sharpnull:
--- Цитата: Mr2 от 03 Июнь 2020, 05:18:11 ---Вообще-то это и есть самый лучший PSX дебаггер. --- Конец цитаты --- --- Цитата: DrMefistO от 03 Июнь 2020, 18:31:58 ---Советую смотреть на no$psx, если под винду. Очень крутой. --- Конец цитаты --- Я белоручка, думал кто-то пилит GUI отладчик уровня Mesen. Открываю этот PCSX с отладчиком, drag'n'drop нет, окно отладки модальное, чтобы продолжить нужно искать кнопку "Run", у окна Memory нет полосы прокрутки, шрифт не моноширинный и т. д. NO$PSX не смотрел, но он не обновляется, точность там тоже не очень судя по всему. Для SNES, например, есть bsnes-plus где прикрутили отладку к хорошему эмулятору, ещё есть Mesen-S. Здесь ожидал того же. --- Цитата: dedok179 от 03 Июнь 2020, 09:53:56 ---Еще щас мутится PCSX Redux с продвинутым отладчиком, но он пока в некоторой степени сыром виде --- Конец цитаты --- Это уже похоже на нормальный GUI отладчик, много настроек, есть GDB, поддержка Win/Lin/Mac, активно развивается. Разве что можно было сделать нативный GUI, но это спорно. Видимо, это пока единственная надежда в ближайшем будущем. Из WIP есть Duckstation, но там почти нет отладочных инструментов. |
| Навигация |
| Главная страница сообщений |
| Следующая страница |