PSX Planet: SONY PlayStation Community

PSX Planet: SONY PlayStation Community (https://psxplanet.ru/forum/index.php)
-   (PSX) RUS-de-RUS Section (https://psxplanet.ru/forum/forumdisplay.php?f=253)
-   -   Создаём рабочий игровой диск PlayStation (https://psxplanet.ru/forum/showthread.php?t=6823)

Bambuch0 25.10.2019 03:04

Ответ: Создаём рабочий игровой диск PlayStation
 
SlavaVlasov, Утилита заточена на конкретно эту игру или можно будет любую игру патчить у которой есть привязка к LBA в эльфе?

А теперь хотелки:
Можно ли твою утилиту научить обрабатывать текстовик не Isobaster(а), а mkpsxiso? Ну или добавить возможность дополнительно его обрабатывать, например с ключами?

Тогда можно было бы полностью автоматизировать процесс разборки-сборки образа через скрипты: распаковываем игру, меняем файлы, mkpsxiso генерирует LBA-файл, твоя утилита в консольном режиме патчит эльф и собираем образ.
Не нужно будет экспортировать-импортировать ничего.

Ну и конечно твоя утилита должна работать в консольном режиме в этом случае.
Вот правда, очень такой режим хочу. Даже скажу - ну пожааалуйстаааа. =)


mkpsxiso может выводить лог с LBA двумя способами:
Раз
File LBA log generated by MKPSXISO v1.23

Image bin file: 11111.bin

File System:

Type Name Length LBA Timecode Bytes Source File

File SYSTEM.CNF;1 1 23 00:02:23 71 d:/PS2/!BUILDS/[PSX] Peter Pan/CUSTOM/mkpsxiso-1.23/TEMP/PeterPanRGR/SYSTEM.CNF
Dir TINKER 1 24 00:02:24 2048
Dir LEVEL51 1 25 00:02:25 2048
File LEVEL51.TIM;1 129 26 00:02:26 262164 d:/PS2/!BUILDS/[PSX] Peter Pan/CUSTOM/mkpsxiso-1.23/TEMP/PeterPanRGR/TINKER/LEVEL51/LEVEL51.TIM
File LEVEL51.DFX;1 1 155 00:04:05 404 d:/PS2/!BUILDS/[PSX] Peter Pan/CUSTOM/mkpsxiso-1.23/TEMP/PeterPanRGR/TINKER/LEVEL51/LEVEL51.DFX
File LEVEL51.INI;1 2 156 00:04:06 2193 d:/PS2/!BUILDS/[PSX] Peter Pan/CUSTOM/mkpsxiso-1.23/TEMP/PeterPanRGR/TINKER/LEVEL51/LEVEL51.INI
File LEVEL51.CAM;1 1 158 00:04:08 468 d:/PS2/!BUILDS/[PSX] Peter Pan/CUSTOM/mkpsxiso-1.23/TEMP/PeterPanRGR/TINKER/LEVEL51/LEVEL51.CAM
File LEVEL51.LGC;1 4 159 00:04:09 7436 d:/PS2/!BUILDS/[PSX] Peter Pan/CUSTOM/mkpsxiso-1.23/TEMP/PeterPanRGR/TINKER/LEVEL51/LEVEL51.LGC
File LEVEL51.TXT;1 1 163 00:04:13 2048 d:/PS2/!BUILDS/[PSX] Peter Pan/CUSTOM/mkpsxiso-1.23/TEMP/PeterPanRGR/TINKER/LEVEL51/LEVEL51.TXT
File LEVEL51.XM;1 9 164 00:04:14 16611 d:/PS2/!BUILDS/[PSX] Peter Pan/CUSTOM/mkpsxiso-1.23/TEMP/PeterPanRGR/TINKER/LEVEL51/LEVEL51.XM
File LEVEL51.VH;1 2 173 00:04:23 3104 d:/PS2/!BUILDS/[PSX] Peter Pan/CUSTOM/mkpsxiso-1.23/TEMP/PeterPanRGR/TINKER/LEVEL51/LEVEL51.VH
File LEVEL51.VB;1 76 175 00:04:25 154576 d:/PS2/!BUILDS/[PSX] Peter Pan/CUSTOM/mkpsxiso-1.23/TEMP/PeterPanRGR/TINKER/LEVEL51/LEVEL51.VB
File LEVEL51.DSC;1 1 251 00:05:26 79 d:/PS2/!BUILDS/[PSX] Peter Pan/CUSTOM/mkpsxiso-1.23/TEMP/PeterPanRGR/TINKER/LEVEL51/LEVEL51.DSC
File LEVEL51.LVL;1 515 252 00:05:27 1054720 d:/PS2/!BUILDS/[PSX] Peter Pan/CUSTOM/mkpsxiso-1.23/TEMP/PeterPanRGR/TINKER/LEVEL51/LEVEL51.LVL
End LEVEL51
Dir LEVEL52 1 767 00:12:17 2048
File LEVEL52.TIM;1 129 768 00:12:18 262164 d:/PS2/!BUILDS/[PSX] Peter Pan/CUSTOM/mkpsxiso-1.23/TEMP/PeterPanRGR/TINKER/LEVEL52/LEVEL52.TIM
File LEVEL52.DFX;1 1 897 00:13:72 404 d:/PS2/!BUILDS/[PSX] Peter Pan/CUSTOM/mkpsxiso-1.23/TEMP/PeterPanRGR/TINKER/LEVEL52/LEVEL52.DFX
File LEVEL52.INI;1 2 898 00:13:73 2193 d:/PS2/!BUILDS/[PSX] Peter Pan/CUSTOM/mkpsxiso-1.23/TEMP/PeterPanRGR/TINKER/LEVEL52/LEVEL52.INI

Два
#ifndef _ISO_FILES
#define _ISO_FILES

/* <root> */
#define LBA_SYSTEM_CNF 23
#define LBA_SCUS_946_43 231685
#define LBA_DUMMY_DAT 232149

/* TINKER */

/* LEVEL51 */
#define LBA_LEVEL51_TIM 26
#define LBA_LEVEL51_DFX 155
#define LBA_LEVEL51_INI 156
#define LBA_LEVEL51_CAM 158
#define LBA_LEVEL51_LGC 159
#define LBA_LEVEL51_TXT 163
#define LBA_LEVEL51_XM 164
#define LBA_LEVEL51_VH 173
#define LBA_LEVEL51_VB 175
#define LBA_LEVEL51_DSC 251
#define LBA_LEVEL51_LVL 252

SlavaVlasov 25.10.2019 13:39

Ответ: Создаём рабочий игровой диск PlayStation
 
Цитата:

Сообщение от Bambuch0 (Сообщение 254611)
Утилита заточена на конкретно эту игру

Да, только под Bugs Bunny Lost in Time. Поскольку завязана на именах файлов именно этой игры и обращается только к тем адресам и указателям, которые именно в этом EXE.

Цитата:

Сообщение от Bambuch0 (Сообщение 254611)
Можно ли твою утилиту научить обрабатывать текстовик не Isobaster(а), а mkpsxiso?

В теории можно. Единственный момент - обрабатывать она будет именно эту игру. Дело в том, что в EXE порядок указателей на файлы отличается от LBA. Т.е. пришлось их сначала определять по названиям, присваивать условный номер и уже по нему их сортировать для выстраивания порядка новых указателей по запаковку. Потом, новый указатель в EXE идет через каждые 5 "столбиков" (5 байт вроде), но в одном месте идет "обрыв" такого порядка, и он идет через 10, потом снова через 5. Таким образом, утилита жестко заточена под эту игру. Можно, конечно, ее сделать скриптовой (пародия на QuickBMS), но это отдельная тема.

Цитата:

Сообщение от Bambuch0 (Сообщение 254611)
Ну и конечно твоя утилита должна работать в консольном режиме в этом случае.

Консольные программы как-то не доводилось писать (надобности не было), но могу поизучать эту тему. Хотя чувствую, что с ключами было бы проще. В этом смысле мне нравится MFAudio, которая работает как GUI, так и в консольном режиме.

SlavaVlasov 25.10.2019 13:42

Ответ: Создаём рабочий игровой диск PlayStation
 
Цитата:

Сообщение от Bambuch0 (Сообщение 254611)
mkpsxiso может выводить лог с LBA двумя способами:

А, ну это даже проще, чем XML будет.

YAGAMI55 25.10.2019 14:08

Ответ: Создаём рабочий игровой диск PlayStation
 
Цитата:

Сообщение от Bambuch0 (Сообщение 254611)
А теперь хотелки:

Тогда можно было бы полностью автоматизировать процесс разборки-сборки образа через скрипты: распаковываем игру, меняем файлы, mkpsxiso генерирует LBA-файл, твоя утилита в консольном режиме патчит эльф и собираем образ.
Не нужно будет экспортировать-импортировать ничего.

У меня тоже есть такая хотелка) но знаний в скриптах не хватает, давно бы автоматизировал процесс. Нужны знающие люди. Конечно можно изучить обычные команды CMD и сделать самому, но я что то не дойду никак до этого.

SlavaVlasov 25.10.2019 19:03

Ответ: Создаём рабочий игровой диск PlayStation
 
Цитата:

Сообщение от Bambuch0 (Сообщение 254611)
Ну или добавить возможность дополнительно его обрабатывать, например с ключами?

Может задам странный вопрос, но... какие ключи нужны? Мне пока пришло в голову: -имя_txt_lba и -exe-шник

Bambuch0 26.10.2019 04:17

Ответ: Создаём рабочий игровой диск PlayStation
 
YAGAMI55, Ты же выкладывал выше свой пакет программ... Там менюшка даже есть красивая, я смотрел. Я ее позаимствовал ))))
Я в данный момент пишу скрипт, насколько знаний хватает. Он чем-то похож на твой, только побольше. Как допишу - поделюсь.

