Olé sur Amstrad

Publié le par Francois Lionet

Nous devions fabriquer une version Amstrad CPC 64 du logiciel Olé. Je ne connaissais pas cet ordinateur à l'époque (en plus il utilisait un processeur Z80 de Zilog, l'ennemi juré des utilisateurs de 6502 Motorola). Il fut donc décidé d'utiliser la compétence de programmeurs externes pour réaliser la version CPC.
Je commençais a bosser sur mon code, pour le rendre plus présentable. Le problème est que je n'utilisais pas un véritable compilateur, mais simplement un moniteur, je faisais tout "à la main". Mon code était inmodifiaable, poké à la main dans des adresses données dans la mémoire du Commodore, et il faut le dire, assez spaghetti. Par exemple, lorsque je voulais corriger un bug, j'étais obligé de mettre un gros "JUMP", un saut à une autre adresse, à l'endroit ou je voulais corriger le bug. La routine de destination du bug faisait son travail, et revenait au programme principal par un autre magnifique "JUMP" en plein milieu du code. Un véritable sac de noeuds, que moi seul pouvait comprendre.
Je réalisais tant bien que mal une documentation sur mon code, en passant de nombreuses heures à le décortiquer.
Vers le mois de Juin, nous avions rendez-vous chez Jawx avec les programmeurs en charge du projet CPC64. Et la, surprise, étaient présent 3 poly-techniciens qui voulaient travailler pendant l'été et se payer un voyage autour du monde grâce à l'argent de la conversion. J'étais extrèmement impressionné. Les poly-techniciens étaient simples et très sympa.
Avec un peu de honte je leur montrais et commentais mon application, leur donnais la documentation. Pour eux, tout avait l'air très simple "Pas de probleme, ce sera fait avant la find de l'été" "Nous vons déjà bossé sur de telles adaptation".
Rassuré par leur compétences, je repartais confiant.
Un mois plus tard, nouvelle réunion. Il me pausent des questions sur les instructions du processeur 6502. Au fur et à mesure de la discussion, je découvre avec horreur que leur projet était de réaliser un émulateur 6502 pour l'Amstrad CPC, et de passer mon programme tel quel dans cet émulateur.
Un peu d'explications. Un émulateur est un programme qui simule le fonctionnement du processeur sur une autre machine. En l'occurence, les poly-techniciens voulaient simuler le fonctionnement d'un Commodore 64 sur un Amstrad CPC.
Il va sans dire que cette technique était vouée à l'échec dès sa naissance. Le Commodore 64 était à l'époque un ordinateur très en avance, avec des objets graphiques gérés par des circuits spécialisés, comme les sprites. Simuler un tel ordinateur très complexe sur une machine plus simple et moins puissante comme l'Amstrad était suicidaire. De plus, le programme de Olé prennait une bonne partie de la mémoire disponible sur cet ordinateur. Il était impossible de faire tenir à la fois un émulateur et mon programme sur une seule machine.
Il va sans dire que je tombais sur le ... lorsque je compris leur projet. Mais bon,  a part quelques remarques, je ne disais rien, impressionné que j'etais par leur curriculum.
Un mois plus tard, nouvelle réunion. Il nous montrent trois sprites qui bougent à l'écran, mais pas de jeu. Je leur fais remarquer que faire un émulateur était impossible sur de telles machines. En tant que poly-techniciens, ils avaient l'habitude de gros serveurs, des machines avec plusieurs centaines de KBytes de mémoire. Pas de réponse de leur part.
Ce n'est que plusieurs mois plus tard, que nous avons pu voir une version du jeu tourner. Ils avaient évidemment laissé tomber leur projet d'émulateur, et s'étaient tournés vers la programmation traditionnnelle. Un projet qu'il comptaient faire en deux mois, s'est transformé en une galère, ou les trois programmeurs ont du travailler comme des fous pendant de nombreuse semaines.
Je dois dire qu'au fond de moi, je rigolais doucement. Les poly-techniciens, avec tous leurs diplômes ne valaient pas plus qu'un simple étudiant véto qui faisait de l'ordinateur dans son temps libre. Hihi.

Notre jeu précédent, Chicken Chase se vendait bien. Il fut décidé de faire une version Amstrad CPC. Cette fois ci, je devais être le responsable du portage, après la bérézina du portage d'Olé. Dans ma courte carrière de programmeur, j'avais connu trois ordinateurs, le Superboard II, l'Oric et le Commodore 64. Le passage de l'un à l'autre ne m'avait pas posé de problème. Découvrir un nouvel ordinateur est comme découvrir un nouveau terrain de jeu dans lequel vous pouvez vous ébattre. Poker, utiliser les circuits graphiques, le logiciel système. C'est extrèmement intéressant.

Je me lançais donc tête baissée dans la réalisation de Chicken Chase sur Amstrad CPC 64.

Commenter cet article

David Screve 03/01/2010 17:25


Il faut continuer !!!!

Les fêtes se sont très bien passées ici, même si le repos a été de courte durée avec la société que je viens de créer. Bonne année à toi aussi.

David


David Screve 03/01/2010 14:22


Chic ! j'ai eu raison d'être patient.
C'est toujours très sympa à lire : Ca me fait pensé au bouquin de Linus, dans le style.


Francois Lionet 03/01/2010 16:19


Salut David,

Oui ca m'a repris comme ca. J'espere conitnuer cette fois ci. Bon je vais en vacances de ski pendant une semaine, puis en angleterre une semaine.

J'espere que tu as passe de bonne fetes, et je te souhaite une excellente année 2010!

A+? Francois


Gemineo 23/12/2009 23:16


Chouette cadeau de Noël que d'avoir repris ce récit. Merci ;-)