| Разработка и ромхакинг > Ромхакинг |
| (Sega Genesis) Вопрос по оцифровке музыки и речи из WAV в VGM формат |
| (1/1) |
| ivan228747:
Всем здравствуйте, кто читает данную тему. Хочу создать демо с картинкой и оцифрованным звуком (я знаю как конвертировать midi музыку с помощью VST плагина Genny через LMMS), использую для этого VGM_PLAY V3.42. Заранее прошу извинить меня в незнании некоторых аспектов, я в теме ромхакинга ноль. У меня вопрос к знающим людям. Как можно оцифровать звук с расширением WAV в VGM, к примеру речь или музыку. Если я правильно понимаю, то подобный тип звука, который мне нужен, проигрывается через процессор Z80, а чип YM2612 поддерживает только синтезатор, т.е. midi (сами понимаете, при переводе WAV в midi получается каша, речь не разобрать). Т.е. конвертеры, которые я находил, мне непонятны как человеку, не разбирающегося в программировании, сайт convertio.co отказывается работать. Простыми словами, мне нужен результат, представленный фразами юнитов в Дюне 2 (особенно создание хака от Lipetsk(а) с русской озвучкой) и песней "Священная война" в игре Танки 2011. Если кто знает, можете посоветовать программы для оцифровки звука в VGM или объясните как это можно сделать иным способом. Прикреплю ссылки с желаемым результатом. Спасибо https://www.youtube.com/watch?v=TMSkaTG6sLM&t=26s |
| Sharpnull:
В SGDK можно сунуть WAV и он у тебя в роме играет (простой код для воспроизведения). Я делал простую галерею: суёшь картинки и WAV, на выходе ром с переключением картинок и WAV аудио. Ещё делал конвертер видео в ром, но он хуже существующих демок и не доделал до полной автономности. |
| ivan228747:
Привет. Если будет возможность, можешь скинуть прогу которая добавляет картинки и WAV в ром и ту, которая конвертирует видео в ром, будет интересно поиграться. Так к слову, смотрел канал MatteusBeus Retro Sega Game Dev, вместе с оцифровкой звука заинтересовала тематика создания видео как на Sega CD :-). Насчет SGDK, да нужно посмотреть, но пока для меня это мягко говоря необычно, говорю как абсолютный ноль в программировании. |
| lupus:
Sharpnull, в играх, сделанных на SGDK звук в сыром wav или используется какое-то сжатие? И существует ли софт, способный найти звуковые файлы в роме, чтобы можно было заменить потом, хотя бы рукамм? |
| Sharpnull:
Вот проект для картинок + WAV на фоне, нужно будет ставить SGDK, Python 3 и к нему Pillow, всё в readme.txt, давно его писал. Предполагается, что человек умеет менять переменные среды и открывать командную строку от администратора. Проверил в SGDK 1.80, работает. Сегодня добавил сортировку палитры по светлости чтобы самый тёмный был цветом фона, так лучше при использовании 16 цветов, можно отдельно 15 цветов для картинки и фон - чёрный. lupus, в SGDK (как написано в bin/rescomp.txt) есть несколько форматов в зависимости от Z80 драйвера: * PCM - один канал 8 бит signed от 8КГц до 32КГц, весит много и качество не очень при 8КГц, но у меня отдельная сборка для него (full_build_8000hz.bat), т. к. при 8КГц у него размер меньше следующего драйвера. * 2ADPCM - 4 бита и фиксированные 22050Гц, неплохой звук и размер поэтому у меня по умолчанию. * Остальные 4PCM и XGM не использовал в этом проекте, у 4PCM фиксированные 16КГц, а у XGM видимо для эффектов (PCM SFX) на 14КГц при воспроизведении XGM музыки. Аудио не должно сжиматься, поэтому PCM лежит в роме как есть после преобразования к 8 бита и можно открыть в аудио редакторе, только ADPCM сжато. Например, для 8000Гц в Audicity импортировать как Signed 8-bit PCM, 1 канал, 8000Гц и воспроизвести пока не услышишь звук, внизу вкл. отображение текущего положения в сэмплах, что и равно байтам в роме. |
| lupus:
Sharpnull, а заголовки какие-то есть? Я думаю русскую озвучку впихнуть в Life on Mars. |
| Sharpnull:
lupus, SGDK вроде не делает заголовков, потому что в коде указывается частота и размер для PCM драйвера: SND_startPlay_PCM(music_pcm, sizeof(music_pcm), SOUND_RATE_8000, SOUND_PAN_CENTER, TRUE);, где music_pcm - массив const u8 music_pcm[];, а у других драйверов фиксированная частота и больше не знаю зачем заголовок. Функция вида SND_startPlay_PCM() передаёт параметры в Z80 драйвер, так что можно найти её и перехватывать адреса на аудио. Стоит учитывать, что PCM выровнено до 256 байт, а ADPCM до 128 байт. |
| ivan228747:
Sharpnull, Хорошо, сложно, но попробую разобраться. Отдельно благодарю за подробное описание в инструкции. Как правильно понял, что на данный момент нет программ с графической оболочкой, способных самостоятельно конвертировать видео и WAV файлы, к примеру VGM Player, который сам собирает ром из VGM музыки и картинки, причем картинку можно загружать любую, прога сама подгоняет цвета под палитру Genesis. Главное, чтобы нашелся человек, который сможет сделать подобный проект в графической оболочке, получился бы VGM Player на стероидах с возможностью конвертации WAV в VGM и видео в FMV. А то смотрю MatteusBeus Retro Sega Game Dev у него там Akira FMV, Sonic Mania FMV и т.д. и не одного гайда, как сделать подобное демо, спросил автора как это устроено, пока что ответа нет. |
| Sharpnull:
--- Цитата: ivan228747 от 26 Май 2023, 11:14:21 ---Akira FMV, Sonic Mania FMV --- Конец цитаты --- Полная ерунда, единственный смысл в этих демо показать как конкретный человек может что-то сделать. В данном случае используется сжатие, по тайлам и/или по предыдущим кадрам, потому что несжатым не влезет в 4МиБ: 184*104*0.5*2 (байтов на 2 слоя для 1 кадра 31 цвет) * 7.5 FPS * 80 секунд = 11МиБ только на графику. Если конечно он не использовал маппер, в котором можно до 128МиБ, что не спортивно. --- Цитата: ivan228747 от 26 Май 2023, 11:14:21 ---Как правильно понял, что на данный момент нет программ с графической оболочкой, способных самостоятельно конвертировать видео и WAV файлы --- Конец цитаты --- Как и с галерей картинок это тупость, потому что WAV плохой получается, с VGM хотя бы понятно, там слушают звук от конкретного чипа. Есть галерея картинок для NES, где специально сделана каждая картинка с добавлением цветов через спрайты. В моей галерее 16 цветов, можно сделать 31, но будет упираться в кол-во VRAM в некоторых картинках. Поэтому всё индивидуально. UPD: Из полезного я делал на основе галереи тест изображения - обычные разноцветные и с полосками картинки. Был уже такой тест, но там какая-то проблема с совместимостью была. |
| Nik Pi:
Можно WAV файл с правильной герцовкой сделать в VGM через Deflemask. Быстро и не должно вызвать трудностей. |
| ivan228747:
Nik Pi, Вот именно такой результат мне и был нужен. Есть возможность записать видос или пошагово объяснить, как это сделано? Повторюсь, можешь как первокласснику, т.к. я на данный момент полностью непосвященный человек. Качал Deflemask с этого сайта: https://www.deflemask.com/get_legacy/ |
| Nik Pi:
Смотри, тут всё просто: Во-первых, тебе стоит подготовить свой файл. В идеале- вав файл с частотой 22050-32000 герц. Более высокое качество он не кушает, или кушает, но играет либо слишком быстро, либо слишком медленно. Думаю, такие параметры можно задать в каком-нибудь онлайн-конвертере, вроде этого: https://online-audio-converter.com/ru/ Затем открываешь дефлемаск и видишь это: Красным выделено то- куда жмакать. Потом когда нажал- вылезет это: Красным выделено то- куда жмакать. Потом когда нажал- выбираешь свой вав файл. Когда выбрал, будет это: Красное- кнопка "плэй", чтобы послушать как звучит. Синее- настройки. Крути всё это, пока результат тебя не устроит. Когда настроешь- нажми на кнопку, которая поставит семпл (синее. У них ноты немного по-другому, чем у нас пишутся) И НЕ ЗАБУДЬ НАБРАТЬ ЦИФРАМИ ТО, ЧТО ВЫДЕЛЕНО КРАСНЫМ!!!! БЕЗ ЭТОГО- СЕМПЛ НЕ БУДЕТ ВОСПРОИЗВОДИТЬСЯ!!!!! Ну и после всех этих махинаций- можешь замедлять такт, чтобы полностью семпл проигрывался, ну или добавлять новые строки. Интерфейс там понятный, думаю это не должно тебе составить труда :) И запомни; семплы ставь ТОЛЬКО НА ШЕСТОЙ КАНАЛ. ДРУГИЕ КАНАЛЫ СЕМПЛЫ ИГРАТЬ НЕ БУДУТ. Желаю удачи ;) |
| Starscream666:
Приветствую (Если тема ещё актуальна) :hi: Пару месяцев назад я заинтересовался записью музыки на картридж Sega Genesis, и возможно ли впихунть туда песню со словами, целиком. Я для начала быстро разобрался с конвертацией midi файлов в vgm (по средствам программы midi2vgm, так скажем всё в один клик), а потом создал ром через программу VGM_PLAY V3.42. Результат, то что и хотелось, просто изображение на бэкграунде и музыка. Но всё же хотелось видеть полноценную песню со словами. Набрёл на данный форум, посмотрел инструкцию по конвертации через DefleMask (Инструкция крайне полезная, большой респект :thumbup: ), но вопросы остались и результат тоже не очень, да и Дэфлмаск ведёт себя странно. Решил я конвертировать песню (продолжительность 3 минуты), через Adobe Audition из mp3 файла преобразовал трэк в формат wav и занизил там же герцовку до 32000, в дэфлмаск создал сэмпл по инструкции, что бы вся композиция проигрывалась полностью, я увеличил Base Time, Rows до 208 (чисто под эту песню посчитал) и Pattern Matrix, всё чики-пуки, трэк играет от начала до конца. Собственно Дэфлмаск это всё отказывается сохранять, после нажатия Save VGM ничего не происходит, просто виснет походу. Попробовал сохранить просто без увеличения строк и паттернов, небольшой кусочек песни, сохраняет, но VGM весит почти 6мб. Так вот, возможно делаю что-то не так или нет смысла пытаться конвертировать песню большую, или стоит как то уменьшит размер исходного wav файла? Буду признателен если найдётся ответ. |
| SeregaZ:
попробуйте эту самую герцовку снизить еще больше. до 11khz. и я вот не помню может ли дефлемаск 8битные сэмплы... или там только 16 минимально. приставке надо 8битные. |
| Starscream666:
:cool: Спасибо за подсказку, при конвертации файла из mp3 в wav, указал битрейт 8бит и герцовку снизил до 11kHz, что на выходе дало файл wav минимального размера, так сказать "зашакалил" нормально. А вот с DefleMask у меня походу проблемы, возможно оперативки не хватает, ноут слабый. При смене параметра, например Base Time, программа просто не сохраняет трэк в VGM. Но удалось перехитрить, подобрал нужные параметры, не трогая Base Time и быстренько сохранил трэк. Потом попробовал создать ром через VGM_PLAY V3.42, композиция подгрузилась, изображение встало. На эмуляторе Ром запускается, песня длительностью 3:09 воспроизводится полностью. Потом протестирую на реальной консольке. |
| Навигация |
| Главная страница сообщений |