 |
shedevr.org.ru Группа перевода приставочных игр "ШЕДЕВР"
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Rj
Зарегистрирован: 02.03.2005 Сообщения: 5 Откуда: Zion
|
Добавлено: Сб Окт 08, 2005 3:30 am Заголовок сообщения: Использование "A Simple Pointer Table Recalculator" |
|
|
Использование "A Simple Pointer Table Recalculator",
для легкой вставки текстовых блоков.
Р у к о в о д с т в о н а п и с а н о: Prez@lfx.org.
П о с л е д н е е о б н о в л ен и е: 23 августа, 2000.
Р у с с к и й п е р е в о д: "Rj" <kazanez@ngs.ru>
П о с л е д н е е о б но в л е н и е: 04 декабря 2001.
Введение:
Цель документа объяснить в простых терминах, как использовать утилиту для рекалькулирования поинтеров для большого блока текста. Почему?
Главным образом, потому что я вижу много людей, тратящих многие часы, делая это вручную, или потому что вижу недостаток документации к утилитам, в которой есть большая потребность, чтобы получить большую аудиторию пользователей к использованию поинтеров.
Требования:
Вам понадобяться некоторые дополнительные файлы и программы, что бы иметь возможность полноценно копаться в этом документе:
Включены в архив:
- файл кодовой таблицы для Final Fantasy 1 (ff1.tbl)
- пример скрипта (freedom.txt)
Это файл содержит цитаты связанные с темой свободы, которые отформатированы и годовы для вставки в FF1.NES ROM.
Я также добавил свою "Default Line" также, для всех оригинальных данных, которые не рассматриваются в новом скрипте.
НеВключены в архив:
- "A Simple Pointer Table Recalculator"
Это - простой рекалькулятор таблицы поинтеров (хехе), который я написал. Вы можете его взять по адресу
http://prez.lfx.org/dist/recalc/recalc10.zip.
- копия "Necrosaro's Thingy"
Я знаю, что некоторые из вас могут быть напуганы этим, так особенно начинающие хакеры, но "Necrosaro's Thingy" - это один из основных инструментов хакинга в этом деле. Не волнуйтесь, стоит вам нажать лишь несколько кнопок, и и вы придете к мысли, что Вам это нравиться.
- ROM "Final Fantasy 1 (english)"
- описание понятия поинтеров
В этом документе объяснения понятия поинтеров не приводятся, но я помню было хорошее руководство на эту тему, "'MadHackers guide to pointers", или или чтото вроде этого. Пробуйте вначале найти его, и прочитать.
- Общие знания по ROM хакингу :
Этот документ предполагает, что у Вас есть "достаточный" уровень знания относительно ROM хакинга. Если это не так, Вы можете столкнуться с терминами или понятиями, которых Вы не понимаете. Если дело обстоит так, изучите их, и возвращайтесь к этому руководству.
Окей бродяги, давайте погуляем:
Предварительные действия:
Откройте ff1.nes в Thingy.
Поместите ваши ff1.nes, ff1.tbl, и freedom.txt файлы в одну директорию, затем запустите "thingy.exe ff1.nes ff1.tbl". Я уже сделал установку в файле таблицы, чтобы иметь все необходимые пометки, в которых вы будете нуждаться, так что эта часть документа, где рассматривается программа Thingy, должна быть довольно проста.
1. Найдите место, где начинатеся блок диалогов.
(Не делайте это в этой демонстрации, так как я это уже сделал для Вас)
Возможно, что, если Вы были способны сделать дамп скрипат (должным образом), что Вы знаете, где этот адрес. Легкий способ найти его, это перейти к строкам в диаловом блоке, затем начать двигать курсор вверх. Спустя некоторое время, Вы столкнетесь с местом, где прекратиться показываться текст, и дальше идет только тарабарщина. В ROM файле Final Fantasy, это выглядит подобно этому:
Код: | t m mm7mqm#m#mhenton
aln9nQnln.n#n#n#n
#o woSo#olip#phiqyoq
Nothing here./LIGHT W
ARRIORS.. Just as*i
n Lukahn's prophecy
.*Garland has kidnap |
Как вы видите "Nothing here." является первой строкой в этом диалоговом блоке. Со строки "Nothing here." начинается блок диалогов, в роме с адреса 28210h, это будет нашим адресом "Началом Блока Диалогов ".
Отметье его:
Начало диалогов: 28210
2. Вставка нового скрипта.
Теперь, момент где проявляются лучшие качества Thingy. В файл таблицы, я уже добавил строки местоположения и вставку цитат, которые выглядят похожим на ниже привденные:
Код: | (28210h)Dialogue Block
{28210h-freedom.txt}Freedom |
Первый - первая строка описывает местоположения блока диалогов, вторая - описание файла вставляемого скрипта. Не думайте об этом слишком много, но эти вещи вы будете использовать достаточно часто, если начнете использовать Thingy. Я нахожу их очень полезными, так как я не должен повторно вводить адреса.
Так, теперь, когда вы открыли FF1. NES в Thingy, нажмите "J" (Jump), и выбирите пункт, названная "Dialogue Block". Теперь вы перейдете на строку "Nothing here."
Теперь, чтобы вставить freedom.txt в игру, нажмите "I", и затем выберите пункт называемый "freedom" (этим именем мы назвали наш скрипт в файле таблицы). Разве это было не легко? Но с Thingy мы пока еще не закончили
Имеется еще несколько адресов/значений, которые мы должны получить, так что давайте сделаем это.
Код: | Начало блока Диалогов: 28210
Конеу блока Дилогов:?
Начало таблицы Поинтеров:?
Знак разрыва:?
Адрес поинта по умолчанию:?
Dialogue start: 28210
Dialogue end: ?
Pointer table start: ?
Break value: ?
Default pointer address: ? |
3. Нахождение конечного адреса блока диалогов, и адрес поинта по умолчанию.
Сначала, конечный адрес блока диалогов, им будет последний символ разделения сообщений в последней строке нового скрипта, исключая "сообщения по умолчанию". Это это может показаться сложным, но в действительности, это очень просто:
Так как "сообщения по умолчанию" было включено в наш файл скрипта, (если Вы не смотрели на скрипт, "сообщения по умолчанию":
Код: | I have no political
insight.<END> |
Последнее сообщение является сообщением непосредственно перед этим:
Код: | One man with courage is
a majority.
--Thomas Jefferson<END> |
Адрес конца диалогового блока, расположен в месте где расположена буква 'n' слове Mr. Jefferson's. Если Вы перейдете к её местоположениею в ROM, Вы увидите, что она находится по адресу 2844E.
Также, пока мы здесь, мы можем определить адрес "сообщения по умолчанию", который является 28450. (Начало фразы "I have no po...".)
Код: | Начало блока Диалогов: 28210
Конеу блока Дилогов:2844E
Начало таблицы Поинтеров:?
Знак разрыва:?
Адрес поинта по умолчанию:28450
Dialogue start: 28210
Dialogue end: 2844E
Pointer table start: ?
Break value: ?
Default pointer address: 28450 |
4. Нахождение начального адреса Таблицы Поинтеров
Теперь начинатеся хитрая часть, нахождение начального адреса таблицы поинтеров. Если Вы знаете простой способ вычислить поинтеры для игры, делая это, Вы можете легко вычислить поинтер для первого сообщения. Таблица поинтеров должен быть непосредственно выше блока диалогов, так что знание этого позволяет несколько более легкче, найти начало таблицы поинтеров.
Работая с могими играми, я не знал простого способа вычисления поинтеров (поскольку они имеют нечеткую величину смещения), сейчас я попытаюсь объяснить хороший способ обнаружения начала таблицы поинтеров. Этот способ может вам не подойти, но используя его, мне всегда удавалось добиться результата.
По существу, просто листайте вверх от начала блока диалогов в вашем шестнадцатиричном реадакторе (Thingy:) и следите за каждым вторым байтом строки (на стороне шестнадцатиричного экрана). Вы должны обратить внимание, что число на которое вы смотрите становится прогрессивно меньше. Это выглядит приблизительно так:
Код: | ,--.
A3|A2|E9 A2 03 A3 5C A3 78 A3 8A A3 95 A3 BB A3
E5|A3|35 A4 65 A4 94 A4 DA A4 F8 A4 16 A5 5C A5
7D|A5|CA A5 0F A6 30 A6 4F A6 89 A6 A1 A6 CB A6
DF|A6|23 A7 3D A7 63 A7 94 A7 F1 A7 1E A8 4E A8
6E|A8|7C A8 CF A8 12 A9 36 A9 6F A9 9D A9 C1 A9
`--' |
Посмотрев еще, вы можете заметить что цифры стали изменяться незакономерно.
Код: | 01 01 01 01 05 05 05 05 05 05 05 03 05 05 05 03
01[01]01 01 01 01 01 01 01 02 00 03 03 03 03 03
00[82]09 82 5C 82 BD 82 D9 82 30 83 53 83 D1 83
FF 83 5E 84 78 84 94 84 CF 84 08 85 27 85 80 85 |
Это достойная догадка, что 00 82 - является первым поинтером.
Код: | [00] 82 09 82 5C 82 BD 82 D9 82 30 83 53 83 D1 83 |
Местоположение байта "00" и будет местоположением начала таблицы поинтеров. В ROM' t FF1.NES, это - адрес 28010.
Код: | Начало блока Диалогов: 28210
Конеу блока Дилогов: 2844E
Начало таблицы Поинтеров: 28010
Знак разрыва: ?
Адрес поинта по умолчанию:28450
Dialogue start: 28210
Dialogue end: 2844E
Pointer table start: 28010
Break value: ?
Default pointer address: 28450 |
5. Нахождения значения символа разрыва диалогов
Хотя и последняя, но не менее важная цифра, значение Символа Разрыва Диалогов. Это значение символа разрыва диалогов показывает игре когда останавливать вывод текста. Это значение /xx в вашем файле таблицы FF1.TBL. Это значение настолько просто найти, что я не буду объяснять как это делать
Значение символа разрыва диалогов является 00.
Код: | Начало блока Диалогов: 28210
Конеу блока Дилогов: 2844E
Начало таблицы Поинтеров: 28010
Знак разрыва: 00
Адрес поинта по умолчанию:28450
Dialogue start: 28210
Dialogue end: 2844E
Pointer table start: 28010
Break value: 00
Default pointer address: 28450 |
6. Запуск программы.
RECALC.EXE FF1.NES 28210 2844E 28010 00 28450
Код: | Рекалькулирование:
Блок Диалогов (28210-2844E)
Блок Поинтеров (28010)
1-ый поинтер: 8200
Значения символа разрыва: 00
Recalculating:
Dialog Block (28210-2844E)
Pointer Block (28010)
1st pointer: 8200
Break value: 00 |
.. И затем играйте в игру, я включил несколько скриншотов, конкретный результат работы этого руководства, так что надеюсь этот метод сработает и для вас.
Благодарности:
Конечно, никакой документ по ромхакингу не полон без небольшого количества приветствий ко всем тем людям, кто помогал Вам на этом пути.
MadHacker
You wrote the first pointer document I ever read, and I still refer new hackers to it.
Aziwoqpd
This poor guy had to put up with all my silly programming questions when I first started programming. I appricate it very much. He has also been more than kind to host my website, and has done me a done of favors.
Haws
Another programming buddy of mine. Thanks again for the "UNIX Network Programming" book, and all the help you've offered by explaining.
DesertAngel
Thanks for nothing, fool.. You wouldn't even offer a word of advice when I had that overflow bug all you could say was "Uhh.. I'm having sex right now", well thanks because after a short debugging session, I fixed it myself Thanks for this "tough love" support/lazyness.
The CTC
Thank you for the service that you provide to romhackers. It is most appricated by everyone.
Как со мной свзяться:
Вам понравилось это руководство? Вы ненавидите го? Вы ненавидите меня? Вы понятия не имеете, сколько я хочу знать Так сообщите это на ..
E-mail: prez@lfx.org
ICQ: 1035105
IRC: prez_on EFnet (#romhacking)
От переводчика:
Любые советы и комментария по тексту первода присылайте на следующие адреса
E-mail: kazanez@ngs.ru
ICQ: 18607235
Последний раз редактировалось: Rj (Вс Окт 09, 2005 10:25 pm), всего редактировалось 1 раз |
|
Вернуться к началу |
|
 |
АнС RRC2008


Зарегистрирован: 08.11.2003 Сообщения: 2818
|
Добавлено: Сб Окт 08, 2005 3:16 pm Заголовок сообщения: |
|
|
Дело ты затеял, конечно, полезное, но сам перевод получился уж слишком дословным, нерусским. Или такова была цель - чтобы текст попахивал американским акцентом? Фразы-то какие - Цитата: | я вижу много людей, тратящих многие часы, делая это вручную, или потому что вижу недостаток документации к утилитам, в которой есть большая потребность |
Кстати. Нужно всегда давать ссылку на оригинал документа.
Вообще, лично я использую самописный рекалькулятор, и всем желаю того же, т.к. описываемая прога не универсальна. |
|
Вернуться к началу |
|
 |
Rj
Зарегистрирован: 02.03.2005 Сообщения: 5 Откуда: Zion
|
Добавлено: Сб Окт 08, 2005 3:37 pm Заголовок сообщения: |
|
|
Дело то было в 2001 году, того уровня и текст от того и ссылки не сохранились, думаю по приводимому в начале текста названию документа, на оригинальном языке найти его будет несложно.
А запостил, что бы не пропадал зря.
еще валяються пару текстов, ПРОСТО СДЕЛАЙ, ИДИОТ! (Tm) "Перевод" Документ 1 - Основы Замены Текста и Графики и "ХАКИНГ И ПЕРЕВОД ТЕКСТА", но они требуют большей доработки, если руки дойдут и могу запостить. |
|
Вернуться к началу |
|
 |
АнС RRC2008


Зарегистрирован: 08.11.2003 Сообщения: 2818
|
Добавлено: Сб Окт 08, 2005 4:00 pm Заголовок сообщения: |
|
|
Rj писал(а): | ПРОСТО СДЕЛАЙ, ИДИОТ! (Tm) "Перевод" Документ 1 - Основы Замены Текста и Графики |
А, помню, классный док-хохма. Я тоже хотел было написать нечто подобное, но потом это чувство (стёбное) куда-то ушло.
Я думаю, что ромхакерские доки не стоит переводить - так как подразумевается, что их читают переводчики, у которых не должно быть проблем с английским. Переводя и разжевывая доки для всех, мы плодим переводчиков, плохо знающих язык, с которого переводят. |
|
Вернуться к началу |
|
 |
Rj
Зарегистрирован: 02.03.2005 Сообщения: 5 Откуда: Zion
|
Добавлено: Вс Окт 09, 2005 10:13 pm Заголовок сообщения: |
|
|
да, уж, дока... в духе книг в жОлтых обертках для думми, что то сделать за 5 сек, ...
к слову о переводу документации, увы массы пассивын, не многие даже знающие ангельский язык полезут разбираться даже в основах, если не дать базовый русскоязычный уровень знаний, то можно еще долго прозябать на задворках (неважно чего, но на задворках ), можно вспомнить трейд с VK, где все все понимали кто то правильно а кто то иначе. |
|
Вернуться к началу |
|
 |
Chaos Смотрящий в ночи

Зарегистрирован: 08.11.2003 Сообщения: 587 Откуда: Первозданный Хаос
|
Добавлено: Пн Окт 10, 2005 5:46 am Заголовок сообщения: |
|
|
Цитата: | увы массы пассивын, не многие даже знающие ангельский язык полезут разбираться даже в основах, если не дать базовый русскоязычный уровень знаний |
Ну, в таком случае им просто нефиг делать в благородном деле приставочного ромхакинга, если даже в этом они пассивны. _________________ Homo sum; humani nibil a me alienum puto. |
|
Вернуться к началу |
|
 |
Rj
Зарегистрирован: 02.03.2005 Сообщения: 5 Откуда: Zion
|
Добавлено: Пн Окт 10, 2005 10:03 am Заголовок сообщения: |
|
|
Хе!, благородный дон легонько не врубаеться, нужно призвать легион, что бы выцепить изюменку, увы, это скорее реальность, и даже необходимая, пусть зарисуются 1000 чайников, а если из ни 1-2-3 самовара вычеканяться, так это же лучше, мне кажется нужно быть более раскрытыми. ИМХО |
|
Вернуться к началу |
|
 |
Chaos Смотрящий в ночи

Зарегистрирован: 08.11.2003 Сообщения: 587 Откуда: Первозданный Хаос
|
Добавлено: Пн Окт 10, 2005 1:53 pm Заголовок сообщения: |
|
|
Ты даже представить себе не можешь, сколько вреда могут нанести 1000 чайников - а самовары на то и САМоВАРЫ, что способны до всего вычеканиться сами. _________________ Homo sum; humani nibil a me alienum puto. |
|
Вернуться к началу |
|
 |
АнС RRC2008


Зарегистрирован: 08.11.2003 Сообщения: 2818
|
Добавлено: Пн Окт 10, 2005 2:36 pm Заголовок сообщения: |
|
|
Rj, мы не сторонники количественного подхода. Шапками сейчас не закидаешь даже пиратское качество переводов. Хватит об этом. |
|
Вернуться к началу |
|
 |
Rj_ Гость
|
Добавлено: Пн Окт 10, 2005 11:58 pm Заголовок сообщения: |
|
|
Chaos писал(а): | Ты даже представить себе не можешь, сколько вреда могут нанести 1000 чайников - а самовары на то и САМоВАРЫ, что способны до всего вычеканиться сами. |
чайников нужно направлять, конечно проще закрыть глаза на существование ньюби, а правельней, помочь и направить ИМХО |
|
Вернуться к началу |
|
 |
|
|
Вы не можете начинать темы Вы можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
Powered by phpBB © 2001, 2005 phpBB Group
|