MSX Village forum

La Place des Développeurs FUSION-C Codez en C pour MSX les doigts dans le nez !

ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5469

Le 04/03/2019 à 18h21

Reprise du message précédent

Merci Monos c'est corrigé.

Bien le RLE, je n'y avait pas pensé. :tchin
Pour être plus rapide dans le décodage je ferai une mise à jour avec un module en assembleur.


banniere-ericb59e
Site web    
Monos Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 28/09/2018 à 17h10

Messages: 101

Le 04/03/2019 à 18h26
Ba de rien, si ça te donne des idées. Ce fut un bon entrainement pour moi.
Oui c'est améliorable. Hate d'avoir une mise à jour de fusion C pour peut être le prochain jeu après prisonnier III !


Il faut donner à manger à nos machines !
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5469

Le 04/03/2019 à 19h02
Monos :

Oui c'est améliorable. Hate d'avoir une mise à jour de fusion C pour peut être le prochain jeu après prisonnier III !


Qu'est-ce que tu souhaiterais comme mise à jour ?

Pour l'instant j'ai fait des corrections sur le manuel, et le livre.
Corrigé des bugs sur :
Getche.s
vdp_graph2.s
setdate.s

Ajouté les fonctions :
MouseRead
SetRealTimer
RealTimer
CovoxPlay
SC2Circle
SC2FilledCircle
SetBorderColor

et quelques autres bricoles


banniere-ericb59e
Site web    
Monos Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 28/09/2018 à 17h10

Messages: 101

Le 04/03/2019 à 19h23
Je n'ai pas vu si on pouvais rendre invisible ou pas un sprite en particulier. Je ne sais pas si le harware faire ça !


Il faut donner à manger à nos machines !
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10287

Le 04/03/2019 à 20h13
si tu lui met des coordonnées en dehors de l'écran il ne sera pas affiché


:noel
Site web    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5469

Le 04/03/2019 à 20h14
Monos :
Je n'ai pas vu si on pouvais rendre invisible ou pas un sprite en particulier. Je ne sais pas si le harware faire ça !

Heu non. Pour ça faut le déplacer sous la coordonnées y>212 si tu ne veux plus le voir. Ou alors tu lui assignes un pattern vide.


banniere-ericb59e
Site web    
Monos Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 28/09/2018 à 17h10

Messages: 101

Le 05/03/2019 à 04h33
Le tips da la coordonné oui, ça je savais, mais je pensais qu'il y avait un flag pour activer ou non un id de sprite.


Il faut donner à manger à nos machines !
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5469

Le 05/03/2019 à 06h34
Monos :
Le tips da la coordonné oui, ça je savais, mais je pensais qu'il y avait un flag pour activer ou non un id de sprite.

En fait c'est probable que oui. Mais je ne le connais pas.


banniere-ericb59e
Site web    
Visiteur

Vagabond

Rang

Avatar

Message : 0

Le 05/03/2019 à 07h59
Il n'existe pas de commande pour désactiver l'affichage d'un seul sprite. Il faut effectivement le placer en y>212 ou utiliser la commande EC (early clock) et x=0 pour ne plus afficher le sprite à l'écran. Il existe la commande SPD "sprite display" (bit 1 du registre #8 du VDP) pour désactiver ou activer l'affichage de tous les sprites. Ceci est valable en sprite mode 2.
   
Monos Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 28/09/2018 à 17h10

Messages: 101

Le 05/03/2019 à 18h45
Merci Sylvain.


Il faut donner à manger à nos machines !
Anata Membre non connecté

Vagabond

Rang

Avatar

Inscrit le : 19/02/2019 à 01h38

Messages: 4

Le 08/03/2019 à 20h40
Ca serait bien d’intégrer la fonction diskLoad qui est beaucoup plus rapide par exemple pour charger des fichiers SC5.

J'utilise pour l'instant la version de code-C , mais ça serait super pratique :)

Aussi revoir certaine fonction au niveau args.
comme par exemple ;
Code C :
 
extern void PutSprite( char sprite_no,  char pattern_no, char x,  char y,  char ec_color );        // Put A sprite on Screen
 


pour le pattern , on comprend, par contre, le sprite_no pour l'index de la palette a utiliser, la c'est un peu brouillon je trouve, et ne parlons pas de ec_color qu'on sait pas a quoi ça correspond :)

Y'a encore du boulot a ce niveau, mais mis a part cela, ca fonctionne pas si mal que ca :)
   
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5469

Le 08/03/2019 à 21h03
Anata :

Code C :
 
extern void PutSprite( char sprite_no,  char pattern_no, char x,  char y,  char ec_color );        // Put A sprite on Screen
 


pour le pattern , on comprend, par contre, le sprite_no pour l'index de la palette a utiliser, la c'est un peu brouillon je trouve, et ne parlons pas de ec_color qu'on sait pas a quoi ça correspond :)


C'est pas faux ! :siffle


banniere-ericb59e
Site web    
Visiteur

Vagabond

Rang

Avatar

Message : 0

Le 09/03/2019 à 19h19
Je reviens quelques posts en arrière concernant la lecture de données à partir d'un fichier.

Dans le cas où la mémoire contient des '00' à l'emplacement de la structure FCB, ça fonctionne, mais je vous conseille, avant d'appeler la fonction fcb_open, de choisir le lecteur de disquettes sur lequel se trouve le fichier à lire (0=lecteur par défaut, 1=lecteur A, 2=lecteur B, etc...).

exemple : vous avez déclaré :
Code C :
static FCB file;

pour le lecteur A faites :
Code C :
    file.drive_no = 0;


et d'initialiser les positions de lecture :
Code C :
    file.cluster_offset=0;
    file.current_record=0;
    file.random_record=0;


ensuite l'ouverture :
Code C :
    if((rc=fcb_open( &file )) != FCB_SUCCESS) {
        printf("Open file error %x\n\r",rc);
        return 1;
    }


et la lecture :
Code C :
  rd=fcb_read( &file, buffer, length );

fcb_read retourne le nombre d'octets effectivement lus. Utile pour détecter la lecture complète du bloc et la fin du fichier en cas de lecture en plusieurs fois.
;) Edité par Visiteur Le 12/03/2019 à 07h44
   
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5469

Le 09/03/2019 à 22h15
Sylvain, les positions de lectures et n° de lecteur ne sont pas par défaut à 0 ? :hum

EDIT : Ok je viens de comprendre la phrase "Dans le cas où la mémoire contient des '00' à l'emplacement de la structure FCB" !
j'ai rien dit ! Edité par ericb59 Le 09/03/2019 à 22h17


banniere-ericb59e
Site web    
Monos Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 28/09/2018 à 17h10

Messages: 101

Le 13/03/2019 à 07h00
Youtube !!!
Je commence à mettre en place mon prochain jeu : un plateformer. (Je dois finaliser pripri ausssi)
Cela marche pas trop mal !!!
Maintenant j'ai mon dilemme, jeu de plateforme futuriste ou med fantastique xd
Pas encore arrêté tout ça.


Il faut donner à manger à nos machines !
MSXosaure Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 03/10/2009 à 00h09

Messages: 774

Le 19/03/2019 à 21h33
très intéressant tout ça, même si je pense pas me lancer dans ce nouveau langage pour moi. ^^ par contre je connais quelques fonctionnements de la machine si ça peut aider et bravo à Monos pour son engouement pour nos bécanes :top


Le MSXien le plus à l'ouest :fou ... ou presque :D
osaurer
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie