Chief-NET

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

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


Вы здесь » Chief-NET » Архив » Программеры есть дело


Программеры есть дело

Сообщений 21 страница 40 из 84

21

Вернемся к теме, я тут подумал: может усовершенствовать (унифицировать) мой эмулятор окон сообщений.

Идея: отображение символов в соответствии с таблицей кодировки (нет в таблице -> нет на экране), единственная проблема - спецсимвол, указывающий на то, что за ним стоит управляющий код (перенос строки, конец сообщения и т.п.).

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

22

Там два байта:
один указывает на конец сроки, а другой сам символ CR?

23

Да это не важно, сколько их там, нужен общий формат, например:
<&h06>
/&h06
&$06

Что-нибудь подобное.

Отредактировано Alex_231 (2006-03-14 11:19:33)

24

У меня это

Код:
<endline>
</messege>

25

Я видел, но это не подойдет для универсального подхода, там просто нужен управляющий код, его проще распознать и работать с ним проще: не нужно вводить лишних переменных.

26

Код:
</messege>

  <_< может message?

Алекс, а можно твою программу протестить?
Было бы неплохо объединить твою прогу с прогой Шефа в один программый пакет.

27

А чего ее тестить, она работает как надо, ошибок там нет (если пользоваться с умом)

А мы и стремимся к объединению (по-моему)

28

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

29

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

30

"А чего ее тестить, она работает как надо, ошибок там нет (если пользоваться с умом)"

Да нет, я о том, можно ли ее попробовать?

"и таблица ширин есть в роме." -  а как ее найти-то? у меня в Зельде шрифт опоясан двумя полосками слева и справа произвольной ширины, между ними есть буква, при умееньшении\увеличении ширины полосок изменяетяс ширина буквы...

31

Попробовать можно, но на чем, она пока кроме шрифта и скрипта из Chrono Trigger ничего не понимает.
А про ширину ты правильно написал, ее нужно указывать в файле-таблице.
И образцы шрифта тоже надо как-то обдумать.

Отредактировано Alex_231 (2006-03-15 09:00:15)

32

Так те полоски и есть таблица ширины? просто я думал эта таблица похожа на таблицу поинтеров...
Вам проще будет сделать или как в ПП2, или используя какой-нибудь из стандартных виндозных шрифтом мсаштабируя до нужной пропорции..

Кстати, ты говорил о изменении скрипта событий в Триггере, не подскажишь как его искать-то?

Отредактировано PicaSSO (2006-03-15 17:47:40)

33

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

А таблица ширины - идущие подряд байты, значения которых равны ширинам букв кодировки (обычно).

Отредактировано Alex_231 (2006-03-16 09:07:35)

34

Ясно, спасибо..

ОФФТОП: Алекс, ты не сердись, что я из аси так резко вышел, просто у меня инет очень нестабильный и такое случается, к сожалению, давольно часто(

35

:D И на меня, пожалуйста, ни кто не сердитесь :) В 9:00 меня вышвыривают из инета.  :wacko: Этот факт нуууу очень напрягает!!!

Было просто много случаев, когда я не отвечал, по причине "отключки"
:D совесть мууучает :D   :lol:  :D

Отредактировано &lt;GD&gt; (2006-03-17 07:41:55)

36

PicaSSO, какую игру ты вскрыл?
На какую платформу, и самое главное - каков размер рома, если не более 8-ми мегабайт, то можешь воспользоваться этим.
Я его вчера вечером написал (это надо, целых три часа угрохал, а оказалось, что она умеет ну ооочень мало).
Руководство:
Это пока первая рабочая бэта-версия (вставлять текст она пока не умеет).
Загружаемые ромы не более 8-ми мегабайт.
Таблица поддерживает однобайтовую кодировку DTE/MTE.
Настройка поинтеров: вводятся абсолютные адреса (те которые показывает хекс-редактор).
Существует ограничение: поинтеры (в роме) - двухбайтовые, и должны указывать строго на начало текста (в пределах одного банка, банк - 65536 байт, то есть 64кб, или &hFFFF), пока нет обработки смещения поинтера (как на NES - &h8000).
Положение поинтеров относительно теста роли не играет, но значения поинтеров должны быть равны: (адрес начала текста)-(адрес ближайшего предшествующего начала банка)
Адрес ближайшего предшествующего начала банка - значение вида &hXXXX0200, где XX - шестнадцатиричные числа адреса.
Пока за стандартное обозначение кода принято {&hXX}, где XX - хекс-код.
Строка, помеченная <!-- обрабатываться не будет (типа комментарий).

Могу описать работу на примере Chrono Trigger:
Ром - Chrono Trigger (U).smc
Таблица - ct(full).tbl
Настройка поинтеров (для названий локаций):
Адрес таблицы поинтеров: 456194
Адрес начала текста: 455169
Количество поинтеров: 111
Код конца строки: 00
Размер хедера: 512
Извлекается скрипт названий локаций.

Кому интересно, вот исходник данной версии.

Отредактировано Alex_231 (2006-03-21 10:26:05)

37

круто!

38

Это пока еще не круто, вот научу ее понимать NES-овские поинтеры (а так же 4-х байтовые нормальные и сеговские), да вставлять все обратно, вот тогда будет круто.

39

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

40

Мда, а мне еще нужно выровнять 50 кило текста для CT, и только тогда я смогу полноценно взяться за начатые программы.

Думаю за выходные управиться с текстом и приписать к Scripter'у соображалку про остальные типы поинтеров, а если повезет, то и возвращение удастся заделать.
И (при надобности) увеличить размерность загружаемого рома.


Вы здесь » Chief-NET » Архив » Программеры есть дело