Table des matières

Les débuts de l'ASM/C sur G100

Tout commença en hiver 1999 quand le site Casio Japon décida de sortir les premiers add-ins pour Graph100 : Finance et Composite ainsi que deux nouvelles langues. Pour les transférer sur la calculatrice, Casio créa des modules de transfert intégrés aux fichiers que l’on téléchargeait sur leur site. Il suffisait donc de lancer Finance.exe et le transfert se faisait tout seul. A l’époque, la taille nécessaire pour Composite était de 40Oko. Soit la moitié de la mémoire flash de la calculatrice. Après quelques mois, d’autres add-ins virent le jour. Mais la différence était qu’il fallait avoir recours à un logiciel tiers pour les transférer dans la mémoire flash de la calculatrice. Ce logiciel répondait au doux de Add-ins Installer que l’on peut encore télécharger sur le site de Casio mais dont l’utilité est nulle aujourd’hui.

C’est à ce moment que Lavenant connu sous le pseudonyme Leadfiner envoya au webmaster de http://www.graph100.com, bug², un logiciel de transmission<>réception de mémoire flash : “Casio-Mem-flash”. Ce logiciel permettait de savoir avec précision tout ce qui se passait entre l’ordinateur et la calculatrice. Il était alors possible de visualiser les éléments transférés et reçus dans un fichier .mem stocké sur l’ordinateur. Après examen minutieux de ce fichier on constata que la graph100 possédait des fichiers tels que autoexec.bat, command.com, un confg.sys…

À partir de là, beaucoup d’hypothèses ont été envisagées. La moins crédible mais pourtant la plus vrai était formulée par Bug² qui affirmait que la G100 fonctionnait sous un système d’exploitation compatible DOS 6.22. Après quelques mois de calme, on découvrit que la Graph100 tournait sous Rom-dos (système compatible ms-dos2 qui est écrit pour les « pockets » dont certains téléphones Nokia). Une fois le système d’exploitation découvert, les recherches pouvaient prendre une nouvelle tournure. C’est encore Leadfiner qui s’y colla. Il adapta son logiciel “Casio-Mem-flash” pour qu’il puisse renvoyer ce que la Graph100 lui avait transmise avec quelques modifications. Après maintes expériences, il réussit à envoyer le premier EXE compatible à 100% sur la calculatrice. Mais la méthode était malheureusement très longue.

Ces quelques lignes ont été reprises de l’historique écrit par bug² pour le site http://www.teamg100.fr.st . Ce qui suit est ma vision du passé. J’ai mentionné ce qui m’a paru essentiel. Biensur, le forum m’a été d’une aide précieuse et l’historique de certain m’ont permis de dater certains évènements.

L'année 2001

Pendant ce temps, de l’autre côté du globe, deux américains travaillent ensemble et découvrent comment sont codés les fichiers CFX. Ils développent CALIPSO le premier programme qui a permis de construire ses propres fichiers CFX à envoyer avec Add-Ins Installer. Nous sommes alors au début de l’année 2001 (février/ mars).

Leadfiner n’en est pas resté là, et à continuer son travail. Il découvrit le protocole de communication CASIO pour communiquer avec la Graph100 et créa son propre logiciel de transfert qui réduit par cinq le temps de transfert de fichiers (en comparaison avec Add-Ins installer). Le 12 juin 2001, la dernière version de FlashEditor V1.97 sort. Les possibilités sont nombreuses : édition complète du menu, ajout/suppression d’applications, création de lecteurs virtuels pouvant contenir plusieurs fichiers Exe, bmp ou autres… « Add-Ins Installer » de CASIO a trouvé son concurrent direct. FlashEditor est plus rapide, offre plus de fonctionnalités mais souffre d’un manque de stabilité et ne fonctionne pas sur tous les ordinateurs (programmé en VB).

http://www.graph100.com devient un site incontournable pour tous les possesseurs de G100 (joueurs, programmeurs, testeurs…). Son forum est devenu le point de rassemblement de toute la communauté, le tout administré par bug² aidé par 2072 qui développe un outil précieux : « Touche » dans la recherche sur le fonctionnement de la Graph100.

Duobab, Lark, Leadfiner, Roeoender, Whyp ont été les tous premiers à programmer des jeux sur G100. On se rappelle encore de « Pacman », « Boxworld » ou bien « Tunnel » de Duobab mais aussi « Pong » de Whyp.

L'année 2002

L’année 2002 recèle de quelques surprises. Whyp dissèque entièrement la calculatrice et écrit la deuxième édition du « guide du programmeur » en Mai 2002. Encore aujourd’hui le guide reste une référence. Il permit la découverte du mode 3 couleurs telle qu’on le connaît aujourd’hui et une meilleure gestion du port de communication. Si Whyp n’a pas créé de nombreux jeux, il a été un des piliers principaux dans la découverte du fonctionnement de la calculatrice.

Le 4 Mai Superna publie un tuto (plus abouti que celui présent dans la deuxième édition du « guide du programmeur ») sur le fonctionnement du port de communication en collaboration avec Whyp.

En Août, Mastermage publie un tutorial sur la façon d’afficher un sprite de manière très rapides (octets/octets et mots/mots). Le tuto est malheureusement accessible qu’aux initiés. Il faudra attendre un an avant que des fonctions d’affichage, exploitant le travail de Mastermage, soient disponibles à tous les programmeurs («dblib.h»).

Tonton1664 sort « BMP100 » qui permet de convertir des images BMP, JPEG, PNG en auto-executable ou bmp (noir et blanc ou gris) lisible sur la calculatrice.

En septembre 2002, 2072 étudie et finit par découvrir la structure des fichiers basic en mémoire. Il sort alors les premières fonctions pour les exploiter: « Basic_Librairies » qui deviendra « MemZoneLib » peut de temps après. Il est alors possible de sauvegarder les scores pour un jeu, mais aussi les paramètres de configuration d’un utilitaire. Les possibilités ne manquent pas. Plus d’un an après, la librairie continue d’évoluer et les fonctions deviennent de plus en plus performantes.

Le 30 sept 2002, le site de la TeamG100 ouvre ses portes: http://www.teamg100.fr.st . Le site avait pour but de proposer les derniers programmes sur G100. Les membres de la teamG100 pouvait uploader leurs programmes à tout moment. Il présentait cette équipe composée de personnes actives dans la communauté (programmeurs, testeurs, modérateurs/administrateurs du forum).

Au cours de cette année, quelques librairies graphiques voient le jour telles que « KTRh 2nd Edition » (9 sep. 2002) de KTR (première librairie graphique gérant les niveaux de gris en mode DB), « Casio2.h » de SuperNa (20 nov. 2002). La création de ces librairies a joué un rôle essentiel dans le développement des jeux/utilitaires car elles ont rendu la programmation beaucoup plus accessible au commun des mortels.

Le 8 octobre 2002, la première version de « Flash100 » (de dada66) sort. Le logiciel se présente, à première vue, comme un clone de FlashEditor mais regorge d’outils nouveaux et d’options indispensables. Aujourd’hui encore, Flash100 est en développement. Il est devenu au fil de ses mises à jours, un logiciel de transfert de référence, surpassant de loin Add-Ins Installer et FlashEditor dont il a su reprendre les fonctionnalités avec brio et en ajouter tellement d’autres.

Au cours de cette année, Superna sort « CFXmaker » qui permet de construire ses propres fichiers CFX et d’empackter à l’interieur plusieurs fichiers ( contrairement à « Calipso » qui n’autorise qu’un fichier par fichier .CFX).

L’année 2002 est marquée par de nombreux jeux dont la qualité n’a pas été encore égalée. Je pense à « Race » de Roeoender, « Platinum » de Patrick, « Scorch » de Duobab, « SpaceInvader » de Superna, « S-Bomberman » de Casiomax.

L'année 2003

En début d’année, dada66 découvre comment crééer des dossiers dans un lecteur Rom-disk. On peut alors ranger nos EXE par dossier dans la graph100 comme sur un disque dur normal d’un ordinateur.

Au début du moi de mars, Whyp nous fait un petit comeback sur le forum. Après de longs mois d’absence, il revient avec le premier OS (operating System) sur graph100(+) : ShineOS. Malheureusement le programme restera à sa version 0.3.5, la première béta publiée. http://shine.sourceforge.net/news.html

Tonton1664 sort une nouvelle version de « BMP100 » qui permet de visualiser une image avec 5 niveaux de gris. C’est une première car jusque là nous étions limité à 3. Le logiciel devient un outil indispensable à tous les programmeurs puisqu’il permet d’encoder des bmp de taille variable.

En mai 2003 dada66 se lance dans développement de « GComm ». Allié avec « Flash100 », il permet d’envoyer des EXE à la mémoire flash, encore plus rapidement qu’avant grâce à un protocole de communication complètement nouveau répondant au nom de « Glink ». Ainsi une dizaine de secondes est nécessaire pour envoyer un EXE de 20ko. Le gain de temps est énorme pour les développeurs de jeux/utilitaires qui sont obligés d’envoyer leurs programmes en permanence pour les tester. On peut retrouver « Flash100 » et Gcomm sur http://flash100.free.fr/xoops/modules/news/

A la même période, Swifter sort « db-lib» : une librairie graphique offrant des fonctions d’une remarquable efficacité en mode DB (niveaux de gris). Elle démystifia la gestion du gris, l’affichage des sprites octets/octets qui étaient réservés jusqu’à l’heure qu’à des programmeurs maîtrisant l’assembleur. Swifter s’est essentiellement basé sur le tutorial de Mastermage pour l’affichage des sprites mot/mot et sur le pdf de Whyp.

En Avril, Lark développa un site internet : http://www.fgpstudios.fr.st .Le site rencontre alors un énorme succès grâce à sa section WIP (work in progress). La section WIP permettait aux programmeurs de faire part des avancées de leurs projets, d’uploader des versions tests… Toute la communauté s’y retrouvait. Malheureusement, Lark a abandonné la gestion du site que personne n’utilise maintenant.

En Juin 2003, le journal LPC (logiciel PC) publie un article “les logiciels pour calculatrices Casio” dans un rubrique spécial bac. Le résultat de 3 années de travail est montré sur 3 pages ; flash100 étant la vedette. Quelques liens vers des sites de jeux graph100 sont donnés. On retrouve http://www.casioworld.fr.st , http://www.casiogame.com, http://www.teamg100.fr.st.

L’année 2003 est marquée elle aussi par de nombreux jeux de qualité. Je fais référence à « Space Tournament » et « FallDown » de X-thunder, l’excellent « Shadow world » de Leadfiner, démo de « MetalGearSolid » de Casiomax mais aussi l’émulateur « schip8fx » de Roeoender !

L'année 2004

En Février, Roeoender arrive à faire démarrer la calculatrice sur l’EXE de son choix. La technique n’est pas à la porter de tout le monde et dépend de la version de la rom de la calculatrice. Malheureusement, nous n’avons aucune nouvelle sur ses travaux depuis.

Le 17 Février, 2072 créée le FileSharing : un site internet qui permet à tous les membres du forum UCN et Français, d’uploader leurs programmes. Il comble, ainsi, le manque de site dédié à la graph100 outre Atlantique. L’adresse: http://www.casiocalc.org/?to=fsdisplay.php

Le 23 Février, Mastermage publie un document complet sur le format Romdisk ( format utilisé pour le stockage de données sur Graph100) ici : http://www.graph100.com/forum/viewtopic.php?id=2489 et ici : romdisk.

Le 1er mars 2004, Tonton1664 et Mastermage signalent l’existence d’un autre compilateur 16 bits : DigitalMars. Son principal avantage face à TC3.0 de borland, est sa gratuité mais aussi l’optimisation en vitesse d’exécution des programmes compilés. Il est tout de suite adopté par l’ensemble des programmeurs.

Le 10 Avril 2004, le premier émulateur G100 voit le jour : « WinG100 ». On doit cette prouesse à Ymorgan. Il vole la vedette à un autre émulateur dont le développement avait été annoncé par Mastermage un an auparavant. C’est encore une fois une révolution au sein de la communauté. Il permet de tester les jeux sans les envoyer à la calculatrice. L’engouement autour du projet a été énorme. Dommage qu’aucune nouvelle version ait vu le jour depuis.

En juillet 2004, CASIO organise pour la première fois une compétition officielle pour les programmeurs. Le premier prix était un appareil photo Numérique (Exxilim) remporté par Julien pour son remarquable jeu « Sonic » et Casiomax reçu une clef USB pour son FPS « StarScape ep1 ».

Le 2 juillet 2004, Julien sort « drawlib » : une nouvelle librairie exclusivement dédiée à la gestion de l’écran (3niveaux de gris). Elle fait aujourd’hui partie des librairies les plus utilisées. Le 22 octobre 2004, il sort la première librairie graphique pour 5 niveaux de gris : « gxlib1.0 ». Malheureusement, aujourd’hui, aucun jeu rendu publique n’exploite encore cette librairie.

Il sort aussi « Sprites Maker » qui devient rapidement un outils précieux pour les programmeurs puisqu’il encode les sprites et les images 128*64 et offre des nombreuses options telles que la compatibilité avec « drawlib », « gxlib » et « dblib », l’encodage à la suite de plusieurs sprites...

Une semaine après Superna crée « libG100 » (rc1) visant à regrouper toutes librairies réalisées auparavant telles que « db-lib », « Memzones », « gx-lib1.0 »… en un seul fichier .LIB facilitant ainsi la programmation. Un site dédié à libG100 est créé : http://libg100.sf.net

En fin d’année (le 7 novembre), Superna met en ligne le WIKI de http://www.graph100.com

Comme chaque année, quelques jeux sortent du lot : « Sonic » de julien, « StarScape ep1 » de Casiomax, « Simcity » et « blob100 » d’ X-thunder (Azor), sans oublier « Falcon2 » de Roeoender et « Démineur » de dada66, le premier jeu proposant un mode réseau !

L'année 2005 et perspectives

5 Janvier 2005, la Team « Epic Programming Studios » (EPS) composée de programmeurs (Casio, Ti et HP), a mis au point un nouveau langage interprété (comme le Basic), programmable et utilisable sur la calculatrice-même, appelé MLC.

Le 11 Janvier, Dscoshpe sort « Calipso dRXE ». Il est d’aurenavant possible d’exécuter ses propres EXE dépassant la barre fatidique des 60ko (=ram de la calculatrice) en les convertissant en RXE grâce à « Calipso dRXE ». Ce format de fichier était déjà bien connu puisqu’il était utilisé par Casio mais sa structure restait jusqu’a ce jour un mystère.

Les perspectives pour cette année 2005 sont nombreuses mais les plus probables sont les suivantes :

Le mot de la fin

La programmation sur G100 en ASM/C/C++ a acquis une réelle maturité durant ces 5 ans. Nous devons tout cela qu’à une poignée d’individus de nationalité différente (Français, Américains, Belges, Polonais, Allemand et sûrement d’autres) qui ont su partager leurs connaissances. Aujourd’hui, le nombre de programmes (jeux/utilitaires en ASM/C) s’élève à plus de 110. Nous avons eu du bon, de l’excellent même, mais aussi du moyen. Biensur il en va de chacun de faire sa propre idée sur un jeu. A travers cet historique, je vous ai fait part de mes gouts qui ne sont pas ceux de tout le monde mais qui je pense sont partagés par beaucoup. C’est pourquoi je m’excuse d’avance pour tous les développeurs dont je n’ai pas cité leur(s) programme(s).

Je passe maintenant du coq à l’âne en parlant de CASIO. Il est certain que “la firme aux calculatrices vertes” est au courant du travail accompli, d’une part, par l’organisation d’une compétition officielle dédiés aux programmeurs et d’autre part, par la présence du cable de transfert vendu avec la calculatrice; cable qui était vendu, avant, séparément !

Il ne faut pas se voiler la façe. Le travail réalisé est en quelque sorte une “valeur ajoutée” pour la calculatrice. Le succès des calculatrices TexasInstrument est essentiellement dû aux jeux et les ventes de la graph100 sont et seront liées elles aussi à la qualité des jeux créés.

Je trouve, donc, regrettable que CASIO nous ait pas aidé en nous fournissant de la documentation ou bien un SDK comme elle le fait pour ses dernières calculatrices : la ClassPad et la Graph 85.


Article rédigé par dr²3 (alias casioworld) webmaster de http://www.casioworld.fr.st, qui est devenu la plus grosse base de donnée sur graph100. dr²3 qui se sens CHO pour cette nouvelle année et qui souhaite plein de nouveaux jeux, plein de nouvelles découvertes !