форум группы Chief-Net форум группы Chief-Net
Перевод приставочных игр и не только!
drako site Перейти на сайт группы     Наш чат      Помощь      Поиск      Пользователи


 Страниц (1): [1]   

> Без описания
maslanin Пользователь
Отправлено: 17 Декабря, 2015 - 02:31:01
Post Id





Покинул форум
Сообщений всего: 16
Дата рег-ции: Июнь 2015  





Привет. Вот у меня собственно какой вопрос. Нужна помощь в понимании поинтеров на примере игры Metal Gear Solid [GBC]. Долго разжевывать не буду, почти сразу к вопросу перейду.

Нашел я текст меню (new game, continue и т.д., смещение 0x6C0C), таблицу поинтеров для меню (она прям над текстом 0x6B6C), нашел сам текст (0x148987) и поинтеры для него (опять чуть выше, 0x148787).

Собственно, вот та вещь, которую я не могу понять: вот есть таблица слов, есть поинтеры, которые идут по порядку. А как найти сам текст? Я должен искать указатель на указатель что ли? Ну так не получается найти.
ссылка на файлы - таблицы для меню и для диалога + оригинальный ром + с перерисованным шрифтом (диалог, я не нашел шрифт меню)
 
 Top
Guyver Администратор
Отправлено: 17 Декабря, 2015 - 02:32:00
Post Id



Chief-Net


Покинул форум
Сообщений всего: 10117
Дата рег-ции: Окт. 2014  
Откуда: Магадан





Guyver
"нашел сам текст (0x148987) и поинтеры для него (опять чуть выше, 0x148787)"
"А как найти сам текст?"
Что? :blink:

-----
Я не волшебник - я только учусь...
 
 Top
maslanin Пользователь
Отправлено: 17 Декабря, 2015 - 02:32:39
Post Id





Покинул форум
Сообщений всего: 16
Дата рег-ции: Июнь 2015  





maslanin
Хах, ну не так написал. Я нашел слова, разделенные символом FF (кажется им, пишу с телефона по памяти). И перед блоком слов находится плавно растущая таблица, в том же порядке что и слова, указывающая на эти слова. Как-то так. А я хочу понять, где и как искать сами предложения, с запятыми и так далее.
 
 Top
Guyver Администратор
Отправлено: 17 Декабря, 2015 - 02:33:01
Post Id



Chief-Net


Покинул форум
Сообщений всего: 10117
Дата рег-ции: Окт. 2014  
Откуда: Магадан





Guyver
А как ты нашёл слова? Так и ищи предложения. Ничем не отличается.
В предложениях так же есть FF. Ну и ищи их по адресам перед этими FF. Всё так же...
Т.е. по твоим словам ты нашёл "таблицу слов", а теперь ищи "таблицу предложений". Они ничем, кроме длины, не должны отличаться...

-----
Я не волшебник - я только учусь...
 
 Top
maslanin Пользователь
Отправлено: 17 Декабря, 2015 - 02:33:58
Post Id





Покинул форум
Сообщений всего: 16
Дата рег-ции: Июнь 2015  





maslanin
Ну слова я нашел относительным поиском. А предложения разве из голого текста будут состоять? Я думал, там что-то типа указатель1,указатель3! указатель6 указатель2, указатель1 и т.д.
 
 Top
alex_231 Супермодератор
Отправлено: 17 Декабря, 2015 - 02:34:20
Post Id



Chief-Net


Покинул форум
Сообщений всего: 4688
Дата рег-ции: Окт. 2014  





alex_231
Если в игре используется МТЕ (словарная система кодирования текста), то в предложениях не будет указателей, а будут коды (в один или два байта), соответствующие элементам словаря.
Текст тоже можно искать относительным поиском, а можно по таблице (которую можно составить по дампу видеопамяти).

-----
Делая выбор, отбрось простое решение и выбери правильное...
 
 Top
alex_231 Супермодератор
Отправлено: 17 Декабря, 2015 - 02:34:45
Post Id



Chief-Net


Покинул форум
Сообщений всего: 4688
Дата рег-ции: Окт. 2014  





alex_231
Ага, это же GBC, тут дамп не поможет, но таблицу ты более-менее верную составил (хоть и не совсем полную).
Текст хранится банками по h4000 байт начиная с адреса x1D4000, а вот с поинтерами там не всё понятно.
В тексте используется МТЕ: hFB - индикатор МТЕ, следующий за ним код - номер слова в словаре (том, который ты нашел).

-----
Делая выбор, отбрось простое решение и выбери правильное...
 
 Top
maslanin Пользователь
Отправлено: 17 Декабря, 2015 - 02:35:06
Post Id





Покинул форум
Сообщений всего: 16
Дата рег-ции: Июнь 2015  





maslanin
Ну вот, а я думал, что тут полуживой (читай, мервый) форум Улыбка
1. Таблица не полная, потому что я ее не закончил, и убрал подальше - не смог найти шрифт для меню.
2. Вот теперь понятно стало. Таблица таблицей, а текст текстом. Ну плюс еще нагуглил доку эту, стало намного понятнее.
3. Вы мне прямо разжевали и в рот положили ))) теперь буду думать, как вы искали и как мне повторить.
P.S. Номер слов в предложениях откуда берется? Из АДРЕСА таблицы поинтеров? Или просто если слово 2е в таблице, то в тексте будет байт 02 вместо него?
 
 Top
Mefistotel Администратор
Отправлено: 17 Декабря, 2015 - 02:35:27
Post Id



Chief-Net


Покинул форум
Сообщений всего: 7127
Дата рег-ции: Окт. 2014  
Откуда: МАГАДАН





Mefistotel
Словарь МТЕ хранится в роме отдельно. И коды у него могут быть разные. К примеру, в словаре у тебя есть слово - HEAD. Находишь по игре, где оно выводится, и смотришь в хексредактор какой у него код. К примеру, FB01. Соответственно следующее слово в словаре будет иметь кода FB02 и так далее, а слово перед ним FB00. На основании этого и делается табличка для текста.
С такой системой оптимизации текста удобнее всего освоить Круптар. Но это когда ты для себя составишь карту ресурсов (словарь, текст и все прочее).
P. S. Доки по Круптару есть здесь http://magicteam.net/ и http://romhack.github.io. Если освоишь, дам проект на тини туна. По образцу сможешь сделать свой. Там тоже МТЕ сжатие, только коды в словаре однобайтные.
Алекс подробнее расскажет про систему в этой игре.
P. P. S. И не "мёртвый" у нас форум. Улыбка Просто не всё открыто для посторонних глаз. Вот проявишь себя и не забросишь на полпути дело, поможем и перенес темку в раздел для союзников.

-----
"Перевод старых игр - отличная возможность понять, как устроены программы, подучить иностранный язык и поднять уровень владения родным. Ну и конечно, это просто возможность "общения" со своей любимой игрой детства." © Dimouse
 
 Top
alex_231 Супермодератор
Отправлено: 17 Декабря, 2015 - 02:35:58
Post Id



Chief-Net


Покинул форум
Сообщений всего: 4688
Дата рег-ции: Окт. 2014  





alex_231
Цитата:
Ну вот, а я думал, что тут полуживой (читай, мервый) форум Улыбка
1. Таблица не полная, потому что я ее не закончил, и убрал подальше - не смог найти шрифт для меню.
2. Вот теперь понятно стало. Таблица таблицей, а текст текстом. Ну плюс еще нагуглил доку эту , стало намного понятнее.
3. Вы мне прямо разжевали и в рот положили ))) теперь буду думать, как вы искали и как мне повторить.

P.S. Номер слов в предложениях откуда берется? Из АДРЕСА таблицы поинтеров? Или просто если слово 2е в таблице, то в тексте будет байт 02 вместо него?

Номер слова в словаре - это ПОРЯДКОВЫЙ номер слова в словаре:
FB00 - первое слово в словаре,
FB01 - второе слово...
FBFF - последнее слово в словаре (всего их 256).

А теперь сюрприз: текст в игре помимо МТЕ оптимизирован ещё и перекрестными ссылками (в них я не стал сильно разбираться).
Один из вариантов (не знаю, может и единственный) - код h04, за ним идет ссылка (два байта) на копирование последовательности байт. Судя по всему, эта ссылка указана относительно таблицы поинтеров к текущей группе предложений, но наверняка сказать пока не могу, так как с поинтерами не разобрался, странные они какие-то.

-----
Делая выбор, отбрось простое решение и выбери правильное...
 
 Top
maslanin Пользователь
Отправлено: 17 Декабря, 2015 - 02:36:28
Post Id





Покинул форум
Сообщений всего: 16
Дата рег-ции: Июнь 2015  





maslanin
Цитата:
освоить Круптар

Сколько пытался освоить круптар, нифига не вышло. Видеоуроков случайно нет на него? Улыбка

Насчет забросить - смотря что )) я люблю колупаться, в коде разбираться, программировать. Сам процесс нравится )) Английский понимаю, но с художественным переводом будет туго.
 
 Top
maslanin Пользователь
Отправлено: 17 Декабря, 2015 - 02:37:00
Post Id





Покинул форум
Сообщений всего: 16
Дата рег-ции: Июнь 2015  





maslanin
Цитата:
Номер слова в словаре - это ПОРЯДКОВЫЙ номер слова в словаре:
FB00 - первое слово в словаре,
FB01 - второе слово...
FBFF - последнее слово в словаре (всего их 256).

Спасибо, теперь понял принцип. Почему-то ранее ни в одной доке такого не видел. Получается двойное указывание, то есть поинтер указывает на слово в словаре, а в тексте указывается номер поинтера. (ну + управляющий байт(ы)).
Насчет сюрприза - не дошел еще, пока составляю таблицу для себя в виде

CODE:
00=Snake
01=Campbell
02=Mei Ling
03=Weasel
04=McBride


etc.
 
 Top
alex_231 Супермодератор
Отправлено: 17 Декабря, 2015 - 02:37:34
Post Id



Chief-Net


Покинул форум
Сообщений всего: 4688
Дата рег-ции: Окт. 2014  





alex_231
Чего там составлять-то.
Вот таьлица МТЕ плюс некоторые коды, которым я значений не искал, просто в таблицу занес.

-----
Делая выбор, отбрось простое решение и выбери правильное...
 
 Top
maslanin Пользователь
Отправлено: 17 Декабря, 2015 - 02:38:09
Post Id





Покинул форум
Сообщений всего: 16
Дата рег-ции: Июнь 2015  





maslanin

Вот блин. Я почти вручную набил их, а у вас программа какая-то есть для этого? Улыбка
И еще кое что. Основной шрифт я нашел 0x142900 (1BPP), а вот шрифт для надписей NEW GAME, CONTINUE что-то не могу найти. Какое-то подобие нашел на 0x7550 и всё.
 
 Top
alex_231 Супермодератор
Отправлено: 17 Декабря, 2015 - 02:38:39
Post Id



Chief-Net


Покинул форум
Сообщений всего: 4688
Дата рег-ции: Окт. 2014  





alex_231
Любым скриптером можно вынуть такую таблицу, или даже в Translhextion подключить таблицу шрифта и вынуть текст, а потом разбить на строки в блокноте.

-----
Делая выбор, отбрось простое решение и выбери правильное...
 
 Top
Mefistotel Администратор
Отправлено: 17 Декабря, 2015 - 02:39:10
Post Id



Chief-Net


Покинул форум
Сообщений всего: 7127
Дата рег-ции: Окт. 2014  
Откуда: МАГАДАН





Mefistotel
Цитата:
Вот блин. Я почти вручную набил их, а у вас программа какая-то есть для этого? smiles.gif

Программы есть. Но Круптар может практически всё. А если ещё Марат плагин напишет под эту игру, то и с ней программа справится. Улыбка
Цитата:
Один из вариантов (не знаю, может и единственный) - код h04, за ним идет ссылка (два байта) на копирование последовательности байт. Судя по всему, эта ссылка указана относительно таблицы поинтеров к текущей группе предложений, но наверняка сказать пока не могу, так как с поинтерами не разобрался, странные они какие-то.

Это интересно. Хотелось бы, чтобы ты всё-таки разобрался и описал алгоритм вывода текста. Пригодится. Подмигивание

-----
"Перевод старых игр - отличная возможность понять, как устроены программы, подучить иностранный язык и поднять уровень владения родным. Ну и конечно, это просто возможность "общения" со своей любимой игрой детства." © Dimouse
 
 Top
maslanin Пользователь
Отправлено: 17 Декабря, 2015 - 02:39:58
Post Id





Покинул форум
Сообщений всего: 16
Дата рег-ции: Июнь 2015  





maslanin
Вот уж точно сюрприз с текстом Улыбка

В самом начале, когда игру начинаешь, идет вызов, далее открывается экран рации. Там идет текст
CODE:
Snake
This is Snake....
Colonel,can you
hear me?


This is Snake.... записано вот так (0x1E30B0):
CODE:
1D FB E4 0E 78 20 FB 00 27 27

1D = T, FBE4 = his, а вот дальше непонятно и интересно.
0E78 выводит ' is ' (без кавычек), при этом если 78 менять на 77 или 79, то сдвигается надпись на 'd is' или 'is h'. А если поизменять следующий байт - 20, то можно понять, что он указывает длину куска. Например 20 копирует 4 символа, а 22 уже 6 символов. Чуть подвигав туда-сюда получаю фразу, из которой берется кусок:
CODE:
Word is he's

Ищу поиском, этот кусок находится чуть выше (0x1E2DC7).
Если отнять от адреса ' is ' 0x78, то попадем на 0x1E2D53, где так же записан байт 0E (не факт, что связано - возможно, просто совпадение).
Сам байт 0E - видимо, управляющий. Пишу 0E 78 вместо FB 00, и получаю вместо
CODE:
This is Snake
-
CODE:
This is  is he's
Gindra


Вот так.

Цитата:
И еще кое что. Основной шрифт я нашел 0x142900 (1BPP), а вот шрифт для надписей NEW GAME, CONTINUE что-то не могу найти. Какое-то подобие нашел на 0x7550 и всё.

Шрифт так и не нашел для меню.

Вывод такой вот для себя: про поинтеры понял, а игра не та, с которой следовало бы начать новичку.
 
 Top
greengh0st Пользователь
Отправлено: 17 Декабря, 2015 - 02:40:41
Post Id






Покинул форум
Сообщений всего: 217
Дата рег-ции: Июнь 2015  





greengh0st
Заходи к нам на PSCD.RU, мы планируем заняться переводом этой игры. Или скинь просто аську.
 
 Top
lupus Пользователь
Отправлено: 17 Декабря, 2015 - 02:41:03
Post Id





Покинул форум
Сообщений всего: 1056
Дата рег-ции: Июнь 2015  
Откуда: Simferopol





lupus
На rhdn выложили софт для работы со сжатыми данными в mgs gbc.
 
 Top
KenshinX Пользователь
Отправлено: 17 Декабря, 2015 - 02:41:34
Post Id


Забанен


Покинул форум
Сообщений всего: 2277
Дата рег-ции: Окт. 2014  





KenshinX
Автор софта даже, если не ошибаюсь, русскоговорящий.
 
 Top
greengh0st Пользователь
Отправлено: 17 Декабря, 2015 - 02:42:15
Post Id






Покинул форум
Сообщений всего: 217
Дата рег-ции: Июнь 2015  





greengh0st
Это прога Protona скорее всего.
 
 Top
Mefistotel Администратор
Отправлено: 17 Декабря, 2015 - 10:55:10
Post Id



Chief-Net


Покинул форум
Сообщений всего: 7127
Дата рег-ции: Окт. 2014  
Откуда: МАГАДАН





Вот этот компрессор. Metal Gear Solid GBC Compressor/Decompressor
http://www.romhacking.net/utilities/1110/

-----
"Перевод старых игр - отличная возможность понять, как устроены программы, подучить иностранный язык и поднять уровень владения родным. Ну и конечно, это просто возможность "общения" со своей любимой игрой детства." © Dimouse
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Экстрим хакинг »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®