Новости:

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)

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

Главное меню

Kruptar

Автор Alex, 20 февраля 2009, 14:02:55

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

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

TrickZter


ToledO

Цитата: Джинни от 01 января 2011, 16:38:49В новой версии реализован формат пойнтеров SNES Lo-ROM.
Лучше бы новая версия документации была :P

Джинни

Цитата: TrickZter от 01 января 2011, 23:50:49Это как? Сумасшедший
ROM'ы SNES бывают Lo-ROM и Hi-ROM.
В Lo-ROM пойнтеры вычисляются так:
LoROMptr = $8000 + (file_offset and $7FFF) + (file_offset shr 15) shl 16;
file_offset = LoROMptr.Lo and $7FFF + LoROMptr.Hi shl 15;
LoROMptr.Lo - это младший word пойнтера
LoROMptr.Hi - старший word

TrickZter

А не проще было с LongWord сделать?

Джинни

Цитата: TrickZter от 02 января 2011, 17:50:32А не проще было с LongWord сделать?
Ты о чём? Я просто формулу объясняю.

Если LoROMptr использовать без Lo и Hi, то будет так:
LoROMptr and $7FFF + (LoROMptr shr 16) shl 15;
Что удлиняет её.

TrickZter

Об этом:
ЦитироватьLoROMptr.Lo - это младший word пойнтера
LoROMptr.Hi - старший word
Я так понял, что поинтеры тут четырёхбайтовые, тогда проще работать с LongWord, чем с Word. Или тут старший и младший Word'ы расположены как-то необычно (в обратном порядке или вообще в разных частях рома)?

Джинни

Цитата: TrickZter от 02 января 2011, 12:16:21
Я так понял, что поинтеры тут четырёхбайтовые, тогда проще работать с LongWord, чем с Word.
Не проще.
Цитата: Джинни от 02 января 2011, 19:12:33Если LoROMptr использовать без Lo и Hi, то будет так:
LoROMptr and $7FFF + (LoROMptr shr 16) shl 15;
Что удлиняет её.
Отдельно:
file_offset = LoROMptr.Lo and $7FFF + LoROMptr.Hi shl 15;
А с LongWord - лишние расчёты:
file_offset = LoROMptr and $7FFF + (LoROMptr shr 16) shl 15;

Расположены в роме часто отдельно.

TrickZter

Мда, на одну операцию меньше :)
Только вот не пойму, какую роль играет старший бит младшего Word'а. Судя по формулам, он всегда равен единице.

Джинни

Да, всегда единице, такая система.

inside

Начали переводить с помощью Kruptar, все супер, но хотелось бы ряд мелочей которые весьма бы облегчили перевод (реально в разы).

Основная проблема - каждый раз нужно контролировать ширину строки. Причем это делается так - переводишь, компилишь (это я так назвал процесс вставки текста в игру и пересчет поинтеров), запускаешь игру и находишь там диалог чтобы проверить не вылезло ли чего.
Тестить в конце-концов то конечно придется все равно, однако чтобы уменьшить количество итераций можно было бы встроить в программу возможность для каждого символа задавать ширину и автоматически считать её для строки. Ну и выводить её около количества символов. Было бы так удобно!

Второе пожелание, которое украсило бы жизнь переводчика - это всем знакомые "метки". Т.е. для каждой строки хотелось бы уметь выставлять "цветовую" метку, при этом слева от номера строки будет показываться квадратик того цвета который был выбран.
Было бы классно отмечать трудные фразы, чтобы можно было бы быстро вернуться к ним (иногда не хочется гробить вечер ради одной фразы, а есть желание закончить большой блок). К тому же такие метки могли бы облегчить работу нескольких переводчиков использующих один проект. Загрузил другой переводчик и сразу видит, где ему ещё работа есть :) В общем область применения большая... Думаю не зря эти метки можно встретить практически везде

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

И... спасибо за такую замечательную программу Джинни! Может у меня бы хватило терпения вставлять в игру текст полу-автоматическими методами, но это точно бы затянуло перевод на пару лет)
I wanna be a romhacker

Джинни

Цитата: inside от 08 ноября 2011, 09:06:24Основная проблема - каждый раз нужно контролировать ширину строки.
К этому советую привыкнуть.

А всякие метки - это интересно.

inside

Цитата: ДжинниК этому советую привыкнуть.
Нууу... есть же блок загрузки таблиц? Таблица ширин по сути аналогичная была бы т.е.

00=0
01=4
...
39=10
3A=8
3B=8
...
FF=0
6 // число без указания байта задает ширину для всех не заданных в таблице символов
...

Ну и подсчет ширины строки - банальный цикл, разве сложно сделать? :) Профит реально ощутимый будет. Ускорение перевода как минимум в 2 раза! Наверное для рядового перевода это не ощутимо, но во всяких РПГ чтобы дойти до определенной фразы - нужно порой постараться. Ведь не все фразы доступны. Конечно save-load помогает, но и его нельзя всегда применить.

ps. Сам программист. Были бы сорцы - допилил (все равно пока супруга переводит хакать особо нечего, заставку разве?). Но кто же мне их даст, мечты... :) Или нет?
I wanna be a romhacker

Джинни

Всё это понятно и ясно. Просто не собираюсь этого делать. :)

Цитата: inside от 08 ноября 2011, 20:24:11Были бы сорцы - допилил (все равно пока супруга переводит хакать особо нечего, заставку разве?). Но кто же мне их даст, мечты... Улыбка Или нет?
Я могу их дать, но они на Delphi.

TrickZter

Цитата: Джинни от 08 ноября 2011, 12:35:10Я могу их дать, но они на Delphi.
И они без комментариев - без вагона водки не разобраться  :D

inside

Цитата: ДжинниЯ могу их дать, но они на Delphi.
Знаком... хотя признаться Delphi - это самое малоизученное для меня. Отправь пожалуйста на insideone #собака# rambler #точка# ru ... Метки мне тоже попытаться сделать или не стоит так глубоко зарываться? (:

Цитата: TriсkZterИ они без комментариев - без вагона водки не разобраться  :D
Вот к чему не привыкать - так это к коду без комментариев :) Ведь последние полтора года я работаю PHP-программистом
ps. это я не про свой код пишу, 90% приходится сайты допиливать... ну а с каким кодом приходится иметь дело можно посмотреть например на http://govnokod.ru/php  :-|
I wanna be a romhacker

Ace Lightning

Иногда бывает так, что проще всё написать с нуля, чем разобраться в чужом коде :) Это я на себе испытал уже)

Все мы лишь случайные гости Здесь...

JurasskPark

Цитата: inside от 08 ноября 2011, 17:12:09Вот к чему не привыкать - так это к коду без комментариев Улыбка Ведь последние полтора года я работаю PHP-программистом
Где ж ты был, когда мы сайт писали? Столько добра пропало зря. >:(

inside

Цитата: JurasskPark от 08 ноября 2011, 16:16:05Где ж ты был, когда мы сайт писали? Столько добра пропало зря.
LOL Так надо будет - новое напишем, обращайся :)
I wanna be a romhacker

JurasskPark

Ты сделал бы доброе дело, если бы сломал сайт.
Всегда лучше, когда твой сайт ломает добрый человек, который потом скажет, где дырку залатать.

ToledO

Можно сломать так, что никакую дыру уже потом и не залатать.

TrickZter

Цитата: ToledO от 10 ноября 2011, 19:40:37
Можно сломать так, что никакую дыру уже потом и не залатать.
А бэкапы на что?  :)

JurasskPark

Народ, не забывайте одну вещь, что из backup'a хорошо разворачивать то, что 100% неиспорчено.
А если в backup'e уже есть эта проблема, то смысла от него почти нет.

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

Цитата: inside от 08 ноября 2011, 15:24:11Ну и подсчет ширины строки - банальный цикл, разве сложно сделать? Улыбка

Кстати, TriсkZter, ты понял намёк? :)

TrickZter

Цитата: JurasskPark от 10 ноября 2011, 20:18:50Кстати, TriсkZter, ты понял намёк? :)
А чего тут понимать? Операция действительно элементарнейшая :)

Hatsuyuki

Извините, вы длину строки обсуждаете? %)
Otium sine litteris mors est et hominis vivi sepultura.

TrickZter

Цитата: Hatsuyuki от 11 ноября 2011, 00:05:45
Извините, вы длину строки обсуждаете? %)
Нет, ширину... в пикселях. :)