| Разработка и ромхакинг > Ромхакинг |
| Вопросы новичков |
| << < (19/22) > >> |
| Беларус:
Почему же тогда национальности пишешь с заглавной буквы? У тебя вон даже в подписи "Российская клавиатура". Я однажды уже спрашивал про это и обозвал тебя нацистом, но ты проигнорировал, не опроверг :) Что означает вот это? --- Цитата: FireFox Фан от 13 Март 2025, 12:18:25 ---Надо просто извлечь кнопки --- Конец цитаты --- По ссылкам просто эмуляторы. --- Цитата ---Все кнопки лежат в одном месте и файлы названы абы как. --- Конец цитаты --- Т.е. тебе нужны картинки кнопок? |
| Takamura-kun:
В общем, дело такое: я уже очень давно пускаю слюни на уровни и модельки из MK Special Forces. Уже для этой игры и распаковщик написали и, казалось бы, мечта сбылась? ...не всё так просто. Дело вот в чём - я мало того, что впервые сталкиваюсь с PS1 и её разнообразием форматов. Я ещё и в 3D моделях полнейший профан. Знаю, что на форуме сидят PS1 хукслеры, которые уже давно прошарены в этом вопросе. P.S. Пытался через PSXPrev ковырнуть уже распакованные файлы (т.к. сама игра PSXPrev не поддерживается) - безуспешно. Гуглёж (мне лично) не помог. P.P.S. приложу архив с распакованными ништяками из MKSF, мне лишь нужно понять, как и чем их посмотреть и, желательно, перенести в blender. Хэлп, в общем :D |
| Mad:
perfect_genius, Палехче, у него подпись просто скопирована с типового описания в магазине: |
| FireFox Фан:
--- Цитата: perfect_genius от 14 Март 2025, 22:23:29 ---Т.е. тебе нужны картинки кнопок? --- Конец цитаты --- Да, именно. А в случае с Dolphin Emulator ещё и отсортировать на Wii Remote+ нунчак, Classic контроллер и GameCube контроллер. perfect_genius, на Английский манер с большой буквы. ) |
| Takamura-kun:
Разреверсил я, в общем, пиратский порт Mortal Kombat Mythologies: Sub-Zero для сежки. Код почти полностью движимый. Остался последний штрих: есть одна область в роме, которая никак не хочет дебажиться. Ставлю бряки на чтение/выполнение (даже на запись уже поставил от безысходности :lol: ) - никакой реакции. Как будто неиспользуемая область в роме. Однако когда эту область двигаешь - звук в игре начинает артефачить. Подумал было, что это зарезервированная область для Z80, но в других играх, причём даже от той же конторы, та же самая область в роме занята совершенно другими данными. Учитывая, что все игры этой конторы написаны на +/- одном движке. Даже музыку из одной игры в другую можно безболезненно переносить. В общем, если кто разбирается в вопросе, тыкните мордой :D |
| Mr2:
--- Цитата: Takamura-kun от 09 Апрель 2025, 14:10:39 ---Разреверсил я, в общем, пиратский порт Mortal Kombat Mythologies: Sub-Zero для сежки. --- Конец цитаты --- Зачем? 0_0 |
| Takamura-kun:
Mr2, да есть что-то в этой китайской шиниме прикольное :lol: Там столько несовершенств, что захотелось хацк сделать с исправлениями. Начал с добавления 6-кнопочного режима, (ещё инъекциями), потом понял, что это всё быстро превратится в кашу и лучше сначала получить дизасм :lol: Так и разобрал ром. |
| Sharpnull:
--- Цитата: Takamura-kun от 09 Апрель 2025, 14:10:39 ---Mortal Kombat Mythologies: Sub-Zero --- Конец цитаты --- Да, с E0000 в роме идёт звук, можно даже услышать что-то отдалённое в аудиоредакторе. В плохих отладчиках breakpoint не сработает. В MAME можно отловить, запустить: --- Код: ---mame.exe genesis -cart MK5.gen -debug -prescale 3 --- Конец кода --- В Debug окно ввести и нажать Enter (об этом https://docs.mamedev.org/debugger/watchpoint.html): --- Код: ---wp e0000,10000,r --- Конец кода --- После нажатия Start будет остановка reading 7F from 0E2860. В окне Zilog Z80 :genesis_snd_z80 не очень понятно где происходит чтение. В эмуляторе типа Gens r57shell в окне z80 Debug поставить breakpoint PC 120, это после инструкции ld a,(de), когда читается 7F, то регистр AF=xx7F, несколько срабатываний и по значениям байтов можно понять где в роме читается. Вам конечно нужно разобрать код, чтобы понять как задаются адреса на аудио. |
| bgr:
Takamura-kun, ты разобрался, где в роме находится код защиты от копирования и его фикс? |
| Takamura-kun:
--- Цитата: Sharpnull от 09 Апрель 2025, 15:57:49 ---можно даже услышать что-то отдалённое в аудиоредакторе --- Конец цитаты --- А, так это сэмплы, а не код Z80! А я их дебажить пытаюсь :lol: Действительно, загрузил участок рома в audacity - оказалось, звуки. Запись воплей и музыкальных инструментов. Оглядываясь назад - такое у меня уже было с MK1. Тоже сэмплы, тоже при смещении звук сыпался. И тоже ни в какую не мог найти на них указатели. Адрес сэмплов, при этом, был другой. Но тогда я даже не думал, что дело может быть в Z80. Просто это для меня была некая данность, что вот, сэмплы для музыки должны быть только там и нигде больше, потому что какя-то невиданная сила указывает игре именно на это место. :D Спасибо за инструкцию к MAME - никогда через него не дебажил, буду пробовать. --- Цитата: bgr от 09 Апрель 2025, 16:09:43 ---ты разобрался, где в роме находится код защиты от копирования и его фикс? --- Конец цитаты --- Не совсем понимаю о чём речь. Оригинал рома спокойно запускается с флеш картриджа, защиты от модификации рома там также нет. ...есть, правда, один момент интересный: там, при запуске игры, в оперативную память забивается кусок кода, который в роме лежит в открытом виде, после чего выполняется из оперативки. Бессмыслица какая-то... Если это защита, то код можно поменять в роме и уже он, в модифицированном виде, загрузится в оперативку, либо же и вовсе переписать так, чтобы код выполнился сразу из РОМ памяти, что ещё проще. Причём повторюсь - защиты в роме никакой нет, можно спокойно запускать игру с флеш картриджа и модифицировать. Вообще, если говорить о странностях, в коде игры очень много лишних "телодвижений". Почистить игру и она будет весить не 2 мегабайта, как в оригинале, а 1 :lol: |
| bgr:
Takamura-kun, я тебе не скажу точно, ибо даже не сравнивал дампы, просто знаю, что были картриджи с защитой, а уже после пираты сами спиратили и пофиксили её. Есть ли оригинальный дамп в сети - не знаю, но точно могу сказать, что оригинальный дамп как раз и не запускается. Игра дальше чёрного экрана и не идёт. Также ром работает в двух режимах, 50/60hz, зависит от региона. В режиме pal играется более плавно и комфортно, хоть и тормознуто. При переводе на русский язык даже специально привязку сделали. Также в игре наверняка должно быть много лишней графики, семплов и готовых треков, которые не используется. |
| SeregaZ:
само критично в плане пал не пал - звук. а именно такие звуки, где два сэмпла идут друг за другом. дело в паузах между запусками сэмплов. в пале медленно - пауза должна быть больше между сэмплами. в нтсц, если это не учесть, то фразы будут жрать друг друга. конечно еще зависит от драйвера и организации сэмплов. если как в ZT - шотган, коллектед - два разных сэмпла. то в нтсц может быть так что шотг... коллектед. конец первого сэмпла может съедать вторым сэмплом. |
| Takamura-kun:
--- Цитата: bgr от 10 Апрель 2025, 06:03:16 ---Также в игре наверняка должно быть много лишней графики, семплов и готовых треков, которые не используется. --- Конец цитаты --- Насчёт музыки - точно нет. Причём даже без указателей, самих нот в игре неиспользуемых нет... Во всяком случае, в оригинале. Я уже напихал туда нот из Мулан и Покемона 2 :lol: Для прикола, могу скинуть - подсвечиваешь опции и нажимаешь А. Так можно прослушать всю музыку игры + то, что было скопипащено. Чего в оригинальном роме реально много - так это лишнего кода, лишь часть которого не используется, остальное - шаблонные вставки кода, которые делают тонну лишней работы) --- Цитата: bgr от 10 Апрель 2025, 06:03:16 ---оригинальный дамп как раз и не запускается. Игра дальше чёрного экрана и не идёт. --- Конец цитаты --- ...блин, кусок китайского шлака, который сам по себе нарушает авторские права, а туда же! :lol: Вообще, нужно доразобрать уже ром, чтобы полусырые дизасмы в сети не плодить. И, как завещал великий классик, выложить. Иначе как с МК1 будет - дважды разобрал и дважды про...кхм... потерял) Всё, что мне сейчас мешает это сделать - полнейшее незнание z80. Я его потыкал, подебажил, ничего не понял и закрыл :lol: Пока обойдусь костылём, поставлю на этот участок org $E0000. SeregaZ, ты вроде шаришь в звуке, насколько сложно будет сделать эти сэмплы подвижными?) |
| Sharpnull:
--- Цитата: Takamura-kun от 11 Апрель 2025, 01:05:26 ---Я его потыкал, подебажил, ничего не понял и закрыл --- Конец цитаты --- Адреса на аудио с D5B8D по 8 байт: 2 байта LE - младшая часть адреса в роме (15 бит), нужно вычесть 0x8000, 2 байта LE - размер в байтах, 1 байт - 15-й бит адреса, 1 байт - старшие 8 бит адреса, 1 байт - задержка, 1 байт - 00. Т. е. для 60 A8 F4 0D 00 0E 1C 00 будет (0xA860 - 0x8000) | (0x00 << 15) | (0x0E << 16) == адрес в роме 0xE2860, размер 0xDF4, для 00 80 20 05 01 0F 01 00 = (0x8000 - 0x8000) | (0x01 << 15) | (0x0F << 16) == адрес в роме 0xF8000, размер 0x520. UPD: У Z80 банки по 0x8000, поэтому в коде нужно будет сделать выравнивание 0x8000 (align или типа того), а для экономии места написать скрипт, который расфасует аудио по банкам и сгенерирует ассемблерный код. UPD2: Нужен не обычное выравнивание в ассемблере, переход на следующий банк, когда текущий кусок не влезает. Проще написать скрипт для этого. Размеры кусков аудио не совпадают с началом и концом, почему-то 0x20 байт между ними. |
| Takamura-kun:
Sharpnull, благодарю за развёрнутое объяснение, завтра на свежую голову попробую переварить) Эта заноза в виде недвижимых сэмплов не даёт мне покоя с давних пор, пора бы уже сдвинуться в этом плане с мёртвой точки :lol: |
| Alex KO:
Здравствуйте всем форумчанам. У меня есть вопрос по поводу изменения текста в игре для NES под названием "Spartan X2". Ситуация следующая: захожу через эмулятор fceux для определения расположения букв в таблице в PPU Viewer Далее я захожу в программу tblater для записи этих символов в нужном порядке и сохраняю его в формате tbl. Далее я в том же fceux захожу в HEX editor и загружаю таблицу tbl. И вот а чём загвоздка: когда я выбираю PPU Memory и ищу строку текста, то строка текста находится. А вот когда я выбираю Rom file, то нужная строка или слова не находятся. Итоговый вопрос: возможно ли определить и изменить сам текст в ром-файле для дальнейшей работы с ром-файлом или же там слишком сложные операции производятся? Спасибо всем заранее за ответ на этот вопрос |
| SeregaZ:
полагаю надо искать не текст сам по себе, а номера тайлов. |
| Sharpnull:
--- Цитата: Alex KO от 10 Июль 2025, 10:03:20 ---возможно ли определить и изменить сам текст в ром-файле для дальнейшей работы с ром-файлом или же там слишком сложные операции производятся? --- Конец цитаты --- Там не самое простое сжатие, поэтому нубы до сих пор не перевели на русский язык. Программа для работы со сжатыми данными давно есть https://www.romhacking.net/utilities/68/. Here's Johnny! UPD: Если выполнить программу: --- Код: ---unpack.exe 1.nes 1.bin d310 300 --- Конец кода --- В 1.bin будет Jonny - CA E9 E8 E8 F3. Но я не разбирался, поэтому длина (300) неправильно указана и про смещение не уверен. |
| Alex KO:
Sharpnull, Благодарю за ответ. Интересная программа в формате DOS. Ладушки, пойду "курить" инструкцию. Если удастся, то будет хак для самой короткой игрушки на денди. P.S. Забавно, что на сайте написано, что это программа уровня Beginner, т.е. начинающий. Ну, если получится разобраться, то по просьбе трудящихся могу перевести на русский язык данную игру, как разберусь |
| pav13:
добрый день. у меня вопрос по командам для процессора m68k sega md. в частности как рассчитывается адрес после команды смещения короткого и длинного? --- Код: ---BNE короткое адрес данные 0х0400 0х66 0х0401 0х38 --- Конец кода --- т.е. мне надо к 0х0402 прибавить 0х38. --- Код: ---BNE длинное адрес данные 0х0400 0х66 0х0401 0х00 0х0402 0х50 0х0403 0х22 --- Конец кода --- а в этом случае как правильно? 0х0402 + 0х5022 или 0х0404 + 0х5022 |
| Навигация |
| Главная страница сообщений |
| Следующая страница |
| Предыдущая страница |