[zxspectrum] Re: Filmati DivIDEo su ZXMMC+

  • From: Alessandro <alessandro.poppi@xxxxxxxxx>
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Fri, 16 Dec 2011 14:49:54 +0100

On Fri, 2011-12-16 at 10:20 +0100, Eugenio Ciceri wrote:

> Dunque ci ho pensato su, ma l'idea di generare uno stream diverso
> appositamente per la ZXMMC+ non mi piace proprio.
> Inoltre temo che dovendo comunque aggiungere del codice da eseguire
> durante il flyback molto probabilmente non si riuscirebbe lo stesso a
> stare nei tempi.

Probabile.

Nel frattempo ho pensato alla faccenda di lanciarlo sul badaloc, non
puo' funzionare (bene) perche' il datarate audio e' figlio della
specifica velocita' a 3.5MHz: se lo faccessi andare a 42, ho come il
sospetto che il pitch ne risentirebbe.

Leggere blocchi da 32 bytes alla velocita' di 3.5MHz e' imprescindibile,
in modo da spistolare un campione audio ogni volta che e' necessario,
ne' prima, ne' dopo.

> A questo punto mi servirebbero delle informazioni più precise sul
> protocollo di lettura dei dati dalla SD card.

Ti allego il documento da cui ero partito.
http://dl.dropbox.com/u/1749728/AN_MMCA050419.zip

> Nel codice attuale ho utilizzato il comando MMC_READ_MULTIPLE_BLOCK
> perché credevo che fornisse l'accesso a un flusso continuo e
> ininterrotto di dati dalla card.

Eh... il problema e' che ogni 512 bytes, la card fornisce graziosamente
anche un CRC16.

> Purtroppo il fatto che invece si debba "spurgare" il flusso al termine
> di ogni settore non permette di leggere almeno un intero frame senza
> interruzioni.

[...]

Sono d'accordo. Spero che tu riesca a trovare un paragrafetto
nascosto :-) in cui si narra come settare il blocksize a 8K :-) cmq
magari me lo rileggo anche io nel weekend.

> In un altro punto del programma, durante la ricerca dei settori di
> inizio dei filmati presenti sulla card, ho impostato senza problemi la
> lunghezza del settore a 9, ma in quel caso ero in modalità
> MMC_READ_SINGLE_BLOCK.
> Secondo te posso provare a usare la stessa modalità anche durante la
> lettura dello stream impostando però la lunghezza del settore a 512*20
> o prevedi già che non potrà funzionare?

Si puo' cercare una info nel .pdf. Ho paura che non si possa andare
oltre 512, pero'.

Inoltre c'e' anche un altra cosa di cui tener conto: il data token e' un
evento che non mi risulta 'programmato', ovvero arriva quando la card e'
pronta. In altre parole, tu adesso butti via un numero fisso di bytes
che incredibilmente porta la routine a non crashare, ma in realta'
l'algoritmo consisterebbe nel buttare via n bytes fino a ricevere il
data token ($FE).

Quindi, c'e' anche la possibilita' che la semplice patch audio non
funzioni con una card diversa (piu' lenta o piu' veloce).

Pensa che culo che hai avuto :-)

Ciao!



Other related posts: