Кто-нибудь пробовал разобраться в этом деле?
Я тут позапускал разные игры, покопался в RAM, и обнаружил, что все они (почти) воспроизводят музыку одинаково: недалеко от начала IRAM (0x03...) размещаются структуры, отвечающие за каждый канал. В каждой игре - свое количество каналов и свой стартовый адрес, но сами структуры похожи. Они состоят из нескольких 32-битных слов, часть из которых в процессе воспроизведения меняется редко (видимо, это указатели на сэмплы в РОМе, т.к. имеют вид 0x08...), а другая часть - часто, "в такт" музыке. Вот тут самое интересное. Если также считать эти значения указателями - попадаем в РОМ на кучу будто-бы случайных байт, однако их изменение приводит к непредвиденному изменению музыки (или один канал пропадает или играет быстрее других и т.д). Интересно было бы узнать, какой формат имеют эти "паттерны"...
Если кто-нибудь заинтересуется, приведу пример для конкретной игры.
Расскажи про музычку в Pokemon Saphire !!!
Это обычная трэкерная музыка. Самая обычная.
Существуют разные форматы - MOD, S3M, XM, 669, IT и др., а некоторые плееры конвертируют эти форматы в свой внутренний формат (у каждого такого плеера он свой). Конвертируют обычно для повышения скорости воспроизведения: например, номера инструментов заменяются сразу на адреса памяти, по которым лежат эти инструменты, номера нот - на частоту тона этой ноты и т.д. Однако, общая структура при этом сохраняется. Её ты и наблюдаешь.
А если плеер не конвертит в свой формат, то из игры можно даже выдрать музыку в виде MOD'а или, скажем, S3M'a и слушать отдельно на PC любым плеером. Но это редкость, обычно музыку конвертят и пакуют. В том числе и чтобы не выдирали.
Когда я писал музыку для GBA-шной игрушки, я использовал формат MOD - он небогат возможностями, но зато нетребователен к ресурсам.
Да, иногда, конечно, используют другой метод - включают старый ГеймБоевский муз-процессор о трёх каналах. FM-синтез + шум - ну, кто играл в старый GB, знает: звук такой ala Dandy.
Ещё иногда конвертят midi с набором сэмплов - получается практически то же, что и трэкерная музыка. Только такой фарш уже точно не провернёшь назад (в смысле, выдрать и проиграть на PC не получится).
Pokemon Sapphire как раз использует и DirectSound и FM-каналы. Драйвер судя по всему "стандартный" Нинтендовский (сигнатура "Smsh" в некоторык участках памяти). Рядом с одним из таких участков находится байт скорости воспроизведения (адрес 0x030073A0).
to Manve:
Слушай, а что за игра про которую ты говоришь ?
Если она есть в инете, то дай ссылочку.
to Balin_Victor: Moorhuhn, ссылка со странички www.demoscene.ru/sands
to all: начал я титанический труд по оцифровке музыки из Adwanced Wars 2. Профессиональная саунд-карта, hiss-reduction 8-битного шипения и всё такое. Нужно кому-нибудь это, если в mp3 выложу? или будем ждать, пока кто-нибудь в S3M'ы переведёт?.. Кстати, там почти у всех музонов большинство сэмплов одинаковые, следовательно, хранятся они один раз и в одном месте, а нотные паттерны - отдельно кучей. задача усложняется.
mp3 это, конечно, хорошо, но файлы слишком большие...
А есть ли в Advanced Wars 2 soundtest?
Кстати, ты с реального ГБА будешь записывать или с эмуля?
И напоследок: как узнать базовую частоту сэмпла (ту, которая C-5)? На слух что ли? Я открываю РОМ в редакторе как raw pcm, а дальше? Стандартная 11025 много, 8000 - мало...
to all:
Подскажите есть ли редактор музыки в играх на gba?
Я хочу сделать total remake Pokemon Saphire. Все могу редактировать кроме музыки > .
to Manve:
Слушай, если можешь, сделай прогу, которая могла бы музыку из Pokemon S/R выколупывать и назад вставлять! Или, если знаешь, то дай линк на такую прогу, а то замучался искать.
to Pokeperevod:
Огромная спасиба !!!
Люди, если кто-нить знает как вставить музыку в Pokemon Saphire, помогите !!!!
to Mad Mirror: soundtest есть. Могу с GBA оцифровывать, могу с эмулятора. Первым способом уже 4 мелодии оцифровал.
to Manve: Интересно, сильно ли отличается реальный звук от эмулируемого?
to PokePerevod: Прога - просто артефакт!
Оказалось, что она играет музыку из любых РОМов на Нинтендовском муз. движке! Только ее надо правильно найти... Кстати, вот программка для поиска этих самых таблиц: http://www.geocities.co.jp/Playtown-Yoyo/6130/dl/stos.zip
Как выяснилось, все не просто, а очень просто. В каждом РОМе есть таблица указателей на мелодии, притом одному указателю соответствует одна мелодия со всеми своими паттернами! Таким макаром прога может проиграть любую мелодию из РОМа и сохранить ноты в midi.
Сохранить в midi? Так сохраняй! Переведём в S3M, добавим оригинальных сэмплов - и дело в шляпе!
Можно и вручную выдрать, но если получится автоматизировать процесс - вообще супер. Кстати, посмотри - там для каждого сэмпла может указываться громкость и панорама по умалчанию.
to all:
Люди, если будете делать такую прогу, плз, сделайте возможность вставки мидишек назад !!!
Это сложнее.
Потому что там не midi, а хрен знает что. Кто-то умный сумел разобраться в этом и (по слухам) конвертировать в mid. А вот чтобы обратно, надо заново расковыривать этот формат и писать конвертор - задача сложная и никому из программистов не нужная, я полагаю.
http://www.user.nnov.cityline.ru/~stealthh/GBAsr.zip, дописал прогу для рипа сэмплов. Если найдете баги - сильно не пинайте
Насчет вставки midi обратно - пока есть только одна игруха, с которой можно проделать подобное без особого гемора: Wario Ware Inc. Там используются обычные midi-файлы, формат 2.
Зверская программа, супппппер!!!!
Факт.
Итак, благодоря программке Sappy и великому мастеру программирования Mad Mirror'у я получил два трэка из Advanced Wars 2 в удобном и популярном формате IT, плюс набор в 256 сэмплов. С 55-го по 233-ий сэмплы музыкальные, остальные - саунд-эффекты. Всё круто, но разобраться на слух в 173-х звуках очень сложно. Не может ли великий мастер Mad Mirror усовершенствовать свою волшебную программу, чтобы она как-то информировала пользователя какой инструмент какому каналу соответствует? Например, скидывать в текстовый файл что-то типа:
01. Sample004.wav
02. Sample153.wav
03. Sample072.wav
04. Sample224.wav
...
20. Sample142.wav
Какой я нафиг "великий мастер программирования"?
Собираюсь написать автору Sappy насчет формата нот, там где-то должно указываться, какой сэмпл чему соответствует. В текстовый файл - опять же нужно разобраться в формате мелодий: каждая мелодия перераспределяет каналы по своему.
Manwe, выложи, плиз, куда-нибудь it-шки, хочется послухать, че получилось, и получилось ли вообще
Кстати, ты в чем их делал? Я специально подгонял сэмплы под формат ModPlug Tracker'а для поддержки loop'а.
Ну вот в ModPlug'e и делал! Только я пока не все сэмплы родные подставил - сложно на слух. Предстоит ещё работёнка. Закончу - выложу обязательно. И, скорее всего, это будут S3M'ы (там же 8 бит)
3dnews пишут...
Замечательный польский секстет Gameboyzz Orchestra Project создает всю музыку на шести карманных приставках Nintendo Game Boy. Примечательно, что группа спонсируется локальным дистрибьютором продукции Nintendo, польской компанией Lukas Toys.
http://www.gameboyzz.com/
В Б2 в том году был финский фестиваль и там был классный диджей, играющий 8-ми битную музыку как раз на 2-х гба и вертушках.
Люди, только дайте линк нормальный, или выложите куда эту прогу, а то сайтик-то тот тю-тю...
народ ,
я слышал про nano loop для гба, может ктонить рассказать по подробнее.
З.Ы. почему-то не могу запустить саппи