![]() |
Ответ: Re: Ответ: Создание PSX Multi Game Disc (Сборка мультиигровок)
Цитата:
Теперь про десятичные значения. Искать их можно через 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 и он найдет это значение и его местоположение. А рядом могут оказаться и другие адреса. А дальше создаем список. |
Ответ: Создание 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, и примерно понимаем, в каком виде в файле хранятся эти значения. Вот здесь таблица есть: |
Re: Ответ: Re: Ответ: Создание PSX Multi Game Disc (Сборка мультиигровок)
Цитата:
|
Ответ: Re: Ответ: Re: Ответ: Создание PSX Multi Game Disc (Сборка мультиигровок)
Цитата:
|
Ответ: Re: Ответ: Re: Ответ: Создание PSX Multi Game Disc (Сборка мультиигровок)
SlavaVlasov, хоть сейчас и не занимаюсь этим, всё равно с интересом прочитал. Подача материала - моё почтение!:Drinks:
|
Ответ: Создание PSX Multi Game Disc (Сборка мультиигровок)
А как через Meido Menu (v1.2) сделать меню с своей картинкой и текстом и музыкой?
|
Ответ: Создание PSX Multi Game Disc (Сборка мультиигровок)
Вложений: 1
Цитата:
Нажмите
Извлечь графику можно через 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). Саму трекерную музыку можно скачать здесь: А вот для конвертации в формат HIT потребуется утилита MODConv v.04 от Silpheed/HITMEN - прикрепил к посту (утилита - консольная, 1996 года и у меня заработала лишь на 32-разрядной Windows XP). В батнике прописываем имя исходного файла и получаем HIT на выходе. Создавать свою трекерную музыку можно через MadTracker 2 (Здесь есть полезная статья, как сделать основную работу через FL Studio и потом сделать из этого трекерный файл.): или OpenMPT Нажмите
Это очень нужная картинка, если будете работать в ней:
https://psxplanet.ru/imagescreen/upl...eenshot_36.jpg И скрины интерфейса. https://psxplanet.ru/imagescreen/uploads/opmpt_musc.png https://psxplanet.ru/imagescreen/upl...pmpt_musc2.png https://psxplanet.ru/imagescreen/upl...pmpt_musc3.png Но на практике времени уходит на создание собственного трекингового произведения даже больше, чем на создание сборника. Вот пример моего трекерного ремикса на Bugs Bunny - Lost in Time (правда в XM-формате): Короче, сконвертированную из MOD в HIT музыку кидаем рядом с EXE-шником и запаковываем все это в образ. |
Ответ: Создание PSX Multi Game Disc (Сборка мультиигровок)
SlavaVlasov, сравнивать значения LBA нужно только в файле Psx.exe у одноигровки и сборника или в исполняемых файлах тоже сравнивать значения LBA?
|
Ответ: Создание PSX Multi Game Disc (Сборка мультиигровок)
Цитата:
Задача - взять исполняемый файл с одноигровки и сравнить с исполняемым файлом с многоигровки, предварительно выяснив, который на сборнике к этой игре относится. Сделать это относительно легко: при сравнении в HexCmp, файл будет отличаться всего в нескольких местах (в области LBA и, например, игрового текста, если он там окажется). Разница будет подсвечена красным цветом. А вот если у второго файла едва ли не с самого начала большинство байт покрыты красным (слишком много отличий, то это явно не тот файл. Ну, или отличается регионом (если у тебя одноигровка в NTSC, а игра на сборнике - в PAL), но об этом обычно упоминается в самом начале файла. |
Ответ: Создание PSX Multi Game Disc (Сборка мультиигровок)
SlavaVlasov, получается что исполняемый файл игры сборника нужно извлекать после сборки многоигровки и сравнивать в нем LBA значения с исполняемым файлом одноигровки?
|
Часовой пояс GMT +3, время: 17:20. |
Перевод: zCarot
Права | Copyright ©
© PSX Planet Community 2003-2024