[zxspectrum] Re: esistono caricamenti di giochi con la musica?

  • From: Massimo Raffaele <massimo.raffaele@xxxxxxxxxx>
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Sun, 11 Nov 2007 18:23:02 +0100


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

Other related posts: