❤ 0 Du Homebrew ! De la création amateure voire plus !
Du Homebrew ! De la création amateure voire plus !
Homebrew, jeu fait maison, produit du terroir... un terme utilisé en principe pour désigner la création de jeux vidéo sur des plates-formes dont nous n'avons pas l'autorisation (par exemple créer un jeu sur NES où, pour que le jeu soit officiel, il faut une licence de la part de Nintendo). Cette expression est finalement utilisée pour les créations de jeux sur de vieux micros ordinateurs où, contrairement aux consoles, il n'y avait pas besoin d'autorisation du constructeur de la machine pour sortir un jeu. Le terme est parfois utilisé aussi pour nos "PC Windows" donc faire des jeux sur RPG Maker est peut être aussi du Homebrew. Après tout c'est un produit du terroir !
Twin Dragons, un jeu francophone pour la NES réalisé entièrement en assembleur
Programmer sur les vieux micros-ordinateurs c'est facile, surtout les tests sur les machines réelles. Il existe une multitude de procédés pour programmer directement sur la machine réelle ou sur émulateur, et distribuer ses productions sur internet. Ou bien faire du "cross dev", c'est à dire utiliser une autre machine pour la programmation (Windows, Mac, Linux) et tester sur la machine cible notre programme.
Les divers procédés peuvent être : un câble, une carte bluetooth, par disquette, voir carte SD/flash...
Personnellement, pour mon Amiga, je peux dialoguer entre cette vieille machine et mon PC avec un lecteur de carte Flash. Pour mon Amstrad CPC j'ai un vieux PC encore équipé d'un lecteur de disquette trois pouces et demi dont un de mes CPC est équipé. Il existe aussi des "simulateurs de disquettes" sur nos vieilles machines et on y injecte une clef USB ou une carte SD (un Gotek par exemple).
Un Gotek, qui permet de lire une clef USB et de simuler un lecteur de disquette
La programmation sur ce genre de machine peut se faire de plusieurs manières. Les vieux ordinateurs 8-bits intègrent souvent à l'allumage un langage. Et souvent un langage de la famille des BASIC. Ce qui permet d'apprendre la base de la programmation (variables, boucles, conditions, sous-programmes). Mais en principe, pour tout ce qui concerne les graphismes sur ce type d'ordinateur, il n'y avait pas le choix, des connaissances en assembleur dédié à la machine concernée devenaient nécessaires vu que le BASIC est interprété. Ce genre de programmation était lent à réaliser. L'assembleur va directement au cœur du système ce qui a l'avantage d’être rapide à lire pour l'ordinateur, même pour une machine 8-bits.
La célèbre démonstration "Hello World" en BASIC sur Amstrad CPC
À l'arrivée des machines 16 et 32 bits, les langages incorporés à l'allumage se font rares, déjà à cette époque de nouveaux langages facilitant le développement amateur existent bel et bien. Les dialectes de la famille des BASIC sont toujours à l'honneur. Le BASIC de l'Atari, celui de l'Amiga, d'autres dialectes comme le GFA BASIC, le Blitz BASIC, l'Amos, le STOS... Le langage C apparaît aussi sur ce genre de machine avec des compilateurs, certains gratuits et d'autres payants. Les freewares et sharewares apparaissent à cette époque. Les jeux dits du domaine publique aussi, où on envoie une disquette vierge pour en recevoir une avec des jeux, ou des utilitaires.
Un "Hello World" en BASIC Amos, pour la famille des micros-ordinateurs Amiga
La scène de "rétro making" existe bel et bien. Des jeux pour les micros ordinateurs du passé sortent régulièrement, et ce pour la plupart des machines. Le MO5, Le MSX, le CPC, l'Amiga, l'Atari ST, le Commodore 64, le ZX Spectrum, les Orics... ne sont pas des machines mortes. Elles sont toujours utilisées par des passionnés de la programmation et de l’électronique, qui continuent de sortir des extensions pour améliorer tout ça (des modules de mémoire, des coprocesseurs surpuissants, des processeurs sonores...).
Nanako, un homebrew sur CPC Amstrad
Pour les consoles c'est une autre affaire. Pas ou peu de possibilités de programmation directement dessus et d'échanger les cartouches ! Réaliser des cartouches n'est pas aussi simple que de copier des programmes sur une carte USB... Ceci dit il est toujours possible de mettre les mains dans le cambouis et de se faire plaisir en créant des jeux sur la console de son enfance. Qu'il s'agisse de la NES, de l'Atari 2600, de la Mega Drive, de la PS1, de la Dreamcast, de la Nintendo 64...
Les machines peuvent se programmer en langage machine et, souvent, des kits de développement amateur (SDK) sont trouvables sur le net et se couplent avec le langage C (ce qui permet de gérer la mémoire). Il suffit juste de se documenter sur la machine cible et de créer son propre "Hello World". Avec un émulateur nous pouvons voir le résultat, mais qu'en est-il sur la machine réelle ?
Les machines qui sont passées au support CD ne posent pas de problème dans la majeure partie des cas. On grave correctement tout ça sur un CD (il y a souvent une marche à suivre), des fois il faut quand meme "pucer" le hardware, et le tour est joué.
Pier Solar sur Dreamcast
Mais pour les jeux sur cartouches ça devient plus délicat. Ceci dit, ce n'est pas la mort non plus ! Il existe des cartouches spéciales dans lesquelles on peut placer une carte SD. Dessus on met le programme en fichier binaire, et on place la cartouche dans la console. On allume la console et on va rechercher le fichier binaire. Un truc magique va alors se passer : le fichier binaire va se copier dans une puce, et cette puce sera lue par la console comme s'il s'agissait d'une vrais cartouche. À vrai dire cela devient une vrais cartouche. Ce genre de cartouche se nomme un everdrive. Par contre ce n'est pas donné, et suivant la qualité de l'objet ça peut vite monter à 100/150 euros. Mais le prix en vaut la chandelle, car ça permet de tester ses propres créations et les créations des autres personnes.
Ce genre de procédé permet donc de tester les créations sur machine réelle, ce qui est d'autant plus intéressant que souvent les émulateurs d'une part et la console réelle d'une autre n'inteprètent pas les programmes exactement de la même façon.
Cartouche de Papi Commando par Vatea, sur Mega Drive
Des jeux sur vieilles consoles sont toujours en production, et souvent se paient le luxe d'avoir de vraies versions en boîtes commercialisées par des éditeurs spécialisés dans ce domaine. Collectorvision et Second Dimension pour en citer deux !
Sydney Hunter sur SNES, porté par Alekmaul
Des SDK (kits de développement amateur) pour vos machines !
Vous voulez vous lancer vous aussi dans l'aventure sur console mais vous ne savez pas par où commencer ? Voici une liste non exhaustive de SDK et de liens pour débuter l'aventure. La plupart du temps vous allez devoir apprendre à programmer en C. Il existe aussi certains compilateurs permettant de faire ça en BASIC (voir Mega Drive).
Master System/Game Gear/SG1000
Le DevkitSMS permet de créer des programmes sur les machines 8-bits de Sega.
Mega Drive (Genesis)
SecondBASIC et BEX sont deux compilateurs pour le langage de programmation en BASIC pour la Mega Drive. SecondBASIC est une amélioration de BEX. Au niveau du C il existe le SDGK de Stephane D. (lien vers le wiki)
Dreamcast
Michel Louvet à créé un truc cool pour la Dreamcast : son propre SDK facile à mettre en place et en cross over avec le PC, en plus il apprend à faire du C ! Lien de la première vidéo de "Jeu développe". Son SDK est basé sur le KOS.
NES
pyNes pour programmer pour la NES en Python. Le compilateur CC65 (voir plus bas) permet de développer sur la NES en langage de programmation C.
Super Nintendo
PVSneslib est un SDK pour la Super Nintendo développé par Alexmaul.
Game Boy Advance
Nuki (oui, notre Nuki à nous) a réalisé une petite bibliothèque avec devkitpro et devkitArm.
Game Boy
Tutoriel pour la Game Boy en assembleur Z80.
Un Kit de développement pour la Game Boy (GDK).
GBA Rust, un kit de developpement en langage Rust.
PC Engine
Tutoriel de FL pour programmer le PC Engine.
Atari 7800
Page de Seb sur l'Atari 7800 avec des outils pour la programmer en BASIC. Lien vers le manuel.
Oric
Lien vers SDK.
Neo Geo
Le SDK de Hmpan. La Neo Geo se programme aussi en C. Lien vers un wiki.
Deux compilateurs 8-bits génériques
Pour nos machines 8-bits deux processeurs se partagent le marché : le Zilog 80 et le Mos.
- Le compilateur SDCC permet de compiler du code C sur toute machine basé sur le Zilog (Amstrad CPC, ZX Spectrum, Game Boy, Z81, Game Gear, Master System, MSX, Colecovision, SG1000...).
- Le compilateur CC65 permet de compiler en C sur toutes les machines à base du 6502 ou de sa famille (Apple 2, Atari 2600, Atari 8bits, Atari 5200, C16, C64, C128, Atmos, NES, PC Engine).
Posté par Monos le 16/04/2018 à 00:41:34.
|