Показать сообщение отдельно
Старый 29.03.2020, 19:41   #2713
PSX Planet Elite Supporter
 
Аватар для Bambuch0
 
Регистрация: 27.07.2018
Пол: Мужской Мужской
Сообщений: 2,230
Bambuch0 репутация неоспоримаBambuch0 репутация неоспоримаBambuch0 репутация неоспоримаBambuch0 репутация неоспоримаBambuch0 репутация неоспоримаBambuch0 репутация неоспоримаBambuch0 репутация неоспоримаBambuch0 репутация неоспоримаBambuch0 репутация неоспоримаBambuch0 репутация неоспоримаBambuch0 репутация неоспорима
По умолчанию Ответ: Перенос русской озвучки/текста из РС игр (PS1/PS2/PS3/PSP)             

Ну, победил я эту игру, наконец. Хотя и пришлось помучиться - сконвертировал звуки, собрал контейнер - не работает. Повторил процедуру на всякий случай - не работает. И тут я заметил, что в оригинале все звуки ровно кратны 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
__________________
PS2-SCPH50008+2Tb [FHDB], PS2-SCPH90008 [Modbo5], PS2-SCPH70008 [FMCB]

Краткий FAQ по Терабоксу:
1). Кликаете по ссылке и переходите на Терабокс.
2). Логинитесь в нем, если еще не сделали этого ранее.
Залогиниться можно по гугл-аккаунту, ну или отдельно зарегистрироваться.
3). Жмете на кнопку "Сохранить в Мой Терабокс"
4). Переходите в свой Терабокс и скачиваете себе на ПК просто браузером, безо всяких программ и свистоперделок.
P.S. Нет, терабокс мне не платит.
Bambuch0 вне форума  
Ответить с цитированием
Эти 3 пользователи сказали Спасибо Bambuch0 за это сообщение: