Chief-NET

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Chief-NET » Переводы » Phantom 2040 (SNES)


Phantom 2040 (SNES)

Сообщений 201 страница 300 из 319

201

Для этого надо найти место в видеопамяти, где формировать изображение надписей, я пока не смотрел, но если его не будет, то ничего не выйдет.
Да и простое выдирание не подойдет, так как здесь один и тот же алгоритм используется для построения надписей обоими шрифтами, а поэтому нужно вклиниваться в то место, где идет определение вида шрифта до декодировки МТЕ, и эту декодировку встраивать в свой алгоритм.

Отредактировано alex_231 (2013-02-02 14:05:14)

202

Mefistotel, эти надписи формируются так же, как и названия глав, поэтому вместить их проблемой не будет.

203

Для этого надо найти место в видеопамяти, где формировать изображение надписей, я пока не смотрел, но если его не будет, то ничего не выйдет.
Да и простое выдирание не подойдет, так как здесь один и тот же алгоритм используется для построения надписей обоими шрифтами, а поэтому нужно вклиниваться в то место, где идет определение вида шрифта до декодировки МТЕ, и эту декодировку встраивать в свой алгоритм.

Насколько я помню, в таких случаях шрифт не загружается в память. В видеопамяти строится текст. И он выводится на экран. Т.е. место от шрифта можно использовать под построение текста. Хотя, конечно его может не хватить.

Отредактировано Марат (2013-02-02 14:30:28)

204

Дык тогда просто уменьшить толщину одной из палок буквы на 1 пиксель?

Вот, пока так, мож кто придумает... Иной способ... Но Щ на всю ширину тайла...

Отредактировано <GD> (2013-02-02 18:17:17)

205

Ну, а вот результат. Только я верхушку у мягкого знака влево на пиксель сдвинул.

206

Это уже получше.
Единственное, измени, пожалуйста, букву М. Надо убрать округление по верхним краям. Уже больно на русскую строчную т похожа.

207


Вот) *скачать*

Там еще подправил\округлил Ю, посмотри норм иль нет) а то тут она какая-та корявая)

Отредактировано <GD> (2013-02-03 14:53:13)

208

Але!

209

Ну вроде ниче....
Колян! Че как?
...думаю, если нельзя замутить пробел двух пиксельный... И это подойдет.

Отредактировано <GD> (2013-02-03 20:06:42)

210

На 4 с минусом.
Уф. Начал переводить базу данных в логове фантома. Скоро выложу её для обсуждения. Это последнее, что осталось из текста.
Санёк, как там мой скриптёр поживает?

211

Ну, со скриптером всё более-менее понятно, а вот с пакером замутина конкретная, пока ещё не придумал, как его поудобней сделать :(

212

Вот, адрес пакета в проге указан (в memo)

Что-то никак не удаётся скачать. Скачивает совсем не архив, а непонятно что.
Смотрел процедуру распаковки на Сеге. Там LZSS используется. Только смещение и длина совпадения кодируется в зависимости от позиции в словаре и от длины.

213

Алекс, ром то расширен у нас. Может убрать нафиг это сжатие и сделать простой вывод текста?

214

Не, тут два разных алгоритма, похожих на помесь хаффмана и LZ, один для графики и пакетов событий, второй - для графики и тайловых карт.

Сам пакер/анпакер у меня есть и он работает (на оба алгоритма), просто для его корректной работы нужны файлы (так сказать) "разметки", в которых указываются параметры сжатия - в них я так до конца и не разобрался, как и в самом алгоритме: работать-то он работает, а вот разработать "разметку" для новых (русифицированных) файлов не получается, отчего сжатие приходится делать по исходной "разметке", а она не всегда оптимальна, а иногда даже совсем не подходит.

Отредактировано alex_231 (2013-02-10 13:03:03)

215

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

216

Я надеюсь, что скоро дам тебе черновой вариант.

217

Так. Теперь стало понятно, что за аббревиатура BIOTS:
Biological Optic Transputer Systems
Вот как её перевести, чтобы не потерять созвучие БИОТ?
:rolleyes:
Биологическая оптическая транспьютерная система...
И получается не биоты, а биотсы.
P. S. Хреново, что в инете есть только 21 серия из 35. Нет серий, где Кит находит своего отца живым и многие другие. А ведь игра сделана по мультфильму.

Отредактировано Mefistotel (2013-02-13 11:46:15)

218

Биооптические транспьютерные системы.
На этом остановимся. К понедельнику, надеюсь, выложу черновой вариант скрипта, который ещё будет дорабатываться по мере прохождения игры.
Саня, можешь в куче выложить, что не перерисованного осталось ещё.
Давид как-то просил порисовать.:)

219

Ок, вечером домой доберусь и выложу.

Отредактировано alex_231 (2013-02-22 13:09:40)

220

Эм, если ты про графику надписей, то вот:

221

Эм, если ты про графику надписей, то вот:

222

Во вложении черновой скрипт. Буду ещё его куча раз выверять по ходу игры и делать более литературным. Плюс внешний корректор проверит.
Саня, я там отмечал по ходу скрипта комменты в линию. Сразу их заметишь, там строка очень длинная сразу. гораздо больше 32 символов.
Вопросы следующие:
[BLOCK 0131]
WE'RE ON-LINE WITH A WOMAN{00}
WANTED FOR HER INVOLVEMENT{00}
WITH THE DESTRUCTION OF THE{00}
WEST SIDE OF THE CITY.{00}
EOL
THE HUMANS 4 HUMANS ARE{00}
INNOCENT{21} MARS AND MAXIMUM,{00}
INC. ARE CREATING A SHIP{00}
WITH ENOUGH POWER TO LEVEL THE{00}
EOL
CITY AND THEY TESTED IT ON THE{00}
WEST SIDE{21}{00}
EOL
THIS WOMAN'S DELUSIONS ARE{00}
RIDICULOUS. WE'RE CREATING A{00}
SHIP TO PROTECT THE POLITICAL{00}
SUMMIT, NOT DESTROY IT.{00}
EOL
WHO'S LYING? YOU'LL HEAR IT{00}
WHEN I HEAR IT{21}{00}
EOL
LINE WITH A WOMAN{00}
EOL
Строка LINE WITH A WOMAN{00}не в тему. Вероятно ошибочно вытащена.

[BLOCK 014C]
[BLOCK 014D]
LIVE AND PHOTONIC. THE{00}
ENFORCERS ARRESTED{00}
REBECCA MADISON AND HER{00}
SON IN CONNECTION WITH{00}
EOL
THE ATTACK ON THE{00}
POLITICAL SUMMIT.{00}
EOL
В этом блоке как и его повторах идет три слова LIVE AND PHOTONIC. Я так понимаю, это ошибка какая-то. Если нет, то непонятно к чему они здесь. Я их просто не переводил.

Отредактировано Mefistotel (2013-02-24 13:35:30)

223

WE'RE ON-LINE WITH A WOMAN{00}
WANTED FOR HER INVOLVEMENT{00}
WITH THE DESTRUCTION OF THE{00}
WEST SIDE OF THE CITY.{00}

Начало каждой строки с одной и той же буквы... Прикольно. Надо бы это и в переводе отразить. А, Николай?

В этом блоке как и его повторах идет три слова LIVE AND PHOTONIC. Я так понимаю, это ошибка какая-то. Если нет, то непонятно к чему они здесь. Я их просто не переводил.

Может метафора какая-нибудь. Из серии "Наука и жизнь" что-то... Не?

Отредактировано KenshinX (2013-02-24 15:34:35)

224

Первое - действительно ошибка, как и в прошлой части скрипта, а вот LIVE AND PHOTONIC. ошибкой быть не могут, потому как ошибочно вынимаются только строки целиком, а не их части. Тут что-то вроде того, что предложил KenshinX.

225

Ок. Разберусь по ходу пьесы. При наличии скриптера-пакера подправить труда не составит.
Если это доктор Джек со своими неадекватизмом, то здесь что-то типа:
"С вами в прямом эфире доктор Джек.
Правоохранительные органы****"

Если это какое-то печатное СМИ, то:
"По даннным издания "Жизнь и свет"****
В игре ещё не открывал эту концовку. Их здесь 16 штук или что-то того.

226

Мда, тут ещё не помешало бы прикрутить к скриптеру проверку скрипта на вшивость - много где пропущены фигурные скобки в {00} кодах :(
Да и с титрами какая-то фигня - скриптер вешается при их обработке - видать процедура пропуска строк кривовато работает... В общем занимаюсь.

227

А, нет, процедура нормально работает, это в скрипте косяк был - после строки "ШЕФ-НЕТ, 2013" отсутствовал код {00} отсюда и глюки. Не, надо проверку писать - без нее труба...

228

Ага, более-менее проверялка готова (проверяет пока только {00}-коды, но если нужно ещё что-нибудь включить в проверку - добавить несложно).

229

Нужно добавить еще проверку EOL в конце абзацев и количества символов в строках, чтобы не более 31.

230

Так, основы готовы (и скриптер, и пакер и собиратель), осталось доделать проверку и отшлифовать, чтобы поудобней пользоваться было.

Вот только пока не придумал, как организовать удобную правку координат выводимых строк, а то там даже в интро после добавления строк нижние оказываются ниже экрана и их не видно :( Одно из решений - забить эти координаты в скрипт, но тогда придется переписывать кучу кода, да и не очень удобно редактировать такой скрипт. Можно было бы попытаться сделать синхронную правку в двух memo: в первом - текст, во втором - машинный код с координатами (щелкаешь по строке с текстом в первом memo, а во втором курсор автоматически выставляется в нужное место машинного скрипта), но тут проблема в том, что количество строк в этих скриптах разное - надо что-то придумывать.

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

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

231

Смотри, как удобнее. Меня бы устроили координаты и перед строками.

232

Опаньки... Оказалось, что после освобождения пантеры игра крошится даже с полным скриптом - буду ковырять, но видимо сжатие, мать его... :(

233

Действительно сжатие... Оказалось имеющиеся файлы "разметки" не совсем подходят для сжатия, так они не предусмотрены для повторения блоков размером больше 63 байт.
Придется разбираться и придумывать свой файл разметки.

234

Чем ближе к финалу, тем интереснее. :)

235

Наконец-то я его забодал - есть файлы "разметки", по которым все значимые данные пакетов вынимаются корректно, попробую привести их к одному - универсальному, чтобы потом косяков не вылезло, когда отдам проги в работу.

236

Нарисовалась очередная проблема :( - некоторые сцены зависают или крошатся при изменении количества строк текста, отображаемого в этих сценах. Всего четыре варианата поведения:
1) добавление или удаление строк никак не сказывается на работоспособности;
2) в пакет можно добавить пару строк и ничего не изменится, а стоит убрать хоть одну - или зависнет или коряво отобразится (может сразу перепрыгнуть куда угодно);
3) из пакета можно безболезненно убирать строки, но добавление вызывает непредсказуемые реакции (см. выше);
4) любое изменение количества строк приводит к проблемам (см. выше).

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

237

Ёкэлэмэнэ. :(
Сань, ну без увеличения количества строк будет перевод аля Кудос. Или это так тупо.
Надо бы определиться какие блоки вызывают креш и негативные последствия. Если меньше строк сделал, то ничего страшного. Можно добавить столько сколько было, забив пробелами.
А вот 3 и 4 случаи особенно интересуют.
А там уже будем думать, либо коверкать текст, если ничего нельзя сделать, либо что-то сделать всё-таки в плане хакинга. :)
P. S. Знал бы, что такая хрень будет с этой игрой, не взялся бы вообще переводить.
P. S. S. Можно сделать в духе новеллы, на экране английский текст, а эмулятором окно с русским переводом выводится. :)  Помнится мне Дангаард так что-то перевёл.

238

Да вот я и думаю, пытаюсь разобраться в событиях...
Пока как-то не очень.

239

Ага, доделал собиралку (про которую я тебе в личку писал). Теперь прямо из скриптера можно запустить процесс сборки нового рома, правда на всё про всё уходит минут 6 (с полным скриптом).

Займусь теперь разбором событий. И если удастся во всем разобраться, думаю сделать редактор событий, наподобие TemporalFlux (это такой мощнявый редактор для Chrono Trigger, если кто не знает ;) ).

240

Было бы здорво! :)

241

Процесс потихоньку пошел - удалось опознать около 10% кодов полностью и ещё у нескольких только количество байт с параметрами (ну это типа код h04 - вывод текста - имеет 4 байта папаметров: два на координаты надписи и два на адрес строки в памяти).
Работаем...

242

Это радует.
А я пока пытаюсь дос игру разобрать с псевдоархивами и прочей хренью.

243

Ридер (ну, или viewer, кому как нравится) для событий готов (по большей части): команды отображает, теперь нужно допилить отображение параметров команд, а потом можно будет и за редактирование браться :)  (когда все команды опознаю).

244

Супер! Я уже жду не дождусь)

245

Ну, вообще-то "стрижка только начата".

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

Так вот "подпрограмма" эта хранится после "текста" (кода) основного потока, но перед данными выводимого текста. Команда запуска такой "подпрограммы" обычно идет ранее команд вывода текста, а когда мы добавляем строку (а вместе с тем и команду на вывод этой строки), то между командой запуска "подпрограммы" (ссылка сидит в команде) и телом "подпрограммы" изменяется количество байт и соответственно должна быть изменена ссылка на "подпрограмму", но этого не происходит, и второй поток пытается запуститься из некорректного места, что приводит к всяким глюкам.

246

Отображение параметров команд готово, только некоторые частности доделать и займусь написанием процедур редактирования.

247

Редактор, в принципе, готов.
Но (как всегда не одно):
1) автоматизация редактирования почти отсутствует (пока) - программа может только размер блоков корректно считать, строки доступны для редактирования в виде текста и на лету строится MTE-запись этих строк, но на этом всё - отслеживать подпрограммы (добавление/удаление команд) и учитывать длину MTE-записей для указателей пока приходится ручками;
2) генерация дерева событий для всех 620 блоков занимает уйму времени (я не дотерпел и вырубил прогу дебаггером), думаю, и обратная генерация машинного кода из дерева событий будет не намного быстрее.

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

248

Хотя, я тут пораскинул мозгами - разбивать скрипт на части смысла нет - только увеличится время работы, лучше я сделаю сохранение дерева в отдельный файл, чтобы можно было промежуточные состояния сохранять и загружать, а не конвертировать скрипт в дерево каждый раз (бррр, как подумаю об этом, аж плохо становится).

249

Обнаружился интересный момент: можно протестировать все сценки без прохождения игры! Нужно просто интересующий блок поставить в начало (можно даже первым и единственным!) и игра вместо логотипа с заглавием покажет сценку, соответствующую перемещенному блоку.
Правда все 620 блоков так проверять можно довольно долго :) лучше штук по 9 за раз проверять (там 9 сценок в интро запускается перед показом главного меню).

Интересно, сколько же времени уйдет ещё на то, чтобы хотя бы количество параметров у всех команд выяснить? Я уже молчу про то, сколько понадобится на их идентификацию :(.
Пока только 54 кода более-менее опознано, и новые (неопознанные) появляются в событиях всё реже и реже :(

Отредактировано alex_231 (2013-03-29 16:30:05)

250

Я так тоже сценки в играх тестирую - тупо переношу в первую сценку всё из следующих и смотрю ;о)

251

2 Guyver: Это да, но такая возможность мне попалась впервые.

2 Mefistotel: Во время распознавания кодов выяснился нехороший баг - при регенерации нового машинного скрипта была потеряна часть кода :( (только кода, текста это не касается - там всё ровно :) ), а вызвано это было теми самыми строками, которые вынимались по неверным данным (те, про которые ты в заметках писал). Пришлось переписывать дампер, чтобы он работал с учетом таблицы кодов событий, но тут тоже есть одно "но" - для корректной работы нужна полная таблица кодов, так что буду утюжить скрипт, пока всё коды не найду.

Отредактировано alex_231 (2013-03-30 05:24:05)

252

ОК.
Весть про возможность просмотреть все события вначале - суперская yahoo
Не придётся проходить игру 16 раз подряд, чтобы все диалоги с концовками увидеть.

253

Автоматизировал поиск неопознанных кодов и оказалось, что команд-то всего 62, остальные если и запрограммированы, то в игре не использованы и отследить их будет практически нереально, но нам они без надобности - будем использовать те, что есть.
Теперь углублюсь в процедуры редактирования, чтобы по максимуму автоматизировать процесс, а то руками рассчитывать указатели на каждую строку и подпрограмму никакого терпения не хватит.

254

Ага, редактирование текста полностью готово: при изменении длины строк указатели на остальные строки блока рассчитываются автоматически.
Теперь осталось обработку подпрограмм запилить и, вроде, всё. Ттам, правда пока ещё конь не валялся, но, думаю сегодня-завтра доделаю.

255

Обработка подпрограмм готова. Можно уже редактировать.
Хотя... блин, это ручное редактирование готово, а генерация машинного скрипта из оригинального и текстового так и хромает. Надо ещё немного поковыряться.

256

Не, ну его нафиг... "Настоящие герои всегда идут в обход!" Отредактировал машинный скрипт так, чтобы он соответствовал скрипту.
Теперь можно полноценно работать со скриптером.
Но есть один вопрос: в игре (оригинале) для повторяющихся блоков используется один блок (в смысле в роме он один, а в игре встречается несколько раз), так вот, в скрипте эти блоки идут так, как встречаются в игре (идентифицировать их можно по строке "PACKET=..."), и если в скрипте они будут различаться, то в игре этого не будет, так как скриптер использует лишь первый (из идентичных в оригинале) блок, и при появлении в скрипте второго (с идентичным идентификатором) просто запишет поинтер первого пакета в ром, а сам второй блок проигнорирует.
Так вот, нужно ли убрать использование поинтеров на повторяющиеся блоки?
То есть, если ты планируешь делать сценки немного различными (те, которые изначально были идентичными), то скажи сейчас, чтобы я сразу исправил скриптер, пакер и сборщик рома.
Если же нет, то и бог с ними - выложу утилиты как есть, а пока пойду руководство писать :).

257

Не дожидаясь ответа отрезал использование повторов.
Пока отрезал оказалось, что скриптер почему-то перестал переваривать динамические массивы :blink: пришлось в срочном порядке переходить на статические.
Архив со всеми приблудами весит 2.4Мб (правда там больше половины архива промежуточная версия рома заняла).

Отредактировано alex_231 (2013-03-31 16:51:08)

258

Главное, чтобы оно только после такой кучи манипуляций всё корректно работало. :rolleyes: А так, чего тут скажешь: молодчага, Алекс. Герой. ) Сколько мучался и таки сделал. )

259

Да всё работает, только проверить все блоки нужно - строки там как попало выводятся, надо координаты поправить и переносов понаставить.

260

Такс. Сегодня заценю и напишу комментарии.

261

Санек, хотелось бы ещё исходники посмотреть для общего развития. Это просто монстр, а не редактор) Такие наработки можно использовать и в других играх.
Уже домой как доберусь к выходным, займусь полноценной работой с ними. Возможно будут и какие-то пожелания.
P. S. Теперь ты можешь и другими делами заниматься)

262

Ага, Франкенштейн прямо, тоже ведь из кусочков состоит :)
Исходники вечером сброшу.

Отредактировано alex_231 (2013-04-01 13:41:00)

263

Вот архив с исходниками, каждая утилька в отдельной папке, так как писались они отдельно, и только потом поверх основы привинчивалась интеграция.

264

Да, забыл сказать (и в ридми не написал), что собиралка кидает данные новых пакетов в расширенное место рома начиная с адреса x210000 (вроде бы, точно можно в самой собиралке посмотреть, если вручную запустить).

265

Осваиваю твоего зверя. А можно как-нибудь добавить возможность изменения размеров программы? А то при моем 1366*768 даже низа скриптера не видно и это при том, что панель задач я разместил справа экрана.  Не совсем удобно, а точнее совсем неудобно.

Отредактировано Mefistotel (2013-05-02 09:01:22)

266

Попробовал выполнить эти действия:

Код:
Режим тестирования.
1) Загрузить машинный скрипт – «Скрипт -> Загрузить машинный скрипт (NEW)»;
2) отметить галочкой «Режим тестирования»;
3) указать количество блоков из которых сформировать тестовый пакет - 2;
4) указать номера блоков (0015 и 0016)
5) сгенерировать тестовое дерево событий – «Редактор -> Машинный скрипт -> Редактор»;
Примечания:
6) конвертировать тестовое дерево в машинный скрипт - «Редактор -> Редактор -> Машинный скрипт»;
7) сгенерировать тестовый пакет (можно с автоматической сборкой рома) - скрипт - сгенерировать пакеты.

После выполнения 7 действия выскочило окно I/O Error 6. Что я сделал не так? И ещё вопросик. В режиме тестирования я указываю пакеты, например, 0015 и 0016, а когда генерирую тестовое дерево, то нумерация блоков идёт от нуля (то есть 0001 и 0002). Так и должно быть?

267

По интерфейсу: уменьшить высоту могу, переместив "собрать ром после генерации..." вниз под memo и уменьшив treeview до нижней границы третьего combobox режима тестирования. Если этого не хватит, придется memo уменьшать.

По ошибке: а ты ром загрузил перед генерацией? а то ведь генерировать-то не из чего ;)

И да, нумерация в дереве всегда начинается с 0001, а вот идентификация идет по строке со словом PACKET, так как поинтеры расчитываются по номерам блоков в скрипте, и если сменить нумерацию, то блок уже не будет первым в роме и, соответственно, игра его не прочитает так, как нам нужно.

Отредактировано alex_231 (2013-05-02 14:28:56)

268

Вот, теперь нормально должно поместиться.

269

Мда, этот скриптер ведёт меня с ума.
Всё пока касается режима тестирования. Заметил такую фишку , что если попробовать сгенерировать пакеты при отмеченной галочке "режим тестирования", то тогда будет вылазить такая вот ошибка, как во вложении.
То есть при 7) конвертировать тестовое дерево в машинный скрипт - «Редактор -> Редактор -> Машинный скрипт»; галочка с режима тестирования автоматически отжимается. :)
Алекс, можно нормально назвать меню:
Редактор -> Машинный скрипт -> Редактор» - Редактор - Генерация тестового дерева,
Редактор -> Редактор -> Машинный скрипт»; - Редактор - Конвертация дерева в машинный скрипт.
А то я постоянно путаюсь)
Еще момент, процесс генерации пошел нормально, подсунул файл tmp.txt, после этого сохранил ром, но он получился равным 00 байт...
У меня только один раз получилось собрать ром, равный 00 байт, всё остальное время автоматическая сборка выдавала ошибку, как на скриншоте ниже. Уже даже без косяков, дествуя строго по инструкции.

Отредактировано Mefistotel (2013-05-05 06:09:10)

270

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

Код:
1) Загрузка рома – «Файл -> Загрузить РОМ».
2) Загрузить машинный скрипт – «Скрипт -> Загрузить машинный скрипт (NEW)»;
3) отметить галочкой «Режим тестирования»;
4) указать количество блоков из которых сформировать тестовый пакет (максимум 9);
5) указать номера блоков;
Примечание:
- номера блоков должны идти по возрастанию, то есть блок с номером «01AF» не может идти после блока «01C0», но порядок может быть не строгим, например: «0001»-«0004»-«0008»-«00D1» – допустимая комбинация блоков.

6) сгенерировать тестовое дерево событий – «Редактор -> Машинный скрипт -> Редактор»;
Примечания:
- события заканчивающиеся кодом {25} будут приводить к преждевременному переходу в главное меню, так как этот код является кодом завершения группы сцен, его следует заменять (!только во время тестирования!) кодом {10} – кодом окончания сцены;
- также код {10} в последнем блоке следует заменять кодом {25}, во избежание перехода к следующей сцене, минуя главное меню.
7) конвертировать тестовое дерево в машинный скрипт - «Редактор -> Редактор -> Машинный скрипт»;
8) сгенерировать тестовый пакет (можно с автоматической сборкой рома).

271

А из какой папки ты ром открываешь?
Я так понял в bat-никах нельзя использовать пути с пробелами, иначе они расцениваются как параметры, поэтому если ты указываешь ром из другой папки (не той, в которой программа лежит), то в пути к этому файлу не должно быть пробелов.

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

Поменял команды в меню.

Отредактировано alex_231 (2013-05-05 14:49:33)

272

Если есть в пути пробелы, то можно юзать кавычки. Взять весь путь в кавычки - и прокатит...

"C:\Program Files\1.bat"

Отредактировано Guyver (2013-05-05 16:04:58)

273

Так-то да, но... это придётся всех троих переписывать ;)

274

А не, только двоих:

275

Такс. Вот теперь удалось таки сгенерировать ром.
Завтра попробую попроверять блоки)

276

Так-с, режим тестирования работает нормально, но вот при попытке проделать эти манипуляции:

Генерация машинного скрипта:
1) загрузить исходный машинный скрипт – «Данные -> Загрузить машинный скрипт»;
2) загрузить текстовый скрипт – «Скрипт -> Загрузить скрипт»;
3) сгенерировать новый машинный скрипт – «Скрипт -> Применить таблицу (TXT -> CODE)»;
4) сохранить новый машинный скрипт – «Скрипт -> Сохранить машинный скрипт (NEW)»;

скриптёр зависает намертво... Ждал минут 20 на I7 2.9 Gh с 8 гигов DDR3. Даже шкалу прогресса не показывает.
То есть я исправил некоторые текстовые ошибки в текстовом скрипте, а потом захотел сгенерировать новый машинный скрипт из текстового.
Получилось сделать нужные исправления прямо в дереве, а потом его сконвертировать в машинный скрипт. После этого сохранил новое дерево и машинный скрипт.
Ещё один момент, не нашёл в кодах время появления сцены на экране. Есть коды fade in и fade out, а вот как увеличить задержки сценки на экране. Во многих сценах русского текста стало больше и просто физически прочитать его за отведённое время не предоставляется возможным. Можно конечно добавить ожидание нажатия кнопки в таких местах, но как-то не системно будет :( Где-то над жать, где-то не надо.
P. S. Да, если в режиме тестирования стоит 1 блок, то ты не можешь ввести его номер. Когда два и более, то во вкладке все номера блоков присутствуют. Причем надо с первого раза выбрать для тестирования всего один блок, потому как если ты выберешь два и и более, а потом один, то тогда номер можно указывать. )

Отредактировано Mefistotel (2013-05-19 13:22:11)

277

Мало ждал, у меня на I7 2,8GHz 4Gb DDR3 это дело до 40 минут обрабатывалось.
Но не суть...
По кодам - код h0B - задержка, но я его полностью не распознал, а именно, для чего там первый параметр, второй и третий - время (видимо в милисекундах, лотя не факт), поэкспериментируй с ним.

Просто при включении режима не срабатывает заполнение списка, но если выбрать количество блоков = 1, то список заполнится и можно будет выбрать номер блока.

Отредактировано alex_231 (2013-05-19 13:02:48)

278

Странно как-то. У меня конвертация полного дерева в машинный скрипт отнимает меньше 3 секунд, а вот конвертация текстового скрипта в машиный убивает напрочь процесс. Из этого я могу сделать вывод, что лучше редактировать скрипт в дереве, потом конвертировать в машинный скрипт и сохранять их после изменений.
Ладно, попробую разобраться с этими задержками.

279

Такс. Проверил пару десятков блоков и выяснил такой момент, что блоки, которые относятся к сжатому сюжету, не выводятся в режиме тестирования. Например, блок №0B и №12.
Посмотри Сань. И ещё, нельзя ли прикрутить кнопку запуска всех блоков в режиме тестирования вначале игры?
Добавить в выбор количества блоков для тестирования надпись "Все". Потом только руками подправить 10 на 25 в блоках.
Было бы удобно, сразу все смотреть блоки, как в кино, и редактировать дерево походу.

Отредактировано Mefistotel (2013-05-26 09:12:48)

280

Блин, эти блоки не выводятся, потому что в них стоит метка принадлежности: в блоке в строке PACKET=8#:#### восьмерка означает принадлежность к сжатому режиму (замени его на 0 и игра будет их проигрывать вместе с остальными).
А по поводу тестирования всех блоков - можно просто в общем дереве (не в режиме тестирования) заменить все коды h25 на h10 и игра будет их проигрывать один за другим, пока они не закончатся.

281

Мда. Чувствую, проблемы будут преследовать меня всё время.
При очередной попытке загрузить дерево выскакивает такая ошибка.
http://savepic.net/3759531.png
Во вложении само дерево, вызывающее такую ошибку. Почему-то в нём уровни строк не совпадают с оригинальным. Не могу понять, что привело к этому.
Пару раз редактировал его в блокноте, вставляя строку из скриптера. Может сохранение в блокноте к такому привело. :rolleyes:
Как то можно программно его подогнать под нужные уровни?

Отредактировано Mefistotel (2013-05-27 13:23:03)

282

Зря ты дерево в блокноте редактировал, зря-зря-зря... Не предназначено оно для этого. А как сейчас вернуть изначальные уровни я ответить затрудняюсь - формат дерева совсем не изучал, просто встроенное в Delphi сохранение/загрузку TreeView использовал.

283

Заново всё исправил.  yu  Теперь только в проге и только дерево буду редактировать.
Ещё бы количество символов справа от строки показывалось, было бы удобнее.)

Отредактировано Mefistotel (2013-05-28 14:03:15)

284

Попробую что-нибудь придумать.

285

Апдейт заказывали?

Отредактировано alex_231 (2013-05-29 14:15:03)

286

Апдейт заказывали?

287

Да, как раз вовремя. yess1
Благодарю ^_^

288

59 блоков из 620 проверено. alcoholic

289

Санёк, это нормально, что в дереве нет блока с номером 7F? При попытке сгенерировать дерево с указанием этого блока, программа вешается намертво.
Видимо, этот символ занят как служебный.

Отредактировано Mefistotel (2013-06-09 10:47:34)

290

Вот блок с этим номером, просто вставь в дерево перед блоком 0080.
Он, видать, потерялся, когда я генерировал машинный скрипт из текста, который ты переводил.
Там одна строка со словом "DELETED", я пока написал "УДАЛЕНО".

291

Отлично. Ещё вопросик. Протестируй 96 блок - после вывода текста идёт креш.
И надо бы достать графику с картами из блока 8F (Danger, Warning). Хотя там и без карты перевести можно.
P. S. 150 из 620 блоков готово. Занялся рисование и вложил первый кусок, который ещё не переведён.

Отредактировано Mefistotel (2013-06-09 13:02:13)

292

Проблема в том, что после генерации кода из дерева 96 блока появляется строка "CODE=", а сам код находится строкой ниже, нужно убрать перенос строки и тогда крэша не будет. Сейчас попробую поправить скриптер, чтобы таких пустых строк не возникало, или поправить их обработку, чтобы корректно генерировался пакет.

293

Ага, поправил скриптер, теперь такие строки нормально отрабатываются.

294

И что-то я не увидел в блоке 8F никаких надписей (Фантом подлетел на своем гипербайке к какой-то платформе и спрыгнул на нее), может там какой другой номер?

295

Да, ошибся.
90 блок.

296

Да и есть один момент. Иногда пробел не срабатывает и приходится ставить его дважды. Например, блок 99. Посмотри в скриптере стоит пробел, а в игре не выводится. Если добавить ещё один пробел (на  земле), то тогда будет всё нормально.

297

Это... а это - извините... (Левин)
Тут неправильно была вставлена таблица МТЕ, мой косяк, поменяй байт по адресу x31C86 с h00 на h20, тогда двойной пробел не нужно будет ставить в скриптере.

По карте надписей - тихий ужос... Я несколько часов бился, пока не понял, что карту тайлов уже нашел, она просто даже после декомпрессии обрабатывается особым образом, прежде чем попасть в видеопамять.

Вот файл с графикой и картой, карта начинается с адреса x2FE0.
Надписи начинаются:
x313A - WARNING
x3328 - DANGER.

Отредактировано alex_231 (2013-06-10 19:56:23)

298

Саня, принимай.
Жду ром с двумя вставленными картинками и подправленным словарем (00->20).

299

Хм, что-то ты напутал с цветами и надписи стали прозрачными (задний фон сквозь них видно), да и у меня что-то глючит - попробовал перенести пакет в другое место и графика фона покрошилась, буду смотреть, что не так.

300

Ага, компрессор был чуть кривоват, теперь нормально, но графику надписей нужно менять :(


Вы здесь » Chief-NET » Переводы » Phantom 2040 (SNES)