Разработка и ромхакинг > Программирование
[SMD] Sega Genesis Intro
Zephyr:
Моя 1ая интрошка
http://forum.mirgames.ru/index.php?showtopic=3957
evgeny:
Ну, на чем ты писал мне понятно. Меня вот DAC интересует. Не мог бы ты поделиться исходным кодом ? Интересно... у тебя там даже z80 не используется, как же DAC вывел?
cari:
Где можно скачать Digital Audio Converter???
Zephyr:
cari,
Если для Басика - то конвертировал в 16Mhz 8 Bit Mono - используя
Winamp.
После просто вырезал заголовок используя текстовый редактор Bred 3.
Оставшиеся данные подавал на ЦАП.
*********************************************************
evgeny, держи (с комментариями)
pcmdata: datafile music.PCM,BIN 'load music data
'Turn DAC on
Asm "move.b #$2B,$A04000"
gosub BUSYWAIT
Asm "move.b #$80,$A04001"
'Turn on both speakers
poke &hA04002,&hB6
gosub BUSYWAIT
poke &hA04003,&hC0
'Send PCM data to DAC
asm "move.b #$2A,$A04000"
loopstart:
asm "move.l #0,d3"
for a=1 to 24 ' chunk part
for b=c to d ' from offset to size (offset + 65535)
reload pcmdata
gosub changeoffset
read pcmtest
gosub BUSYWAIT
poke &hA04001, pcmtest
asm "add.l #1,d3"
next
c=a*65535 'chunk offset
d=c+65535 'chunk size
next
BUSYWAIT:
status=peek(&hA04001)
if status.7=0 then return else goto BUSYWAIT
return
changeoffset:
asm
move.l d3,d1
add.l d1,a6
end asm
return
evgeny:
спасибо, будем проверять.
cari:
А где скачать программу для создания музыкального файла??
Zephyr:
cari,
Это поток, не модульное строение. Просто *.wav файл
в формате PCM (Pulse Code Modulation)
16000 Hz 8 Bit Mono. Просто нужно еще заголовок вырезать
(52 байта - я вырезал).
Есть тракер для басика, но он пока 1 канальный вроде.
Есть нормальный тракер от Паскаль О Рама,
но его вроде только чистым асмом реально
подсоединить. Я пока не разбирал.
В планах все...
Mashin:
Zephyr, это какой язык? BasiEgaXorz?
Zephyr:
BasiEgaXorz - это бейсик, но самопальный. Больше на асм похоже.
http://devster.monkeeh.com/sega/basiegaxorz/
Форум
http://devster.proboards22.com/index.cgi
Вообще я собираюсь в ближайшее время статью по нему
написать.
Mashin:
Имхо, лучше про чистый асм напиши.
Zephyr:
По просьбам трудящихся залил исходный код сего "творения".
Пост 4
http://forum.mirgames.ru/index.php?showtopic=3957
Йобан Матич:
Zephyr,
Прикольно, но... Нафиа тебе басик?
FreePascal умеет под m68k компилить. Если написать пару модулей (Добавить новую платформу не так уж и сложно), то можно будет и под сегу кодить. Pascal ты знаешь лучше чем basic, правда?
Если поможешь с инфой по m68k асму могу попробовать написать rtl для sega.
Zephyr:
Йобан Матич,
Да получше. Чтоже нужно порыться немного по сети. Посмотреть
доки, потестить. После выйду с тобою на связь.
PS: спасибо за инфу.
Йобан Матич:
Zephyr,
Беру на себя компилятор и rtl.
Кое-что уже получилось. дня через два буду мучить линкер.
Со временем может напишу свой компилер...
Henty:
Можете меня обругать благим матом, но я так понял, что Йобан Матич хочет сделать компилятор для FreePascal'я чтобы сразу в исходный код Сеги компилить, так? Это было бы неплохо..
Йобан Матич:
--- Цитата: Henty --- но я так понял, что Йобан Матич хочет сделать компилятор для FreePascal'я чтобы сразу в исходный код Сеги компилить
--- Конец цитаты ---
Я себе ГТА поставил, поэтому проект ваременно заморожен.
Вообще лучше сделать транслятор из паскаля в асм. по типу BasiEgaXorz, но только с генерацией меньшего по размеру кода. BasiEgaXorz много мусора генерит.
Во фрипаскале м68к официально уже не поддерживается, а версия 1.0 у меня собираться отказалась.
evgeny:
Вот, тоже кое-что сделал.
http://evgeny1.land.ru/mk3demo.zip
Taven:
evgeny,
Интересно!Только клетчатый фон вызывает отвращение.
ALEX_230_VOLT:
А чё, круто! Тока звук раздражающий и вообще сюжета мало. Можно было бы выдрать из трилогии рассказ о МК (с картинками конечно, начиная со слов Рэйдена и кончая спином с 15 бойцами)
evgeny:
Можно, конечно, а это так, эксперимент со слоями.
Навигация
Перейти к полной версии