Проблема в том, что не все программы - консольные, но на этот случай, когда управление будет передаваться программе с GUI, в скрипте будет показываться мануал, что делать. Например при вызове CDmage, что конкретно нажимать и т.д.

SlavaVlasov, Как вариант: программа эльф [-ib <file>] [-mi <file>] -o новый эльф

[-ib <file>] - заставляет программу парсить лог исобастера
[-mi <file>] - заставляет программу парсить лог mkpsxiso
-ib -mi ключи естественно работают не вместе.

YAGAMI55 26.10.2019 12:22

Ответ: Создаём рабочий игровой диск PlayStation
 
Цитата:

Сообщение от Bambuch0 (Сообщение 254638)
YAGAMI55, Ты же выкладывал выше свой пакет программ... Там менюшка даже есть красивая, я смотрел. Я ее позаимствовал ))))
Я в данный момент пишу скрипт, насколько знаний хватает. Он чем-то похож на твой, только побольше. Как допишу - поделюсь.

Проблема в том, что не все программы - консольные, но на этот случай, когда управление будет передаваться программе с GUI, в скрипте будет показываться мануал, что делать. Например при вызове CDmage, что конкретно нажимать и т.д.

Ооооо, здорово! По поводу менюшки пожалуйста, я только рад что дело продвигается. Я хотел понять чем PSXRebuilder образы распаковывает. Думал если консольно (командной строкой) то тоже внедрить в скрипт. Но кажись он распаковывает своим скриптом, а не makecd.exe. декомпилировал его и не нашёл скрипт, может плохо искал я.

Bambuch0 26.10.2019 19:47

Ответ: Создаём рабочий игровой диск PlayStation
 
YAGAMI55, Ну я с ним пока проще поступил, скрипт передает ему управление на распаковку образа и там нужно только нажать на кнопку "Извлечь", образ выбирать не надо, он уже выбран. Ну и закрыть программу, скрипт дальше начнет работать.
Хочу еще распаковщики разные посмотреть, чисто консольные. PSXRebuilder я поставил, потому что он единственный, кто правильно распаковал XA и STR в игре Питер Пэн. После других распаковщиков в ХА появлялся заголовок RIFF и mkpsxiso отказывался собирать образ.

YAGAMI55 27.10.2019 19:55

Ответ: Создаём рабочий игровой диск PlayStation
 
Bambuch0, а можно ли спросить у создателя PSXRebuilder, какой алгоритм распаковки он использовал? Ведь его(PSXRebuilder)тоже выкладывали здесь на форуме. Я ещё на git находил консольный распаковщик, но там только сам исходник, нужно компилить. Может глянешь и его?

ViToTiV 27.10.2019 20:06

Ответ: Создаём рабочий игровой диск PlayStation
 
Цитата:

Сообщение от YAGAMI55 (Сообщение 254680)
PSXRebuilder

это вы про мою прогу?


Часовой пояс GMT +3, время: 17:28.

Перевод: zCarot
Права | Copyright ©
© PSX Planet Community 2003-2024