Sauvegardons notre patrimoine logiciel !

 

        Mes chers abonnés, 

Après cette douloureuse péripétie racontée dans mon précédent billet, mais qui s'est heureusement bien terminée, ma priorité a donc été de sauvegarder mon travail en de multiples endroits (cloud, clé usb, différents disques durs). Ensuite, j'ai déplacé mon espace de travail sur un autre disque pour ne plus risquer d'utiliser ce disque dur qui m'avait laché une soirée avant de revenir comme si de rien n'était !

    Une fois cela terminé, la priorité pour la suite des développements m'a paru évidente, puisque j'avais passé tant de temps à faire ces sauvegardes de mon travail, j'allais donc développer cette fonctionnalité tant réclammée par ceux que j'ai croisé, et qui était de toutes façons un objectif initial : La gestion des sauvegarde de la partie en cours !

    Le fait que je gère le scénario via un automate et des données, facilite grandement la chose, j'ai cependant du ruser un peu, pour réutiliser un maximum mon code existant et ainsi limiter l'impact sur le volume mémoire du moteur.

    J'ai fait un choix pour le moment de ne permettre qu'une seule sauvegarde par face de disquette, et je recommande d'utiliser une face spécifique et non celles du jeu lui même. Ce choix très limitant, me permet de simplifier au maximum l'ergonomie et le nombre de controle à effectuer. Récupérer le catalogue, identifier les fichiers de sauvegarde et les proposer via une ihm au joueur aurait demandé beaucoup de travail, et d'espace mémoire ! Quand on sait que le gros des joueurs utiliseront un émulateur qui gère les snapshots, ça n'apporte pas beaucoup à ces derniers d'avoir la possibilité de faire une sauvegarde comme cela !

    J'ai cependant bien galéré, même avec cette ergonomie spartiate, à cause de choix techniques fait sur les différents émulateurs que j'ai utilisé. En effet, la plupart des émulateurs ne mettent pas à jour directement le DSK que vous manipulez et en conséquence, le programme peut très bien vous dire qu'il a terminé d'écrire la sauvegarde, et vous continuez la partie en pensant que vous pourrez revenir à ce point de sauvegarde plus tard pour faire d'autres choix et finalement, l'émulateur n'a rien écrit !

  C'est un choix technique, pour les performances, mais ça reste un sacré problème pour les développeurs qui développent des programmes écrivant sur les disquettes ! Du coup, plusieurs fois, je me suis fait avoir en pensant avoir un bug, quand il ne s'agissait que d'un soucis de cache disque ! Caprice forever par exemple est capable de forcer la mise à jour du dsk, quand on lui dit éjecter la disquette A: (mais uniquement celle là, si vous faites éjecter les 2 disquettes en même temps, ça ne marche pas !). Mais si dans Caprice Forever, au lieu d'éjecter la disquette de sauvegarde, vous vous contentez d'insérer à nouveau la disquette de jeux, alors même s'il a bien pris en compte votre insertion de la nouvelle disquette, il ne fait pas l'éjection propre de l'ancienne disquette !

     C'est rageant, ça m'a fait perdre pas mal de temps. Cela dit, s'il avait fait un peu moins chaud, je m'en serai peut-être aperçu plus vite !

     Mais sinon, à part ça, pour l'avancement, du projet, nous pouvons dire que ça a très bien avancé ! Le moteur est pour ainsi dire complet avec sa fonction de sauvegarde. Le seul bémol que j'apporterai, c'est qu'en l'état il ne peut pas marcher sur la carte M4 que j'ai acquise. En effet, cette dernière utilise des portions de la RAM nécessaire à la librairie typo de RetroPoke. Pour le moment, je n'ai pas encore toute la liste des portions de RAM requise pour la M4. Quand je l'aurai obtenu, nous verrons ce qui peut être entrepris pour contourner ça !

     Et coté graphisme, pas mal d'avancements aussi, je ne résiste pas au plaisir de vous partager la dernière création de LZamu : 
       
    



Commentaires

Posts les plus consultés de ce blog

Vive la diversité !

Back to Basic !