Autore Topic: [GUIDA] I menù delle cassette Go/Byte Games e simili (lato C64), come sistemarli  (Letto 2109 volte)

Massi cadenti

  • Non dimenticatevi *MAI* nei vostri dump del Vic20 e soprattutto del C16/+4!!!
  • Administrator
  • Utente di edicolac64.com
  • *****
  • Post: 884
    • http://massicadenti.altervista.org/algasoft.html
Guida per sistemare i tempi dei menù delle cassette Fermont/Edizioni Computer
(Go Games, Byte Games e simili)

I - Il funzionamento meccanico di una cassetta reale
====================================================
Queste cassette hanno all'inizio un menù che permette di posizionarsi esattamente (in teoria) all'inizio del programma da caricare, quindi se non è il primo, fanno premere il tasto F.FWD per un tempo predeterminato, fino a posizionarsi (ripeto, in teoria) all'inizio del programma.
Il problema è strutturale nella differenza di giri e di frizione tra le due bobine in una cassetta reale e nel registratore virtuale.
In una cassetta reale, l'avremo notato tutti, pur essendo la velocità di scorrimento rigorosamente costante (che in modalità "play" è di 4,76 centimetri di nastro al secondo), la durata di un "giro" (che viene calcolato sulla bobina di destra, cioè quella che all'inizio del lato è vuota e alla fine è piena) è molto rapida all'inizio, e molto lenta alla fine. Questo perché, approssimando la spirale ad un cerchio, la lunghezza della circonferenza aumenta con l'aumentare del raggio (2*raggio * pigreco). Quindi più nastro c'è sulla bobina, più il giro durerà tanto, per coprire tutta la circonferenza.

La modalità avanti veloce, nei datassette, è pure lei abbastanza costante, ma è più soggetta alla frizione, quindi l'avanti veloce sarà rapido all'inizio e meno rapido alla fine, ed è il motivo per cui su un C64 reale e con la cassetta originale non ci sono troppi problemi in teoria.
Cosa significa con la cassetta originale? Significa che se andassimo a copiare questa cassetta su un'altra di durata diversa, il menù di ricerca non funzionerà più correttamente. Questo perché l'avanti veloce sarà con altri tempi.
Cosa significa invece in teoria? Significa che la velocità, tanto di riproduzione quanto di avvolgimento veloce, è soggetta a modifiche da un registratore a un altro: la velocità di riproduzione è regolata da un trimmer presente in alto a sinistra nel circuito elettronico del registratore, e dipende, comunque, dalle cinghie. Queste, che sono di fatto degli elastici, hanno il compito di trasmettere il movimento del motore al capstan (la ruota gommata di fianco alle testine) e al perno della bobina ricevitrice, che hanno il compito (entrambi) di far muovere il nastro.
Queste cinghie, nel tempo, si usurano, si allentano, e se restano ferme per anni si sciolgono, con conseguenze drammatiche sui nostri poveri datassette (avete presente gli elastici sciolti?) e sulla costanza della velocità del nastro in riproduzione: figuriamoci in avanti veloce, dove non è più il capstan ma solo la bobina a far avanzare il nastro. E' uno dei motivi per cui alcune cassette, particolarmente "incollate", hanno più resistenza al fast forward mentre se giriamo la cassetta e premiamo rewind non troviamo problemi. Vuol dire che, oltre che la cassetta ha problemi, la cinghia della bobina di destra è usurata.
Diamo comunque per buono che il nostro registratore sia in perfetto stato, quindi riusciamo a leggere bene la cassetta e seguiamo correttamente la velocità, insomma che sul C64 funziona.

II - Come funziona il datassette virtuale del VICE
==================================================
Prenderò in considerazione il VICE perché il CCS64 non ha un contagiri ma conteggia gli impulsi, quindi è più complicato.
Il VICE non può sapere (per vari motivi) la durata della cassetta quindi il registratore del VICE girerà sempre a velocità costante e l'avanti veloce è tarato in base a parametri generici decisi dal VICE Team che comunque, in generale non danno problemi.
La durata di un "giro" è quindi temporale e non meccanica, e nella fattispecie un "giro" dura 3 secondi (vale lo stesso sul DC2N, che segue proprio lo stesso principio).
Ovviamente una durata temporale non combacia con quella meccanica, motivo per cui il sistema del caricamento da menù non può funzionare così come la cassetta viene dumpata.

III - Com'è strutturata una cassetta Go Games / Byte Games
==========================================================
Una cassetta di queste collane, con questo tipo di menù, ha tipicamente una quantità di spazio tra un programma e l'altro, proprio per ovviare ai problemi di diversità tra i vari registratori di cui si è parlato prima. Tipicamente lo spazio tra un programma e il successivo è via via crescente man mano che si va verso la fine della cassetta, proprio perché le maggiori discrepanze si hanno verso la fine.

IV - Perché modificare il dump? Non si crea un dump spurio?
===========================================================
A mio parere no: considerate che comunque non è una cattiva idea mantenere ENTRAMBI i dump, sia quello da usare sugli emulatori che quello da usare sulla cassetta reale. Che comunque funzionerebbe solo se la cassetta è quella, e NON avete usato TAPClean.

V - Occorrente
==============
TAPClean https://sourceforge.net/projects/tapclean/
TAPCleanFE (frontend) http://www.luigidifraia.com/c64/
Tap2Wav e Wav2Tap https://sourceforge.net/projects/c64tapedecode/
Un minimo di conoscenze sul prompt dei comandi (=finestra dos)
Un editor audio avanzato:
- io uso (per motivi storici) Cool Edit Pro (commerciale, adesso la casa che lo faceva è stata assorbita dalla Adobe e oggi il suo erede si chiama Adobe Audition) di cui trovate il demo qui http://www.softpedia.com/get/Multimedia/Audio/Audio-Editors-Recorders/Cool-Edit-Pro.shtml
- Un'ottima alternativa gratuita e open source potrebbe essere Audacity https://sourceforge.net/projects/audacity/

VI - Prendiamoci il silenzio
============================
Facciamo per prima cosa una copia di sicurezza del tap che abbiamo dumpato.
Convertiamo in wav (con tap2wav) il tap della cassetta, andiamoci a prendere una parte del "silenzio" (che silenzio in realtà non è): lo riconosciamo perché ascoltandolo non si sente nulla e perché le onde sono tutte di lunghezza uguale. Prendiamoci un'onda alta e un'onda bassa, circa un 6-7 secondi.
Incolliamo questo silenzio in un nuovo file (44100 8 bit mono) e salviamolo da qualche parte, ci servirà in seguito.

VII - Ripuliamo il tap con tapclean
===================================
Mi raccomando agiamo sempre su una copia del tap originale.
A questo punto prendiamo il tap-copia e ripuliamolo con tapclean (non c'è bisogno che vi dica come, vero?). Il file che andremo a creare, chiamato clean.nome.tap sarà quello su cui ora andremo a lavorare.
Tapclean infatti di default ELIMINA tutti i silenzi, motivo per cui il silenzio ce lo siamo presi prima.
Per esperienza si fa molto prima così piuttosto che a rieditare tutta la cassetta.

VIII - Le grandi imprese
========================
Carichiamo il tap ripulito nel vice, carichiamo la presentazione e di seguito il primo gioco (così che non dovremo portare avanti veloce il registratore virtuale), segnamoci il contagiri di dove finisce il caricamento.
A questo punto rimontiamo di nuovo (da capo) il tap nel vice (sempre quello ripulito mi raccomando) e seguiamo le istruzioni per caricare il SECONDO gioco, portiamo avanti veloce come richiesto dalla presentazione. Al momento in cui premiamo STOP segnamoci il contagiri.
Sicuramente, o quasi, i due valori (quello di dove finisce il primo gioco e quello di dove la presentazione si aspetta che cominci il secondo) non coincideranno.
Diciamo che il contagiri di dove finisce il primo gioco è il valore A, mentre dove la presentazione si aspetta di iniziare a caricare il secondo gioco è il valore B.
Diamo per buono che A sia più piccolo di B: nel caso contrario, ci troveremmo in difficoltà, ma a me è successo solo una volta, dirò alla fine una possibile soluzione.
Dovremo quindi fare in modo che il secondo gioco cominci almeno da B: come fare?

IX - Lavoriamo con l'audio
==========================
Convertiamo il tap (quello ripulito) in wav, e apriamolo con cool edit, audacity o quello che state usando.
Moltiplichiamo il valore di A per 3, e avremo il numero di secondi dove (più o meno) finisce il primo gioco. Ovviamente se vi troverete come risultato 153 (ad esempio), significa 2 minuti e 23 secondi.
Posizioniamoci nell'audio più o meno lì (meglio prima che dopo) e cerchiamo dove finisce il nostro primo gioco, ce ne accorgiamo perché ci sarà una leggera pausa (di solito meno di un secondo, se avete ripulito) seguita dopo poco dal sibilo (fiiiiiiiiiiiii) che preannuncia il secondo gioco.
Prendendoci la mano vi accorgerete subito di dove comincia un programma sia perché individuerete la pausa direttamente nella forma d'onda sia perché l'onda del sibilo è diversa da quella del rumore confuso che caratterizza il programma in turbo.
Attenzione che di sibili ce ne sono due: uno prima e uno dopo del FOUND. Non dovete prendere in considerazione la pausa a cavallo del FOUND, ma quella di dove inizia il programma, quindi dal rumore confuso al sibilo.
Individuato il punto, andatevi a prendere il "silenzio" che avete salvato prima (non generate silenzio con l'editor audio, perché sarebbe un silenzio "piatto" che nella conversione in tap si perderebbe!), cioè l'onda alta e l'onda bassa, e incollatelo tante volte quanti sono i secondi da spostare.
Quindi riconvertite in tap e provate, caricando il secondo programma partendo da dove finiva il primo. Potete calcolare a che punto comincia il programma togliendo circa 3 giri (quindi 9 secondi) da dove compare il FOUND. Se il FOUND compare troppo presto, cioè meno di tre giri DOPO il valore B (che per chi non se lo ricorda, è dove la presentazione porta il nastro), dovrete aggiungere altro silenzio e riprovare.
Se compare troppo tardi, cioè più di 6 giri dopo, potrete accorciare il silenzio (non esagerate).
Quando pensate che i giri più o meno siano buoni, ri-montate il tap dall'inizio e provate a caricare il secondo gioco dalla presentazione. Deve comparire regolarmente il FOUND e devono comparire le righe colorate dopo quest'ultimo, e devono essere "intere", non spezzate.
Se siete riusciti, segnatevi dove finisce il secondo gioco, che diventerà il nuovo valore A, e proseguite col vedere il nuovo valore di B, che sarà il valore a cui si ferma il contagiri dalla presentazione caricando il terzo.
Naturalmente dovrete rifare tutto per ogni gioco.
Può sembrare complicato, ma una volta presa la mano ci si mette meno di mezz'ora.

X - Finito?
===========
Quasi. Ricordatevi una cosa: che man mano che allungate la cassetta, il fast forward vi porterà avanti di un pochino, quindi meglio allungare che restare stretti: rischiate di aver sistemato gli ultimi giochi ma al contempo di aver spostato i primi. In pratica il valore di B si sposta man mano che andate avanti, quindi se vi tenete troppo stretti rischiate di dover risistemare i giochi già sistemati in precedenza.
Quando ritenete di aver finito, riverificate tutti i giochi, sia caricandoli dalla presentazione, sia caricandoli in sequenza, prima di rilasciare il dump alla comunità.

APPENDICE
=========
Uso di Wav2Tap e Tap2Wav:
1) aprite una finestra dos (su windows xp start -> esegui -> scrivete cmd)
2) portatevi nella cartella di tap2wav.exe o wav2tap.exe (inutile se l'avete messi in C:\WINDOWS o se avete aggiunto al path la cartella dove si trovano); per portarvi nelle cartelle usate il comando "cd" mentre per spostarvi di unità indicate l'unità es. D:
3) tap2wav e wav2tap funzionano così
Codice: [Seleziona]
tap2wav nome.tap > nome.wav
wav2tap nome.wav > nome.tap
il segno di maggiore è fondamentale perché solo in questo modo si redirige l'output sul file. In caso contrario il file in uscita verrebbe creato sullo schermo ;)
ovviamente potete usare i percorsi, ricordate solo che se usate gli spazi dovete mettere le virgolette
Codice: [Seleziona]
tap2wav C:\documenti\nuovo\tapdafare.tap > "D:\prove da fare\tapinwav.wav"Usate sempre l'accortezza di "smontare" dal registratore virtuale il tap ogni volta che volete sovrascrivere, altrimenti avrete un errore.
Buona conversione a tutti.

- Massi cadenti -
« Ultima modifica: 10 Dicembre 2012, 13:42:49 da Massi cadenti »
I'M *DC2N* POWERED (tnx Luigi Di Fraia) - La mia collezione di cassette (non per vendita né scambio)
PER GLI ACQUISTI NEL MERCATINO IO PAGO SOLO CON PAYPAL E LA COMMISSIONE E' A CARICO VOSTRO

Massi cadenti

  • Non dimenticatevi *MAI* nei vostri dump del Vic20 e soprattutto del C16/+4!!!
  • Administrator
  • Utente di edicolac64.com
  • *****
  • Post: 884
    • http://massicadenti.altervista.org/algasoft.html
Diamo per buono che A sia più piccolo di B: nel caso contrario, ci troveremmo in difficoltà, ma a me è successo solo una volta, dirò alla fine una possibile soluzione.
Dimenticavo:
Se davvero A fosse più grande di B, c'è un modo per rimediare, dobbiamo ridurre la lunghezza del gioco precedente. Questo è possibile perché esiste un margine entro cui è possibile accelerare un programma senza che questo dia errore. Dobbiamo in pratica aumentare (solo di quel programma, dal sibilo iniziale PRIMA del found alla fine del rumore confuso) la velocità in modo che il sibilo sia leggermente più acuto.
Stando con 100% la velocità originaria, non è possibile (o quantomeno non è consigliabile) andare oltre il 104%. In questo modo risparmierete un pochino di spazio e dovreste riuscire a risolvere.
Evitate di fare quest'operazione se non è assolutamente necessaria.
I'M *DC2N* POWERED (tnx Luigi Di Fraia) - La mia collezione di cassette (non per vendita né scambio)
PER GLI ACQUISTI NEL MERCATINO IO PAGO SOLO CON PAYPAL E LA COMMISSIONE E' A CARICO VOSTRO