Canalblog
Suivre ce blog Administration + Créer mon blog

L'ile au trésor ou l'histoire d'un vieux projet

Archives
21 novembre 2020

La solution à tout nos problèmes ! Daron en pull !

Ce soir à 22h00, JB Le Daron va streamer la solution de mon jeu l'île au trésor !

C'est pour ainsi dire le point final de ce projet, qui m'aura vraiment tenu en haleine depuis bientôt 3 ans.
La version que va montrer JB ce soir sera donc la version optimisée, utilisant la librairie Typo de RetroPoke.

Cette version dispose aussi de la musique de conclusion, composée par maestro JB lui même !

Je suis vraiment content du résultat obtenu, et je remercie donc tout ceux qui m'ont aidé à l'atteindre, et donc tout particulièrement JB pour m'avoir fourni ces deux musiques et donc de streamer une deuxième fois sur mon jeu !

Il est donc temps à présent de distribuer cette version afin que tout le monde puisse en profiter.
Je trouve que ce dernier progrès apporte quand même plus de confort pour jouer. Voici le lien pour la télécharger :
2020_09_28_20_22_00_manuelle_optimisee



PS : Rendez-vous demain pour mon prochain cours de basic.

Publicité
8 novembre 2020

Suivre son instinct !

Ce soir, j'ai mis enfin pu intégrer la dernière musique de JB et mettre ainsi un point final au développement de ce jeu. J'ai aussi intégré une routine d'affichage du texte en mode 0 avec une nouvelle fonte plus petite. Cette dernière vient de RetroPoke, qui l'a présenté lors du concours d'assembleur de cet été.

C'est vraiment un soulagement pour moi, de mettre un peu ce projet de coté, vu qu'il m'occupe l'esprit depuis de longs mois. JB Le Daron devrait sous peu, vous présenter la solution en direct depuis un véritable CPC. Le jeu étant finissable en 30-45 minutes ça devrait aller.

Je donnerais alors le lien dans le chat twitch, puis dans ce blog pour télécharger cette nouvelle "ultimate version, editor's cut".

Le jeu reste pour le moment uniquement compatible 6128, à cause de quelques instructions apparues dans ce dernier qui me sont utiles. Je verrais si je trouve un moyen de les remplacer plus tard.

En attendant, je vais passer à autre chose.

Depuis que j'ai rejoint la communauté CPC, j'ai pu voir un grand nombre de streams, et je caressais l'idée d'en faire moi même un jour. Alors n'étant pas forcément un joueur très talentueux, je préfère miser sur un domaine que je maîtrise un peu plus la programmation. En suivant les conseils de Zisquier, je me suis finalement dit qu'un stream sur le basic serait finalement utile pour certains.

Je commencerais donc par remettre les choses dans leur contexte, les origines du langage, ses objectifs, ses limites et nous verrons ensemble au fil des streams comment programmer de petites choses sur le basic de notre cher CPC, avec pour objectif de comprendre un programme existant, l'analyser et l'améliorer.

Je pense que je ferais aussi une petite partie jeu, histoire de se détendre. Je pense streamer en journée les WE et jours fériés.

Si tout va bien, je streamerais donc le mercredi 11 novembre à 14h00 sur http://twitch.tv/ldir_hector/

2 septembre 2020

Arrivée derchi ;-) Ciao Piccolo Computer !

Je suivrais la tradition de faire des jeux de mots pourris, jusqu'au bout !

Déclaration d'arrivée/de départ

Mais suis-je vraiment arrivé au bout de ce projet ? N'y a-t-il plus rien à corriger, ou à faire évoluer ? N'il-y-a-t-il aucune amélioration à envisager ?

Pour les corrections, disons qu'à ma connaissance, il n'y a plus de bugs, mais le jeu étant relativement long, et la mémoire de l'interpréteur basic étant très occupée, je n'exclue pas que des bugs rotors soient passés entre les mailles du filet. Je pense que si on me remonte précisément les bugs et que j'arrive à les reproduire, je les corrigerais. Mais si le bug n'est pas reproductible, ou s'il n'est pas clairement expliqué, je ne m'en n'occuperais pas.

Pour les évolutions, j'avoue ne pas en envisager. Je suis allé déjà bien plus loin que le projet d'origine, j'ai refait l'ergonomie du jeu, j'ai agrémenté le scénario d'indices, de descriptions, de bruitages. J'ai même pu ajouter grâce à l'aide d'Amaury Durand, une intro en fullscreen, une merveille technique qui me sidérait à l'époque ! J'ai même pu y adjoindre la musique qu'a réalisée pour moi Jean-Baptiste Ciepielewski.

En réalité, la seule fonctionnalité que j'aurais aimé ajouter c'est la sauvegarde. Mais ça supposait une refonte complète du moteur et des tableaux du jeu. Ca serait une grosse amélioration du jeu selon moi. Mais ça représente trop de travail, je ne suis pas du tout motivé pour le faire !

Une autre amélioration serait la réduction des temps de chargements. Le temps de chargement initial est affreusement long, et les temps de chargement entre les tableaux et lui aussi bien trop long. Là encore, il n'y a aucune solution sans refondre complétement le moteur, la lenteur de chargement vient avant tout du chargement de petits fichiers basic et à moins de les réduire en taille encore plus je ne vois pas comment faire. Les fichiers des écrans quand à eux sont compressés via un compacteur sur PC, bien plus efficace que le compacteur d'OCP mais ça ne fait pas de miracle, la faute surtout à des octets qui contiennent deux pixels au lieu d'un et à une organisation des octets de l'image assez particulière. Là aussi du coup, je ne suis pas vraiment motivé pour le faire.

Une amélioration qui serait appréciable, et plus abordable serait l'accélération de l'affichage des textes. Tout est intégralement fait en basic et ça reste pour moi un des points noirs du jeu. Ca l'est d'autant plus depuis la refonte de l'ergonomie faite début 2019 quand j'ai décidé d'afficher une liste d'actions et l'inventaire à tour de rôle dans la même fenêtre. En utilisant des vecteurs systèmes, et de petites routines assembleur, je n'ai pas réussi à obtenir de gains significatifs et ma mauvaise gestion de la ram, faisait que le jeu devenait instable. Cela dit, et même si l'assembleur Z80 me gonfle de plus en plus ça reste une perspective intéressante, je me lancerais peut-être dans ce chantier un de ces quatre matins. Ca pourrait rendre le jeu nettement plus agréable à jouer selon moi.

Une autre amélioration qui serait pas forcément très complexe, serait de rendre le code compatible CPC 464. Alors étant donné l'usage qui est fait de la deuxième bank de mémoire, j'excluerais d'emblée les 464 sans extension et de même, je ne porterais pas le jeu sur cassette, les temps de chargement étant déjà bien assez longs ! Par contre, j'utilise encore quelques instructions spécifiques au cpc 6128 comme par exemple graphics pen qui me permet de gérer la superposition de caractère texte sur une image. Il y a des bidouilles à faire pour faire la même chose sur 464. Ca ne devrait pas être trop complexe et ça devrait pouvoir se valider sur émulateur dans un premier temps. Ce n'est pas forcément le chantier le plus motivant qui soit, étant donné que ça ne concerne que relativement peu de monde et que du fait de l'absence de sauvegarde, je conseille même de jouer sur émulateur ! Mais c'est un chantier sur lequel je devrais m'atteler dès que l'envie me prendra.

Les autres améliorations qui seraient souhaitables selon moi sont tout bonnement des reprises à zéro du jeu, selon moi il faudrait refaire les graphismes en plus grand, en abandonnant le déplacement par zone, pour un déplacement au pixel (avec la même tolérance par contre, il ne s'agit pas de tomber dans ces écueils de bien des point&click où il faut chercher une zone de 3 pixels de large sur deux de hauteur dans certains tableaux. Mais là, je n'aurais jamais la motivation, et puis ça ne serait plus du tout le même jeu du coup.

Mon but initial était de terminer ce jeu, pour rendre hommage à Bruno, et je pense que ce but a été largement atteint d'ores et déjà.

Voici donc une nouvelle version de l'ile au trésor que j'ose affubler du suffixe finale, même si je risque de tordre un peu la signification de ce mot par la suite !

2020_09_02_19_54_00_manuelle_finale

1 juin 2020

C'est fini ou pas ?

Avec mon expérience, je me doutais que j'avais laissé passer des bugs. Je pensais quand même avoir été très rigoureux et n'avoir laissé passé que des choses mineures. Après tout j'avais pu tester individuellement quasiment tout les tableaux dans leur moindre recoin et j'arrivais à terminer le jeu de bout en bout.

Seulement le plus gros bug que je n'avais pas anticipé venait du basic lui même ! En effet, tant que l'on dispose d'une quantité raisonnable de mémoire libre tout va bien, il fonctionne correctement et quand on approche des limites, il commence à avoir un comportement imprévisible. Je pensais avoir enfin résolu cela mais Zisquier et JB le Daron sont tombés sur un problème des plus gênants.

Ces derniers étant passionnés par les jeux d'aventure, s'étaient lancés le défi suivant : Le premier des deux qui terminerait le jeu aurait le droit de streamer la solution sur Twitch.

Zisquier et JB le Daron se sont alors lancés dans une exploration systématique de toutes les cases de tout les tableaux. Et c'est là qu'ils ont rencontré un premier soucis majeur ! Le fait d'utiliser le verbe examiner massivement entraine sans qu'on comprenne vraiment pourquoi la corruption d'un tableau de valeurs entières en mémoire qui servaient justement à déterminer ce qui est examinable et ce qui ne l'est pas.

Donc du coup, certains objets n'apparaissaient pas lorsque l'on examiner les cases mais fort heureusement, ils ont aussi remarqué que le verbe prendre ne souffrait pas de ce bug. Cela leur a permis de contourner le bug et de continuer quand même le jeu jusqu'au bout et me remonter quelques autres bugs moins grave.

Zisquier a donc fini le jeu en premier non sans avoir bien galéré à la fin. JB le Daron l'a fini lui aussi quelques jours après.

A présent, grace à leurs précieux retours j'ai pu corriger tout ces bugs et ce coup ci, je vais leur laisser regarder ces corrections avant de publier cette version que j'espère finale.

Enfin finale, pas tout à fait, je dois encore faire une nouvelle version qui sera compatible avec les CPC 464 + extension de ram et DDI.

Mais quoi qu'il en soit, on touche au but, ce projet va enfin être terminé après toutes ces années !
Where's the KB 4034661 big bug fix for Windows 10 Anniversary ...

12 mai 2020

Téléchargez l'île au trésor enfin !

Voici enfin le lien pour télécharger mon jeu. Pas plus de bla bla, vous pouvez tout simplement télécharger l'archive zip qui contient la doc et les 3 fichiers .DSK du jeu pour votre émulateur ou votre gotek !

Archive Ile Au Trésor

ile_au_tresor

Publicité
7 mai 2020

La pression de l'annonce

J'ai enfin annoncé ce matin à minuit passé que je sortais le jeu la semaine prochaine.

J'ai peut-être été un peu vite en besogne, mais pas de panique, je vais m'en sortir et au pire j'ai un plan de secours !

 

Petit rappel chronologique :

Juste avant le stream de JB Le Daron de hier (https://www.youtube.com/watch?v=b1RmShweb3E&feature=youtu.be), j'annonçais donc à JB que j'avais enfin réussi à intégrer sa musique dans mon intro et qu'il pouvait l'annoncer. Il me demande de lui envoyer le .dsk via Facebook, je le fais et la PAF ! Ca plante direct, alors que bizarrement ça marche chez moi.

Je triture, je pense à un problème de cache DSK sous winape (un problème connu), mais non il s'agit bien d'autre chose.

Du coup, JB commence son stream, déçu de ne pas pouvoir faire l'annonce et montrer notre création commune !

Et puis pendant le stream, alors que je vois le score de JB sur Dragon Attack atteindre un nombre déjà énorme, j'ai un déclic !
J'ai oublié un & en sauvegardant mon fichier binaire et donc ma routine était tronquée sur la disquette !

Je refais le test, ce coup ci, je pense à reseter l'émulateur, et ça plante à nouveau ! Bon j'ai arrêté de m'arracher les cheveux pour épargner le peu qui reste mais l'envie était là ! Purée d'assembleur à la noix !!! Tu peux pas me dire ce qui va pas au lieu de planter ?!!!!

Restons Zen ! Je réassemble, je prends la calculette hexa, et à la faveur de ma distraction, j'avais tout bêtement mal calculé ma longueur de routine qui à la faveur d'un copier coller de bourrin, avait doublé de taille.

J'assemble, je sauvegarde correctement, je resette, je lance et là, ça marche enfin et ça quitte sans planter !

J'avertis donc JB par Facebook que j'ai enfin réussi à intégrer sa musique dans l'intro fullscreen du jeu.

Il l'annonce dans la foulée à l'assistance, je rappelle brièvement le contexte, je redonne l'adresse de ce blog et il lance le programme. La musique est vraiment bien, et c'est la première composition de JB.
Un premier passage, en mono par erreur, un nouveau passage en stéréo qui permet de mieux apprécier la composition. Bref je suis aux anges et le public semble satisfait. J'annonce donc que la sortie est pour très bientôt et que je vais teaser comme un porc !

Je fais une première annonce sur le discord amstrad.eu, et je vais me coucher.

Mais l'excitation de cette annonce, et la pression qu'elle me met, m'empêche de dormir et là à force de cogiter, je m'aperçois qu'il y a encore un problème ! Le programme s'arrête non pas en revenant au basic, mais en resettant le CPC !!!

C'est la cata, j'ai annoncé que c'était bon alors que non !! Du coup, je ne vais pas me dédire, mon objectif in fine c'est que JB puisse streamer en exclusivité mon jeu mercredi, avant sa diffusion !!

Le tracas fait que je passe une sale nuit, et en me levant, je vérifie que je n'ai pas rêvé, mais non le prog resette.

A la faveur de quelques pauses et de l'aide de BDCIron (Amaury Durand), qui me conseille de surveiller ma pile en entrée et en sortie de mon prog, je comprends que j'ai beaucoup trop empilé de données.

Un petit coup d'oeil durant une pause durant l'après midi et je pige enfin le problème, un push dans une boucle sans pop ! L'erreur digne de la quiche en assembleur que je suis encore ! Je devrais abandonner mon pseudo ldir_hector et m'appeler stack_overflow ! ;)

Une fois ce soucis corrigé, un dernier problème, l'écran n'est pas complétement revenu à la bonne taille ! Avec la capture, Amaury me dit directement qu'il me manque le réglage du registre 6, je corrige et PAF ! Ca marche nickel !!!

Merci Amaury !!!

Du coup, demain, je prépare les disquettes virtuelles.

Au passage je remercie aussi Demoniak et Roudoudou qui ont visité mon blog et qui se sont intéressés à deux autres bugs que j'ai rencontré : l'un sur la non compatibilité de mon jeu sur 464 et l'autre sur l'outil manageDsk en mode automatique.

Du coup, c'est bon, ce jeu va enfin sortir, même si JB n'a pas encore terminé la musique de fin, je distribuerais la version l'intégrant plus tard, le scénario étant quand même complexe, s'il n'y a pas de triche, JB et moi devrions avoir encore un peu de temps !

C'est pour moi un grand soulagement d'enfin pouvoir bientôt le distribuer au format virtuel, et dans quelques temps aussi sur un repository style github car je souhaite que mon jeu soit open source ! Comme ça tout le monde verra que je codais déjà comme un porc à l'époque ! ;)

Les importations de porc suspendues par crainte de la fièvre ...

21 septembre 2019

Vive le progrès !

Bonne nouvelle, Le jeu est pour ainsi dire presque terminé.

J'ai aussi terminé le manuel, expliquant comment lancer le jeu, s'en servir et donnant quelques conseils (rien de très long, 5 pages avec beaucoup d'images ;-) !)

De son coté, JB le daron a acheté un clavier midi qui lui permet de jouer directement des notes reconnues par Arkos Tracker II qui lui permettra de faire une musique d'intro pour le jeu.

Une fois terminée, je l'intègrerais aussi vite que possible afin qu'il puisse le faire en stream. Comme il me fournit la musique, je trouve normal de lui accorder la primeur du jeu. Mais je le diffuserais ensuite très vite.

Contrairement à ce que je pensais mon jeu ne sera pas pour l'instant compatible CPC464 + extension de ram et lecteur de disquette, la faute à une gestion de la mémoire en basic légèrement différente. Peut-être que je sortirais un jour, un correctif pour cela, mais cette configuration étant tout de même plutôt rare, ça n'était pas ma priorité. En tout cas, sur l'émulateur sugar box et sur l'émulateur caprice forever, réglés pour cette configuration le jeu plante pendant le chargement.

Je languis de pouvoir enfin diffuser ce jeu.

En tout cas, je suis épaté par tout les moyens à notre disposition pour développer pour le CPC, que ce soit les softs sur CPC comme Gos, ImpDraw, ou les softs sur PC permettant de faire des graphismes comme ConvImgCPC, convwav, Arkos Tracker II, rasm et j'en oublie...

Je savais que le CPC était capable de grandes choses, même si je l'avais lâchement abandonné, mais je n'aurai pas cru que ces possibilités deviennent aussi facilement accessibles à présent !

C'est grâce au travail de tout ces géniaux programmeurs qui ont non seulement partagé leur logiciels, mais aussi leur savoir à coup de streams, de documentation, de publications sur des forums et d'assistance envers les personnes moins expérimentées mais curieuses d'apprendre les arcanes du CRTC ;-) Et après ces initiés pouvaient répondre avec gratitude :

https://www.youtube.com/watch?v=ma7TL8jJT0A

1 juillet 2019

Rétrospective en prélude à la conclusion ???

Pour rappel, je m'étais donné pour objectif au départ de terminer ce jeu, en hommage à mon ami Bruno, décédé en janvier 2018.

Il y a presque 25 ans, en 1994, j'abandonnais la réalisation de ce jeu, face aux dernières difficultés du développement de ce jeu. Il s'agissait principalement de problème de mémoire disponible pour l'interpréteur basic. La lassitude après avoir testé et codé 40 tableaux sur 50, et ayant codé les 10 derniers à l'arrache sans même les avoir testé une fois, m'avait fait laisser tomber. Qui plus est, je démarrais mon apprentissage du PC, de windows, dont le confort était incomparable. J'allais faire de cet outil, et de cet apprentissage mon métier, et donc le CPC était remisé dans ma chambre, puis dans un carton. Bruno fit de même, mais on se disait qu'on le terminerait un jour.

En apprenant son décés, je me suis dit que si jamais mes disquettes fonctionnaient à nouveau, je terminerais ce projet. A présent, plus d'un an a passé, on pourrait croire que je traine, mais ça n'est qu'une partie de la vérité. La réalité c'est que j'ai fait bien plus que terminer ce projet. Lorsque Tarodius a fait son stream sur ma version béta le vendredi 30 novembre, cette béta représentait déjà une grosse refonte du projet initial et elle avait atteint tout les objectifs initiaux du projet. J'avais même revu l'ergonomie du jeu, d'une façon qui aurait certainement plut à Bruno. J'aurais très bien pu alors terminer de corriger quelques bugs et sortir le jeu, en janvier 2019.

Mais les critiques constructives des spectateurs de ce stream m'ont persuadé qu'il ne fallait pas en rester là. Tout d'abord, leurs remarques ont porté sur l'ergonomie, et il est vrai que même si elle était meilleure que l'initiale, elle laissait encore à désirer. Ce n'était pas forcément grand chose à coder mais ça rendrait le jeu nettement plus compréhensible. Ensuite, il fallait que j'améliore le scénario pour amener des indices. Bruno voulait un jeu exceptionnellement difficile, mais là, il y était allé très fort. On n'avait aucun indice ou presque, et même si la liste des verbes possibles étaient limités par l'ihm, il y en avait tout de même 22 ! Et à l'époque c'était pire encore car l'ihm demander de taper le verbe ! J'ai donc décidé d'utiliser la zone de réponse pour indiquer à chaque écran un petit élément de contexte, pour aiguiller plus ou moins subtilement le joueur. Puis j'ai ajouté comme ça se faisait parfois dans d'autres jeux d'aventures un système d'aide. Il suffira au joueur d'appuyer sur F1 pour obtenir une indication sur le tableau en cours.

Fort de ces évolutions et correctifs, j'ai été tenté de laisser le jeu à ce stade pour le publier enfin. Mais une autre remarque des spectateurs était le manque de son dans le jeu ainsi que d'une musique dans l'introduction. Plus tard, JB Le Daron me proposa même de me faire une musique spécialement pour mon jeu ! Parallèlement à ça, j'ai trouvé l'utilitaire convwav de Ludovic Deplanque, qui m'a permis de faire des samples sur CPC ! Je décidais donc de tenter d'en rajouter quelques uns ici ou là histoire de donner un petit plus que je n'aurais jamais pu imaginer à l'époque.

J'ai donc pour pouvoir jouer la musique du Daron, regardé du coté d'Arkos Tracker 2, et son auteur Julien Névo m'a bien aidé pour ça.

En parallèle, je me décidais enfin à taquiner pour de bon le fullscreen (qu'on appelait overscan avant) grace au logiciel graph'os et à l'aide de son auteur Amaury Durand (alias BDCIron). Je repris l'écran titre qu'avait fait Bruno et j'improvisais un peu avec d'abord gimp et convimgcpc puis graph'os pour faire cette image que j'ai déjà partagé.

L'ultime étape était donc de faire un programme qui affichait l'image que j'avais faite en fullscreen et qui jouait une musique d'Arkos Tracker 2 en même temps. La musique du Daron n'étant pas encore prête, je prenais donc un des exemples fournis avec le soft Arkos Tracker 2.

Avec la routine fournie par Amaury Durand, je faisais donc apparaître mon image, puis en intégrant l'appel à la routine de Julien Névo dans celle d'Amaury, le résultat fonctionnait à merveille. Le lanceur du jeu est donc presque prêt, il me reste plus qu'à intégrer la musique de JB le Daron quand elle sera prête. En attendant, je vais faire intégrer le lanceur tel quel dans le jeu, et refaire une recette complète pour m'assurer que tout fonctionne.

Je compte aussi refaire la documentation du jeu, pour refaire les captures d'écran étant donné que j'ai changé de fonte.

test_arkos

Je partage donc ce lanceur, pour le tester, mettez cette disquette dans un émulateur (testé avec winape, caprice forever, sugar box, retro virtual machine et javaCPC)

 

23 juin 2019

On touche au but...

Non je ne vais pas me lancer sur une éloge ou au contraire une diatribe sur le foot ! (jeu de mot pourri : checked !).

A présent, après une énième phase de recette de bout en bout, j'ai pu corrigé 8 nouveaux bugs qui m'avaient échappé. Certains n'étaient pas vraiment des bugs, mais plutôt des réponses inadéquates du genre lorsque l'on a fait une action bien particulière, la réponse était juste "OK !" au lieu d'une réponse plus précise qui permet au joueur de vraiment s'apercevoir qu'il a réussi quelque chose.

Aucun de ces 8 bugs n'étaient bloquant, on pouvait quand même terminer le jeu mais ils pouvaient être pénibles. Le plus génant d'entre eux était qu'une des actions à faire n'était pas prise en compte la première fois qu'on la faisait, mais seulement la seconde fois. C'était une erreur dans mon code, une belle démonstration des limites de la programmation spaghettis.

A présent, je suis donc plus dans une phase cosmétique, je rajoute quelques bruitages basic et quelques samples. Pour ces derniers, ma limitation technique étant à 11000 hz et 1 bit d'encodage, font que je ne peux pas forcément mettre tout ce que je voudrais tellement le résultat peut être horrible. Ainsi un bête bruit de tiroir caisse, qui à la limite serait bien passé en encodage 4 bits, devient une agression auditive.

J'essaye aussi de faire une intro digne de ce nom, et du coup, j'ai fait le choix de faire un programme à part, qui affichera une image fullscreen et jouera une musique en même temps. J'ai d'ores et déjà réalisé l'image fullscreen avec Graph'os :

L'auteur de Graph'os Amaury Durand, va me fournir une routine assembleur pour afficher cette image dans mon programme d'intro. Mais avant cela, je dois déterminer à quelle adresse va se charger la routine qui jouera la musique. La musique va être faite par JB Le Daron qui utilisera pour cela Arkos Tracker 2.

Je dois donc étudier comment fonctionne ce logiciel windows qui produit des musiques pour Amstrad (ainsi que spectrum) et comment elles sont jouées sur nos CPC. Le sujet est assez technique, et je n'ai pour l'instant pas trouvé toutes les informations que j'aurai voulu.

Je verrais ensuite, s'il y a lieu de modifier le programme de fin que j'ai déjà fait. Il n'y a pas encore de musique, mais ce n'est pas forcément nécessaire.

En tout cas les choses avancent bien.

 

 

19 mai 2019

Les outils et leurs limites

Depuis le début de la reprise de ce projet en juin 2018, j'utilise un excellent outil manageDSK de Ludovic Deplanque. Il me permet d'extraire le contenu de disquettes virtuelles et de le modifier.

Sans cet outil, la reprise du projet aurait été fortement compromise. L'outil dispose d'une interface graphique facilitant ces manipulations et après un court apprentissage, on finit par en maîtriser tout les aspects. Le plus difficile a été de trouver comment récupérer les fichiers basic sous un format exploitable (ascii). En effet, lorsqu'un fichier basic est sauvegardé par défaut sur l'amstrad, il est en quelque sorte pré-digéré pour en rendre l'interprétation plus rapide. Sur l'amstrad ça reste transparent, et on peut continuer à éditer son source comme si de rien n'était. Mais par contre, lorsque l'on transfère ce fichier "pré-digéré" sur windows, le source est alors illisible. Heureusement l'outil manageDSK a une parade, et permet de retraduire ce source "pré-digéré" en un fichier ascii parfaitement exploitable sous windows.

Par contre, on constate rapidement 2 petits bugs :

  • Le premier, est qu'il supprime la dernière ligne du programme d'un fichier basic, si celle-ci ne se termine pas par un retour chariot. C'est embêtant, mais une fois qu'on le sait, on peut faire en sorte de contourner le problème.
  • Le second est plus contraignant, en fait tout les caractères accentués àéèê et surtout ù disparaissent lors de l'import de fichiers sur la disquette virtuelle.

Ce second problème implique donc à chaque import d'un fichier basic, de modifier le source directement sur l'émulateur.

Je m'étais habitué à cela, car tout au long du projet, j'ai principalement travaillé directement sur émulateur. Les rares fois, où je me suis servi d'un éditeur sous windows, pour des corrections massives, j'ai fait alors attention à ce détail !

A présent, que le projet est en bonne voie d'être fini, je dois prévoir un script pour construire des disquettes à partir des sources basic et des fichiers binaires du projet. Cela peut paraître surprenant, surtout à la fin du projet, mais il y a 2 raisons à celà :

  • Les dernières modifications que je souhaite faire supposent de beaucoup modifier la répartition des fichiers, en effet, je passe le jeu de 2 faces de disquettes à 4 !
  • J'ai pour objectif de mettre ce jeu en open source et par conséquent faire un script de build est un passage obligé.

Du coup, j'utilise toujours manageDsk qui peut aussi fonctionner en ligne de commande, mais malheureusement le bug sur les caractères accentués reste. Or j'utilise des RSX qui commencent par le caractère ù et donc la disparition de ce caractère entraine des syntax error au démarrage du jeu ! Mes nouvelles disquettes virtuelles nécessitent donc une correction manuelle, ce qui ruine une bonne partie de l'intérêt de faire un script de build.

Je vois 3 pistes pour résoudre cela :

  • Attendre une correction de l'outil manageDsk (je ne saurais pas la faire moi-même !)
  • Trouver un autre outil qui n'aurait pas ce problème.
  • Trouver un moyen de remplacer les appels RSX, par des call

La première solution me laisse du coup quasiment bloqué dans l'attente d'une hypothétique correction. Je me doute que ça doit être un problème complexe étant donné la diversité des jeux de caractères à gérer dans tout les cas.

La seconde solution, que j'ai bien sur déjà tenté sans succès, tout les outils que j'ai pu trouver sont orientés transfert de fichier binaires. A dire vrai, le transfert de fichiers binaires c'est le plus simple, puisqu'on ne touche à rien ! Ça fonctionne donc bien pour les fichiers compilés de l'assembleur, les images, les sons, mais pas pour les fichiers basic (hormis peut-être pour leur forme pré-digérée).

La troisième solution n'est pas vraiment bonne de toutes façons. Certes, l'absence du caractère ù est critique puisqu'elle entraîne une erreur de syntaxe au lancement, mais au delà de ça, j'utilise dans le title screen et dans les remerciements à la fin, des caractères accentués et ça m'embêterait de les supprimer.

Bref, pour le moment, ma seule solution est de me contenter d'un build qui ne fait tout son travail et de corriger mes sources manuellement sous émulateur.

Bon en tout cas, ça ne remet pas en cause, toute la gratitude que j'ai pour l'auteur de ce logiciel sans qui rien n'aurait été possible, et en plus il est aussi l'auteur du logiciel me permettant d'intégrer des samples, et aussi l'auteur de convimgcpc, qui m'a permis de faire le dernier écran manquant du jeu !

Bref, pour conclure, le projet continue d'avancer malgré tout. Je n'ai pas encore de date étant donné que je fais évoluer à la hausse le périmètre de ce que je veux intégrer dans le jeu, au fur et à mesure de mes découvertes.

 

Publicité
1 2 3 4 > >>
L'ile au trésor ou l'histoire d'un vieux projet
  • Ce blog raconte l'histoire d'un vieux projet informatique que j'avais initié avec 2 de mes amis au lycée. A l'époque, nous avions chacun un ordinateur amstrad CPC 6128 et nous avions envie de réaliser un jeu d'aventure dessus. C'était en 1993.
  • Accueil du blog
  • Créer un blog avec CanalBlog
Publicité
Publicité