PSX Planet: SONY PlayStation Community

PSX Planet: SONY PlayStation Community (https://psxplanet.ru/forum/index.php)
-   Utility for SONY PlayStation (https://psxplanet.ru/forum/forumdisplay.php?f=15)
-   -   [Metal Gear Solid] Game Over Editor / РЕДАКТОР ГЕЙМОВЕРОВ (https://psxplanet.ru/forum/showthread.php?t=31423)

MG_REX 31.08.2017 00:52

[Metal Gear Solid] Game Over Editor / РЕДАКТОР ГЕЙМОВЕРОВ
 
Всем привет! Ознакомившись с фанатским переводом первой MGS, у меня появилось очень много вопросов, один из них: как они перерисовали геймоверы? Я прочитал pdf, прилагающуюся к переводу, но ответов не нашёл, только скрины программ. К сожалению, фанаты, в большинстве своём, не рассказывают подробности процесса, не выкладывают софт, а только предоставляют готовый продукт. А ведь интересно же :((Я решил исправить это и сделал собственный редактор геймоверов для MGS1


Редактор:
Этот текст скрыт Вы должны зарегистрироваться чтобы увидеть скрытый текст. После регистрации и активации аккаунта нажмите кнопку 'Спасибо', чтобы увидеть скрытый текст содержащейся здесь. Регистрация возможна через e-mail и OpenID. Если Вы испытываете проблемы с регистрацией, пожалуйста свяжитесь с Администратором volgame@gmail.com



Фичи:
1. Графический редактор
2. Сохранение/загрузка нарисованных геймоверов
3. Сохранение/загрузка бинарников геймовера
4. Экспорт геймоверов в json
5. Экспорт геймоверов в бинарники, понятные игре

Скриншоты:

Подробный процесс создания:

Если присмотреться к отрисовке геймовера, можно заметить, что буквы образовываются с помощью линий. Если есть линии, то есть и координаты. Теперь главный вопрос: как их найти? Можно отлаживать игру, но я нашёл способ попроще. Делаем скрин эмулятора в 100% масштабе, обрезаем рамки. В Paint.NET наводим на крайнюю точку любой линии и смотри её координаты. Выбираем любую и открываем Cheat Engine. Ищем в нём это значение (изначально я думал, что это float, но вспомнил, что на старых ЭВМ для этих целей выделялось не 4 байта, а 2, поэтому, ничего не найдя, я стал искать 2-байтовое значение). Начинаем менять значения по списку и смотреть на эмулятор. Методом исключения находим нужное значение и нажимем на нём Ctrl+B. В hex редакторе нажимаем ПКМ -> Display type -> 2 Byte decimal. Перед вами структура геймовера (координаты, к которым стремится анимация).

Скрин:


Методом замены ищем крайний левый байт геймовера. Им оказалось значение, отвечающее за количество линий. Сам формат выглядит так:
PHP код:

struct GameOverScreen short lineCountLine[] lines;}
struct Line short x1short y1short x2short y2;} 

Ничего сложного, как оказалось. На этих знаниях и создавался редактор. Если вам лень всё это делать, то просто извлеките STAGE.DIR и в hex-редакторе найдите:
GAME OVER:
PHP код:

78002500580019006800190068001F0079001F007900280079002800790020008700200087002A0087 

MISSION FAILED:
PHP код:

A10020005D001800840020005D0028005D0028005D0029006B0029006B0032005D0032005D0039005D 

Замена - просто замените всё найденное своими байтами, также можно вставить прямо в RAM через CE
Вот, что получилось у меня (не смотрите на кривоту, я суть показал):


https://pp.userapi.com/c836725/v8367...9Bk8IaLOCw.jpg


Спасибо за внимание =)

rashan 20.11.2018 22:30

Ответ: [Metal Gear Sold] Game Over Editor / РЕДАКТОР ГЕЙМОВЕРОВ
 
Исправьте заголовок. Должно быть так - Metal Gear Solid


Часовой пояс GMT +3, время: 02:32.

Перевод: zCarot
Права | Copyright ©
© PSX Planet Community 2003-2024