Исследование PSP игр
Часть 1
Копаясь в файлах игр внутри
образов, я нашёл кучу всего интересного. Некоторые вещи меня очень удивили. Так
как у нас нет ни одной программы для распаковки игровых файлов, наш лучший друг
– HEX-редактор. Через
него видно что любой архив игры – это несжатые файлы,
последовательно идущие друг за дружкой. Ничего не закодировано и не сжато. И
пока я не нашёл такой программы, которая могла бы их разделить. Большинство игр
сделано на Си\Си++ с
примесью всякой бурды. Все форматы файлов, текстуры и видео, всё видоизменено.
Всё это обычные форматы файлов, но немного модифицированные и естественно,
расширения поменяли тоже. Никакие обычные программы даже графические и звуковые
файлы не читают. Какие только расширения ни придумывают. Я не пожалел времени
покопаться хекс-редактором в некоторых играх.
Оказалось, что там есть информация о файлах, которые хранились на компьютер при
создании игр, заметки и комментарии, оставленные для удобства программистами. Смотрите
сами:
---------------------------------Jak & Daxter: The Lost
Frontier---------------------------------
[game/hud/figs0/HUDHEROPLANETEXTURES.PAK]
ETEXTURES\Airship_texture01.gim.
eotero.Fri Aug 2 8 11:50:08
2009 SCEE Photoshop GIM Plugin v1.0.0
Надо порыскать, что это за плагин.
Судя из названия, он сохраняет из фотошопа картинки в
формат "gim”. (текстуры этого формата
встречаются в игре) Кстати, видно дату, час и даже минуту в которую сохранили
текстуру!
[bin/101BRINKTRAINING_DISC.PRX]
N a m e : % s
T o t a l # o f
s c r e e n s : % d
T h e r e i
s n o
s c r e e n
d a t a . r b x
T e s t i n g . . . h i t t r i a n g l e f o
r o k T h i s i s a l
o n g w i n d
o w b l a s a s d f d s d b e c a u s e w e
a r e t r y i
n g t o f i g u r e o u t
t h e
m e a n i n g
o f l i
f e s o i t h a s
t o b e t h i s i n c r e d i b l y l o n
g s t r i n
g j u s t t o t e s t
h o w t h e w h o l e
t h i n g
l o o k s
l i k e .
% s % s H U D / M A I N H
U D . W 3 D H
U D / J A K H U D T E X T U R E S . P A K H U D / H U D D
A R K D A X T E R T E X T U R E S . P A K H U D / H U D H E R O P L A N E T E X T
U R E S . P A K
% s / % s ] ? F K D . * * * * * T h i s i s a r
e a l l y l o
n g s t r i n
g t o
t e s t t
h e s c i s s o r i n g .
Это комментарий, оставленный программистом.
[bin/105AEROPADAXTER_DISC.PRX]
L
O C _ D A T A S t r u c t u r
e d u m p o f
t h e i
n s t a n c e a s o f
e n t r y :
r b B e f o r e i f ( l o c _ f i l
e | |
L O C D . . .
A f t e r s o m e
i n i t i a l h e a d e
r p a r s i n
g f o r c o l o r s , v a l u e s , e t c
A f t e r s e t t i n g t h e
l a n g u a g e t o i n i t i a l i
z e d , j u s t b e f o r e
c h e c k i n g f o r
s u b t i t l e s A t t h i s p o i n t e v e r y t h
i n g i s i n i t i
a i z e d
Это тоже комментарий, я думаю.
------------------------------------James
Cameron's Avatar - The Game----------------------------------
[module/SCALEFORM_PSP.PRX]
F
a i l e d
t o l o a d S W F f i l e «Странно O_O SWF???????» - Удивился я, потом
подумал: «Может это просто похожее расширение файла, а флэш
тут не причём?». Но когда я увидел дофигищу Action Script-а, мои сомнения опять
сменились удивлением. «Аватар сделан на флэше? XD». Нет, конечно не сама игра, а наверное некоторые элементы: меню
например. Но хотя я смотрел, в меню вроде планета трёхмерная. А вот значки меню
векторные. Флэш наложен сверху на 3D? Трудно сказать. Не знаю и не могу
ничего утверждать. Программисты такие хитрые!)))
Смотрим дальше: Action Script
F a i l e d t o l o a d S W F f i l e "
: p l a y s t o p g o t o A n d S t o p g o t o A n d P l a y n e x t F r a m e p r e v F r a m e g e t B y t e s L o a d e d g e t B y t e s T o t a l g e t B o u n d s g e t R e c t l o c a l T o G l o b a l g l o b a l T o L o c a l h i t T e s t a t t a c h B i t m a p a t t a c h
M o v i e d u
p l i c a t e M o v i e C l
i p r e m o
v e M o v i e C l i p c r e a t e E m p
t y M o v i e C l i p c r e a t e T e x t F i e l d g e t D e p
t h s w a p D e p t h s g e t N e x t H i
g h e s t D e p t h g e t I n s t a n c
e A t D e p t h g e t T e x t S n a p s h o t
g e t S W F V e r s i o n s t a r t D r a g s t o p D r a g s e t M a s k l o a d M o v i
e u n l o a d M o v i e l o a d V a r i a b l e s c l
e a r b e g i
n F i l l b e g i n G r
a d i e n t F i l l b e g i n B i t m a p F i l l l i n e G r a d i e n t S t y l
e e n d F
i l l l i n e S t y l e
m o v e T o l i n e T o c u r v
e T o n 0 4 J n 0
x J n 0
L n 0
J n 0
\ N n 0
N n 0
O n 0
O n 0
x
n 0
n 0 V o 0
Y o
0
И так далее... Там перечисляются все команды Action Script. То есть этот PRX является как бы
Flash Player-ом!!! (Я загрузил в хекс-редактор Flash Player для Windows. Там
так же перечисляются команды и это +1 аргумент.) Затем я посмотрел
обычный swf
ролик. Его код начинается с "CWS”.
Затем открыл архив игры и смотрю: там тоже есть файлы, начинающиеся с «CWS» и выглядящие так же.
Получается, некоторые детали игры сделаны на флэше.
Теперь у меня навязчивая идея заставить этот флэш
плеер работать на меня. Может он лучше!
Вот файлы в архиве во флэш
формате, но т.к. все они слеплены в 1 архив, я не знаю где начало и конец
каждого файла и не могу ничего сделать.
gfxfontlib.swf
05_ContextualMoves.swf
07_credits.swf
01_splash_sp.swf
02_profile_manager_psp.swf
02_pandora_manager_psp.swf
Artwork_0.swf
Пытался кусок от "cws” до "cws” сделать swf файлом, ничего не получилось, не читается. Пытался prx
поставить в irshell как плагин для открытия swf.
Всё равно не работает. Пытался просто запустить prx на psp,
но это тем более не могло ничего дать. Позже, может, ещё проверю...
После всякого скрипта написано:
inflate 1.2.3 Copyright 1995-2005 Mark Adler что это за компания?
deflate 1.2.3 Copyright 1995-2005 Jean-loup Gailly хмммм.... и ещё одна.
Не слышал о таких компаниях и не понимаю: флэш же делали Macromedia и Adobe, игру делают Ubisoft, Tag и
LightStorm.
Я думаю, это связано с их DEV-kit’ом.
Кстати, при запуске игры указываются не все компании.
Ещё я узнал из титров игры, что тут ещё и компания Autodesk замешана. Может, они использовали 3D max или что-нибудь ещё для моделирования
геометрии? Ох, сколько же у них в титрах имён! Минут 20 весь текст едет. Я
понял, что любую, даже самую тупую игру делают много человек. Куча всяких
менеджеров, даже менеджера по маркетингу не забыли написать, координаторов, PR специалистов
и т.д.
И хорошо что я дождался конца
титров. Тот prx называется "scaleform”, а в титрах написана в самом конце огромными буквами "Scaleform corporation" и "Bink video”. Ну
bink video,
я думаю, вы знаете, это видео кодек для игр. Я спокойно могу посмотреть такое
видео через bink player
(rad video tools).
Он используется во всех играх от компа до PSP. А вот про Scaleform corporation
я слышу впервые. Надо поискать в интернете что это
такое.
---------------------------------------------------BrainPipe---------------------------------------------------
[EBOOT.BIN]
fmt ....c:/Documents and
Settings/chenpo/Desktop/fmodexsrc42606/src/fmod_codec_wav_riff.cpp.cue
....fact....LIST....labl....smpl....data................FMOD
XM Codec...Extended Module: ...Number of channels..c:/Documents
and Settings/chenpo/Desktop/fmodexsrc42606/src/fmod_codec_xm.cpp...Sample name
%d..OggS....FMOD XM Target
Unit
Возможно во время тестирования игры
или чего-то подобного это делалось на компе и
ссылалось на файл на рабочем столе. Видно что имя пользователя "chenpo".
Не знал что такое можно узнать из игры! А писалось всё
на С++ т.к. расширение файлов "cpp".
ЗАМЕНА ТЕКСТА HEX-РЕДАКТОРОМ
Заменить в игре текст очень
легко. Это единственное, что можно заменить без всяких особых усилий.
1) Распаковываем
образ игры какой-нибудь прогой. (Например, UMDGen)
2) Находим в игре
архив, весящий больше 40 мб (но не обязательно. Можно любой файл, но только не мультимедиа.) и перетаскиваем его в хекс-редактор. (Скачайте Hex Workshop portable, он хороший.)
3) Жмём Ctrl+F (Найти),
вводим слово для поиска. Ну например, ты увидел в игре
в начале "LOAD GAME”
и хочешь его подменить. Вписываешь в поиск его и жмёшь «Найти». Нужно чтобы
нашёлся этот текст и вокруг него куча других английских слов. Ставим курсор
перед первой буквой L и пишем слово, содержащее столько же букв. Больше букв
нельзя, т.к количество символов всего архива мы не
должны менять.
4) Сохраняем
архив. Засовываем всё обратно в образ. Сохраняем образ. Засовываем образ на зызку. Запускаем... и всё должно работать. НО: это может быть и не тот архив,
текст из которого вы видели в игре. Или в архиве есть несколько таких
одинаковых слов, а вы заменили не то.
А вот то что я заменил.
Игра BrainPipe
Игра Аватар