Welcome, Guest. Please login or register.


Author Topic: SID lejátszó (Read 249374 times)

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: SID lejátszó
« Reply #225 on: 2017.January.29. 20:15:23 »
A "véletlenszerűbb" zajhoz valójában elég lett volna csak az eredeti rutin végén a JR utasítást módosítani, hogy az LD C, 12h helyett az LD B, C-re ugorjon, azaz ne inicializálja újra a generátort minden táblázatnál. Az 123456h helyett más kezdőérték is lehet, ami eltérő mintát (és talán jobb hangot) eredményez. Az egyszerűbb generátor minden futásnál eltérő kimenetű, mivel az R regiszert használja.
Ezt nem tudtam, ezért gányoltam bele :) De mindjárt megcsinálom az agrós javítást.
Itt eredetileg elég volt a 8 bites véletlenszám is (csak az L regiszterben), a két random hívás (+CALL/RET) szerintem lassabb a régi kódnál. :oops: Azonban az L regiszterben már véletlenszerű érték található a random visszatérésekor.
Itt nekem nem a gyorsaság volt a szempont, csak az, hogy a táblák változzanak. :)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: SID lejátszó
« Reply #226 on: 2017.January.29. 20:24:14 »
8 bites DAC 8 MHz-es CPU frekvencián:
[ Guests cannot view attachments ]

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: SID lejátszó
« Reply #227 on: 2017.January.29. 20:28:14 »
Itt a teszt verzió, egyelőre még nem foglalkoztam a zene átalakítással, úgyhogy csak az egy teszt alanyom van.

A legutolsó snapshotot frissítettem 2.11-esre :)

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: SID lejátszó
« Reply #228 on: 2017.January.29. 20:31:15 »
8 bites DAC 8 MHz-es CPU frekvencián:
Ez sokkal jobban szól, vagy csak a hangereje miatt tűnik úgy?.
Valahogy le lehet kérdezni, hogy van-e DAC csatolva a géphez?
Ha igen, be lehetne tenni auto érzékelősre, ha nem, akkor az elején választhatóra.
« Last Edit: 2017.January.29. 20:37:03 by geco »

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: SID lejátszó
« Reply #229 on: 2017.January.29. 20:37:35 »
Ez sokkal jobban szól, vagy csak a hangereje miatt tűnik úgy?.

Mivel a zene elsősorban négyszögjelet használ, a 8 bites DAC itt talán nem sok különbséget jelent, viszont a 20 kHz-es lejátszási frekvencia valószínűleg igen. :) És valóban hangosabb a DAVE-es verziónál, de az még használhatná a már említett DTM lejátszós megoldást.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: SID lejátszó
« Reply #230 on: 2017.January.29. 20:43:07 »
Valahogy le lehet kérdezni, hogy van-e DAC csatolva a géphez?

Nem tudom, mivel ilyen hardver nem igazán készült egyelőre, vagy csak prototípus lehet valahol. :oops: Zozosoft korábban említett ilyen terveket, de jelenleg a DAC csak az emulátorban létezik, ahol a portjai (F0-F3h) csak írhatók. A 8 bites kimenet kissé bonyolítja a hangerő számítását, négyszögjelnél 3 bittel kell balra léptetni, a táblázat generálásnál pedig módosítani kell a kódot (zajnál a szorzás például nem hagyhatja figyelmen kívül az A felső 2 bitjét).

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: SID lejátszó
« Reply #231 on: 2017.January.29. 20:47:21 »
Mivel a zene elsősorban négyszögjelet használ, a 8 bites DAC itt talán nem sok különbséget jelent, viszont a 20 kHz-es lejátszási frekvencia valószínűleg igen. :) És valóban hangosabb a DAVE-es verziónál, de az még használhatná a már említett DTM lejátszós megoldást.
Elméletileg használja, betettem az inicializálást, és áttértem az A8 AF AC regiszterek írására.
Nem tudom, mivel ilyen hardver nem igazán készült egyelőre, vagy csak prototípus lehet valahol. :oops: Zozosoft korábban említett ilyen terveket, de jelenleg a DAC csak az emulátorban létezik, ahol a portjai (F0-F3h) csak írhatók. A 8 bites kimenet kissé bonyolítja a hangerő számítását, négyszögjelnél 3 bittel kell balra léptetni, a táblázat generálásnál pedig módosítani kell a kódot (zajnál a szorzás például nem hagyhatja figyelmen kívül az A felső 2 bitjét).
Ezek szerint a táblákat is módosítottad a feltöltött snapshoban?
Mert arra gondoltam, ha nem is lehet lekérdezni, választhatóvá lehetne tenni a programban menet közben, igaz erre az időre elhallgatna a lejátszás, oda-vissza lehetne váltogatni ha nem kell mindig inicializálni a DTM-es lejátszáshoz a Dave-et.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: SID lejátszó
« Reply #232 on: 2017.January.29. 20:52:37 »
Ezek szerint a táblákat is módosítottad a feltöltött snapshoban?

Igen, a korábban feltöltött Lua script módosított változatával. A Z80-as kódon legalább 3 helyen kellene változtatni (négyszögjel hangerő, háromszög/fűrész hangerő, zaj hangerő számítása), és talán még a kivezérlésjelzőn is ha az 6 bites értékeket tételez fel.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: SID lejátszó
« Reply #233 on: 2017.January.29. 21:04:16 »
Itt a teszt verzió, egyelőre még nem foglalkoztam a zene átalakítással, úgyhogy csak az egy teszt alanyom van.

Kipróbáltam -maxoffs 16384 paraméterrel újracsomagolva (9788 helyett 8728 byte lett), így is működik, és a régebbi Cybernoid II konverzióval is. :)

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: SID lejátszó
« Reply #234 on: 2017.January.29. 21:09:15 »
jó lenne ha ez a lejátszó kiejelzni hogy mennyi cpu időt visz el
Vigyázat! Szektás vagyok! :)

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: SID lejátszó
« Reply #235 on: 2017.January.29. 21:24:52 »
Kipróbáltam -maxoffs 16384 paraméterrel újracsomagolva (9788 helyett 8728 byte lett), így is működik, és a régebbi Cybernoid II konverzióval is. :)
Szuper :) Amikor még próbálgattam a külömböző értékeket, akkor bugos volt a lejátszó, és töröltem az összeset :oops:
Igen, a korábban feltöltött Lua script módosított változatával. A Z80-as kódon legalább 3 helyen kellene változtatni (négyszögjel hangerő, háromszög/fűrész hangerő, zaj hangerő számítása), és talán még a kivezérlésjelzőn is ha az 6 bites értékeket tételez fel.
Akkor csak az elején választhatóra lehetne megcsinálni, vagy közben is, de akkor hosszabb a várakozás.
Szerintem megpróbálkozom az elején választhatóra.

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: SID lejátszó
« Reply #236 on: 2017.January.29. 21:27:49 »
jó lenne ha ez a lejátszó kiejelzni hogy mennyi cpu időt visz el
Alapból 100%-ot várakozással együtt :D
Úgy kb 80%-ot ha már ki van csomagolva minden, és 100%-ot csomagolás közben 4MHz-en.

Offline endi

  • EP addict
  • *
  • Posts: 7298
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
    • Honlapom
Re: SID lejátszó
« Reply #237 on: 2017.January.29. 21:37:03 »
Alapból 100%-ot várakozással együtt :D
Úgy kb 80%-ot ha már ki van csomagolva minden, és 100%-ot csomagolás közben 4MHz-en.

akkor egy mod player jobb, asszem az kevesebbet visz :)
Vigyázat! Szektás vagyok! :)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: SID lejátszó
« Reply #238 on: 2017.January.29. 21:41:19 »
Elméletileg minden javasolt változtatás kész, az egyik osztó rutinnal szenvedtem sokat, 62500-zal rosszul osztott,kisebb értékekkel jól, aztán lecseréltem, és azóta gond egy szál se :D , meg a sidplay átalakításával.

4 MHz-en jónak tűnik a frekvencia (C5h / 256 a szorzó, és PAL C64 órajelet feltételezve a pontos érték 197.05 lenne), azonban 8 MHz-en néhány százalékkal eltér (95 lesz 98.52 = kerekítve 99 helyett). De ez lehet, hogy csak a mérés pontatlansága.

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: SID lejátszó
« Reply #239 on: 2017.January.29. 21:56:01 »
4 MHz-en jónak tűnik a frekvencia (C5h / 256 a szorzó, és PAL C64 órajelet feltételezve a pontos érték 197.05 lenne), azonban 8 MHz-en néhány százalékkal eltér (95 lesz 98.52 = kerekítve 99 helyett). De ez lehet, hogy csak a mérés pontatlansága.
Elméletileg pontosan kéne számolnia, előbb kiszámolok egy DAVE megszakítás osztót(ez pontatlan, mert a 7812 Hz osztóját a 20h*4-et osztom a processzor sebességével. de ez nem számít), ezzel elosztom a 250 KHz-et, majd ennek az értékével osztom a 256*2*3848,5-ot, majd az eredményt 2-vel, ha van carry, akkor felfelé kerekítek, és a végén betöltöm az A2-A3-ba a kapott DAVE megszakítási osztó - 1 -et.