La Place des Développeurs Citadelle sur MSX Après la version sur Sanyo PHC-25
Citadelle pour Sanyo PHC-25 est en beta-test.
Maintenant j'ai décidé d'adapter Citadelle sur MSX1!
J'ai réussi à injecter le programme pour le Sanyo PHC-25 dans l'émulateur MSX.
Et à deux instructions près, le jeu fonctionne.
Je ne pense pas en avoir pour très longtemps pour faire la conversion.
Reste à voir si je reste en Screen 1 pour faire une version identique à celle du PHC-25 qui tournera même sur les MSX1 16Ko ou si je refais le jeu en screen 0 avec nouvelle mise en page et textes améliorés...
On pourrait envisager des graphismes et de la musique ainsi qu'une version disquette MSX2 mais je ne crois pas que j'en aurais le temps... Edité par DataPro Le 16/07/2012 à 08h33
Maintenant j'ai décidé d'adapter Citadelle sur MSX1!
J'ai réussi à injecter le programme pour le Sanyo PHC-25 dans l'émulateur MSX.
Et à deux instructions près, le jeu fonctionne.
Je ne pense pas en avoir pour très longtemps pour faire la conversion.
Reste à voir si je reste en Screen 1 pour faire une version identique à celle du PHC-25 qui tournera même sur les MSX1 16Ko ou si je refais le jeu en screen 0 avec nouvelle mise en page et textes améliorés...
On pourrait envisager des graphismes et de la musique ainsi qu'une version disquette MSX2 mais je ne crois pas que j'en aurais le temps... Edité par DataPro Le 16/07/2012 à 08h33
MSX1: Yeno DPC-64 - Sanyo PHC-28S - Sanyo PHC-28L - Canon V20 - Sony HB-75F - Yeno MX-64
MSX2: Panasonic FS-A1F 128Ko RAM 128 Ko VRAM + Gotek + Gotek / Philips NMS 8255 Azerty
Carnivore 2 : 8Mb FlashROM ° 1024Ko RAM ° IDE ° FM-PAC(MSX Music)° SCC+
Wozblaster
En BASIC Sanyo v1.3, j'ai l'instruction CONSOLE qui permet de limiter l'affichage de l'instruction PRINT à une portion de l'écran.
Ainsi, il est possible d'afficher en dehors de cette portion avec LOCATE mais pour afficher dans la portion d'écran, seul l'instruction PRINT suffit, le texte défilant dans la zone (retour de ligne auto) sans effacer le reste de l'écran. Même l'instruction CLS n'efface que la portion.
C'est très pratique pour un jeu d'aventure avec la description du lieu fixe en haut et les actions et résultats en bas.
Comme je n'ai pas programmé en MSX Basic depuis plus de 20 ans, j'ai cherché dans le manuel BASIC du Canon V20 (fort complet et très bien rédigé) mais je n'ai pas vu d'instruction équivalente.
Je ne pense pas peiné à trouver un autre moyen pour afficher comme je le souhaite, mais si vous avez des suggestions, je suis à l'écoute.
Ainsi, il est possible d'afficher en dehors de cette portion avec LOCATE mais pour afficher dans la portion d'écran, seul l'instruction PRINT suffit, le texte défilant dans la zone (retour de ligne auto) sans effacer le reste de l'écran. Même l'instruction CLS n'efface que la portion.
C'est très pratique pour un jeu d'aventure avec la description du lieu fixe en haut et les actions et résultats en bas.
Comme je n'ai pas programmé en MSX Basic depuis plus de 20 ans, j'ai cherché dans le manuel BASIC du Canon V20 (fort complet et très bien rédigé) mais je n'ai pas vu d'instruction équivalente.
Je ne pense pas peiné à trouver un autre moyen pour afficher comme je le souhaite, mais si vous avez des suggestions, je suis à l'écoute.
MSX1: Yeno DPC-64 - Sanyo PHC-28S - Sanyo PHC-28L - Canon V20 - Sony HB-75F - Yeno MX-64
MSX2: Panasonic FS-A1F 128Ko RAM 128 Ko VRAM + Gotek + Gotek / Philips NMS 8255 Azerty
Carnivore 2 : 8Mb FlashROM ° 1024Ko RAM ° IDE ° FM-PAC(MSX Music)° SCC+
Wozblaster
Cette possibilité n'existe pas en BASIC MSX.
Elle est facile à recréer avec l'instruction LOCATE (qui existe), mais tu n'auras pas la gestion automatique du défilement dans la fenêtre, ce sera à toi à le programmer.
Elle est facile à recréer avec l'instruction LOCATE (qui existe), mais tu n'auras pas la gestion automatique du défilement dans la fenêtre, ce sera à toi à le programmer.
MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
Visiteur
Vagabond
Message : 0
Ou alors, il faut passer en screen 2 (chaque caractère utilisant 8x8 pixels h/v)
Pour écrire en screen 2, il faut au préalable le permettre par open"grp:"as#1
Locate (x,y) est remplacé par pset(x,y),c avec c=couleur (utiliser la couleur de fond pour que le point de positionnement reste invisible)
print"texte" est remplacé par print#1,"texte" (à précéder de color 13 par exemple pour avoir le texte dans la couleur 13)
Pour créer une fenêtre, créer un cadre rectangulaire de couleur différente de celle du fond de son contenu avec line(p,q)-(r,s),c,b
Pour effacer le contenu d'une fenêtre avant d'afficher le texte suivant, il suffit alors d'utiliser une instruction comme line(a,b)-(c,d),c,bf, les 4 points a,b,c,d étant situés à l'intérieur de la fenêtre.
Pour éviter de toujours tout recopier, mettre les textes dans des chaînes de caractères et créer des routines d'affichage et d'effacement qu'on appelle par GOSUB. Edité par Visiteur Le 16/07/2012 à 10h25
Pour écrire en screen 2, il faut au préalable le permettre par open"grp:"as#1
Locate (x,y) est remplacé par pset(x,y),c avec c=couleur (utiliser la couleur de fond pour que le point de positionnement reste invisible)
print"texte" est remplacé par print#1,"texte" (à précéder de color 13 par exemple pour avoir le texte dans la couleur 13)
Pour créer une fenêtre, créer un cadre rectangulaire de couleur différente de celle du fond de son contenu avec line(p,q)-(r,s),c,b
Pour effacer le contenu d'une fenêtre avant d'afficher le texte suivant, il suffit alors d'utiliser une instruction comme line(a,b)-(c,d),c,bf, les 4 points a,b,c,d étant situés à l'intérieur de la fenêtre.
Pour éviter de toujours tout recopier, mettre les textes dans des chaînes de caractères et créer des routines d'affichage et d'effacement qu'on appelle par GOSUB. Edité par Visiteur Le 16/07/2012 à 10h25
Metalion :
Cette possibilité n'existe pas en BASIC MSX.
Elle est facile à recréer avec l'instruction LOCATE (qui existe), mais tu n'auras pas la gestion automatique du défilement dans la fenêtre, ce sera à toi à le programmer.
Elle est facile à recréer avec l'instruction LOCATE (qui existe), mais tu n'auras pas la gestion automatique du défilement dans la fenêtre, ce sera à toi à le programmer.
Note que, en y réfléchissant, si on peut gérer l'effacement de la fenêtre, le reste est assez facile pour autant qu'on maîtrise la longueur des textes affichés. Et l'effacement de la fenêtre peut être facilement fait, soit par la combinaison de LOCATE et de PRINT " ", soit par une petite routine en assembleur (assez facile).
MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
Est-ce qu'il n'y a pas comme sur VG5000µ des codes videotext ou VT52/VT100 ?
En effet, sur VG5000µ un PRINT CHR$(xx) peut effacer la ligne, peut effacer l'écran après le curseur, peut effacer l'écran complet...
Même un POKE qui déclencherai ces actions pourrait aller...
A la page 213 de la pratique du MSX2, il y a la description des codes VT-52 pour MSX2... mais est-ce que çà marche sur MSX1 ?
En effet, sur VG5000µ un PRINT CHR$(xx) peut effacer la ligne, peut effacer l'écran après le curseur, peut effacer l'écran complet...
Même un POKE qui déclencherai ces actions pourrait aller...
A la page 213 de la pratique du MSX2, il y a la description des codes VT-52 pour MSX2... mais est-ce que çà marche sur MSX1 ?
MSX1: Yeno DPC-64 - Sanyo PHC-28S - Sanyo PHC-28L - Canon V20 - Sony HB-75F - Yeno MX-64
MSX2: Panasonic FS-A1F 128Ko RAM 128 Ko VRAM + Gotek + Gotek / Philips NMS 8255 Azerty
Carnivore 2 : 8Mb FlashROM ° 1024Ko RAM ° IDE ° FM-PAC(MSX Music)° SCC+
Wozblaster
Visiteur
Vagabond
Message : 0
ericb59 :
et si tu réduis la zone d'affichage avec un width20 par exemple, peut être qu'on peut écrire dans la zone extérieure avec des vpoke ?
Je ne pense pas que cela fonctionne comme cela : le screen 0 ou 1 est alors réduit à 20 caractères, de plus au centre de l'écran .... pas pratique du tout !
ericb59 :
et si tu réduis la zone d'affichage avec un width20 par exemple, peut être qu'on peut écrire dans la zone extérieure avec des vpoke ?
Excellente idée !
Cela fonctionne, je viens de vérifier.
Effectivement, la zone est centrée sur l'écran, mais le défilement automatique est bien pris en compte.
Par contre, un CLS efface tout l'écran, y compris ce qu'on y a écrit par VPOKE. Edité par Metalion Le 16/07/2012 à 10h45
MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
Je pense utiliser la méthode avec les codes VT-52.
C'est comme cela qu'a été programmé la version VG5000µ.
Après je peux voir pour des améliorations mais ce que j'essai de faire pour l'instant c'est un portage express à l'identique de la version Sanyo PHC-25 qui sera donc compatible MSX1 16Ko.
Après on verra...
Autre question pour les amateurs.
Est-ce qu'il y a une routine pour charger une image directement en VRAM et un utilitaire pour convertir une image windows BMP en données chargeable en direct sur l'écran du MSX ? Edité par DataPro Le 16/07/2012 à 11h02
C'est comme cela qu'a été programmé la version VG5000µ.
Après je peux voir pour des améliorations mais ce que j'essai de faire pour l'instant c'est un portage express à l'identique de la version Sanyo PHC-25 qui sera donc compatible MSX1 16Ko.
Après on verra...
Autre question pour les amateurs.
Est-ce qu'il y a une routine pour charger une image directement en VRAM et un utilitaire pour convertir une image windows BMP en données chargeable en direct sur l'écran du MSX ? Edité par DataPro Le 16/07/2012 à 11h02
MSX1: Yeno DPC-64 - Sanyo PHC-28S - Sanyo PHC-28L - Canon V20 - Sony HB-75F - Yeno MX-64
MSX2: Panasonic FS-A1F 128Ko RAM 128 Ko VRAM + Gotek + Gotek / Philips NMS 8255 Azerty
Carnivore 2 : 8Mb FlashROM ° 1024Ko RAM ° IDE ° FM-PAC(MSX Music)° SCC+
Wozblaster
DataPro :
Est-ce qu'il y a une routine pour charger une image directement en VRAM ?
BLOAD"xxxx.xx",S
DataPro :
et un utilitaire pour convertir une image windows BMP en données chargeable en direct sur l'écran du MSX ?
BMP2MSX
http://www5d.biglobe.ne.jp/~hra/software/bmptomsx/index.htm
MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
Visiteur
Vagabond
Message : 0
Il y a aussi un convertisseur d'écran en ligne :
http://msx.jannone.org/conv/
Convertir au préalable la BMP en PNG, GIF ou JPG. Edité par Visiteur Le 16/07/2012 à 11h10
http://msx.jannone.org/conv/
Convertir au préalable la BMP en PNG, GIF ou JPG. Edité par Visiteur Le 16/07/2012 à 11h10
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie