CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Asm] Les couleurs (mode 13h)

News jeu

Expeditions: Samurai veut révolutionner le RPG tactique avec une aventure entièrement jouable en coop

Voir
roger_barry
roger_barry
Niveau 10
11 juin 2005 à 16:24:00

Bonjour, j´ai un petit problème avec l´affichage des couleurs en mode 13h ( je programme en 16 bits sous TASM).

Je veut changer une couleur de la palette avec l´int. 10h, fonction 1010h. Les nuances de couleur sont entre 0-63 tandis que quand je décompose une couleur elle est en 0-255.

J´ai chercher un peu sur le net pour comprendre. J´ai trouver quelques tutoriaux de programmation VGA et il me dise de diviser en 4 le nombre obtenu, je me suis dit " C´est facile", mais non.

Quand j´affiche le pixel, la couleur n´est pas du tout la couleur désiré! Quelqun peut m´aider?

godrik
godrik
Niveau 30
11 juin 2005 à 17:52:55

c´est pas un peu mort 13h en assembleur ?
je en sais meme pas si tu peux l´utiliser sur les NT 5 ?

roger_barry
roger_barry
Niveau 10
11 juin 2005 à 19:45:52

Grr je suis pas venu poster ici pour me faire dire que plus personne ne fais d´assembleur et que ferais mieux de me mettre au C++!

J´aurais besoin d´une réponce a ma question SVP

roger_barry
roger_barry
Niveau 10
12 juin 2005 à 20:22:51

Je suis un peu olbigé . .. :up:

fil_razorback
fil_razorback
Niveau 10
12 juin 2005 à 20:51:47

Ca me déprime un peu, c´est pas la premiere fois que tu poses une question intelligente et que personne ne répond...désolé jpeux pas faire mieux :(
t´as essayé le forum programmation?

fantometteninja
fantometteninja
Niveau 6
12 juin 2005 à 20:58:23

Si la couleur affichée n´est pas la bonne, c´est que tu as un probleme avec ta palette.

Essaye de faire simple puis de complexifier au fur et à mesure.

Verifie que tu arrive bien à definir une seule couleur d´abord, puis un dégradé sur toute la palette et ainsi de suite.

roger_barry
roger_barry
Niveau 10
12 juin 2005 à 22:27:12

fil_razorback > Je sais mais c´est un peu ma faute aussi parce que je n´ai pas prit le domaine le plus facile. Presque personne connait l´assembleur, peut-être 3-4 personnes ici savent vraiment s´en servir mais bon j´me décourage pas :)

Sinon mon programme est super simple! Pour que vous conpreniez un peu plus je vais vous éclairer sur la fonction 1010h de l´interruption 10h:

AX = 1010h
BX = register number
CH = new value for green ( 0-63)
CL = new value for blue ( 0-63)
DH = new value for red ( 0-63)
Return:Nothing

Mon programme ne fais que lire les données dans un bitmap ( ne vous inquièté pas, j´ai sauter l´entête je suis pas si con ^^), il lit les trois données qui forme la couleur, les divise en 4, change une couleur ( avec l´int. 10h, fonction 1010h) qui est incrémenté par un compteur ( pour être sur que deux couleurs ne puisse etre sur le même numéro car sinon la premiere serait transformer en la deuxieme), ensuite il affiche le pixel, change la destination su prochain pixel et recommance le cycle en comparant les donnée au paravant pour ne pas être obliger d´incrémenter le compteur a chaque tour.

Tout mon programme marche parfaitement! Sauf que les couleurs sont changé! J´ai essayer de faire apparaitre un personnage que mon graphiste m´a fait et sa peau étais bleu et ses cheveux jaune ( il étais sencé d´être bleu).

Donc la je vérifie, je revérifie et je ne trouve pas le problème! J´ai besoin d´aide!

fil_razorback
fil_razorback
Niveau 10
12 juin 2005 à 22:56:18

Mais au fait pourquoi 0-63 ? les codes rgb ca se fait de 0a 255 non?

LGV
LGV
Niveau 28
12 juin 2005 à 23:01:08

de mémoire, cette histoire d´int pour changer la palette, ça ne me rappelle rien de bon. Il me semble que tu peux programmer directement les registres du DAC via des ports, bcp plus rapide et simple.
J´ai plus mes sources pascal/asm de quand je débutais, donc je ne peux pas donner bcp plus de précisions :-?

roger_barry
roger_barry
Niveau 10
12 juin 2005 à 23:02:13

Ouais je sais mais ont dirais que c´est une particularité du mode VGA, comme j´ai dit j´ai lu quelques tutoriaux la dessus et la seule chose que j´ai obtenu de " concret" c´est ceci:

Donc, comme vous le voyez c’est pas sorcier, le seul truc à savoir, est que le mode VGA contient 64 nuances de rouge, vert, et bleu, or étant donné que dans la palette chaque couleur est contenue dans un octet la valeur variera entre 0 et 255, donc il faudra diviser chaque couleur par 4.

Habituellement une nuance est stocker sur 1 octet ( 8 bits, 0-255) mais en VGA c´est sur un hexet ( 6 bits, 0-63). Je sais pas pk ils ont fait sa et je trouve ça un peu con ^^

roger_barry
roger_barry
Niveau 10
12 juin 2005 à 23:07:00

Oui des ports seraient bien plus utiles mais je n´ai rien trouvé sur sa non plus. Je vais essayer de chercher un peu plus la dessus.

nick0
nick0
Niveau 1
13 juin 2005 à 02:01:21

haha lache po mon ami, je sais que quelqu´un va bien pouvoir faire de quoi pr toi ! :)

godrik
godrik
Niveau 30
13 juin 2005 à 11:45:27

bon, une question stupide mais qu´il faut poser quand meme....
tu sais que les fichier bitmap utilise de la compression RLE et parfois des tables d´index de couleur ?

roger_barry
roger_barry
Niveau 10
13 juin 2005 à 22:56:34

Euh . .. non je savais pas ^^ Je sais pas s´que c´est non plus, tu peut dévellopper un peu plus la dessus stp! ( je suis un débutant en assembleur, je peut pas tout connaitre :p)

godrik
godrik
Niveau 30
14 juin 2005 à 11:40:45

( je dis tout ca de memoire pour t´expliquer, mais le format bitmap est clairement expliquer sur www.wotsit.org)

bon un fichier bitmap c´est compose de plein de chose. un en-tete qui sert a dire si c´est bien un fichier BMP, mais aussi une table des couleurs. cette table dit " la couleur 14 c´est RGB(32,24,58)", parceque toute les couleur ne serotn pas forcement present dans ton fichier bmp...
ensuite tu as la compression RLE qui peut etre ( ou ne pas etre active). Tu le sais en fonctionde s flags qui sont dans l´en-tete BMP.
La compression RLE c´est bete comme choux dans l´idée c´est: " couleur 14: 42 pixel d´affilé"

L´idée de BitMap est la, mais tuaura plus d´info sur wotsit.

roger_barry
roger_barry
Niveau 10
14 juin 2005 à 22:43:04

Merci! J´avais pas trop porté attention a l´entête. Je vais aller voir le site que tu m´a donné!

roger_barry
roger_barry
Niveau 10
16 juin 2005 à 01:17:25

Sinon vous croyez que le format pcx est plus facile a utiliser que le bmp?

LGV
LGV
Niveau 28
16 juin 2005 à 09:59:19

un format trivial et facilement utilisable depuis n´importe quel logiciel de dessin, c´est le TGA 24 ou 32 bits non compresse. Comme le BMP dans sa version la plus simple

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware