|
shedevr.org.ru Группа перевода приставочных игр "ШЕДЕВР"
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
CaH4e3
Зарегистрирован: 21.01.2004 Сообщения: 195
|
Добавлено: Вс Июн 20, 2004 9:03 pm Заголовок сообщения: |
|
|
На второй соньке оригинальный диск 10 финалки тоже показывает несколько файлов метров на пять в общей сложности. Все остальные данные записаны вне файловой системы... Хотя копируются то они без проблем...
Не слышал, чтобы для первой соньки такое практиковалось, но субканалы тут ни при чем... Просто игра читает сектора как-то по своему, не используя файловую систему... |
|
Вернуться к началу |
|
|
SergeyK
Зарегистрирован: 02.12.2003 Сообщения: 1278
|
Добавлено: Пн Июн 21, 2004 2:33 am Заголовок сообщения: |
|
|
Спорим на ящик пивца, что найду поинтеры в SilentHill? |
|
Вернуться к началу |
|
|
xaxatun
Зарегистрирован: 24.04.2004 Сообщения: 227
|
Добавлено: Пн Июн 21, 2004 9:30 am Заголовок сообщения: |
|
|
Разбиваю, разбиваю, свою долю получаю! _________________ Пика, пика... ЧУ!!! |
|
Вернуться к началу |
|
|
Chippy
Зарегистрирован: 27.01.2004 Сообщения: 68 Откуда: Курск
|
Добавлено: Пн Июн 21, 2004 11:06 am Заголовок сообщения: |
|
|
SergeyK писал(а): | Спорим на ящик пивца, что найду поинтеры в SilentHill? |
Да ну! А за доставку ящика пива кто платить будет?
Ну а если серьезно, где они?
Как можно текст удлиннять то? _________________ Hello, Comrades |
|
Вернуться к началу |
|
|
ArtNick
Зарегистрирован: 21.01.2004 Сообщения: 106 Откуда: Россия, Алтайский край
|
Добавлено: Пн Июн 21, 2004 11:33 am Заголовок сообщения: |
|
|
чиппи, читай мыло.. кой что там тебе писал по этому поводу..
хотя, я смотрю, г-н Orlangoor тебе и так уже почти всё рассказал..
успевший покопать игры народ потихоньку всё увеличивается и увеличивается..
да.. по поводу Xenogears.. посмотрите его ISO Buster'ом и жить станет намного проще ;)
ЗЫ РГР этот диск просто пересобрали с нуля, поэтому там все файлы видно.. это всё пакости от сквера.. они как-то TOC уродуют.. так, что потом записей о файлах не видно через винду.. г-н LedZeppelin говорил, что разбирался как и что изменено в TOC, и делал файлы "видимыми".. хотя, они вроде нормально достаются ISO Buster'ом..
ЗЫ 2 для тех, кто в танке TOC - Table of Contents таблица с записями о файлах, вроде таблицы FAT или MFT (для NTFS) (по крайней мере, выполняет ту же функцию - хранит список файлов, их размеры, занимемые физисечкие адреса) |
|
Вернуться к началу |
|
|
Orlangoor
Зарегистрирован: 09.06.2004 Сообщения: 217 Откуда: Ярославль
|
Добавлено: Пн Июн 21, 2004 12:38 pm Заголовок сообщения: |
|
|
Chippy писал(а): | Ну а если серьезно, где они?
Как можно текст удлиннять то? |
А мож у тебя и вправду разработчики извращенцы и садомазохисты? Попробуй просто удлиннить строку раздвинув разделительные нули.
Да кстати, ты спрашивал как читать файл если он дофига места занимает. Я же говорил тебе - используй хороший редактор (Возьми последний HIEW, не пожалеешь, и не будь букой, заплати 10$, SEN очень хороший человек. Ну или хоть последнюю фриварную версию возьми чтоли.. тебе за глаза хватит). Кстати Если всетаки будешь резать, то проблемы с адресами опять же решит базирование. _________________ Человек не должен зависеть от длины своего меча. Миямото Мусаси "Книга Пяти Колец" |
|
Вернуться к началу |
|
|
CaH4e3
Зарегистрирован: 21.01.2004 Сообщения: 195
|
Добавлено: Пн Июн 21, 2004 7:02 pm Заголовок сообщения: |
|
|
Там проблема с пойнтерами только одна - надо найти базу, с которой куски с текстами и указателями грузятся в память... Потмоу как недалече текстовых строк прямо штабелями лежат таблицы из указателей типа 0x8003xxx... Можно, конечно, вычислить, какие пойнтеры чему принадлежат, сверяя длины строки и разницу в пойнтерах... Но это, конено несколько геморрновато...
А вообще, ввсе строки выровнены по границе двойного слова, тоесть 4 байт... И в некоторых строках - да во многих, места чуть больше, чем требуется - на два, на один символ пустого места... |
|
Вернуться к началу |
|
|
Chippy
Зарегистрирован: 27.01.2004 Сообщения: 68 Откуда: Курск
|
Добавлено: Пн Июн 21, 2004 7:29 pm Заголовок сообщения: |
|
|
CaH4e3 писал(а): | А вообще, ввсе строки выровнены по границе двойного слова, тоесть 4 байт... И в некоторых строках - да во многих, места чуть больше, чем требуется - на два, на один символ пустого места... |
ВО-ВО!
Если строку удлиннить впритык до следующего слова, то в игре будет одно длинное слово состоящее из этих двух.
Например:
В кодах лежит "00START000LOAD00.."
Подлеваем START: "00STARTWWWLOAD00"
Получаем в игре на титульном экране:
STARTWWWLOAD (вместо START)
LOAD
OPTION
А если удалить S из START (получится 000TART000LOAD)
То в игре слова START не будет вообще.
"пусто"
LOAD
OPTION _________________ Hello, Comrades |
|
Вернуться к началу |
|
|
Chippy
Зарегистрирован: 27.01.2004 Сообщения: 68 Откуда: Курск
|
Добавлено: Пн Июн 21, 2004 7:36 pm Заголовок сообщения: |
|
|
2Orlangoor
Халяву я люблю, я же русский
Но для своих не жалко, тем более 300 р, за такую убойную вещь!
HIEW-катит, рулит, обгоняет!!!
2ArtNick Где мыло-то, что то нету, ты мне отсылал? _________________ Hello, Comrades |
|
Вернуться к началу |
|
|
CaH4e3
Зарегистрирован: 21.01.2004 Сообщения: 195
|
Добавлено: Пн Июн 21, 2004 8:26 pm Заголовок сообщения: |
|
|
Ноль является признаком конца строки... Каждая строка текста должня оканчиваться нулевым символом, так что если остаток - три нуля, то символов для вставки всего 2, последний из 4-х должен быть обязательно нулевым. |
|
Вернуться к началу |
|
|
Orlangoor
Зарегистрирован: 09.06.2004 Сообщения: 217 Откуда: Ярославль
|
Добавлено: Пн Июн 21, 2004 10:35 pm Заголовок сообщения: |
|
|
CaH4e3 писал(а): | Там проблема с пойнтерами только одна - надо найти базу, с которой куски с текстами и указателями грузятся в память... Потмоу как недалече текстовых строк прямо штабелями лежат таблицы из указателей типа 0x8003xxx... Можно, конечно, вычислить, какие пойнтеры чему принадлежат, сверяя длины строки и разницу в пойнтерах... Но это, конено несколько геморрновато... |
Ну так найти хоть один поинтер банальным сравнением (хотя и геморойным). А дальше база обычным вычитанием вычисляется. А почему бы на текст просто не поставить бряк в отладчике? Ассемблер шибко знать необязательно... Просто посмотреть смещение этой строки в памяти, вот и база. К тому же вычислению должно помочь то что база скорее всего довольно круглое число. _________________ Человек не должен зависеть от длины своего меча. Миямото Мусаси "Книга Пяти Колец" |
|
Вернуться к началу |
|
|
CaH4e3
Зарегистрирован: 21.01.2004 Сообщения: 195
|
Добавлено: Пн Июн 21, 2004 10:48 pm Заголовок сообщения: |
|
|
Orlangoor писал(а): | Ну так найти хоть один поинтер банальным сравнением (хотя и геморойным). А дальше база обычным вычитанием вычисляется. А почему бы на текст просто не поставить бряк в отладчике? Ассемблер шибко знать необязательно... Просто посмотреть смещение этой строки в памяти, вот и база. К тому же вычислению должно помочь то что база скорее всего довольно круглое число. |
Сравнением С ЧЕМ? Смещения в ресурсном файле и адреса размещения данных в памяти неизвестны и совершенно между собой не связаны... Обычным вычитанием добиться можно не всего, потому как указатели в тех таблицах идут не по порядку (может, это даже и не ТЕ указатели вовсе...)... Именно потому, что неизвестен адрес расположения в памяти, "поставить бряк" на текст нельзя... Ты представляешь себе, как вообще "ставятся бряки на текст"?
Если я знаю область памяти, в которую обращаяется функция для чтения строки текста, то мне уже не нужно ставить туда бряк, чтобы найти поинтер... И наоборот - если я НЕ знаю адреса, то бряки надо ставить вообще на ВСЮ память (или на что-то специфическое, вроде порта вывода, как на НЕС), чтобы найти ту ячейку, в которой лежит текст...
И база - это не обязательно круглое число, а точнее - совершенно не обязательно... Кусок файла может быть загружен в любое доступное в оперативке место, так что адреса строк могут начинаться с ЛЮБОГО доступного адреса...
Сергейка, достань ты, наконец, эти пойнтеры ж))) |
|
Вернуться к началу |
|
|
ArtNick
Зарегистрирован: 21.01.2004 Сообщения: 106 Откуда: Россия, Алтайский край
|
Добавлено: Вт Июн 22, 2004 6:18 am Заголовок сообщения: |
|
|
Chippy писал(а): | 2ArtNick Где мыло-то, что то нету, ты мне отсылал? |
отсылал..
ЗЫ HIEW mustdie WinHEX 4ever =)
в WinHex'Е "In Place Edit" включаешь и всё.. никаких 10-минутных закрузок файла в память и таких же сохранений.. |
|
Вернуться к началу |
|
|
Virtual_Killer
Зарегистрирован: 25.03.2004 Сообщения: 610 Откуда: Чекагинск
|
Добавлено: Вт Июн 22, 2004 9:11 am Заголовок сообщения: |
|
|
ArtNick писал(а): | .. г-н LedZeppelin говорил, что разбирался как и что изменено в TOC, и делал файлы "видимыми".. хотя, они вроде нормально достаются ISO Buster'ом.. |
ISO Buster их тоже не видит:
Я пробовал делать "Поиск пропущерных UDF файлов и папок" - не помогло.
Там есть ещё "Сканирование: файловая система", но оно почему-то не активно. _________________ Не поймите меня правильно |
|
Вернуться к началу |
|
|
Orlangoor
Зарегистрирован: 09.06.2004 Сообщения: 217 Откуда: Ярославль
|
Добавлено: Вт Июн 22, 2004 11:28 am Заголовок сообщения: |
|
|
CaH4e3 писал(а): |
Сравнением С ЧЕМ? Смещения в ресурсном файле и адреса размещения данных в памяти неизвестны и совершенно между собой не связаны... Обычным вычитанием добиться можно не всего, потому как указатели в тех таблицах идут не по порядку (может, это даже и не ТЕ указатели вовсе...)... Именно потому, что неизвестен адрес расположения в памяти, "поставить бряк" на текст нельзя... Ты представляешь себе, как вообще "ставятся бряки на текст"?
Если я знаю область памяти, в которую обращаяется функция для чтения строки текста, то мне уже не нужно ставить туда бряк, чтобы найти поинтер... И наоборот - если я НЕ знаю адреса, то бряки надо ставить вообще на ВСЮ память (или на что-то специфическое, вроде порта вывода, как на НЕС), чтобы найти ту ячейку, в которой лежит текст...
И база - это не обязательно круглое число, а точнее - совершенно не обязательно... Кусок файла может быть загружен в любое доступное в оперативке место, так что адреса строк могут начинаться с ЛЮБОГО доступного адреса...
Сергейка, достань ты, наконец, эти пойнтеры ж))) |
Мля... Насчет поставить бряк чтобы определить поинтер я конечно ступил .... Если адрес строки известен, то они нахрен не нужны.... Спасибо что поправил.
Но насчет сравнивания указателей (если это конечно те указатели) ведь можно посчитать длинну от начала одной строки до начала следующей, и после этого вычитанием пытатся найти эту длинну. Если найдена - один поинтер в кармане, а значит и база.
Насчет круглых чисел в качестве значения базы - ну я же не утверждал что она круглое число - я сказал что вполне вероятно. Просто компиляторы (если они не на голом асме писали) любят таким образом размещать данные для удобства отладки.
ArtNick писал(а): | ЗЫ HIEW mustdie WinHEX 4ever =)
в WinHex'Е "In Place Edit" включаешь и всё.. никаких 10-минутных закрузок файла в память и таких же сохранений.. |
Ты попробуй сначала hiew, а потом и говори. Даже после патча файла, он правит там только те байты которые изменил, так что никаких 10 минутных сохранений нет. А возможностей в hiew действительно немеряно (к сожалению правда многие из них связаны с оффтопиком x86 процессором). В hiew к примеру намного удобнее расшифровывать закодированные данные чем в WinHex. Я на Hiew сижу с 97 года, о чем еще не разу не пожалел. _________________ Человек не должен зависеть от длины своего меча. Миямото Мусаси "Книга Пяти Колец" |
|
Вернуться к началу |
|
|
CaH4e3
Зарегистрирован: 21.01.2004 Сообщения: 195
|
Добавлено: Вт Июн 22, 2004 12:30 pm Заголовок сообщения: |
|
|
Orlangoor писал(а): | Но насчет сравнивания указателей (если это конечно те указатели) ведь можно посчитать длинну от начала одной строки до начала следующей, и после этого вычитанием пытатся найти эту длинну. Если найдена - один поинтер в кармане, а значит и база.
|
Гемор в том, что по одной строке найти указатель практически нереально... Либо таких указателей там будет куча (имеют место блоки с кучей одинаковых указателей), либо пойнтеры лежат не так, как строки - подряд - тогда сравнивать длины бесполезно...
Чтобы сравнивать, надо брать не одну длину строки, а целую серию длин, но тут уж руками сложновато - нуна прогу, которая будет выдавать в файл разницу между соседними двойными словами (благо в ЗЫЧ они не могут лежать на по некратным 4 адресам, так что прога будет работать один раз) и уже там искать свои последовательности...
Orlangoor писал(а): | Насчет круглых чисел в качестве значения базы - ну я же не утверждал что она круглое число - я сказал что вполне вероятно. Просто компиляторы (если они не на голом асме писали) любят таким образом размещать данные для удобства отладки.
|
Компиляторы тоже ничего не любят. Они размещают данные подряд, и каким по счету в этом ряду окажется буффер со строками - неизвестно. Единственное что известно, что компилятор кладет данные с выравниванием по границе двойного слова... Круглые адреса отлаживать ничем не легче, чем "некруглые", на чем бы ни была написана программа... Единственным соображением, из которого может исходить человек (причем именно на асме) - это красота... ;) |
|
Вернуться к началу |
|
|
Chippy
Зарегистрирован: 27.01.2004 Сообщения: 68 Откуда: Курск
|
Добавлено: Чт Июн 24, 2004 6:04 pm Заголовок сообщения: |
|
|
А есть ли какой нибудь отладчик?
Или редактор памяти, типа как в PSXEmu была беда такая.
Типа SoftIce только для Соньки?
О ПОЙНТЕРЫ, ГДЕ ВЫ!!!!!! _________________ Hello, Comrades |
|
Вернуться к началу |
|
|
ArtNick
Зарегистрирован: 21.01.2004 Сообщения: 106 Откуда: Россия, Алтайский край
|
Добавлено: Пн Июн 28, 2004 7:20 am Заголовок сообщения: |
|
|
Chippy писал(а): | А есть ли какой нибудь отладчик? |
есть у меня несколько отладчиков, но "типа softice'а" точно ни одного нет.. в основном самопальные.. написанные ногами и второпях.. |
|
Вернуться к началу |
|
|
|
|
Вы не можете начинать темы Вы можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
Powered by phpBB © 2001, 2005 phpBB Group
|