Autore Topic: Discussione per DUMPARE CASSETTE C16 (nata per la cassetta byte games n6)  (Letto 27322 volte)

Astaroth

  • Dumper the value
  • Utente di edicolac64.com
  • **
  • Post: 97
Re:Discussione per DUMPARE CASSETTE C16 (nata per la cassetta byte games n6)
« Risposta #60 il: 09 Settembre 2011, 00:13:46 »
O usare la versione aggiornata di Audiotap che è appena uscita.

Ho provato la nuova versione con un altro numero di Byte Games ma non sono riuscito ad ottenere un tape funzionante. Se seleziono C16(senza semionde) il vice segnala correttamente i vari found ma carica all'infinito per via della mancanza delle semionde. Se imposto C16 with semiwaves allora dal tape generato non viene trovato piu' nulla e non appare alcun found(provato con e senza onde invertite e vari livelli di sensibilità).

Astaroth

  • Dumper the value
  • Utente di edicolac64.com
  • **
  • Post: 97
Re:Discussione per DUMPARE CASSETTE C16 (nata per la cassetta byte games n6)
« Risposta #61 il: 09 Settembre 2011, 00:29:37 »
Fab, se vuoi fare qualche verifica ho messo in condivisione il .wav della cassetta:
http://www.megaupload.com/?d=RLZATINN

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
Re:Discussione per DUMPARE CASSETTE C16 (nata per la cassetta byte games n6)
« Risposta #62 il: 09 Settembre 2011, 00:44:50 »
Capisco in italiano (anche se non mi piace) ma perché in inglese audiotap usa il termine semiwaves quando ovunque (a cominciare da mtap) vengono chiamate halfwaves? Nessuna vena polemica, voglio solo capire :)
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

fab

  • Utente di edicolac64.com
  • *
  • Post: 424
Re:Discussione per DUMPARE CASSETTE C16 (nata per la cassetta byte games n6)
« Risposta #63 il: 09 Settembre 2011, 23:37:41 »
Fab, se vuoi fare qualche verifica ho messo in condivisione il .wav della cassetta:
http://www.megaupload.com/?d=RLZATINN
"Il file al quale si sta tentando di accedere è temporaneamente non disponibile. Riprova più tardi."

fab

  • Utente di edicolac64.com
  • *
  • Post: 424
Re:Discussione per DUMPARE CASSETTE C16 (nata per la cassetta byte games n6)
« Risposta #64 il: 10 Settembre 2011, 00:42:33 »
Problema risolto, appena scaricato

fab

  • Utente di edicolac64.com
  • *
  • Post: 424
Re:Discussione per DUMPARE CASSETTE C16 (nata per la cassetta byte games n6)
« Risposta #65 il: 11 Settembre 2011, 22:58:31 »
Fab, se vuoi fare qualche verifica ho messo in condivisione il .wav della cassetta:
http://www.megaupload.com/?d=RLZATINN
Con Audiotap 1.6 bisogna usare "inverted waveform" e le semionde. Poi lo si può ripulire con questa versione ulteriormente migliorata dello script di ripulitura
Codice: [Seleziona]
#!/usr/bin/python3

import io
import sys
import os

def statist(infile,outfile):
inputs = io.open(infile,'rb')
outputs = io.open(outfile,'wb')


pulisci = False
stat = [{},{},{},{},{},{},{},{}]
beginstat = [{},{}]

pilot = bytes([])
impulsi = 0
blocchi = 0
while 1:
p =inputs.tell()
thisbyte=inputs.read(1)
if len(thisbyte)==0:
break

if not pulisci:
flushpilot=True
if thisbyte[0]>=0x0f and thisbyte[0]<0x22:
pilot += thisbyte
flushpilot=False
elif thisbyte[0]>=0x38 and thisbyte[0]<0x66 and len(pilot) > 450:
thisbyte+=inputs.read(1)
if len(thisbyte)==2 and thisbyte[1]>=0x33 and thisbyte[1]<0x9b:
pulisci = True
inizioblocco = p
impulsi=impulsi-1
print("iniz blocco "+str(blocchi)+" a "+hex(thisbyte[0])+" at "+str(p)+" at "+str(impulsi))
p=inputs.seek(-2, os.SEEK_CUR)
#clean pilot
#pilot=bytes([0x1b])*len(pilot)
else:
pilot += thisbyte[0:1]
p=inputs.seek(1-len(thisbyte), os.SEEK_CUR)
elif thisbyte[0]==0x00:
pilot=pilot+thisbyte+inputs.read(3)
flushpilot=True
else:
pilot += thisbyte

if flushpilot:
thisbyte=pilot
pilot=pilot[0:0]
else:
thisbyte=thisbyte[0:0]

impulsi=impulsi+1

else:
impulsi=impulsi+1
if ((p - inizioblocco) % 40) == 0:
if(thisbyte[0]<0x38):
print("fineblocco "+hex(thisbyte[0])+" at "+str(p)+" at "+str(impulsi))
lunghpilot = 0
pulisci = False
blocchi = blocchi + 1
thisbyte+=inputs.read(1)
impulsi=impulsi+1
#clean end of block
#thisbyte=bytes([0x35,0x35])
else:
thisbyte=thisbyte+inputs.read(1)
impulsi=impulsi+1
for i in range(2):
if not thisbyte[i] in beginstat[i]:
beginstat[i][thisbyte[i]]=0
beginstat[i][thisbyte[i]]=beginstat[i][thisbyte[i]]+1
toolittle=thisbyte[0]-0x61
if toolittle<0:
thisbyte=bytes([0x61,thisbyte[1]+toolittle])
#clean start of block
#thisbyte=bytes([0x6c,0x6c])
elif ((p - inizioblocco) % 40) == 1:
print("What?")
elif ((p - inizioblocco) % 40) == 2:
pass
#clean right after start of block
#thisbyte=bytes([0x35])
elif ((p - inizioblocco) % 40) == 3:
pass
#clean right after start of block
#thisbyte=bytes([0x35])
else:
thisbyte=thisbyte+inputs.read(3)
impulsi=impulsi+3
statbase = 0
resbytes=thisbyte
if (thisbyte[0]+thisbyte[1]<thisbyte[2]+thisbyte[3]):
if(thisbyte[0]<0x21 or thisbyte[0]>0x29):
resbytes=              bytes([0x21])+resbytes[1:4]
if(thisbyte[1]<0x12 or thisbyte[1]>0x1a):
resbytes=resbytes[0:1]+bytes([0x17])+resbytes[2:4]
if(thisbyte[2]<0x30 or thisbyte[2]>0x3a):
resbytes=resbytes[0:2]+bytes([0x30])+resbytes[3:4]
#clean zero bit
#resbytes=bytes([0x17,0x17,0x35,0x35])
else:
statbase = 4
if(thisbyte[0]<0x30 or thisbyte[0]>0x3a):
resbytes=              bytes([0x30])+resbytes[1:4]
if(thisbyte[2]<0x21 or thisbyte[2]>0x29):
resbytes=resbytes[0:2]+bytes([0x21])+resbytes[3:4]
if(thisbyte[3]<0x12 or thisbyte[3]>0x1a):
resbytes=resbytes[0:3]+bytes([0x17])
#clean one bit
#resbytes=bytes([0x35,0x35,0x17,0x17])
for i in range(4):
if not thisbyte[i] in stat[i+statbase]:
stat[i+statbase][thisbyte[i]]=0
stat[i+statbase][thisbyte[i]]=stat[i+statbase][thisbyte[i]]+1
thisbyte=resbytes

outputs.write(thisbyte)

statbase = 0
for i in stat:
print("stat for byte "+str(int(statbase/4))+" pos "+str(statbase%4))
statbase=statbase+1
for k in sorted(i.keys()):
print("byte "+hex(k)+" occurs "+str(i[k])+" times")
statbase = 0
for i in beginstat:
print("stat for begin "+str(statbase))
statbase=statbase+1
for k in sorted(i.keys()):
print("byte "+hex(k)+" occurs "+str(i[k])+" times")

if len(sys.argv)<3:
print("not enough args")
sys.exit
statist(sys.argv[1],sys.argv[2])


Astaroth

  • Dumper the value
  • Utente di edicolac64.com
  • **
  • Post: 97
Re:Discussione per DUMPARE CASSETTE C16 (nata per la cassetta byte games n6)
« Risposta #66 il: 12 Settembre 2011, 00:26:02 »
Ora funziona :) grande Fabrizio, altra cassetta recuperata. 

fab

  • Utente di edicolac64.com
  • *
  • Post: 424
Re:Discussione per DUMPARE CASSETTE C16 (nata per la cassetta byte games n6)
« Risposta #67 il: 14 Settembre 2011, 00:05:13 »
Hai provato lo stesso procedimento con l'altra cassetta (la n.16)? In teoria, dovrebbe andare senza bisogno di hex editor o di dividere il TAP.

Astaroth

  • Dumper the value
  • Utente di edicolac64.com
  • **
  • Post: 97
Re:Discussione per DUMPARE CASSETTE C16 (nata per la cassetta byte games n6)
« Risposta #68 il: 14 Settembre 2011, 23:42:23 »
Ho fatto qualche prova, con l'ultima versione dello script(50) funzionano solo alcuni giochi(highway-scacchi-secret mission-space shuttle-skyrock) mentre con la penultima(40) ne funzionano altri(intro-smurf-scacchi-space shuttle).

fab

  • Utente di edicolac64.com
  • *
  • Post: 424
Re:Discussione per DUMPARE CASSETTE C16 (nata per la cassetta byte games n6)
« Risposta #69 il: 15 Settembre 2011, 17:07:01 »
Hai anche provato a rifare il .tap con Audiotap 1.6 e pulire quello?

Astaroth

  • Dumper the value
  • Utente di edicolac64.com
  • **
  • Post: 97
Re:Discussione per DUMPARE CASSETTE C16 (nata per la cassetta byte games n6)
« Risposta #70 il: 15 Settembre 2011, 18:55:35 »
Si sono ripartito da un nuovo .tap fatto col 1.6.

Astaroth

  • Dumper the value
  • Utente di edicolac64.com
  • **
  • Post: 97
Re:Discussione per DUMPARE CASSETTE C16 (nata per la cassetta byte games n6)
« Risposta #71 il: 16 Settembre 2011, 20:01:46 »
Sto facendo prove anche con la serie Go Games ma il Vice mostra il found solo quando imposto Audiotap con sensibilità >46 e in modo C16 senza semionde(e cmq dopo poco arriva il break error). Con semionde e varie puliture non viene trovato nulla.
Metto il .wav in condivisione nel caso volessi fare qualche prova:
http://www.megaupload.com/?d=G02X6ZN8

fab

  • Utente di edicolac64.com
  • *
  • Post: 424
Re:Discussione per DUMPARE CASSETTE C16 (nata per la cassetta byte games n6)
« Risposta #72 il: 17 Settembre 2011, 16:26:12 »
Si sono ripartito da un nuovo .tap fatto col 1.6.
Strano. Con Audiotap 1.6, semionde, inverted waveform e ripulitura, qui funziona tutto tranne la presentazione. Alzando la sensitivity a 35 funziona anche quella.

fab

  • Utente di edicolac64.com
  • *
  • Post: 424
Re:Discussione per DUMPARE CASSETTE C16 (nata per la cassetta byte games n6)
« Risposta #73 il: 17 Settembre 2011, 16:27:41 »
Sto facendo prove anche con la serie Go Games ma il Vice mostra il found solo quando imposto Audiotap con sensibilità >46 e in modo C16 senza semionde(e cmq dopo poco arriva il break error). Con semionde e varie puliture non viene trovato nulla.
Metto il .wav in condivisione nel caso volessi fare qualche prova:
http://www.megaupload.com/?d=G02X6ZN8
Mi dispiace, la qualità del segnale è scarsa. Le onde si abbassano paurosamente a tratti. Con sensitivity 83, inverted waveform e ripuluitura sono riuscito ad ottenere i FOUND, ma poi dà LOAD ERROR o comunque non trova niente dopo.

Astaroth

  • Dumper the value
  • Utente di edicolac64.com
  • **
  • Post: 97
Re:Discussione per DUMPARE CASSETTE C16 (nata per la cassetta byte games n6)
« Risposta #74 il: 25 Settembre 2011, 14:38:24 »
Non ho ancora mollato con Go Games, appena mi riprende la voglia ricampiono un po' di cassette C16(ormai quelle C64 inedite le ho quasi finite, ne devo ancora mandare una ventina al sito che però pare fermo e senza aggiornamenti da un bel po').