Перейти к содержимому
McRex

Достаем графику из игр

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

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

Дело однако не легкое. :| Но довольно интересное, так-так в играх разработчики частенько прячут "пасхалки" =) , и здесь описуется один из способов как их открыть.

Для этого потребуется такой список прог:

- Game image haker v1.1

- HEX-viewer (у меня Translhextion v1.6)

- калькулятор (да-да именно он, но в инженерном режыме)

Предупреждаю сразу!

Пока я не буду расписывать что к чему... так-так эту тему могут проигнорировать. :)

Если найдутся умные люди, то я вывешу проги, статейки, даже пару скриптов и тд.

В ином случае пройдется тему закрыть.

Поделиться сообщением


Ссылка на сообщение

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

Поделиться сообщением


Ссылка на сообщение

Mc ты имеешь ввиду с приставок или компьютерные игры

P.S Я юзаю Dragon unpacker, TXD editor,HLMV,IMG tool 2.0 & Adobe photoshop

Поделиться сообщением


Ссылка на сообщение

Хто знает чем достать ресурси из PSOne игр ?

Для (*.Str)видеo/(*.XA)музыки/(*TIM).картинок неплохи PSplayer и PSXmulticonverter.

А как достать звуки, текстуры, модели и символы из архивов(*.bin и не только) ?

 

McRex скажы а как HEX'ом находяться и винемаються(соpy-paste наверно) ресурси ?

И что нужно считать в инженерной считалке ?

Поделиться сообщением


Ссылка на сообщение

2KeIN1st

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

 

2Mary TH

Именно эта функция перевода систем счисление и будет нужна! :)

 

2Razel the Fox

Ну, не совсем "соpy&paste". Вставить туда ничего нельзя, а от прочитать от туда спокойно можно! А поточнее смотри ниже.

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

 

Теперь к делу!

Ни для кого не секрет, что практически все разработчики сознательно стараются скрыть от игроков все ресурсы игры, дабы потом не созерцать в чужом проекте свои текстуры, звуки и прочее. Для этого они изобретают множество собственных форматов хранения ресурсов, так появляются всевозможные *.scr , *.tex, *.vol и другие. Многие из них на самом деле просто стандартные звуковые, графические и текстовые файлы с измененным расширением (например, во всех играх на движке Q3 pk3-файлы — это обычные zip-архивы). Но есть и настоящие “поделки”, которые никакими универсальными просмотрщиками не откроешь.

сможете сделать wallpaper или оформить фан-сайт по игре. В общем, сделать с изображением все что угодно, кроме, естественно, использования в коммерческих целях.

 

Становится все интересней и интересней, правда! =)

 

 

Немного теории о структуре файлов (картинок).

Структура всех файлов делится на две части: заголовок (его может и не быть, как в первом случае) и данные изображения, где хранятся цветовые значения всех точек (пикселей) изображения. Цветовое значение состоит из трех оттенков: красного (red), зеленого (green) и синего (blue). Сокращенно RGB. Это цвет в формате 24 бита (под каждый оттенок отводится 8 бит), и он “вмещает” в себя около 16,5 миллионов цветов.

В 32-битных изображениях к RGB добавляется уровень прозрачности (alpha), показывая глазу уже 4 миллиарда цветов, но человек не способен увидеть десятой части этих цветов из-за своих скромных биологических возможностей. В 16-битных изображениях (это самый сложный для понимания формат) за счет понижения количества оттенков RGB в 256 раз удалось существенно снизить затраты процессорной мощи на обработку изображений, правда, цветов осталось всего 65535.

Наконец, 256-цветные изображения. Их структура очень проста: в заголовок или в отдельный файл записывается палитра из 256 цветов в формате 24 бит, а в области данных каждой точке приписывается номер цвета в палитре от 0 до 255, этот номер умещается в размерность одного байта, поэтому этот формат также называют 8-битным (1 байт=8 бит).

 

*Image Hacker v1.1. Программа представляет собой абсолютно легальный текстовый редактор с возможностью запускать специальные скрипты. Скриптовый (читайте — текстовый) файл получается очень маленький, поэтому его намного легче отослать кому-то по почте. Язык скриптов данной программы заимствует многое у языка Паскаль (Pascal), но имеет намного меньше процедур, из-за чего становится очень простым, и в нем сложно запутаться.

Скачать (720.31 Кб)

*Translhextion. Сойдет любой HEX-viewer (просмотрщик файлов в шестнадцетиричном коде).

Скачать (375 Кб)

*А также обычный “Калькулятор”, входящий в стандартный пакет программ Windows.

 

 

 

Создайте в любом графическом редакторе картинку, нарисуйте что-нибудь, запомните ее размер (например, 190х124, далее я буду рассматривать именно такой размер) и сохраните в формате tga с цветовой палитрой 24bit. Запустите калькулятор, в меню нажмите “Вид” и выберите “Инженерный”. Вводите размер картинки по горизонтали (в примере это 190) и выберите оператор HEX. Вместо 190 появится число в шестнадцатеричном коде, равное BE. Запомните это число, перейдите в оператор DEC — вместо BE снова появится 190. Введите высоту картинки 124 и повторите процедуру. Запомните получившийся результат, если вы все сделали правильно, то это будет 7С. Теперь открывайте вашу картинку HEX-viewer’ом.

Теперь просмотрите его и найдете, где записаны ширина и высота изображения.

hex.jpg

В глаза сразу же бросается первая строка в средней части экрана, последние 4 байта имеют вид BE 00 7C 00 (обозначена красным цветом). А ведь эти числа-то мы и смотрели в калькуляторе! Вот мы и нашли где в файле записана высота и ширена картинки

 

Они записаны в формате Word (2 байта), об этом говорят байты со значением 00, идущие после BE и 7С в количестве одной штуки (за каждым).

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

Поделиться сообщением


Ссылка на сообщение

Конешно интересно. :)

Вытащить модельку или текстуру предмета, переделать и подарить своему виртуальному персонажу.

Со связи только только освоения 3D дела, пока что ещо не существующему персу. =)

Да и много чего. =)

А про *.pak из Q3 и SeriosSam я сам когдато открытие зделал, открыв иза любопытства Winrar'ом. :|

Сайт по теме http://www.extractor.ru/

По PSone

http://dev.paradogs.com/

http://www.hitmen-console.org/

 

Не знаеш чем *.txd открыть можна ?

Если Фотошопом то где плагин достать ?

Изменено пользователем Razel the Fox

Поделиться сообщением


Ссылка на сообщение

Сам процесс!

Загружайте Image Hacker и начинайте считать, какое количество переменных нам необходимо. Ширина — раз, высота — два, Оттенки R,G,B — три, четыре, пять, и еще две возьмем для рисования изображения (координаты пикселей по осям x и y). Итого семь.

Для примера я опробую процесс на SA DX? а именно на файле со шрифтом (для тех, кого я мог завести в заблуждение разъясняю. Шрифт в этой версии соника полностью графический, то есть все буквы хранятся как одна картинка). Он проше всех.

Начинаем писать:

Var width, height, r, g, b, x, y; {Объявляем 7 переменных}

openfileas('*.*'); {Открываем нужный файл, а именно ABC_TXT.PVR}

setpos(28); {Переходим на 28-й байт, тем самым пропускаем системную информацию и прочий мусор}

width:=read(3); {Читаем из файла ширину изображения}

height:=read(3); {Читаем высоту изображения}

setsize( width, height, 8 ); {Создаем в памяти картинку в формате BMP с размерами и Количество бит, может быть 8 (256 цветов) или 24 (Очень много цветов). Но так как в нашем случае шрифты черно-белие выбираем "8"}

for y:=0 to height-1 do {Организовываем цикл для загрузки 3-х оттенков для каждого пикселя по Y, а следующая строка для каждого пикселя по X}

for x:=0 to width-1 do {Так как цикл мы начинаем с 0, а не с 1, от максимального значения мы отнимаем 1, чтобы не вызвать сбой в программе}

begin {Начало обработки каждого пикселя}

b:=read(1); {Читаем Byte с оттенком красного}

g:=read(1); {Зеленого}

r:=read(1); {Голубого}

setpixel(x,y,read(1)); {устанавливает цвет пикселя с координатами x и y}

end; {Завершение обработки}

savefileas; {Сохраняем получившееся изображение в файл}

closefile; {Очищаем память от уже ненужных данных}

 

Отробуйте етот скрипт на ABC_TXT.PVR.

Понравилось? =)

С программой идут примеры попрактикуйтесь!

 

Много всего интересного можно найти в графических архивах игр. Например, в Call of Duty можно найти планы битви чертежи кораблей и другой техники.

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

Учитесь, ошибайтесь, не останавливайтесь. Ведь Рим не один день строился! :)

 

Список процедур

Процедуры для работы с файлами в игровом формате

OpenFile('Имя файла в одинарных кавычках') — загружает в память файл с картинкой в игровом формате.

OpenFileAs('В кавычках — маска файла. Например *.*') — открывает диалоговое окно для выбора файла для процедуры Open.

SetPos(число) — устанавливает позицию в файле, с которой впоследствии мы будем читать данные.

GetPos() — возвращает нынешнюю позицию в файле.

GetSize() — возвращает размер открытого файла.

read(число) — читает и возвращает скрипту данные из файла, где число:

0 — букву (1 байт)

1 — байт

2 — integer (4 байта)

3 — word (2 байта)

4 — дробное число (8 байт)

CloseFile() — очищает память (обязательно выполняйте эту процедуру в конце скрипта).

 

Процедуры для работы с картинкой

setsize(ширина, высота, количество бит) — устанавливает размер картинки. Количество бит может быть 8 (256 цветов) или 24.

setpixel(x, y, номер цвета в палитре) — устанавливает цвет пикселя с координатами x и y. Эта процедура подходит только для 256-цветных картинок!

setpixelcolor(x, y, цвет) — устанавливает цвет пикселя с координатами x и y. Эта процедура только для 24-битных картинок!

setcolortable(номер ячейки палитры (0-255), цвет) — устанавливает цвет для соответствующего номера палитры.

Save('имя файла в одинарных кавычках') — сохраняет полученную картинку в bmp-файл.

SaveFileAs() — открывает диалоговое окно для выбора файла для процедуры Save.

 

Прочие процедуры

RGB(оттенки (числа от 0-255) красного, зеленого, синего) — возвращает полученный при смешении цвет.

ShowMessage(любое значение) — выводит на экран значение (используйте эту процедуру для проверки прочитанных данных и для вывода указаний по дальнейшей работе).

ToStr(любой параметр) — превращает любой параметр в строку (иногда требуется для нормальной работы предыдущей процедуры).

Список далеко не полный.

Изменено пользователем McRex

Поделиться сообщением


Ссылка на сообщение

Да, синтаксис похож на Pascal'евский =)

А открывать он может только незжатые граф. файлы ?

*.PVR - Шо це за формат ?

Щас Sa DX у меня не стоит, а качать, розпаковивать и инсталить влом просто.

 

Будет время завтра, займусь Image Hacker'ом.'

Спасиба за розяснения и ссылки.

Изменено пользователем Razel the Fox

Поделиться сообщением


Ссылка на сообщение
Конешно интересно. :)

Вытащить модельку или текстуру предмета, переделать и подарить своему виртуальному персонажу.

Со связи только только освоения 3D дела, пока что ещо не существующему персу. =)

Да и много чего. =)

А про *.pak из Q3 и SeriosSam я сам когдато открытие зделал, открыв иза любопытства Winrar'ом. :|

Сайт по теме http://www.extractor.ru/

По PSone

http://dev.paradogs.com/

http://www.hitmen-console.org/

 

Не знаеш чем *.txd открыть можна ?

Если Фотошопом то где плагин достать ?

Всё просто Photoshop не нужен единственое что нужно это скачать программу TXD workshop с этого сайта http://gtamodern.com.ru/files/pafiledb.php...=category&id=10

она предназначена для GTA но можно доствать текстурки из Sonic heroes благо движок тот же самый и метод сжатия похожий если будут вопросы по использованию пиши в ПМ

Поделиться сообщением


Ссылка на сообщение
Да, синтаксис похож на Pascal'евский :)

А открывать он может только незжатые граф. файлы ?

*.PVR - Шо це за формат ?

 

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

Так что если файл является сжатым, возникают дополнительные хлопоты. :|

А .PVR - это расширение для SA DX, больше я его нигде не встречал. =)

Поделиться сообщением


Ссылка на сообщение

Хочю достать картинки из PSOne игры G-police 2.

Все данние сховани в архивах *.bin и *.rdt

Мне извесно что обычно картинки для PSone в формате *.tim

Роздобыл bmp2tim проги, пробовал конвертировать в разные размеры и палитры.

Если смотреть их с текст.редактора до видно что символы данных часто повторяютса.

Что очень похоже на BMP, и дествительно разные рисунки и однаковыми размерами и палитрой имею идентичние размеры.

 

Потом открыв 2 разные картинки Hex'ом увидел что все они начинаются с 10 00 00 00

Но заканчеваются уже на разние данние.

hextim0ej.png

Зная что картинки там 512*240/16bit можна подщитать по адресам где будет конец файла.

Фаил умещается на 3C000 адресе + 8 баит.

hextim28rj.png

В принцепе, адрес начала + число емкостей содержания картинки = адрес конца

Но в конечном не чево не вышло, уж много там мест где начинаются на 10 00 00 00 :)

 

Просмотрев все архивы с диска текст. редактором в far'е заподозрил что у RES.RDT много последовательный однаковых символов, что говорило о наличии Uncompressed данных.

Скачал ещо прогу TimUtilits которая умеет принудительно открывать почти любые файлы.

Если что попало открыть и прога приймет то виходят помехи.

timutil7ix.th.png

Открыв етой прогой RES.RDT было видно в нем содержатся рисунки. Поексперементировав с разришением(длиной строк), сложыл строки картинок 320*240 в ряд в режиме RGB 320*xxx пикселей

картинки сверху вышли без цвета и в 3 раза меньшым размером.

Cнизу перекошены строки.

timutil2320x12005mn.th.png

Теперь методом " больше-меньше строк" нижние картинки почти выровнились на RGB 683*XXX пикселей

Картинки там 512*240, но смотрятса в 2 раза меньшем размере.

timutil2683x12001ak.th.png

Подобное мы видели на телевизорах не знающих NTSC.

Или на секунды перевода Pal-NTSC, NTSC-Pal в видике.

 

Если разобратся, Image Hacker весьма поможет в етом. :)

Изменено пользователем Razel the Fox

Поделиться сообщением


Ссылка на сообщение
Подобное мы видели на телевизорах не знающих NTSC.

Или на секунды перевода Pal-NTSC, NTSC-Pal в видике.

 

Если разобратся, Image Hacker весьма поможет в етом. :)

 

У меня было тоже самое, когда трудился на SA DX. Весь прикол был в том что ширина в файле с картинкой как таковая не значилась. :) Хорошо что я знал размеры на перед, в Paint'e создал такую чистый лист, задал прочесть с него все размеры и по етим размерам построить фотку из файла с игры. Правда пришлось поменять порядок чтения цветов с файла и то, мне не удалось добиться требуемых результатов.

Мне показалось, что ты упоминал, что в файле несколько картинок, лично я пока таких не встречал, но можешь посмотреть пример №3 из папки с hack'ером, там по моему подобный способ достатия приведен.

Поделиться сообщением


Ссылка на сообщение

Пипл, не стесняйтесь описывать свои попытки в раскопках текстур. Описывайте свои программы и методы. Тема обширная. Ждем свежих идей. :)

Поделиться сообщением


Ссылка на сообщение

Да, 3-й пример вытягивает спрайты анимации из архивов,

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

 

Открыл я *.txd етим TXD Shop'ом, просто пересохранил файлы без изменений и игра(Sonic Herois) не смогла открыть те текстуры. Половина персонажей белыми стали(Smooth Shaded). Перепобовал все в етой проге, но текстуры в игре так и не загрузились. ^^*

Поделиться сообщением


Ссылка на сообщение

Вполне возможно что оригинал несет в себе не только саму текстуру но и служебную инфу. Посмотри разницу в коде между оригиналом и пересохраненым файлами)))

Поделиться сообщением


Ссылка на сообщение

Люди кто хорошо разбирается в графике и Image Hacker, помогите!!! Облазил много форумов, но везде меня игнрировали. Помогите достать графику из игр Петька!!! Я разархивировал файл формата str, а там лежал bmp файл такого вида. Помогите пожалуйста.

 

Люди кто хорошо разбирается в графике и Image Hacker, помогите!!! Облазил много форумов, но везде меня игнрировали. Помогите достать графику из игр Петька!!! Я разархивировал файл формата str, а там лежал bmp файл такого вида. Помогите пожалуйста.

 

Люди кто хорошо разбирается в графике и Image Hacker, помогите!!! Облазил много форумов, но везде меня игнрировали. Помогите достать графику из игр Петька!!! Я разархивировал файл формата str, а там лежал bmp файл такого вида. Помогите пожалуйста.

 

Люди кто хорошо разбирается в графике и Image Hacker, помогите!!! Облазил много форумов, но везде меня игнрировали. Помогите достать графику из игр Петька!!! Я разархивировал файл формата str, а там лежал bmp файл такого вида. Помогите пожалуйста.

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

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

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

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×