Sullo Spectrum è molto difficile (non impossibile) per un altro motivo: per emettere un suono bisogna impegnare la CPU al 100%, cosa che rallenta moltissimo qualsiasi altra operazione.Ti smentisco subito: se ciò che tu dici fosse vero, sarebbe IMPOSSIBILE eseguire qualsiasi altra operazione ( 100% è 100% :-) ) Del resto, non mi sembra che Manic Miner vada poi così lento ;-)
No no, sapevo che la breve spiegazione che ho dato non sarebbe stata chiara...Io intendo che quando (e solo quando) la CPU emette il suono, in quel momento (e solo in quella frazione di tempo) è occupata al 100%.
Nei giochi come Manic Miner (dove cioè vengono emessi suoni mentre contemporaneamente si gioca o si vedono cose in movimento sullo schermo) il tempo-CPU viene suddiviso. Se per es. chiamiamo mT una micro frazione di tempo-CPU, allora in Manic Miner avremo:
a x mT: suono b x mT: altro (es. movimento sprites, calcoli vari, ecc. c x mT: suono d x mT: altro ecc.Se noti, la musica di Manic Miner è "frammentata" (nel senso di non continua), proprio perché la CPU deve fare un po' questo, un po' quello, un po' quell'altro, ecc.
Ulteriore controprova: se fai emettere un BEEP di 5 secondi, lo Spectrum non potrà fare nient'altro in quei 5 secondi! E qui vale infatti quello che scrivevi tu prima: "se ciò che tu dici fosse vero, sarebbe IMPOSSIBILE eseguire qualsiasi altra operazione ( 100% è 100%".
Il linguaggio macchina è abbastanza veloce da permettere alla CPU di alternare tante brevi operazioni in modo snello e quasi indolore.
Il punto è piuttosto quali sono le tue aspettative sulla qualità del suono. Se non poniamo vincoli sulla qualità della melodia, allora le possibilità di eseguirla in parallelo ad altre cose ci sono eccome.
No, non è mai "in parallelo". Caso mai possiamo considerarlo un "seriale" :-)
L'idea simulata nel trucco che abbiamo visto secondo me è valida: effettuare una multiplazione a divisione di tempo (TDM) nell'audio che si manda all'ear, in modo che per un certo microperiodo si emettano frequenze di una melodia, per un altro microperiodo si carichino byte utili.
Infatti, questo è quello che normalmente accade in quasi tutti i giochi Spectrum.
Il fatto che quello che abbiamo visto fosse un trucco non implica che non si possa fare davvero (magari con modalità/qualità diverse)
Già! Max