PSX STR/ZXA, музыка |
Добро пожаловать, гость ( Вход | Регистрация )
PSX STR/ZXA, музыка |
-=CHE@TER=- |
Jul 30 2008, 10:59
Сообщение
#1
|
Walter Sullivan Группа: Root Admin Сообщений: 1,361 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 314 раз(а) |
Откопал одну старую игру - The Note / Playstation.
Там офигенная музыка, но достать её не могу. На диске есть каталог \ZXA\ с файлами: CODE XA_001.STR XA_002.STR XA_003.STR XA_004.STR XA_005.STR XA_006.STR XA_007.STR Однако, ни один конвертер для PSX их не берёт, потому что это чистый звук, без заголовка (файлы большие - самый мелкий - 9 Мб). Если попытаться проиграть его как RAW PCM в Audition, то через хрип и храп угадывается мелодия. Перепробовал все возможные способы открытия (stereo-mono, 8-16-32 bit, intel-motorola-?law, etc) - как был храп, так и остался. Кто-нибудь знает, чем можно это сконвертировать в .WAV? Что за упаковщик не знаю, но первый файл начинается вот так: CODE &&))&&))**))**)) второй вот так: CODE ((**((**++**++** Остальные - похоже. Кто-нибудь может помочь? |
Axsis |
Jul 30 2008, 11:39
Сообщение
#2
|
Advanced Member Группа: CTPAX-X Сообщений: 121 Регистрация: 6-February 08 Пользователь №: 374 Спасибо сказали: 149 раз(а) |
а какими конвертерами ты уже пытался открыть? чтоб не прадлагать тебе то же самое.
|
-=CHE@TER=- |
Jul 30 2008, 15:28
Сообщение
#3
|
Walter Sullivan Группа: Root Admin Сообщений: 1,361 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 314 раз(а) |
movieconverter (str2avi, str2avi)
PSXMultiConverter 3.23 xa2wav (из набора утилит Power Psx Tools GUI) PSMPlay 0.3 Никто из вышеперечисленных этот формат не знает. Как я уже отмечал, по виду оно напоминает сжатое аудио, но без заголовка. |
Axsis |
Jul 30 2008, 16:02
Сообщение
#4
|
Advanced Member Группа: CTPAX-X Сообщений: 121 Регистрация: 6-February 08 Пользователь №: 374 Спасибо сказали: 149 раз(а) |
попробуй PSound, а также другие утилитки с этой странички, может какая-нибудь справится.
мы тут в соседней теме тоже извлечение ресурсов из игрухи для psx обсуждали. заглядывал? Спасибо сказали:
|
-=CHE@TER=- |
Jul 31 2008, 17:07
Сообщение
#5
|
Walter Sullivan Группа: Root Admin Сообщений: 1,361 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 314 раз(а) |
попробуй PSound, а также другие утилитки с этой странички, может какая-нибудь справится. Спасибо большое перепробовал всё что там было - увы, всё мимо. Все утилиты тупо пытаются нащупать заголовок и определить по нему формат, а его там нет! Так что постоянный облом. И я даже не представляю, какой он там должен быть.мы тут в соседней теме тоже извлечение ресурсов из игрухи для psx обсуждали. заглядывал? Угу, видел. На самом деле "The Note" - это PS1 игра, там много не так как в современных консольных играх.Кусок .STR-файла выложить для экспериментов? Хотя можно просто то что я в предыдущем посте написал (скобки & и *) записать в текстовый файл и сохранить как .STR. Если хоть какая-нибудь программа после этого проиграет первые несколько сотых секунды (без хрипа) - значит она справилась. Ещё vgmstream попробовал - он, гад, говорит "failed opening' - тоже заголовок ищет. Блин, знать бы хоть что за сжатие... |
Axsis |
Aug 6 2008, 21:18
Сообщение
#6
|
Advanced Member Группа: CTPAX-X Сообщений: 121 Регистрация: 6-February 08 Пользователь №: 374 Спасибо сказали: 149 раз(а) |
ну выложи чтоли хоть один файлик для примера
Спасибо сказали:
|
-=CHE@TER=- |
Aug 7 2008, 11:47
Сообщение
#7
|
Walter Sullivan Группа: Root Admin Сообщений: 1,361 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 314 раз(а) |
|
Axsis |
Aug 19 2008, 20:28
Сообщение
#8
|
Advanced Member Группа: CTPAX-X Сообщений: 121 Регистрация: 6-February 08 Пользователь №: 374 Спасибо сказали: 149 раз(а) |
файлик посмотрел, но совсем забыл отписаться на форуме.
итак, вот некоторые наблюдения (смещения и размеры в hex, если не указано обратное): файл разбит на блоки по 0х4000 байт, причём данных только на 0х3000, остальное забито нулями. зачем так сделано - непонятно, возможно блок потом в памяти разжимается "сам в себя" и становится 0х4000 байт, как бы там нибыло, файл благодаря такому ходу разработчиков сразу "распух" на треть. далее, блок можно разделить на ещё более мелкие кусочки - назовём их фреймами. размер фрейма - 0х80 байт, причём у каждого фрейма есть что-то вроде заголовка - первые 0х10 байт, они меняются от фрейма к фрейму, но в то же время выделяются на фоне остальных байт. например в файле есть так называемые "пустые фреймы" - заголовок из 0х10 байт 0х0C и 0х70 нулевых байт. вообще, сжатие похоже на разновидность adpcm, так что, возможно в этом заголовке начальные значения для данных сжатых в теле фрейма (см. доки по adpcm). ещё встречаются фреймы у которых первые 8 байт заголовка равны 0х0С а остальные 8 байт - отличаются (или наоборот). тело такого фрейма состоит из чередующихся word'ов нечётные - нулевые, четные - ненулевые (например по смещению 0x0d4800 в выложенном файле). это напоминает разделение каналов. в данном случае в левом - тишина, в правом - есть звук (ну или наоборот, в зависимости от фантазии разработчиков). можно попробовать убрать все большие последовательности нулей (от 0х800 байт и более) и ещё раз послушать как pcm, затем можно попробовать убрать эти самые 16 байт заголовка фрейма и оставить только сжатый поток и попробовать воспроизвести его. если посторонние шумы останутся - то это скорее всего разновидность adpcm, ну очень на то похоже. зы: да, параметры для pcm ставь стерео, 16 бит, а вот частоту подбором искать придётся. пока это всё что выяснил по формату. Спасибо сказали:
|
-=CHE@TER=- |
Aug 3 2009, 19:11
Сообщение
#9
|
Walter Sullivan Группа: Root Admin Сообщений: 1,361 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 314 раз(а) |
Год спустя...
До меня, наконец, дошло что же там такое, после того как ещё одну PSX-игру посмотрел. Оказывается, это .XA файлы, но без заголовка. Нашёл прогу с иходными кодами - cdxa (см. ссылку справа "Tar/GZ"). Попытался декодировать, звук перестал трещать (т.е. декодировался нормально), но почему-то стал заикаться. При увеличении дорожки видно, что между кусками звука торчит пустота. Эксперементы с длинной буфера желаемого результата не принесли. Попытки пропустить пустоту, про которую говорил товарищ Axsis, тоже ничего особо не дало. Кто-нибудь может помочь? После распаковки архива по ссылке выше нужно из каталога /xmms-cdxaaudio/ взять файлы xadecode.c и xadecode.h и использовать их в такой вот тестовой программке: CODE #include <stdio.h> #include <stdlib.h> #include <malloc.h> #include "xadecode.h" int main(void){ FILE *fl, *fw; SoundSector *blk; long sz; char *buf; fl = fopen("XA_004.STR", "rb"); fw = fopen("XA_004.DAR", "wb+"); blk = (SoundSector *)malloc(kNumOfSGs * sizeof(SoundGroup) + 0x18); memset(blk->sectorFiller, 0, 0x18); /* этого заголовка, увы, в файлах нет...*/ buf = (char *)malloc(0xFFFF); do{ fread(blk->SoundGroups, 1, kNumOfSGs * sizeof(SoundGroup), fl); sz = decodeSoundSect1(blk, buf); fwrite(buf, 1, sz, fw); }while(!feof(fl)); free(buf); free(blk); fclose(fw); fclose(fl); return(0); } Заранее спасибо. |
-=CHE@TER=- |
Apr 8 2012, 12:26
Сообщение
#10
|
Walter Sullivan Группа: Root Admin Сообщений: 1,361 Регистрация: 4-February 08 Пользователь №: 3 Спасибо сказали: 314 раз(а) |
Распаковал вот этим: jpsxdec.
Правда музыка во вступительном ролике, которую я хотел вытащить, увы, оказалась смикшированна вместе со словами. Печально. Если кому-нибудь понадобится прохождение этой игры, то оно вот тут. Ну, и до кучи Let's Play (единственный, который я нашёл на трубе) для тех, кому самому лень проходить. |
Упрощённая версия | Сейчас: 9th November 2024 - 07:54 |