[zxspectrum] Re: Filmati DivIDEo su ZXMMC+

  • From: Eugenio Ciceri <eugenio.ciceri@xxxxxxxxx>
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Thu, 22 Dec 2011 12:27:19 +0100

Il 20 dicembre 2011 13:00, Eugenio Ciceri <eugenio.ciceri@xxxxxxxxx> ha scritto:

> Se trovo del tempo una delle prossime notti faccio un po' di prove.
> Chissà mai che per Natale... ;-)

Probabilmente devo aver fatto il cattivo quest'anno perché Babbo
Natale non ne vuole sapere di regalarmi il player per i filmati sulla
ZXMMC+... :-(

Ho realizzato un semplice programmino in C per modificare i filmati in
modo che gli ultimi video packet di ogni settore siano riconoscibili
durante lo streaming e ho modificato il player per intercettarli,
scartare i dati che contengono (solitamente pochi byte ridondanti) e
attendere il data token prima di proseguire.

Funziona tutto... per qualche frame... poi, per qualche motivo che
ancora non sono riuscito a individuare, i dati si sfasano e va tutto a
bugasce ;-)

Debuggando ho trovato il primo punto di sfasamento e ho notato che
tutto va come ci si aspetta fino al rilevamento del data token, poi
però, non ho ancora capito perché, la lettura successiva salta un
dato...
Da notare che questo avviene (nel caso del filmato in test, ma
cambiando il filmato cambia il punto di sfasamento) al settore #87.
Ciò significa che per 86 volte il codice ha funzionato correttamente.
Il settore 87 non ha nulla di particolare; il marker che ho inserito è
corretto e infatti il codice scarta il numero esatto di byte contenuti
nell'ultimo video packet e riceve correttamente il data token.

Tra la ricezione del data token e la lettura successiva non ci sono
altre letture; c'è soltanto un jp al loop di lettura del prossimo
video packet (che però, appunto, parte sfasato).

L'unica cosa che mi viene in mente è provare a disabilitare gli
interrupt mentre eseguo lo skip del settore prima di rientrare nel
loop principale.
Se non funziona non so cos'altro tentare.
Sono alla disperazione ;-)

Allego un'altra quindicina di Kb (scusa EMG!) con il sorgente del
"settorizzatore" in C e del player in versione "settorizzata" (sempre
più disordinato...)

Other related posts: