Показать сообщение отдельно
Старый 20.07.2024, 15:05   #201
PSX Planet Elite Supporter
 
Аватар для SlavaVlasov
 
Регистрация: 08.08.2008
Пол: Мужской Мужской
Сообщений: 1,446
SlavaVlasov репутация неоспоримаSlavaVlasov репутация неоспоримаSlavaVlasov репутация неоспоримаSlavaVlasov репутация неоспоримаSlavaVlasov репутация неоспоримаSlavaVlasov репутация неоспоримаSlavaVlasov репутация неоспоримаSlavaVlasov репутация неоспоримаSlavaVlasov репутация неоспоримаSlavaVlasov репутация неоспоримаSlavaVlasov репутация неоспорима
По умолчанию Ответ: Re: Ответ: Создание PSX Multi Game Disc (Сборка мультиигровок)             

Цитата:
Сообщение от Banny Посмотреть сообщение
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 и он найдет это значение и его местоположение. А рядом могут оказаться и другие адреса. А дальше создаем список.
__________________
Я - геймер с чувством юмора.
P.S.: C2 EE F2 20 F2 E0 Ea E0 FF 20 F3 20 EC E5 ED FF 20 EF EE E4 EF E8 F1 FC 20 3D 29

Русские и английские обложки PS1. Собственные сканы. Обновлено: 15.03.2024 =)
Список фанатских переводов PS1
SCPH-5502 C

Последний раз редактировалось SlavaVlasov; 20.07.2024 в 20:47.
SlavaVlasov вне форума  
Ответить с цитированием
Сказали спасибо SlavaVlasov