Welcome, Guest. Please login or register.


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

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: SID lejátszó
« Reply #705 on: 2017.March.24. 12:30:41 »
Csomagolt DAC táblázat készítése az itt mért szintek alapján (amik valójában a plus4emu kimenetéről készültek az alábbi programmal, talán célszerűbb lett volna a valódi gépet tesztelni):

[ Guests cannot view attachments ]     (fordítás a sid_conv-hoz hasonlóan)
[ Guests cannot view attachments ]

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: SID lejátszó
« Reply #706 on: 2017.March.24. 13:53:17 »
[ Guests cannot view attachments ]

* tömörített dacTable, így már elfért a régebbi kód ami nem rontotta el a turbókat
* feltételesen fordítható újdonságok:
- keretcsíkozás csak a főprogramban (NO_IRQ_BORDER_FX = 1), 4 ciklus / hangminta gyorsulás
- vezérlés a főprogramban video megszakítás helyett (NO_VIDEO_IRQ = 1), 6 ciklussal gyorsabb, de pontatlanabb az időzítés és nagyobb a kód
- $2B nem dokumentált utasítás használata a hangminta lejátszó rutinban (USE_6502_UNDOC = 1), 4-6 ciklussal gyorsabb
- PWM invertálása ha a magas szint lenne gyakoribb (PWM_AUTO_INVERT = 1)
« Last Edit: 2017.March.24. 14:10:57 by IstvanV »

Offline geco

  • EP addict
  • *
  • Posts: 7217
  • Country: hu
    • Támogató Támogató
Re: SID lejátszó
« Reply #707 on: 2017.March.24. 14:12:02 »
Szép teljesítmény :)

Offline ergoGnomik

  • EP addict
  • *
  • Posts: 1340
  • Country: hu
  • Stray cat from Commodore alley
Re: SID lejátszó
« Reply #708 on: 2017.March.24. 14:26:57 »
Elvileg minden modern PSID fájlban van egy bejegyzés, hogy mely területek biztonságosak. Ezeket érdemesebb összefésülni, mint egyesével végighajtani egy lejátszóban, majd összegezni a futási eredményeket. Szerintem.

Graham/Oxyron készített egy táblázatot az összes lehetséges NMOS 6502 (származék processzor) utasításról. Ebben részletesen elemezve van még az is, hogy melyek a stabil és instabil "illegális" utasítások.

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: SID lejátszó
« Reply #709 on: 2017.March.24. 14:36:36 »
Graham/Oxyron készített egy táblázatot az összes lehetséges NMOS 6502 (származék processzor) utasításról. Ebben részletesen elemezve van még az is, hogy melyek a stabil és instabil "illegális" utasítások.

A táblázat szerint az ANC ($2B) utasítás stabil. Néhány másik is hasznos lehetne, de elsősorban a hangminta megszakításnál fontos minden ciklus, ott az ANC megtakarít néhány 2-3 CLC-t.
« Last Edit: 2017.March.24. 14:40:28 by IstvanV »

Offline geco

  • EP addict
  • *
  • Posts: 7217
  • Country: hu
    • Támogató Támogató
Re: SID lejátszó
« Reply #710 on: 2017.March.24. 15:40:49 »
Az ANC ezek szerint úgy működik, mint z80-on az AND?

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: SID lejátszó
« Reply #711 on: 2017.March.24. 15:48:07 »
Az ANC ezek szerint úgy működik, mint z80-on az AND?

Nem egészen, mert itt a C bit az S másolata lesz, de ebben az esetben az mindig 0, mert a csatornák hangminta értékei 0-63 tartományra korlátozottak.

Offline geco

  • EP addict
  • *
  • Posts: 7217
  • Country: hu
    • Támogató Támogató
Re: SID lejátszó
« Reply #712 on: 2017.March.24. 16:25:33 »
Nem egészen, mert itt a C bit az S másolata lesz, de ebben az esetben az mindig 0, mert a csatornák hangminta értékei 0-63 tartományra korlátozottak.
:lol: oké, értem, mókásak ezek az undokumentált utasítások :)

Offline ergoGnomik

  • EP addict
  • *
  • Posts: 1340
  • Country: hu
  • Stray cat from Commodore alley
Re: SID lejátszó
« Reply #713 on: 2017.March.24. 18:53:18 »
:lol: oké, értem, mókásak ezek az undokumentált utasítások :)
Hát még az, ahogyan működnek! (Nem mindig elérhető az oldal, mintha valami háztáji szerverről futna.)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: SID lejátszó
« Reply #714 on: 2017.March.24. 19:03:43 »
Új D64 file:
[ Guests cannot view attachments ]
[ Guests cannot view attachments ]

A zenék száma 9-ről 15-re növelve (tulajdonképpen lehetne több is, mert most már hiányzó file esetén a program újra az elsőt próbálja betölteni), 1541-es turbó cserélve olyanra, ami hibánál nem lép ki a BASIC-be, néhány egyéb kisebb változtatás.

Szerk.: képernyő kikapcsolás nélküli változat konvertált képpel, így természetesen rosszabb a minőség (7151 Hz), és gyűrűmoduláció sincs:
[ Guests cannot view attachments ]
[ Guests cannot view attachments ]
« Last Edit: 2017.April.01. 12:51:42 by IstvanV »

Offline geco

  • EP addict
  • *
  • Posts: 7217
  • Country: hu
    • Támogató Támogató
Re: SID lejátszó
« Reply #715 on: 2017.April.04. 14:04:25 »
Enterprise SIDBasic legfrissebb verziója bekerült a letöltések közé, lecseréltem az eggyel régebbi verziót :)
Spectrum SIDBasicSP legfrissebb verziója is bekerült a letöltések közé

Tape Encoder tool, segítségével készíthető TAP/TZX file az Enterprise M64 fájlokból, használata
Kiegészítés a spectrum véltozathoz, az Enterprise verzióban leírtakhoz képest.
« Last Edit: 2017.April.04. 15:35:12 by geco »

Offline IstvanV

  • EP addict
  • *
  • Posts: 4822
Re: SID lejátszó
« Reply #716 on: 2017.April.06. 10:52:46 »
A SID lejátszó téma ugyan már nem tűnik aktuálisnak, de a Plus/4 verzióban van még egy-két optimalizálás ami talán hasznos lehetett volna EP-n is. A frekvenciát táblázattal konvertálja (8 bites érték szorzása 8 bites konstanssal = 512 byte méretű táblázat), és a hullámforma/hangerő byte-ot is táblázat segítségével dolgozza fel (amelynek minden eleme a megfelelő hangminta táblázat címe / 256, vagy 0 négyszögjel esetén). Így lehet, hogy  valamivel nagyobb frekvencia lett volna elérhető.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14773
  • Country: hu
    • http://enterprise.iko.hu/
Re: SID lejátszó
« Reply #717 on: 2017.April.06. 11:07:14 »
Így lehet, hogy  valamivel nagyobb frekvencia lett volna elérhető.
Akkor ezt jó lenne beépíteni, ha lehet! :oops:

Offline geco

  • EP addict
  • *
  • Posts: 7217
  • Country: hu
    • Támogató Támogató
Re: SID lejátszó
« Reply #718 on: 2017.April.06. 14:10:39 »
A SID lejátszó téma ugyan már nem tűnik aktuálisnak, de a Plus/4 verzióban van még egy-két optimalizálás ami talán hasznos lehetett volna EP-n is. A frekvenciát táblázattal konvertálja (8 bites érték szorzása 8 bites konstanssal = 512 byte méretű táblázat), és a hullámforma/hangerő byte-ot is táblázat segítségével dolgozza fel (amelynek minden eleme a megfelelő hangminta táblázat címe / 256, vagy 0 négyszögjel esetén). Így lehet, hogy  valamivel nagyobb frekvencia lett volna elérhető.
a 8x8-s táblázattal rontunk a felbontáson, ami a rendes osztással majdnem 15 bit, a táblázattal meg csak 8 lenne, nem?
A táblázatos hangerő/hullámforma bevihető, de lehet ezzel egyidőben meg kéne nézni a gyorsítási lehetőségeket is a megszakítási rutinban, gondolom a kettő együtt közelítené meg a szorzó rutin táblázatos kiváltását.

Offline geco

  • EP addict
  • *
  • Posts: 7217
  • Country: hu
    • Támogató Támogató
Re: SID lejátszó
« Reply #719 on: 2017.April.06. 14:15:23 »
Ha egy full szegmenst használunk a táblának, az már egész jó lehetne.
Vagy a 8bites szorzótáblánál mind a két frekvenciabájtot szorzod és aztán összeadod helyiértéknek megfelelően? (nem néztem a forrást)
És tuti így csinálod, mert ez egy marha jó ötlet :)
« Last Edit: 2017.April.06. 14:19:37 by geco »