Ну, победил я эту игру, наконец. Хотя и пришлось помучиться - сконвертировал звуки, собрал контейнер - не работает. Повторил процедуру на всякий случай - не работает. И тут я заметил, что в оригинале все звуки ровно кратны 8 килобайтам. Мысль, что придется подгонять 588 файлов под размер мне не понравилась, поэтому пришлось написать скриптик.
Скрипт оставлю здесь, чтобы не потерялся. В работе он использует думми-файл размером 8192 байта, забитого нулями и консольную утилиту -
DD.
Скрипт
@echo off
SetLocal DisableDelayedExpansion
color 0A
mode con:cols=81 lines=33
cls
set Input_Path=d:\TEMP\!BUILDS\!WORK\[PS2] Mashed\RUS_RWS\
set Output_Dir=%Input_Path%_OUT\
set DD_Path=%~dp0
if exist "%Output_Dir%" (
rmdir /S /Q "%Output_Dir%"
)
mkdir "%Output_Dir%"
for %%i in ("%input_path%*.RWS") do (
if not exist "%Output_Dir%%%~ni" mkdir "%Output_Dir%%%~ni"
if exist "%input_path%%%~ni" (
cd "%input_path%%%~ni"
for %%j in ("*.vag") do (
call:vag_file_size_calculator "%%j"
call:vag_file_delta_size_calculator
copy /b "%%j"+"%DD_Path%_delta.bin" "%Output_Dir%%%~ni\%%j"
del "%DD_Path%_delta.bin"
)
)
)
goto END
:vag_file_size_calculator
set /A vag_file_size = %~z1
Exit /b
:vag_file_delta_size_calculator
if %vag_file_size% LSS 8192 (
set /A vag_file_delta_size = 8192 - %vag_file_size%
goto EXIT_DELTA_CALCULATOR
)
if %vag_file_size% LSS 16384 (
set /A vag_file_delta_size = 16384 - %vag_file_size%
goto EXIT_DELTA_CALCULATOR
)
if %vag_file_size% LSS 24576 (
set /A vag_file_delta_size = 24576 - %vag_file_size%
goto EXIT_DELTA_CALCULATOR
)
if %vag_file_size% LSS 32768 (
set /A vag_file_delta_size = 32768 - %vag_file_size%
goto EXIT_DELTA_CALCULATOR
)
if %vag_file_size% LSS 40960 (
set /A vag_file_delta_size = 40960 - %vag_file_size%
goto EXIT_DELTA_CALCULATOR
)
if %vag_file_size% LSS 49152 (
set /A vag_file_delta_size = 49152 - %vag_file_size%
goto EXIT_DELTA_CALCULATOR
)
if %vag_file_size% LSS 57344 (
set /A vag_file_delta_size = 57344 - %vag_file_size%
goto EXIT_DELTA_CALCULATOR
)
:EXIT_DELTA_CALCULATOR
if exist "%DD_Path%_delta.bin" del "%DD_Path%_delta.bin"
"%DD_Path%_dd.exe" if="%DD_Path%_dummy.bin" of="%DD_Path%_delta.bin" bs=%vag_file_delta_size% count=1
Exit /b
:END
Скрипт смотрит в папке входа на RWS-архивы, проверяет, есть ли рядом папка с именем архива (распакованные данные), заходит в нее и обрабатывает все VAG-файлы: выясняет размер файла, высчитывает дельту до ближайшего размера, кратного 8 килобайтам, формирует временный файл в размер дельты, склеивает VAG и дельту и кладет новый файл в папку вывода.
И лишь когда я подогнал все файлы таким образом - в игре заработала озвучка. Хотя из руской озвучки тут только "Угрозы" в процессе гонки, больше в ПК версии не было.
Результат в теме игры
http://psxplanet.ru/forum/showthread.php?t=29068