Разработка и ромхакинг > Ромхакинг
Вопросы новичков
<< < (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 ---буквы разного размера
--- Конец цитаты ---
Покажи скриншот тогда.
Навигация
Главная страница сообщений
Следующая страница
Предыдущая страница

Перейти к полной версии