Edicolac64 forum - il commodore 64 in italia
Convertire le cassette/dischi e effettuare il processo inverso + Programmi e Utility =>
Convertire le cassette/dischi e effettuare il processo inverso + Programmi e Utility => Topic aperto da: arkanoid3000 - 25 Dicembre 2008, 22:59:00
-
Fin'ora non sono riuscito a convertire questo wave che mi fu recapitato un mesetto fa per ben due volte e ora non so piu che devo fare, non mi resta che pubblicarlo qui in attesa che qualcuno sia piu bravo di me.
http://www.megaupload.com/?d=HE3QBNF9
-
uhm . . . la trovo molto dura . . . l' ho scaricato, ma non cavo un ragno dal buco . . .
Provo a vedere se ce l'ho nella mia scorta . . . .
-
Il primo gioco l'ho tirato fuori con Audiotap, il problema resta per gli altri 7...
-
Approfittando delle vacanze, ho dato un'altra occhiata alla seconda registrazione (la prima è inutilizzabile).
Purtroppo il volume si abbassa a tratti, richiedendo un grosso e paziente lavoro di ritocco delle onde con Audacity.
Con WAV-PRG a "sensitivity" 99 e senza "inverted waveform", si ottiene un .t64 dove qualcosa funziona ma la maggior parte no. Usando il tasto Advanced, ho identificato una serie di punti da ritoccare con Audacity. Col ritocco, adesso funzionano:
- entrambe le parti di Vendicare
- Rimbalzo
- le prime parti di Duello Barbaro, Mutanti, Spie al Polo, Sopravvissuti e Tarzanino
- Niente da fare per Ora Zero e le seconde parti dei giochi suddetti
Ho creato un TAP con Tapclean, e naturalmente ho il .wav restaurato. Restaurare gli altri giochi è però al di sopra della mia disponibilità di tempo.
-
Cioe in pratica avremmo tutti i giochi tranne Ora-Zero?
-
Cioe in pratica avremmo tutti i giochi tranne Ora-Zero?
No, solo Vendicare e Rimbalzo. Per i giochi a 2 parti, devono funzionare entrambe
-
Spie Al Polo l'ho appena ottenuto, quindi ora siamo al 50%.
Tarzanino ce l'ho in Top 100, provo a dumparlo di li e se il loader coincide con questa cassetta abbiamo anche il quinto gioco; a questo punto resterebbero irrisolti solo Mutanti, Ora-Zero e Sopravvissuti.
-
Allora ho appena provato a dumpare Tarzanino dalla Top 100, il loader coincide pero la 1' parte è compromessa perche il nastro è stropicciato.
Ho cmq inviato il .wav della 2' parte a Fab...
-
Ho appena richiesto una nuova registrazione di questa cassetta al possessore attuale in modo che possa lavorarci senza troppi ostacoli, con questo qui sopra ho paura che non ci si possa fare niente...
-
:'( Purtroppo sono spiacevole di comunicarvi che questa cassetta è irrecuperabile.
Ho provato di tutto, mi sento molto rammaricato all'idea di non poter fare piu nulla su questa cassetta che è emersa dal passato e poteva essere dumpata a suo tempo.
:cry2: :cry2: :cry2:
Sono triste!
-
Tanto per riaprire una vecchia ferita, vi comunico che ho una versione 6/8 (sono non funzionanti solo la seconda parte di Sopravvissuti e Ora-Zero) e l'ho mandata a Bubusan.
Per crearla, ho usato una strategia diversa: non più modificare il WAV ma il TAP (cosa che io stesso sconsigliavo...). Dopo aver creato il TAP dal WAV con Audiotap, e aver fatto un piccolo ritocco a mano per il pilot tone di Tarzanino, ho scritto un programma Python che applica la stessa strategia che usavo manualmente col WAV, solo che, essendo un programma e non un essere umano, non si annoia al 274esimo ritocco.
import io
import struct
inputs = io.open('record.tap','rb')
outputs = io.open('newrecord.tap','wb')
bytesin = inputs.read(16)
inputs.seek(4,1)
outputs.write(bytesin)
bytesout=b'\0\0\0\0'
outputs.write(bytesout)
isthereafollowingbyte=False
blockstopass=[ \
#DUELLO BARBARO
[0x14 , 0x23CB2 , "DUELLO BARBARO" ], \
[0x32152 , 0x3AE97 , "'DUELLO BARBARO"], \
#MUTANTI
[0x9868F , 0xA7688 , "MUTANTI" ], \
[0xADDB0 , 0xB6E92 , "'MUTANTI"], \
#SPIE AL POLO
[0x11468A, 0x1239D5, "SPIE AL POLO" ], \
[0x13373D, 0x13C3E3, "'SPIE AL POLO"], \
#ORA-ZERO
[0x199BDB, 0x1A998A, "ORA-ZERO"], \
#SOPRAVVISSUTI
[0x204292, 0x2139CB, "SOPRAVVISSUTI" ], \
[0x21F8B3, 0x228A28, "'SOPRAVVISSUTI"], \
#TARZANINO
[0x28621F, 0x295477, "TARZANINO" ], \
[0x2A77FF, 0x2B0272, "'TARZANINO"], \
#VENDICARE
[0x30DA6B, 0x31DCD3, "VENDICARE" ], \
[0x3303AB, 0x338E64, "'VENDICARE"], \
#RIMBALZO
[0x396664, 0x3A6050, "RIMBALZO"], \
[0x3ECE28, 0x3FBD4B, "fine"]
]
block=0
while True:
if inputs.tell()==blockstopass[block][0]:
thisbyte=inputs.read(blockstopass[block][1]-blockstopass[block][0])
outputs.write(thisbyte)
block=block+1
print('block '+str(block)+' '+blockstopass[block-1][2])
if block==len(blockstopass):
break
continue
breakingthisbyte=False
if not isthereafollowingbyte:
thisbyte=inputs.read(1)
if len(thisbyte)==0:
break
if thisbyte[0]==0x35:
print('found '+hex(thisbyte[0])+' at '+str(inputs.tell())+' breaking it at '+str(outputs.tell()))
breakingthisbyte=True
thisbyte=[0x11]
nextbyte=[0x24]
else:
thisbyte=nextbyte
if thisbyte[0]==0:
nextbytes=inputs.read(3)
outputs.write(thisbyte)
outputs.write(nextbytes)
isthereafollowingbyte=False
continue
if not breakingthisbyte:
nextbyte=inputs.read(1)
isthereafollowingbyte=len(nextbyte)>0
if isthereafollowingbyte and nextbyte[0]!=0:
if thisbyte[0]+nextbyte[0] <= 0x25:
isthereafollowingbyte=False
newbyte=thisbyte[0]+nextbyte[0]
newbyte=min(0x20, newbyte)
thisbyte=[newbyte]
elif thisbyte[0] <= 0x0f:
newnextbyte=thisbyte[0]+nextbyte[0]-0x11
thisbyte=[0x11]
nextbyte=[newnextbyte]
elif nextbyte[0]==0x22:
if thisbyte[0] <= 0x18 or thisbyte[0]==0x2a:
print('found '+hex(thisbyte[0])+' '+hex(nextbyte[0])+' at '+str(inputs.tell())+' shortening it at '+str(outputs.tell()))
thisbyte=[thisbyte[0]+nextbyte[0]-0x1d]
nextbyte=[0x1d]
else:
print('found '+hex(thisbyte[0])+' '+hex(nextbyte[0])+' at '+str(inputs.tell())+' keeping it at '+str(outputs.tell()))
elif thisbyte[0]>=0x38:
print('found '+hex(thisbyte[0])+' at '+str(inputs.tell())+' splittng it at '+str(outputs.tell()))
outputs.write([0x11])
newthisbyte=thisbyte[0]-0x11
thisbyte=[newthisbyte]
outputs.write(thisbyte)
outsize=outputs.tell()-20
outputs.seek(16)
bytesout=struct.pack('<L',outsize)
outputs.write(bytesout)
Il programma legge record.tap (creato con Audiotap) e crea newrecord.tap. I byte di inizio e fine di ciascun programma sono hard-coded, quindi il programma non è molto flessibile, però fa il suo dovere.
-
Ah grazie, cmq per Ora-Zero e Sopravvissuti ci sto ancora lavorando, rilevate le buone speranze contavo di inviare il dump 8/8 dopo averli riparati...