Local Call for Death :
Très prochainement : Local Call for Death pour Linux, Mac Os X et Windows.
Local Call for Death :
Très prochainement : Local Call for Death pour Linux, Mac Os X et Windows.
Une version Bêta pour Linux x64 64-bit :
http://auraes.free.fr/tmp/LCfD.tar.gz
http://www.mocagh.org/loadpage.php?getgame=if2
update :
Un premier bogue :
[spoiler]« SERVANTS MOVE UNOBTRUSIVELY AMONG THE TABLES. YOU RECOGNIZE THEMINISTER OF »
Il ne passe pas à la ligne entre THE et MINISTER donc j’obtiens THEMINISTER. Il n’y a pas de retour ligne entre les deux dans la base de données (fichier alpha) parce que sous TRS-80, la limite du nombre de caractères par ligne est de 64, et cela tombe juste sur le E de THE, donc MINISTER passe directement à la ligne suivante ; mais pas dans la console Linux.
Il va valoir que j’intercepte tous les Print() ![/spoiler]update :
Le premier est (quasiment) corrigé… mais en voilà un deuxième (énorme) : un bogue de recherche de la saisie utilisateur dans une chaîne. Le Parser ne comprend rien !
update :
Ça s’arrange…
update :
Tout a l’air O.K.
update :
FINIE !
Je n’ai pas souvenir d’avoir déjà vu une chose pareille :720 FOR I=0 TO 3:IF U(I)=2 THEN NEXT I
725 IF I=4 THEN RETURN ELSE PRINT
Bon, j’ai compris le truc, mais il va falloir que je me méfie des For/Next qui se prennent pour des While !
Du coup, comment dois-je interpréter ça :1900 FOR K=96 TO 127
1910 IF INSTR(I$,CHR$(K)) PRINT"
*** PLEASE DON'T USE THE SHIFT KEY WITH LETTERS ***":GOTO1800
ELSE NEXT K
Eh hop ! Quelques bogues en moins…
La solution en PureBasic :
For i = 0 To 3
If U(i) <> 2
Break
EndIf
Next i
If I = 4 : Return : Else : Print(Chr(#LF)) : EndIf
_1900:
For k = 96 To 127
If FindString(I$, Chr(k))
nPrint(Chr(#LF)+"*** PLEASE DON'T USE THE SHIFT KEY WITH LETTERS ***" + Chr(#LF)) : Goto _1800
EndIf
Next k
LA VERSION LINUX EST O.K. La version Windows semble fonctionner.
HI hi hi ! Mais qu’est ce que je vois là, tout en bas, au fin fond du fichier…
http://willus.com/trs80/?-a+1±p+126566±f+1
[spoiler]9001 'RELOCATABLE Z-80 CODE
9002 POKE 16526,0:POKE 16527,256
9003 DEFINT A,I:READAD,AS:FORI=1TOAS:READAV:POKEAD+I-1,AV:NEXTI:RETURN
9004 DATA 0,-65536
[/spoiler]Bon, il va falloir corriger tout ça ! (Idem dans le fichier source du code.)
bien joué !
Ça m’a pas été trop compliqué pour cette première partie ? Par contre j’avais vu oui que le code source utilisait de l’OCR, donc il reste des imperfections… bon courage
Es-tu allé loin dans l’histoire ?
Je ne suis pas sûr de comprendre !?
Mon anglais, toujours ! Je sature vite quand c’est familier ou littéraire.
Qu’es aquò OCR ?
Bon, je ne comprends pas comment réintégrer la portion de code en Basic manquante et altérée… La base de données (fichier Alpha), semble complète : elle est composée de 194 blocs de 256 octets. Le bloc 193 est altéré, mais ce n’est pas un bloc de texte mais d’instructions en Basic ; bloc que l’on retrouve à l’identique dans le fichier Story.
Me voilà bien avancé !
L’OCR c’est la reconnaissance automatique d’écriture, on scanne, on passe dans un logiciel et ça retranscrit en texte. J’ai l’impression que c’est ça vu que les mots sont parfois collés :
60 IFH1$="MR" H5$="SIR":GOTO70
Ça passe à la compilation ? On dirait vu que c’est dans le jeu. Purebasic adapte ça peut-^etre ? Parce que normalement il devrait y avoir plut^ot :
60 IF H1$="MR" H5$="SIR":GOTO 70
arf je suis b^ete, le fichier en pure basic c’est beta_0_97.pb. Là le code est bien retranscrit :
If H1$ = "MR" : H5$ = "SIR" : Goto _70 : EndIf
Tu l’as retapé à la main, ou bien ça a été converti automatiquement via un programme spécifique ?
Oui, mais je ne voyais pas bien le rapport ! Le source Basic est obtenu directement du Basic de l’émulateur TRS-80.
Mais non… Que c’est moy la beste !
Copier/coller du source TRS-80 est retouché à la main ; maintenant que j’ai compris les problèmes que cela pose, je pourrais en scripter une bonne partie. J’ai conservé, pour m’y retrouver, l’horrible indentation de l’original que j’ai un peu aérée :
[code]
60 IFH1$=« MR » H5$=« SIR »:GOTO70
If H1$ = « MR » : H5$ = « SIR » : Goto _70 : EndIf
au lieu de :
If H1$ = « MR »
H5$ = « SIR »
Goto _70
EndIf[/code]En general, je vire le $ qui surcharge inutilement.
ok, je pensais que le dsk contenait seulement du code compilé, et que le code source avait été publié dans un magazine.
J’ai ainsi nettoyé il y a quelques mois du code qui était passé à l’OCR depuis un livre de programmation de C64, et ça donnait justement souvent des mots accolés les uns contre les autres; comme le code basic de local call for death : github.com/farvardin/C64-music/ … music_book
Oui, mais là, ça doit être la grosse galère ! Et dire qu’a une époque on saisissait à la main des listings de revues : http://www.hebdogiciel.fr/, avec parfois des clavier pour le moins austères… le clavier tactile du ZX81… Argh !
L’égnime du Source Basic altéré de Local Call for Death semble enfin résolue :
http://forum.system-cfg.com/viewtopic.php?f=6&t=6440&p=105464#p105461
Ce qui voudrait dire que même sur émulateur TRS-80, le jeu est incomplet. Reste à retrouver l’original !
Concernant l’OCR, tu as dû lire ça :
http://forum.system-cfg.com/viewtopic.php?f=6&t=5792&sid=4d0c9ac7faad2bf7a142a7bf307b907a#p91300
Je t’ai laissé un commentaire sur GitHub : C64-music Issues.
Si une représentation hexadécimal de tes données t’ intéresse : http://auraes.free.fr/tmp/sid_player_hexa.tar.gz
(+ Mise à jour des avatars.)
merci, mais je ne lis pas l’hexadécimal couramment
(en fait je n’ai pas compris ce que je pouvais en faire)
Oui, mais là, ça doit être la grosse galère ! Et dire qu’a une époque on saisissait à la main des listings de revues : http://www.hebdogiciel.fr/, avec parfois des clavier pour le moins austères… le clavier tactile du ZX81… Argh !
Après, pour certains ordinateurs de cette époque, certaines touches du clavier permettaient via une combinaison de touche d’entrer directement des mots-clés BASIC. Après je ne sais pas si c’était vraiment pratique.
Exemple, clavier du célèbre MO5 : fr.academic.ru/pictures/frwiki/8 … 5_face.JPG
Il fallait combiner la touche « BASIC » à droite et la touche concernée pour que le mot-clé s’inscrive en entier…!
pour certains ordinateurs de cette époque, certaines touches du clavier permettaient via une combinaison de touche d’entrer directement des mots-clés BASIC
Oui, c’était le cas, heureusement, du ZX81 ! Mais cela restait très laborieux (je ne parle même pas des données enregistrées sur le lecteur cassette… le bruit de l’enregistrement et de la lecture et le temps surtout qu’il fallait !)
J’ai contacté l’auteur du site willus.com — c’est quelqu’un de très sympathique ; c’est lui qui a transposé C.I.A. Adventure (TRS-80) en C. Il m’a indiqué qu’il avait récupéré les fichiers de Local Call for Death sur Planet EMU. Il a aussi semblé intéressé par ma conversion de LCfD en Basic moderne.
Il est fort probable qu’il faille retrouver une version sur support original de LCfD et l’extraire à nouveau. Je vais continuer à prospecter… Sinon, comme c’est un jeu Adventure International, Scott Adams doit bien avoir ça dans ces archives !
Mais mon anglais… mon anglais ! pff…