Page 04 : Double Largeur Page 06 : Fonctionnement de la pile matérielle du 6502 (5) Page 08 : Dan Cresp, le collectionneur programmeur ! Page 12 : Lights Out Page 16 : Nuclear Invaders Page 20 : Galaxy Wars Page 24 : Wumpus
Editorial
Il y a des joueurs qui ne s’arrêtent jamais et qui, je les remercie, me font parvenir des screenshots de leurs derniers exploits. Ainsi André vient d’exploser ses scores à Pac-Girl et Vexed1. Merci à lui pour ces nouvelles contributions. Finalement, je capitule. Je n’ai encore pas réussi à sortir le mag dans les temps. Cet été, j’avais été particulièrement prolixe et préparé le spécial «Programmez vos jeux en basic avec Dan Cresp» et je dois capituler. Malgré le retard, le mag dédié à Dan n’est finalement pas sorti et sera donc décomposé sur plusieurs numéros. Pendant ce temps, le blog du CEO s’enrichi et de plus en plus d’articles sont disponibles. Bonne lecture et bon courage à tous les développeurs et bricoleurs Oriciens.
Après quelques softwares développés sur d’autres plateformes, ce logiciel marque les débuts de Dan Cresp en programmation sur l’Oric. Produit début 2012, la vision de Dan est exceptionnelle sur cette adaptation. Romuald réalisera fin 2018 une nouvelle adaptation de ce jeu de réflexion dans le cadre du concours CEO NY2019.
Généralités
Le jeu est une conversion informatique de la machine “LIGHTS OUT” de la maison TIGGER. Très addictif, c’est le premier jeu que Dancresp a réalisé pour l’ORIC, et c’est une adaptation du même jeu programmé pour le THOMSON MO5 fin 2011. Cette version est un peu plus rapide, mais elle a perdu la simplicité d’action liée à l’utilisation du crayon optique.
Le MO5 de Daniel, équipé de son crayon optique … en pleine action
L’adaptation à l’Oric est une réussite car son BASIC est assez complet et rapide et le programme de fait est agréable à utiliser. Le développement sur l’Oric m’a exigé de me familiariser avec son éditeur “étrange”, que j’ai finalement utilisé sans problèmes majeurs. D’autre part, j’ai découvert et commencé à maitriser son système de gestion de la couleur “particulier”. En fonction de ce que vous voulez faire, c’est complexe et peut limiter le développement. Enfin, il est curieux de pouvoir utiliser des caractères de double hauteur. Pour résumer, cette “expérience initiatique” se poursuivra.
Dans le chapitre bizarreries de l’Oric, la fonction CHR a une fonction différente suivant que vous l’utilisez dans des lignes PLOT (pour indiquer une couleur) et PRINT.
Pour conclure, disons que chaque être humain devrait avoir la possibilité, ne serait-ce qu’une fois, d’utiliser le clavier de l’ORIC ATMOS qui est un des meilleurs que j’ai pu utiliser.
Je vous invite à l’essayer.
Lights Out sur l’Oric Atmos de Daniel, une belle adaptation
Quelques éléments à propos du programme
Le programme principal est décomposé en 9 parties :
Déclaration de variables, initialisation du jeu et calibrage du stylet.
Impression des marqueurs de jeu.
Sélecteur de carte correspondant.
Envoi à l’affichage du tableau actuel et du numéro de mouvement.
Contrôle de clé.
Contrôle de l’investissement des lumières correspondantes.
Inversion d’une lumière.
Impression du tableau avec les lumières.
Données des 10 premiers et tableaux de bord et données d’aide de la course.
Les variables suivantes sont utilisées:
M$ = Matrice où sont stockés les 10 premiers tableaux.
S$ = Chaîne où le tableau actuel est enregistré.
A$ = Carte de lumière.
W = Matrice où les premières analyses sont enregistrées en cas d’aide.
L = plateau de jeu actuel.
M = numéro de mouvement.
H = compteur d’aide.
F = Lumière à inverser, ou boucles
X = position horizontale du pointeur.
Y = Position verticale du pointeur.
P = compteur de lumière.
B = Nombre de lumière qui a été pressée.
N = Nombre de lumière lors de l’impression du tableau.
Les mécanismes du jeu original ont été condensés en seulement 42 lignes de code.
Le code, simple et efficace, résumé par Dancresp
100 – Définition des matrices du jeu.
110 – Début des variables et charge les lignes DATA dans les matrices.
200 – Couleurs du jeu, et nous faisons disparaître le curseur.
210 – Impression de titres double format en utilisant les séquences “d’échappement” correspondantes.
220 – Copyright au bas de l’écran.
230 – Impression des textes “(H) ELP!” et “(R) ESET”.
300 – Impression de marqueur de niveau.
310 – Position du pointeur, nombre de mouvements (M) à 0 et si le niveau est supérieur à 10, sautez à la ligne 330.
320 – Décomposez les 25 voyants de la matrice (M?) Dans la matrice S? Et réglez le compteur d’aides (H) sur 1.
330 – Génère une carte de manière aléatoire et définit le compteur d’aide sur 3, qui est désactivé.
400 – Imprimez le tableau avec les 25 voyants et s’il n’y en a pas, passez à la ligne 300.
410 – Imprimez le numéro de mouvement.
500 – Imprimez le pointeur sous la lumière correspondante.
510 – Lisez le clavier. Si une touche est enfoncée, supprimez le pointeur mais relisez le clavier.
520 – Si vous appuyez sur “O”, déplacez le pointeur vers la droite.
530 – Appuyez sur “P” pour déplacer le pointeur vers la gauche.
540 – Appuyez sur “Q” pour déplacer le pointeur vers le haut.
550 – Appuyez sur “A” pour déplacer le pointeur vers le bas.
560 – Si vous appuyez sur la touche espace, désactivez l’aide, calculez la lumière sélectionnée et passez à 600.
570 – Si vous appuyez sur “H” et que le nombre de mouvements est inférieur à 3, lancez-vous pour nous.
580 – Appuyer sur “R” réinitialise le tableau.
590 – Si vous appuyez sur “S”, le curseur s’affiche et vous quittez le programme, mais passe à 500
600 – Inverser la lumière sur laquelle il a été appuyé.
610 – Si la lumière n’est pas dans la première rangée, inversez la lumière ci-dessus.
620 – Si le feu ne se trouve pas dans la dernière rangée, inversez le feu en dessous.
630 – Si le feu ne se trouve pas dans la dernière colonne, inversez le feu à droite.
640 – Si le feu ne se trouve pas dans la première colonne, inversez le feu à gauche.
650 – Ajoutez un coup (M) et passez à 400.
700 – Si le voyant indiqué par F est allumé (= 1), définissez-le sur 0 mais sur 1.
710 – Le sous-programme se termine.
800 – Réglez le compteur de lumière (P) sur 0 et N = 1.
810 – Début de la double boucle qui imprime le tableau.
820 – Si la lumière à régler est active, la couleur rouge est activée, mais la couleur blanche est activée.
830 – Imprimez le fichier à la position correspondante. Il a une taille de 3×3.
840 – Augmentez le nombre de jetons (N) et fermez les boucles.
850 – Fin du sous-programme.
900 – Données des planches. Chaque tableau consiste en une chaîne de 25 chiffres 1 ou 0 indiquant l’état de l’un des voyants. Ensuite, deux nombres correspondant aux 2 premiers cycles que la machine proposera en cliquant sur “AIDE!” Sont transmis. S’il n’y a pas d’aide, mettez comme 0,0.
Le Jeu
L’objectif du jeu est d’éteindre toutes les lumières rouges sur le plateau de jeu. Nous contrôlons le pointeur qui apparaît sous l’un des 25 carrés du tableau. En appuyant sur Espace, vous modifierez l’état de ce carré et des 4 carrés adjacents ; celui du dessus, du dessous, de droite et de gauche. En appuyant sur la touche “H” (HELP), l’ordinateur choisit les 2 premiers mouvements, à condition qu’ils soient les premiers. Appuyez sur la touche “R” (RESET) pour revenir à la position initiale du tableau.
Le jeu a 10 niveaux prédéfinis, et à partir de là, l’ordinateur génère des tableaux aléatoires sans aide disponible
Quelques autres versions
La version originale de Lights Out créee par Dan, sur ThomsonA découvrir sur ZX-80En Hires et plus récente, le Lights Out de Romuald
Un des premiers programmes conçu par Dan Cresp sur Oric, publié en Février 2013 et bien sur disponible sur oric.org dans la rubrique software. Comme vous l’avez deviné, avec son amour de la programmation et sa collection de micros, Dan a adapté son jeu sur plusieurs systèmes. Vous trouverez ci-dessous ses découvertes …
Nous avons tous un équipement plus ou moins rétro, et la conception de ces programmes sont une bonne excuse pour pouvoir les utiliser et apprendre quelque chose à leur sujet.
En règle générale, j’invente un jeu, ou adapte quelque chose d’existant, et le transfère sur 3 systèmes différents. Cela m’aide à comparer les performances et certaines fonctionnalités. Pour Nuclear Invaders, il existe une version pour DRAGON 32 (l’original, mais beaucoup plus simple) et pour MSX et ORIC. La meilleure des trois versions est sans aucun doute celle du MSX, mais la version ORIC a été meilleure que prévu.
Un Dragon 32 en démonstration avec Nuclear Invaders
En ce qui concerne l’ORIC, voici une partie des choses que j’ai apprises :
J’ai enfin appris à utiliser l’éditeur sans problèmes. Cela me rappelle beaucoup celui du ACORN BBC / ELECTRON.
Le programme a été entièrement développé sur un véritable ORIC-1 ; avec toutes les difficultés liées aux cassettes. Ainsi, si je l’enregistre en mode rapide avec l’ORIC-1, il ne se charge jamais bien. Si je le charge sur un ATMOS et l’enregistre rapidement avec l’ATMOS, l’ORIC-1 le charge sans problème. Curieux
Le programme a parfaitement fonctionné sur l’ORIC-1. Une fois passé à l’émulateur, l’OVNI ne s’est pas déplacé. Je l’ai essayé sous EUPHORIC (MSDOS) et ORICUTRON (Windows), en émulant ORIC-1 et ATMOS et cette partie ne fonctionnait pas bien. Je devais diviser la ligne 180 en deux (180 et 185) pour que cela fonctionne. Lorsque j’ai essayé sur ATMOS, j’ai constaté que cela ne fonctionnait pas non plus. Au final, le jeu garde la ligne divisée pour que le jeu fonctionne dans toutes les configurations.
En ce qui concerne le son, j’ai choisi d’utiliser les paramètres prédéfinis car leur modification pénalisait la jouabilité. Il y a de bonnes options sonores, mais en BASIC, il en coûte un max de les travailler.
Concernant la jouabilité, j’ai assez respecté la vitesse du jeu SPACE INVADERS, et nous sommes en BASIC !!! Le tir avance de 2 en 2 rangées, soit “curieusement” la séparation entre les envahisseurs. Cela permet de ne vérifier qu’une fois par cycle si vous touchez quelque chose. En outre, si le tir était plus rapide, la vitesse des envahisseurs devrait augmenter car le jeu serait trop facile. Presque tout a une explication
Personnellement, j’aime davantage programmer en assembleur, mais il est clair que faire un jeu en BASIC est un défi particulier, car vous ne pouvez rien programmer. Vous devez très bien savoir si le projet est réalisable et très bien savoir le déboguer pour le lancer.
Un Alien approche des réacteurs … la fin est proche !
Notes finales
La principale difficulté du jeu a été de parvenir à une bonne vitesse d’exécution, en tenant compte du fait que le jeu d’origine n’est pas particulièrement rapide. J’ai utilisé différentes techniques pour y parvenir. Parmi celles-ci, la sauvegarde des différentes animations des envahisseurs en fonction de leur position.
Les graphismes ORIC sont composés d’une grille 6×8, 6 large par 8 haut. Comme aucun envahisseur n’occupe plus de 12 pixels, ils sont parfaitement positionnés. Pour le tank et l’OVNI je devais utiliser 3 caractères. J’ai redéfini les minuscules pour pouvoir lister le programme sans problèmes.
L’écran de présentation est un “duplicata” du jeu d’origine, à l’exception du changement de nom du jeu. La forme de présentation est différente puisque tout est montré ici en une fois et non pas lettre par lettre.
Ecran de présentation de Nuclear Invaders
La boucle principale du développement va des lignes 100 à 260, soit 19 lignes au total. Ici, vous contrôlez le char, le tir, l’OVNI et un envahisseur. Comme le processus est rapide, tout se passe bien. Cependant, l’impossibilité d’utiliser ELSE en toute quiétude, ainsi que la limitation de la longueur des lignes ont rendu ce bloc plus compliqué que dans la version MSX.
Pour détecter si le tir touche un ennemi, avant de montrer le tir dans sa nouvelle position, je regarde quelque chose, et si oui, je saute à la ligne 400. Ici, je vérifie verticalement si c’est l’OVNI, et sinon, c’est un envahisseur qui en position verticale, je calcule la ligne et en position horizontale la colonne.
Dans cette version, je montre un précédent écran d’instructions où j’indique les touches de contrôle. Pendant ce temps, les graphiques redéfinissent et initialisent certaines matrices et variables.
L’éditeur de l’ORIC est très similaire à ACORN BBC / ELECTRON, mais au lieu de la touche “COPY []”, le “CTRL + A” est utilisé ici. La différence est que dans ACORN, vous voyez ce que vous copiez dans le tampon, mais pas dans l’ORIC. Il est donc conseillé de vérifier avec un LIST de la ligne pour s’assurer que les modifications ont bien été enregistrées.
Il y a un bogue important avec la commande ELSE du Basic de L’ORIC. Entre autres choses, il n’identifie pas bien à quoi le SI est associé et empêche le programme de le traiter correctement. Cela signifie que certaines lignes doivent être divisées en deux ou trois pour éviter des erreurs.
En ce qui concerne l’enregistrement sur bande, l’ORIC-1 enregistre généralement mal en mode FAST (par défaut) et vous devez utiliser le paramètre «, S» pour le faire en mode SLOW, qui est beaucoup plus lent mais plus sûr. L’enregistrement rapide n’échoue pas dans l’ORIC ATMOS et l’ORIC-1 lui-même le charge sans problèmes.
Pour ce qui est du son, domaine pour lequel je suis assez ignare, après plusieurs tests au cours desquels la performance d’ORIC est tombée trop bas, j’ai choisi d’utiliser les sons prédéfinis dont elle dispose. Les performances sonores de l’ORIC sont bonnes, mais leur utilisation est quelque peu fastidieuse.
Avec la touche “ESC” on quitte le programme et en utilisant POKE # 26A, 3 activer le curseur et le clic de la touche.
Quelques éléments concernant le programme
La routine du jeu est divisée en 14 blocs
Déclaration de la matrice
Contrôle de notre tank
Contrôle de notre tir
Déplacement de OVNI
Déplacement des envahisseurs
Destruction d’un ennemi ou de l’OVNI
Perte d’une vie
Niveau de passage.
Présentation
Affichage de l’écran de jeu.
Chargement des graphiques. SPRITES et UDG.
Initialisation des variables et matrices du jeu.
Routines
Blocs graphiques.
L’ensemble du programme occupe 79 lignes dont voici les principales :
10 Définition des matrices du jeu.
30 Routines d’appel pour lire les graphiques (3000), Affichage de la présentation (2000).
100 Nous vérifions si notre char doit être déplacé, en le montrant dans la nouvelle position.
130 S’il y a un tir à l’écran, nous le déplacerons, et nous verrons si un nouveau tir est réalisé (RETURN).
170 S’il y a un OVNI sur l’écran, nous le déplaçons, et diminuons le compteur (W).
200 Routine de déplacement des envahisseurs. Un envahisseur différent se déplace à chaque passage. D’abord, nous regardons s’il y a toujours des envahisseurs dans la position correspondante (3 par position), s’il y en a, nous avançons. Si la vitesse est assignée, nous la déplaçons, et si nous n’utilisons pas un nombre aléatoire, nous décidons de commencer à bouger. Pendant le mouvement, nous modifions son animation et voyons si il a atteint la centrale nucléaire.
250 Compteur du prochain envahisseur à déplacer (M).
260 Si tous les envahisseurs n’ont pas été détruits (T), nous retournons à REPEAT à 100, et s’ils ne restent pas, nous continuons jusqu’à 300
300 Code de niveau de passe. Le passe est donné lorsque nous détruisons les 30 envahisseurs. Le contrôle de difficulté (C) indique que la largeur de la centrale nucléaire est augmentée.
400 Cette routine est exécutée lorsque le tir détecte qu’il a touché quelque chose (sur 160). Ici, il est calculé si un envahisseur ou l’ovni a été touché et agit en conséquence. En 410, un envahisseur est détruit et en 450, l’OVNI est détruit.
500 Routine en cours lorsqu’un envahisseur arrive à la centrale nucléaire. Un son est joué et une vie est supprimée. S’il reste des vies, nous recommençons le niveau et sinon, nous revenons à l’écran de présentation après une pause.
2000 Écran de présentation du jeu La commande de déclenchement est enregistrée dans la variable (G).
2100 Suppression de l’écran de présentation. Message joueur 1 pour être prêt et la centrale nucléaire est dessinée.
2800 Positionnez et montrez les envahisseurs et notre tank à l’écran. Réinitialise la valeur de certaines variables.
3000 Nous chargeons les graphiques des lignes de données dans la VRAM. D’abord, les SPRITES sont chargés, puis l’UDG.
5000 Routine pour imprimer un numéro sur un marqueur. Passez la valeur dans (I) et la position dans (N).
5200 Programme de suppression d’une partie de l’écran, en respectant les repères supérieur et inférieur.
9000 Données du graphique UDG du jeu.
9500 Données des envahisseurs selon la position et l’animation.
Nuclear Invaders possède des sprites classiques et bien définis
Le Jeu
Les envahisseurs de l’espace sont de retour !!!
En 1977, ils ont essayé d’envahir les villes de la Terre et ont échoué ! Maintenant, ils sont de retour avec un plan diabolique : détruire les centrales nucléaires pour laisser la planète inhabitable. Avec l’aide de notre tank, nous devons éviter qu’ils atteignent leur objectif.
Chaque niveau est composé de 30 envahisseurs (NDLR : je ne suis pas encore arrivé au bout des 30 premiers envahisseurs), après chaque vague il apparaîtra un centre plus grand. De ce fait, les envahisseurs doivent parcourir moins de distance pour atteindre et détruire notre planète.
Bonus : Détruisez l’OVNI qui apparaît en haut pour obtenir des points supplémentaires.
L’écran du 1er niveau.
Quelques autres versions
MSX, la plus belle version d’après Dan CrespNuclear Invaders sur ZX SpectrumAvec le CPC, le jeu en noir et blanc prend des couleurs !La version originale de Nuclear Invaders, sur Dragon 32
Nombre d’entre nous ont une petite collection d’ordinateurs, de consoles (enfin, ceux qui ont de la place car cela est plus encombrant que de collectionner les timbres).Si Fabrizio (l’auteur de Cross Shoot et de Cross-Chase) a choisi de porter son cross-développement une quantité impressionnante de machines, Dan porte ses créations sur quelques illustres ordinateurs qu’il affectionne particulièrement ZX Spectrum, MSX et bien sûr l’Oric
Les années passent et il faut regarder vers l’avenir, mais faisons d’abord un petit tour dans le passé.
Mon penchant pour l’informatique et les jeux vidéo a commencé à naître voici près de 35 ans, et depuis lors, j’ai formé des équipes, peu nombreuses et avec beaucoup d’efforts au début, mais c’est désormais plus facile.
Début 2016, j’ai fait le point de mes priorités et de mes objectifs afin de coordonner mes actions et mes envies. Heureusement pour moi, ma passion pour ce monde informatique rétro est immense et j’ai résisté à l’envie de faire une crise et “tout laisser tomber”, J’ai donc repensé ce que je faisais et mes objectifs.
Pour planter le décor, j’avais :
Environ 130 consoles, avec ou sans écran. À l’exception de deux ou trois, elles fonctionnent toutes. Incroyable !
Environ 100 ordinateurs et calculatrices programmables. À l’exception de deux ou trois, ils fonctionnent tous. Incroyable !!
Environ 160 portables, de type LCD, LED ou LSI. Sauf 3, ils fonctionnent tous. Incroyable, si si si …
Environ 1500 cartouches, CD et DVD d’origine. Rien ne manque ici !
Les Game & Watch de la collection de DanEn sus des consoles et accessoires rétro, Dan possède plusieurs clones modernesBien sûr, l’Oric est en bonne place dans sa collection
Il n’est pas nécessaire de réfléchir beaucoup pour se rendre compte que, mis à part l’espace qu’ils occupent (j’ai la chance de ne pas souffrir de ce problème), il arrive un moment où l’on doit consacrer périodiquement du temps à les faire fonctionner un moment ou à régler de petits incidents qu’ils ont, cela me prend plus de temps que je ne le souhaite. (NDLR : La rénovation de nos micros passe bien souvent par le changement des condensateurs, l’un des organes les plus fragiles face au temps et de sus destructeur des circuits imprimés. Fort heureusement, l’Oric est peu sensible à ces phénomènes)
Quelques-uns de ces équipements m’ont accompagné pendant une grande partie de ma vie et pour moi, leur valeur est tout simplement incalculable. Il en va ainsi pour mon ZX-81, mon Sony MSX HP-20P ou bien sûr à ma Game & Watch “Turtle Bridge” de Nintendo, ma Green House, mon Pong ou à mon Atari 2600. Et ils fonctionnent tous parfaitement.
Autour de ce noyau informatique, beaucoup d’autres ordinateurs sont venus plus tard, certains massivement et parfois presque de manière compulsive. Certains m’ont offert de bons moments, d’autres ont été à peine utilisés. Cela m’a fait me demander s’il était nécessaire de les conserver, en particulier lorsque j’ai commencé à détecter, notamment avec les Game & Watch possédant un écran LCD, des défaillances irréparables. Ne nous leurrons pas, le reste, tôt ou tard, cessera de fonctionner.
Gagner du temps avant que ces appareils finissent par se dégrader … Allez, merde ! J’aurais peut être mieux fait de collectionner des timbres.
Qu’allons nous faire ? Comme je suis un homme de nature plutôt inquiète et que j’essaie de résoudre mes problèmes … j’ai lancé une série d’actions.
Émulation
Bien qu’au début, j’étais réticent, j’ai fini par y prendre goût. Ce n’est pas la même chose d’utiliser un émulateur sous MS-DOS ou sous Windows, et j’ai passé un bon moment à rechercher, obtenir et organiser des émulateurs de plus de 100 ordinateurs, pour la plupart des consoles, des systèmes portables et des différents systèmes d’exploitation.
Ainsi, si certains équipements tombent en panne, je peux continuer à en profiter … A l’exception de l’Oric 1 et du ZX-81, tous les développements réalisés ont été programmés sur la plateforme d’origine. Jamais sur un émulateur ou avec des outils modernes de développement.
Mon objectif principal est d’optimiser au maximum le BASIC de ces ordinateurs, en développant des jeux ou des applications avec une ergonomie professionnelle et une grande fluidité. La clé est de simplifier et de déboguer le code, en appliquant des techniques que j’ai développé et en expérimentant. Grâce à cela, les jeux comportent très peu de lignes, mais ils sont ludiques et rapides.
Archéologie Rétro-Informatique
Comme vous l’avez peut-être vu avec certains de mes articles consacrés aux équipements rétro-rétro (NDLR : Daniel est très actif sur www.retrowiki.es), de type IBM 1401, Kenbak-1, Programma-101 et les équipements Orao, Acorn System-1 ou Apple-1, j’adore obtenir des émulateurs de ces machines antiques (ou d’autres machines équivalentes) et rechercher sur Internet des documents permettant de produire quelque chose avec ces ordinateurs.
Mes projets de Flow-matic, Math-Matic, Dartmouth Basic et les émulateurs de Kenbak-1 et Programma-101 ont été mes expériences les plus enrichissantes de ces dernières années. Il m’a fallu beaucoup explorer, faire des recherches et il faudra encore beaucoup d’explorations et de découvertes. Heureusement, grâce à Internet, cela ne coûte pas cher.
Hardware
A de très rares exceptions, je n’achète rien d’autre que des ordinateurs de plus de 20 ou 30 ans. Ainsi, je pense acheter un Apple II qui manque terriblement à ma collection.
Au niveau des jeux vidéo, j’ai récupéré de nouvelles cartouches pour Megadrive, Atari 2600, Atari 7800, CBS Colecovision, et des cartouches de jeu Intellivision. J’ai également des consoles multi-systèmes telles que la Retron 3 ou la Game Box. Je les ai utilisées et j’en suis ravi.
Je suis également de près les nouveaux équipements de type Spectrum Harlequin, basé sur FPGA, ou d’autres Raspberry et Arduino, entre autres.
Réduire le stock de machines, d’interfaces et autres matériels
C’est la partie la plus complexe.
Après de nombreuses années à accumuler du matériel, du temps s’est écoulé et j’en ai conclu que la satisfaction que cette accumulation m’avait procurée dans le passé ne me satisfaisait plus. Donc, une partie de ma collection a été progressivement mise en vente, et je continuerais de la rationaliser ensuite
Que personne ne se frotte les mains ni ne regarde le niveau de son compte en banque, car en principe je vais me débarrasser de tout le matériel dont je dispose, à l’exception du Spectrum, du ZX-81 et de l’Oric notamment. J’ai trop de choses, mais je ne vais pas faire des folies que je regretterai plus tard.
Opérationnels ou non, ils m’accompagneront le reste de mes jours.
Réorganiser mon sanctuaire
J’ai un espace de 35 m2 qui est en train d’être complètement réorganisé. En 2016, je pensais me concentrer sur ce qui me plaisait vraiment mais finalement, ma collection 2019 a encore grandi. Au niveau des consoles, je suis généreux, et certaines ont déjà défilé jusqu’au parking, mais concernant les ordinateurs, je suis plus strict et ma garde rapprochée consiste essentiellement en mes ZX-81, Spectrum, MSX, Oric, Dragon-64, CPC-6128 + , C-64, Atari 800 et des équipements de poche. (NDLR : Effectivement, il lui manque toujours un Apple II. Si un jour Dan en récupère un, nul doute que les programmes seront adaptés)
Finalement, je gagne beaucoup d’espace, et c’est tout sauf serré.
En conclusion
Quand j’aurai fini, et lorsqu’il me restera que peu de chose, je reprendrai une activité normale dans RetroWiki, parce que … non, je ne quitte pas l’univers du rétrogaming. A partir de 22h30, la famille dort et je passe 2 heures par jour dans le train. Le temps et la santé pour continuer à vous déranger avec mes “briques” pour beaucoup plus longtemps. Je le peux.
Je n’arrête jamais de programmer sur ZX-81, notamment et bien que je veuille aussi enquêter sur des équipements particulièrement rares ou volumineux, etc. J’ai besoin de temps …
Ce jeu est une adaptation de la version précédemment programmée pour le COMMODORE-16 et le ZX-SPECTRUM. Pour cela, j’ai copié, ligne par ligne, le code de la version C-16, en y apportant de petites modifications car elles ont le même nombre de lignes et peuvent toutes deux utiliser ELSE.
Galaxy Wars sur C-16, base du développement de la version OricUne des premières versions de Galaxy Wars, sur ZX
Pour la première fois, j’ai utilisé un émulateur pour développer le jeu : EUPHORIC sous MS-DOS. Le résultat est très satisfaisant puisque cet émulateur permet, en appuyant sur F3, d’avoir un clavier qui correspond à celui du PC, cela permet de taper un programme très rapidement et confortablement. Prendre un listing ou charger / enregistrer un programme est tout aussi simple.
Les graphismes originaux, basés sur des largeurs de 8 pixels de base
La seule complication lors du développement de cette version a été le besoin de coder à nouveau tous les graphiques, car l’ORIC utilise des caractères de 6 pixels de large et non de 8 comme le reste des ordinateurs. Ainsi, la conception du missile est légèrement plus étroite et les vaisseaux supérieurs occupent 3 caractères de large au lieu de 2. Quoi qu’il en soit, je l’ai fait et si vous touchez un navire du côté droit, vous ne le détruisez pas.
Des graphismes “handheld”
En ce qui concerne le son, j’ai repris les routines standards.
Et en ce qui concerne l’aspect, grâce au système particulier de mémoire d’écran de ce système, c’est la seule version dans laquelle j’ai vraiment été capable de reproduire l’effet «cellophane», en émulant les rayures colorées.
Ecarts à la version TAITO d’origine:
Cette version est un peu plus large et beaucoup moins haute puisque dans le jeu original l’écran est vertical.
Il y a moins de rangées d’astéroïdes, en raison de la taille verticale.
Pendant l’ascension du missile, nous pouvons le contrôler horizontalement, mais nous ne contrôlons pas la vitesse.
Les envahisseurs n’accélèrent pas lorsqu’il ne reste que quelques-uns d’entre eux.
Les astéroïdes ne descendent pas lorsqu’ils atteignent les extrêmes.
Les scores sont limités à 50, 100 et 150 points.
Il n’y a pas d’animations sur les ennemis.
Le contrôle des ennemis est très simple. Il y a 6 bandes avec les ennemis dans la position correspondante. Les lignes paires tournent à gauche et les lignes impaires à droite.
Le bloc principal du programme n’occupe que 18 lignes. À chaque passage, je déplace une rangée d’ennemis et contrôle un tir ennemi. Le compteur est commun dans les deux cas (A).
Pour gagner de la vitesse, je me suis débarrassé des animations des ennemis. J’ai choisi d’utiliser les graphiques des ennemis dispersés.
Lors de collisions, je vérifie seulement si la tête du missile touche quelque chose, mais pas la partie inférieure. En ce qui concerne les bombes ennemies, seul celui qui est actif vérifie s’il touche quelque chose. Cela rend le jeu plus rapide, mais il se peut que nous touchions quelque chose et que rien ne nous arrive. Comme le processus est rapide, il y a un risque … et il vaut mieux ne pas y jouer.
En ce qui concerne les performances, cette version fonctionne aussi bien (sinon autre chose) que les deux précédentes (C-16 et SPECTRUM).
La vérité est que, malgré ses bugs, ce BASIC tire plus que bien.
Eh bien, rien de plus, je ne peux qu’espérer que cela vous plaise.
Je vous invite à l’essayer.
Quelques éléments concernant le programme
Le programme principal est divisé en 10 blocs:
Déclaration de matrice. Appel aux routines principales.
Contrôle notre plateforme ou missile.
Contrôle des envahisseurs et des astéroïdes.
Contrôle des tirs ennemis.
Détection d’impact de missile. Touchez un astéroïde, un envahisseur ou un tir ennemi.
Perdre une vie.
écran de présentation.
Début du jeu.
Plusieurs routines.
Données avec les graphismes du jeu.
Comment le programme fonctionne-t’il, avec ses 88 lignes ?
10 – Nous définissons les matrices du jeu.
30 – Initialiser l’enregistrement (R) et aller à la routine qui redéfinit les graphiques.
50 – Allons à la présentation du jeu.
100 – Nous déplaçons la plate-forme ou le missile dans la direction indiquée.
130 – Si le missile a été tiré (T = 2), il passe à 160.
140 – Si la touche RETOUR est enfoncée, nous tirons le missile et supprimons la plate-forme.
160 – Nous supprimons le missile et modifions la position verticale (Y).
170 – Si la pointe du missile touche quelque chose, nous sautons à 400.
180 – Nous mettons le missile dans la nouvelle position.
200 – Nous déplaçons l’une des 6 rangées d’ennemis ou d’astéroïdes dans la direction correspondante. (B = 1: Droite, B = -1: Gauche).
220 – Nous imprimons la ligne de l’ennemi.
250 – Nous voyons si l’une des 6 bombes ennemies est active.
260 – Si ce n’est pas le cas, nous voyons s’il y a un envahisseur en position sur l’écran pour activer le tir.
270 – Si le tir touche la plate-forme ou si le missile passe à 500.
400 – Si la position Y est supérieure à 5, c’est que nous avons frappé avec un astéroïde ou tiré et sauté à 500.
410 – Nous calculons la position de l’envahisseur détruit.
420 – On met l’explosion, un son retentit et on calcule les points (50, 100 ou 150).
430 – Nous supprimons l’envahisseur de la ligne et soustrayons un envahisseur des autres (Q).
450 – Nous montrons les points et faisons une pause (5500) et mettons à jour le marqueur.
470 – En passant le niveau, nous augmentons sa valeur s’il est inférieur à 5.
500 – Nous mettons une explosion à la position du missile et reproduisons un son.
520 – Nous mettons à jour le marqueur de vie.
550 – S’il n’y a plus de vies, le jeu se termine.
2000 – Écran de présentation du jeu.
2050 – Appuyez sur une touche pour effacer l’écran (5400) et faire clignoter le marqueur du lecteur 1.
2500 – Nous avons monté les bandes des envahisseurs.
2510 – Routine générant de manière aléatoire des bandes d’astéroïdes. Fuller dans les niveaux avancés.
2570 – Initialisation des variables principales de l’item.
5000 – Changer les couleurs, masquer le curseur et désactiver les majuscules.
5002 – Instruction Écran pendant la lecture des graphiques.
5010 – La routine commence pour redéfinir le jeu de caractères.
5020 – Nous sauvegardons l’attribut color de chaque ligne de l’écran dans la matrice C $.
5040 – Initialise la matrice de la hauteur des différents ennemis V ().
5050 – Initialise la position des bombes ennemies.
5100 – Affiche le marqueur de score ou l’enregistrement.
5400 – Routine d’effacement de l’écran activant les couleurs correspondantes par ligne.
5600 – Affiche les 6 rangées d’ennemis dans leur position et avec la couleur correspondante.
9000 – Ligne de données avec graphiques du jeu.
Le jeu
Ce jeu vidéo d’arcade a été développé par Universal et fabriqué par Taito en 1979.
L’objectif du jeu est de détruire la flotte d’envahisseurs dans la partie supérieure de l’écran. Pour cela, nous contrôlons une plate-forme avec un missile. Lors du tir du missile, vous devez éviter les astéroïdes et les tirs ennemis et toucher un envahisseur.
Contrôles: Appuyez sur Z ou X pour déplacer la plate-forme et le missile vers la gauche ou la droite. Appuyez sur la touche RETOUR pour tirer le missile.
Quelques autres versions
Comparaison de la version C-16 avec la version originaleLe C-16 en action !Comparaison de la version ZX Spectrum avec la version d’arcade originalele ZX Spectrum en action