Asimo írta:
A programokból kód-visszafejtéssel lehet előbányászni a zenéket. Mivel a hangszóró mozgatásához OUT 254-re van szükség, ezért érdemes a keresgélést ezeknél az utasításoknál kezdeni. Ezeket a zenéket simán a Spectaculator segítségével meg lehetett fejteni.
Szabványos megoldás nincs, de az egyes beep-engine-eken belül már azért nagyjából egyformák. Ez is adhatott alapot a beepola megírására. De azért lehetnek engine-eken belüli eltérések is (verziók). Mondjuk olyan nagyon sokat még nem néztem, hogy átfogó képem legyen.
A beepola lejátszó által emészthető formát egyszerűen beepola-ban írtam.
A WHAM! engine két csatornás, a Dynamite Dan zenéje nem. Létezik 9 csatornás zene is Speccy-re. Persze itt a csatorna nem valódi csatornát jelent, hiszen a Spectrum-ban csupán egy ULA bit-et lehet kapcsolgatni.
1,5 MHz órajelre az időzítések átszámolásával lehet szerintem viszonylag gyorsan és egyszerűen áttenni többcsatornás Spectrum zenéket. A lényeg szerint annyi csak, hogy a hangszóró és a Z80 között ne legyen egyéb jelformáló áramkör. Kevés ennél egyszerűbb megoldás létezik, kb. futófény bonyolultságú. Ezért is lehetett gyorsan PIC verziót kreálni belőle. Most egy hosszabb zenét akartam átírni PIC-re, de kevés az 1K FLASH, keresek nagyobb, de még 8-bites PIC-et.

Köszönöm.
Olvastam a
beepola dokujában, hogy bizonyos zene formátumokat magától megtalál programon belül,
vagy ha te megmondod neki, hol keresse azt, onnan átemeli.
ezért érdekelt a dolog sikerfaktora, hogy mennyire általános (elterjedt) egy-egy zenelejátszó motor a játékírók között, vagy mindenki mindenhova saját zenemodult írt?
Néztem a z80 asm zenelejátszó fájlokat, tényleg viszonylag egyszerűek.
sajnos kijöttem a z80 assembler gyakorlatból, így elsőre nem láttam, hogy hogyan szólalnak meg a több szólamú hangok?
vagy a "hangpalettába" vannak a kevert hangok is berakva?
elméletileg a mostani áramkör kettes osztója is torzítás mentesen tudná a speccy zenéket játszani,
hiszen egy hang impulzus ugye két out utasításból áll, és így a kettes osztó kimenete követi a hang adat értékét:
Kód: Egész kijelölése
out 254, 16 /IORQ ra kötött kettes osztó kimenet 1
vár vmennyit
out 254, 0 /IORQ ra kötött kettes osztó kimenet 0
vár vmennyit