Introduction : Programmer la mégadrive Facilement, présentation de la bête

La mégadrive, première du nom, elle claque niveau disign non ?

Bienvenue dans cette nouvelle série de tuto qui à pour thème, programmation de la mégadrive et entrer dans le vrais monde du Homebrew !
Je vais tenter de vous apprendre les bases pour manipuler cette console.

Il existe sur le net plusieurs moyens de la programmer avec différent langage. Vous pouvez partir sur le BasiEgaXorz. Qui est un ide simple d'utilisation et d'installation. Le langage utilisé et les Basic.
Mais je vous propose plutôt d'utiliser Second Basic qui est le petit frère de Bex. Notons aussi qu'il y a moment de la programmer directement en assembleur ce qui permet de gérer la machine à l'octet prés !

La mégadrive c'est quoi ?

La Mégadrive (Ou génésis) est une console réalisé par Sega sortie aprés la master system. Elle est sorti au pay du soleil levant le 29 octobre 1988. Le 14 Aout 89 au USA, Aout 90 en Corée sur sud, et le 30 novembre 1990 au pays du fromage qui pue !
Elle possède un système de cartouche pour lire les jeux, et deux port manette DB9 pour les contrôleurs. Elle est nativement rétro compatible avec la Master Système mais il faut un adaptateur de cartouche spécial pour utiliser les cartouches de sa grand soeur.

La mégadrive possède deux processeurs.

-Le Motorola 68000 qui est un processeur 16/32 bits cadencé à 7,6 Mhz. (On retrouve ce processeur dans les premiers micro mac, l'atari St, la console jaguar, Amiga 1000,2000,500,500+,600), Sega Saturne enomade mega Cd 32, et Neo Géo)

-Le processeur secondaire est le fameux Zilog Z80 qui est un processeur 8 bits. (Master system, Game Boy, Game Gear, Neo Géo (en coprocesseur), MSX, Amstrad CPC et CPC+, Zx Spectrum, VG500,ZX80,Zx81) Ce processeur est la pour s'occuper du son de la machine et de la rétro compatibilité avec la master system. (Et oué la mégadrive c'est du son 8 bits !)

La mémoire dans la peau :

La Mégadrive à plusieurs types de mémoire qui peut être travaillé :

Elle possède 64ko de Ram pour l'usage principale. ($FF0000 à $FFFFFF))(65535 kio)
Elle possède aussi 64ko dédié à la Vidéo Ram. ($C00000 à $DFFFFF)(65535 kio)
Elle possède 8ko de Ram dédié au Z80 pour le son ($A00000 à $A01FFF) (8,191 kio)

La mégadrive peut bouffer des cartouches qui varient entre 256ko de mémoire à 4 Mo. (Voir plus avec système pour inter changer des morceaux de mémoire par une autre ! Le Bank Switching)
-Les adresses mémoires se trouvent au début de la memory card de la mégadruve, $000000 à $4000000
-Des cartouches peuvent être équipé de SRAM qui permet de garder informations une fois la machine éteinte.

Au niveau affichage graphique, elle peut afficher 320 x 224 points ou 320 x 448 points à l'écran.
La mégadrive peut avoir 4 palettes de 16 couleurs en même temps ceci dit la 1er couleurs de la palette est toujours transparente. (Elle a un spectre de 512 teintes), et 80 sprites machines (32x32 points maxi) peuvent êtres affichés à l'écran.
La megadrive permet de faire du scrolling hardware et possède 3 plans (calques) d'affichages.

Au niveau capacité sonore :

Elle possède deux circuit : le Yamaha (Vroume Vroume) YM26123 et le SN76486 pour être compatible MS. (Non pas maso sado mais Master Système oh lolo !)

La mégadrive permet d'avoir 10 canaux sonore avec deux configurations qui sont possibles.
1) -6 Canaux Fm + 3 canaux PSG + 1 de bruit
ou
2) -5 Canaux FM + 1 canaux PCM + 3 canaux PSG + 1 de bruit.

D'autre look de la bête

Le Look de la génésis !

La mégadrive II qui se calque sur un disign plus soft

La version Génésis du modèle II

La Génésis III, une version bas de gamme de la console
Le Dico du Chapitre !

Adresse Mémoire : Un case mémoire peut mémoriser une valeur entre 0 et 255 compris (1 octets soit 8bits). Une adresse mémoire est tout simplement le numéros de la "case" pour son identification. Exemple la case mémoire numéros 169. Pour la simplification de lecture elle est souvent exprimé en valeur Hexadécimale. h361 pour cette exemple.

Assembleur : Type de langage de programmation avec des mots clefs mémo-technique pour des actions. Exemple : Move.B 5,DO => Place la valeur 5 dans la case mémoire du processeur qui porte le Nom de D0 (Un registre)

Basic : Langage de programmation conçu en 1964. Souvent utilisé pour initier à la programmation dans le passé. Les vieux micros ordinateur 8 bits (C64,Amstrad Cpc,MSX,MO5...) sont équipés du basic au démarrage.

Binaire : Système de comptage sur une base de 2 (0=>1)

C : Langage de programmation conçu en 1970. Le C permet d'être proche du système et par apport au basic de mieux gérer la mémoire.

Hexadecimal : Système de comptage sur une base de 16 (0 => 15) avec l'utilisation des lettres A à F pour représenter les valeurs 10 à 15.

Homebrew : (Fait maison) Réalisation d'un programme sur une machine dont en théorie nous avons pas le droit. Si nous nous tenons à ça, les jeux maisonréalisés sur les consoles 8 et 16 bits de Sega et de Nintendo sont des Homebrew car il faut officiellement une licence. Les jeux maison réalisé sur les micro ordinateur comme Amstrad,Amiga,Atari ne sont pas des HomeBreaw car il n'y avait pas besoin de licence. Ni sur les plus vielles consoles comme l'atari 2600. Ceci dit le terme Homebrew est plus ou moins utilisé par la création amateur de jeu vidéo souvent lié au vielle machine.

Memory Card : Carte de la mémoire d'un système, C'est tout simplement l'organisation de sa mémoire pour savoir ou se trouve l'espace programmable par exemple, ou se trouve les données que le système va lire pour afficher les graphismes...

Sprite Machine : Morceau de Graphisme directement géré par un processeur graphique dédié. A contrario d'un Sprite Sofware ou c'est en programmation pure que le morceau de graphisme est géré.

Rom : Read Only Memory ou mémoire morte. C'est des données qui ne peuvent pas être effacés, ni remplacé (du moins comme ça). C'est "les bios" de vos machines, les cartouches (ou du moins une partie des cartouches) de vos jeux consoles...

Ram : Random Access Memory ou Mémoire Vive. C'est des données volatile. Elle s'efface à l’arrêt du système. Elle permet d'enregistrer les données du système comme le résultat d'une opération, la mémorisation des la position X / Y de votre perso...

Son FM : Le Son est géré avec de la modulation de fréquence.

Son PSG: Générateur de Son programmable.

Son OM : Non je déconne pour celui la.

Son PCM : Pulse Code Modulation. Le Format des CD c'est du PCM

Sprite Machine : Morceau de Graphisme directement géré par un processeur graphique dédié. A contrario d'un Sprite Sofware ou c'est géré en programmation poru gérer les mouvements, la superposition...

Site réalisé par Jean Monos