Mint laikus kérdezném: ezt nem lehet megoldani automatikusan már a konvertálásnál? Gondolom a táblába mentve van a kitöltési tényező, ami ha nagyobb mint 50%, akkor az értékét automatikusan át lehetne forgatni 50% alá.
Erre a lehetőségre is gondoltam, bár nem tudom, ez rontaná-e a hangot (de ha így is lenne, a DAC felbontása valószínűleg nagyobb probléma
). Az alábbi verzióban még nincs ilyen, de a következőbe megpróbálom majd ezt is beépíteni.
Sőt, a legújabb verzió nem tűnik rosszabnak, vagy csak nagyon picit, mint a Speccys verzió, tök jó lett, pláne ahhoz képest, hogy csak 31 volume szinttel dolgozik
A Spectrumoshoz képest előnye is van, magasabb a mintavételezési frekvencia (most 11084 Hz, ami a CPU idő nagy részét el is fogyasztja), és az EP-shez hasonlóan megszakítás alapú a lejátszás, amivel elkerülhető a zavaró 50 Hz-es torzítás. Tehát a zenétől függően jobb is lehet.
Nem lehetne +4-en native SID kód lejátszás mellett is megcsinálni ugyanezt?
PSID file legyen lejátszható konvertálás nélkül? Itt ugyan kompatibilis a CPU, tehát elvileg meg lehetne oldani, de problémás lehet például a memória kezelés, a hangminta táblázatok mellett nem biztos, hogy marad elég hely amit a PSID-ek nem írnak felül. Bár a jelenlegi verzióban is kb. 40K van fenntartva a bemeneti file és a puffer számára, csak a PSID-ek nem mindig ugyanazt a területet használják. Természetesen így a burkológörbe emulációt is a lejátszónak kellene megoldania.
Csak azért kérdem, mert úgy gondolom, hogy maga a zene lejátszó kód nem eszik sokkal több időt általában , mint maga a kicsomagoló rutin, de lehet rosszul gondolom. (bár belegondolva, hogy a zenevezérlő kód legalább minden 1/50 másodpercben tutira lefut, összességében többet eszik. )
Az file függő lehet, hogy a PSID zenék mennyi CPU időt fogyasztanak, de így mindenesetre bonyolultabb lenne a vezérlés, mert emulálni kellene a burkológörbéket. A mostani változatban kb. 90% a hangminta megszakítás CPU használata, a maradék időben fut minden egyéb, de a 11 kHz-es frekvencia feladásával több idő lenne.
Új D64 verzió:Itt próbálkoztam a kód gyorsításával a vezérlést a főprogramba helyezve, mivel csak minimális időt hagy a megszakítás, az így megtakarított 6 ciklus sem jelentéktelen (törölhető lehetne még a keretcsíkozás is, ami további 4 ciklus). De ennek hátránya is van, folyamatosan figyelni kell a video megszakításra, kicsomagoláskor még sorozatok másolása közben is, és ilyenkor rosszabb a zene időzítése (18.5-21.5 ms közötti idők fordulnak elő stabil 20 ms helyett). Talán visszaállítom a korábbi (egyszerűbb) megoldást és törlöm a keret effektust.
Szerk.: ez a verzió hibás volt a turbós betöltők használatakor, a kernal rutinokkal való "takarítás", bár rövidebb, elrontja ezeket.
Lehetne még optimalizálni nem dokumentált utasításokkal is, de nem tudom, megbízhatóak-e valódi gépen.