|
|
|
#3361 |
|
Модератор
![]() Регистрация: 24.07.2008
Пол: Неизвестно
Сообщений: 14,393
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Никто не будет портировать озвучку на PS1 версию, так как там все диалоги смешаны на одном треке, а это тот ещё гемор, если только через jpsxdec ковырять.
|
|
|
|
| Реклама | |
|
|
|
|
|
#3362 |
|
PSX Planet Elite Supporter
![]() Регистрация: 25.11.2008
Адрес: BY, Minsk
Пол: Мужской
![]()
Сообщений: 2,797
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Да, там все в премешку, и тем более длинна диалогов конечно же совпадать не будет, половина диалогов получатся обрезанными
|
|
|
|
|
|
#3363 |
|
Модератор
![]() Регистрация: 24.07.2008
Пол: Неизвестно
Сообщений: 14,393
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
В jpsxdec есть опция разборка всего звука, ну потом можно убрать тишину и изменить тембр, но это всё лишние телодвижения, тем более есть твой порт для PS2.
|
|
|
|
|
|
#3364 |
|
Модератор
![]() Регистрация: 24.07.2008
Пол: Неизвестно
Сообщений: 14,393
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Хотел сделать порт звука для (Xbox 360) Alone in The Dark 2008, даже скрипты bms нашёл, но похоже что запаковать данные нельзя. Для чего вообще эти скрипты делают, если c сжатием они не работают. Похоже что архивы пожаты частично, вообще не понятно для чего это было сделано. P.S распакованные данные игра тоже не подхватывает, хотя это была не проблема даже во времена Xbox Original.
|
|
|
|
|
|
#3365 | |||||||||||||||
|
PSX Planet Elite Supporter
![]() Регистрация: 23.07.2019
Пол: Мужской
![]()
Сообщений: 1,852
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Скрипты работают с сжатием, точнее сам бмс работает с сжатием. Смотря какой алгоритм сжатия в игре используется. Зачастую скрипт просто не расчитан на импорт в обратку, или если вписали эксопрт сжатия, то нет поддержки пересчета офсетов и т.д для импорта. В общем бмс это такое себе. Но на нем можно запросто научиться сканить архивы самому, а так же если скрипт поддерживает игру с сжатием, то достаточно просто проверить в списке comp type это сжатие и ухнаешь что за вид компрессии в игре. Затем можно попробовать отыскать отдельные проги для сжатия этого. P.S Посмотрел скрипты
|
|||||||||||||||
|
|
|
| Сказали спасибо YAGAMI55 |
|
|
#3366 | |||||||||||||||
|
Модератор
![]() Регистрация: 24.07.2008
Пол: Неизвестно
Сообщений: 14,393
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Данные скрипта, который распаковывает два архива alone_compressed и вытаскивает *.bnk файлы. Код:
IDString "XMBF"
Open FDDE big 1
Endian big
GetDString DUMMY 12
Get OFFS long
GoTo OFFS
Get NUMHASHES long
Get HASHOFFSET long
Math HASHOFFSET += OFFS
Get NUMFILEREC long
Get FILERECOFFSET long
Math FILERECOFFSET += OFFS
If NUMHASHES != NUMFILEREC
CleanExit
EndIf
For I = 0 < NUMHASHES
GoTo HASHOFFSET
Get HASH2 long
Get HASH1 long
String NAME p= "%08X%08X.bnk" HASH2 HASH1
SavePos HASHOFFSET
GoTo FILERECOFFSET
Get FILESIZE longlong
Get DUMMY longlong # compressed size?
Get DUMMY longlong # uncompressed size?
Get FILEOFFSET longlong
SavePos FILERECOFFSET
#Log NAME FILEOFFSET FILESIZE 1
CallFunction UnpackFile
Next I
########################
StartFunction UnpackFile
#Endian big
ComType lzo
Log MEMORY_FILE FILEOFFSET FILESIZE 1
GoTo 0x10 MEMORY_FILE
Get CHUNKSZ long MEMORY_FILE
Get FATOFFSET long MEMORY_FILE
Get ZDATAOFFSET long MEMORY_FILE
Get DUMMY long MEMORY_FILE
Get DATASIZE longlong MEMORY_FILE
Get ZDATASIZE longlong MEMORY_FILE
Get BUFFSIZE long MEMORY_FILE
Math BUFF = ZDATAOFFSET
Math BUFF += BUFFSIZE
Math NUMCHUNKS = ZDATAOFFSET
Math NUMCHUNKS -= FATOFFSET
Math NUMCHUNKS /= 4
Log MEMORY_FILE2 0 0
PutVarChr MEMORY_FILE2 DATASIZE 0
Log MEMORY_FILE2 0 0
Append
GoTo FATOFFSET MEMORY_FILE
For J = 0 < NUMCHUNKS
Get ZCHUNKSZ long MEMORY_FILE
Math ZDATAOFFSET += ZCHUNKSZ
If ZDATAOFFSET > BUFF
Math ZDATAOFFSET -= ZCHUNKSZ
Math ZDATAOFFSET x= 0x800
Math BUFF = ZDATAOFFSET
Math BUFF += BUFFSIZE
Else
Math ZDATAOFFSET -= ZCHUNKSZ
EndIf
If ZCHUNKSZ == 0
Break
ElseIf ZCHUNKSZ < CHUNKSZ
CLog MEMORY_FILE2 ZDATAOFFSET ZCHUNKSZ CHUNKSZ MEMORY_FILE
Else
Log MEMORY_FILE2 ZDATAOFFSET ZCHUNKSZ MEMORY_FILE
EndIf
Math ZCHUNKSZ x= 0x10
Math ZDATAOFFSET += ZCHUNKSZ
Next J
Append
Log NAME 0 DATASIZE MEMORY_FILE2
#Endian little
EndFunction
########################
|
|||||||||||||||
|
|
|
|
|
#3367 | |||||||||||||||
|
PSX Planet Elite Supporter
![]() Регистрация: 23.07.2019
Пол: Мужской
![]()
Сообщений: 1,852
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
это lzo, обычное lzo |
|||||||||||||||
|
|
|
| Сказали спасибо YAGAMI55 |
|
|
#3368 |
|
Модератор
![]() Регистрация: 24.07.2008
Пол: Неизвестно
Сообщений: 14,393
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
А как-то можно *.bnk запаковать обратно в lzo? Я просто попытался подменить на несжатый *.bnk, а игра просто заглючила.
|
|
|
|
|
|
#3369 | ||||||||||||||||||||||||||||||
|
PSX Planet Elite Supporter
![]() Регистрация: 23.07.2019
Пол: Мужской
![]()
Сообщений: 1,852
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
https://www.lzop.org Затем вытащить хексом блок пожатый, декомпрессить/затем скомпрессить, потом пофиксить в архиве размер пожатого файла на новый и проверить в игре. Это теория, надо пробовать. Описал принцип работы с архивами Dantes Inferno. Cуть думаю такая же
А это нужно найти флаг отвечающий за то, в каком виде файл в архиве лежит. |
||||||||||||||||||||||||||||||
|
|
|
| Сказали спасибо YAGAMI55 |
|
|
#3370 |
|
Модератор
![]() Регистрация: 24.07.2008
Пол: Неизвестно
Сообщений: 14,393
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Да я так и не понял по какому принципу там выбрано сжатие. Это явно -1, но в оригинале (файл который находится в архиве alone_compressed) сжат по другому. Пробовал подменить на сжатый файл, но экран сразу чернеет, хотя если подсунуть несжатый bnk, игра работает, но учитывая что файл изменён, начинаются глюки.
---------------------------------------------- UPD попробовал просто сжать каждый xma в lzo, результат тот же . Может утилита какая-то другая должна быть. |
|
|
|