Показать сообщение отдельно
Старый 01.11.2020, 17:40   #110
PSX Planet Elite Supporter
 
Аватар для Bambuch0
 
Регистрация: 27.07.2018
Пол: Мужской Мужской
Сообщений: 2,230
Bambuch0 репутация неоспоримаBambuch0 репутация неоспоримаBambuch0 репутация неоспоримаBambuch0 репутация неоспоримаBambuch0 репутация неоспоримаBambuch0 репутация неоспоримаBambuch0 репутация неоспоримаBambuch0 репутация неоспоримаBambuch0 репутация неоспоримаBambuch0 репутация неоспоримаBambuch0 репутация неоспорима
По умолчанию Ответ: Re: Ответ: Need for speed: Underground [SLUS-20811] [FullRUS] [SoftClub]             

Цитата:
Сообщение от Vinston Посмотреть сообщение
вы чужой труд переработали и подписались своим именем.и кто же тут хитрый
А не хочешь ли ответить за предъяву?
Что у нас Тревис - бог всея кодирования и разбора ресурсов чтоли? Что, по-твоему никто больше не в силах разобраться, как делать звук и видео в EA-играх? Кстати именно он взял версию от Вита и нигде об этом не указал, выдав полностью за свою. Еще хватило наглости и продавать ее.

Я тебе отвечу, да и вообще всем, чтобы не плодили слухи и всем все было понятно, а то тут уже Владу в личку начали сыпать разное... Пытаешься сделать людям добро, а тебе еще и срут в душу.

В том образе, который от [RETROGAMING], звуковой контейнер я лично собирал ВРУЧНУЮ.

Напишу для всех - там обычный ABK/AST-контейнер. Разобрать его можно с помощью NHL07AsfStudio (ищите в сети). В комплекте есть непосредственно утилита распаковки/запаковки - NHL07_Ast_Pack_11. Также распаковать эти контейнеры можно через NHL07ASFExporter. Но и это еще не все, контейнер AST можно порезать на треки с помощью schl.exe. Потом эти треки перевести в WAV с помощью утилиты кодирования звука от самой EA - SX.EXE.
Цитата:
if not exist wav md wav
for %%i in (*.ASF) do sx.exe -wave "%%i" -=%%~ni.WAV
Запаковать в обратную сторону тоже просто - из WAV делаем ASF-файл через SX.EXE.
Цитата:
for %%i in (*.wav) do sx.exe -ps2stream -eaxa_blk %%i -=%%~ni.asf
Далее эти ASF нужно запаковать в контейнер. Для некоторых игр подойдет также утилита NHL07_Ast_Pack_11 из комплекта NHL07AsfStudio. Но не в данном случае. Игра очень капризна в плане размещения ресурсов и точного указания всех размеров в таблицах.

Поэтому я поступил проще - собрал все ASF в контейнер с помощью своего скрипта.
Для начала делаем размеры всех ASF кратными 16. Это нужно, чтобы заголовок каждого файла начинался с 1 столбца в хексе. В скрипте используется консольный калькулятор и утилита посекторного копирования dd.exe
Цитата:
SetLocal EnableExtensions EnableDelayedExpansion

for %%i in ("*.asf") do call :calc %%~zi %%~nxi

goto EXIT

:calc
for /f "delims=" %%i in ('"calc.exe %1 / 16"') do set "div=%%i"
for /f "tokens=1,2 delims=." %%a in ("%div%") do (set drob=%%b)

if not exist ReSIZED md ReSIZED

if "%drob%"=="000000000" copy /b "%2" ReSIZED
if "%drob%"=="250000000" dd.exe if="/dev/zero" of="~tmp.bin" bs=12 count=1 && copy /b "%2" + "~tmp.bin" ReSIZED
if "%drob%"=="500000000" dd.exe if="/dev/zero" of="~tmp.bin" bs=8 count=1 && copy /b "%2" + "~tmp.bin" ReSIZED
if "%drob%"=="750000000" dd.exe if="/dev/zero" of="~tmp.bin" bs=4 count=1 && copy /b "%2" + "~tmp.bin" ReSIZED
del "~tmp.bin"
Exit /b

:EXIT
Далее вычисляем размеры всех ASF и записываем их в файл.
Цитата:
SetLocal EnableDelayedExpansion

if exist filesize.txt del filesize.txt

for %%i in ("*.asf") do (
echo %%~zi >> filesize.txt
)

endlocal
Склеиваем последовательно все ASF в один контейнер. Тут повезло, что звуки и в ПС2 и ПК версии имеют одинаковые имена и порядок.
Цитата:
@echo on
SetLocal EnableExtensions EnableDelayedExpansion

set OutDir=ASF_Container

if not exist %OutDir% md %OutDir%
for %%i in ("*.asf") do (
set /a n+=1
set "filename=%%~ni"
if "!n!"=="1" (
copy /b "%%~nxi" "%OutDir%!filename:~0,-6!%%~xi"
) else copy /b "%OutDir%!filename:~0,-6!%%~xi"+"%%~nxi" "%OutDir%~!filename:~0,-6!%%~xi" && move "%OutDir%~!filename:~0,-6!%%~xi" "%OutDir%!filename:~0,-6!%%~xi"
)

