MSX Village forum

La Place des Développeurs Citadelle sur MSX Après la version sur Sanyo PHC-25

DataPro Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 14/06/2011 à 10h12

Messages: 848

Le 15/07/2012 à 13h59
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


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 / Philips NMS8255 Azerty
Carnivore 2 : 8Mb FlashROM ° 1024Ko RAM ° IDE ° FM-PAC(MSX Music)° SCC+
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10344

Le 15/07/2012 à 14h18
on attends avec impatience ;)


:noel
Site web    
gradius Membre non connecté

Maire-adjoint

Rang

Avatar

Inscrit le : 06/10/2009 à 18h27

Messages: 613

Le 15/07/2012 à 14h27
Courage DataPro ! :top :oups


MSX Turbo-R FS A1GT - 1 Mo de RAM - Disque dur SCSI Syquest cartouches de 270 Mo - Lecteur CD. Musique, musique, musique et encore musique !
   
DataPro Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 14/06/2011 à 10h12

Messages: 848

Le 16/07/2012 à 08h32
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.


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 / Philips NMS8255 Azerty
Carnivore 2 : 8Mb FlashROM ° 1024Ko RAM ° IDE ° FM-PAC(MSX Music)° SCC+
   
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1487

Le 16/07/2012 à 09h27
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.



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

Rang

Avatar

Message : 0

Le 16/07/2012 à 09h51
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
   
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1487

Le 16/07/2012 à 10h05
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.


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)
   
DataPro Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 14/06/2011 à 10h12

Messages: 848

Le 16/07/2012 à 10h35
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 ?


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 / Philips NMS8255 Azerty
Carnivore 2 : 8Mb FlashROM ° 1024Ko RAM ° IDE ° FM-PAC(MSX Music)° SCC+
   
Visiteur

Vagabond

Rang

Avatar

Message : 0

Le 16/07/2012 à 10h36
Cela marche aussi sur MSX1, tu peux le tester dans blueMSX en lançant une machine MSX1.
   
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5485

Le 16/07/2012 à 10h39
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 ?


banniere-ericb59e
Site web    
Visiteur

Vagabond

Rang

Avatar

Message : 0

Le 16/07/2012 à 10h43
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 !
   
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1487

Le 16/07/2012 à 10h45
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)
   
DataPro Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 14/06/2011 à 10h12

Messages: 848

Le 16/07/2012 à 10h56
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


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 / Philips NMS8255 Azerty
Carnivore 2 : 8Mb FlashROM ° 1024Ko RAM ° IDE ° FM-PAC(MSX Music)° SCC+
   
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1487

Le 16/07/2012 à 11h02
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

Rang

Avatar

Message : 0

Le 16/07/2012 à 11h09
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
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie