PS2 TIM2 текстуры

Тема в разделе "PlayStation 4", создана пользователем Chook, 17 фев 2006.

  1. Chook

    Chook Дерусификато

    Сообщения:
    1.677
    Симпатии:
    83
    Баллы:
    93
    Народ, у кого есть iMageStudio от OPTPIX, поделитесь плиз. Или описанием формата.
    TIM2 - это формат 2д текстур приставки. Или нужны тулзы по конвертации их в TGA например и обратно.
    XnView их видит и сохраняет в других форматах... Только это вьювер для даунов :( Он не понимает Альфа канал даже. Формат то вроде не сложный (по сравнению с DDS), но ни спецификации ни конвертеров почему то в сети не могу найти :(
     
  2. romka

    romka Очень главный

    Сообщения:
    4.459
    Симпатии:
    180
    Баллы:
    203
    iMageStudio у меня нет, но по формату кое-что подсказать могу.

    Для начала, заголовок файла:
    • Идентификатор файла (4 байта) - TIM2
    • Версия формата (1 байт)
    • Идентификатор формата (1 байт)
    • Количество изображений (2 байта)
    • Зарезервированная часть (8 байт)

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

    Остальные подробности позже.
     
  3. Chook

    Chook Дерусификато

    Сообщения:
    1.677
    Симпатии:
    83
    Баллы:
    93
    Спасибо, я даже больше накопал (могу кинуть). На данном этапе интересует как палитра представлена. Вроде понятно но не совсем. На сколько я понимаю там есть зависимость еще между соседними пикселами...

    И я скачал IMAGESTUDIO V3.12A
    Возникли вопросы...
    1. Что такое CLUT (это что-то связанное с палитрой)
    2. GS регистер?
    3. FBA-bit
    4. PABE
    5. TEXCLUT
    Вобщем документацию разработчики имадж студии не выкладывают больше :( Отправляют на девелопер нетворк, а там разумеется логин нужен чтобы получить документацию по формату.

    Кстати есть еще такая штука File Investigator v2.10 который парсит файлы и ищет в них знакомые форматы. Не пробовал пока, но он шароварный.
     
  4. romka

    romka Очень главный

    Сообщения:
    4.459
    Симпатии:
    180
    Баллы:
    203
    На счёт палитры я точно подсказать не могу, по крайней мере пока. Возможно ответ найдется где-нибудь в документации по GS, так как по идее она аппаратно должна обрабатыватся в процессе текстуррирования.

    Вот что ещё есть по формату. Заголовок изображения:
    • Общий размер данных (4 байта) - заголовок, изображение, палитра и т.д.
    • Размер CLUT (4 байта) - Color LookUp Table (палитра)
    • Размер изображения (4 байта)
    • Размер заголовка (2 байта) - это значение надо прибавить к смещению заголовка, чтобы вычислить местоположение изображения
    • Clut Colors (2 байта)
    • Pict Format (1 байт) - ???
    • MipMap Textures (1 байт) - количество изображений
    • Тип CLUT (1 байт) - 6 бит обозначает сортировка, 7 бит обозначает некий CSM 2
    • Тип изображения (1 байт) - 0 NONE, 1 RGB16, 2 RGB24, 3 RGB32, 4 IDTEX4, 5 IDTEX8
    • Ширина изображения (2 байта) -
    • Высота изображения (2 байта) -
    • GsTex0 (4 байта) - ???
    • GsTex1 (4 байта) - ???
    • GsTexaFbaPabe (4 байта) - ???
    • GsTexClut (4 байта) - ???
     
  5. Chook

    Chook Дерусификато

    Сообщения:
    1.677
    Симпатии:
    83
    Баллы:
    93
    Спасибо!

    Я вот что сам глядя на файл понял :)

    000 4b TIM2
    0010 4b размер растра+палитры+заголовка(без первых 10h байт)
    0014 4b размер палитры
    0018 4b размер растра
    001C 2b размер заголовка
    001E 2b Количество цветов в палитре
    0021 1b количество MIP уровней(число картинок)
    0024 2b L picture
    0026 2b H Picture
    0030 1b 5Ch+(N_mip*4)

    если mip уровень не 1
    0050+N_mip*4 4b размер растра mip уровня
    -------------------------
    САМА ТЕКСТУРА


    -------------------------
    ПАЛИТРА

    Остальные значения для меня остались тайной :)

    А где ты взял документацию по GS? Я так и не смог скачать нигде :(
     
  6. romka

    romka Очень главный

    Сообщения:
    4.459
    Симпатии:
    180
    Баллы:
    203
    У меня есть несколько версий PDF-файлов из Linux Kit (видимо разных версий), я её ещё давно нашёл. Впрочем, у меня теперь даже и Linux Kit есть (копии дисков). ;)
     
  7. Chook

    Chook Дерусификато

    Сообщения:
    1.677
    Симпатии:
    83
    Баллы:
    93
    Гы, порылся в запасах партии :) Оказывается уменя тоже кое что есть :)
    А вообще я считаю что стоит создать отдельную тему по файлам приставки и написать что значит каждое из расширений, как определить этот файл и как его просмотреть конвертануть. А вообще у меня есть как оказалось 2 диска с Kick Start для плейстейшен 2. Там утилиты разные мелкие и библиотеки для компиляции. Документация по этим библиотекам и функциям. Только для меня темный лес пока что с чем едят :(

    // TIM2 file header
    typedef struct {
    TIM2_UCHAR8 FileId[4]; // file ID ('T','I','M','2' or 'C','L','T','2')
    TIM2_UCHAR8 FormatVersion; // version of file format
    TIM2_UCHAR8 FormatId; // ID of format
    TIM2_UINT16 Pictures; // number of picture data
    TIM2_UCHAR8 pad[8]; // for alignment
    } TIM2_FILEHEADER;


    // TIM2 picture header
    typedef struct {
    TIM2_UINT32 TotalSize; // total size of the picture data in bytes
    TIM2_UINT32 ClutSize; // CLUT data size in bytes
    TIM2_UINT32 ImageSize; // image data size in bytes
    TIM2_UINT16 HeaderSize; // amount of headers
    TIM2_UINT16 ClutColors; // colors in CLUT
    TIM2_UCHAR8 PictFormat; // picture format
    TIM2_UCHAR8 MipMapTextures; // number of MIPMAP texture
    TIM2_UCHAR8 ClutType; // CLUT type
    TIM2_UCHAR8 ImageType; // image type
    TIM2_UINT16 ImageWidth; // width of image (not in bits)
    TIM2_UINT16 ImageHeight; // height of image (not in bits)

    TIM2_UINT64 GsTex0; // TEX0
    TIM2_UINT64 GsTex1; // TEX1
    TIM2_UINT32 GsTexaFbaPabe; // bitfield of TEXA, FBA and PABE
    TIM2_UINT32 GsTexClut; // TEXCLUT (lower 32 bits)
    } TIM2_PICTUREHEADER;


    // TIM2 MIPMAP header
    typedef struct {
    TIM2_UINT64 GsMiptbp1; // MIPTBP1 (actual 64 bit image)
    TIM2_UINT64 GsMiptbp2; // MIPTBP2 (actual 64 bit image)
    TIM2_UINT32 MMImageSize[0]; // image size of N-th MIPMAP texture in bytes
    } TIM2_MIPMAPHEADER;


    // TIM2 extended header
    typedef struct {
    TIM2_UCHAR8 ExHeaderId[4]; // extended header ID ('e','X','t','\x00')
    TIM2_UINT32 UserSpaceSize; // size of user space
    TIM2_UINT32 UserDataSize; // size of user data
    TIM2_UINT32 Reserved; // reserved
    } TIM2_EXHEADER;
     
  8. romka

    romka Очень главный

    Сообщения:
    4.459
    Симпатии:
    180
    Баллы:
    203
    Сегодня наконец дошли руки поигратся с OPTPiX iMageStudio 3.12A. Очень неплохая программа для создания/редактирования текстур для PS2. Может быть даже лучший инструмент, хотя я не видел других. Рассчитана программа естественно под создание изображений для PS2, а потому в ней много специфических вещей, которые трудно понять человеку, не знакомому с устройством графической системы приставки.
    Программа может показывать изображение через PS2, чтобы можно было сразу увидеть как будет выглядеть картинка на экране телевизора. Сделать это можно как на специальной консоли для разработчиков игр, так и на обычной приставке при наличии специального USB<->USB кабеля (на основе Prolific PL-2302). После некоторых манипуляций с парой файлов я подружил программу с моим кабелем Prolific PL-2301.
     
  9. Chook

    Chook Дерусификато

    Сообщения:
    1.677
    Симпатии:
    83
    Баллы:
    93
    А я так и не смог достать кабель :( Везде уже только usb 2.0 кабели.
    А прогорамма какая-то другая для показа, или та что с дебаг стейшен работает только? Ну в комплекте со студией котороая была.
    Расскажи как подружил то если не много писать? Для справки так сказать :) Пусть будет :)

    Кстати я в свое время разобрал формат бакграундов в ФФ8 для РС которая вышла, только вот так и не смог придумать во что их конвертить удобоваримое. Там столько слоев!!! Да кроме того еще и анимированные слои были :( Но в принципе вынуть именно то что перерисовать хотелось я вынул конечно :)
     
  10. romka

    romka Очень главный

    Сообщения:
    4.459
    Симпатии:
    180
    Баллы:
    203
    Именно та, про которую написано, что для debug station. На самом деле она работает и просто с USB-кабелем.

    Кабели на PL-2301 и PL-2302 имеют одинаковый USB VendorID (67Bh), но различный USB ProductID (0 и 1). С точки зрения драйверов эти кабели управляются одинакого (я думаю, что в PL-2302 просто добавили какие-то новые возможности), а потому разницы между PL-2301 и PL-2302 для обычного драйвера почти нет. Соотвественно, я подправил пару файлов, чтобы опознавался кабель с другим ProductID.

    Для начала я отредактировал inf-файл, который используется Windows в процессе поиска драйвера для устройства:
    В данном случае это WTPS2USB.INF - это можно редактировать обычным текстовым редактором, например, подойдёт Notepad (Блокнот).
    ****** исправленный файл
    [webtech]
    %USB\VID_067b&PID_0000.DeviceDesc%=wtps2usb.Dev, USB\VID_067b&PID_0000
    %USB\VID_067b&PID_0001.DeviceDesc%=wtps2usb.Dev, USB\VID_067b&PID_0001
    ****** оригинальный файл
    [webtech]
    %USB\VID_067b&PID_0001.DeviceDesc%=wtps2usb.Dev, USB\VID_067b&PID_0001
    ******

    ****** исправленный файл
    MfgName="web technology Corp."
    USB\VID_067b&PID_0000.DeviceDesc="PS2 USB Link"
    USB\VID_067b&PID_0001.DeviceDesc="PS2 USB Link"
    ****** оригинальный файл
    MfgName="web technology Corp."
    USB\VID_067b&PID_0001.DeviceDesc="PS2 USB Link"
    ******

    Как видно, я добавил лишь пару дополнительных строчек, где вместо "PID_0001" написано "PID_0000". После этого система Windows опознала кабель.

    Далее пришлось поправить один из файлов в образе для PlayStation 2, чтобы кабель опознала и программа, выводящая изображение на экран телевизора. Для этого уже пришлось воспользоватся hex-редактором. Я исправил файл USBLINK.IRX - по смещению 20Ch был изменён всего лишь 1 байт со значения 1 на значение 0. Теперь программа стала опознавать только кабель на базе PL-2301 вместо кабеля на на PL-2302.

    В итоге iMageStudio на ПК успешно соединилась программой на PS2 и стала передавать ей изображения.
     
  11. frolinho

    frolinho Well-Known Member

    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    56
    Выложите плиз лекарство для OPTPiX iMageStudio 3.12A
     
  12. The REAL

    The REAL Only On NEOG

    Сообщения:
    11.649
    Симпатии:
    1.026
    Баллы:
    623
  13. Chook

    Chook Дерусификато

    Сообщения:
    1.677
    Симпатии:
    83
    Баллы:
    93
    Разработчики могли сделать что угодно. Например, формат видео вродебы стандартный есть для ПС2, а разработчики придумывают что-то свое. Во вторых контейнеры с текстурами могли банально запаковать, после чего ты не найдешь текстуры просто просматривая файлы.
     
  14. The REAL

    The REAL Only On NEOG

    Сообщения:
    11.649
    Симпатии:
    1.026
    Баллы:
    623
    То есть других "стандартных" форматов нет. Или нам о них неизвестно :)
    На счет запаковать врядли (в смысле сжать), а вот заголовки поотрезать и в файл-контейнер все склеить...
     
  15. Grey Fox

    Grey Fox Well-Known Member

    Сообщения:
    927
    Симпатии:
    35
    Баллы:
    73
    В МГС2 текстуры формата DDS. От nVidia =) Правда в комповой версии.
     
  16. The REAL

    The REAL Only On NEOG

    Сообщения:
    11.649
    Симпатии:
    1.026
    Баллы:
    623
    ПС2 использует тектуры DirectDraw :alien: Врядли. Похоже что текстуры "заменили" на этапе портирования в XBOX.
     
  17. The REAL

    The REAL Only On NEOG

    Сообщения:
    11.649
    Симпатии:
    1.026
    Баллы:
    623
  18. Grey Fox

    Grey Fox Well-Known Member

    Сообщения:
    927
    Симпатии:
    35
    Баллы:
    73
    :)
     
  19. The REAL

    The REAL Only On NEOG

    Сообщения:
    11.649
    Симпатии:
    1.026
    Баллы:
    623
    Что тут имеется ввиду под MIPTBP1 (actual 64 bit image)?
     
  20. DevL

    DevL Well-Known Member

    Сообщения:
    222
    Симпатии:
    5
    Баллы:
    63
    есть вообще такая штука - tm2 photoshop plugin

    ;)