Ромы.CPT в Sonic Gems Collection подмениваются также! Но, наверное, и эмулятор тот же. Оффсеты для правки .ELF'а (у меня русифицированный, я незнаю GameID):
Чтоб потестить в OPL, достаточно собрать UltraISO'хой. А собранный Nero'й не принимает.
P.S.: Amy in S3&K не пашет и в этом эмуляторе... }:[ , и в том, что из Sega Ages.
ЦитатаDruchaPucha ()
Вот работает Соник, на заставке PH2 (в слепую) нажать вверх и O.
Работает... только опять всё так же виснет на макаке. Видимо, не судьба мне на 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
Сообщение отредактировал archicharmer - Чт, 11 Июл 2019, 18:36
у этого РОМ'а просто размер странный, поэтому видимо он глючит.
Тестеры этого рома говорят, что виснет только на уровнях, где есть вода.
ЦитатаDruchaPucha ()
Попробуй ещё GENESIS Collection.
Попробовал. Та же самая херня. Только ещё и без звука))
Косвенно расскажу как внедрить ром в этот сборник. Повторюсь, это бессмысленно, т.к. этот эмулятор (а точнее, на каждую игру свой эльф-файл с эмулятором и конфигом, считывающий соответствующие для этой игры файлы) особенен тем, что у него зашита зависимость воспроизведения конкретных звуков (которые присутствуют в формате .wav без header'ов отдельно в архиве .SR) от конкретных игровых событий, посему звука из рома не будет. Вот, допустим, SONIC.SR , открытый в HEX-редакторе. Первая строчка: 79 80 8192. - здесь 79 есть количество файлов в архиве, 80 я хз чё такое, а 8192 это вроде как размер блока архива. Он важен если править размер архива. Внутри архива между файлами полно нулей - они здесь наставлены соблюдая размер блока - вот по ним и надо ориентироваться. Ром находится здесь:
Код
36864 386757 100 0 0 SONIC.68k.QZ .
- здесь 36864 - это стартовый оффсет в десятичном формате . Только он не точен - к нему надо прибавлять то занятое вначале 20тками со списком файлов . Конкретно для SONIC.SR - оффсет где заканчивается список и начинается вся трехомундия, это оффсет 2000 (HEX-значение) 386757 - это длина файла в десятичном формате сто и нули я хз чё такое SONIC.68k.QZ , соответственно, название файла внутри архива.
36864(dec)=9000(hex) 9000(hex)+2000(hex)=B000 - стартовый оффсет в 16ричном формате для файла SONIC.68k.QZ в архиве SONIC.SR 386757(dec)=5E6C5(hex) - длина файла SONIC.68k.QZ в архиве SONIC.SR
Перейдём к стартовуму оффсету этого файла: Search->Go to...->B000 - среди значений видим здесь следующее:
Код
00 00 08 00 78 DA E4 BD 7F 7C 13 C7 99 3F FE EC
- здесь 00 00 08 00 - это HEX-inverted шестнадцатеричное значение распакованного рома. А ром запакован алгоритмом zlib . Эти четыре байта не являются частью файла.zlib .
Если хотите распаковать ром, что таится внутри файла SONIC.68k.QZ , Вам нужно выдернуть его из файла SONIC.SR и распаковать разархиватором zlib - а это либо, допустим, offzip (можно найти для винды), либо openssl (это либо в CygWin, либо в Unix). Вытаскиваем файл из SONIC.SR с помощью HEX-редактора, где со стартового оффсета пропускаем 4 байта и соответственно вычитаем 4 байта из длины: Edit->Select block Start offset: B0004 (это B000+4) Length: 5E6C1 (а это 5E6C5-4) Edit->Copy File->New Edit->Paste insert File-Save as->SONIC.68k.QZ
Файл SONIC.68k.QZ распаковывать offzip'ом поймёте сами как. А вот openssl'ом вот так: openssl zlib -d < /путь_до/SONIC.68k.QZ >> SONIC.BIN - после этой команды в папке откуда Вы её ввели появится файл SONIC.BIN , что есть Sega MD ROM.
Как пример, вставляю ром "Amy in S3&K" rev.1.4 . Ром нужно сжать алгоритмом zlib . Openssl'ом это делается так: openssl zlib -e < AMY.BIN >> AMY.QZ - здесь AMY.BIN - это имя файла этого рома, а AMY.QZ - имя сжатого файла, который появляется после ввода этой команды. HEX-длина AMY.QZ у меня получилась 1FD356 . Я открываю файл AMY.QZ в HEX-редакторе, где у меня открыт файл SONIC.SR , в AMY.QZ делаю Edit->Select all Edit->Copy в SONIC.SR Search->Go to...->B004 Edit->Paste write - после этого я оказался на оффсете 20835A(hex)=2130778(dec) . Это ЯВНО больше того, что занимал оригинальный SONIC.68k.QZ)) Нужно удалить .wav-файлы - всё равно от них толку нет, но не из-за этого, а из-за того, что ром "наехал" на них. И удалить надо "правильно" - оставляя нули и не нарушая целостность блоков. Итак, я закончил на оффсете, который в десятичном формате есть значение 2130778 . Поглядим в списке файлов какой там ближайший файл, у которого его десятичное значение стартового оффсета больше значения 2130778... а это вот какой:
Код
2148352 16448 1 22050 16 SHC4s.wav
Переходим в его стартовый оффсет с поправкой "пропуска трехомундии" и удаляем всё с него до конца текущего файла SONIC.SR : 2148352(dec)=20C800(hex) 20C800(hex)+2000(hex)=20E800 Search->Go to...->20E800 - курсор поставлен на оффсет 20E800. Спускаемся в самый низ, зажимаем клавишу SHIFT и щёлкаем непромахиваясь справа от последнего 00 . Затем жмём DELETE .
Далее, надо занулить всё от конца вставленного сжатого zlib рома до конца текущего файла SONIC.SR : Search->Go to...->20835A - курсор поставлен на оффсет 20835A. Спускаемся в самый низ, зажимаем клавишу SHIFT и щёлкаем непромахиваясь справа от последнего 00 . Затем делаем: Edit->Fill selection...->в HEX-values должно стоять 00, ОК
Теперь, поправим список файлов архива. Фактически, теперь в архиве всего три файла. Копируем конец списка перед файлом SHC4s.wav: Edit->Select block Start offset: 18A0 End offset: 18BF Edit->Copy Search->Go to...->C20 Edit->Paste write "Задвацатываем" пустующее место в списке файлов: Edit->Select block Start offset: C40 End offset: 18BF Edit->Fill selection...->в HEX-values должно стоять 20, ОК Правим, что файлов в архиве стало три. Перейдите в самое начало текущего файла SONIC.SR . Здесь ведь значение 79, оно двузначное, а надо всего лишь поставить 3 . Нажмите один раз DELETE и оставшееся значение исправьте на 3. Один байт удалили, один байт в список нужно вернуть! Щёлкните куда-нибудь на оффсет ниже оффсета 100 и сделайте: Edit->Insert bytes... Bytecount: 1 HEX-values: 20
Нужно поправить десятичное значение внедрённого рома с поправкой на 4байта о длине этого рома: 1FD356(hex)+4=1FD35A(hex)=2085722(dec) Переходим к
Код
36864 386757 100 0 0 SONIC.68k.QZ .
- заменить 386757 на 2085722 . Заметьте - 386757 значение шестизначное, а 2085722 семизначное. Нужно поставить курсор мыши в место через ячейку левее от цифры 3 . Получится, что последние две цифры "57" изменятся на "22".
Осталось лишь поправить значение распакованного рома. Переходим в стартовый оффсет файла SONIC.68k.QZ : Search->Go to...->B000 здесь у нас остались 00 00 80 00 . Длина AMY.QZ у меня 1FD356 . HEX-inverted значение равно 56 D3 1F . Вот и получается, что у меня с оффсета B000 : 56 D3 1F 00 78 DA E4 ....
Уффф... ВСЁ!!! Собираем игру UltraISO'хой - OPL примет собранный UltraISO образ. Тестируем, запуская в игре игру Sonic the Hedgehog. И видим, что Amy in S3&K rev.1.4 запустилась и идёт без звука, и дальше макаки всё так и не проходит... Это по счёту четвёртый разворошённый генс коллектор) Ещё подопытные?)) Напомню, что единственный эмуль, который запустил на PS2 этот хак - это никому кроме меня неизвестный скомпиленный на PS2LINUX2.6 PicoDrive-SDL . Играть на нём невозможно. 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 - Пт, 12 Июл 2019, 23:31
НАШЁЛ!!! Ну, как нашёл... На консоле PS2 ничё я не нашёл что бы запустило этот хак. А нашёл на консоле PS3. На PS3 в RetroArche. Там есть опция 68k address error - делаешь её Disabled и хак работает как положено! На PS2 RetroArch как вовсе и не RetroArch, а как PicoDrive какой-то. Дождусь ли я там этой опции...незнааай. Может где как в этих вон 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
Сообщение отредактировал archicharmer - Пт, 12 Июл 2019, 23:32
Да на PS2 RetroArch вообще недоработанный. Попробуй посмотреть настройки PS3 RetroArch, что за опция отключается, потом попробуй исправить это в конфиге PS2 версии. Перенос русской озвучки/текста из РС игр (PS1/PS2)
Sega из сборок Nightly чёт не запускает ни единого рома. Работает только стабильная 1.7.7. Amy in S3&K rev1.4 даже не запускается. Попробовал сохранить конфиг-файл от другой запущенной игры (который по факту пустой), переименовать его в имя файла от моей многострадальной игры и внести туда genesis_plus_gx_addr_error = "disabled" - один хрен незапускается. Равно как и в PicoDrive от SP193. Как-будто с его исходников спёрли)) Ну, конечно, навряд ли оно это так. Тем не менее, на PS3'шном RetroArch'е Amy in S3&K rev1.4 запускается, и без всяких конфиг-файлов для рома. В общем, кто следит за новыми выпусками RetroArch на PS2, будьте добры нет-нет да позапускивывайте Amy in S3&K rev1.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 - Вс, 14 Июл 2019, 14:35