Разработка и ромхакинг > Ромхакинг
Вопросы новичков
Talking_Sword:
Есть игра - Metaltech: Battledrome, сама игра мне не очень интересна, но очень понравилась музыка. К сожалению, в игре нет Sound Test, чтобы можно было послушать музыку.
Захотелось попытаться разобраться, можно ли запустить музыку отдельно от игры. В старых играх музыка часто работала через драйвер, который часто представлял из себя исполняемый файл. У меня сразу пало подозрение на SOUNDPLY.EXE. При запуске без аргументов ничего не происходит, программа ничего не пишет. Разобрался, музыка лежит в папке "SOUND", файлы с расширением "*.HMP". Попробовал открыть файл HMP при помощи SOUNDPLY, то есть, написал в командной строке "soundply sound\rock2.hmp", снова ничего не произошло.
Решил проверить в HEX-редакторе SOUNDSET.EXE - она играет музыку при проверке настроек звуковой карты. Поискал там упоминания "SOUNDPLY". По адресу 0xF4CA нашлось такое: "soundply.exe %s %s %s %s %s %s", похоже на какие-то аргументы, похоже их должно быть 6 штук. Попробовал выполнить "soundply 1 2 3 4 5 6" (да, аргументы взял просто "от балды") - программа выдала ошибку, уже какой-то прогресс. Была надежда, что какой-то один из аргументов - путь к файлу с музыкой. Честно говоря, не знаю как в DOS посмотреть, с какими аргументами там запущена программа, поэтому написал простенькую программу, которая выводит на экран, с какими аргументами она запущена. Заменил SOUNDPLY.EXE на свою программу. Получились такие аргументы: E016 220 1 7 A002 388. В принципе, смысл понятен, E016 - тип драйвера для воспроизведения звуков (есть такая строчка в RESOURCE.CFG), 220 - адрес Sound Blaster, 1 - DMA, 7 - IRQ, A002 - тип драйвера для воспроизведения музыки (опять же, из RESOURCE.CFG), 388 - адрес OPL2.
Попробовал запустить SOUNDPLY с такими аргументами - заиграла ту же музыку, что в SOUNDSET. Заметил еще, в RESOURCE.CFG есть строчка "midiFile=sound\rock1.hmp", если ее поменять, то начинает воспроизводится другая музыка (та, к которой указан путь).
Вывод: SOUNDPLY играет только ту музыку, что указана в RESOURCE.CFG. SOUNDPLY используется только для проверки настроек в SOUNDSET - при удалении\переименовании файла SOUNDPLY.EXE в самой игре звук\музыка не пропадает.
Можно слушать музыку через SOUNDPLY, но для того, чтобы послушать другую музыку, нужно отредактировать RESOURCE.CFG. А сложно ли модифицировать программу так, чтобы она брала имя файла из аргументов коммандной строки, а не из файла?
Мне уже на другом форуме предложили решение - сделать на каждую мелодию отдельный BAT-файл и отдельный RESOURCE.CFG, которые разложены по отдельным папкам (точнее, это уже сделали за меня), плюс отдельный BAT-файл для запуска самой SOUNDPLY. Правда метод мне видится все-таки слишком костыльным.
bugmenot:
https://file.org/extension/hmp
HMP is a MIDI variant created by Human Machine Interfaces Inc. It was a precursor to HMI
Mr2:
--- Цитата: Norber2007 от 12 Декабрь 2024, 16:45:48 ---Пробовал выйти на брикпоинты через инструкции с Cheat Engine пробивая через дебаггер r3000 но либо у них отличаются значения от gameshark
--- Конец цитаты ---
Gameshark - это программа "морозящая" адреса в оперативной памяти, кто без неё будет морозить? Чтобы "вшить" коды, тебе нужно изучить принципы работы ЭВМ. Нормальный дебаггер тут.
Talking_Sword:
--- Цитата: bugmenot от 20 Январь 2025, 18:44:22 ---https://file.org/extension/hmp
HMP is a MIDI variant created by Human Machine Interfaces Inc. It was a precursor to HMI
--- Конец цитаты ---
Это я уже знаю. И?
Sharpnull:
Talking_Sword, для воспроизведения HMP поставьте плагин для foobar2000 https://github.com/stuerp/foo_midi/releases. Сконвертировать тоже можно.
--- Цитата: Mr2 от 20 Январь 2025, 19:05:26 ---Нормальный дебаггер тут.
--- Конец цитаты ---
Нормальный эмулятор с отладчиком PCSX-Redux https://github.com/grumpycoders/pcsx-redux.
Mr2:
--- Цитата: Sharpnull от 20 Январь 2025, 20:33:08 ---Нормальный эмулятор с отладчиком PCSX-Redux https://github.com/grumpycoders/pcsx-redux.
--- Конец цитаты ---
Давно уже пробовал, неудобный интерфейс. <_<
Talking_Sword:
--- Цитата: Sharpnull от 20 Январь 2025, 20:33:08 ---Talking_Sword, для воспроизведения HMP поставьте плагин для foobar2000 https://github.com/stuerp/foo_midi/releases. Сконвертировать тоже можно.
--- Конец цитаты ---
Нет, это не то. Я уже находил это сам. Но он воспроизводит их с каким-то "левым" банком инструментов, видимо как простое MIDI. К тому же в Metaltech: Battledrome еще используются семплы для ударных (и некоторых эффектов), он их тоже не воспроизводит. Вероятно, другие игры, использовавшие данный формат не использовали такую фишку, возможно поддержку семплов писали сами разработчики игры. К тому же, в foobar2000 музыка из игры еще и воспроизводится как-то слишком быстро.
Думаю, нигде, кроме самой игры не получится воспроизвести музыку правильно.
Sharpnull:
--- Цитата: Talking_Sword от 21 Январь 2025, 09:30:48 ---Думаю, нигде, кроме самой игры не получится воспроизвести музыку правильно
--- Конец цитаты ---
Вы смогли воспроизвести треки по отдельности, так запишите их в WAV/FLAC и слушайте.
Talking_Sword:
Не хотелось бы переписывать. Может быть есть какие-нибудь отладчики для DOS? Есть какая-нибудь методология для поиска места в программе, где она считывает значение из файла? Есть какой-то метод, которым можно подменить это считывание значения из файла на получение его из аргументов коммандной строки?
VatnoComputerFun:
Здравствуйте, помогите пожалуйста, как менять текст в РОМах на денди, переводы тоесть как. А то я мог только заменять тайлы, а как менять текст?
bgr:
--- Цитата: VatnoComputerFun от 02 Февраль 2025, 16:29:33 ---Здравствуйте, помогите пожалуйста, как менять текст в РОМах на денди, переводы тоесть как. А то я мог только заменять тайлы, а как менять текст?
--- Конец цитаты ---
Через Хекс редактор
Беларус:
VatnoComputerFun, если тебе повезло и текст игры не сжат, то его можно найти в хекс-редакторе (только латинские буквы, вроде как).
Если же сжат, то ищи к своей игре специализированные распаковщики и редакторы. Если их нет, то придётся их делать.
IvanKoc:
Может кто подсказать как проверить ром какого региона. Пытаюсь записать самодельный картридж не в какую не работает. Приставка NTSC может не подходит регион ? ( приставка выводит просто синхру и все ). Прилагаю ром и ром после свайпа
Razor:
Контрольная сумма у рома неправильная, вот и не запускается. Большинство ромов можно проверить при помощи утилиты Fix CheckSum
IvanKoc:
--- Цитата: Razor от 07 Февраль 2025, 19:37:01 ---Контрольная сумма у ром
--- Конец цитаты ---
после свайпа сумма становится неправильной. Запустил картридж накосячил в пайке резисторов один резистор не припаял
Razor:
--- Цитата: IvanKoc от 07 Февраль 2025, 19:54:38 ---после свайпа сумма становится неправильной.
--- Конец цитаты ---
После любых изменений в роме сумма становится неправильной :lol: Хорошая тема - перед запуском на консоли проверять ром на эмуляторе с включенным регионом как на целевой консоли.
Беларус:
Не любых - заголовок же можно изменять :)
FireFox Фан:
Доброго времени суток!
У меня ПК на ремонте. То ли я удалил, то ли не я. У меня был вопрос как поменять регион перевода.
У меня игра Shantae and the Pirate's Curse (прямая ссылка на скачивание) для 3DS из No-Intro, но на её не встаёт этот перевод... Я знаю, что там есть ROM неизвестного происхождения, но у меня просьба либо поменять регион перевода, либо вшить в ROM из моей ссылки.
Добавлено позже:
Помогите, пожалуйста с хаком!
Надо в New Super Mario Bros. Deluxe вставить 2 набора треков. Из New Super Mario Bros. Origins музыку уровней и всё с этим связанное, а из New Super Mario Bros. 3 музыку миров. Инструкция по редактированию звуков и музыки - NSMB Sound & Music Hacking Guide.
Если надо, вышлю снимки миров хаков, чтобы легче соотнести музыку миров New Super Mario Bros. 3 с New Super Mario Bros. Deluxe, ведь порядок иначе.
Скачать хаки.
Добавлено позже:
Честно, ХЗ куда писать.
В эмуляторах слишком непонятно. Надо просто извлечь кнопки, но я запутался.
1. Dolphin (Пост JPeacekeeper #135774048) Тут вообще их до фига, кроме тёмной темы. Я просто не понял как отделить WiiMote + нунчак, Classic контроллер и GameCube контроллер. В теме спросил и получил отказ.
2. MelonDS (Пост LetovRF #135768196)
3. Citra (Пост JPeacekeeper #134959813)
Беларус:
--- Цитата: FireFox Фан от 13 Март 2025, 12:18:25 ---ХЗ куда писать
--- Конец цитаты ---
Никто не хочет помогать нацисту, можешь и не писать.
FireFox Фан:
--- Цитата: perfect_genius от 13 Март 2025, 23:18:58 ---Никто не хочет помогать нацисту, можешь и не писать.
--- Конец цитаты ---
Ты что за фигню написал? Я никогда не был нацистом!
Навигация
Перейти к полной версии