Перейти к содержанию

FRM - формат


stratego

Рекомендуемые сообщения

Опубликовано

Собственно хочу полность разобраться. Кругом одна и та же таблица, по разному оформленная, но там ошибки или неточности, ну или я дурак ))

 

Вторая строчка:

0x0004 | 2 bytes | unsigned | 0x08 - 0x16, possibly more | FPS - Frames per second rate of the animation

Берём файл из первого Фаллоута, и смотрим что у нас лежит, а там жуткий ФПС, прям аппаратное ускорение надо )) Но если мы будем читать со смещением только пятый байт, то там похоже на ФПС будет, пока мне больше 10 цифра там не попадалась.

Идём дальше, где количество кадров указано, та же история, если читать как в таблице, то там полтора десятка тысяч кадров будет, ну или делать сдвиг на 8 байт, или опять же просто читать один байт. Кстати FRM Browser и frm2png, используют о количестве кадров только 9 байт. Хотя вроде в исходниках frm2png, вроде 2 байта сразу читают, как в таблице. Вообще все исходники что нашёл, вроде как обходят и игнорируют разные данные которые не совпадают в реальности с таблицей.

Доходим до смещения до картинки, там для каждого направления 32 битное число, но если так брать, там цифры почти всегда превышающие размер файла )) А если брать из этого числа первые 16 бит, то уже похоже на истину, но всё равно редко когда совпадает.

В общем видимо это большой секрет? Или никто не разобрался и всё просто берут файл из игры и переписывают графику сохраняя остальные данные?

 

 

Еще хотелось бы знать, все цвета из палитры можно использовать в ФРМ, или последние два нельзя - где то попадалась такая инфа.

 

 

Почему стены всегда по одной картинке разложены? Нельзя разве допустим стена и все направления в одном файле, как с анимациями?

 

 

Ну и в догонку. Думаю что многие собирают ФРМ анимации прикольные или вовсе все (ну а вдруг сгодится когда), в общем хранилища централизованого не нашёл. Только на гитхабе небольшая коллекция. В общем если кто копит у себя - вопрос, а как вы их храните, как там по папкам раскладываете? А то с такими названиями, там не сразу нужное найдёшь же ))

 

Опубликовано

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

В общем 9 байт почти всегда это количество кадров на направление, но мне попался файл, вроде с Рукой смерти, где была цифра не верная. Где то инфа была, что эти первые байты движок вообще игнорирует. С 10 байта идут, скорее всего смещения, сразу для всей линей кадров одного направления, но по ходу их никто не использует. Во всех исходниках их игнорируют, или там вовсе везде одинаковые цифры. Дальше идут смещения, как в таблице, но числа не реальные а закодированые (читаем по 2байта и складываем), дальше идёт якобы число для выделения памяти под массив всех данных, тут сложно сказать (но в файлах с одним кадром и 1 направлением, там размер кадра + 12). Дальше данные кадров, тут почти по таблице, только размер кадра опять же закодирован двумя 2 байтовыми числами (и где-то попадался файл. где не совпадало).

А вообще чтобы выдрать картинки, надо читать с 63 байта, ширину 2 байта, высоту 2 байта, потом пропустить 8 байт, считать картинку, заменив каждый байт цветами из палитры и сохранить в любимый формат.

Опубликовано

FRM-файлы хранятся в так называемом «тупоконечном» порядке байт.

 

Попытка считать машинное слово на «остроконечной» архитектуре приводит к «интересным результатам».

 

Но, в любом случае, чтение машинных слов при разборе — моветон.

 

Не советую смотреть как это сделано в frm2png.

 

Существует универсальная идиома

 

i = (data[3] << 0) | (data[2] << 8) | (data[1] << 16) | (data[0] << 24);

 

Компилятор «в курсе» этой идиомы, и сгенерирует эффективный код.

Опубликовано

Что-то я не подумал даже о другом порядке байт ((

Но по цифрам то у меня всё совпало )) Только со сдвигом в один байт читать приходилось... Спасибо большое!

Опубликовано

Так вопрос про, стены и другие объекты почему их раскидывают по разным frm файлам? Только персонажей я вижу в фале на все направления. А почему, к примеру банер на 2 направления не закинуть или вывеску? Или статую на все 6 направлений не сделать в одном файле, вдруг кому то пригодится статуя повёрнутая в разные стороны...

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...