Откопал одну старую игру - http://snesorama.us/board/showthread.php?t=19681.
Там офигенная музыка, но достать её не могу.
На диске есть каталог \ZXA\ с файлами:
а какими конвертерами ты уже пытался открыть? чтоб не прадлагать тебе то же самое.
movieconverter (str2avi, str2avi)
PSXMultiConverter 3.23
xa2wav (из набора утилит Power Psx Tools GUI)
PSMPlay 0.3
Никто из вышеперечисленных этот формат не знает.
Как я уже отмечал, по виду оно напоминает сжатое аудио, но без заголовка.
попробуй http://www.zophar.net/utilities/psxutil.html, а также другие утилитки с этой странички, может какая-нибудь справится.
мы тут в http://www.forum.ctpax-x.org/index.php?showtopic=174 тоже извлечение ресурсов из игрухи для psx обсуждали. заглядывал?
ну выложи чтоли хоть один файлик для примера
файлик посмотрел, но совсем забыл отписаться на форуме.
итак, вот некоторые наблюдения (смещения и размеры в 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 бит, а вот частоту подбором искать придётся.
пока это всё что выяснил по формату.
Год спустя...
До меня, наконец, дошло что же там такое, после того как ещё одну PSX-игру посмотрел. Оказывается, это .XA файлы, но без заголовка. Нашёл прогу с иходными кодами - http://freshmeat.sourceforge.net/projects/cdxa/ (см. ссылку справа "Tar/GZ"). Попытался декодировать, звук перестал трещать (т.е. декодировался нормально), но почему-то стал заикаться. При увеличении дорожки видно, что между кусками звука торчит пустота. Эксперементы с длинной буфера желаемого результата не принесли. Попытки пропустить пустоту, про которую говорил товарищ Axsis, тоже ничего особо не дало.
Кто-нибудь может помочь?
После распаковки архива по ссылке выше нужно из каталога /xmms-cdxaaudio/ взять файлы xadecode.c и xadecode.h и использовать их в такой вот тестовой программке:
Распаковал вот этим: https://github.com/m35/jpsxdec.
Правда музыка во вступительном ролике, которую я хотел вытащить, увы, оказалась смикшированна вместе со словами. Печально.
Если кому-нибудь понадобится прохождение этой игры, то оно https://web.archive.org/web/20040202042200/http://hem.passagen.se:80/redxiii/.
Ну, и до кучи https://www.youtube.com/playlist?list=PL6F2C8A1DA22EDC2F&feature=plcp (единственный, который я нашёл на трубе) для тех, кому самому лень проходить.