Поделитесь плиз куском кода для загрузки и запуска мода в GS. Сорри время поджимает, разобраться и искать некогда, а работу выпустить срочно надо ;)
Вид для печати
Поделитесь плиз куском кода для загрузки и запуска мода в GS. Сорри время поджимает, разобраться и искать некогда, а работу выпустить срочно надо ;)
http://opensourcezx.untergrund.net/a...ex_gs_src.html
Добавлено через 4 минуты
"LDMD3"
ну это уже лучше ;) а то разгребать кучу исходников как-то не очень весело...
Добавлено через 2 минуты
мдя... вот если бы исходниках было бы хоть пару комментариев, то было бы куда гораздо понятнее :(
Добавлено через 24 минуты
это работа с портами GS ? а почему бы не сделать полную выборку через BC ? дабы не было шараханий данных по портам ? o_OКод:sendcom out (187),a
waitcom in a,(187)
rrca
jr c,waitcom
ret
А что там понимать?
Музыка разбита на 4 куска запакованых хрустом.
Грузится, распаковывается, кидается в GS.
В таблице указана длинна блоков в секторах.
почему бы не сделать полную выборку через BC ? дабы не было шараханий данных по портам ? o_O
спасибо это и так понятно :) меня порты интересуют
Добавлено через 1 минуту
и точно не будет проблем на ATM, Pentagon 2.2, Scorpion и других машинах с памятью больше чем 128к ?
Вообщем разобрался я с сорцами NewArt'а , нашел ещё доку на сайте скорпионов, сделал свой вариант, с некоторым количеством комментариев:
однако есть нюанс :( к сожалению не могу сейчас проверить на реале, но вот в EmuzWin всё играет как-бы нормально, но с небольшими претензиями к звуку, в Unreal Speccy (пробовал и 0.3.6 и версию 0.3.7) если ставить эмуляцию Z80 трек жутко тормозит и хрипит :( если поставить BASS - то проблем никаких нет :rolleyes: чё это за хрень не ясно :(Код:
DEVICE ZXSPECTRUM128
EMPTYTRD "bin/playmod.trd"
org #6000
; general sound:
gsCommand equ #bb ; write: #bb - command port
gsStatus equ #bb ; read: #bb - register status
gsData equ #b3 ; read/write - data port
;-------------------------------------------------------------------------
start
ld a,#01
out (#fe),a ; here we go!
ld a,#f3 ; warm reset general sound
call sendCommand
ld a,#03
out (#fe),a ; inialized
ld hl,modBegin
ld de,modEnd-modBegin
call uploadModule
ld a,#04
out (#fe),a ; module uploaded !
in a,(gsData) ; get module Number
out (gsData),a ; select module ?
call playModule
ld a,#05
out (#fe),a ; module selected ?
ei
loop halt
jr loop
;------------------------------------------------------------------------
playModule ld a,#31 ;#31 Play module
call sendCommand
ret
;------------------------------------------------------------------------
uploadModule ld a,#30 ; #30 Load Module
call sendCommand
ld a,#d1 ; #d1 Open Stream
call sendCommand
getNext ld a,(hl)
waitReady in b,(c)
jp p,ready
in b,(c)
jp m,waitReady ; wait for ready general sound
ready out (gsData),a
inc hl
dec de
ld a,d
or e
jr nz,getNext ; loop for the next data
finalize in b,(c)
jp m,finalize ; wait for upload last byte
ld a,#d2 ; #d2 Close Stream
call sendCommand
ret
;------------------------------------------------------------------------
sendCommand ld c,gsCommand
out (gsCommand),a ; command port
waitResponse in a,(gsStatus) ; wait ready
rrca
jr c,waitResponse
ret
;------------------------------------------------------------------------
org #8000
modBegin
;incbin "rc\noname.mod"
incbin "rc\output.mod"
modEnd nop
end
;SAVESNA "bin\snapshot.sna",#6000
SAVETRD "bin/playmod.trd","player.C",start,modEnd-start
LABELSLIST "C:\My ZX\emuTools\unreal/user.l"
может кто код на реале с GS запустить и сказать играет нормально или есть траблы ?
Запустил на реале. Никакой разницы с Unreal-ом (0.37.1, Z80-эмуляция GS).
Это потому, что GS-ный плеер плохо(неправильно) играет чип-модули.
-------------
Чип-модули лучше всего играет Z-Player 3.2 (by Muchkin).
Но даже в нём этот модуль немного подхрипывает на втором паттерне.
хмм...а у меня головобол работает..
и доп память юзает причём..
это совершенно бесполезно + кучу времени потратишь зря. а если у тебя что-то не работает, то надо искать проблему в правильности подключения.. ну или еще в чем-то другом.
он загружает не свой плеер, а разлупивалку.
тема с хрипом чип-модулей уже настолько избита, что я даже не знаю, стоит ли повторять еще раз о том, что надо делать...
самое простое: загрузите вы модуль через тот же Z-Player, выйдите, загрузите Riff-Tracker и сохраните модуль с нормальными сэмплами. всё!
п.с. НИКОГДА НЕ ПРОВЕРЯЙТЕ В ЭМУЛЯХ РАБОТУ GS ЧЕРЕЗ BASS.DLL!!!
Непонятность с данным конкретным модулем объясняется тем, что в нем используются октавы, которые ГС не умеет проигрывать. Так что, какой плеер не используй, как его в ГС не грузи, все равно просто так без поллитры он нормально не заиграет :) Плюс в нем еще пара чипованых сэмплов есть, но как их забороть psb уже поведал.
ну значит будем это обсуждать в другой теме :rolleyes:
подробнее можно, что это такое и в чём разница между тем что прошито и тем, что загружается ? вообще рад бы увидеть пример на asm :cool:
верю, но если бы у меня был GS с тех самых времён как только он появился на свет, возможно я и был бы в курсе, а так увы спустя столько времени решил выпустить поделку и столкнулся с кучей непоняток :(
тоесть разлупиловка корректирует семплы ? :eek:
это был чисто риторический вопрос :eek:
Добавлено через 1 минуту
ну в примере что я выкладывал далеко не тот модуль ;) но суть немного стала ясна.
в gs загружалка мода только засасывает модуль и как есть кладет его в память. после загрузки модуля происходит его инициализация, т.е. вычисляется, где лежат какие сэмплы, паттерны.
загружалка в Z-Player'е после всего этого просматривает модуль на наличие коротких сэмплов, делает эти сэмплы длиннее за счет копирования и переинициализирует плеер.
технически - это код на асме Z80, который загружается в озу gs и запускается.
большого смысла нет, проще исправить модуль и запаковать - меньше мороки. но
1. можно раскопать плеер
2. можно подглядеть в новую прошивку gs (там разлупыватель встроен)
3. в любом случае код этого разлупывателя не так прост.
но ведь поиск хотя бы по форуму никто не отменял?
просто меня добивает вот такое:
-ребята, че-то у меня модуль в гске тормозит
-аа, наверное там глюк в плеере, в прошивке много глюков
-а че делать?
-а фиг знает (как вариант - выкинуть гс/пользоваться басс.длл в эмуле)
получается, если такие люди как Evgeny Muchkin перестанут вновь и вновь обьяснять что это, как это можно обойти (хотя кучу раз уже это описано), то вы все бросите? или будете проводить исследования, из-за чего одни моды правильно играют, а другие нет? а потом еще статью напишете в новый журнал о своих открытиях? даааа... имхо, если уж взялся за что-то, то соизволь изучить немного информации по этому самому.
п.с.извиняюсь за такой тон, но... наболело...
я всё понимаю, и сам не люблю когда по двести раз переливают из пустого в порожний, но поверь мне прежде чем отвечать в таком извиняющимся тоне достаточно было просто обратить внимание на одну мааааленькую строчку:
то можно было действительно просто помочь, а не учить жизни. Например, Evgeny Muchkin так и поступил, взял и потратил кусок личного времени на разбирательство с этим модом, за что ему огромное спасибо. Потому что это важно здесь и сейчас, а будет у меня время позже могу и разобраться и статью написать. Обидно когда люди путают нубские вопросы с действительной просьбой о помощи и любой вопрос встречают в штыки не хочешь, не отвечай, не трать свои нервы и чужое время.Цитата:
cорри время поджимает, разобраться и искать некогда, а работу выпустить срочно надо
Всем спасибо тема закрыта!