Bienvenue visiteur !
|
Désactiver la neige
Statistiques
Liste des membres
Contact
Mentions légales
240 connectés actuellement
30835077 visiteurs depuis l'ouverture
2344 visiteurs aujourd'hui
Partenaires
Tous nos partenaires
Devenir partenaire
|
◂
| [Mégadrive] #01 Programmer la mégadrive
Programmer la mégadrive, Introduction | Ecrit par Monos le 23/07/2017 |
▸
|
❤ 0 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 SGDK par exemple qui est une librairie pour le langage de programmation C par D.Stephane un bon frenchy. (cocorico) Ou alors se simplifier la vie avec 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...
|
winterskill -
posté le 23/07/2017 à 23:47:59 (927 messages postés)
| Empereur des bons gros meuh | et où on l'apprend le basic?
non, parce que j'ai trouvé des cours sur le visual basic, le basic casio, le basic-like et le basilic, mais pas le basic basique...
mais sinon, j'aime bien l'idée de ces tutos. J'espère que tu en fera d'autres!
|
"pommes de rainette et pommes d'API, API API Rest-e" | "A combattre sans périls, on triomphe sans gloire" - le cid ; (oui mais on gagne quand même non?...) | à soutenir absolument : https://www.kickstarter.com/projects/1264023666/bushido-the-way-of-men |
Monos -
posté le 24/07/2017 à 04:38:03 (57322 messages postés)
| Vive le homebrew | La liste des mots clefs sont dans l'aide et je vais en parler dans les tutos !
Les algos, l'organisation du code et compagnie c'est la même chose peux importe le langage.
|
Signer du nez ? |
winterskill -
posté le 24/07/2017 à 15:25:43 (927 messages postés)
| Empereur des bons gros meuh | ben, pas tellement... si tu à l'habitude de ne faire que du C et que t'essaye de faire un truc en Ruby, tu vas avoir du mal à t'y retrouver (je suis d'accord que l'exemple est très caricatural, mais c'est pour exposer mes idées plus facilement).
en plus, si tu veux pouvoir faire des trucs de toi-même après, un tuto spécifiquement sur le BASIC, ça peut être pas mal...
edit :
je viens de m'apperçevoir que ton lien vers second basic (que je viens de découvrir ) mène à une page vide (elle se charge, mais le code source des totalement vide).
edit 2:
j'ai l'impression que c'est tout le site second-dimension qui est kâssé...
|
"pommes de rainette et pommes d'API, API API Rest-e" | "A combattre sans périls, on triomphe sans gloire" - le cid ; (oui mais on gagne quand même non?...) | à soutenir absolument : https://www.kickstarter.com/projects/1264023666/bushido-the-way-of-men |
Monos -
posté le 24/07/2017 à 17:36:09 (57322 messages postés)
| Vive le homebrew | Citation: ben, pas tellement... si tu à l'habitude de ne faire que du C et que t'essaye de faire un truc en Ruby, tu vas avoir du mal à t'y retrouve |
Moué non désolé, si tu es habitué au C, le basic sérieux...
Tu retrouves la même idée général dans l'organisation du code, tu as les boucles, les conditions, les fonctions, (ou / et procédure)... Juste à s'adapter à la nouvelle syntaxe.
Ma série de tuto est la aussi pour apprendre la base du basic aussi !
Le site est de nouveau opérationnel.
|
Signer du nez ? |
miduki -
posté le 24/07/2017 à 22:56:21 (1016 messages postés)
- | | La meilleur des 16 bits!
Mais en ayant regarder les 4 tutos, je me rends compte que c'est pas facile!
Rien a voir avec du RM!
Et puis... Aucune interface graphique?
Hummmmm...
En tout cas chapeau Monos! Je suis sur que ça doit interessé du monde, de programmer sur cette bête mythique!
|
https://projetego.com/ Projet Ego |
winterskill -
posté le 25/07/2017 à 00:43:42 (927 messages postés)
| Empereur des bons gros meuh | Ah oui.
Mais peut-on utiliser des imports (genre tu écrit tes Giles dans un fichier et tu l'importe dans le fichier main)
|
"pommes de rainette et pommes d'API, API API Rest-e" | "A combattre sans périls, on triomphe sans gloire" - le cid ; (oui mais on gagne quand même non?...) | à soutenir absolument : https://www.kickstarter.com/projects/1264023666/bushido-the-way-of-men |
Monos -
posté le 25/07/2017 à 05:02:53 (57322 messages postés)
| Vive le homebrew | Citation: je me rends compte que c'est pas facile! |
Mais si c'est facile façon de parler. La programmation en général ce n'est pas si compliqué que ça pour faire des petites choses.
Citation: ais peut-on utiliser des imports (genre tu écrit tes Giles dans un fichier et tu l'importe dans le fichier main) |
C'est quoi les Giles ?
Le Logiciel en basic semble merdé dans les "includes directe" mais avec le SDGK (en C) tu peux et doit faire des includes.
Citation: Et puis... Aucune interface graphique? |
C'est du code ! Le moteur tu le codes à la main. L'organisation c'est toi.
|
Signer du nez ? |
winterskill -
posté le 25/07/2017 à 14:36:14 (927 messages postés)
| Empereur des bons gros meuh | Des t i l e s
Saleté de correcteur orthographique!
|
"pommes de rainette et pommes d'API, API API Rest-e" | "A combattre sans périls, on triomphe sans gloire" - le cid ; (oui mais on gagne quand même non?...) | à soutenir absolument : https://www.kickstarter.com/projects/1264023666/bushido-the-way-of-men |
|
|
|