251

(51 odpowiedzi, napisanych Software, Gry - 8bit)

Zielony:

chyba nie do konca , bo 1 cykl tracimy gdy adres + y przekracza granice strony - jak y=127 i offset strony =127 to nic nie tracimy !
Mam nadziejez ze o to chodzilo

Druga sprawa - pomysł prosty w swojej idei - szum:

Kod:

  lda $84
   adc #0
   sta $84
   lda $80
   adc #0
   sta $80
   and #$00 
   tay
   ldx $d20a,y
selfmod equ *-2

   lda $bf00,x
   sta $d201 

- i proste i logiczne !!! (nie mamy jedynie wpływu na jego czestotliwosc)
ale mozna np dla perkusji go uzyc

Wiec "and #0" moze sie przydac w wielu przypadkach - oczywiscie nie neguje twojego pomyslu na generacje fal ale 2 fale na siebie mozna nalozyc uzywajac 2 kanalow podobnie jak to robi np CMC na zwyklym POKEYu.

Ja bym obstawal za zwiekszona czestotliwoscia odtwarzania.
A co do nieokresowych fal to efekt ten mozna uzyc jako przesównika fazowego - fala musialaby miec 2 okresy (1 na stronie +$000,2 na stronie +$200)
Faktem jest ze niestety rozcyklowaloby to cala procedurke.

No chyba ze playera bedziemy odtwarzac na IRQ np co 2 linie rastra 
a head umiescilbym tylko w lukach miedzy przerwaniami

252

(51 odpowiedzi, napisanych Software, Gry - 8bit)

Zielony:
Sądzę że lepszym pomysłem zamiast mixować 2 próbki na 1 kanał żeby uzyskać dźwięki modulowane jest wprowadzić prosty pomysł o którym pisałem już do tebe:

1. Tablica fali ma być o okersie $7f , czyli 1/2 strony pamięci , i musi być od początku strony !
2.. Fala prostokątna:
:128 dta b($f)
:128 dta b($0)

3.Przykładowa procedura playera:

  lda $84 
   adc #0 
   sta $84 
   lda $80 
   adc #0 
   sta $80
   and #$7f 
   tay 
   ldx $be00,y 
selfmod equ *-2

   lda $bf00,x 
   sta $d201 

4. i w ten prosy sposób wpisując liczbę od 0-$7f do selfmod uzyskujemy 127 krokowy współczynnik wypełnienia fali !!!
$40 - zwykły prostokąt (50/50)
0,$80 - cisza

Sprawdzałem to w praktyce i działa !

253

(51 odpowiedzi, napisanych Software, Gry - 8bit)

Myślę że możnaby było bez jakichś większych problemów dodać



  lda $84
   adc #0
   sta $84
   lda $80
   adc #0
   sta $80
  and #$ff , $7f ,$3f ,$1f ,$0f - można uzyskać różne okesy fali !


   tay
   ldx $be00,y
   lda $bf00,x
   sta $d201

254

(51 odpowiedzi, napisanych Software, Gry - 8bit)

O ja nie mogę - znalazłem plugina do modułów z FC i SoundMona z Amigi - teraz pora na format decription i analiza playera - może uda się odtworzyć mój ulubiony moduł , który był w Ray of Hope w end parcie, którego napisal od nowa Foster.

Może to sie uda

Adres plugina pod win-ampa :
http://hjem.get2net.dk/surfsmurf/

Tam są przykłady , w katalogu FAVFc jest mod pod nazwą :
J.Hippel-R.s.i_theme.fc4

Posłuchajcie tych utworów , może tędy droga so SS2 ???
Większość ma syntezowane fale i efekty

255

(51 odpowiedzi, napisanych Software, Gry - 8bit)

Tebe: mój Email - swiety93@wp.pl - nie wiem dlaczego nie ma go udostępnionego , próbowałem zmienić swoje preferencje tak aby było Święty a nie swiety ale nie mogę zmienić.
Podeślij mi również tablice głośności bo moje jest tragiczna ,a raczej pojawia się problem o którym pisał PECUS - spróbuję w moim playerze ją zmienić i podeślę Ci go.


Ktoś może próbował bawić się odtwarzaniem sampli na PWM-ie ?

Tak jak to robią na C64 z 8 bitowymi lub na starym PC.

To jest tylko sugestia , nie sprawdzana w praktyce.

256

(51 odpowiedzi, napisanych Software, Gry - 8bit)

Chłopaki widzę że trwa zażarta dyskusja więc wstawię swoje zdanie - co do szybkości odtwarzania to kolega Zielony ma racje im szybsze tym lepszy efekt można uzyskać - z tym że z reguły head , player - jak go tam zwał jest odpalany co 1/50 sekundy więc dla jakiegokolwiek efektu podobnego jak w protrackerze nie potrzeba cudów.

Jeżeli chce ktoś aby mu wytłumaczyć podstawowe komendy protrackera to chętnie pomogę.

Tu jest kolejne sprostowanie - żadna komenda protrackera nie ingeruje w sampla a jedynie w jego głośnośc bądź częstotliwość no i oczywiście początek !!! (komenda 9 - sample offset)

Pozostałe efekty robione są przy użyciu 1 lub kilku sampli o np. różnym PWM lub stopniu filtracji.

Pecuś: najprostszy w implementacji jest filtr dolnoprzepustowy, trzeba jedynie kilka-kilkanaście tablic dla filtru.

Wzór na Dolnoprzepustowy filtr wygląda następująco:


y(i)=alfa*y(i-1)+(1-alfa)*x(i)

x(i) - wejscie danych , oznacza biezaca probke danych

y(i) - wyjscie danych

y(i-1) poprzednio odtworzona probka

Alfa - wspolczynnik filtra 0<=alfa<1

PI=3.14159
Fs=44100 :Przykladowa czestotliwosc probkowania (odtwarzania)
F1_LPF=30 :Czestotliwosc graniczna filtru

alfa=exp((-2.0*pi*F1_LPF)/Fs)

Oczywiście przy stałej częstotliwości odtwarzania wystarczy zrobić tablicę Alfa*255 dla określonych częstotliwości - np z krokiem 38 Hz dla czestotliwosci 9600 lub całkiem nieliniową tablicę.

257

(33 odpowiedzi, napisanych Software, Gry - 8bit)

No nie - przecież nie chodzi mi o sterownie żaróweczkami   :evil: ale odtwarzaniem dzwięków przypominających SID-a  - sprawność od 0-50 % przy prawie pełnym zakresie uzyskiwanych częstotliwości POKEYA chyba wystarczy do uzyskiwania ciekawych efektów. Po za tym to nie chcę odtwarzać sampli na PWMie , choć temat jest ciekawy ale wykorzystać to do playera do muzyki!
Eksperymentowłem z playerem do muzyki i efekt jeszcze nie jest taki jakiego do końca się spodziewałem ale wg mnie na tyle ciekawy że warto to wykorzystać. Są przy generacji tego niewielkie zakłucenia ale nie strasznie dokuczliwe.

Po za tym to Atari ma filtry dolnoprzepustowe na przedwzmacnieaczu , a wszystko testowłęm na dużych kolumnach i nie było problemów!


Niech może na ten temat wypowie się jakiś muzyk Atarowski lub lepiej z C64.


Jak ktoś nadal nie wie o co mi chodzi to proszę fragment dokumentacji do SIDa dotycząca rejestrów PWM:

PW LO/PW HI (Registers 02,03)
Together these registers form a 12-bit number (bits 4-7 of PW HI are not used)
which linearly controls the pulse width (duty cycle) of the pulse waveform on
Oscillator 1. The pulse width is determined by the following equation:

PWout = (PWn/40.95) %

Where PWn is the 12-bit number in the Pulse Width registers.
The pulse width resolution allows the width to be smoothly swept with no
discernable stepping. Note that the pulse waveform on Oscillator 1 must be
selected in order for the pulse width registers to have any audible effect. A
value of 0 or 4095 ($FFF) in the pulse width registers will poroduce a constant
DC output, while a value of 2048 ($800) will produce a square wave. [A value of
4095 will not produce a constant DC output].

A jak już jest ktoś dociekliwy to niech sobie zsampluje dźwięk typu SYNTH z Chaos Music Composera i zobaczy jaki ma przebieg !

258

(33 odpowiedzi, napisanych Software, Gry - 8bit)

Sukkor_benoth : ok, normalnie PWM służy do sterowania serwomechanizmami, silniczkami itp. ale posłuchaj jakiejkolwiek muzyki z SID-a to zrozumiesz o co mi chodzi .

tebe: modulacja współczynnika PWM służy j.w ale np. SID od dawna wykorzystuje to do robienia jak w dokumentacji pisze "animującego się dźwięku" - w przypadku CMC takim instrumentem jest SYNTH ale niestety nie masz możliwości wpływu na szybkość i czas modulacji. Tam wynika ona z czegoś innego a dokładnie z efektu "dudnienia".

Oczywiście SID robi to sprzętowo i ma 12 bitowy rejestr do sterowania PWM.


Dokładnie PWM oznacza Pulse WIdth Modulation - czyli modulacja szerokości impulsu - co w praktyce oznacza że w przypadku fali prostokątnej mamy np.

____----____----____----____ 50 % (czyli tyle samo 0 co 1)
lub
_________________________ 0 %

_____--______--_____--____ 25 % wypełnienia

Oczywiście standardowo POKEY ma 50% - czyli na zmianę 0 i pełna głośność. Chodziło mi aby mieć możliwość sterowania przynajminiej od 0-50% w np. 16- 32 krokach co wystarczy do tworzenia ciekawych efektów ala C64. Niestety POKEY nie ma możliwości uzyskania od 50% - 100% poprzez generatory :( wynika to z budowy filtrów.
Jedyną rzeczą jest syntezowanie dźwięku poprzez timery na zasadzie SOFTSYNTHU poprzez sterowanie membramą.

Jak ktoś czegoś nie wie/nie rozumie to pisać a postaram się odpowiedzieć!

Witam , ostatnio przyszedł mi prosty pomysł do głowy jak generować PWM na POKEYU. Na razie moja teoria działa w praktyce.

Pomysł polega na tym żeby osiągnąc modulację współczynnika wypełnienia definiowaną przez użytkownika (czyt. muzyka).

Teoria wygląda następująco

1. Ustawiamy $d208 - na włączenie filtra - z dokumentacji technicznej pokeya wynika że jest on barmką AND między 1 a 2 kanałem.

2. Ustawiamy głośność i zniekształcenie filtrowanego kanału , 2 wyciszamy.

3. Tutaj ustawiamy właściwą częstotliwość kanału bazowego , na 2 kanale ustawiamy maksymalną częstotliwość - wpisujemy 1.

4. Resetujemy liczniki obu kanałów aby wystartowały równo - wpisując coś niezerowego do $d209

5.  Oba zaczynają liczyć razem od nowa  - wobec czego następuje cisza przez 1 okres licznika 1 i 2.

6. Odczekujemy n cykli zegarowych zanim ustawimy zegar 2 na częstotliwość zegara 1.

7. Otrzymujemy regulację wsp wypełnienia !

Rysunek:


1. ___---___---__

2. __---___---___

3. ___-_____-___

1. Fala 1 generatora , 2. Fala 2 generatora 3. Fala po filtrze (sumie)

Przykłądowy listing:

opt l-h+
org $0800

start lda #$8
wt cmp $d40b
bne wt
dec $d01a
sta $d40a

lda #$2     ; filtruj 1 - 2 gim
sta $d208

lda #0
sta $d207
lda #$ef
sta $d203

ldx #$ff   ; ta sama fala na 2 generatorach
stx $d202  ;
lda #1     ; 32 khz na 1
sta $d206  ;

ldy $ff

lda #$ff  ; resetuj kanaly
sta $d209 ; oba startują równo !


wt1 dey
bpl wt1

stx $d206
inc $d01a

lda $ff
clc
adc #1
and #63
sta $ff


jmp start

; jak na razie jeszcze nie wpadłem na wzór jak przeliczyć n w zależności od częstotliwości i wsp. wypełnienia .

Czekam na sugestię

260

(25 odpowiedzi, napisanych Sprzęt - 8bit)

Wydaje mi się że pomysł nie jest zły ale trzeba lepiej zrealizować - tzn nie wszystko poprzez porty ale część buforując magistralę co zwiększy szybkość ok 5-10 krotnie !
Chodzi aby ATARI generował sygnały zegarowe i była buforowana bezpośrenio szyna danych. Przez to operacje I/O będą chodzić na full speed. Można zrobić np. hybryd - część szyny adresowej bezpośrednio z ATARI część z dodatkowego portu - np 6 najmłodszych bitów adresowych z Atari , reszta 6521 - wszystko jest sprwą do przemyślenia.

261

(52 odpowiedzi, napisanych Zloty)

Tarnów jest w lini prostej jakieś nicełe 100 km od Krakowa więc może i ja bym się zjawił. Pora wreszcie poznać ludzi ... :D

262

(23 odpowiedzi, napisanych Software, Gry - 8bit)

Jaskier: Jedynym wyjściem jest zrzutka wszystkich rejestrów POKEYA do pamięci a potem inteligentna procedura rozdziału tego wszystkiego na STEREO wg $d208  - jedyna możliwość zrobienia tego tak żeby wszystko chodziło.

Tu problemem jedynie jest lokacja procedury przerabiającej no i czas trwania - jeżeli wszystko jest co do cykla !


Problemem do przerobienia są jedynie playery które nie odwołują się
bezpośrednio do rej. POKEYA , lub robią to enigmatycznie

np. STA $d180,y a w Y = $81

lub gorzej

STA ($fe),y gdzie w $fe jest $00,$ff-$d2


Oczywiście są to rozważania czysto teoretyczne ! 8)

Po za tym nikt nie wspomniał że przecież któryś player w trakcie odtwarzania mógłby przełączać zegary POKEY-a np z 64Khz na 15 Khz , lub na 1.79 Mhz i wtedy dopiero mielibyśmy jaja  :D na 2 pokeyu .

263

(12 odpowiedzi, napisanych Sprzęt - 8bit)

Są 3 możliwości :

1. to co napisał MCgyver czyli RS232 programowo-sprzętowy - interfejs polegający na zamianie RS - TTL i programowej transmisji .

2. Podłączyć układ 16c450 - 16c750 do Atari (do tego 1 kwarc i 2 układy ttl i konwerter RS-TTL np MAX 232 ) np. do złącza cartridge i napisać prosty sterownik

3. Podłączyć układ 6551 lub 6851 do Atari (praktycznie tylko MAX 232 i kwarc)  i go oprogramować. (problemem może być zdobycie tych układów)

Jak potrzebujesz coś więcej na ten temat to mogę napisać bo mam zrobiony przez siebie programator FLASH na 6510 i 16c450 więc wiem jak to wymixować żeby działało  :D zarówno programowo jak i sprzętowo.

264

(2 odpowiedzi, napisanych Kupię / Sprzedam / Zamienię Atari)

Jeżeli te procki chodziłyby na 4 Mhz i cena byłaby ok 10-15 zł za sztukę to byłbym zainteresowany 2 prockami.  Nie do Atari ale do swojej konstrukcji sterowników na 6502.

265

(18 odpowiedzi, napisanych Scena - 8bit)

grey: masz kontakt do SeaBrush-a , dawinej Maestro ?

Co do starych demek to miło słyszeć że ktoś to podziwiał  :D
W sumie robiliśmy to aby pokazać gościom z C64 że z Atari też można wiele wyciągnąć

266

(36 odpowiedzi, napisanych Zloty)

Ja ze swojej strony chciałbym zapewnić że jeżeli ode mnie na zależeć czy party się odbędzie to zrobię wszystko aby jakiekolwiek demo się ukazało - choćby to miało być jedyne demo na party  :( . Na pewno nie będzie to jakaś kiszka.

A jeżeli chodzi o trailer to chyba jest jakieś nieporozumienie - co on ma przedstawiać - 2 loga i 1 efekt a może to ma być slideshow z efektów dema - głupota :?

267

(18 odpowiedzi, napisanych Scena - 8bit)

Co do ZELAXU to planujemy powrót , ale jeszcze nie wiadomo kiedy , może puścimy jakieś demo na Ornetę , po za tym zamierzamy wypuścić gierkę Cosmic Hero powstałą w 1993 roku , w której trzeba zmienić tylko napisy, po za tym obecnie pracuję nad otwarzaczem muzyczek z C64 na Atari - projekt SID to POKEY

268

(10 odpowiedzi, napisanych Software, Gry - 8bit)

Witam

Co do procedurek jak playery , depakery i inne zrodełka to mogę pomóc..

269

(12 odpowiedzi, napisanych Software, Gry - 8bit)

No wreszcie się odezwał kolega Pazur na forum , to dobrze  :) bo chyba sentyment powrócił , a to cieszy  :D 

Te magiczne kable to 1050 to PC - w inny sposób nie udało mi się odzyskać danych z 2 strony dyskietki (format Enchanced!)

Gierkę puścimy w świat tyle że trochę trzeba zmienić kilka napisów , więc może 2-3 dni.

270

(12 odpowiedzi, napisanych Software, Gry - 8bit)

mam juz po emulem cosmic hero

271

(22 odpowiedzi, napisanych Software, Gry - 8bit)

Spokojnie , jak ktoś może udostępnić pliki exe to chętnie mu podeślę , a co do playerka to robi się i może pod koniec tygodnia coś się urodzi.

Na razie jest kilka przykładów , ma je XXL i Miker

272

(22 odpowiedzi, napisanych Software, Gry - 8bit)

Zdeasemblowałem procedury IRQ i NMI z Mental AGE i okazało się że bas jest syntezowany jak sampel na przerwaniu IRQ Pokeya !
Proawdopodobnie przerwanie generowane jest np. 16 razy szybciej niż wymaga tego częstotliwość basu ale w ten sposób można uzyskać 4 bitowy współczynnik wypełnienia.
W  ten sposób można syntezować falę prostokątną dowolnej częstotliwości o dowolnej głośności , mając 2 liczniki - 1 - ile taktów zegara jest wartość głośności , 2 - ile taktów zegara jest 0.
Z tym że w przypadku powyższym 2licznik=15-1licznik.

Jeszcze za czasów ZELAXu próbowaliśmy syntezować taki bas i się udawało. Niestety z braku czasu (lenistwa) nikt nie napisał do tego edytora i tak zostało.

Tak najprawdopodobniej jest odtwarzana muzyka z mentala.

273

(22 odpowiedzi, napisanych Software, Gry - 8bit)

Może mi ktoś podesłać na maila  "Mental AGE" , chciałbym rzucić okiem na playera ...

Miker: Co ramkę to wyjdzie niestety Vibrato , ale spróbuje np co 5 lini i zobaczę.

274

(22 odpowiedzi, napisanych Software, Gry - 8bit)

Acha , jeszcze jedno - jak ktoś ma pomysł na generację PWM na pokeyu. Chodzi mi o modulację współczynnika wypełnienia , najprostsza metoda to syntezowanie jak sampel , ale może przez szybką zmianę rejestrów POKEYA , np. co linie rastra można uzyskać taki efekt . Nie wiem jak to robią na AY w Spectrumie więc rzucam temat.
Nawet jakieś rozważania mogą być pomocne.

A jakby ktoś chciał się dołączyć do współpracy przy tworzeniu playerka to zapraszam.

275

(22 odpowiedzi, napisanych Software, Gry - 8bit)

Na razie jest procedurka playera , jak ktoś chce posłuchać to mogę mu podesłąć plik exe z muzyką. No problem. Z playerkiem to trzeba się trochę wstrzymać - o 2 Pokeyach też myślałem i jeżeli powstanie jakiś player to będzie to miał jako opcję.