Welcome, Guest. Please login or register.


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

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: SID lejátszó
« Reply #555 on: 2017.February.28. 00:04:03 »
megalmodtam a tutit, az összes variaciora legeneraljuk előre a digi lejátszó ciklust,nem bontjuk szét a vezerlest, mivel megúsztuk az önmódosító kódot, és oda update-eljuk be az értékeket, amit majd később meg is hívunk a következő vezerlesig. Ja és így nem kell jatszadozni az idozitesekkel sem, mert időtartamra a negyszogjel lejátszó rutin is olyan hosszú lesz, mint a többi.

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 #556 on: 2017.February.28. 00:14:12 »
megalmodtam a tutit, az összes variaciora legeneraljuk előre a digi lejátszó ciklust,nem bontjuk szét a vezerlest, mivel megúsztuk az önmódosító kódot, és oda update-eljuk be az értékeket, amit majd később meg is hívunk a következő vezerlesig. Ja és így nem kell jatszadozni az idozitesekkel sem, mert időtartamra a negyszogjel lejátszó rutin is olyan hosszú lesz, mint a többi.

áááá
előre ki kell elemezni a sid-et, és olyan lejátszót generálni, ami a lehetséges szólamokhoz a nick/ay megfelelő csatornáit használja (zaj, 4szög).
:)
Vigyázat! Szektás vagyok! :)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: SID lejátszó
« Reply #557 on: 2017.February.28. 10:56:29 »
Ahogy számolgatok, talán picit gyorsabb az LD (HL),xx, INC L .

Négyszögjelnél valójában a másik megoldás tűnik gyorsabbnak (4 ciklus különbség), de annak a használata növelné a kód méretét. Viszont kimaradt az INC IXL. :oops: Azonban ha jól látom, a DE regiszter már nem használt, ezért címezhetné az a delaytbl-t az IX helyett, így még a PUSH IX/POP IX is megtakarítható lenne.

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: SID lejátszó
« Reply #558 on: 2017.February.28. 11:00:48 »
Négyszögjelnél valójában a másik megoldás tűnik gyorsabbnak (4 ciklus különbség), de annak a használata növelné a kód méretét. Viszont kimaradt az INC IXL. :oops: Azonban ha jól látom, a DE regiszter már nem használt, ezért címezhetné az a delaytbl-t az IX helyett, így még a PUSH IX/POP IX is megtakarítható lenne.
Igen, észrevettem tegnap én is, az új kódban benne van már, és a DE-s címzés is, viszont a legújabba, az előre legenerált 8 digi lejátszó rutinhoz már nem is kell az se, ebbe kezdek bele ma :)
Az a tervem, hogy 8000-8800h-ra teszem a digi lejátszó rutinokat az inicializáló rutinjukkal együtt, mindegyik kerek 100h-n fog kezdődni, így könnyen meg lehet hívni, nem kell foglalkozni az időzítésekkel, mert csak a méretük változik majd, a futási idejük ugyanaz lesz, mert elhagyom az LD BC,4000h-t , helyette az LD B,40h-t használom, így a lejátszó is gyorsul 13 ciklust.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: SID lejátszó
« Reply #559 on: 2017.February.28. 12:03:22 »
Nem tudom, ez hasznos-e, de ha sok az előre generált kód és táblázat, akkor azok lehetnek -raw -m2 -blocksize 8192 tömörített formátumban is, és a decompressDataBlock kicsomagolhatná a 8000h-9FFFh területre (a 2-es szegmenst átmenetileg belapozva a 3. lapra) a hangminták generálása előtt. Így a dacTable tárolásához sem kellene külön RLE formátum ha 8800h kezdőcímre kerül.

Az ilyen módon tömörítendő kód külön forrás file-ba kerülne (org 8000h és a végén nullákkal feltölteni hogy a méret 8192 legyen), a különböző lejátszó változatokat makrók generálhatnák, és a dacTable beépítéséhez elég lenne egy egyszerű include "dactable.s".

Szerk.: valami ilyesmire gondoltam (bár ez nem teljes vagy optimális megoldás):
[ Guests cannot view attachments ]
« Last Edit: 2017.February.28. 13:14:13 by IstvanV »

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: SID lejátszó
« Reply #560 on: 2017.February.28. 13:12:27 »
Nem tudom, ez hasznos-e, de ha sok az előre generált kód és táblázat, akkor azok lehetnek -raw -m2 -blocksize 8192 tömörített formátumban is, és a decompressDataBlock kicsomagolhatná a 8000h-9FFFh területre (a 2-es szegmenst átmenetileg belapozva a 3. lapra) a hangminták generálása előtt. Így a dacTable tárolásához sem kellene külön RLE formátum ha 8800h kezdőcímre kerül.

Az ilyen módon tömörítetendő kód külön forrás file-ba kerülne (org 8000h és a végén nullákkal feltölteni hogy a méret 8192 legyen), a különböző lejátszó változatokat makrók generálhatnák, és a dacTable beépítéséhez elég lenne egy egyszerű include "dactable.s".

Szerk.: valami ilyesmire gondoltam (bár ez nem teljes vagy optimális megoldás):
Szerintem hasznos :) , mert így már a lejátszó mérete is a sokszorosára duzzad.
Ilyesmire gondoltam én is a végső verzióban, nem ennyire átgondolva ;), csak annyira, hogy nem legenerálom a lejátszó rutinokat, hanem mindig csak kicsomagolom,a 0-val való feltöltés, meg ilyenek akkor jöttek volna, ha belefutok a hibákba :lol:

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: SID lejátszó
« Reply #561 on: 2017.February.28. 15:21:43 »
Vagy mi lenne, ha a vezérlő rutinból hívnánk meg 3x vagy akár többször JP-vel, és DE'-ben lenne a visszatérési cím?

Ezt eddig nem vettem észre, de nem rossz ötlet, bár ennek már 632 byte a tömörített mérete:
[ Guests cannot view attachments ]
Össze kellene hasonlítani az egyszerűbb változattal, hogy valóban hallhatóan jobb-e.

Szerk.: ez így valójában nem jó, az INC E-k helyett egyenletesebben elosztva kellene futtatni a sidSynth ciklust, és nem a végén egyszerre 194-szer.
« Last Edit: 2017.February.28. 15:32:24 by IstvanV »

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: SID lejátszó
« Reply #562 on: 2017.February.28. 16:13:20 »
Ezt eddig nem vettem észre, de nem rossz ötlet, bár ennek már 632 byte a tömörített mérete:
Össze kellene hasonlítani az egyszerűbb változattal, hogy valóban hallhatóan jobb-e.

Szerk.: ez így valójában nem jó, az INC E-k helyett egyenletesebben elosztva kellene futtatni a sidSynth ciklust, és nem a végén egyszerre 194-szer.
Húúú, nagyon szofisztikált a megoldásod, tetszik, én nekiestem a favágó módszerrel, aminek talán annyi előnye lehet, hogy néhol picit gyorsabb lehet.
Az INC E-s megoldást még a nem "generált" lejátszóra gondoltam, nem tudom a "generáltnál" érdemes-e szétbontani a dolgokat, elméletileg ennek már "sokkal gyorsabbnak" kéne lennie. Meg gondolkoztam a visszatérésen, és kb 40 ciklust enne meg az ugrás a rutinra, előtte a DE megadása, majd a JP (HL)-es visszatérés, az EXX-ekkel, és EX DE,HL-lel megfűszerezve, megéri ez a sok elpazarolt idő? (és ezt 3x)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: SID lejátszó
« Reply #563 on: 2017.February.28. 16:43:12 »
Az INC E-s megoldást még a nem "generált" lejátszóra gondoltam, nem tudom a "generáltnál" érdemes-e szétbontani a dolgokat, elméletileg ennek már "sokkal gyorsabbnak" kéne lennie. Meg gondolkoztam a visszatérésen, és kb 40 ciklust enne meg az ugrás a rutinra, előtte a DE megadása, majd a JP (HL)-es visszatérés, az EXX-ekkel, és EX DE,HL-lel megfűszerezve, megéri ez a sok elpazarolt idő? (és ezt 3x)

Nem biztos, hogy megéri, ezért is ajánlottam először csak az egyszerűbb 50 Hz-es változatot, majd azzal összehasonlítani a "bontott" megoldást, hogy valóban eredményez-e javulást.

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: SID lejátszó
« Reply #564 on: 2017.March.01. 08:49:35 »
Én erre jutottam tegnap, lehet benne még sok hiba, és nincs benne a digi lejátszó rutinok 8000h-ra másolása, és még pár digi update-elő  LD (xxxx),a-t le lehet cserélni LD L,low addr .LD (HL),x-re majd.

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: SID lejátszó
« Reply #565 on: 2017.March.01. 10:51:32 »
Mi történt, reggel láttam még egy tegnap esti hozzászólást, már nem, letörölted?

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: SID lejátszó
« Reply #566 on: 2017.March.01. 11:07:01 »
Mi történt, reggel láttam még egy tegnap esti hozzászólást, már nem, letörölted?

Az a megoldás, amit most töltöttél fel, jobbnak tűnik, ezért beépítettem és hamarosan elkészül a frissített csomag.

Offline geco

  • EP addict
  • *
  • Posts: 7082
  • Country: hu
    • Támogató Támogató
Re: SID lejátszó
« Reply #567 on: 2017.March.01. 11:30:15 »
Az a megoldás, amit most töltöttél fel, jobbnak tűnik, ezért beépítettem és hamarosan elkészül a frissített csomag.
Biztos?
Lehet jobban szól a 3 részre bontott változat a bonyolultabb visszatérés ellenére is, én is arra gondoltam, hogy meg kéne csinálni a két verziót, és összehasonlítani :)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: SID lejátszó
« Reply #568 on: 2017.March.01. 11:46:16 »
Lehet jobban szól a 3 részre bontott változat a bonyolultabb visszatérés ellenére is, én is arra gondoltam, hogy meg kéne csinálni a két verziót, és összehasonlítani :)

Az még nem "bontott" változat volt. :oops: Mindenesetre ez az 50 Hz-es verzió már nagyjából működik és kb. 500 ciklust fogyaszt a verzérlés, a lejátszási frekvencia 10588 Hz (lehetne 10494 is és 7 ciklussal gyorsabb vezérlés):

[ Guests cannot view attachments ]         (frekvencia javítva)

Szerk.: nem jól számoltam a frekvenciát, valójában csak 335 vagy 338 ciklus egy hangminta.
« Last Edit: 2017.March.01. 12:58:48 by IstvanV »

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: SID lejátszó
« Reply #569 on: 2017.March.01. 13:20:38 »
Lehet jobban szól a 3 részre bontott változat a bonyolultabb visszatérés ellenére is

Most próbálkoztam azzal is, de egyelőre nem igazán vált be (vagy hibás). :oops: