![]() |
Bambuch0, нашёл версию error_recalc.exe 1.1
Изменения: Поддержка консольных команд(хотя одна всего лишь - error_recalc image.bin 1)Вторая команда с 0 на конце. Алгоритм сменился на ECC/EDC Написано, что и аудиотреки теперь поддерживает(не проверял) Так же исходник прилагается внутри архива. https://www.romhacking.net/utilities/1264/ Так же идея давно возникла, автоматом исправлять XA/STR. Что бы каждый раз через блокнот не править xml файл. Обычной командой консольной, думаю все знают, как текстовики(xml не отличается) фиксить через CMD. Но тут же возник вопрос. Кто знает "какие есть расширения у XA?" Пример: Resident Evil там XA это XAS файлы. Вот думаю - значит есть ещё такие изменения. По сути это те же XA и тип выставлять им XA надо. Иначе не работает. Где то читал что XA6 есть или наподобие. В общем суть такая - загнать все поддерживаемые XA(XAS, XA6, XAL, XAX и т.д) расширения в заголовок XA. |
Ответ: Создаём рабочий игровой диск PlayStation
Цитата:
01 00 64 01 01 00 64 01 |
Ответ: Создаём рабочий игровой диск PlayStation
Цитата:
Я как раз CDMagic(ом) эти поля пересчитываю после замены медиафайлов. Но иногда они сопротивляются, тогда ECCRegen. Цитата:
При распаковке образа у меня автоматом генерится XML, который на лету правится - меняются типы на XA/STR и лицензия прописывается. Если дадите все варианты, какие могут быть у XA/STR, добавлю в скрипт, это плевое дело. Надеюсь скоро допишу его. Вначале прописал только команды, затем захотел получше, начал добавлять условия, проверки разные, пару раз сломал так, что дебажил потом сутки ::blush:: Цитата:
|
Ответ: Создаём рабочий игровой диск PlayStation
Цитата:
|
Ответ: Создаём рабочий игровой диск PlayStation
Bambuch0, например таким скриптом, посредством самой CMD
@echo off setlocal enabledelayedexpansion Set infile=GAME.XML Set find=.XA type="data" Set replace=.XA type="xa" @echo off setlocal enabledelayedexpansion set COUNT=0 for /F "tokens=* delims=," %%n in (!infile!) do ( set LINE=%%n set TMPR=!LINE:%find%=%replace%! Echo !TMPR!>>TMP.TXT ) move TMP.TXT %infile%le% Это набросок, нужно правильно параметры указать, иначе будет что то крякозябное вроде этого SOUND.XA type="data".XA type="xa" |
Ответ: Создаём рабочий игровой диск PlayStation
YAGAMI55, Спасибо. =)
Я поступил проще, вот кусок кода. Использую потоковый текстовый редактор SED: sed.exe -i -e "s/XA\" type=\"data/XA\" type=\"xa/g" file.xml Но у виндового SED есть баг, что он несмотря на ключ -i все равно создает файл бэкапа с произвольным именем, и чтобы держать все под контролем, в том числе мусор, который потом чистим, сделал так: sed.exe -e "s/XA\" type=\"data/XA\" type=\"xa/g" file.tmp > file.xml && del file.tmp |
Ответ: Создаём рабочий игровой диск PlayStation
Цитата:
Ну да, у тебя гораздо проще через sed.exe прописано))) |
Ответ: Создаём рабочий игровой диск PlayStation
Завис на одном моменте, глаз уже замылился, не вижу решения.
Ткните носом, как обойти. Идея - проверяются расширения всех файлов в каталоге и одновременно из множества на предмет совпадения. Если нет - посылают лесом. В данном примере я понимаю, почему меня туда все время посылают, даже если лежит MDF. Скрипт упирается в первый тип из множества, а это BIN и шлет меня, не рассматривая дальше. Как заставить его перебирать все варианты, а не стопориться на первом? Уже мозг закипел. Решение 100% будет элементарным =) Код:
set ImageTypes=bin iso img mdf |
Ответ: Создаём рабочий игровой диск PlayStation
Цитата:
Код:
set ImageTypes=bin |
Ответ: Создаём рабочий игровой диск PlayStation
YAGAMI55, Не, не подходит. Так переменная ImageTypes будет иметь только последнее значение - mdf, остальные пролетают. ::wacko::
|
Ответ: Создаём рабочий игровой диск PlayStation
Цитата:
Цитата:
Меня вот что интересует. Кто-нибудь пересобирал/редактировал ХА-файлы через jPSXdec? Вроде в последних версиях это можно делать. Но сам процесс не тривиален. В забугорном инете не особо много инфы по данному вопросу, а хорошо бы мануал от того, кто в курсе) |
Ответ: Создаём рабочий игровой диск PlayStation
Цитата:
Bambuch0, добавь пожалуйста эти расширения в скрипт тоже .XAS .PXA Остальные будем выяснять по ходу разбора/сбора тогда. Ну а если переменную ни одну указать. Например ImageTypes1=bin, ImageTypes2=iso и т.д |
Ответ: Создаём рабочий игровой диск PlayStation
Цитата:
Хотя он мне помог однажды, при распаковке образа без ошибок, одна заставка игровая была повреждена, но вот Jpsdec вытащил её без проблем. Хотя может у меня руки кривые) |
Ответ: Создаём рабочий игровой диск PlayStation
Цитата:
Но я еще подумаю над этим вопросом. Впринципе основные типы я прописал - bin/cue, iso, img, mdf. Этого должно хватить, вроде это самые ходовые. Ну или если какие забыл - скажите. Цитата:
Сейчас при выборе пункта "Распаковка" идет подпункт выбора региона игры, это для вставки лицензии в XML, могу еще дополнительно третий подпункт встроить на 2 пункта - стандартные типы ХА - это те, которые уже прописаны в коде и на ручное указание. Не будет ли это слишком громоздко? |
Ответ: Создаём рабочий игровой диск PlayStation
Цитата:
Цитата:
|
Ответ: Создаём рабочий игровой диск PlayStation
Цитата:
XA Subheader Information
XA Subheader Information ======================== XA subheader information is 8 bytes, 2 blocks of 4 bytes, each block being identical. Byte Offset 0 file number 1 channel number 2 submode 3 coding info 4 file number 5 channel number 6 submode 7 coding info Byte 0, File Number ============= 0 standard data file 1-255 interleaved Byte 1, Channel Number ====================== 0-15 ADPCM 0-31 Data/Video ADPCM data can only be up to 16 channels, this would be reduced to 8 if the PlayStation didn't have double speed CD-ROM access Byte 2, Submode =============== Split into 8 bits: Bit# Field Description 7 EOF set at end of file 6 Real time sector 5 Form 4 Trigger for use with application 3 Data set if data sector 2 Audio set if audio sector 1 Video set if video sector 0 EOR end of record Byte 3, Coding Information ========================== Split into 8 bits: Bit# Field Description 7 Reserved 0 6 Emphasis emphasis 5,4 Bits per sample 00 = 4bit (level B/C) 01 = 8bit (level A) 3,2 Sample rate 00 = 37.8kHz (level A/B) 01 = 18.9kHz (level C) 1,0 mono/stereo 00 = mono |
Ответ: Создаём рабочий игровой диск PlayStation
В общем, я думаю, можно релизить первую ревизию скрипта. Вроде бы все проверил.
Чтобы образ распаковать, нужно положить его в каталог IN. Принимаются BIN, IMG, ISO, MDF. При распаковке автоматом генерируется XML-файл и лежать он будет в каталоге XML. Он уже пропарсен и XA и STR заменены на нужные. После пересборки, новый образ будет лежать в каталоге OUT. Скрипт может распаковать сразу несколько образов, главное чтобы они были одного региона, т.к. при распаковке задается файл лицензии. Если вы хотите распаковать несколько образов, а запаковать один, удалите лишние XML-файлы. Будут пожелания - вэлкам. "Не стреляйте в пианиста - он играет как умеет" (с) :Grin: |
Ответ: Создаём рабочий игровой диск PlayStation
Цитата:
Цитата:
|
Ответ: Создаём рабочий игровой диск PlayStation
SlavaVlasov, Ты точно дождался окончания работы распаковки?
Объясню. Де факто образ распаковывается 2 раза - один раз во временную папку ~XMLTempDir - это работает isodump и при этом он генерит XML-файл. Затем эта папка удаляется и образ распаковывается уже другим распаковщиком, который нормально вытаскивает XA/STR. Результатом работы станет папка с именем образа в IN и в скрипте окно с поздравлением об успешной распаковке. Тут ты волен менять файлы, озвучку, текстуры и т.д. А в папке OUT появляется уже образ, который мы собираем. Т.е. Распаковываем - Шаманим с файлами образа - Собираем - Имеем готовый образ. P.S. В пути до папки желательно не иметь русских букв и сам образ по русски не называть. P.P.S. Писал скрипт на работе, там Win 7 Pro. Дома не смотрел, сейчас протестирую еще на Win 10. |
Ответ: Создаём рабочий игровой диск PlayStation
Цитата:
Bambuch0, мастерская работа))) огромное тебе спасибо за твой труд! Абсолютно все работает, как часы!) Глаз радуется. Но есть пара Но. В общем по LBA он как не собирал, так и не собирает. Проверил на BLADE. Думаю все же для таких игр импорт через CDMage лучшее решение. И так же есть нюанс с регистром расширений образов, например верхний регистр .BIN .ISO .MDF он не видит, видит только нижний регистр .bin .iso и т.д |
Ответ: Создаём рабочий игровой диск PlayStation
Цитата:
|
Ответ: Создаём рабочий игровой диск PlayStation
Цитата:
Объясню...суешь образ в папку IN, нажимаешь 1, химичешь с игрой, нажимаешь 2, потом на твоё усмотрение ошибки фиксишь 1, 2 или 3 Все, образ разбирается и собирается меньше минуты.Сборник все в одном. Не нужно игры через что то другое распаковывать. |
Ответ: Создаём рабочий игровой диск PlayStation
Цитата:
Насчет регистра - посмотрю, исправлю этот момент. И что-то на Win 10 скрипт не хочет у меня CDMage запускать. Вернее скрипт то его запускает, это CDMage ругается на временную папку, в то же время на Win 7 все работает как часы. Ну что ж, значит будет версия 1.1 |
Ответ: Создаём рабочий игровой диск PlayStation
SlavaVlasov, Если ты распаковал образ не через скрипт, то у тебя нет XML-файла, а сборка идет именно по нему. Тогда скрипт у тебя должен был выдать окно с сообщением об отсутствии XML-файла...
Так, запуск CDMage уже победил... винда блин косячная... внесу в код еще пару правок. Точно будет 1.1 |
Ответ: Создаём рабочий игровой диск PlayStation
Цитата:
|
Ответ: Создаём рабочий игровой диск PlayStation
Bambuch0, думаю версию 1.1 можно смело в шапку вносить. Лучше этого не придумать)
|
Ответ: Создаём рабочий игровой диск PlayStation
Исправил регистр расширений, теперь они сами переводятся в нижний при распаковке. Плюс еще пару строк поправил.
Версия 1.1 |
Ответ: Создаём рабочий игровой диск PlayStation
Цитата:
Цитата:
Нажмите
Я понимаю, что это я туплю )). Просто пытаюсь понять, где :Derisive:
|
Ответ: Создаём рабочий игровой диск PlayStation
Цитата:
|
Ответ: Создаём рабочий игровой диск PlayStation
Цитата:
И имя XML-файла должно совпадать с именем папки с распакованным образом. Правда тут есть еще один нюанс, в самом XML файле прописан путь до ресурсов, там тебе его тоже менять придется. Проще все делать через скрипт, он все сделает за тебя. |
Часовой пояс GMT +3, время: 17:28. |
Перевод: zCarot
Права | Copyright ©
© PSX Planet Community 2003-2024