ProgrammationConsole
Ce wiki a été archivé en 2018.
Le nouveau wiki se trouve à: ressources.labomedia.org Les fonctionnalités sont désactivées: vous pouvez faire une recherche sur Google site:https://wiki.labomedia.org et découvrir La Labomedia. |
SITA du 24/03/2018
Où l'on va apprendre comment marche une megadrive
Sommaire
Présentation très longue et très pompeuse
Pourquoi programmer sur des vielles consoles?
- Beaucoup de contraintes
- Demande beaucoup de motivation
- Peut palier à l'ennui
- Ne pas commencer si on est pas fan / crush
Le choix de la machine
- la megadrive?
- car il existe un sdk plutôt moumoute SGDK
- C small > assembleur > binaire tout ça via compilateur
Comment ça marche?
On programme sur PC via émulateurs mais il reste toujours des bug quand on passe sur une ROM
Hardware
- les consoles "test"
Consoles fournies par le fabricant ou modifiées par le dev. On dispose de moyen pour envoyer du code sur la machine via liaison série, on envoi du code sur le port manette...
- les "cartmod"
une cartouche que l'on dépouille, On peu remplacer les roms d'origine (non modifiables) par des eproms programmés.
- les flashcard
une cartouche avec une mémoire flash dans laquelle on peut mettre les binaires que l'on à produit. Il existe deux variantes:
- les plus simple ne peuvent contenir qu'un binaire qui est directement exécuté au lancement de la console. Le binaire est chargé sur la cartouche via un port intégré(série, usb) soit un adaptateur dans lequel on enfiche la cartouche.
- les plus sophistiquée embarquement un gestionnaire de fichier permettant de parcourir le contenu d'une mémoire amovible (carte sd, compact flash), de charger le binaire puis rebooter la machine. (SD2SNES, everdrive,...)
Software
- hardway: core / asm
on code en assembleur...
- (not so) easy way: les devkits, sgdk, outils dédiés
- why not? way: les langages/interpréteurs embarqués.
un genre de basic intégré à la console qui l'interprète à la volée
https://www.lexaloffle.com/pico-8.php
Qu'est-ce qu'une console de jeu?
Historique: différence console / PC
- des machines avec spécificités propres (graphique, architecture...)
- maintenant les consoles et PC utilisent à peu près les mêmes techniques
Technique
- absence d'OS (oui mais)
- le programme est sur la cartouche il y a juste un système minimal dans la console
- boucle while qui ne cesse que lorsque l'on débranche la console: Ce sujet est plutôt bien explicité dans le "hello world" disponible dans le Wiki du SGDK.
- aspect graphique(écran): le VDP (VIdeo display processor) fournis pleins de possibilités en fonction des machines
- Sprites (limite: le nombre affichable)
- Background(limite: taille totale, nombre de "tuiles" disponible)
- Transformations complexes(selon les machines toujours, les "modes" la Super Nintendo est un cas d'école)
- aspect son(enceinte): chips sonores dédiés
- aspect autres I/O
périphériques: manettes, potentiels add-on (lecteur cd),...
Qu'est ce que je peux faire avec l'affichage?
Sprite, en français ça se dit Lutin
- Attributs: position, transparence, flip, visibilité & more
- position : référence 0,0 coin supérieur gauche
- parfois possible effet mirroir, visibilité...
- Un éditeur issu d'amiga http://pulkomandy.tk/projects/GrafX2
Métasprite (métalutin?)
un métasprite est donc un ensemble de sprite superposables et décalables
- limite de taille : 8x8 pixels sur NES
- limite de couleur : 4 couleurs sur NES
Background (toile de fond?)
- une matrice de fond
on duplique une image (tuile) pour ne pas remplir la mémoire vidéo > le map de fond
- scroll
une map de fond est plus grande que l'écran ce qui permet de faire de déplacements
- tuiles comme sprite
on peu utiliser une tuiles dans la map de fond pour créer un tir par exemple
- tricks de rotation de palettes pour créer mouvement dans le fond
- matrice de collision
comme une map de fond mais plus précise pour créer des obstacles
Tut tut la musique
Joker (un prochain SITA?) http://www.deflemask.com/
MAIS C'EST TOUJOURS PAS UN JEU?
- Machine à état, dissociation physique et affichage (découpage
- État saut
- État en l'air
- État tire
- mécaniques / Principes:
- collisions
- Enchaînement des phases de jeux
- IA
- machine à états
- etc.
- DES TUYAUX?
- communautés
- outils kivonbiens
- mon Mail pour en causer.