PSX Planet: SONY PlayStation Community

PSX Planet: SONY PlayStation Community (https://psxplanet.ru/forum/index.php)
-   SONY PlayStation - TechSupport (https://psxplanet.ru/forum/forumdisplay.php?f=20)
-   -   Создание PSX Multi Game Disc (Сборка мультиигровок) (https://psxplanet.ru/forum/showthread.php?t=7518)

SlavaVlasov 20.07.2024 15:05

Ответ: Re: Ответ: Создание PSX Multi Game Disc (Сборка мультиигровок)
 
Цитата:

Сообщение от Banny (Сообщение 304183)
SlavaVlasov, как узнать десятичное значение любого адреса? Excel какой программой можно заменить?

Заменить можно таблицами на Google Drive или Яндекс диск, либо Блокнотом с использованием табуляции (клавиша TAB) - можно ровнее в столбики пододвинуть строки.

Теперь про десятичные значения. Искать их можно через Hex-редактор HxD: у него встроенный декодер справа в "Data Inspector". Принцип действия - выделяешь 4 байта и смотришь, что он декодировал. Так как число из UltraISO нам уже известно, мы можем выделять, допустим, с 1-го байта по 4-й или со 2-го по 5-й, пока число нужное не получим. Хотя для понимания можно пользоваться разделением строки редактора на 4: один символ в столбике "Decoded text" - это двухзначное число Hex. Если посчитать количество знаков в Decoded text, мы увидим, что их 16. 16 делим на 4, получаем 4. То есть, должно быть 4 указателя в строке - по 4 байта каждый. Но в случае с BBLIT там есть еще какие-то значения, которые не проверял (скорее всего, размер файла - после адреса принято писать размер блока данных, которые относятся к этому файлу). Чтобы поменять значение в Hex-формате, нужно просто в Data Inspector дважды кликнуть на десятичное значение в UInt32 и ввести новое десятичное. Hex-значение поменяется автоматически. То есть получается процедура в обе стороны: и декодировать можно из Hex в Dec, и закодировать из Dec в Hex.

Вот пример на BBLIT:

Здесь мы видим, что значение 8F 28 00 00 декодируется как 10383. Такое же число мы видим в столбике "LBA" в UltraISO, а относится оно к файлу TITLE.BZZ, который является меню игры (где Press Start). Дальше...

За ним идет другой адрес - 0B BA 00 00. Он относится к файлу LANGUAGE.BZZ (меню выбора языка), хотя по списку он идет перед TITLE.BZZ. Дальше...

Следующий указывает вообще на первый файл в списке. То есть, вот наглядный пример, зачем нам список. Нельзя просто вставлять адреса из списка UltraISO, который отсортирован по-своему, а в EXE-файле игры - по своему. Поэтому по адресам нам нужно понять последовательность файлов.

Если игра не выходила на сборнике, есть способ поиска LBA по значению из UltraISO:

Например, здесь мы хотели узнать адрес файла LOADING.BZZ (дефолтный экран загрузки с часами). Адрес LBA - 43545. Переходим в HxD, нажимаем CTRL+F, переходим на вкладку поиска целого числа "Integer number", вводим адрес LBA из UltraISO, указываем 32-битный размер (чтобы он искал именно 4-байтные значения, а не 2-х байтные, иначе с большей вероятностью найдет все что угодно, и неясно будет, где LBA), убеждаемся, что порядок байт стоит Little Endian, до кучи можно направление поиска выбрать "All" и ищем по всему файлу с самого начала, независимо в какой области файла ты сейчас находишься, жмакаем OK и он найдет это значение и его местоположение. А рядом могут оказаться и другие адреса. А дальше создаем список.

SlavaVlasov 20.07.2024 15:37

Ответ: Создание PSX Multi Game Disc (Сборка мультиигровок)
 
И до кучи сравнение Little и Big Endian.

Допустим мы ввели десятичное число "9000":

90 5F 01 00 - так значение выглядит в Little Endian
00 01 5F 90 - так значение выглядит в Big Endian.

Обрати внимание, что числа - одинаковые, просто направление обратное. Big Endian - про "слева направо", Little Endian - про "справа налево". Большинство данных хранятся именно в Little Endian. Причем очень часто используется два байта из 4-х. То есть, условно если ты видишь значение из двух байт, а после идет 00 00, значит занято два байта. Однако, третий может быть занят по мере наращивания значения.

Оперируя условными числами, если мы возьмем число 50 и напишем его в тысячных цифрах, мы получим 0050. Теперь представим, что мы его разделили в стиле Hex (00 50) и перевернули наоборот (50 00).

Но если мы представим число 105 в тысячах, то будет 0105. Разделяем - 01 05. Перевернем - 05 01. То есть, начинает наращиваться следующее число (01), хотя оно является предыдущим. Добавляем еще буквы с A по F, включаем понимание, что число 10 - это 0A, которое идет после 09 (числение-то шестнадцатеричное, а не десятичное), а 10 в hex - это будет 16 в Dec, и примерно понимаем, в каком виде в файле хранятся эти значения.
Вот здесь таблица есть:
Этот текст скрыт Вы должны зарегистрироваться чтобы увидеть скрытый текст. После регистрации и активации аккаунта нажмите кнопку 'Спасибо', чтобы увидеть скрытый текст содержащейся здесь. Регистрация возможна через e-mail и OpenID. Если Вы испытываете проблемы с регистрацией, пожалуйста свяжитесь с Администратором volgame@gmail.com

Revers 20.07.2024 15:46

Re: Ответ: Re: Ответ: Создание PSX Multi Game Disc (Сборка мультиигровок)
 
Цитата:

Сообщение от SlavaVlasov (Сообщение 304182)
видео подавай

Мне, как раз видео не помешало бы, побольше видео-мануалов и можно без хлеба ツ

SlavaVlasov 20.07.2024 16:00

Ответ: Re: Ответ: Re: Ответ: Создание PSX Multi Game Disc (Сборка мультиигровок)
 
Цитата:

Сообщение от Revers (Сообщение 304195)
Мне, как раз видео не помешало бы, побольше видео-мануалов и можно без хлеба ツ

Я уже и скриншоты прикрепил, чтобы понятнее было =). Видео записывать дольше. В принципе, я расписал все максимально понятно.

-ZigZag- 20.07.2024 16:52

Ответ: Re: Ответ: Re: Ответ: Создание PSX Multi Game Disc (Сборка мультиигровок)
 
SlavaVlasov, хоть сейчас и не занимаюсь этим, всё равно с интересом прочитал. Подача материала - моё почтение!:Drinks:

Ярослав Дякевич 20.07.2024 18:46

Ответ: Создание PSX Multi Game Disc (Сборка мультиигровок)
 
А как через Meido Menu (v1.2) сделать меню с своей картинкой и текстом и музыкой?

SlavaVlasov 20.07.2024 20:14

Ответ: Создание PSX Multi Game Disc (Сборка мультиигровок)
 
Вложений: 1
Цитата:

Сообщение от Ярослав Дякевич (Сообщение 304203)
А как через Meido Menu (v1.2) сделать меню с своей картинкой и текстом и музыкой?

Графика лежит в файле graphics.qlp. Заменить ее внутри можно, например, через Tim2View by [Lab313] v2.0. Там же можно отредактировать таблицу цветов при необходимости. Исходные картинки можно сохранять в PNG с прозрачностью, однако обратно он принимает только в формате TIM. Формат TIM поддерживает прозрачность, однако конвертировать в него надо из BMP. Короче, какой-то цвет (например, сильно черный) должен быть указан как прозрачный.
Извлечь графику можно через Tim2View, дальше дело фотошопа, потом сохранить ее надо в BMP. Конвертировать BMP в TIM можно такими утилитами как TIM Utility 1.36pe (работает только на 32-разрядных системах, т.к. является 16-разрядной) или Tim Viewer 1.04b. Ими мы делаем преобразование BMP в TIM, а готовый TIM импортируем поверх старого в Tim2View.Еще важный момент (смотрим скрин): графика должна быть в той же разрядности цвета, что и в оригинале, чтобы не было проблем при импорте (шрифт и круглешочки для фона - 4 бита (16 цветов), заголовок - 8 бит (256 цветов).


Короче, порядок действий примерно такой:
1. Открываем graphics.qlp в Tim2View и извлекаем графику в PNG или BMP.
2. Меняем на свое усмотрение в фотошопе или другом редакторе и сохраняем в BMP.
3. Через TimViewer конвертируем BMP в TIM.
4. Импортируем TIM обратно в graphics.qlp через Tim2View (TIM > Replace in file...)

Главное, проследить, чтобы она правильно отобразилась в том же Tim2View после импорта. Если разрядность TIM'а будет не соответствовать оригиналу, в эмуляторе цвета могут сильно исказиться.

Теперь по музыке:
Музыку меню поддерживает вроде только трекерную (аналог MOD, XM, IT). Музыкальный файл в данном случае - LARISSA.HIT (судя по содержанию EXE, имя может быть любым, главное чтобы расширение было *.HIT).

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

А вот для конвертации в формат HIT потребуется утилита MODConv v.04 от Silpheed/HITMEN - прикрепил к посту (утилита - консольная, 1996 года и у меня заработала лишь на 32-разрядной Windows XP). В батнике прописываем имя исходного файла и получаем HIT на выходе.

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

или
OpenMPT
Этот текст скрыт Вы должны зарегистрироваться чтобы увидеть скрытый текст. После регистрации и активации аккаунта нажмите кнопку 'Спасибо', чтобы увидеть скрытый текст содержащейся здесь. Регистрация возможна через e-mail и OpenID. Если Вы испытываете проблемы с регистрацией, пожалуйста свяжитесь с Администратором volgame@gmail.com
Нажмите
Вторая мне показалась более удобной и гибкой, есть редактор сэмплов-ваншотов (можно менять качество, разрядность). Однако, перед началом работы нужно обязательно нажать NEW > и выбрать формат, в котором будете делать трек, т. к. у каждого трекерного формата свои спецификации (где-то дорожек мало, где-то BPM нельзя высокий сделать, а при низком BPM - очень малая "сетка" для нот - быстрые арпеджио не сыграешь). Но для Meido's Menu нужен именно формат MOD.


Но на практике времени уходит на создание собственного трекингового произведения даже больше, чем на создание сборника. Вот пример моего трекерного ремикса на Bugs Bunny - Lost in Time (правда в XM-формате):
Этот текст скрыт Вы должны зарегистрироваться чтобы увидеть скрытый текст. После регистрации и активации аккаунта нажмите кнопку 'Спасибо', чтобы увидеть скрытый текст содержащейся здесь. Регистрация возможна через e-mail и OpenID. Если Вы испытываете проблемы с регистрацией, пожалуйста свяжитесь с Администратором volgame@gmail.com


Короче, сконвертированную из MOD в HIT музыку кидаем рядом с EXE-шником и запаковываем все это в образ.

Banny 22.07.2024 22:58

Ответ: Создание PSX Multi Game Disc (Сборка мультиигровок)
 
SlavaVlasov, сравнивать значения LBA нужно только в файле Psx.exe у одноигровки и сборника или в исполняемых файлах тоже сравнивать значения LBA?

SlavaVlasov 23.07.2024 07:22

Ответ: Создание PSX Multi Game Disc (Сборка мультиигровок)
 
Цитата:

Сообщение от Banny (Сообщение 304250)
SlavaVlasov, сравнивать значения LBA нужно только в файле Psx.exe у одноигровки и сборника или в исполняемых файлах тоже сравнивать значения LBA?

В случае одноигровки, исполняемые файлы - это те, которые SLUS/SCUS/SLES/SCES, и на которые ссылается авторан - "SYSTEM.CNF". В случае со сборником, PSX.EXE - это будет меню, а оно не является игрой, поэтому LBA в нем не будет. Однако, и вышеупомянутые файлы на сборниках часто переименовывались в EXE.
Задача - взять исполняемый файл с одноигровки и сравнить с исполняемым файлом с многоигровки, предварительно выяснив, который на сборнике к этой игре относится. Сделать это относительно легко: при сравнении в HexCmp, файл будет отличаться всего в нескольких местах (в области LBA и, например, игрового текста, если он там окажется). Разница будет подсвечена красным цветом. А вот если у второго файла едва ли не с самого начала большинство байт покрыты красным (слишком много отличий, то это явно не тот файл. Ну, или отличается регионом (если у тебя одноигровка в NTSC, а игра на сборнике - в PAL), но об этом обычно упоминается в самом начале файла.

Banny 23.07.2024 11:04

Ответ: Создание PSX Multi Game Disc (Сборка мультиигровок)
 
SlavaVlasov, получается что исполняемый файл игры сборника нужно извлекать после сборки многоигровки и сравнивать в нем LBA значения с исполняемым файлом одноигровки?


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

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