| Разработка и ромхакинг > Ромхакинг |
| Вопросы новичков |
| << < (15/22) > >> |
| Turbo2000:
--- Цитата: SeregaZ от 27 Август 2024, 01:03:45 ---походу там только две игры: Streets of Rage 3 (Bare Knuckle III) Ancient Music Driver MD v1.00 (Hideki Koyama) Beyond Oasis (The Story of Thor) Ancient Music Driver MD v1.06 (Hideki Koyama) --- Конец цитаты --- Да, так и есть, в общем, скорее всего и не будет реализации драйвера, если только все это сэмулировать |
| onimush:
Тут человек утверждает что contra force тормозит из-за того что пилилась под mmc3 во вторую очередь а в оригинале должна была работать с маппером vrc6. Скажите, насколько его аргументы легитимны, и насколько трудно переписать игру под vrc6 или mmc5 получив спустя 30 лет наконец-то dev intended геймплей? :) |
| Sharpnull:
--- Цитата: onimush от 30 Август 2024, 07:56:04 ---насколько трудно переписать игру под vrc6 или mmc5 --- Конец цитаты --- На MMC5 не сложно, разницы не заметил: https://www.emu-land.net/forum/index.php/topic,66302.msg1604008.html#msg1604008. |
| bgr:
Turbo2000, Хрен знает о чем вы и что вам нужно, но блад сортировал драйвер для Соника, можете ему написать. Да и честно, хз как вы ищете, мне это видео сразу выпало. https://www.google.ru/url?sa=t&source=web&rct=j&opi=89978449&url=https://www.youtube.com/watch%3Fv%3DeV3c_W5lKfQ&ved=2ahUKEwiypLat15yIAxX-GBAIHb4uB_wQwqsBegQIEhAG&usg=AOvVaw3Vk9sxF53SieX5JB4SL1VV |
| Turbo2000:
--- Цитата: bgr от 30 Август 2024, 15:12:15 ---Turbo2000, Хрен знает о чем вы и что вам нужно, но блад сортировал драйвер для Соника, можете ему написать. Да и честно, хз как вы ищете, мне это видео сразу выпало. https://www.google.ru/url?sa=t&source=web&rct=j&opi=89978449&url=https://www.youtube.com/watch%3Fv%3DeV3c_W5lKfQ&ved=2ahUKEwiypLat15yIAxX-GBAIHb4uB_wQwqsBegQIEhAG&usg=AOvVaw3Vk9sxF53SieX5JB4SL1VV --- Конец цитаты --- О, круто, видел этот хак. (Не сразу оценил, что это так классно) Но я ищу порт, точнее эмуляцию драйвера на пк, что-то похожее, что писали ребята для GEMS. |
| SeregaZ:
ну... я пошел из далекого далека в подобном пути :) благо что все данные были давно разобраны до меня r57shell'ом и мне оставалось только вникнуть. во первых нужны эмуляторы обоих чипов - ямахи и psg'шного. с ямахой товарищ Valleybell делал какую-то программу для тестов инструментов и для неё была уже готовая dll'ка. ей просто шлешь регистры и она звучит. с PSG было сложнее. благо отозвался товарищ Shiru и дал порулить сурсами, кажется на java чтоль... или это была флеш... блиииин. надо же забыл! помница это была эмуляция кода для проигрывания в браузере. дальше, поскольку сам я сирота, подключился один буржуйский товарищ wilbert и помог портировать из того языка в мой, но добавив еще ассемблерный код... я итак то не понимал что там творится в коде, а уж с этими вставками асма - вообще темнота :) он там докрутил возможность увеличить количество ядер. и что-то там еще поверх оригинального кода Shiru... возможно переключение стерео. забыл блин. причем с wilbert'ом тоже познакомились комично... пока у меня ядра для PSG не было - я нашел пример кода на своем языке с генератором тонов. а кто сказал что он может генерировать только одну частоту? вот сделал парсинг VGM'ки, чтение нот в нем когда стартует какая нота когда заканчивается... а чтобы получить хотябы два канала - а генератор был для стерео, то получается один канал играл в левом ухе, а второй в правом :) так вот по итогу у меня было два ядра обоих чипов. примерное понимание как играет драйвер у меня было и худо бедно крит через раз родил хоть какое-то проигрывание мелодий и спецэффектов. радости было полные штаны. а потом уже был Valleybell'овский GEMSPlayer и Sharpnull его портировал из одного языка в другой и из консольной программы перевел в дллку, которой можно просто слать образы в памяти банков GEMS и запускать проигрывание. тут уже играет на 99% точно и без вылетов, не то что у меня было весьма далекое по качеству звучания и тем более вылетов :) по итогу общими трудами у нас эпическая онлайновая база GEMS треков и спецэффектов из большинства GEMS игр :) |
| bgr:
У меня долгое время пылился хард от компа, тк материнка сгорела. Всё, что я пытаюсь не пашет с различными ошибками, даже предъявляет за отсутствующие плагины, я их скачиваю, помещаю в папку с экзешником и всё равно не пашет. Кто-нибудь, подскажите софт под 7 винду для хакинга сеги. Уже установлен хекс, тайл-редактор, эмульгатор от р-шела, да и всё. Какая версия иды подойдёт? Сейчас нет нормального софта, чтобы расширить rom? Знаю, что можно самому с помощью хекса и блокнота, но хочется автономности, по кнопке. Ну или Хекс с такой функцией, чтобы по факту дописывать ром? На ромхакинге актуальная версия шеловского эмуля? А то я там вроде качал и чет мнение, что не всё функции работают в полной мере🤔 |
| Беларус:
--- Цитата: bgr от 31 Август 2024, 01:31:52 ---Какая версия иды подойдёт? --- Конец цитаты --- Это уже сюда: Smd IDA Tools - Sega Mega Drive reversing helpers Если нужны простые инструменты для простых хаков, то предложу свой ROM glitcher. Попробуй конкретизировать что ты хочешь ломать-менять в играх Сеги. |
| SeregaZ:
поэтому то я и толкую что эта ваша Ида это моветон :) в наш век, когда космические корабли типа Буран пылятся в пыли разваленных ангаров Байконура, все давным давно должно быть само в себе, без этих танцев с бубном со всякими плагинами и прочей танцевальной лабутнёй. причем портабельно. чтоб без всяких установок. на любой винде. тырк и все сразу работает. вот что надо. а не это вот всё. причем чтоб сразу и разобрал и собрал и чтоб все без запинок. |
| Turbo2000:
--- Цитата: bgr от 31 Август 2024, 01:31:52 ---Какая версия иды подойдёт? --- Конец цитаты --- Последняя версия планига работает с 8.3 (Если точно Version 8.3.230608 Windows x64 (32-bit address size)) Добавлено позже: Там есть реализация условных брейкпоинтов и трейсов, неочень удобно, и есть баги, но может помочь Добавлено позже: --- Цитата: SeregaZ от 30 Август 2024, 21:53:43 ---ну... я пошел из далекого далека в подобном пути :) благо что все данные были давно разобраны до меня r57shell'ом и мне оставалось только вникнуть. во первых нужны эмуляторы обоих чипов - ямахи и psg'шного. с ямахой товарищ Valleybell делал какую-то программу для тестов инструментов и для неё была уже готовая dll'ка. ей просто шлешь регистры и она звучит. с PSG было сложнее. благо отозвался товарищ Shiru и дал порулить сурсами, кажется на java чтоль... или это была флеш... блиииин. надо же забыл! помница это была эмуляция кода для проигрывания в браузере. дальше, поскольку сам я сирота, подключился один буржуйский товарищ wilbert и помог портировать из того языка в мой, но добавив еще ассемблерный код... я итак то не понимал что там творится в коде, а уж с этими вставками асма - вообще темнота :) он там докрутил возможность увеличить количество ядер. и что-то там еще поверх оригинального кода Shiru... возможно переключение стерео. забыл блин. причем с wilbert'ом тоже познакомились комично... пока у меня ядра для PSG не было - я нашел пример кода на своем языке с генератором тонов. а кто сказал что он может генерировать только одну частоту? вот сделал парсинг VGM'ки, чтение нот в нем когда стартует какая нота когда заканчивается... а чтобы получить хотябы два канала - а генератор был для стерео, то получается один канал играл в левом ухе, а второй в правом :) так вот по итогу у меня было два ядра обоих чипов. примерное понимание как играет драйвер у меня было и худо бедно крит через раз родил хоть какое-то проигрывание мелодий и спецэффектов. радости было полные штаны. а потом уже был Valleybell'овский GEMSPlayer и Sharpnull его портировал из одного языка в другой и из консольной программы перевел в дллку, которой можно просто слать образы в памяти банков GEMS и запускать проигрывание. тут уже играет на 99% точно и без вылетов, не то что у меня было весьма далекое по качеству звучания и тем более вылетов :) по итогу общими трудами у нас эпическая онлайновая база GEMS треков и спецэффектов из большинства GEMS игр :) --- Конец цитаты --- Да, за это вам всем благодарен, у меня есть переписанная версия с поддержкой нескольких чипов одновременно, единственное, что можно играть несколько сиквенций только из одного банка (в смысле, текущего) Добавлено позже: --- Цитата: bgr от 31 Август 2024, 01:31:52 ---Сейчас нет нормального софта, чтобы расширить rom? Знаю, что можно самому с помощью хекса и блокнота, но хочется автономности, по кнопке. Ну или Хекс с такой функцией, чтобы по факту дописывать ром? --- Конец цитаты --- Вся сложноть упирается, в портабельность, и куда бы подлезть в роме, чтобы не сломать текущие адреса. А в конец, сколько угодно можно писать, все зависит от нужд хака |
| MaxWooD:
Уважаемые форумчане, подскажите советом пожалуйста. Разбираюсь с графикой в The Fantastic Adventures of Dizzy. Как выяснилось нужная мне графика пожата (используемые предметы в игре). Есть утилита Dizzy Pack/Unpack, как я понял она используется для извлечения, распаковки, упаковки и вставки назад в РОМ графики. Данную утилиту изначально разрабатывал Chronix, а потом модифицировал поляк ffgriever. В файлах программы есть пример, и как я понял программа распаковывает графику из определённого адреса в РОМе, который нужно прописать в настройках. А какой командой и как упаковать эту графику назад в РОМ? И еще вопрос, как понять по какому адресу находится сжатая графика? Игрался вручную с разными адресами, но на выходе не очень много графики получается найти. |
| Sharpnull:
--- Цитата: MaxWooD от 09 Октябрь 2024, 21:50:06 ---И еще вопрос, как понять по какому адресу находится сжатая графика? --- Конец цитаты --- Поставить breakpoint на запись в PPU $0000-1FFF или CHR RAM, виден код и откуда взялось. В 1-й версии игры (Fantastic Adventures of Dizzy, The (USA) (Unl).nes на emu-land) можно поставить breakpoint на выполнение CPU $DC62, там LDY #$00 и ниже LDA ($2B),Y, где Mesen пишет CPU адрес, посмотреть какой PRG адрес и добавить 0x10 для распаковщика, в $31 видно кол-во тайлов для распаковки. Выше по коду видно, что каждый сжатый кусок определяется данными с CPU $DA9F по 5 байт: сначала 2 байта CPU адрес на данные, 1 байт - начальный индекс тайла, 1 байт - кол-во тайлов для распаковки, 1 байт - старший бит (7-й, &0x80) указывает на PPU $0000 или PPU $1000, младшие 4 бита (&0x0F) на PRG банк, поэтому для примера F6 9E CF 08 07: CPU $9EF6, PPU $0CF0 (индекс тайла 0xCF), 8 тайлов, PRG банк 7. UPD: Здесь адрес в файле 0x10 + (0x9EF6 - 0x8000) + 7 * 0x4000, поэтому можно легко написать скрипт, который пройдёт по массиву и распакует все тайлы. В example.bat 2-й строка - пример сжатия. Конечно нужно убедиться, что влезет. Забавный польский язык: Oj bida, bida..., Blad na linii nr, Mamy problem. |
| Alex KO:
Здравствуйте, форумчане. У меня есть вопрос. Есть хак на игру Krion Conquest/Magical Doropie под названием Magical Rockman. И там у мегамена поменян цвет во всех режимах атаки. Я пытаюсь сделать свой хак на эту игру, но я смог поменять цвет персонажа только при загрузке нового уровня. Когда я нажимаю на Старт для выбора атаки шариками или полёта на метле, а потом возвращаюсь на нормальную атаку, то персонаж меняет цвет на такой, какой у него был до программирования цветов. Как мне поменять цвета в этой игре, чтобы можно было даже после переключения режимов атаки оставить цвет. И если это как-то связано с PPU-памятью, то где там залезть, чтобы поменять палитру |
| Sharpnull:
--- Цитата: Alex KO от 06 Ноябрь 2024, 21:14:28 ---Когда я нажимаю на Старт для выбора атаки шариками или полёта на метле, а потом возвращаюсь на нормальную атаку, то персонаж меняет цвет на такой, какой у него был до программирования цветов. --- Конец цитаты --- В (J) версии палитра после нажатия Start в PRG $FC8C-FC8F (в файле + 16 байт от заголовка): 35 16 0F 0F. Легко найти, в Mesen поставить breakpoint на запись в PPU $3F12 или Palette RAM $12 и посмотреть в коде откуда читается, это основы ромхакинга. Если так сложно, то в данной игре часть палитр лежит в обратном порядке, поэтому открыть Palette Viewer, посмотреть значения цветов для нужной палитры - 0F 0F 16 35, записать в обратном порядке - 35 16 0F 0F, поиск 35 16 0F 0F по PRG ROM даёт только одно совпадение, о котором написал выше. |
| Alex KO:
--- Цитата: Sharpnull от 06 Ноябрь 2024, 21:41:29 ---В (J) версии палитра после нажатия Start в PRG $FC8C-FC8F (в файле + 16 байт от заголовка): 35 16 0F 0F. Легко найти, в Mesen поставить breakpoint на запись в PPU $3F12 или Palette RAM $12 и посмотреть в коде откуда читается, это основы ромхакинга. Если так сложно, то в данной игре часть палитр лежит в обратном порядке, поэтому открыть Palette Viewer, посмотреть значения цветов для нужной палитры - 0F 0F 16 35, записать в обратном порядке - 35 16 0F 0F, поиск 35 16 0F 0F по PRG ROM даёт только одно совпадение, о котором написал выше. --- Конец цитаты --- Спасибо Вам большое. Разобрался с этим. Теперь можно продолжать работать над сиквелом игры "Riddler:Escape from Arkham". А может и там подправлю графику персонажа и боссов, а то такое ощущение, что их пожевало. Кстати, то, что Вы написали, работает и с американской версией. Надеюсь, что я в этом преуспею, как с хаками "Iron Fist:The Living Weapon"(хак Fist of the North Star) и "Punisher:War Zone"(хак Crossfire). |
| Dark Knight:
Приветствую всех. Как я понял, поинтеры отвечают за длину строки в тексте игр(например, NES). Размер буквы также может зависить от поинтера или это уже что-то другое может быть? |
| Sharpnull:
--- Цитата: Dark Knight от 19 Ноябрь 2024, 19:24:22 ---поинтеры отвечают за длину строки в тексте игр(например, NES). --- Конец цитаты --- Нет. Ромхакеры под "поинтерами" (они же указатели) имеют в виду адрес, хранящийся в роме или образе. Этот адрес может указывать на любые данные или код для перехода. Программа (игра) может по-разному интерпретировать байты, которые превращаются в реальный адрес. Классическое хранение два байта адреса подряд, сначала младший или наоборот. Оптимизированное хранение, когда сначала массив младших (или наборот) и потом старших байтов адреса. Рядом может быть номер PRG/CHR банка. Могут храниться смещение или индекс, которые превращаются в адрес, тогда уже не "указатель". Адреса могут быть как в адресном пространстве процессора (CPU) так и PPU (где графика, nametable, палитры). В адресе может быть дополнительная информация, например, у PPU адреса два старших бита не используются. Поэтому, открываете Mesen и разбираете код, чтобы узнать необходимое. UPD: Если говорить о частных случаях, когда адреса указывают подряд на текст или другие данные, то разность следующего адреса с текущем - размер данных (строки, текста). UPD2: Также адрес может быть задан кодом (LDA #$xx). В любом случае, чаще всего подойдёт поиск байтов стоящих друг от друга на расстоянии от 0 до 256 байт, программы есть. |
| Беларус:
--- Цитата: Dark Knight от 19 Ноябрь 2024, 19:24:22 ---поинтеры отвечают за длину строки в тексте игр(например, NES) --- Конец цитаты --- Указатели - это часть любого кода, любой системы, и они указывают на что угодно - на код, данные, другие указатели. В случае текста простой случай: Данные в роме: "Привет мир!Отличный день.Хо..." Список указателей (в скобках позиция-буква, на которую указывает): 0 (П) 11 (О) 25 (Х) Код забирает данные подряд, на начало которых указал указатель, пока не дойдёт до позиции другого указателя. Понятно, что если не найти этот список указателей в роме, то будешь ограничен длиной этих фраз. --- Цитата: Dark Knight от 19 Ноябрь 2024, 19:24:22 ---Размер буквы также может зависить от поинтера или это уже что-то другое может быть? --- Конец цитаты --- Каждый код (программа или игра) уникален и там может быть что угодно. Графика больших и маленьких букв часто идут в отдельных рядах, тогда да - первый указатель может быть из ряда больших букв, а остальные будут из ряда маленьких. --- Цитата: Sharpnull от 19 Ноябрь 2024, 20:42:44 ---программы есть. --- Конец цитаты --- Такие программы автоматически находят указатели на тексты? И на какие платформы встречал? |
| Dark Knight:
--- Цитата: perfect_genius от 20 Ноябрь 2024, 12:15:04 ---Каждый код (программа или игра) уникален и там может быть что угодно. Графика больших и маленьких букв часто идут в отдельных рядах, тогда да - первый указатель может быть из ряда больших букв, а остальные будут из ряда маленьких. --- Конец цитаты --- Я столкнулся в Obitus (SNES) с тем, что буквы разного размера. Немного туплю куда копать, чтоб решить проблему со вставкой русских букв :lol: |
| Беларус:
--- Цитата: Dark Knight от 20 Ноябрь 2024, 16:20:57 ---буквы разного размера --- Конец цитаты --- Покажи скриншот тогда. |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |