Автор Тема: Замена музыки рома Sega Genesis  (Прочитано 10197 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Silver_Shadow

  • Пользователь
  • Сообщений: 2778
  • Пол: Мужской
  • Ниндзя-гопник
    • Steam
    • Youtube
    • Просмотр профиля
Замена музыки рома Sega Genesis
« : 28 Июль 2009, 23:10:49 »
Какими инструментами можно заменить музыку в роме Sega Genesis. (Если это конечно возможно) Мне надо заменить только музыку.
Ром для замены музыки выбрал Shinobi 3.
Инструменты, читал я тут некоторые темы:
1. Своя голова
2. Гугль
3. Goldwave - как сказал один человек, только как?
4. Win Hex и Асемблер - вроде как я понял для графики

Еще увидел один сайт с ресурсами


Есть что нибудь полезное там? Сии ресурсы с Хакинг Кат и emuxhaven.net
Некоторые форумчане вероятно меняли музыку на ромах Sega Genesis, не могли бы поделится алгоритмом как это делается?
Т.е. нужен для это Асемблер или ВинХекс, или только редактор звука. Нужно ли распаковывать ресурсы, какие ресурсы редактировать, с каким расширением, на какие команды обратить внимание, и какие вносить надо.
И насколько долго по времени?
Я так немного программирую на C++ и Visual Basic. Ну я думаю, я пойму немного в коде -)

Оффлайн Smoke

  • Пользователь
  • Сообщений: 3430
  • Пол: Мужской
  • Get Serious!
    • Steam
    • Просмотр профиля
Re: Замена музыки рома Sega Genesis
« Ответ #1 : 28 Июль 2009, 23:16:42 »
Silver_Shadow, какую именно музыку хочешь заменить? Голоса(например как в RRR голос Larry) или чисто музыку(сэмплы). Если первое, то поможет GoldWave, надо будет только нужную частоту выставить, если второе, то это будет очень-очень сложно.

Оффлайн Silver_Shadow

  • Пользователь
  • Сообщений: 2778
  • Пол: Мужской
  • Ниндзя-гопник
    • Steam
    • Youtube
    • Просмотр профиля
Re: Замена музыки рома Sega Genesis
« Ответ #2 : 28 Июль 2009, 23:21:16 »
Smoke,
Ну вообще-то второе....то бишь музыку фоновую
Что неужто так сложно? какие идеи на этот счет?

Добавлено позже:
Ну вообще я трудолюбивый если что-то интересно, так что могу работать до потери пульса

Оффлайн Smoke

  • Пользователь
  • Сообщений: 3430
  • Пол: Мужской
  • Get Serious!
    • Steam
    • Просмотр профиля
Re: Замена музыки рома Sega Genesis
« Ответ #3 : 28 Июль 2009, 23:31:44 »
Ну, я примерно знаю как строятся эти сэмплы. Там идут очереди из 6-ти инструментов, т.о. получается мелодия. Но чтобы ее изменить, придется сначала искать сами процедуры проигрывания. По ним найдутся сэмплы. Поэтому надо еще ассемблер M68k знать. Еще вроде в разных играх эти сэмплы могут по разному строится(процедуры проигрывания разные). Я добавлял музыку из мк1 в мк2, но там одинаковые плееры музыки и я ее просто перенес. Хотя искал нужный код долго и перелопатил очень много данных при этом. Можно конечно найдя сэмплы попробовать подобрать мелодию вручную побайтно, но это очень геморно, практически нереально на практике.

Оффлайн Silver_Shadow

  • Пользователь
  • Сообщений: 2778
  • Пол: Мужской
  • Ниндзя-гопник
    • Steam
    • Youtube
    • Просмотр профиля
Re: Замена музыки рома Sega Genesis
« Ответ #4 : 28 Июль 2009, 23:38:39 »
Smoke,
Ясно, есть 6 инструментов. И процедуры проигрывания. Как код процедуры в МК выглядит? И как ты по нему сэмпл нашел(а также как код выглядит). И искал ты их через ассемблер M68k? И в каком смысле там одинаковые плееры? Там что в роме еще плеер есть?
Последний вопрос, сами эти сэмплы имеют расширения, или они выглядят как код в программе?

Добавлено позже:
Да и еще как понять подобрать мелодию побайтно?
« Последнее редактирование: 29 Июль 2009, 13:47:23 от Silver_Shadow »

Оффлайн Silver_Shadow

  • Пользователь
  • Сообщений: 2778
  • Пол: Мужской
  • Ниндзя-гопник
    • Steam
    • Youtube
    • Просмотр профиля
Re: Замена музыки рома Sega Genesis
« Ответ #5 : 29 Июль 2009, 11:44:14 »
нашел подобную тему, и из изречение Segaman-а

Я знаю как его заменить(хакинг). Берешь ром открываешь в Хексе. Ищешь 0603 или 0703. Когда нашел смотри совпадает он с примером заголовка внизу поста или нет, если нет ищешь дальше, если да смотришь, какой системой она обрабатывается. Если 68k то word(2байта) перед 0603(0703) должен быть меньше 8000. Если больше то Z80. Там уже посложнее будет. Короче теперь, когда мелодия найдена ищем его местоположение т.е.
89650: 054C 0603 0202 ...
Ищем 00089650 когда нашли смотрим, там впереди и/или сзади него должны быть такие адреса не превышающие размер рома
Пример
0008 9028 >0008 9650< 0008 9BCD 000B 4A12

Все эти поинты идут ко всем мелодиям. Берешь свою мелодию кидаешь в конец рома, а затем вместо местоположения той мелодии, которую хочешь заменить, вписываешь поинт на твою мелодию в конце рома.
Пример:
0008 9028 >0010 0000< 0008 9BCD 000B 4A12

А с случаями с Z80 я не сталкивался, но скажу одно, что word-y там задом наперед и с добавлением 8000 т.е. 2B DC => DC 2B => 5C 2A, и если в этом случае он еще и прикреплен к банку(основе) т.е. банк 60000, point 2B DC => 65C2B
bank 88000, point 2B DC => 8DC2B.
да и незабудь после замены checksum починить, для этого есть прога fixchecksum

Пример заголовка
054C 0603 0202 04BE   0000 0030 DCBC 0112
80B8 0208 DCB8 026C   DCD8 0320 BCB0 03AE
088C 0406 B0DC 0440   BOAC
054C-поинт на голоса(voices)

Что нибудь наподобие этого?

Добавлено позже:
Ну еще нашел хороший сайт по посту Мифистофеля
http://bhlady.narod.ru/references.htm
« Последнее редактирование: 30 Июль 2009, 10:38:41 от Silver_Shadow »

Оффлайн chameleoncyborg

  • Пользователь
  • Сообщений: 1578
  • Пол: Мужской
  • Комбатист
    • Youtube
    • Просмотр профиля
Re: Замена музыки рома Sega Genesis
« Ответ #6 : 29 Июль 2009, 12:05:10 »
Silver_Shadow, вот бы ещё кириллицей он писал... :-\

Оффлайн Smoke

  • Пользователь
  • Сообщений: 3430
  • Пол: Мужской
  • Get Serious!
    • Steam
    • Просмотр профиля
Re: Замена музыки рома Sega Genesis
« Ответ #7 : 29 Июль 2009, 12:48:05 »
Silver_Shadow, да, наподобие этого кое-что есть. Только малость посложнее будет. Сейчас привести пример не могу, буду вечером напишу обязательно примерчик из мк2  :)

Оффлайн Silver_Shadow

  • Пользователь
  • Сообщений: 2778
  • Пол: Мужской
  • Ниндзя-гопник
    • Steam
    • Youtube
    • Просмотр профиля
Re: Замена музыки рома Sega Genesis
« Ответ #8 : 29 Июль 2009, 13:32:15 »
Smoke,
Круто, спасибо =) Сам начну изучать пока доки по ссылке http://bhlady.narod.ru/references.htm
Как я понел одной из основ является 16ричный код, я более менее с ним знаком, т.к. на досе вырос. Ну я думаю изучение ассемблера за неделю продвинусь.
Тоже почитал, и еще один вопрос возник, допустим я нашел сэмпл, мне нужно заменить его на свой файл, который в формате mp3. Каким образом его вписывать туда, или надо просто как ресурс добавить? И конвертировать его надо в какой-то другой формат? И еще вопрос о размере, какой максимальный размер рома может быть, и есть ли ограничение по объему какого-то mp3 файла на 1 сэмпл? Или же сколько хочешь столько вставляй?

Оффлайн Smoke

  • Пользователь
  • Сообщений: 3430
  • Пол: Мужской
  • Get Serious!
    • Steam
    • Просмотр профиля
Re: Замена музыки рома Sega Genesis
« Ответ #9 : 29 Июль 2009, 18:46:47 »
Цитата: Silver_Shadow
Тоже почитал, и еще один вопрос возник, допустим я нашел сэмпл, мне нужно заменить его на свой файл, который в формате mp3. Каким образом его вписывать туда, или надо просто как ресурс добавить? И конвертировать его надо в какой-то другой формат?
Как из мп3 сделать сеговскую мелодию я к сожалению не знаю. Segaman может знает, попробуй у него спросить.
Цитата: Silver_Shadow
И еще вопрос о размере, какой максимальный размер рома может быть, и есть ли ограничение по объему какого-то mp3 файла на 1 сэмпл? Или же сколько хочешь столько вставляй?
Чтобы ром запустился на реальной приставке и на эмуле Kega Fusion размер рома должен не превышать 4мб. Ограничение на размер сэмпла я даже и не знаю. Да и не так важно это, мелодия же это набор сэмплов => их просто большее кол-во будет при необходимости.

Цитата: Silver_Shadow
И в каком смысле там одинаковые плееры? Там что в роме еще плеер есть?
Плеер это я так называю группу процедур, которые проигрывают музыку. :)
Цитата: Silver_Shadow
Последний вопрос, сами эти сэмплы имеют расширения, или они выглядят как код в программе?
Нет, сэмплы выглядят как набор бессмысленных байтов.

loc_40488:                              ; CODE XREF: sub_40478+4j
                lsl.w   #2,d0
                lea     (dword_38022).l,a1
                adda.w  d0,a1
                movea.l (a1),a1
                move.w  ($FFFFB192).w,d0
                sub.w   0(a5),d0
                add.w   d0,d0
                adda.w  d0,a1
                moveq   #0,d0
                moveq   #0,d1
                move.b  (a1)+,d0
                move.b  (a1)+,d1
                cmpi.b  #$FF,d1
                bne.s   loc_404BA
                tst.b   d0
                beq.s   loc_404B6
                move.w  d0,2(a5)

loc_404B6:                              ; CODE XREF: sub_40478+38j
                moveq   #0,d0
                moveq   #0,d1

loc_404BA:                              ; CODE XREF: sub_40478+34j
                tst.w   $A(a5)
                bne.s   loc_404FA
                tst.w   8(a5)
                beq.s   loc_404F2
                move.b  d1,d2
                lsr.b   #1,d2
                cmpi.b  #$7C,d2 ; '|'
                bcc.s   loc_404F2
                moveq   #0,d3
                move.b  d0,d2
                move.b  d1,d3
                lsl.w   #8,d3
                or.b    d2,d3
                andi.w  #$1F0,d3
                bne.s   loc_404EE
                moveq   #0,d2
                move.b  6(a5),d2
                lsl.w   #1,d2
                or.b    d2,d0
                lsr.w   #8,d2
                or.b    d2,d1

loc_404EE:                              ; CODE XREF: sub_40478+66j
                clr.w   8(a5)

loc_404F2:                              ; CODE XREF: sub_40478+4Cj
                                        ; sub_40478+56j
                move.b  d0,4(a5)
                move.b  d1,5(a5)

loc_404FA:                              ; CODE XREF: sub_40478+46j
                move.b  d1,d2
                lsr.b   #1,d1
                cmpi.b  #$7C,d1 ; '|'
                bcc.s   loc_40514
                roxr.b  #1,d2
                roxr.b  #1,d0
                andi.b  #$F8,d0
                beq.s   locret_40512
                move.b  d0,6(a5)

locret_40512:                           ; CODE XREF: sub_40478+94j
                rts
Это часть плеера музыки в мк2, нужная инструкция это lea     (dword_38022).l,a1. По ней идет загрузка адреса сэмплов в регистр а1. То есть метка dword_38022 и есть место в роме($38022) где лежат указатели на сэмплы.
dword_38022:    dc.l $38C8E, $38C90, $38C9C, $38CA0, $38CA6, $38CAA, $38D12
                       dc.l $38D2E, $38D5E, $38D78, $38DF8, $38E2E, $38E36, $38E3E
                       dc.l $38E46, $38E7C, $38E96, $38F00, $38F08, $38F22, $38F26
                       dc.l $38F6C, $38F86, $38FA2, $38FD8, $39014, $39082, $39092
Это часть указателей. Самый первый($38D2E) как бы имеет порядковый номер 0, следующий 1, ну и т.д. При построении мелодий как раз и используются номера этих сэмплов. Размер мелодии всегда кратен 6, т.к. там чередуются серии из 6-ти инструментов. Вот к примеру мелодия:
dc.w 3, 4, 0, 0, 0, 0, 0, 0, $C, $B, $D, 9, 0, 5, 6, 0, 0, 9  ; в роме по адресу $38590

Оффлайн Silver_Shadow

  • Пользователь
  • Сообщений: 2778
  • Пол: Мужской
  • Ниндзя-гопник
    • Steam
    • Youtube
    • Просмотр профиля
Re: Замена музыки рома Sega Genesis
« Ответ #10 : 30 Июль 2009, 10:33:13 »
Smoke,
Круто =) Но и в то же время тяжело) А как ты потом другую мелодию туда вписал?

Добавлено позже:
оператор lea это (Load Effective Address) Загрузка эффективного адреса
а dword как я понел это тип значения оператора переопределения.
А как ты понел что это имено адрес сэмплов? Что на это указывает? Сам адрес 38022?
Или же об этом показывает еще начало кода плеера? Если так можешь засветит начало кода? -)

Цитата
А как ты потом другую мелодию туда вписал?
Разве надо mp3-шник дизасемблировать, и код в это место вставлять?

И еще вопрос (надеюсь я тебя не сильно загружаю  :) )
Что все работу проводить, надо сам ром, через ассемблер открывать, или же через дисасемблер?


Добавлено позже:
Цитата
Размер мелодии всегда кратен 6
Как это в коде показано? -)

Добавлено позже:
P.S.
chameleoncyborg,
Я исправил на кирилицу пост Segaman-a
« Последнее редактирование: 30 Июль 2009, 10:36:44 от Silver_Shadow »

Оффлайн Smoke

  • Пользователь
  • Сообщений: 3430
  • Пол: Мужской
  • Get Serious!
    • Steam
    • Просмотр профиля
Re: Замена музыки рома Sega Genesis
« Ответ #11 : 30 Июль 2009, 12:57:58 »
Цитата: Silver_Shadow
А как ты потом другую мелодию туда вписал?
Ну, я не заменял мелодии, а добавлял. Из МК1 копировал сэмплы и дописывал на них указатели в их массив. Потом также и мелодию составлял из этих сэмплов.
Цитата: Silver_Shadow
а dword  как я понел это тип значения оператора переопределения.
Почти, dword_38022 это так IDA метку назвала. 38022 потому что смещение по которому находится данная метка в роме -- $38022. А dword потому что по этой метке идут данные типа word.
Цитата: Silver_Shadow
А как ты понел что это имено адрес сэмплов? Что на это указывает? Сам адрес 38022?
Почти простым методом тыка :) Ну, и еще я знал, что у каждой мелодии есть свой порядковый номер(как у сэмплов, что я в пред. посте писал), т.к. с помощью него указывается какая мелодия будет проигрываться. Поэтому искал массивы данных в которых адреса прописаны. Нашел что-то подобное, начал там мусорить. Смотрю -- кое-где музыка исчезла, ну думаю, нашел :)
Цитата: Silver_Shadow
Разве надо mp3-шник дизасемблировать, и код в это место вставлять?
мп3 если побайтно вставить, ничего не выйдет. Это ж совсем разные форматы :)
Цитата: Silver_Shadow
Что все работу проводить, надо сам ром, через ассемблер открывать, или же через дисасемблер?
Вообще по-хорошему надо дизассемблировать ром с помощью IDA Pro, так хоть ром читабельный вид примет. В хекс-редакторе неудобно все это смотреть. А вот изменения небольшие можно и в нем делать. Просто чтобы получить полностью дизассембленный файл, который потом компилятором будет собираться без проблем, надо много чего сделать(из-за одного загона иды).
Цитата: Silver_Shadow
Как это в коде показано? -)
Кол-во пар байтов кратно шести в мелодии.
dc.w 3, 4, 0, 0, 0, 0, 0, 0, $C, $B, $D, 9, 0, 5, 6, 0, 0, 9   ; дизассембленный вид
0003 0004 0000 0000 0000 0000 0000 0000 000С 000B 000D 0009 0000 0005 0006 0000 0000 0009 ; в байтовом виде

Оффлайн Silver_Shadow

  • Пользователь
  • Сообщений: 2778
  • Пол: Мужской
  • Ниндзя-гопник
    • Steam
    • Youtube
    • Просмотр профиля
Re: Замена музыки рома Sega Genesis
« Ответ #12 : 30 Июль 2009, 16:56:58 »
Smoke,
Ладно пока начну, искать сэмплы и мелодию, попутно изучая hex и ассемблер. Попробую найти Сегамена, вдруг он чо знает про mp3 файлы(хотя я больше прихожу к мысли что туда их засунуть не получится)

Цитата
Просто чтобы получить полностью дизассембленный файл, который потом компилятором будет собираться без проблем, надо много чего сделать(из-за одного загона иды).
А что за загон иды?

Оффлайн sergi

  • Пользователь
  • Сообщений: 1651
    • ВКонтакте
    • Просмотр профиля
Re: Замена музыки рома Sega Genesis
« Ответ #13 : 30 Июль 2009, 18:56:23 »
mp3 можно переконвертить в wav и играть их :-\

Оффлайн Silver_Shadow

  • Пользователь
  • Сообщений: 2778
  • Пол: Мужской
  • Ниндзя-гопник
    • Steam
    • Youtube
    • Просмотр профиля
Re: Замена музыки рома Sega Genesis
« Ответ #14 : 30 Июль 2009, 22:42:11 »
mp3 можно переконвертить в wav и играть их :-\
В каком смысле? т.е. wav можно вставить?

Оффлайн Smoke

  • Пользователь
  • Сообщений: 3430
  • Пол: Мужской
  • Get Serious!
    • Steam
    • Просмотр профиля
Re: Замена музыки рома Sega Genesis
« Ответ #15 : 31 Июль 2009, 14:11:00 »
Цитата: Silver_Shadow
А что за загон иды?
Там она одну инструкцию малость не так пишет как это надо компилятору. Размер ее получается больше и множество коротких переходов может не уместиться в свои диапазоны. И следовательно ром скорее всего не соберется.
Цитата: Silver_Shadow
В каком смысле? т.е. wav можно вставить?
Можно оцифрованные звуки вставлять с помощью GoldWave. Но они будут очень много весить, и качество будет не ахти. Так что этот вариант подходит только для коротких звуков.

Оффлайн Segaman

  • Пользователь
  • Сообщений: 3240
  • Пол: Мужской
  • Blast Processing!
    • Youtube
    • Просмотр профиля
Re: Замена музыки рома Sega Genesis
« Ответ #16 : 01 Август 2009, 21:49:22 »
Pro mp3 neznaju, esli ktoto znaet kak rabotaet mp3 mozhno budet i shtonibud' pridumat', a tak mozhno toka wav maximum v 22khz 16bit. u menja kak raz driver est', toka ja im nepol'zovalsja i ne znaju kak on rabotaet, no u mja gdeto manual valjalsja magu dastat', toka ehto budet drudojomko a znachit i ne skora. pishi v lichju razberjomsja. prosto u meoja opera na tele paletela, v zakladli ne zahodit a na novuju $ nuzhny

Оффлайн Silver_Shadow

  • Пользователь
  • Сообщений: 2778
  • Пол: Мужской
  • Ниндзя-гопник
    • Steam
    • Youtube
    • Просмотр профиля
Re: Замена музыки рома Sega Genesis
« Ответ #17 : 02 Август 2009, 23:43:35 »
Segaman,
Ясно, если что мануал найдешь кидай в личку или сюда -)

P.S. Кстати не дадите маленькую вводну как засовывать туда wav -файлы?

Оффлайн sergi

  • Пользователь
  • Сообщений: 1651
    • ВКонтакте
    • Просмотр профиля
Re: Замена музыки рома Sega Genesis
« Ответ #18 : 03 Август 2009, 19:13:00 »
mp3 не потянет сега скорее всего, его и 486 то еле тянет, там же распаковываются данные вычислений много

проще ADPCM сделать - алгоритм попроще - принцип - передаются не абсолютные значения сигналов а только их разница, т.е. получается сжатие 4:1 - wav допустим весит 1 мегабайт, ADPCM будет весить всеголишь 256 килобайт при том же качестве и дискретизации, ну сходство не абсолютное конечно, но на слух не слышиться особая разница - думаю многие видели такие файлы с расширением wav но размером с mp3 и при этом там довольно качественная и долгая песня игралась - это и есть ADPCM - их разных много вариантов, ну Майкрософтовский обычно на винде юзают - собственно к нему и стоит обратится ;)

А принцип как сделать ориентировочно я так вижу:
есть исходный уже файл, вы его частями берете ну там по 256 байт можен 1024 и также кусками в память кладете уже как распакованный wav, далее синтезатор его играет, короче синтезатор играет то что в конкретном участке памяти лежит а уж откуда его возьмете это ваше дело

можно попробовать сначала просто wav из картриджа в память кусочками и играть его, как будет результат то уже жать исходник и также кусочками правильно распаковывать

Ну или сами алгоритм сжатия предумайте без потери качества - вдруг придумаете и сможете 30 минутные композиции жать до 4-х мегабайт при частоте дискретизации 22 килогерца, вам нобелевскую премию дадут ;)
« Последнее редактирование: 03 Август 2009, 19:22:05 от sergi »

Оффлайн Segaman

  • Пользователь
  • Сообщений: 3240
  • Пол: Мужской
  • Blast Processing!
    • Youtube
    • Просмотр профиля
Re: Замена музыки рома Sega Genesis
« Ответ #19 : 07 Август 2009, 23:50:56 »
Mozno perepisat' z80 driver esli takovoj imeetsja, esli zhe net, to napisat', kotoryj budet chitat' WAV iz svoej pamjati. predpolozhim iz A1200-A1A00. I napisat' drajver na 68k shtob tot pereovodil vash format, bud' to mp3, wav ili szhatyj wav ili eschjo kakaja-hren' i vykladyval ego po adresu A1200, a potom zapuskal z80 i tot proigryval ego. kogda on zakonchit povtorit'. srazu govorju - mne takoe ne po silam, ja prosto v ehtom dele sharju

Оффлайн sergi

  • Пользователь
  • Сообщений: 1651
    • ВКонтакте
    • Просмотр профиля
Re: Замена музыки рома Sega Genesis
« Ответ #20 : 08 Август 2009, 00:10:33 »
Ну мне это не упирается лично, но идею подал так сказать
в инете ссылки есть ну или могу дать алгоритм как конвертить туда сюда

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3265
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Замена музыки рома Sega Genesis
« Ответ #21 : 13 Август 2009, 01:24:24 »
я за разгон+mp3 со 100метрами адресацци  :)

а то изучая семплы можно точно белый халат получить..да и врядли получится что-то стоящее написать. 

вообще не понимаю почему все хаки ограничиваются оригинальной железкой., оно конечно приятно... но флэш-карты есть у единиц; лучше представьте какой брутальный хак мона было бы забабахть при разгоне мц86 до 1ггц  :lol:

Оффлайн sergi

  • Пользователь
  • Сообщений: 1651
    • ВКонтакте
    • Просмотр профиля
Re: Замена музыки рома Sega Genesis
« Ответ #22 : 13 Август 2009, 08:14:48 »
Проще свой ком собрать - некоторые не флешки делают а прям свои игровые платформы, пишут для них эмуляторы и продают по 11 штук - один перец знакомый хвастался

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3265
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Замена музыки рома Sega Genesis
« Ответ #23 : 18 Август 2009, 23:29:36 »
ну что решили?

я тут подумал кому не лень, может сделает какую-нить прикольную сборку генса?  я думал неплохо бы и музыку новую в пихнуть (в хак RRR'a).

вот что-то вроде разогнаного Gens'a(53mhz MK68), только еще чтобы 100метров держал или вроде того. (и Z80 тоже хакнуть небось нужно , переделать проц памяти добавить),  DAC или как он там сделать чтобы 44кгц держал., ну еще пару процев мона запихнуть-заэмулить и через них там mp3 чтобы крутило.   ну и остального до кучи всё что хакается.




Оффлайн Silver_Shadow

  • Пользователь
  • Сообщений: 2778
  • Пол: Мужской
  • Ниндзя-гопник
    • Steam
    • Youtube
    • Просмотр профиля
Re: Замена музыки рома Sega Genesis
« Ответ #24 : 18 Август 2009, 23:48:25 »
Еще в процессе обучения ассемблера, я чото в последнее время заленился
Цитата
А принцип как сделать ориентировочно я так вижу:
есть исходный уже файл, вы его частями берете ну там по 256 байт можен 1024 и также кусками в память кладете уже как распакованный wav, далее синтезатор его играет, короче синтезатор играет то что в конкретном участке памяти лежит а уж откуда его возьмете это ваше дело
Допустим есть у мен wav, а дальше каким образом его разделять и сувать в ром?

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3265
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Замена музыки рома Sega Genesis
« Ответ #25 : 18 Август 2009, 23:51:39 »
Допустим есть у мен wav, а дальше каким образом его разделять и сувать в ром?
копи-пастом небось. а разделять программа будет. кусками хавать. только в таком кач-ве оно нафиг не нуна.

Оффлайн Smoke

  • Пользователь
  • Сообщений: 3430
  • Пол: Мужской
  • Get Serious!
    • Steam
    • Просмотр профиля
Re: Замена музыки рома Sega Genesis
« Ответ #26 : 19 Август 2009, 10:32:33 »
Цитата: Ti_
вот что-то вроде разогнаного Gens'a(53mhz MK68), только еще чтобы 100метров держал или вроде того. (и Z80 тоже хакнуть небось нужно , переделать проц памяти добавить),  DAC или как он там сделать чтобы 44кгц держал., ну еще пару процев мона запихнуть-заэмулить и через них там mp3 чтобы крутило.   ну и остального до кучи всё что хакается.
Да ну, это не прикольно. На хардваре-то уже не запустится...

Silver_Shadow, можно трекерную музыку конвертировать в музыку для YM2612 и в ром вставлять, вместе с Сегаменовским драйвером. Ждем когда он мануал напишет, как конвертить правильно.

Оффлайн sergi

  • Пользователь
  • Сообщений: 1651
    • ВКонтакте
    • Просмотр профиля
Re: Замена музыки рома Sega Genesis
« Ответ #27 : 19 Август 2009, 11:03:47 »
Каким копипастом, прогру нужно писать и драйвер который будет уже зажатый файл играть

качество будет 22 килогерца, в принципе можно 18, просто это на размер влияет ну будет немного хуже mp3 и моно, но на слух не отличите

тогда можно хоть песни вставлять будет с нормальным качеством - минута музыки это будет гдето 1 метр весить или даже меньше

просто раз это не аппаратнаяфича то будет проц напрягаться, а раз он будет напрягаться то возможны если в игре использовать задержки и замедления

1024 это какбы стандартное разделение на пакеты для проигрывания, вообще там идет по 256 байт т.е. нижние FF в синтезаторе с поддержкой ADPCM округляются - он берет сам по 256 байт, распаковывает до 1024 и играет, потом следующие берет и т.д.

файл будет монолитным но его сжать будет невозможно - он и так пожатый будет

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3265
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Re: Замена музыки рома Sega Genesis
« Ответ #28 : 19 Август 2009, 12:55:03 »
Каким копипастом, прогру нужно писать и драйвер который будет уже зажатый файл играть
он спросил про WAV,  а он несжатый правильно? вот я и написал засунуть не разделяя.

Добавлено позже:
Да ну, это не прикольно. На хардваре-то уже не запустится...
фуллскрин-аддон всё равно не совместим с реальностью)).

Добавлено позже:
качество будет 22 килогерца, в принципе можно 18, просто это на размер влияет ну будет немного хуже mp3 и моно, но на слух не отличите
ну да немного, потому что будет не mp3 а что-то хуже, а 22кгц на слух очень сильно отличается от 44кгц.

Добавлено позже:
тогда можно хоть песни вставлять будет с нормальным качеством - минута музыки это будет гдето 1 метр весить или даже меньше

просто раз это не аппаратнаяфича то будет проц напрягаться, а раз он будет напрягаться то возможны если в игре использовать задержки и замедления
ну минута-метр , это уже радует.  к тому же у нас 10метров доступно, оказывается эмуляторщики ввели миф о лимите в 4метра.

ну если МК68, то в нашем эмуле он разоганан уже.

Добавлено позже:
ADPCM
Ну мне это не упирается лично, но идею подал так сказать
в инете ссылки есть ну или могу дать алгоритм как конвертить туда сюда
тут кто-то батлсити писал на C,  может есть готовый код для C, конвертнет его и всё.

Оффлайн sergi

  • Пользователь
  • Сообщений: 1651
    • ВКонтакте
    • Просмотр профиля
Re: Замена музыки рома Sega Genesis
« Ответ #29 : 19 Август 2009, 13:41:08 »
Вот IMA ADPCM - хароший ADPCM можно сказать стандартный

http://wiki.multimedia.cx/index.php?title=IMA_ADPCM

там С есть код

просто желательно код для Z80 сделать, т.е. M68K ложит кусочек файла ну чтобы он кратен 256 байтам был в определенную память, и говорит Z80 чтобы он его играл, а тот не спрашивает как играть - тупо начинает из памяти воспроизводить этот кусочек, ну подогнать под обновление экрана там 50-60 герц, т.е. чтобы кусочка хватало до следующего обновления или по секундам - не знаю как точно реализовать это во временном режиме, скорее всего привязка к региону приставки будет по развертке ну и это нужно оптимизировать на 2 режима будет чтобы не замедляло и не убыстряло музыку

ну и все - если M68K будет этим заниматься то соответственно не будет игра идти т.к. он будет музыку играть - для этого второй проц и нужен

вообще ADPCM используется во многих приставках PS2 например т.е. простой алгоритм приемлимое качество 22 килогерца это очень харошее качество ;)