MSX Village forum

La Place des Développeurs Changer la couleur de la bordure de l'écran ? En assembleur ?

bfg Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 05/08/2011 à 10h02

Messages: 58

Le 24/10/2013 à 14h49
Bonjour,

auriez vous un petit bout de code pour changer la couleur de la bordure de l'écran ?
Dans l'émulateur, mon Lock'n chase à un fond noir, mais la bordure est bleu ... J'aimerais rendre la bordure noire, et je n'ai trouvé dans aucune doc VDP comment faire cela ...

Un peu d'aide serait encore le bienvenu ;)

Edit je pense avoir trouvé : C'est sur le registre 7 du VDP ... Ai je bon ? Edité par bfg Le 24/10/2013 à 14h56
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 24/10/2013 à 14h56
Je te conseille vivement ce livre :
http://www.msxvillage.fr/download/download.php?id=3

Code TEXT :
 
LD A,1
LD (0F3EBH),A
 


Edit: Si tu changes la valeur par accès direct aux VDP (sans passer par le BIOS), il ne faut pas oublier la Variable System 0F3E6H correspondante.
Edité par GDX Le 24/10/2013 à 15h10
   
bfg Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 05/08/2011 à 10h02

Messages: 58

Le 24/10/2013 à 15h12
GDX :
Je te conseille vivement ce livre :

http://www.msxvillage.fr/download/download.php?id=3



Code TEXT :
 
LD A,1
LD (0F3EBH),A
 




Edit: Si tu changes la valeur par accès direct aux VDP (sans passer par le BIOS), il ne faut pas oublier la Variable System 0F3E6H correspondante.




Ha, j'ai fait autrement :



void changeBorderColor(char color)

{

__asm



ld b,4(ix);

ld c,#0x007;

call 0x0047;



__endasm;

}



En sachant que je me fiche d'écraser la couleur d'encre car je suis en mode graphique. Et en fait j'ai trouvé ça dans un autre livre : Assembleur et Périphérique du MSX... Mais merci ! Au moins la on passe pas par le bios.
Fabf Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 24/08/2010 à 20h55

Messages: 4833

Le 24/10/2013 à 15h47
Tout passe par les routines du BIOS dans ton jeu ?

Aucun accès direct au VDP ?

C'est bien fluide en tout cas, ce serait peut être différent avec un scrolling non ?

Ca m'épate toujours la programmation mais là le mixe C/ASM à l'ai vraiment cool.
La structure du C et la rapidité de l'ASM :top
bfg Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 05/08/2011 à 10h02

Messages: 58

Le 24/10/2013 à 16h33
Fabf :
Tout passe par les routines du BIOS dans ton jeu ?



Aucun accès direct au VDP ?



C'est bien fluide en tout cas, ce serait peut être différent avec un scrolling non ?



Ca m'épate toujours la programmation mais là le mixe C/ASM à l'ai vraiment cool.

La structure du C et la rapidité de l'ASM :top




Sincèrement je ne vois même pas comment faire un scrolling sur MSX ou Coleco ... Je n'ai jamais réussit à faire quelquechose qui passe dans un VBL ... En fait, je n'ai même pas la théorie pour faire un scrolling efficace ... Comment stocker les données ? Comment les faires passer de la RAM à la VRAM suffisamment rapidement ? Déja à la base je n'ai jamais "trouvé" la théorie, alors le faire en pratique ...



Je pense qu'il faut mieux que la routine dans ce cas soit full assembleur pour éviter les éventuels "optimisations" du compilateur C qu'on ne maitrise pas forcément.



Mais dans l'ensemble le mix C/ASM me permet de faire à peut prêt tout ce que je veux, en tout cas en jeux "tableaux".
Fabf Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 24/08/2010 à 20h55

Messages: 4833

Le 24/10/2013 à 19h14
Tu compile sous Windows ?
bfg Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 05/08/2011 à 10h02

Messages: 58

Le 24/10/2013 à 19h24
Fabf :
Tu compile sous Windows ?




Oui, franchement, il n'y à rien de compliqué de ce coté avec SDCC. Pour ceux qu comprennent l'assembleur vous pouvez même analyser ce que génère le compilo puisqu'il génère un .s qu'il compile ensuite.
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie