Разработка и ромхакинг > Ромхакинг и программирование
Какой 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, но там почти нет отладочных инструментов.
Навигация
Главная страница сообщений
Следующая страница

Перейти к полной версии