From 7a191aa2f8129a72ba091dd82dbe24c6899dc133 Mon Sep 17 00:00:00 2001 From: sShemet Date: Mon, 13 Jan 2025 20:07:38 +0500 Subject: [PATCH] vault backup: 2025-01-13 20:07:38 --- PERSONAL PROJECTS/Persona 1/Script Format.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/PERSONAL PROJECTS/Persona 1/Script Format.md b/PERSONAL PROJECTS/Persona 1/Script Format.md index 039de4a..e36073b 100644 --- a/PERSONAL PROJECTS/Persona 1/Script Format.md +++ b/PERSONAL PROJECTS/Persona 1/Script Format.md @@ -13,7 +13,10 @@ и повторяется адрес копирования 80100000 Скрипт начинается в памяти с 801010С0 -Скорее всего, текст проходит какую-то доп. обработку, либо грузится какой-то другой скрипт, потому что данные в памяти не соответствуют данным в первом скрипте. Это ещё предстоит выяснить. + нужно будет разобрать до конца этот пак скрипта, почему-то кажется, что распаковался он неверно. +Скорее всего, текст проходит какую-то доп. обработку, либо грузится какой-то другой скрипт, потому что данные в памяти не соответствуют данным в первом скрипте. Это ещё предстоит выяснить. + нужно будет разобрать до конца этот пак скрипта, почему-то кажется, что распаковался он неверно, так как текстовые блоки собраны в куче со скриптами. Ну а теперь, к практике - -Рекомендую запустить дебаггер и установить брейкпоинт на адрес 800ac264. Это как раз чтение команды скрипта. В регистре r2/v0 будет номер команды, а в r21/s5 - адрес чтрения текущей команды. Приложу ниже дизасм процедуы обработки. -Идём по скрипту и смотрим, что команда FF 55 00 00 - то, что нам нужно и сразу за ней +Рекомендую запустить дебаггер и установить брейкпоинт на адрес 800ac264. Это как раз чтение команды скрипта. В регистре r2/v0 будет номер команды, а в r21/s5 - адрес чтения текущей команды. Приложу ниже дизасм процедуы обработки скрипта, чтобы покурили на досуге и посмотрели как работает. Из этого скрипта мы видим, что команда 0x55 вызывает отрисовку строки. +Идём по скрипту в хексе и смотрим, что команда FF 55 00 00 - то, что нам нужно. Сразу за ней мы видим 4 байта С АДРЕСОМ СТРОКИ В ТЕКСТОВОМ БЛОКЕ, например F8 1C 10 80, то есть 80101CF8 - указание ЯВНОГО АДРЕСА строки в памяти. И так же у остальных текстовых команд. А так, как мы знаем куда грузится скрипт (80100000) и размер скрипта, то можем перерассчитать эти значения при импорте текстовых строк. +Вот вам и поинтеры, хы. +Короче, работы ещё много, нужно выяснить какой именно скрипт работает, как он обрабатывается и вообще разобраться с этими паками. +Не брезгуйте дебаггерами и гидрой :) \ No newline at end of file