La programmation Mega Drive pour les Nuls expliquée par les Pros
+8
oofwill
Kaméha
philip
Albibak
grostonton
Starfox18
Stef
vingazole
12 participants
Page 1 sur 5
Page 1 sur 5 • 1, 2, 3, 4, 5
La programmation Mega Drive pour les Nuls expliquée par les Pros
Bon, voilà, depuis le temps qu'on en parlait, le topic est enfin créé.
Je vais me servir de ce premier post pour faire une sorte de lexique avec chaque terme technique expliqué par les habitués, les logiciels recommandés, des infos sur l'architecture de la console, des astuces de programmation, etc...
------------------------------------------------------------
LEXIQUE
0-9
68000 : CPU de la Mega Drive
A
ASM : abréviation pour "assembleur". L'assembleur permet d'écrire des programmes qui seront exécutés par le CPU dans un langage intelligible pour les humains. Le code source est ensuite "compilé" (on dit plutôt "assemblé") en code numérique ("langage machine") directement exécutable par le CPU. La programmation est simplifiée par l'usage des mnémoniques/opcodes (par exemple ADD pour une addition) et des labels (qui seront remplacés par les adresses correspondantes). Chaque CPU possède son propre langage machine et par conséquent son propre assembleur.
B
C
CPU : Central Processing Unit, qu'on peut traduire par "unité centrale de traitement". C'est le composant de l'ordinateur qui assure l'exécution des programmes. Dans le cas de la Mega Drive, le CPU est le microprocesseur MOTOROLA 68000, qui était également utilisé dans les ATARI ST et les AMIGA.
D
E
F
FM : Frequency Modulation, "modulation de fréquence". C'est un procédé de synthèse sonore permettant d'ajouter à une fréquence de base des harmoniques donnant des timbres variés au son produit. La Megadrive intègre un (co-) processeur sonore YAMAHA YM 2612 assurant une polyphonie de 6 canaux FM.
G
H
I
Interruptions : elles peuvent être considérées comme des événements, par exemple quand le faisceau de l'écran est arrivé en bas de l'écran (donc ne trace plus rien) ou commence à tracer une nouvelle ligne, etc. Chaque machine possède ses propres interruptions, ainsi que sa gestion.
J
K
L
M
Mot : Normalement on appelle un mot un nombre codé sur 16 bits
Leurs valeurs ne peuvent qu'être entre 0 et 65535 ,ça se calcule comme ça 2 exp 16
N
O
Octet : un octet en informatique est un nombre codé sur 8 bits, exemple:
0 = en binaire 00000000
3= en binaire 00000011
Leurs valeurs ne peuvent qu'être entre 0 et 255 ,ça se calcule comme ça 2 exp 8
P
Parallaxe : terme pour désigner un type particulier de scrolling. En général, les parallaxes sont aussi appelés différentiels et dans les faits ne sont applicables qu'aux machines disposant d'au moins 2 plans de fond car cela permet de faire passer un plan au premier plan qui ira plus vite que le second, afin de donner une impression de profondeur. Sur des machines avec un seul fond (PCE, NES,SMS), cet effet peut être simulé de plusieurs manières avec des sprites : via des interruptions ou via du tile swapping. Bien sur ces techniques sont également applicables aux machines disposant de plusieurs plans.
PCM : Pulse Code Modulation, "modulation d'impulsion codée". C'est un procédé de restitution de samples ("échantillons") sonores. Le (co-) processeur sonore YAMAHA YM 2612 présent dans la Megadrive permet d'utiliser une voix en PCM.
Pixel : contraction de picture element (élément d'image), c'est le plus petit élément affichable à l'écran (de forme carrée sur la Megadrive).
Q
R
RAM : Random Access Memory, "mémoire à accès direct" ou "mémoire vive". Contrairement à la ROM, la RAM est modifiable à loisir. Elle est volatile : les données sont effacées lorsque l'alimentation électrique est coupée. Elle sert de mémoire de travail lors de l'exécution des programmes (par exemple pour stocker le score ou la position du joueur dans un jeu).
Résolution : taille de l'affichage en pixels. Une résolution de 320x224 indique que l'affichage se fait sur 320 pixels en largeur et 224 pixels en hauteur.
ROM : Read-Only Memory, "mémoire à lecture seule" (on parle aussi de "mémoire morte" en français). Elle est figée et non volatile (les données sont conservées même lorsque l'alimentation électrique est coupée). Les programmes et données nécessaires à un jeu Megadrive sont stockés en ROM sur des cartouches.
S
Scrolling : technique qui permet de déplacer un fond de une ou plusieurs pixels.
Les scrollings peuvent être hardware (c'est la puce vidéo qui se charge de ce déplacement), software (le programmeur via programmation va faire le déplacement et donc utiliser le CPU) et semi hardware. On parle aussi de hardscroll (utilisé par exemple sur Atari St ou amstrad CPC) lorsqu'on bidouille la puce vidéo pour simuler un scrolling hardware ; cela nécessite plus de CPU qu'un vrai scrolling hardware mais beaucoup moins que de tout faire à la main. A noter que cette dernière technique n'est pas aussi flexible qu'un vrai scrolling hardware et dépend fortement de la puce vidéo. Enfin, les scrollings peuvent être verticaux, horizontaux ou les 2 à la fois (scrollings multidirectionnels) .
Sprite : peut être hardware ou software, c'est un élément graphique indépendant du fond.
Cette indépendance (appelée masquage) est soit gérée par la puce vidéo(sprites hardware), soit par le CPU (sprites software) et dans ce cas c'est le programmeur qui doit gérer le masquage par programmation .
Le masquage, qu'il soir hardware ou software, se fait via une couleur appelée transparente, en général la couleur 0 de la palette du/des sprite(s), c'est surtout vrai pour les sprites hardwares, en soft on peut choisir la couleur.
Swap de tiles : l'application aussi de la gestion des tiles et la facilité, par exemple avec une tile (8x8 pixels) représentant un début de mur en brique, on peut remplir tout un écran est donner l'impression que le fond est un mur immense ..
Pour changer le mur de pierre en mur de bois, il suffit juste de changer la tuile 8x8 représentant le mur en brique, par celle d'un mur en bois pour changer tout l'écran .
Soit 32 octets seulement à remplacer .
Cette technique est souvent utilisée pour faire des animations dans les fonds graphiques, ou même des scrollings entiers.
T
Tile : ou tuile en français, c'est un petit élément graphique qui compose un fond. Cet élément peut aussi être hardware ou software.
Une gestion des tiles hardware, ou appelé aussi mode caractère sur les micros, permet d'économiser de la mémoire, surtout video, car par exemple, si on veut afficher la lettre A sur toute une ligne d'un écran de 256 pixels,en prenant une tile de 8 pixels de large, on doit l'afficher 32 fois.
Le système de gestion des tiles permet de n'avoir qu'une seule fois l'élément graphique représentant le A en RAM/VRAM, et de dire à la puce vidéo qu'il est à telle emplacement mémoire, et ce 32 fois .
Sur une PCE ou un MD, une tile 8x8 pixels prend 32 octets en VRAM, et il faut 2 octets pour dire à la puce video comment afficher la tile soit 96 octets pour l'afficher sur toute la ligne .
Sur une machine ne faisant pas de gestion de tiles, le A graphique doit être affiché 32 fois aussi donc on a 32x32(taille de la tile) = 1024 octets, pas besoin d'un long discours pour voir les avantages .
Non seulement on a un gain de place mais aussi de temps, transférer 96 octets est bcp plus rapide que 1024.
La gestion software des tiles fonctionne comme pour les sprites, c'est au programmeur de le faire via le CPU.
U
V
VDP : Video Display Processor, (co-)processeur d'affichage vidéo : ce composant permet de décharger le CPU de la machine en assurant tout le traitement vidéo. Il gère en particulier les scrollings, le calcul des overlays ("calques") des différents plans et l'affichage des sprites.
VRAM : RAM vidéo, elle est dédiée au VDP (processeur vidéo) : elle contient les données nécessaires au VDP pour assurer l'affichage : coordonnées et taille des sprites, couleurs des palettes, données graphiques des tiles, etc...
W
X
Y
Z
------------------------------------------------------------
LOGICIELS
Je vais me servir de ce premier post pour faire une sorte de lexique avec chaque terme technique expliqué par les habitués, les logiciels recommandés, des infos sur l'architecture de la console, des astuces de programmation, etc...
------------------------------------------------------------
LEXIQUE
0-9
68000 : CPU de la Mega Drive
A
ASM : abréviation pour "assembleur". L'assembleur permet d'écrire des programmes qui seront exécutés par le CPU dans un langage intelligible pour les humains. Le code source est ensuite "compilé" (on dit plutôt "assemblé") en code numérique ("langage machine") directement exécutable par le CPU. La programmation est simplifiée par l'usage des mnémoniques/opcodes (par exemple ADD pour une addition) et des labels (qui seront remplacés par les adresses correspondantes). Chaque CPU possède son propre langage machine et par conséquent son propre assembleur.
B
C
CPU : Central Processing Unit, qu'on peut traduire par "unité centrale de traitement". C'est le composant de l'ordinateur qui assure l'exécution des programmes. Dans le cas de la Mega Drive, le CPU est le microprocesseur MOTOROLA 68000, qui était également utilisé dans les ATARI ST et les AMIGA.
D
E
F
FM : Frequency Modulation, "modulation de fréquence". C'est un procédé de synthèse sonore permettant d'ajouter à une fréquence de base des harmoniques donnant des timbres variés au son produit. La Megadrive intègre un (co-) processeur sonore YAMAHA YM 2612 assurant une polyphonie de 6 canaux FM.
G
H
I
Interruptions : elles peuvent être considérées comme des événements, par exemple quand le faisceau de l'écran est arrivé en bas de l'écran (donc ne trace plus rien) ou commence à tracer une nouvelle ligne, etc. Chaque machine possède ses propres interruptions, ainsi que sa gestion.
J
K
L
M
Mot : Normalement on appelle un mot un nombre codé sur 16 bits
Leurs valeurs ne peuvent qu'être entre 0 et 65535 ,ça se calcule comme ça 2 exp 16
N
O
Octet : un octet en informatique est un nombre codé sur 8 bits, exemple:
0 = en binaire 00000000
3= en binaire 00000011
Leurs valeurs ne peuvent qu'être entre 0 et 255 ,ça se calcule comme ça 2 exp 8
P
Parallaxe : terme pour désigner un type particulier de scrolling. En général, les parallaxes sont aussi appelés différentiels et dans les faits ne sont applicables qu'aux machines disposant d'au moins 2 plans de fond car cela permet de faire passer un plan au premier plan qui ira plus vite que le second, afin de donner une impression de profondeur. Sur des machines avec un seul fond (PCE, NES,SMS), cet effet peut être simulé de plusieurs manières avec des sprites : via des interruptions ou via du tile swapping. Bien sur ces techniques sont également applicables aux machines disposant de plusieurs plans.
PCM : Pulse Code Modulation, "modulation d'impulsion codée". C'est un procédé de restitution de samples ("échantillons") sonores. Le (co-) processeur sonore YAMAHA YM 2612 présent dans la Megadrive permet d'utiliser une voix en PCM.
Pixel : contraction de picture element (élément d'image), c'est le plus petit élément affichable à l'écran (de forme carrée sur la Megadrive).
Q
R
RAM : Random Access Memory, "mémoire à accès direct" ou "mémoire vive". Contrairement à la ROM, la RAM est modifiable à loisir. Elle est volatile : les données sont effacées lorsque l'alimentation électrique est coupée. Elle sert de mémoire de travail lors de l'exécution des programmes (par exemple pour stocker le score ou la position du joueur dans un jeu).
Résolution : taille de l'affichage en pixels. Une résolution de 320x224 indique que l'affichage se fait sur 320 pixels en largeur et 224 pixels en hauteur.
ROM : Read-Only Memory, "mémoire à lecture seule" (on parle aussi de "mémoire morte" en français). Elle est figée et non volatile (les données sont conservées même lorsque l'alimentation électrique est coupée). Les programmes et données nécessaires à un jeu Megadrive sont stockés en ROM sur des cartouches.
S
Scrolling : technique qui permet de déplacer un fond de une ou plusieurs pixels.
Les scrollings peuvent être hardware (c'est la puce vidéo qui se charge de ce déplacement), software (le programmeur via programmation va faire le déplacement et donc utiliser le CPU) et semi hardware. On parle aussi de hardscroll (utilisé par exemple sur Atari St ou amstrad CPC) lorsqu'on bidouille la puce vidéo pour simuler un scrolling hardware ; cela nécessite plus de CPU qu'un vrai scrolling hardware mais beaucoup moins que de tout faire à la main. A noter que cette dernière technique n'est pas aussi flexible qu'un vrai scrolling hardware et dépend fortement de la puce vidéo. Enfin, les scrollings peuvent être verticaux, horizontaux ou les 2 à la fois (scrollings multidirectionnels) .
Sprite : peut être hardware ou software, c'est un élément graphique indépendant du fond.
Cette indépendance (appelée masquage) est soit gérée par la puce vidéo(sprites hardware), soit par le CPU (sprites software) et dans ce cas c'est le programmeur qui doit gérer le masquage par programmation .
Le masquage, qu'il soir hardware ou software, se fait via une couleur appelée transparente, en général la couleur 0 de la palette du/des sprite(s), c'est surtout vrai pour les sprites hardwares, en soft on peut choisir la couleur.
Swap de tiles : l'application aussi de la gestion des tiles et la facilité, par exemple avec une tile (8x8 pixels) représentant un début de mur en brique, on peut remplir tout un écran est donner l'impression que le fond est un mur immense ..
Pour changer le mur de pierre en mur de bois, il suffit juste de changer la tuile 8x8 représentant le mur en brique, par celle d'un mur en bois pour changer tout l'écran .
Soit 32 octets seulement à remplacer .
Cette technique est souvent utilisée pour faire des animations dans les fonds graphiques, ou même des scrollings entiers.
T
Tile : ou tuile en français, c'est un petit élément graphique qui compose un fond. Cet élément peut aussi être hardware ou software.
Une gestion des tiles hardware, ou appelé aussi mode caractère sur les micros, permet d'économiser de la mémoire, surtout video, car par exemple, si on veut afficher la lettre A sur toute une ligne d'un écran de 256 pixels,en prenant une tile de 8 pixels de large, on doit l'afficher 32 fois.
Le système de gestion des tiles permet de n'avoir qu'une seule fois l'élément graphique représentant le A en RAM/VRAM, et de dire à la puce vidéo qu'il est à telle emplacement mémoire, et ce 32 fois .
Sur une PCE ou un MD, une tile 8x8 pixels prend 32 octets en VRAM, et il faut 2 octets pour dire à la puce video comment afficher la tile soit 96 octets pour l'afficher sur toute la ligne .
Sur une machine ne faisant pas de gestion de tiles, le A graphique doit être affiché 32 fois aussi donc on a 32x32(taille de la tile) = 1024 octets, pas besoin d'un long discours pour voir les avantages .
Non seulement on a un gain de place mais aussi de temps, transférer 96 octets est bcp plus rapide que 1024.
La gestion software des tiles fonctionne comme pour les sprites, c'est au programmeur de le faire via le CPU.
U
V
VDP : Video Display Processor, (co-)processeur d'affichage vidéo : ce composant permet de décharger le CPU de la machine en assurant tout le traitement vidéo. Il gère en particulier les scrollings, le calcul des overlays ("calques") des différents plans et l'affichage des sprites.
VRAM : RAM vidéo, elle est dédiée au VDP (processeur vidéo) : elle contient les données nécessaires au VDP pour assurer l'affichage : coordonnées et taille des sprites, couleurs des palettes, données graphiques des tiles, etc...
W
X
Y
Z
------------------------------------------------------------
LOGICIELS
Dernière édition par OZoran Tsubasa le Ven 22 Nov 2013 - 17:03, édité 8 fois
Invité- Invité
Re: La programmation Mega Drive pour les Nuls expliquée par les Pros
Bon je vais essayer de commencer :
OCTET:Un octet en informatique est un nombre codé sur 8 bits, exemple:
0 = en binaire 00000000
3= en binaire 00000011
Leurs valeurs ne peuvent qu'être entre 0 et 255 ,ça se calcule comme ça 2 exp 8
UN MOT:Normalement on appelle un mot un nombre codé sur 16 bits
Leurs valeurs ne peuvent qu'être entre 0 et 65535 ,ça se calcule comme ça 2 exp 16
SPRITES: Peuvent être hardware ou software, ce sont des éléments graphiques indépendants du fond.
Cette indépendance (appelée masquage) est soit gérée par la puce vidéo(sprites hardware), soit par le CPU (sprites software) et dans ce cas c'est le programmeur qui doit gérer le masquage par programmation .
Le masquage, qu'il soir hardware ou software, se fait via une couleur appelée transparente, en général la couleur 0 de la palette du/des sprite(s), c'est surtout vrai pour les sprites hardwares, en soft on peut choisir la couleur.
TILES:Ou tuiles en français,ce sont de petits éléments graphiques qui compose un fond .Ces éléments peuvent aussi être hardware ou software.
Une gestion des tiles hardware, ou appelé aussi mode caractère sur les micros, permet d'économiser de la mémoire, surtout video, car par exemple, si on veut afficher la lettre A sur toute une ligne d'un écran de 256 pixels,en prenant une tile de 8 pixels de large, on doit l'afficher 32 fois.
Le système de gestion des tiles permet de n'avoir qu'une seule fois l'élément graphique représentant le A en RAM/VRAM, et de dire à la puce vidéo qu'il est à telle emplacement mémoire, et ce 32 fois .
Sur une PCE ou un MD, une tile 8x8 pixels prend 32 octets en VRAM, et il faut 2 octets pour dire à la puce video comment afficher la tile soit 96 octets pour l'afficher sur toute la ligne .
Sur une machine ne faisant pas de gestion de tiles, le A graphique doit être affiché 32 fois aussi donc on a 32x32(taille de la tile) = 1024 octets, pas besoin d'un long discours pour voir les avantages .
Non seulement on a un gain de place mais aussi de temps, transférer 96 octets est bcp plus rapide que 1024 .
La gestion software des tiles fonctionne comme pour les sprites, c'est au programmeur de le faire via le CPU .
SWAP DE TILES:L'application aussi de la gestion des tiles et la facilité, par exemple avec une tile(8x8 pixels) représentant un début de mur en brique, on peut remplir tout un écran est donner l'impression que le fond est un mur immense ..
Pour changer le mur de pierre en mur de bois, il suffit juste de changer la tuile 8x8 représentant le mur en brique, par celle d'un mur en bois pour changer tout l'écran .
Soit 32 octets seulement à remplacer .
Cette technique est souvent utilisée pour faire des animations dans les fonds graphiques, ou même des scrollings entier .
Si il faut d'autres précisions dis le moi ..
OCTET:Un octet en informatique est un nombre codé sur 8 bits, exemple:
0 = en binaire 00000000
3= en binaire 00000011
Leurs valeurs ne peuvent qu'être entre 0 et 255 ,ça se calcule comme ça 2 exp 8
UN MOT:Normalement on appelle un mot un nombre codé sur 16 bits
Leurs valeurs ne peuvent qu'être entre 0 et 65535 ,ça se calcule comme ça 2 exp 16
SPRITES: Peuvent être hardware ou software, ce sont des éléments graphiques indépendants du fond.
Cette indépendance (appelée masquage) est soit gérée par la puce vidéo(sprites hardware), soit par le CPU (sprites software) et dans ce cas c'est le programmeur qui doit gérer le masquage par programmation .
Le masquage, qu'il soir hardware ou software, se fait via une couleur appelée transparente, en général la couleur 0 de la palette du/des sprite(s), c'est surtout vrai pour les sprites hardwares, en soft on peut choisir la couleur.
TILES:Ou tuiles en français,ce sont de petits éléments graphiques qui compose un fond .Ces éléments peuvent aussi être hardware ou software.
Une gestion des tiles hardware, ou appelé aussi mode caractère sur les micros, permet d'économiser de la mémoire, surtout video, car par exemple, si on veut afficher la lettre A sur toute une ligne d'un écran de 256 pixels,en prenant une tile de 8 pixels de large, on doit l'afficher 32 fois.
Le système de gestion des tiles permet de n'avoir qu'une seule fois l'élément graphique représentant le A en RAM/VRAM, et de dire à la puce vidéo qu'il est à telle emplacement mémoire, et ce 32 fois .
Sur une PCE ou un MD, une tile 8x8 pixels prend 32 octets en VRAM, et il faut 2 octets pour dire à la puce video comment afficher la tile soit 96 octets pour l'afficher sur toute la ligne .
Sur une machine ne faisant pas de gestion de tiles, le A graphique doit être affiché 32 fois aussi donc on a 32x32(taille de la tile) = 1024 octets, pas besoin d'un long discours pour voir les avantages .
Non seulement on a un gain de place mais aussi de temps, transférer 96 octets est bcp plus rapide que 1024 .
La gestion software des tiles fonctionne comme pour les sprites, c'est au programmeur de le faire via le CPU .
SWAP DE TILES:L'application aussi de la gestion des tiles et la facilité, par exemple avec une tile(8x8 pixels) représentant un début de mur en brique, on peut remplir tout un écran est donner l'impression que le fond est un mur immense ..
Pour changer le mur de pierre en mur de bois, il suffit juste de changer la tuile 8x8 représentant le mur en brique, par celle d'un mur en bois pour changer tout l'écran .
Soit 32 octets seulement à remplacer .
Cette technique est souvent utilisée pour faire des animations dans les fonds graphiques, ou même des scrollings entier .
Si il faut d'autres précisions dis le moi ..
Invité- Invité
Re: La programmation Mega Drive pour les Nuls expliquée par les Pros
Merci TOUKO. Première mise à jour du lexique faite grâce à toi. N'hésitez pas à donner des éléments pour le remplir d'avantage.
C'est également un espace d'échange où l'on va pouvoir s'aider et se conseiller les uns les autres.
C'est également un espace d'échange où l'on va pouvoir s'aider et se conseiller les uns les autres.
Invité- Invité
Re: La programmation Mega Drive pour les Nuls expliquée par les Pros
(juste pour foutre un peu la merde:) tu peux aussi coder des nombres signés et/ou à virgule fixe sur un octet ou un mot...
vingazole- Infirmier
- Nombre de messages : 4522
Age : 50
Localisation : Midian
Date d'inscription : 04/01/2012
Re: La programmation Mega Drive pour les Nuls expliquée par les Pros
Oui tu as raison, mais je voulais rester le plus simple possible, ne sachant pas vraiment jusqu ou il fallait aller .
Apres rien n est fige je pense, donc faut pas hesiter a suggerer ou corriger.
Apres rien n est fige je pense, donc faut pas hesiter a suggerer ou corriger.
Invité- Invité
Re: La programmation Mega Drive pour les Nuls expliquée par les Pros
Exactement, la liste est évolutive jusqu'à ce qu'on arrive aux explications les plus claires possible. D'ailleurs, lorsque vous donnez l'explication d'un terme, gardez à l'esprit que ça s'adresse aux buses comme moi. Du coup, si dans votre explication vous utilisez d'autres termes techniques, ce ne sera pas constructif, allez à l'essentiel en schématisant au maximum, ce n'est pas obligatoire de rentrer dans le détail.
Invité- Invité
Re: La programmation Mega Drive pour les Nuls expliquée par les Pros
SCROLLING:Technique qui permet de déplacer un fond de une ou plusieurs pixels.
Les scrollings peuvent être hardware, c'est la puce vidéo qui se charge de ce déplacement, software, le programmeur via programmation va faire le déplacement et donc utiliser le CPU, et semi hardware, on parle aussi de hardscroll (utilisé par exemple sur Atari St ou amstrad CPC),on bidouille la puce vidéo pour simuler un scrolling hardware, cela nécessite plus de CPU qu'un vrai scrolling hardware, mais beaucoup moins que de tout faire à la main.
Cette technique est pas aussi flexible qu'un vrai scrolling hardware, et dépend fortement de la puce vidéo .
Les scrollings peuvent être verticaux, horizontaux, ou les 2 (scrollings multidirectionnels) .
PARALLAXES: Terme pour désigner un type particulier de scrolling.
En général les parallaxes sont aussi appelés différentiels, et dans les faits ne sont applicables qu'aux machines disposant d'au moins 2 plans de fond.
Car cela permet de faire passer un plan au premier plan qui va aller plus vite que le second plan, pour donner une impression de profondeur .
Sur des machines avec un seul fond (PCE, NES,SMS), cet effet peut être simulé de plusieurs manières.
Avec des sprites ,via des interruptions, ou via du tile swapping .
Bien sur ces techniques sont en plus tout aussi applicables aux machines avec plusieurs plans.
INTERRUPTIONS: Elles peuvent être considérées comme des événements, par exemple quand le faisceau de l'écran est arrivé en bas de l'écran (donc ne trace plus rien), ou commence à tracer une nouvelle ligne etc ..
Chaque machine possèdent ses propres interruptions, ainsi que sa gestion .
Les scrollings peuvent être hardware, c'est la puce vidéo qui se charge de ce déplacement, software, le programmeur via programmation va faire le déplacement et donc utiliser le CPU, et semi hardware, on parle aussi de hardscroll (utilisé par exemple sur Atari St ou amstrad CPC),on bidouille la puce vidéo pour simuler un scrolling hardware, cela nécessite plus de CPU qu'un vrai scrolling hardware, mais beaucoup moins que de tout faire à la main.
Cette technique est pas aussi flexible qu'un vrai scrolling hardware, et dépend fortement de la puce vidéo .
Les scrollings peuvent être verticaux, horizontaux, ou les 2 (scrollings multidirectionnels) .
PARALLAXES: Terme pour désigner un type particulier de scrolling.
En général les parallaxes sont aussi appelés différentiels, et dans les faits ne sont applicables qu'aux machines disposant d'au moins 2 plans de fond.
Car cela permet de faire passer un plan au premier plan qui va aller plus vite que le second plan, pour donner une impression de profondeur .
Sur des machines avec un seul fond (PCE, NES,SMS), cet effet peut être simulé de plusieurs manières.
Avec des sprites ,via des interruptions, ou via du tile swapping .
Bien sur ces techniques sont en plus tout aussi applicables aux machines avec plusieurs plans.
INTERRUPTIONS: Elles peuvent être considérées comme des événements, par exemple quand le faisceau de l'écran est arrivé en bas de l'écran (donc ne trace plus rien), ou commence à tracer une nouvelle ligne etc ..
Chaque machine possèdent ses propres interruptions, ainsi que sa gestion .
Invité- Invité
Re: La programmation Mega Drive pour les Nuls expliquée par les Pros
Nouvelle mise à jour !!!
Merci à TOUKO encore une fois.
Quelqu'un pour : 68000, ASM, bitplan, CPU, FM, highlight, mémoire linéaire, PCM, pixel, résolution, ROM, shadow, VDP, etc ???
Merci à TOUKO encore une fois.
Quelqu'un pour : 68000, ASM, bitplan, CPU, FM, highlight, mémoire linéaire, PCM, pixel, résolution, ROM, shadow, VDP, etc ???
Invité- Invité
Re: La programmation Mega Drive pour les Nuls expliquée par les Pros
Ok, je peux en donner quelques unes:
CPU : Central Processing Unit, qu'on peut traduire par "unité centrale de traitement". C'est le composant de l'ordinateur qui assure l'exécution des programmes. Dans le cas de la Megadrive le CPU est le microprocesseur MOTOROLA 68000, qui était également utilisé dans les ATARI ST et les AMIGA.
ASM : abréviation pour "assembleur". L'assembleur permet d'écrire des programmes qui seront exécutés par le CPU dans un langage intelligible pour les humains. Le code source est ensuite "compilé" (on dit plutôt "assemblé") en code numérique ("langage machine") directement exécutable par le CPU. La programmation est simplifiée par l'usage des mnémoniques/opcodes (par exemple ADD pour une addition) et des labels (qui seront remplacés par les adresses correspondantes). Chaque CPU possède son propre langage machine et par conséquent son propre assembleur.
CPU : Central Processing Unit, qu'on peut traduire par "unité centrale de traitement". C'est le composant de l'ordinateur qui assure l'exécution des programmes. Dans le cas de la Megadrive le CPU est le microprocesseur MOTOROLA 68000, qui était également utilisé dans les ATARI ST et les AMIGA.
ASM : abréviation pour "assembleur". L'assembleur permet d'écrire des programmes qui seront exécutés par le CPU dans un langage intelligible pour les humains. Le code source est ensuite "compilé" (on dit plutôt "assemblé") en code numérique ("langage machine") directement exécutable par le CPU. La programmation est simplifiée par l'usage des mnémoniques/opcodes (par exemple ADD pour une addition) et des labels (qui seront remplacés par les adresses correspondantes). Chaque CPU possède son propre langage machine et par conséquent son propre assembleur.
vingazole- Infirmier
- Nombre de messages : 4522
Age : 50
Localisation : Midian
Date d'inscription : 04/01/2012
Re: La programmation Mega Drive pour les Nuls expliquée par les Pros
Merci pour ces explications extrêmement claires, vingazole.
Mise à jour effectuée !
Mise à jour effectuée !
Invité- Invité
Re: La programmation Mega Drive pour les Nuls expliquée par les Pros
Désolé de ne pas plus participer... je dois admettre être pas mal occupé en ce moment mais surtout je trouve l'utilité d'un lexique axé programmation ici pas forcément très justifié. Je veux dire, on trouve ce genre de lexique facilement sur internet. A la limite on peut faire des copier / coller mais redonner la définition soi même... l'air de rien ça prend du temps pour le faire correctement
Après parler de dev MD en général ça me plait tellement que je trouve toujours un peu de temps :p
Après parler de dev MD en général ça me plait tellement que je trouve toujours un peu de temps :p
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 03/04/2007
Re: La programmation Mega Drive pour les Nuls expliquée par les Pros
Je suis d'accord avec toi Stef, on peut trouver tout ça sur Internet. Je pense que ce qui est intéressant c'est l'interaction avec OZoran qui permet d'apprécier si les définitions sont suffisament claires ou s'il faut expliciter d'avantage.
Je continue, donc
ROM : Read-Only Memory, "mémoire à lecture seule" (on parle aussi de "mémoire morte" en français). Elle est figée et non volatile (les données sont conservées même lorsque l'alimentation électrique est coupée). Les programmes et données nécessaires à un jeu Megadrive sont stockés en ROM sur des cartouches.
RAM : Random Access Memory, "mémoire à accès direct" ou "mémoire vive". Contrairement à la ROM, la RAM est modifiable à loisir. Elle est volatile : les données sont effacées lorsque l'alimentation électrique est coupée. Elle sert de mémoire de travail lors de l'exécution des programmes (par exemple pour stocker le score ou la position du joueur dans un jeu).
VRAM : RAM vidéo, elle est dédiée au VDP (processeur vidéo) : elle contient les données nécessaires au VDP pour assurer l'affichage : coordonnées et taille des sprites, couleurs des palettes, données graphiques des tiles, etc...
VDP : Video Display Processor, (co-)processeur d'affichage vidéo : ce composant permet de décharger le CPU de la machine en assurant tout le traitement vidéo. Il gère en particulier les scrollings, le calcul des overlays ("calques") des différents plans et l'affichage des sprites.
Je continue, donc
ROM : Read-Only Memory, "mémoire à lecture seule" (on parle aussi de "mémoire morte" en français). Elle est figée et non volatile (les données sont conservées même lorsque l'alimentation électrique est coupée). Les programmes et données nécessaires à un jeu Megadrive sont stockés en ROM sur des cartouches.
RAM : Random Access Memory, "mémoire à accès direct" ou "mémoire vive". Contrairement à la ROM, la RAM est modifiable à loisir. Elle est volatile : les données sont effacées lorsque l'alimentation électrique est coupée. Elle sert de mémoire de travail lors de l'exécution des programmes (par exemple pour stocker le score ou la position du joueur dans un jeu).
VRAM : RAM vidéo, elle est dédiée au VDP (processeur vidéo) : elle contient les données nécessaires au VDP pour assurer l'affichage : coordonnées et taille des sprites, couleurs des palettes, données graphiques des tiles, etc...
VDP : Video Display Processor, (co-)processeur d'affichage vidéo : ce composant permet de décharger le CPU de la machine en assurant tout le traitement vidéo. Il gère en particulier les scrollings, le calcul des overlays ("calques") des différents plans et l'affichage des sprites.
vingazole- Infirmier
- Nombre de messages : 4522
Age : 50
Localisation : Midian
Date d'inscription : 04/01/2012
Re: La programmation Mega Drive pour les Nuls expliquée par les Pros
PIXEL : contraction de picture element (élément d'image), c'est le plus petit élément affichable à l'écran (de forme carrée sur la Megadrive).
RESOLUTION : taille de l'affichage en pixels. Une résolution de 320x224 indique que l'affichage se fait sur 320 pixels en largeur et 224 pixels en hauteur.
RESOLUTION : taille de l'affichage en pixels. Une résolution de 320x224 indique que l'affichage se fait sur 320 pixels en largeur et 224 pixels en hauteur.
vingazole- Infirmier
- Nombre de messages : 4522
Age : 50
Localisation : Midian
Date d'inscription : 04/01/2012
Re: La programmation Mega Drive pour les Nuls expliquée par les Pros
FM : Frequency Modulation, "modulation de fréquence". C'est un procédé de synthèse sonore permettant d'ajouter à une fréquence de base des harmoniques donnant des timbres variés au son produit. La Megadrive intègre un (co-) processeur sonore YAMAHA YM 2612 assurant une polyphonie de 6 canaux FM.
PCM : Pulse Code Modulation, "modulation d'impulsion codée". C'est un procédé de restitution de samples ("échantillons") sonores. Le (co-) processeur sonore YAMAHA YM 2612 présent dans la Megadrive permet d'utiliser une voix en PCM.
PCM : Pulse Code Modulation, "modulation d'impulsion codée". C'est un procédé de restitution de samples ("échantillons") sonores. Le (co-) processeur sonore YAMAHA YM 2612 présent dans la Megadrive permet d'utiliser une voix en PCM.
vingazole- Infirmier
- Nombre de messages : 4522
Age : 50
Localisation : Midian
Date d'inscription : 04/01/2012
Re: La programmation Mega Drive pour les Nuls expliquée par les Pros
Mise à jour effectuée !!!
vingazole --> Encore merci pour tes explications qui sont d'une limpidité incroyable. En deux lignes tu me permets de cerner la définition d'un terme sans t'étaler dans des exemples qui auraient tendance à alourdir inutilement l'explication et auraient pour conséquence de perdre l'auditoire.
------------------------------------------------------------
Sinon pour répondre aux divergences amicales soulevées par Stef, je sais qu'il existe des lexiques informatiques sur internet. Seulement je souhaite réunir ici deux composantes essentielles :
- que ce soit extrêmement simple d'accès et compréhensif pour les néophites
- que ce soit spécifiquement accès sur le Mega Drive et réuni sur une seule et même page
Les raisons à cela sont simples. Vu que nous sommes sur la partie du forum axée sur les 16bit et que les conversations homebrews tournent souvent autour de la console de SEGA, il est inutile d'avoir un lexique où se trouveraient des descriptifs qui ne seraient pas en rapport avec la technologie embarquée dans la Mega Drive. Ca alourdirait inutilement le lexique qui perdrait en lisibilité. Le but c'est de pouvoir à peu près suivre une conversation sans avoir à aller faire des recherches sur internet à chaque phrase. Là, il me suffira (à moi et à d'autres, j'espère) de placer cette page en onglet et de m'y référer dès que je buterai sur un terme. Parce que, je ne sais pas si t'en as conscience mais, des fois (souvent ?), on a l'impression d'être face à un mur de hiéroglyphes lorsqu'on lit vos posts (avec 3, 4, 5 ou 6 mots/termes par phrase qui sont incompréhensifs pour le non-initié). Ce topic servira donc à gagner du temps plutôt que perdre de précieuses minutes à décrypter une simple phrase.
vingazole --> Encore merci pour tes explications qui sont d'une limpidité incroyable. En deux lignes tu me permets de cerner la définition d'un terme sans t'étaler dans des exemples qui auraient tendance à alourdir inutilement l'explication et auraient pour conséquence de perdre l'auditoire.
------------------------------------------------------------
Sinon pour répondre aux divergences amicales soulevées par Stef, je sais qu'il existe des lexiques informatiques sur internet. Seulement je souhaite réunir ici deux composantes essentielles :
- que ce soit extrêmement simple d'accès et compréhensif pour les néophites
- que ce soit spécifiquement accès sur le Mega Drive et réuni sur une seule et même page
Les raisons à cela sont simples. Vu que nous sommes sur la partie du forum axée sur les 16bit et que les conversations homebrews tournent souvent autour de la console de SEGA, il est inutile d'avoir un lexique où se trouveraient des descriptifs qui ne seraient pas en rapport avec la technologie embarquée dans la Mega Drive. Ca alourdirait inutilement le lexique qui perdrait en lisibilité. Le but c'est de pouvoir à peu près suivre une conversation sans avoir à aller faire des recherches sur internet à chaque phrase. Là, il me suffira (à moi et à d'autres, j'espère) de placer cette page en onglet et de m'y référer dès que je buterai sur un terme. Parce que, je ne sais pas si t'en as conscience mais, des fois (souvent ?), on a l'impression d'être face à un mur de hiéroglyphes lorsqu'on lit vos posts (avec 3, 4, 5 ou 6 mots/termes par phrase qui sont incompréhensifs pour le non-initié). Ce topic servira donc à gagner du temps plutôt que perdre de précieuses minutes à décrypter une simple phrase.
Dernière édition par OZoran Tsubasa le Ven 22 Nov 2013 - 17:17, édité 1 fois
Invité- Invité
Re: La programmation Mega Drive pour les Nuls expliquée par les Pros
Les explications sont très centrées MD non ??
Invité- Invité
Re: La programmation Mega Drive pour les Nuls expliquée par les Pros
ah ok je pensais que c'était un lexique généralisé moi, pour toutes les plateformes ..
Invité- Invité
Re: La programmation Mega Drive pour les Nuls expliquée par les Pros
On voit que t'as lu le nom du topic, toi...TOUKO a écrit:ah ok je pensais que c'était un lexique généralisé moi, pour toutes les plateformes ..
Invité- Invité
Re: La programmation Mega Drive pour les Nuls expliquée par les Pros
...du coup ce serait peut-être bien que tu recentres tes définitions sur la MD
vingazole- Infirmier
- Nombre de messages : 4522
Age : 50
Localisation : Midian
Date d'inscription : 04/01/2012
Re: La programmation Mega Drive pour les Nuls expliquée par les Pros
Ah merde, je sais pas pourquoi moi je lisais "La programmation pour les Nuls expliquée par les Pros"
Je comprends mieux les explications de vingazole du coup
Je comprends mieux les explications de vingazole du coup
Invité- Invité
Re: La programmation Mega Drive pour les Nuls expliquée par les Pros
Effectivement après coup je me rends compte que le lexique est tout de même très ciblé Megadrive ce qui présente plus d'intérêt (du moins pour le topic ^^), et aussi pour le second raison que tu as donnéOZoran Tsubasa a écrit:Sinon pour répondre aux divergences amicales soulevées par Stef, je sais qu'il existe des lexiques informatiques sur internet. Seulement je souhaite réunir ici deux composantes essentielles :
- que ce soit extrêmement simple d'accès et compréhensif pour les néophites
- que ce soit spécifiquement accès sur le Mega Drive et réuni sur une seule et même page
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 03/04/2007
Re: La programmation Mega Drive pour les Nuls expliquée par les Pros
Je suis en train d'avancer (doucement) dans mon projet. J'ai dressé un premier jet de ce à quoi devrait ressembler le produit fini avec ses mécaniques de jeu et pas mal d'autres choses.
Et là, je vais enfin me mettre pour de bon sur Grafx2 pour créer les graphismes (en espérant qu'il s'agit bien du bon logiciel pour développer sur Mega Drive) et je me pose une question par rapport à ce que m'avait dit Stef.
M'est-il possible de créer des personnages de cette taille en les composant de 6 sprites de 32x32 pixels ? Cela va-t-il poser un quelconque problème (bug, etc) ? Ou est-ce que c'est OK tant que je ne dépasse pas la limite de 80 sprites simultanément à l'écran ?
Et là, je vais enfin me mettre pour de bon sur Grafx2 pour créer les graphismes (en espérant qu'il s'agit bien du bon logiciel pour développer sur Mega Drive) et je me pose une question par rapport à ce que m'avait dit Stef.
M'est-il possible de créer des personnages de cette taille en les composant de 6 sprites de 32x32 pixels ? Cela va-t-il poser un quelconque problème (bug, etc) ? Ou est-ce que c'est OK tant que je ne dépasse pas la limite de 80 sprites simultanément à l'écran ?
Invité- Invité
Re: La programmation Mega Drive pour les Nuls expliquée par les Pros
Pas de soucis pour l'affichage
Les limites sont les suivantes (la première rencontrée) :
- 20 sprites affichés par ligne
- 320 pixels de sprite par ligne
- 80 sprites parsés
Après 6 x 32x32 pixels, ça fait un joli paquet de data (~3KB) à mettre à jour pour animer ton sprite... Ca tiendra mais c'est le genre de truc à prendre en considération selon le nombre de sprite à afficher en même temps.
Les limites sont les suivantes (la première rencontrée) :
- 20 sprites affichés par ligne
- 320 pixels de sprite par ligne
- 80 sprites parsés
Après 6 x 32x32 pixels, ça fait un joli paquet de data (~3KB) à mettre à jour pour animer ton sprite... Ca tiendra mais c'est le genre de truc à prendre en considération selon le nombre de sprite à afficher en même temps.
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 03/04/2007
Re: La programmation Mega Drive pour les Nuls expliquée par les Pros
Merci pour l'éclairage, Stef.
Pour que je me fasse une idée, les persos de Bare Knuckle sont composés de combien de sprite ?
De plus, comment puis-je être sûr que les couleurs que j'utilise avec Grafx2 sont bien disponibles dans la Mega Drive ? De même, lorsque je créé un sprite, si je souhaite remplacer une couleur par une autre, me suffit-il de mettre la nouvelle par-dessus (recouvrir l'ancienne) ou bien dois-je effacer l'ancienne par peur que la Mega Drive prenne en considération celle qui se trouve en-dessous même si elle ne se voit pas à l'écran ?
Pour que je me fasse une idée, les persos de Bare Knuckle sont composés de combien de sprite ?
De plus, comment puis-je être sûr que les couleurs que j'utilise avec Grafx2 sont bien disponibles dans la Mega Drive ? De même, lorsque je créé un sprite, si je souhaite remplacer une couleur par une autre, me suffit-il de mettre la nouvelle par-dessus (recouvrir l'ancienne) ou bien dois-je effacer l'ancienne par peur que la Mega Drive prenne en considération celle qui se trouve en-dessous même si elle ne se voit pas à l'écran ?
Invité- Invité
Re: La programmation Mega Drive pour les Nuls expliquée par les Pros
Premier essai en 6x(32x32), fait en une petite heure.
Soyez indulgent, je n'ai jamais touché un logiciel de création graphique en pixel. Je découvre...
Soyez indulgent, je n'ai jamais touché un logiciel de création graphique en pixel. Je découvre...
Invité- Invité
Re: La programmation Mega Drive pour les Nuls expliquée par les Pros
Le héros de Shenmue ? (c'est Ryu hazaki, c'est ça ?)
C'est pas mal pour un début.
Moi-même je saurai pas faire.
C'est pas mal pour un début.
Moi-même je saurai pas faire.
Starfox18- Infirmier
- Nombre de messages : 4701
Age : 32
Localisation : Paris
Date d'inscription : 15/05/2013
Re: La programmation Mega Drive pour les Nuls expliquée par les Pros
Ha ben même si c'est la première fois que tu t'essaie au pixel art, tu dois avoir de bonnes bases en dessin non ? Parce que là tu t'en sors vraiment très bien, et comme d'habitude, ça donne envie de voir la suite !
Re: La programmation Mega Drive pour les Nuls expliquée par les Pros
OZoran Tsubasa a écrit:Merci pour l'éclairage, Stef.
Pour que je me fasse une idée, les persos de Bare Knuckle sont composés de combien de sprite ?
De plus, comment puis-je être sûr que les couleurs que j'utilise avec Grafx2 sont bien disponibles dans la Mega Drive ? De même, lorsque je créé un sprite, si je souhaite remplacer une couleur par une autre, me suffit-il de mettre la nouvelle par-dessus (recouvrir l'ancienne) ou bien dois-je effacer l'ancienne par peur que la Mega Drive prenne en considération celle qui se trouve en-dessous même si elle ne se voit pas à l'écran ?
Pour Bare Knuckle c'est assez variable, dans BK1 les sprites sont vraiment petits mais dans le 2 ou le 3 je pense qu'on est à la même taille que toi en moyenne soit 6 x 32x32 (voire un peu plus pour BK3).
Sinon tu peux configurer Grafx2 pour respecter la palettes MD (3 bits par composante RGB soit 512 couleurs en tout). Et pour être sur que ton sprite soit affichable facilement, je te conseille de te contenter de 15 couleurs + 1 couleur transparente pour dessiner ton sprite. En général c'est suffisant. Idéalement ensuite tu partage cette même palette sur les différentes animations de ton sprite. Tu peux remplacer une couleur par une autre entre 2 étapes d'animation mais ça rendra la réutilisation de la palette plus compliquée de même que l'implémentation au niveau code. Cela dit, ça reste possible, c'est juste un peu plus compliqué.
Stef- Interne
- Nombre de messages : 5087
Age : 45
Localisation : Sevres
Date d'inscription : 03/04/2007
Re: La programmation Mega Drive pour les Nuls expliquée par les Pros
Merci pour tes précieux éclairages Stef.
Mais, du coup, comme je suis un artiste et absolument pas un technicien, je suis un peu paumé avec le logiciel et plusieurs murs se dressent devant moi et m'empêchent de travailler sereinement (ou me font perdre beaucoup de temps). Aussi, si tu peux m'aiguiller là-dessus, ce serait vraiment génial.
- comment puis-je configurer Grafx2 en 3 bits par composante RGB ? J'ai beau regarder dans "Settings" et dans "Palette", je ne trouve pas.
- que veux-tu dire par "1 couleur transparente pour dessiner mon sprite" ? Tu veux dire pour le détourer ? Quelle est l'utilité/avantage de la chose ?
- comment accéder directement à la palette qu'on a utilisé pour un sprite, sans laisser le précedent sprite à l'écran pour utiliser la pipette ?
- est-il possible de définir une surface de travail ? Par exemple, est-ce que je peux facilement et rapidement créer un rectangle 6x(32x32) ? Parce-que là, je perds un temps fou à créer le rectangle pixel par pixel... c'est chiant...
Mais, du coup, comme je suis un artiste et absolument pas un technicien, je suis un peu paumé avec le logiciel et plusieurs murs se dressent devant moi et m'empêchent de travailler sereinement (ou me font perdre beaucoup de temps). Aussi, si tu peux m'aiguiller là-dessus, ce serait vraiment génial.
- comment puis-je configurer Grafx2 en 3 bits par composante RGB ? J'ai beau regarder dans "Settings" et dans "Palette", je ne trouve pas.
- que veux-tu dire par "1 couleur transparente pour dessiner mon sprite" ? Tu veux dire pour le détourer ? Quelle est l'utilité/avantage de la chose ?
- comment accéder directement à la palette qu'on a utilisé pour un sprite, sans laisser le précedent sprite à l'écran pour utiliser la pipette ?
- est-il possible de définir une surface de travail ? Par exemple, est-ce que je peux facilement et rapidement créer un rectangle 6x(32x32) ? Parce-que là, je perds un temps fou à créer le rectangle pixel par pixel... c'est chiant...
Invité- Invité
Page 1 sur 5 • 1, 2, 3, 4, 5
Page 1 sur 5
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum