65c816 0 Signaler ce message Posté(e) 3 février 2016( 03/02/2016 18:13 ) Salut, Je me lance dans la programmation sur SNES et je but sur quelques éléments.Surtout sur la gestion des graphismes et comment les convertir et les ranger convenablement dans une rom. Je suis très intéressé par le code sources de Kogami ^^ sur la Demo DBZ :-P merci d'avance pour votre aide :-) Citer Partager ce message Lien à poster Partager sur d’autres sites
4ph 30 Signaler ce message Posté(e) 3 février 2016( 03/02/2016 18:21 ) Bonsoir. Je ne sais pas si ça peut t'aider: http://jeux.developpez.com/tutoriels/SNES/debuter-programmation-super-nintendo/ Citer Partager ce message Lien à poster Partager sur d’autres sites
X-cAlibur 23 Signaler ce message Posté(e) 3 février 2016( 03/02/2016 18:27 ) 'Lo, Pas vraiment compris ta question. Pas mal d'outils traînent sur le web, mais première étape, te créer un environnement de ldev : http://wiki.superfamicom.org/snes/show/Setting+Up+a+Programming+Environment GL +++ Citer Partager ce message Lien à poster Partager sur d’autres sites
kogami 10 Signaler ce message Posté(e) 3 février 2016( 03/02/2016 19:02 ) C'est une vieille demo que j'ai faite il y a qql années et j'ai plus aucune sources donc je pourrais pas t'aider :( Citer Partager ce message Lien à poster Partager sur d’autres sites
65c816 0 Signaler ce message Posté(e) 4 février 2016( 04/02/2016 18:31 ) C'est une vieille demo que j'ai faite il y a qql années et j'ai plus aucune sources donc je pourrais pas t'aider :( Dommage, merci quand même ;-) Sinon que vaut(techniquement) SNES Professional ASM dev Kit de Jay? et SNES Maker, qu'en pensez-vous? Citer Partager ce message Lien à poster Partager sur d’autres sites
65c816 0 Signaler ce message Posté(e) 6 février 2016( 06/02/2016 11:05 ) Bonjour, J’aimerai savoir si une âme charitable pourrait me déchiffrer(me décoder avec des mots d'enfant le contenu :-P ) ces images, car j'ai beau lire les divers explications et je n'arrive pas à saisir la logique du trucs... :sad: [sprite Tile?] [sprite Pal] [bG] Merci d'avance pour le temps que vous me consacrerez :smile: Citer Partager ce message Lien à poster Partager sur d’autres sites
kogami 10 Signaler ce message Posté(e) 6 février 2016( 06/02/2016 12:51 ) Alors c'est pas du code a proprement parler mais de la Data (donnée) Tu devrais lire la doc sur l'asm, la tu a les opcode de base comme org, db, dw org permet d'adresser une adresse haxedecimal, db et dw d'écrire une valeur de chaine hexadecimal. db = octet codé sur 8 bit dw = octet codé sur 16 bit Tu a plusieurs façon de traiter ces donnée, ici l'auteur a préférer les constituer sous un script asm, tu peux le faire aussi sur un fichier .bin que tu pourra importer avec la commande incbin (synthase qui peux être différent selon le compileur 65c816). Citer Partager ce message Lien à poster Partager sur d’autres sites
X-cAlibur 23 Signaler ce message Posté(e) 6 février 2016( 06/02/2016 12:54 ) dw = octet codé sur 16 bit C'est pas un octet (byte), c'est un mot (word). Citer Partager ce message Lien à poster Partager sur d’autres sites
65c816 0 Signaler ce message Posté(e) 6 février 2016( 06/02/2016 14:26 ) Merci pour les réponses :smile:pour le db/dw j'avais compris ce que j'ai pas compris c'est comment ça fonctionneexemple ligne 7 du sprite tile $00 / $00000000 est d'accord? on me dit que le bit 7 c'est la couleur du pixel,ok? et c'est là que je bug :sad: car sur $D8 par exemple %11011000 le bit 7 est à 1 mais qu'elle sera sa couleur?Je ne sais pas si je m'explique bien? :sad:j'ai lu cent fois ça :( http://jeux.developpez.com/tutoriels/SNES/debuter-programmation-super-nintendo/#LII-A-3.Mais je bloque, je ne saisi pas :sad:"Une image sur SNES est représentée sur deux octets au minimum. Le principe est qu'en passant par une palette de couleurs, avec deux octets, on représente huit pixels de quatre couleurs différentes. Il faut lire bit par bit et non par octet. Un bit représente une couleur du pixel, donc sur un octet, on a huit pixels et deux couleurs possibles (0 et 1). Sur deux octets, on a toujours huit pixels, mais en combinant, on peut avoir pour chaque pixel quatre couleurs (0 et 1 du premier et 0 et 1 du deuxième octet). Sachant que la valeur 0 sera la transparence, on a donc trois couleurs + 1 alpha. Par exemple :0x00 0x01, 0x01 0x00 et 0x01 0x01 affichent tous les trois un pixel, mais de couleur différente. Les seize couleurs se basent sur le même principe, mais sur quatre octets. Attention ! La SNES se base uniquement sur le format deux couleurs, donc les deux autres octets ne sont pas contigus, mais se trouveront après seize octets. Donc, on a besoin pour une image de 8x8 pixels sur quatre couleurs de seize octets pour le représenter, on a besoin de deux octets pour représenter huit pixels. Voilà une image qui devrait éclaircir cela : " Citer Partager ce message Lien à poster Partager sur d’autres sites
vingazole 0 Signaler ce message Posté(e) 7 février 2016( 07/02/2016 10:27 ) Je peux essayer de t'expliquer pour la ligne 0xF80F de l'exemple que tu cites. Déjà, il faut voir (parce que c'est en tout petit, quand même...) qu'ici la palette est définie comme suit (j'utilise la notation % pour le binaire) : 0 = %00 = noir (ou transparence) 1 = %01 = rouge 2 = %10 = bleu 3 = %11 = jaune Note que c'est ce qu'on appelle des couleurs indexées : "on" a associé auparavant une couleur RGB à chaque indice de couleur (0,1,2 ou 3). Avec la valeur 16 bits (soit 2 octets) 0xF80F tu définis la couleur (sur 2 bits) de 8 pixels contigus : le premier octet (0xF8) représente le bit de poids fort (les "dizaines") de l'indice de couleur de chaque pixel, le deuxième octet (0x0F) représente le bit de poids faible (les "unités"). Convertissons la valeur de chaque octet en binaire (0xF8 = %11111000 et 0x0F = %00001111) et écrivons ces valeurs l'une au-dessus de l'autre : % 1 1 1 1 1 0 0 0 (0xF8) % 0 0 0 0 1 1 1 1 (0x0F) Si tu lis en colonnes, tu verras apparaître l'indice de couleur (sur deux bits) de chaque pixel (de gauche à droite) : %10 = bleu %10 = bleu %10 = bleu %10 = bleu %11 = jaune %01 = rouge %01 = rouge %01 = rouge Ce qui correspond bien au schéma proposé dans l'exemple :) Au passage cette façon de séparer les couleurs par chiffre binaire s'appelle le codage par bitplans (ici on a deux bitplans, d'après le lien que tu donnes on peut aussi coder les indices sur 4 bitplans sur SNES : il faut alors 4 octets pour coder les indices de couleurs de 8 pixels de %0000 à %1111 - soit 16 indices de couleur possibles). Citer Partager ce message Lien à poster Partager sur d’autres sites
65c816 0 Signaler ce message Posté(e) 7 février 2016( 07/02/2016 12:11 ) Merci vingazole :smile: Ah? OK!! je vois ou je embrouillée (Il faut lire bit par bit et non par octet) et je ne superposais pas les octets. Par contre je en tile de 16 px en 16 clrs, on décompose pareil par octet? pour l'ordre les clrs de la pal de l'img c'est bien ça? (fait à la main pour m'habituer au binaire) 0 = %0000 = fushia (ou transparence) 1 = %0001 = noir 2 = %0010 = marron 1 3 = %0011 = orange 1 4 = %0100 = jaune 5 = %0101 = lit de vin 6 = %0110 = marron 2 7 = %0111 = marron 3 8 = %1000 = orange 2 9 = %1001 = marron 4 A = %1010 = rose B = %1011 = gris M C = %1100 = gris F D = %1101 = gris F E = %1110 = blanc F = %1111 = gris A Comment on procède par exemple pour la 3eme lignes de la tile 16x16 (rectangle vert)? Merci encore vingazole :smile: Citer Partager ce message Lien à poster Partager sur d’autres sites
vingazole 0 Signaler ce message Posté(e) 7 février 2016( 07/02/2016 14:00 ) L'ordre des couleurs de la palette et le comptage binaire associé me semblent corrects. Pour la troisième ligne de pixels du sprite que tu montres, je pense qu'il faut faire deux groupes de 8 pixels : les huit pixels fuchsia (à gauche) codés par 0x00 0x00 0x00 0x00 (il faut 4 octets pour coder 8 pixels avec 4 bitplans par pixel - il faut deux bitplans de plus que pour les 4 couleurs, pour coder les "centaines" et les "milliers"), et 4 autres octets pour coder les 8 pixels à droite. Je me trompe peut-être pour identifier les couleurs, mais je dirais qu'on a de gauche à droite : %0001 %0010 %0011 %0011 %0100 %0101 %0101 %0100 Si on dispose ça en lignes, ça doit faire : %00000000 (0x00)%00001111 (0x0F)%01110000 (0x70)%10110110 (0xB6) Par contre je ne suis pas un spécialiste de la SNES et je ne pourrai donc pas te dire comment disposer les 8 octets (0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x70 et 0xB6) les uns par rapport aux autres. J'ai vu ça dans le lien que tu as donné, ça a l'air spécial : Les seize couleurs se basent sur le même principe, mais sur quatre octets. Attention ! La SNES se base uniquement sur le format deux couleurs, donc les deux autres octets ne sont pas contigus, mais se trouveront après seize octets. Citer Partager ce message Lien à poster Partager sur d’autres sites
65c816 0 Signaler ce message Posté(e) 8 février 2016( 08/02/2016 11:52 ) Merci pour les réponses, je vais regarder ça de près, mais je n'ai pas pigé ^^.Je suis un boulet :grin: Merci encore vingazole :smile: Citer Partager ce message Lien à poster Partager sur d’autres sites