Форум Magic Team


 

Новости:

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)

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


  • Форум
  • Поиск
  • Вход
  • Регистрация

  • Форум Magic Team »
  • Разное »
  • Программирование »
  • Kruptar
« предыдущая тема следующая тема »
  • Печать
Страницы: 1 ... 4 5 [6] 7 8 ... 11   Вниз

Автор Тема: Kruptar  (Прочитано 278628 раз)

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

Оффлайн TrickZter

  • Magic Team
  • Сообщений: 1324
  • Репутация: +15/-5
  • The cake is a lie.
    • Просмотр профиля
Kruptar
« Ответ #125 : 01 Января 2011, 16:50:49 »
Цитата: Джинни от 01 Января 2011, 18:38:49
SNES Lo-ROM.
Это как? %)

Оффлайн ToledO

  • Пользователь
  • Сообщений: 280
  • Репутация: +1/-1
    • Просмотр профиля
    • Toledo Games
Kruptar
« Ответ #126 : 01 Января 2011, 23:28:40 »
Цитата: Джинни от 01 Января 2011, 16:38:49
В новой версии реализован формат пойнтеров SNES Lo-ROM.
Лучше бы новая версия документации была :P

Оффлайн Джинни

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Kruptar
« Ответ #127 : 02 Января 2011, 09:08:22 »
Цитата: 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

  • Magic Team
  • Сообщений: 1324
  • Репутация: +15/-5
  • The cake is a lie.
    • Просмотр профиля
Kruptar
« Ответ #128 : 02 Января 2011, 10:50:32 »
А не проще было с LongWord сделать?

Оффлайн Джинни

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Kruptar
« Ответ #129 : 02 Января 2011, 12:12:33 »
Цитата: TrickZter от 02 Января 2011, 17:50:32
А не проще было с LongWord сделать?
Ты о чём? Я просто формулу объясняю.

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

Оффлайн TrickZter

  • Magic Team
  • Сообщений: 1324
  • Репутация: +15/-5
  • The cake is a lie.
    • Просмотр профиля
Kruptar
« Ответ #130 : 02 Января 2011, 12:16:21 »
Об этом:
Цитировать (выделенное)
LoROMptr.Lo - это младший word пойнтера
LoROMptr.Hi - старший word
Я так понял, что поинтеры тут четырёхбайтовые, тогда проще работать с LongWord, чем с Word. Или тут старший и младший Word'ы расположены как-то необычно (в обратном порядке или вообще в разных частях рома)?

Оффлайн Джинни

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Kruptar
« Ответ #131 : 02 Января 2011, 12:22:01 »
Цитата: 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

  • Magic Team
  • Сообщений: 1324
  • Репутация: +15/-5
  • The cake is a lie.
    • Просмотр профиля
Kruptar
« Ответ #132 : 02 Января 2011, 12:37:42 »
Мда, на одну операцию меньше :)
Только вот не пойму, какую роль играет старший бит младшего Word'а. Судя по формулам, он всегда равен единице.

Оффлайн Джинни

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Kruptar
« Ответ #133 : 02 Января 2011, 12:41:52 »
Да, всегда единице, такая система.

Оффлайн inside

  • Пользователь
  • Сообщений: 81
  • Репутация: +3/-0
    • Просмотр профиля
    • in-coding
Kruptar
« Ответ #134 : 08 Ноября 2011, 00:06:24 »
Начали переводить с помощью Kruptar, все супер, но хотелось бы ряд мелочей которые весьма бы облегчили перевод (реально в разы).

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

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

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

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

Оффлайн Джинни

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Kruptar
« Ответ #135 : 08 Ноября 2011, 06:53:23 »
Цитата: inside от 08 Ноября 2011, 08:06:24
Основная проблема - каждый раз нужно контролировать ширину строки.
К этому советую привыкнуть.

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

Оффлайн inside

  • Пользователь
  • Сообщений: 81
  • Репутация: +3/-0
    • Просмотр профиля
    • in-coding
Kruptar
« Ответ #136 : 08 Ноября 2011, 11:24:11 »
Цитата: Джинни
К этому советую привыкнуть.
Нууу... есть же блок загрузки таблиц? Таблица ширин по сути аналогичная была бы т.е.
Код: [Выделить]
00=0
01=4
...
39=10
3A=8
3B=8
...
FF=0
6 // число без указания байта задает ширину для всех не заданных в таблице символов
...
Ну и подсчет ширины строки - банальный цикл, разве сложно сделать? :) Профит реально ощутимый будет. Ускорение перевода как минимум в 2 раза! Наверное для рядового перевода это не ощутимо, но во всяких РПГ чтобы дойти до определенной фразы - нужно порой постараться. Ведь не все фразы доступны. Конечно save-load помогает, но и его нельзя всегда применить.

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

Оффлайн Джинни

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Kruptar
« Ответ #137 : 08 Ноября 2011, 11:35:10 »
Всё это понятно и ясно. Просто не собираюсь этого делать. :)

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

Оффлайн TrickZter

  • Magic Team
  • Сообщений: 1324
  • Репутация: +15/-5
  • The cake is a lie.
    • Просмотр профиля
Kruptar
« Ответ #138 : 08 Ноября 2011, 11:53:47 »
Цитата: Джинни от 08 Ноября 2011, 11:35:10
Я могу их дать, но они на Delphi.
И они без комментариев - без вагона водки не разобраться  :D

Оффлайн inside

  • Пользователь
  • Сообщений: 81
  • Репутация: +3/-0
    • Просмотр профиля
    • in-coding
Kruptar
« Ответ #139 : 08 Ноября 2011, 13:12:09 »
Цитата: Джинни
Я могу их дать, но они на Delphi.
Знаком... хотя признаться Delphi - это самое малоизученное для меня. Отправь пожалуйста на insideone #собака# rambler #точка# ru ... Метки мне тоже попытаться сделать или не стоит так глубоко зарываться? (:

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

Оффлайн Ace Lightning

  • Пользователь
  • Сообщений: 146
  • Репутация: +0/-0
    • Просмотр профиля
    • МММ 2011
Kruptar
« Ответ #140 : 08 Ноября 2011, 13:50:06 »
Иногда бывает так, что проще всё написать с нуля, чем разобраться в чужом коде :) Это я на себе испытал уже)

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

Оффлайн JurasskPark

  • Администратор
  • Сообщений: 1308
  • Репутация: +37/-666
    • Просмотр профиля
    • JurasskPark
Kruptar
« Ответ #141 : 08 Ноября 2011, 15:16:05 »
Цитата: inside от 08 Ноября 2011, 16:12:09
Вот к чему не привыкать - так это к коду без комментариев Улыбка Ведь последние полтора года я работаю PHP-программистом
Где ж ты был, когда мы сайт писали? Столько добра пропало зря. >:(

Оффлайн inside

  • Пользователь
  • Сообщений: 81
  • Репутация: +3/-0
    • Просмотр профиля
    • in-coding
Kruptar
« Ответ #142 : 08 Ноября 2011, 15:57:05 »
Цитата: JurasskPark от 08 Ноября 2011, 15:16:05
Где ж ты был, когда мы сайт писали? Столько добра пропало зря.
LOL Так надо будет - новое напишем, обращайся :)
I wanna be a romhacker

Оффлайн JurasskPark

  • Администратор
  • Сообщений: 1308
  • Репутация: +37/-666
    • Просмотр профиля
    • JurasskPark
Kruptar
« Ответ #143 : 08 Ноября 2011, 16:45:09 »
Ты сделал бы доброе дело, если бы сломал сайт.
Всегда лучше, когда твой сайт ломает добрый человек, который потом скажет, где дырку залатать.

Оффлайн ToledO

  • Пользователь
  • Сообщений: 280
  • Репутация: +1/-1
    • Просмотр профиля
    • Toledo Games
Kruptar
« Ответ #144 : 10 Ноября 2011, 18:40:37 »
Можно сломать так, что никакую дыру уже потом и не залатать.

Оффлайн TrickZter

  • Magic Team
  • Сообщений: 1324
  • Репутация: +15/-5
  • The cake is a lie.
    • Просмотр профиля
Kruptar
« Ответ #145 : 10 Ноября 2011, 18:45:37 »
Цитата: ToledO от 10 Ноября 2011, 18:40:37
Можно сломать так, что никакую дыру уже потом и не залатать.
А бэкапы на что?  :)

Оффлайн JurasskPark

  • Администратор
  • Сообщений: 1308
  • Репутация: +37/-666
    • Просмотр профиля
    • JurasskPark
Kruptar
« Ответ #146 : 10 Ноября 2011, 19:18:50 »
Народ, не забывайте одну вещь, что из backup'a хорошо разворачивать то, что 100% неиспорчено.
А если в backup'e уже есть эта проблема, то смысла от него почти нет.

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

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

Оффлайн TrickZter

  • Magic Team
  • Сообщений: 1324
  • Репутация: +15/-5
  • The cake is a lie.
    • Просмотр профиля
Kruptar
« Ответ #147 : 10 Ноября 2011, 20:12:09 »
Цитата: JurasskPark от 10 Ноября 2011, 19:18:50
Кстати, TriсkZter, ты понял намёк? :)
А чего тут понимать? Операция действительно элементарнейшая :)

Оффлайн Hatsuyuki

  • Magic Team
  • Сообщений: 1261
  • Репутация: +19/-5
    • Просмотр профиля
Kruptar
« Ответ #148 : 10 Ноября 2011, 23:05:45 »
Извините, вы длину строки обсуждаете? %)
Otium sine litteris mors est et hominis vivi sepultura.

Оффлайн TrickZter

  • Magic Team
  • Сообщений: 1324
  • Репутация: +15/-5
  • The cake is a lie.
    • Просмотр профиля
Kruptar
« Ответ #149 : 10 Ноября 2011, 23:49:10 »
Цитата: Hatsuyuki от 10 Ноября 2011, 23:05:45
Извините, вы длину строки обсуждаете? %)
Нет, ширину... в пикселях. :)

  • Печать
Страницы: 1 ... 4 5 [6] 7 8 ... 11   Вверх
« предыдущая тема следующая тема »
  • Форум Magic Team »
  • Разное »
  • Программирование »
  • Kruptar
 

  • SMF 2.0.12 | SMF © 2011, Simple Machines
  • XHTML
  • RSS
  • Мобильная версия

  • GreenUP by Neekiinh0.

Размер занимаемой памяти: 2.25 мегабайта.
Страница сгенерирована за 0.096 секунд. Запросов: 74.