Наверняка многие из Вас, кто играл в этот сборник игр про Соника под названием Sonic Mega Collection Plus задавался вопросом: "А можно ли как-нибудь подменять файлы так, чтобы запускать 'свои' ROM'ы от Mega Drive?" . Прочитав этот пост Вы ответите себе, что можно!
Все игры, что можно играть в Sonic Mega Collection Plus, это ромы, которые запускаются эмулятором этой игры, и эмулируются они довольно чётко. Как со слов AkuHAK'а, этот эмулятор будет получше его собрата PGen'а и в нём есть много всего полезного.
Просто так подменить ROM'ы неполучится, т.к. они энкриптованы. Но после шести лет поисков, наконец-то нашёлся способ этого добиться.
ROM'ы в этой игре поставлены в формате CPT, энкриптованы и, до кучи, сжаты. Вот что он из себя представляет в HEX-содержимом начиная с нулевого оффсета: Первые 16 байт - ROM Checksum (особый алгоритм вычисления этой суммы считающегося содержимого в 64 байта, которое начинается с оффсета 64) Следующие 48 bytes - Hash Key С оффсета 64 и до конца - сжатый энкриптованный ROM . После декрипта ROM'а, получается декриптованный, но сжатый сжатимем SEGA PRS.
Чтобы "загружать" "наши собственные ROM'ы", нужно сделать HEX-правки ELF-файла игры.
С виду для SLUS-209.17 в тех же оффсетах те же значения.
После этого, нужно будет пересобрать образ с патченным ELF'ом. Но также нужно будет подготовить и новые ROM'ы. С патченным ELF'ом, все оригинальные ROM'ы этой игры больше не будут работать! Попробуете их запустить и игра застынет. ROM'ы нужно сжать алгоритмом PRS. Скачайте отсюда консольную утилиту PRS Utils. Прогоните через prscmp (тобишь используя его в командной строке Windows) ROM Mega Drive в формате BIN - на выходе получите сжатый, с расширением CPT, что и укажите в процессе использования этой консольной проги. Переименуйте полученный файл в один из тех файлов, что лежат среди игровых, например, SONIC1B.CPT и кидайте в папку MDOM с заменой тамошнего. Игра содержит три папки MDROM, но загружает ROM из какой-то одной в зависимости от модели/региона Вашей PS2. Так что, либо ищите из какой папки именно, либо замените во всех трёх. И так же с другими ROM'ами и играми, если есть необходимость. Как наподготовите игр, собирайте образ с подмененными играми и правленным ELF-файлом. Для теста в PCSX2 можно воспользоваться прогой UltraISO. Для использования с OPL'ом, используйте Nero Burning Rom, в котором выбирайте DVD, DVD-ROM (ISO) (безо всяких UDF), во вкладке ISO - файловая система - только ISO 9660, длина имени файла - Макс из 31симв. (Level 2), набор символов - ASCII, во вкладке Метка - назвать диск, написав имя диска (а вот Publisher/PLAYSTATION/SEGA написать здесь негде... да и ненадо). Если же собрались писать на диск, то всё как положено - CD DVD Generator, расстановка LBA для IML-карты, Apache, прожиг на 4x.
P.S.: Этап PRS сжатия ROM'ов избежать неполучится. Правки кодов ищутся и делаются в уже имеющемся ELF-файле, а чтобы избежать сжатия PRS, нужно добавлять много кода, для которого нет места. А строчки касающиеся сжатия для этого дела трогать нельзя, т.к. разжатие используется и для фоновых изображений, сохранёнок и т.п.
CPT энкрипт полученного PRS-архива для случая чтобы НЕ делать HEX-правки ELF-файла, а лишь, в действительности, подменять файлы.CPT, очень сложен. Как бы то ни было, мы своего добились, воплощение способа не особо сложное, оно работает и оно ничего не портит! Ну, кроме того, что после HEX-правок ELF-файла перестают работать все игры в этой игре...
Вот это инстркция, не знаю сам как разобраться))) А по поводу PRS сжатия (сильно не вникал...) , это в самих ромах, просто можно попробовать другой способ...
Для эмуляции ромов все файлы игры не нужны. Можно урезать всё так, что только и останется что лишь запускать игры да сохранять/загружать состояния. Что можно убрать: папка COMIC ; папка GGROM (кроме ромов, которые планируете запускать) ; файлы COMIC_F.XML , COMIC_G.XML , COMIC_I.XML и COMIC_S.XML из папки COMMON ; папка E3 ; папка ILLUST ; все папки MANUAL* ; все папки MDROM* (кроме папки с ромами, которые планируете запускать) ; папка MODE_GS ; папка MOVIE ; все папки PAE*, КРОМЕ необходимой! Нужна какая-то одна. А из этой нужно папки не нужны сл. файлы: E3_MOVIE.PAE , EXTRA.PAE , MANUAL.PAE и MODE_OPT.PAE ; по сути, все файлы из папки SOUND . Но оставьте SE.ACX ; из папки TEXTнужен только какой-то один файл .
Урежется настолько, что это уже будет не DVD, а CD. Так что ELF-файл нужно конвертировать DVDScan'ом в формат CD. Ну и как итог прикрепляю подготовленные файлы для подмены ромов. Как правильно подготовить и подменить Sega MD ROM'ы, читайте в первом посте. В "игре" никуда, кроме пункта "GAMES" не заходите, всё ж подтёрто) Прикреплённое работает как в PCSX2, так и на моей SCPH-77008a PAL собранное Nero'й (в DVD как описано в первом посте, несмотря на то, что ELF я патчнул в CD DVDScan'ом) и запущенное через OPL с USB (опять же, с папки DVD а не CD, сменив имя файла на SLES_529.98.GameTitle.iso ). ROM'ы я ложил в папку MDROM_EU, но возможно из-за региона Вашей приставки, на Вашей может не заработать. Если после сборки образа оно не работает на Вашей консоли, попробуйте пересобрать, сделав следующее: скопируйте содержимое папки PAE_E_EU во все остальные папки PAE* ; ложите подготовленные ROM'ы во все папки MDROM* . Чтобы не мучиться с разблокированием игр - поставьте себе сохранёнку, где оно открыто. Скачайте файл сохранёнки 52998.psu , закиньте его на USB флешку, вставьте флешку в PS2 USB порт, запустите на PS2 uLaunchELF, в оном перейдите в mass и найдите этот файл, сделайте на нём copy, перейдите в mc0 и, убедившись, что в нём нет папки BESLES-5299800 , сделайте psuPaste. Хотя, если Вы собираетесь не записывать подготовленный образ на болванку, а использовать через OPL, то, возможно, сохранёнка нужна будет не на мэмке, а на виртуальной мэмке OPL. Как записать сохранёнку на виртуальную мэмку OPL - ищите сами.
DruchaPucha, чем точно незнаю. Но вот моё мнение - в нём звуки качественные - точные и без задержек. Графа, как мне кажется, у пики SP193 лучше, но это может мне просто кажется. Про Sega Ages я даже и не знал) А там чего? Там тоже можно подменять? Или также надо искать как это сделать?) Опять AKuHAK всё выяснил - в Sega Ages Series Vol. 32 - Phantasy Star Complete Collection можно заменить ром от Phantasy Star IV (а где я прочитал он ошибся, говоря, что ром от 3ей части) - он, а точнее, ОНИ, от четвёртой части (их два, запускается один в зависимости от региона...эмулятора?...приставки?..), здесь находятся в неэнкриптованом состоянии как ром есть. Оба они HEX-длиной каждый ровно 300000 . Нетрудно догадаться в каком файле они находятся - в BIN.PAK . Никто не знает(?) как его распаковать, т.к. непонятна его структура. Я же глядел-глядел на него... глядел... да кой-чего догадался)) Если смотреть архив BIN.PAK в HEX'е, то можно увидеть список файлов. Для каждого файла здесь выделена HEX-длина в 40 , начала у которых с первого символа имени файла. В четвёртой десятке в оффсетах 8-B находится значение, отвечающее за стартовый оффсет с которого считывается файл из архива. Так вот, чтобы заменить ром от Phantasy Star 4 и при этом не ограничиваться его HEX-длиной в 300000 (но ограничение всё же будет, да такое, что в принципе этот способ бессмысленнен), нужно сделать следующее: MD5-сумма BIN.PAK в Sega Ages Series Vol. 32 - Phantasy Star Complete Collection равна 36695A6DEE113CF480C24A2BB2485213 ; открыть BIN.PAK в HEX-редакторе (описываемые шаги в HEX-редакторе HxD); Edit->Select Block Start-offset: 2F90 End-offset: 5F0F
- архив готов к принятию рома, сохраняем его куда-нибудь. Теперь, в HEX-редакторе открываем "наш" подстовывательный ром, выбираем Edit->Select all Edit->Copy а также запоминаем его HEX-длину (указана внизу в Length: ......)
переходим к архиву BIN.PAK, делаем Search->Go to...-> 38A000 Edit->Paste write - внедрили ром. Теперь надо указать его длину, а для этого делаем
Search->Go to...-> 2F45 - и пишем сюда то значение HEX-длины Search->Go to...-> 2F4D - сюда тоже это же значение
Всё. Сохраняем правленный BIN.PAK и собираем обратно образ PS2 как положено.
Всё же, в эмуляторе разработчиками ВШИТ (ха-ха-ха) размер памяти, выделяемый для рома. В итоге, если HEX-длина подсовываемого рома больше 3210AE8 то эмулятор выдаст ошибку, что файл больше выделенной для него памяти. В "игре" это будет выглядить так: запускаете эту PS2 игру, выбираете Phantasy Star 4, запускаете и наблюдаете чёрный экран. PS4 CUH-1108A OFW 5.05 + VR CUH-ZVR2 PS3 SuperSlim CECH-4208a OFW v.4.50 Cobra ODE PS2 SCPH-77008a SLIM чиповка; припаян YPbPr - компонент PS2 SCPH-55004 FAT чиповка + orig SCPH-10281 Network Adapter SATA mod
Сообщение отредактировал archicharmer - Ср, 10 Июл 2019, 20:45
Я просто не помню, создавалась ли тема по этому эмулятору, он появился раньше PicoDrive и тянул вроде всё. Вот UMK3 , запустить можно через OPL (папка CD). Там был специальный генератор, можно было до 9(?) ромов добавить + обложки. Перенос русской озвучки/текста из РС игр (PS1/PS2)
Сообщение отредактировал DruchaPucha - Ср, 10 Июл 2019, 20:46
Нувот, а я тут хренью занимаюсь) DruchaPucha, прошу, давай вспоминай где этот генератор) Последняя надежда. Больше нигде не пашет Amy in S3&K v1.4 на PS2... PS4 CUH-1108A OFW 5.05 + VR CUH-ZVR2 PS3 SuperSlim CECH-4208a OFW v.4.50 Cobra ODE PS2 SCPH-77008a SLIM чиповка; припаян YPbPr - компонент PS2 SCPH-55004 FAT чиповка + orig SCPH-10281 Network Adapter SATA mod
DruchaPucha, а связаться с автором генератора можно тебя попросить? Чтобы он выложил этот генератор куда-нибудь? Потому что без него я хз что делать с файлом MAPDATA.DAT / SEGAROM.DAT в vol. 17 ... PS4 CUH-1108A OFW 5.05 + VR CUH-ZVR2 PS3 SuperSlim CECH-4208a OFW v.4.50 Cobra ODE PS2 SCPH-77008a SLIM чиповка; припаян YPbPr - компонент PS2 SCPH-55004 FAT чиповка + orig SCPH-10281 Network Adapter SATA mod