Autore Topic: Vice 1.17  (Letto 3299 volte)

Alberto

  • Utente
  • **
  • Post: 589
  • Gioco Preferito: Grand Prix Circuit
Vice 1.17
« Risposta #15 il: 22 Ottobre 2005, 13:14:09 »
 Massi Cadenti,hai provato a ridumpare le cassette incriminate?Come ha detto iAN CooG,è possibile che VICE non riconosca l'header del programma se la conversione non è perfetta.

P.S.:hai usato mtap per la conversione?

Alberto

  • Utente
  • **
  • Post: 589
  • Gioco Preferito: Grand Prix Circuit
Vice 1.17
« Risposta #16 il: 22 Ottobre 2005, 21:49:15 »
 La faccenda mi ha incuriosito,così ho provato a dare un'occhiata al processo di caricamento di alcuni .TAP che avevo lasciato nel mio HD.

Citazione
-Boulder Dash

LM MSSMSMMSSMSMSMMS|SM LM SMSMSMMSSMSMSMMS|MS LM MSMSMSSMSMSMSMMS|MS LM

-1985

LM MSSMSMMSSMSMSMMMS|SM LM SMSMSMMMSSMMSMMSMMMS|MS LM MSMMSMSSMSMSMSMMS|MS LM

-Algasoft
  
A ) header non riconosciuta

LM MSSMSMMSSMSSSMMS|SM LM SMSMSMMSSMSMSMSS|MS LM MSMSMSSMSMSSSMMS|SS LS

B ) header riconosciuta

LM MSSMSMMSSMSMSMMS|SS LS SMSMSMMSSMSMSMMS|MS LM MSMSMSSMSMSMSMMS|SS LS


Dal diagramma risulta che la sequenza di impulsi di Boulder Dash e 1985 (la cui testata viene riconosciuta dal file-selector di VICE) è corretta,infatti la testata si apre con una coppia di impulsi lungo/medio (LM),seguiti da coppie di impulsi corto/medio (SM) e medio/corto (MS),che rappresentano rispettivamente bit 0 e 1; ogni byte è intervallato dalla consueta sequenza impulso lungo/medio (LM),come descritto anche nella specifica del kernel loader di Markus Brenner.

Ripetendo il processo con le cassette Algasoft,ho notato che molti impulsi sono a cavallo della soglia medio/corto,per cui si hanno coppie di impulsi corto/corto (SS) che non ci dovrebbero essere (ne ho trovate 3-4 ma ho analizzato solo i primi tre byte della sequenza di sincronizzazione);infatti,questi non corrispondono nè a un bit 0 nè a un bit 1 (almeno stando alle specifiche del kernel loader).

Nel secondo caso (in cui la testata del gioco sulla cassetta è riconosciuta) questi errori riguardano il bit di controllo (quelli rappresentati dalla coppia dopo il |),o al più le coppie di impulsi che separano tra loro i vari byte (una coppia di impulsi lungo/corto invece che lungo/medio),mentre nel primo caso (in cui la testata del gioco non è riconosciuta) riguardano anche i byte veri e propri della sequenza di sincronizzazione ($89,$88...$81).

E' probabile (e dico "probabile" perchè non ho visto il sorgente del file-selector) che siano proprio questi bit "fuori soglia" nella syncro-sequence ad impedire al file-selector di VICE di riconoscere la canonica serie $89...$81,e quindi l'header del programma, mentre le routine del kernal usano un qualche altro criterio che le rende più "tolleranti" agli errori.

iAN CooG

  • Utente
  • **
  • Post: 1774
    • http://iancoog.altervista.org
  • Gioco Preferito: Turbo Assembler, ActionReplay Monitor, DiskDemon
Vice 1.17
« Risposta #17 il: 22 Ottobre 2005, 22:09:15 »
Citazione da: "Alberto"
E' probabile (e dico "probabile" perchè non ho visto il sorgente del file-selector) che siano proprio questi bit "fuori soglia" nella syncro-sequence ad impedire al file-selector di VICE di riconoscere la canonica serie $89...$81,e quindi l'header del programma, mentre le routine del kernal usano un qualche altro criterio che le rende più "tolleranti" agli errori.
Ottima analisi. Bene, direi che il mistero almeno e' svelato. Non risolto ma almeno si sa che non sono del tutto standard.
-=[]=--- iAN CooG/HVSC^C64Intros ---=[]=-
- http://hvsc.c64.org - http://intros.c64.org -

Alberto

  • Utente
  • **
  • Post: 589
  • Gioco Preferito: Grand Prix Circuit
Vice 1.17
« Risposta #18 il: 22 Ottobre 2005, 22:53:35 »
 
Citazione
almeno si sa che non sono del tutto standard.

Peraltro,come si vede in "1985" si possono addirittura presentare delle triplette di impulsi corto/medio/medio (SMM) o medio/medio/corto (MMS) che vengono rispettivamente interpretate come fossero coppie di impulsi corto/medio (SM) e medio/corto (MS).

Cmq,secondo me è un problema di dump;tutti quegli impulsi di 2-3 cicli sotto soglia mi lasciano perplesso.

Massi cadenti

  • Utente
  • **
  • Post: 237
    • http://massicadenti.altervista.org
  • Gioco Preferito: The Last Ninja
Vice 1.17
« Risposta #19 il: 24 Ottobre 2005, 16:48:50 »
 
Citazione da: "Alberto"
Massi Cadenti,hai provato a ridumpare le cassette incriminate?
All'epoca più e più volte perché non mi facevo capace del problema. Tieni conto che in quel periodo ho dumpato un sacco di cassette tra cui anche molte Formula64 che trovi sul sito di Edicola64, che vanno perfettamente e vengono riconosciute.
Oggi il PC che usavo per la conversione è fuori uso, e il PC di ora non posso usarlo perché dovrei usare un altro cavo e non ne ho diversi da quello.

Citazione
P.S.:hai usato mtap per la conversione?
Ovviamente sì.
MTAP in DOS 6.22 puro (niente finestra) + cavo collegato a parallela e soundblaster (per i +5V) che dall'altra parte ha porta drive e piattina per il 1530/C2N. Su quest'ultima è attaccato un duplicatore di quelli che si usavano all'epoca per copiare le cassette, con due registratori attaccati: in "PLAY" alternativamente un C2N "taiwanese" (insomma quelli identici all'originale ma senza la scritta Commodore) oppure un 1531 (nero e con adattatore da C16 a C64) originale Commodore; in "REC" un registratore sfasciato ma che ha l'altoparlante interno, che mi serve per monitorare la pulizia del segnale.
Il registratore in "PLAY" è costantemente controllato a livello di azimuth (ne ho appunto due con due allineature diverse proprio perché ho cassette che richiedono allineature diverse).
Sono stati verificati e tarati su un C128 col programma "Oscilloscopio" e quello che ho usato per le Alga Soft è stato tarato proprio usando una Alga Soft (ovviamente funziona anche su altre cassette, tanto è vero che è quello che uso solitamente per i dump, tranne quando il dump non va perché tipo l'avevo registrato IO con allineature fuori standard all'epoca, ma non è questo caso).
Il PC usato è (era) un P233MMX con doppio boot Windows 98/DOS 6.22, e il cavo un semplice X1541 (niente diodi o altro) modificato con la porta tape e con l'attacco alla porta joystick della soundblaster (è uno dei motivi per cui non potrei ridumparlo oggi con quel cavo).

Citazione
Cmq,secondo me è un problema di dump;tutti quegli impulsi di 2-3 cicli sotto soglia mi lasciano perplesso.
Ribadisco di escluderlo categoricamente, sia perché all'epoca feci la prova con lo stesso registratore collegato al mio C128 sia perché il caricamento avviene. E' molto più probabile che il problema sia all'origine, e cioè del povero Gargiulo ;)
Se (come credo) il caricamento che il VICE riconosce NON E' quello della "bandiera italiana", e quello che non riconosce è quello della "bandiera italiana", continuo a dire che il problema non è nel dump.

Forse col tempo (in fondo son passati dai 14 ai 21 anni) le cassette si saranno rovinate, è possibilissimo, ma continuo a dire che secondo me è un problema all'origine (SIA dell'header -non lo nego dopo un'analisi così approfondita e ineccepibile- SIA, però, anche del parse del VICE, che *comunque* ha il difetto di funzionare in maniera diversa dal kernel standard).
L'header doveva essere creato da qualche programma ad hoc (probabilmente un banale disk to tape autoprodotto, diverso dal "solito" disk to tape che penso abbiamo tutti usato almeno una volta) che andava a creare quello e la "schermata di caricamento".

Se proprio non potete credere che non sia un problema di dump, posso portare qualche Alga Soft a Hiryu (ammesso che non ne abbia lui) e farla dumpare a lui. Ma sono sicuro che il risultato sarebbe lo stesso.
Quindi, a meno che MTAP non dia i numeri (e non lo credo perché il file funziona come la cassetta originale, l'unico problema è il parse appunto), credo che ci si debba concentrare sul perché VICE non fa il parse, o perché il kernel normale carica... e cercare di mettere d'accordo i due, perché lo trovo strano :)

PS Rileggendo forse il mio messaggio può apparire polemico, non è assolutamente mia intenzione e se ho offeso qualcuno mi scuso in anticipo.
Lo so, per tanti è difficile da capire anche se ormai sono 12 anni che lo uso, ma <b>il mio nick ha la "c" <u>minuscola</u></b>...
"Prima volta" nel settembre 1982 (Vic20 di mio cugino)
Utente C16 dal 25 dicembre 1984. Utente C128 dal 24 dicembre 1987
C16(4), C128, Vic20, 1541, 1541-II, 1530(3), 1531(2), X1541, MPS802, CaptainMikyII, Moviola x C64, esp.16KB x C16, ca.1300 cassette, ca.900 floppy, ca.10 joystick, paddles, accessori vari
<a href="http://massicadenti.altervista.org/algasoft.html">La mia pagina sulle Alga Soft, sulle cassette napoletane e su come Napoli ha vissuto a modo tutto suo gli anni d'oro della pirateria</a>
<a href="http://ready64.it/forum/?showtopic=2252#">Massi cadenti non è né un esperto (anche se si millanta tale) né un frequentatore di questo forum</a>
Importante: <a href="http://ready64.massicadenti.com">Ready64 è un sito che <B><U>non</U> è di Massi cadenti</B> ma di Rob Nicoletti</a>

Alberto

  • Utente
  • **
  • Post: 589
  • Gioco Preferito: Grand Prix Circuit
Vice 1.17
« Risposta #20 il: 24 Ottobre 2005, 18:03:37 »
 Caro Massi Cadenti,hai ragionissimo tu:non si tratta di un errore di dump,e adesso spiego il perchè.

Esaminando la cassetta AlgaSoft N.16 (lato A) col WAV-PRG di Fabrizio Gennari (fab),mi sono accorto di una cosa strana:il programma trova nel .TAP un mucchio di impulsi anomali nell'header (appunto delle coppie corto-corto di cui parlavo in precedenza,che nei byte di dati dell'header non dovrebbero esserci).

L'header del nastro viene registrata in duplice copia;la prima copia contiene

- la sequenza di sincro ($89...$81)
- i byte di dati e la somma di controllo

la seconda copia contiene

- la sequenza di sincro ($09...$01)
- i byte di dati e la somma di controllo

Le due copie dell'header sono identiche,a meno del MSB nella sequenza di sincro.

Nella cassetta esaminata,invece,la prima copia dell'header include un mucchio di coppie di impulsi SS (che di solito separano le due copie dell'header):questo spiega il perchè dello strano comportamento del WAV-PRG.

Non solo:la seconda copia dell'header inizia subito con i dati (senza sequenza di sincro $09...$01);forse il VICE opera un confronto tra le parti dati delle due copie dell'header.
Se l'esito del confronto è negativo perchè le due parti dati "non combaciano",ecco spiegata anche la defaillance del fs dell'emulatore.

Comunque per ora ho esaminato solo i primi due programmi del .TAP.
Rimando ai prossimi giorni per eventuali news:intanto vedrò di parlarne con Fabrizio Gennari (e magari anche col ViceTeam).

Ciao

   

fab

  • Utente
  • **
  • Post: 493
    • http://wav-prg.sourceforge.net/
  • Gioco Preferito: Tetris, Turrican, Impossible Mission
Vice 1.17
« Risposta #21 il: 25 Ottobre 2005, 10:27:22 »
 Intanto grazie ad Alberto, che mi ha fornito un file TAP da analizzare.

Apparentemente, i file in questione hanno uno "header chunk" monco: la lunghezza dovrebbe essere 192 byte+1 byte di checksum, ma in questo caso sono 179 byte+ 1 byte di checksum. Evidentemente, il loader nel kernal del C64 accetta lo stesso questi file, perché la checksum è corretta, ma non seguono lo standard, ed è per questo che il file selector di VICE non li riconosce (e neanche WAV-PRG).

In pratica i programmatori di questi crack hanno usato un trucco un po' sporco, che sfrutta un bug nel loader originale del C64: uno header non standard, ma che viene accettato per qualche strano motivo. Mi pare che anche in alcuni programmi CRL ci fossero "header chunk" di questo tipo.

Una teoria è: ogni byte inizia con LM, ed è seguito da 9 bit, che sono SM o MS (il nono è il controllo di parità). Dopo l'ultimo byte, c'è LS. Evidentemente, il kernal loader, appena vede LS, considera finito il caricamento anche se il numero di byte caricati è inferiore a quello atteso.

Final TAP riconosce questi header: evidentemente Subchrist era già a conoscenza di questo trucco, perciò il suo programma riconosce correttamente uno "header chunk" di 179 byte.
 
Un giapponese sa recitare a memoria tutti i numeri di pi greco fino all'83431º decimale. Sa a memoria anche l'unico numero telefonico che è nella sua agendina - Daniele Luttazzi

Alberto

  • Utente
  • **
  • Post: 589
  • Gioco Preferito: Grand Prix Circuit
Vice 1.17
« Risposta #22 il: 25 Ottobre 2005, 18:33:42 »
 Ciao Fabrizio

(Ehp...ti ho mandato la mail di risposta senza aver prima letto il forum,non pensavo che fossi così tempestivo :D ).

Citazione
Evidentemente, il kernal loader, appena vede LS, considera finito il caricamento anche se il numero di byte caricati è inferiore a quello atteso.

A ulteriore conferma di questa ipotesi c'e' il fatto che VICE riempie il buffer solo fino a $03f0 (escluso) invece che fino a $03fb (incluso).

In serata invio al ViceTeam un bel "bug report",chissà che non provvedano già nella 1.18.

Grazie per la conferma
Bye

Massi cadenti

  • Utente
  • **
  • Post: 237
    • http://massicadenti.altervista.org
  • Gioco Preferito: The Last Ninja
Vice 1.17
« Risposta #23 il: 26 Ottobre 2005, 04:23:39 »
 Ragazzi, non ho parole :hail:
Lo so, per tanti è difficile da capire anche se ormai sono 12 anni che lo uso, ma <b>il mio nick ha la "c" <u>minuscola</u></b>...
"Prima volta" nel settembre 1982 (Vic20 di mio cugino)
Utente C16 dal 25 dicembre 1984. Utente C128 dal 24 dicembre 1987
C16(4), C128, Vic20, 1541, 1541-II, 1530(3), 1531(2), X1541, MPS802, CaptainMikyII, Moviola x C64, esp.16KB x C16, ca.1300 cassette, ca.900 floppy, ca.10 joystick, paddles, accessori vari
<a href="http://massicadenti.altervista.org/algasoft.html">La mia pagina sulle Alga Soft, sulle cassette napoletane e su come Napoli ha vissuto a modo tutto suo gli anni d'oro della pirateria</a>
<a href="http://ready64.it/forum/?showtopic=2252#">Massi cadenti non è né un esperto (anche se si millanta tale) né un frequentatore di questo forum</a>
Importante: <a href="http://ready64.massicadenti.com">Ready64 è un sito che <B><U>non</U> è di Massi cadenti</B> ma di Rob Nicoletti</a>

bubusan

  • Utente
  • **
  • Post: 178
    • http://www.edicolac64.com
  • Gioco Preferito: Impossibile escape e Quadrax
Vice 1.17
« Risposta #24 il: 26 Ottobre 2005, 14:30:43 »
 una bella notizia ,
bravi per l'ottimo lavoro svolto
Webmaster di www.edicolac64.com sito che raccoglie le cassette, i dischi da edicola e i giochi originali del commodore 64 , c16 e vic20  su autorizzazione della case di produzione e/o editori.

Alberto

  • Utente
  • **
  • Post: 589
  • Gioco Preferito: Grand Prix Circuit
Vice 1.17
« Risposta #25 il: 26 Ottobre 2005, 18:14:31 »
 
Citazione
Ragazzi, non ho parole 
Citazione
una bella notizia ,bravi per l'ottimo lavoro svolto

Eh eh,aspettiamo prima di cantare vittoria...
Cmq,ho inviato a Boose e soci il formato dettagliato dell'header + il .TAP annesso e spiegato la (pressochè certa) causa del bug;questo dovrebbe aumentare le probabilità che intervengano rapidamente (e compensare il mio inglese maccheronico :D ).

E se non si svegliano,mi sa tanto che farò un bel viaggetto nei sorgenti del VICE. :)

Ciao

Massi cadenti

  • Utente
  • **
  • Post: 237
    • http://massicadenti.altervista.org
  • Gioco Preferito: The Last Ninja
Vice 1.17
« Risposta #26 il: 26 Ottobre 2005, 21:16:20 »
Citazione da: "Alberto"
Cmq,ho inviato a Boose e soci il formato dettagliato dell'header + il .TAP annesso e spiegato la (pressochè certa) causa del bug;questo dovrebbe aumentare le probabilità che intervengano rapidamente (e compensare il mio inglese maccheronico :D ).
E dire che glielo avevo segnalato già 2 anni fa, ma ovviamente senza le scoperte tecniche che nel tempo sono uscite fuori ;)
Lo so, per tanti è difficile da capire anche se ormai sono 12 anni che lo uso, ma <b>il mio nick ha la "c" <u>minuscola</u></b>...
"Prima volta" nel settembre 1982 (Vic20 di mio cugino)
Utente C16 dal 25 dicembre 1984. Utente C128 dal 24 dicembre 1987
C16(4), C128, Vic20, 1541, 1541-II, 1530(3), 1531(2), X1541, MPS802, CaptainMikyII, Moviola x C64, esp.16KB x C16, ca.1300 cassette, ca.900 floppy, ca.10 joystick, paddles, accessori vari
<a href="http://massicadenti.altervista.org/algasoft.html">La mia pagina sulle Alga Soft, sulle cassette napoletane e su come Napoli ha vissuto a modo tutto suo gli anni d'oro della pirateria</a>
<a href="http://ready64.it/forum/?showtopic=2252#">Massi cadenti non è né un esperto (anche se si millanta tale) né un frequentatore di questo forum</a>
Importante: <a href="http://ready64.massicadenti.com">Ready64 è un sito che <B><U>non</U> è di Massi cadenti</B> ma di Rob Nicoletti</a>

iAN CooG

  • Utente
  • **
  • Post: 1774
    • http://iancoog.altervista.org
  • Gioco Preferito: Turbo Assembler, ActionReplay Monitor, DiskDemon
Vice 1.17
« Risposta #27 il: 28 Ottobre 2005, 21:20:04 »
 A proposito di scoperte...
L'annoso problema di Vice che mostrava poche linee (271 in PAL, 226 in NTSC) era risolvibile con pochissime modifiche.
http://iancoog.altervista.org/WinVice117_X...heightmaxed.rar
600kb, solo x64.exe, x128.exe e il sorgente con le #define modificate.
In modalita' PAL ora si vedono persino troppe righe, in modalita' NTSC purtroppo ho potuto allargare solo di 4 linee altrimenti non partiva nemmeno. CCS 2.0 per la modalita' NTSC rimane ancora indispensabile.
-=[]=--- iAN CooG/HVSC^C64Intros ---=[]=-
- http://hvsc.c64.org - http://intros.c64.org -