Новости:

01.01.2017: Релиз испанской версии Naruto - Ninja Council (GBA)
02.12.2016: Добавлена документация по Kruptar 7
09.10.2015: Обновление перевода игры Battletoads (NES) [версия 1.3]
22.01.2015: Kruptar Open Source
18.10.2014: Релиз обновлённой русской версии Castlevania - Dawn of Sorrow (GBA) от Owls Group
01.05.2014: Релиз русской версии Taiyou no Yuusha Firebird (NES)
24.06.2012: Добавлена доработанная документация и инструкция
26.05.2012: Обновление ORITON [версия 2.050]
11.05.2012: Обновление ORITON [версия 2.048]
11.03.2012: Обновление Kruptar 7 [версия 7.1.1.17]
29.01.2012: Обновление LZ77Restructor 2 [версия 1.02]
01.01.2012: Релиз русской версии Drill Dozer (GBA)

Подробнее на страничке новостей.
Ознакомьтесь с правилами нашего форума.

Главное меню

Прошу помощи

Автор Game_Hacker, 06 апреля 2011, 23:36:42

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Game_Hacker

Мужики, выручайте! =)
Столкнулся с какими то непонятными поинтерами, возможно я не вижу чего то очевидного, но я никак не могу понять, как они устроены.
Пробовал некоторые байты заменять нулями, текст пропадает, либо игра вообще зависает.
Игрушка на PSP.
Линк на файл, файлик маленький, всего 1 кб.
Спойлер

P.S.
Попросил еще помощи на шедевре, но не для кого не секрет, что шедевр уже не тот, что раньше и просить помощи там не у кого :-|

 

nikita600

А что за игра-то?

Добавлено позже после небольших раздумий:

Лично я пока разглядел такую вещь:
4 байта - смещенеие на первую TextLibrary
4 байта - смещение на вторую Text Library
а потом идёт ужасная каша, напоминающая мне структуру одного из бинарников в человеке-пауке, завтра попробую ковырнуть...
P.S. Киньте, пожалуйста, ещё один файлик с текстом наподобии такого, если конечно можно :)

Game_Hacker

Игра называется: Puzzle Quest: Challenge of the Warlords
Хотел портировать перевод с PC на PSP.Всё готово, кроме поинтеров. :)

nikita600

А можно ещё один такой файлик с текстом?
Проще тогда разобрать будет :)

Game_Hacker

Выкладываю еще один маленький файл.
Выложил бы еще, но они здоровые по размеру и в них вообще фарш  :)

Спойлер

Выкладываю предварительный скрин,который кстати, показывает, как выводится текст из первого файла, тот, что я выложил ранее.
Это еще конечно сыромятина, нет больших букв, да и маленькие корявые, в общем работы еще куча.
Спойлер

nikita600

Ничего, будем надеяться, что эта сыромятина скоро превратиться во вкуснятину :)

Game_Hacker

Цитата: nikita600 от 07 апреля 2011, 00:13:514 байта - смещенеие на первую TextLibrary
4 байта - смещение на вторую Text Library

Никитон!Я не вижу  :) Расскажи поподробней! ::)

nikita600

Цитата: Game_Hacker от 07 апреля 2011, 20:37:33
Цитата: nikita600 от 07 апреля 2011, 00:13:514 байта - смещенеие на первую TextLibrary
4 байта - смещение на вторую Text Library

Никитон!Я не вижу  :) Расскажи поподробней! ::)

Всё просто :)
Первые 4 байта - это смещение на TextLibrary №1.
Вторые 4 байта - смещение на TextLibrary №2.
Прибавляем ещё 8 к этим значениям, дабы получить настоящие смещения TextLibrary в самом файле.

А ещё я пока не вкуриваю каким образом тут считать указатели. Надо в дампы памяти глянуть, может они что-то дадут. Единственное, что могу сказать , так лично для меня это будет долгий путь раскуривания формата этих файлов :)

Добавлено позже после небольших раздумий:

Я разобрал-таки формат хранения текста  %)
Постараюсь объяснить на пальцах.

4 байта - смещение до первой TextLibrary + 8
4 байта - смещение до второго TextLibrary + 8
4 байта - нули

4 байта - 0х01
4 байта - 0х01
12 байт - нули

4 байта - 0х02
4 байта - поинтер (фиксированный)
4 байта - нули

4 байта - к-во строк текста в первой TextLibrary
4 байта - к-во строк текста во второй TextLibrary
12 байт - нули

(Какие-то указатели размером: к-во строк текста в первой TextLibrary * 8 )
4 байта - 0х02
4 байта - поинтер (фиксированный)


4 байта - длина строки, начиная с TextLibrary + 0x00, заканчивая на слове Text
4 байта - 0x02
4 байта - 0x02
12 байт - 0x00
4 байта - 0x01
4 байта - поинтер (фиксированный)
4 байта - 0x03
4 байта - поинтер (фиксированный)
4 байта - длина строки - TextLibrary + 0x00 + Text + 0x00, заканчивая на слове tag
4 байта - длина строки - TextLibrary + 0x00 + Text + 0x00 + tag + 0x00, заканчивая на [SOMETHING]
4 байта - длина строки - TextLibrary + 0x00 + Text + 0x00 + tag + 0x00 + [SOMETHING] + 0x00, заканчивая перед самим текстом
4 байта - длина строки - TextLibrary + 0x00 + Text + 0x00 + tag + 0x00 + [SOMETHING] + 0x00 + САМ ТЕКСТ + 0x00.
и.т.д

Добавлено позже после небольших раздумий:

Я надеюсь, что что-то понятно из моего мандаринского языка :)

JP: Если есть 8 ), то ставь через пробел. Иначе смайлик будет.

Game_Hacker

 *FRIENDS* Вот спасибо!
Я бы с моим количеством свободного времени, разбирал бы еще год, работы очень много + семья :-| На перевод игр совсем не остается времени.
Сегодня попробуем написать софт.
P.S. стукнулся к тебе в icq.



JurasskPark

IСQ обиделась и обратно стукнула  по лбу обидчика.

:D

nikita600

Цитата: Game_Hacker от 17 апреля 2011, 15:22:47
*FRIENDS* Вот спасибо!
Я бы с моим количеством свободного времени, разбирал бы еще год, работы очень много + семья :-| На перевод игр совсем не остается времени.
Сегодня попробуем написать софт.
P.S. стукнулся к тебе в icq.

Думаешь у меня время есть? :)

Цитата: JurasskPark от 17 апреля 2011, 17:42:59
IСQ обиделась и обратно стукнула  по лбу обидчика.

:D

По игре что ли? :)