EndLocal
Размеры файлов, которые получили предварительно, вставляем в специально подготовленную EXCELL-таблицу. Она переводит значения в 16-ричный вид и переворачивает их, делая Little Endian.
https://docs.google.com/spreadsheets...ub?output=xlsx

Далее может быть немного сумбурно, поскольку я для себя это делал и главное чтобы было понятно мне, но я попробую...

Находим среди распакованных файлов ABK таблицу и копируем в хексе блок поинтеров, начиная с 208 оффсета. Этот блок у меня прописан в этой же таблице на 2 странице.
Далее полученные данные с первой страницы нужно сохранить в текстовый документ и сделать между данными двойной разрыв, поскольку в блоке поинтеров данные меняются 4 байта через 8.
Вот тут я сохранил блок из таблицы из столбца "Развернуто" в текстовик table_rus.txt и с помощью скрипта сделал двойной разрыв.

Результат вывода был записан в текстовый файл table_final.txt
Цитата:
@echo on
SetLocal EnableExtensions EnableDelayedExpansion

for /f %%i in (table_rus.txt) do (
echo %%i >> table_final.txt
echo. >> table_final.txt
echo. >> table_final.txt
)

EndLocal
Данные из этого файла скопировал в таблицу на 2 страницу 2 столбец и получил итоговые пересчитанные поинтеры под мои размеры файлов в столбце "Финал".
Осталось только скопировать этот столбец и вставить в ABK таблицу, начиная с 208 оффсета.
Все, контейнер и таблица готовы. И для всех файлов идеально прописаны их размеры в таблице.

С видео ситуация следующая:

Кодировать в MPC можно через PSSDown. Т.е. это такой лайвхак - утилита предназначена для понижения битрейта в видео и поддерживает MPC. Вот этим мы и пользуемся.
Эта программа при демуксе разбирает видео на потоки и кладет их во временную папку, затем берет их оттуда и собирает назад с пониженным битрейтом. Вот нам надо поймать момент между разбором и сбором и подменить аудио-дорожку.
Было перепробовано много разных способов, остановлюсь сразу на идеальном, но нашему мнению. Тут целиком и полностью заслуга Влада, именно он до этого додумался.

Мануал по сборке MPC:
Для работы нам нужен дебаггер. Нам больше всего понравился OLLYdbg.

1. Открываем дебаггер.
2. Открываем PSSDown.
3. В дебаггере на "File"-"Attach" добавляем процесс PSSDown.
Тут дебаггер повиснет и будет тупить. Ничего не делаем, просто ждем успешного добавления процесса.
4. Добавляем в PSSDown файл MPC. Выставляем процент сжатия 99%, чтобы не терять в качестве. Имя файла мы выбирали - переименовать оригинал, чтобы оригинал не перезаписывался.
5. В дебаггере жмем на паузу процесса.
6. В PSSDown жмем на кнопку старта. Индикации нажатия не будет, поскольку процесс стоит на паузе, но поверьте, оно работает. Можно покликать на кнопку несколько раз, чтоб уж наверняка.
7. Далее в дебаггере жмем на кнопку Trace Over. Это позволяет выполнить процессу одну функцию. В результате у нас PSSDown разберет видео на составляющие и автоматически опять станет на паузу.
8. Идем во временный каталог \AppData\Local\Temp\ и меняем дорожку аудио на нужную нам.
9. В дебагере жмем на RUN и ждем окончания процесса.

Все, MPC пересобран.

Потом эти MPC через QuickBMC были вставлены в VIV-архив и, опять же вручную, поправлены размеры в заголовках. Таким образом наши файлы были ровно на тех местах, где и оригиналы и имели правильные размеры.

Текст редактировался через Круптар, тут все просто, кто в теме.

Насчет Most Wanted - тут вышло еще сложнее. Контейнеры тут не ABK/AST, а IDX/BIG и таблицу просто так руками не составить. А при сборке через пакер, размер архива со звуками увеличивался. Программа смотрела, и если русский файл меньше оригинала - автоматически добивала его нулями до размера оригинала, если больше - ничего не делала. Таким образом, при любом раскладе, архив выходил больше размером. А в главном архиве, где лежал контейнер со звуками всего 170 мегабайт места, а у нас архив получался все время более 200 мегабайт.
Но и тут было найдено решение - для русских звуков был создан отдельный псевдоархив и поправлены все ссылки, чтобы игра брала данные уже с него. Место в архиве, где был изначально контейнер со звуками, я занулил, чтобы было меньше мусора.
Видео я уже не буду подробно расписывать, делалось аналогично Андеграунду.


Надеюсь, информация будет полезна тем, кто хочет делать игры EA, а ушлые личности со своими претензиями пусть идут лесом.
__________________
PS2-SCPH50008+2Tb [FHDB], PS2-SCPH90008 [Modbo5], PS2-SCPH70008 [FMCB]

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

Последний раз редактировалось Bambuch0; 02.11.2020 в 13:17.
Bambuch0 вне форума  
Ответить с цитированием
Эти 13 пользователи сказали Спасибо Bambuch0 за это сообщение: