ProgrammationConsole

De Centre de Ressources Numériques - Labomedia
Aller à : navigation, rechercher

SITA du 24/03/2018

Où l'on va apprendre comment marche une megadrive

Saucisse-choucroute-leJeu.JPG

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. RomSuperNintendo.JPG

  • 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,...)

FlashCardGB.JPGFlashCardMegaDrive.JPGFlashCardFile.JPG

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

Sprite-Lutin.JPG

Sprite-Lutin2.JPG

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?)

Matrice-Background1.JPG

  • 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.