1

Temat: losowy pokey

mam glupie pytanie: czy pokey generuje dzwiek w pewien sposob losowy?
po odpaleniu kilku (kilkunastu) razy muzyki (msx.xex - powinna byc w zalaczniku), dzwiek basa jest zupelnie inny (sa chyba 3 albo 4 rodzaje brzmienia). Kiedys myslalem ,ze to wina emulacji pokey'a, ale jak sie okazalo na real atari jest to samo...
mysle ,ze nie moze byc to wina player'a RMT, poniewaz z reguly program za kazdym razem powinien dzialac tak samo, w tym wypadku za kazdym razem dziala/gra inaczej...

troche to dziwne, bo na emulatorze, jesli sie odpali program przez load executable, pamiec jest czyszczona (oprocz tej pod romem) a rejestry i inne znaczniki ustawiane zawsze tak samo (chyba :>), wiedz teoretycznie program (przynajmniej na emulatorze) powinien dzialac za kazdym razem identycznie.

kiedy robilem pare testow w RMT, okazalo sie ,ze brzmienie tego bass'a  zmienia sie za kazdym razem, kiedy na tym samym kanale jest grany instrument, ktory ma ustawione COMMAND1 (Play frequency $XY), niestety to i tak w niczym nie pomaga bo, to jedynie zmienia brzmienie (ktore i tak jest inicjowane za kazdym razem losowo), a nie ustawia je...

czy ktos jest w stanie wytlumaczyc, czemu pokey, za kazdym razem odgrywa podany plik inaczej? ;)
moze dlatego ,ze pokey pelni funkcje timera i brzmienie dzwieku jest zalezne wlanie od tego timera?
moze istnienie jakis magiczny rejestr, ktory "wyzeruje" ustawienia pokey'a, dzieki czemu za kazdym razem bedzie grac tak samo ;)
pomocy! bo ja juz tego nie kumam :>

PS: w zalaczniku, powinny byc jeszcze dwa pliki wav, w ktorych wyraznie slychac o co mi chodzi ;)

zalacznik tutaj: http://www.bryza.net/~toldi/pokey.zip

2

Odp: losowy pokey

Jeśli się nie mylę a jest to możliwe dźwięk jest tworzony przez pokeya na zasadzie próbkowania licznika polynomial z częstotliwością wpisywaną do AUDFn - dlatego też chyba to jest powodem że w trakcie basu w zlaeżności od stanu licznika może on być próbkowany w różnym jego ustawieniu przez co fala na wyjściu może mieć różny kształt.
Zauważyłem to już kiedyś z Fosterem w trakcie odtwarzania muzyki z Endless Dreamu w części z bezierem. Ten sam problem tam występuje.

Spróbuj zrestetować liczniki pokeya przez wpis czegokolwiek niezerowego do $d209 oraz wcześniej ustaw wszystkie licznik AUDF na taką samą wartość.
Można poeksperymentować z tym po jakim czasie od wpisania do $d209 zaczynasz grać muzykę. np kilka razy sta $d40a. (o ile mój wywód teoretyczny jest poprawny)

Powinno to spowodować że za każdym razem bas będzie startował tak samo.
Jak nie to znaczy że nie są restetowane liczniki low level i nic już nie da się z tym zrobić.

3

Odp: losowy pokey

Sądzę, że miałem identyczny problem. Wpisanie #3 do $d20f rozwiązało moje problemy. Najlepiej jest to robić tuż przed odświerzeniem rejestrów dźwiękowych $d2xx (0-7) $d21x (0-7). Po tym zabiegu wszystko brzmi zawsze tak samo, tzn. takie jest moje odczucie.

Swego czasu miałem dylemat, czemu MPT odtwarzało czyściej dźwięki, aniżeli CMC oraz Delta.

Poza tym polecam lekturę "DeRe Atari", czy coś w tym stylu. Tam jest opisane dokładniej jak działa POKEY, z tego co pamiętam.

4

Odp: losowy pokey

hmm wlasnie przetestowalem oba sposoby (tzn z resetowaniem timer'a i z skctl), jesli zrobilem to dobrze, to niestety nie dalo skutkow...

przedchilka dostalem odpowiedz od Raster'a, pozwole sobie ja tutaj wkleic, mam nadzieje ,ze sie na mnie nie obrazi ;)

I think, that behaviour you decribe does POKEY chip itself.
POKEY contains many of timers and merged signals which can
interfere and it's a one of reasons for it.

IMHO, this different basses are containing in a lot of games
and programs, it isn't possible to manage it.

POKEY has one register for "reset" timers, but storing to AUDC/AUDF
registers proceed subsequently with no exactly identical intervals
(according to the branch operation in code, IRQ/NMI interrupts,
memory refreshing, etc.) and it does this "variable sounds" effect.

I was searching for solution of this long ago - I tried to reset
pokey registers periodically, but entire sound output was awful with it
(it's logical - all the sounds' waveforms was breaked and restarted
repeatedly).

I'm sorry.

Greetings, Radek, raster/c.p.u.

czyli wynika, ze ten problem raczej nie jest do rozwiazania :(
pytanie tylko czy klopot z "losowym" brzmieniem wystepuje rowniez w
innych trackerach przy distortion C na Atari...

5

Odp: losowy pokey

.. ale ja mam dokładnie odwrotne doświadczenia...

Ja właśnie zapisuję zawsze #3 do $d20f przed każdym zapisem do rejestrów i takowych dystorsji nie mam. Gdy przestaję resetować liczniki, pojawiają się dystorsje.

6

Odp: losowy pokey

.. ale ja mam dokładnie odwrotne doświadczenia...
łaśnie zapisuję zawsze #3 do $d20f przed każdym zapisem do rejestrów i takowych dystorsji nie mam. Gdy przestaję resetować liczniki, pojawiają się dystorsje.

I'm sorry, I can be wrong in my POKEY tests...  :oops:
Your findings are interesting for me.
Please, tell me more.
You say, that there is sufficient to put #3 to $d20f before every storing to all registers $d200-$d208 ? and how long pause can be between #3->$d20f and storing to all registers?
Thanks for your answer in advance.

http://raster.atari.org

7

Odp: losowy pokey

You say, that there is sufficient to put #3 to $d20f before every storing to all registers $d200-$d208 ?

Yes.

and how long pause can be between #3->$d20f and storing to all registers?

SubPlayInstrument
    lda    #3
    sta    $d20f
   
    ldy    SampleNumTmp
    lda    Notes+0
    clc
    adc    (InstrCh0Adr),y
    tax
    lda    FreqTbls+FRQ_TBL_INDEX,x
    sta    AUDF1

    lda    (InstrCh1Adr),y
;    lda    #$03
    ora    #DISTORTION
    sta    AUDC1
   
    inc    SampleNumTmp
    rts

Will send also an email.

8

Odp: losowy pokey

Will send also an email.

I'd like to test it, but no ATR file was attached to your message you sent me.

But, I was testing it yesterday and I have some new findings.
Bass tones in Sv2k4inv song has this strange varations under PC RMT tracker and also under Atari800emu (with sound qualitiy set to level 1) only. On real Atari there isn't any problems and basses sounds constantly equally. Also in Atari800 emu with sound quality set to hi level 2 (new POKEY sound engine) it is all right.
So, I think it's a POKEY (1 ? old POKEY sound engine) emulation problem.  :rolleyes:

http://raster.atari.org

9

Odp: losowy pokey

hmm.. r u sure?

i testing it on real atari before yesterday and is the same problem on it...
yes the basses sounds rather equally in the whole song (except the bass tone that sound like bass2.wav ;) ), i mean the sound of bass do not change when playing the song (it is possible if u use on the same channel instrument with command 1), but if u run sv2k4fin(or msx.xex) several times u should notice that the bassline sound different even than u set Sound Quality to 2,7(Atari800Win Plus 4.0) or run on real atari...

10

Odp: losowy pokey

hmm.. r u sure?

Currently I'm not sure with anything...  :?

I tried also add #3->$d20f before set of storing values to AUDF/AUDC, but I noticed no differences.  :?

http://raster.atari.org

11

Odp: losowy pokey

Ja właśnie zapisuję zawsze #3 do $d20f przed każdym zapisem do rejestrów

Jesli to coś w ogóle wnosi do dyskusji, to tak właśnie robi Atari BASIC w instrukcji SOUND. Tylko przedtem jeszcze zeruje rejestr AUDCTL.

KMK
? HEX$(6670358)