Звук приветствия при включении PSP
Насколько всем известно, при каждом включении PSP, проигрывается звук приветствия от SONY. Так вот, как многие уже знают, этот звук можно изменить на свой, делая свою консоль более неповторимой и индивидуальной, не похожей на остальные. И так же, ни для кого не секрет, что этот звук находится в файле прошивки
opening_plugin.prx.
Данный FAQ написан в последовательном порядке раскрытия темы, шаг за шагом.
Поэтому для практического применения, некоторые части совсем не обязательны.
Самый простой и лёгкий способ для начинающего неопытного юзера, это воспользоваться двумя шагами:
- Часть 2. Подготовка собственного звука
- Часть 3. Внедряем звук с помощью "Coldboot Sound Replacer"
Для более продвинутых, предлагается работа в Хексе, более гибкое решение, не требующее специальных программ, помимо Хекс-редактора, обещающее жить бесконечно. Даже если выйдет новая прошивка, не надо ждать обновления спецпроги Реплейсера, т.к. решение этой задачи у вас всегда с собой в кармане, вполне доступно описанное в первой части:
- Часть 1. Исследование - работа в Хексе
Так где же этот звук находится и как его можно заменить?
Часть 1. Исследование - работа в Хексе
Рекомендуется для ознакомления
Немного покумекав мозгами, первое, что пришло в голову, так это то, что звук просто вставлен в файл.
Но в каком формате, тут же напрашивается вопрос?
В голову лезут сразу разные мысли об Аудио - MP3, AAC, ATRAC3, OGG VORBIS, PCM, WAVE.
Ну конечно же WAV (WAVE)!!!
WAVE - это контейнер, который может содержать в себе разные кодеки, как MP3, ATRAC3, OGG VORBIS и прочие другие.
Как известо, каждый формат файла имеет обязательно
Заголовок (Header), описывающий сам формат и его структуру, а только потом содержит само
Тело кода.
Откройте любой WAV-файл в Хекс-редакторе и вы обнаружите, что он всегда начинается со строк
RIFF....WAVEfmt.
Итак, открываем наш файл
opening_plugin.prx от прошивки 5.00, естесственно декриптованный, в нашем любимом
Хекс-редакторе.
Теперь пытаемся найти то, что нам уже как-бы известно - это начало музыкального файла
RIFF.
Нажимаем "
Edit->Find..."
В поле типа поиска, выбираем текстовую информацию - "
Type: Text string".
В поле поиска значения, вписываем, что мы хотим найти слово
RIFF - "
Value: RIFF"
И нажимаем
ОК.
И о чудо!!!
Действительно, этот заголовок
RIFF....WAVEfmt музыкального файла WAVE здесь существует в "
Offset: 0x2EBC".
Нам теперь остаётся узнать размер файла, чтобы найти место, где он заканчивается.
Первые 4 байта, как мы теперь знаем, отводится под название
RIFF, в хексе это записывается как "
52 49 46 46", соответственно каждой букве в шестнадцатеричном формате.
Но самое главное, что нам необходимо знать, так это последующие 4 байта, которые и описывают - размер аудиофайла,
минус 8 байт:
D8 C0 00 00, что читается в обратном порядке, как
00 00 C0 D8, к которым необходимо прибавить недостающие 8 байт.
Это конечно можно посчитать и в уме, но в программе есть свой калькулятор, поэтому проще воспользоваться им.
В меню "
Tools" выбираем "
Hex Calculator" и производим арифметическое действие -
C0 D8 + 8 = C0 E0
И в заключении переводим в десяметрическую систему единиц, нажав на поле, выделенное красным квадратиком.
В итоге получаем размер файла в байтах, равным
49376 байт.
Вот то, что и требовалось доказать!
Музыкальный файл, который мы захотим внедрить в
opening_plugin.prx, не должен превышать
49376 байт (C0 E0)!!!
Вот выделен весь диапазон звука (49376 байт (C0 E0)), находящийся в файле opening_plugin.prx (63580 байт) и который занимает почти весь файл:
Хочу напомнить, что консоль Sony PSP проигрывает в этом файле звук только в собственном кодеке
ATRAC3 в контейнере WAVE, поэтому вам придётся сконвертировать вашу мелодию только этим кодеком, размером не более
49376 байт, что приблизительно равняется 4-ём секундам музыки.
Нам не обязательно кодировать звук ровно укладываясь в 49376 байт, вполне хватит 49000 байт, просто оставшееся пространство, отведенное под музыкальный файл, нужно будет забить нулями.
Как показывает практика, в этот промежуток обычно влезает звук длинной
3,78 секунд, если быть точным. Так что лучше придерживайтесь этой цифры, т.к. именно в
хексе, никак нельзя выползать за рамки дозволенного.
Теперь вы можете конвертировать любой звук в контейнер WAVE с кодеком ATRAC3 и вставлять в файл на место стандартного звука, на любой прошивке, без всяких дополнительных программ.
О том, как кодировать звук, читайте в следующей части...
Итак, скодировали свою мелодию.
Открываем её в Хекс-редакторе и первым делом смотрим на размер полученного файла в правом нижнем углу:
Ага, видим
49104 байта - это самое оно (между 49000 и 49376).
А получился такой размер, потому что я выставил продолжительность звука на
3,78 секунд.
Начиная с 4-ёх секунд, я постепенно укорачивал длину звука на 3,9 сек, затем на 3,8 сек, но поставив 3,79 всё равно файл превышал норму на 100 байт.
На 3,78 я наконец добился желаемого результата. Дело в том, что различные мелодии при одинаковой продолжительности, получаются на выходе разных размеров.
Вот я показал просто пример подгонки файла под нужный размер.
Теперь выделяем весь файл "
CTRL + A" и копируем выделение "
CTRL + C"
Теперь открываем тут же в Хекс-редакторе декриптованный файл
opening_plugin.prx
Открываем меню "
Edit -> Find", для поиска начала звукового файла
В открывшемся меню поиска выбираем поиск текстовой информации "
Type: Text string".
А искать будем значение "
Value: RIFF"
Итак, это место мы тут же находим в "
Offset: 0x2EBC", что мы и делали ранее, в начале исследования.
Теперь выделяем с этого слова "
RIFF" ровно
49104 байта, наблюдая за полем "
Sel" внизу программы, показывающем размер выделения в байтах, только по умолчанию - в шестнадцатеричной форме.
Для переключения в десятичный вид, выберите в меню: "
Options -> File offset -> Decimal".
Ставим курсор мышки перед словом "RIFF" и тянем мышку вниз...
Выделив нужную часть, нажмите "
CTRL + V", чтобы вставить ранее скопированную мелодию и которая у нас была скопирована во временную память (отображается красным цветом).
Теперь остаётся оставшийся конец, выделенный под музыкальный файл, забить нулями. Как вычислить конец, я писал в начале исследования. Но можно не вспоминать прошлое, а просто воспользоваться настоящим. Нужно из 49376 (зарезервированное место под музыку) вычесть 49104 (наш музыкальный файл), получится 272 байта (которые нужно забить нулями) - это совсем немного. Как раз, где заканчиваются единички и начинается слово "
thread"
Вот я и забил это место нулями
Сохраняем файл, нажав в меню "
File -> Save". Вы увидите, что после сохранения, красный шрифт в редакторе исчезнет.
Получившийся файл
opening_plugin.prx надо скопировать во
flash0:/vsh/module/....
Так же его можно использовать в теме
CXMB, положив его в папку
ms0:/cxmb/vsh/module/...
Часть 2. Подготовка собственного звука
- Устанавливаем кодек Atrac3
- Скачайте и разархивируйте архив в любое удобное место на компьютере.
- Нажмите на файле atrac3.inf правой кнопкой мыши и нажмите Установить.
- После этого файлы кодека можно удалять.
Нам необходимо вырезать звук, длительностью
4 секунды - именно такая продолжительность будет иметь размер около 49376 байт, который мы вычислили в первой части.
Для этого подойдёт любой аудиофайл любого формата (MP3, AAC, WAV, AC3, и т.д.), содержащий понравившийся вам кусок музыки или даже голос с микрофона.
- Скачайте и разархивируйте архив с программой GoldWave.
- Установите и запустите программу GoldWave.
- Нажмите кнопку "Open" и в открывшемся окне проводника выберите необходимый аудиофайл:
- Откройте пункт меню "View" и выберите 10 Seconds для более детального отображения звуковой дорожки в окне программы:
- Щёлкните мышкой на то место, откуда бы вы хотели задать начало вашей будущей музыкальной композиции:
- Далее нажмите кнопку "Set" и впишите в строку "Finish" время из верхней строки "Start" + 4 секунды.
В нашем примере вычисляем так: 00.81302 + 4 сек = 04.81302. Затем жмём ОК.
- После этого вы увидите, что вас выделилась часть звуковой дорожки, равной именно 4-ём секундам, а остальная часть осталась в тени:
- Теперь нам необходимо удалить лишнее то, что в тени.
Для этого открываем меню "Edit" и выбираем "Trim":
- После этого вы увидите, что всё лишнее удалилось, а наш выделенный кусок на 4 секунды растянулся во всё окно программы:
- Так как мы обрезали начало и конец музыки, то в зависимости, какой кусок вы выбрали, может получится так, что мелодия будет резко начинаться и так же резко на полуслове обрываться.
Чтобы такого не происходило, необходимо сделать плавное нарастание мелодии в начале и плавное затухание её в конце.
Для этого откройте в меню "Effect" пункт "Volume" и далее "Shape Volume...":
- В открывшемся окне Эффекта, поставьте на средней горизонтальной линии точку недалеко от начала и точку недалеко от конца, а затем опустите вниз начало и конец, тем самым опустив уровень звука начала и конца.
Затем нажмите кнопку OK.
Посмотрев на рисунок, вы поймёте смысл этих махинаций:
- Теперь вы видите в окне программы на диаграмме звуковой дорожки, что уровень звука в начале и в конце убывает:
- Вот теперь можете смело сохранять получившийся отрезок.
Нажмите пункт меню "File" и выберите "Save As...":
- В окне сохранения выставьте:
- Имя файла: На_Ваше_усмотрение
- Тип файла: Wave (*.wav)
- Attributes: ATRAC3 105kbps STEREO
- Нажмите кнопку "Сохранить"
- Всё! Ваш музыкальный файл готов!
Часть 3. Внедряем звук с помощью "Coldboot Sound Replacer"
Стоит сразу заметить, что раз уж вы делали звук, равный 4-ём секундам, то размер вашего аудиофайла может превышать отведённое под него пространство в файле opening_plugin.prx - 49376 байт.
Но об этом не стоит беспокоится, т.к. в программе "
Coldboot Sound Replacer V5.0", этот вариант уже заранее предусмотрен и программа сама обрежет звук ровно до 49000 байт, а оставшееся небольшое пустующее пространство забьёт нулями.
- Скачайте и разархивируйте архив с программой "Coldboot Sound Replacer V5.0"
- Запустите программу и поставьте горошинку в соответствии с версией вашей прошивки
- Нажмите кнопку "Browse"
- В открывшемся окне проводника выберите звук, который вы изготовили ранее
- Теперь нажмите кнопку "Save Prx"
- В открывшемся окне проводника выберите папку, куда хотите сохранить готовый opening_plugin.prx и нажмите кнопку "Сохранить"
- Получившийся файл opening_plugin.prx надо скопировать во flash0:/vsh/module/....
Так же его можно использовать в теме CXMB, положив его в папку ms0:/cxmb/vsh/module/...