La Place des Développeurs FUSION-C Codez en C pour MSX les doigts dans le nez !
Reprise du message précédent
LA vache, 358 page, chaud à imprimé la xdPré version je vais attendre. Merci, j'ai déja sortie le guide msx de je ne sais plus qui , ma il me semble plus complet...
Edit :
Si si j'ai des glich avec mon affichage pour le moment.
Sinon je viens de comprendre le system de page.
Et aussi cette commande :
HMMC (data, px, py, 16, 16 );
Avec ça je peux mémoriser mon "tiles" sur la disquettes / Cartouche et l'afficher directement à l'écran à l'endroit voulu. C'est cool.
Un peu moins en disquette car ça doit partir en Ram (pas en cartouche normalement vu que mon tableau c'est une constante).
l'idée de la page c'est de libéré la mémoire par contre.
J'ai bien avancé ce matin avant d'aller au boulot. Edité par Monos Le 29/01/2019 à 06h44

Monos :
LA vache, 358 page, chaud à imprimé la xd
Pré version je vais attendre. Merci, j'ai déja sortie le guide msx de je ne sais plus qui , ma il me semble plus complet...
Pré version je vais attendre. Merci, j'ai déja sortie le guide msx de je ne sais plus qui , ma il me semble plus complet...
Oui , c'est pour cela que je l'ai en livre


Monos :
Sinon je viens de comprendre le system de page.
Et aussi cette commande :
HMMC (data, px, py, 16, 16 );
Avec ça je peux mémoriser mon "tiles" sur la disquettes / Cartouche et l'afficher directement à l'écran à l'endroit voulu. C'est cool.
Un peu moins en disquette car ça doit partir en Ram (pas en cartouche normalement vu que mon tableau c'est une constante).
l'idée de la page c'est de libéré la mémoire par contre.
J'ai bien avancé ce matin avant d'aller au boulot.
Sinon je viens de comprendre le system de page.
Et aussi cette commande :
HMMC (data, px, py, 16, 16 );
Avec ça je peux mémoriser mon "tiles" sur la disquettes / Cartouche et l'afficher directement à l'écran à l'endroit voulu. C'est cool.
Un peu moins en disquette car ça doit partir en Ram (pas en cartouche normalement vu que mon tableau c'est une constante).
l'idée de la page c'est de libéré la mémoire par contre.
J'ai bien avancé ce matin avant d'aller au boulot.
Oui, un MSX2 à 128K de Mémoire video. Ce qui permet d'y stocker pas mal de données graphiques, qui ne viennent pas encombrer la mémoire du MSX.
L'avantage de coder pour MSXDOS, c'est que tu disposes ne plus de 720K de stockage sur ta disquette (qu'il sera possible de transformer en une ROM de poids equivalent ou légèrement plus petit.
TU noous montre ce que tu as codé ? Edité par ericb59 Le 29/01/2019 à 15h49
Je montre le morceau de code mais encre une fois c'est pas organisé, fait à l'arrache pour tester plein de truc.
Bon je tiens le truc pour créer mon tableau du jeu.
Mais faut que je test un autre truc, l'affichage est un lent à mon gout je pense que çà provient de la Ram => Mémoire vidéo à répétition...
Avant d'écrire ce message je voulais tester un autre truc.
Ram => Mémoire vidéo pour mémoriser mes deux tilses (Dans la 2nd page)
Et ensuite Mémoire vidéo => mémoire vidéo pour créer la carte du jeu en lui même. Donc faire un chargement de tilsets en Mémoire vidéo quoi.
Ensuite je vais très certainement ne pas utiliser les sprites hardware pour les persos joueur mais faire des sprites software pour bénéficier de toutes les couleurs que je veux ! C'est pas un jeu d'action, donc ça devrait le faire !
Grosso merdo, hors musique, j'ai tous les trucs en main pour commencer le portage de prisonnier sur msx2 !
(Finalement si j'ai bien compris, le msx2 c'est la même palette couleur que l'atari ST normale.
Bon je tiens le truc pour créer mon tableau du jeu.
Mais faut que je test un autre truc, l'affichage est un lent à mon gout je pense que çà provient de la Ram => Mémoire vidéo à répétition...
Avant d'écrire ce message je voulais tester un autre truc.
Ram => Mémoire vidéo pour mémoriser mes deux tilses (Dans la 2nd page)
Et ensuite Mémoire vidéo => mémoire vidéo pour créer la carte du jeu en lui même. Donc faire un chargement de tilsets en Mémoire vidéo quoi.
Ensuite je vais très certainement ne pas utiliser les sprites hardware pour les persos joueur mais faire des sprites software pour bénéficier de toutes les couleurs que je veux ! C'est pas un jeu d'action, donc ça devrait le faire !
Grosso merdo, hors musique, j'ai tous les trucs en main pour commencer le portage de prisonnier sur msx2 !
(Finalement si j'ai bien compris, le msx2 c'est la même palette couleur que l'atari ST normale.
Code :
/*******************************************************
* Nom ............ : main.c
* Role ........... : Fichier de départ de tout programme C
* Auteur ......... : Monos
* Version ........ : V1.0 du 27/01/2018
* Modification ... : 28/01/2018
* Licence ........ : ....
* Compilateur .... : SDCC
* Version Devkit.. :
* Cible .......... : MSX 2 et plus
********************************************************
* Programme ...... : Prisonnier
* Auteur ......... : Jean Monos, Capitaine Caverne
* Programmeur .... : Jean Monos
* Graphiste ...... :
* Musicien ....... :
* Divers ......... : (Fusion C),
********************************************************
* Le Fichier Main du programme qui à pour but de lancer
* le programme.
*******************************************************/
// =====================
// ** Fichier include **
// =====================
#include "header/msx_fusion.h"
#include "header/vdp_sprites.h"
#include "header/vdp_graph2.h"
#define COLOR_J1 11
#define COLOR_J2 14
const unsigned char curseur_1[]={
0b11110000,
0b10000000,
0b10000000,
0b10000000,
0b00000000,
0b00000000,
0b00000000,
0b00000000,
0b00001111,
0b00000001,
0b00000001,
0b00000001,
0b00000000,
0b00000000,
0b00000000,
0b00000000,
0b00000000,
0b00000000,
0b00000000,
0b00000000,
0b10000000,
0b10000000,
0b10000000,
0b11110000,
0b00000000,
0b00000000,
0b00000000,
0b00000000,
0b00000001,
0b00000001,
0b00000001,
0b00001111,
};
const unsigned char data[]={
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,168,168,168,168,168,168,168,168,168,168,168,168,168,168,0,
0,168,168,168,168,168,168,168,168,168,168,168,168,168,168,0,
0,168,168,168,168,168,168,168,168,168,168,168,168,168,168,0,
0,168,168,168,168,168,168,168,168,168,168,168,168,168,168,0,
0,168,168,168,168,168,168,168,168,168,168,168,168,168,168,0,
0,168,168,168,168,168,168,168,168,168,168,168,168,168,168,0,
0,168,168,168,168,168,168,168,168,168,168,168,168,168,168,0,
0,168,168,168,168,168,168,168,168,168,168,168,168,168,168,0,
0,168,168,168,168,168,168,168,168,168,168,168,168,168,168,0,
0,168,168,168,168,168,168,168,168,168,168,168,168,168,168,0,
0,168,168,168,168,168,168,168,168,168,168,168,168,168,168,0,
0,168,168,168,168,168,168,168,168,168,168,168,168,168,168,0,
0,168,168,168,168,168,168,168,168,168,168,168,168,168,168,0,
0,168,168,168,168,168,168,168,168,168,168,168,168,168,168,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
const unsigned char mur[]={
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,205,205,205,205,205,205,205,205,205,205,205,205,205,205,0,
0,205,205,205,205,205,205,205,205,205,205,205,205,205,205,0,
0,205,205,205,205,205,205,205,205,205,205,205,205,205,205,0,
0,205,205,205,205,205,205,205,205,205,205,205,205,205,205,0,
0,205,205,205,205,205,205,205,205,205,205,205,205,205,205,0,
0,205,205,205,205,205,205,205,205,205,205,205,205,205,205,0,
0,205,205,205,205,205,205,205,205,205,205,205,205,205,205,0,
0,205,205,205,205,205,205,205,205,205,205,205,205,205,205,0,
0,205,205,205,205,205,205,205,205,205,205,205,205,205,205,0,
0,205,205,205,205,205,205,205,205,205,205,205,205,205,205,0,
0,205,205,205,205,205,205,205,205,205,205,205,205,205,205,0,
0,205,205,205,205,205,205,205,205,205,205,205,205,205,205,0,
0,205,205,205,205,205,205,205,205,205,205,205,205,205,205,0,
0,205,205,205,205,205,205,205,205,205,205,205,205,205,205,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
};
const unsigned char player[]={
0b00000011,
0b00000100,
0b00011100,
0b01100100,
0b10001000,
0b10000000,
0b01000000,
0b01110000,
0b00000000,
0b10000000,
0b11100000,
0b10011000,
0b01000100,
0b00000100,
0b00001000,
0b00111000,
0b11111011,
0b11111111,
0b11001111,
0b11001111,
0b11111111,
0b11111111,
0b01111111,
0b01110001,
0b01111100,
0b11111110,
0b11111110,
0b10011110,
0b10011110,
0b11111110,
0b11111110,
0b11111100
};
const unsigned char board[]={
1,1,1,1,1,1,1,1,1,1,1,
1,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,1,
1,0,0,0,0,0,0,0,0,0,1,
1,1,1,1,1,1,1,1,1,1,1,
};
const unsigned char palette_j1[]={COLOR_J1,COLOR_J1,COLOR_J1,COLOR_J1,COLOR_J1,COLOR_J1,COLOR_J1,COLOR_J1};
const unsigned char palette_j2[]={COLOR_J2,COLOR_J2,COLOR_J2,COLOR_J2,COLOR_J2,COLOR_J2,COLOR_J2,COLOR_J2};
unsigned char passabilite[11][11];
void draw_board();
void draw_block(unsigned char px,unsigned char py,unsigned int id_tuiles);
void wait_vbl();
void FT_wait(int cicles)
{
int i;
for(i=0;i<cicles;i++)
{
Halt();
}
}
// ====================
// ** Procedure main **
// ====================
void main(void)
{
// Variables de position
unsigned char curseur_X=1;
unsigned char curseur_Y=1;
unsigned char PJ_1_X=5;
unsigned char PJ_1_Y=1;
unsigned char PJ_2_X=5;
unsigned char PJ_2_Y=9;
// Initation
Screen(8);
HideDisplay();
KeySound(0);
VDP60Hz();
RestoreSC5Palette();
SetColors(15,1,1);
Cls();
// Check MSX
if(ReadMSXtype()==3) // If MSX is Turbo-R Switch CPU to Z80 Mode
{
ChangeCPU(0);
}
// Préparation du tableau
draw_board();
FT_wait(1);
// Préparation des sprites du joueur et du curseur !
SpriteReset();
SpriteSmall();
// Memorisation en VDP les patternes
SetSpritePattern(0,curseur_1,32);
SetSpritePattern(4,player,32);
// Memorisation des couleurs des sprites
// Sprites Curseur
SC8SpriteColors(0,palette_j1);
SC8SpriteColors(1,palette_j1);
SC8SpriteColors(2,palette_j1);
SC8SpriteColors(3,palette_j1);
// Sprite Joueur 1
SC8SpriteColors(4,palette_j1);
SC8SpriteColors(5,palette_j1);
SC8SpriteColors(6,palette_j1);
SC8SpriteColors(7,palette_j1);
// Sprite Joueur 2
SC8SpriteColors(8,palette_j2);
SC8SpriteColors(9,palette_j2);
SC8SpriteColors(10,palette_j2);
SC8SpriteColors(11,palette_j2);
// End
FT_wait(2);
ShowDisplay();
while(1)
{
// Test Dirrection clavier
if (JoystickRead(0)==3)
{
curseur_X++;
}
else if (JoystickRead(0)==7)
{
curseur_X--;
}
else if (JoystickRead(0)==1)
{
curseur_Y--;
}
else if (JoystickRead(0)==5)
{
curseur_Y++;
}
// ==============
if (curseur_X==0)
{
curseur_X=1;
}
else if (curseur_X==10)
{
curseur_X=9;
}
if (curseur_Y==0)
{
curseur_Y=1;
}
else if (curseur_Y==10)
{
curseur_Y=9;
}
// Update sprite Curseur
PutSprite(0,0,curseur_X<<4,curseur_Y<<4,0);
PutSprite(1,1,(curseur_X<<4)+8,curseur_Y<<4,0);
PutSprite(2,2,curseur_X<<4,(curseur_Y<<4)+7,0);
PutSprite(3,3,(curseur_X<<4)+8,(curseur_Y<<4)+7,0);
// Update sprite P1
PutSprite(4,4,PJ_1_X<<4,PJ_1_Y<<4,0);
PutSprite(5,5,(PJ_1_X<<4)+8,PJ_1_Y<<4,0);
PutSprite(6,6,PJ_1_X<<4,(PJ_1_Y<<4)+7,0);
PutSprite(7,7,(PJ_1_X<<4)+8,(PJ_1_Y<<4)+7,0);
// Update sprite P2
PutSprite(8,4,PJ_2_X<<4,PJ_2_Y<<4,0);
PutSprite(9,5,(PJ_2_X<<4)+8,PJ_2_Y<<4,0);
PutSprite(10,6,PJ_2_X<<4,(PJ_2_Y<<4)+7,0);
PutSprite(11,7,(PJ_2_X<<4)+8,(PJ_2_Y<<4)+7,0);
FT_wait(8);
};
}
void draw_board()
{
unsigned char tiles_x;
unsigned char tiles_y;
unsigned char cycle=0;
for (tiles_y=0;tiles_y<11;tiles_y++)
{
for (tiles_x=0;tiles_x<11;tiles_x++)
{
passabilite[tiles_x][tiles_y]=board[cycle];
draw_block(tiles_x<<4,tiles_y<<4,board[cycle]);
cycle++;
}
}
}
void draw_block(unsigned char px,unsigned char py,unsigned int id_tuiles)
{
if (id_tuiles==0)
{
HMMC (data, px, py, 16, 16 );
}
else if (id_tuiles==1)
{
HMMC (mur, px, py, 16, 16 );
}
}
void wait_vbl()
{
while(IsVsync()==0){}
}

Je vois que tu es passé en Screen 8 C'est Cool ! 
Effectivement les Copie de VRAM <-> VRAM seront plus rapide que de passer par la RAM.
En screen8 Tu as deux pages de 256 *256 Pixels
Sur la page 0 qui correspond à celle affichée à l'écran n'est affiché que 256 x 212 pixels
Les lignes 213 à 155 existent mais ne sont pas affichée. A l'intérieur de cette zone mémoire il y a les définitions des sprites hardware.
Mais si tu les utilise pas. Cette zone peut servir à stocker des choses... ou faire des manips de VRAM...
Si tu charges des DATAS/IMAGES depuis le Disk (sous MSX DOS), cela peut paraitre long... Car l'émulateur simule un lecteur de Disquette.
Seulement, une fois le tout transformé en ROM, les chargements sont beaucoup plus rapides... Il faut y penser...
PS Tu as un RestorePalette qui ne sert plus rien dans ton code
PS2 dans Fusion-c/Tools/
Il y a la palette 256 Couleurs sous forme de fichier image si tu veux.
SI tu as besoin de convertir des images au format MSX Screen 8 j'utilise le convertisseur en ligne : http://msx.jannone.org/conv/
Même si il y a des outils qui sont parait il plus performants ...

Effectivement les Copie de VRAM <-> VRAM seront plus rapide que de passer par la RAM.
En screen8 Tu as deux pages de 256 *256 Pixels
Sur la page 0 qui correspond à celle affichée à l'écran n'est affiché que 256 x 212 pixels
Les lignes 213 à 155 existent mais ne sont pas affichée. A l'intérieur de cette zone mémoire il y a les définitions des sprites hardware.
Mais si tu les utilise pas. Cette zone peut servir à stocker des choses... ou faire des manips de VRAM...
Si tu charges des DATAS/IMAGES depuis le Disk (sous MSX DOS), cela peut paraitre long... Car l'émulateur simule un lecteur de Disquette.
Seulement, une fois le tout transformé en ROM, les chargements sont beaucoup plus rapides... Il faut y penser...
PS Tu as un RestorePalette qui ne sert plus rien dans ton code
PS2 dans Fusion-c/Tools/
Il y a la palette 256 Couleurs sous forme de fichier image si tu veux.
SI tu as besoin de convertir des images au format MSX Screen 8 j'utilise le convertisseur en ligne : http://msx.jannone.org/conv/
Même si il y a des outils qui sont parait il plus performants ...

Reçu le book enfin je m'y met ce week
par contre y as rien pour les K7 ???
par contre y as rien pour les K7 ???
TURBO-R FS-A1ST 512/128ko MSX2+ NMS 8250 F4 /Fix Audio /Ram 1/4Mb VDP9958 VRAM 192ko 2FDD SANYO WAVY PHC35J MSX2 NMS 8280 Ram 4Mb VDP9938 VRAM 192ko 2FDD NMS 8250 128/128ko 2FDD VG8235/39 128/128ko 1FDD SONY HB-F700D MSX1 MC810 32/16k VG 8020 64k HB75F 64k HX-22 64k RS232/ CX5M 32k HB501F EXT : My Exp 4X/[b] MegaFlashSCC 512ko/BERT R2/BEER CF/SUNRISE 2CF/FUNRICE V2.01/MAXIOL/MEGASCSI HDD-CD/SDMSX 1SD/FMPAC SRAM/NMS1205+1160/RS 232 Harukaze/GR8NET/DOS2/ HOMER V2 RAM512ko/Floppy Pack/MAXduino/ROM1664/FM Pak /GR8NET /AMIGA/ PC/ RaspB Pi(B) / ARDUINO

Bastion Rebel :
Reçu le book enfin je m'y met ce week
par contre y as rien pour les K7 ???
par contre y as rien pour les K7 ???
Ben non ! J'ai jamais vu MSX-DOS tourner depuis une Cassette ....


Et alors pourquoi pas ???
TURBO-R FS-A1ST 512/128ko MSX2+ NMS 8250 F4 /Fix Audio /Ram 1/4Mb VDP9958 VRAM 192ko 2FDD SANYO WAVY PHC35J MSX2 NMS 8280 Ram 4Mb VDP9938 VRAM 192ko 2FDD NMS 8250 128/128ko 2FDD VG8235/39 128/128ko 1FDD SONY HB-F700D MSX1 MC810 32/16k VG 8020 64k HB75F 64k HX-22 64k RS232/ CX5M 32k HB501F EXT : My Exp 4X/[b] MegaFlashSCC 512ko/BERT R2/BEER CF/SUNRISE 2CF/FUNRICE V2.01/MAXIOL/MEGASCSI HDD-CD/SDMSX 1SD/FMPAC SRAM/NMS1205+1160/RS 232 Harukaze/GR8NET/DOS2/ HOMER V2 RAM512ko/Floppy Pack/MAXduino/ROM1664/FM Pak /GR8NET /AMIGA/ PC/ RaspB Pi(B) / ARDUINO
Le livre devrait arriver Vendredi parait_il d'après amazone pour moi.
Sinon je n'ai pas travaillé ce matin à cause de la dernière couleurs de la palette msx qui tombe !
Alors j'ai profité (rol) pour avancé sur mon portage de prisonnier. J'avais re débuté sur C64 avec un devkit maison mais j'explose la mémoire ram du commodore ! Je suis repartie sur cette base !

Bon j'ai compris la gestion graphique , j'ai eu un soucie de commande, faut que je trouve un logiciel qui me donne la bonne valeur à entré pour les couleurs en mode 256 pour faire mes choix, mais la j'ai bien peur que je vais devoir bricoler un programme maison !
Les deux "perso" sont des sprites, mais j'arrive à rien avec le mode du msx, j'ai l'impression que je vais devoir faire des sprites software pour bénéficier des couleurs . (On a dit bob ?) puis de toute façon ce n'est pas un jeu dynamique. (Plateau, tour par tour...)
Dans prisonnier la règle est simple, le joueur à le droit à un déplacement d'une case sur les 8 directions, et de poser un mur. (Trappe bientôt que je dois dessiner)
Le premier joueur qui ne peux plus se déplacer à perdu !!!
J'ouvrirais un topic quand j'aurais une meilleur base du jeu.
Encore merci pour le SDK !
Sinon je n'ai pas travaillé ce matin à cause de la dernière couleurs de la palette msx qui tombe !
Alors j'ai profité (rol) pour avancé sur mon portage de prisonnier. J'avais re débuté sur C64 avec un devkit maison mais j'explose la mémoire ram du commodore ! Je suis repartie sur cette base !

Bon j'ai compris la gestion graphique , j'ai eu un soucie de commande, faut que je trouve un logiciel qui me donne la bonne valeur à entré pour les couleurs en mode 256 pour faire mes choix, mais la j'ai bien peur que je vais devoir bricoler un programme maison !
Les deux "perso" sont des sprites, mais j'arrive à rien avec le mode du msx, j'ai l'impression que je vais devoir faire des sprites software pour bénéficier des couleurs . (On a dit bob ?) puis de toute façon ce n'est pas un jeu dynamique. (Plateau, tour par tour...)
Dans prisonnier la règle est simple, le joueur à le droit à un déplacement d'une case sur les 8 directions, et de poser un mur. (Trappe bientôt que je dois dessiner)
Le premier joueur qui ne peux plus se déplacer à perdu !!!
J'ouvrirais un topic quand j'aurais une meilleur base du jeu.
Encore merci pour le SDK !

Cool ça avance...
A mon avis le bouquin ne vas plus t'aider beaucoup, tu maitrises déjà
Alors (c'est pas une critique) tu vas pouvoir nous faire de bien plus beau graphismes en screen 8 T'as plein de couleurs :-)
Concernant les Sprites Hardware en screen8 la palette de couleurs c'est la palette de base du MSX, tu ne peux pas utiliser la palette 256 couleurs pour les sprites !
Oui c'est con, oui c'est débile !
il y a cet outil en ligne si tu veux, ca t'exporte les datas des sprites, c'est pratique : http://msx.jannone.org/tinysprite/tinysprite.html
Alors il y a une astuce pour avoir plus de couleurs en superposant plusieurs sprites, mais j'ai jamais approfondi, je ne saurais pas expliquer comment ça marche...
Si tu décides d'utiliser des sprites Software, la couleur transparent c'est 0 (Noir) .
Allez tu tiens le bon bout !
A mon avis le bouquin ne vas plus t'aider beaucoup, tu maitrises déjà

Alors (c'est pas une critique) tu vas pouvoir nous faire de bien plus beau graphismes en screen 8 T'as plein de couleurs :-)
Concernant les Sprites Hardware en screen8 la palette de couleurs c'est la palette de base du MSX, tu ne peux pas utiliser la palette 256 couleurs pour les sprites !
Oui c'est con, oui c'est débile !
il y a cet outil en ligne si tu veux, ca t'exporte les datas des sprites, c'est pratique : http://msx.jannone.org/tinysprite/tinysprite.html
Alors il y a une astuce pour avoir plus de couleurs en superposant plusieurs sprites, mais j'ai jamais approfondi, je ne saurais pas expliquer comment ça marche...
Si tu décides d'utiliser des sprites Software, la couleur transparent c'est 0 (Noir) .
Allez tu tiens le bon bout !

Citation :
A mon avis le bouquin ne vas plus t'aider beaucoup, tu maitrises déjà [/quotes]
Juste la base! au niveau sonore rien du tout par exemple ! J'ai plein de truc à apprendre xd
[quote] tu vas pouvoir nous faire de bien plus beau graphismes en screen 8 T'as plein de couleurs :-)
Juste la base! au niveau sonore rien du tout par exemple ! J'ai plein de truc à apprendre xd
[quote] tu vas pouvoir nous faire de bien plus beau graphismes en screen 8 T'as plein de couleurs :-)
Oui, je m'attellerais à améliorer tout ça plus tard.
Citation :
Concernant les Sprites Hardware en screen8 la palette de couleurs c'est la palette de base du MSX, tu ne peux pas utiliser la palette 256 couleurs pour les sprites !
Oui c'est con, oui c'est débile !
Oui c'est con, oui c'est débile !
J'ai vu ça en demandant au curseur la couleur blanc 255 qui est devenu invisible ! J'ai compris le truc xd
Citation :
Alors il y a une astuce pour avoir plus de couleurs en superposant plusieurs sprites, mais j'ai jamais approfondi, je ne saurais pas expliquer comment ça marche..
C'est ça ! sauf qu'il y a la même limite en mode 2 des sprites de sprite sur la ligne horizontalement. 64 pixel de sprite. (8 sprites de 8*8) Le 9em ne sera pas présent.
C'est comme la Master System et la nes. Sinon faut les faire clignoté mais bof.
Faut que je cherche à comment créer une cartouche aussi ! ça je ne sais point. Ni une disquette non plus.

Tous les modes Ecrans MSX2 (Screen de 4 à 8) on les mêmes limites concernant les sprites.
Dans les modes MSX1, (Screen 1 à 3), c'est 4 sprites par ligne horizontal maximum.
Il y a les outils dans WorkingDir/tools
DiskImageManager pour la creation de disquettes (Ou diskTool en ligne commande)
et DSK2ROM pour transformer une Disquette en ROM
Après pour mettre la rom dans une cartouche j'ai des kits...
Dans les modes MSX1, (Screen 1 à 3), c'est 4 sprites par ligne horizontal maximum.
Citation :
Faut que je cherche à comment créer une cartouche aussi ! ça je ne sais point. Ni une disquette non plus.
Faut que je cherche à comment créer une cartouche aussi ! ça je ne sais point. Ni une disquette non plus.
Il y a les outils dans WorkingDir/tools
DiskImageManager pour la creation de disquettes (Ou diskTool en ligne commande)
et DSK2ROM pour transformer une Disquette en ROM
Après pour mettre la rom dans une cartouche j'ai des kits...
Citation :
Après pour mettre la rom dans une cartouche j'ai des kits..
J'ai vu. C'est au programme quand j'aurais un MSX_2 .
Je n'ai que deux msx1.
Le Canon V20 dont je dois re trouver un cable vidéo un jour et le sony HB501F
Merci.
Il manque une fonction dans le devkit !
Une "vrais" fonction wait_vbl pour attendre le retour du faisceau electron. Ce qui peut résoudre plein truc et évite ta fonction pour temporiser le programme avec des halts pas beau.
edit :
Je n'ai pas téléchargé le nouveau manuel
mais page 77
Sprites8 et 16 tu as placé dans le manuel un S a la fin de sprite alors que c'est
Sprite8() et Sprite16() mais sans S.
Video rapide sur les sprites 16 x 16
Lien Edité par Monos Le 01/02/2019 à 07h04
Il manque une fonction dans le devkit !
Une "vrais" fonction wait_vbl pour attendre le retour du faisceau electron. Ce qui peut résoudre plein truc et évite ta fonction pour temporiser le programme avec des halts pas beau.
edit :
Je n'ai pas téléchargé le nouveau manuel
mais page 77
Sprites8 et 16 tu as placé dans le manuel un S a la fin de sprite alors que c'est
Sprite8() et Sprite16() mais sans S.
Video rapide sur les sprites 16 x 16
Lien Edité par Monos Le 01/02/2019 à 07h04
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie