MSX Village forum

La Place des Développeurs MSX2 recherche infos diverses

6502man Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 19/08/2013 à 18h14

Messages: 815

Le 19/08/2013 à 23h11
Salut à tous,

Je recherche donc des infos sur les MSX2, pour le développement d'un jeu !

Machine ciblè : MSX2 avec floppy (minimum)

Configuration minimum connu:
  • 64K RAM
  • 128K VRAM
  • BASIC DOS



Donc je recherche dans un premier temps:

- comment compresser une image SCREEN 5 pour être charger par le BASIC de manière rapide (plus rapide que par BLOAD"image",S ?
Je sait convertir une image windows vers SR5 et la charger en Basic, mais d'une part c'est très long à charger et d'autres part je voudrais charger qu'une partie de l'image horizontalement ?

- et existe t'il dèja une routine ASM qui permettent de transférer un bloc d'octets de RAM vers VRAM ou VRAM vers VRAM très rapide ?

-quel est le mappage RAM normal d'un MSX2 de base , et pourquoi le Basic ne voit qu'une 20aine de Ko de RAM ?

- pour finir je me demande si il y a une différence de comportement sur les divers MSX2 ( euro, jap), (50/60Hz), (qwerty/azerty/kanji) ?

Voila merci d'avance pour vos infos.


Edité par 6502man Le 19/08/2013 à 23h20


Site web    
Visiteurs

Vagabond

Rang

Avatar

Message : 0

Le 20/08/2013 à 01h47
:lol c'est pas gagné mais vas y man j'aime bien les jeux :top
   
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5485

Le 20/08/2013 à 07h45
tu veux programmer en quoi ? Asm ou basic ?

pour la difference de comportement ordi jap/euro, à ma connaissance seul le 50/60hrz est differents, le reste est identique.

pour la partie de ton image, une fois affichée tu peux faire un
copy (x,y)-(x1,y1) to file$

file$ stant le nom d'un fichier vers lequel tu stock la partie de l'image concernée par le copy

ensuite tu fais l'operation inverse

copy file$ to (x,y)


banniere-ericb59e
Site web    
granced Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 09/10/2009 à 09h18

Messages: 1501

Le 20/08/2013 à 08h02
Accélérer la mise à l'écran de l'image je ne sais pas si c'est possible... :hum

C'est la vitesse du lecteur de disquette qui fait, je ne suis pas sûr que - pour une fois - le Basic soit plus lent que l'assembleur pour prendre une image à partir d'une disquette et l'afficher à l'écran.

Y a t'il des spécialistes qui en sauraient plus ?


MSX un jour, MSX toujours ! :D
Site web    
MSXlegend Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 18/06/2010 à 22h42

Messages: 5814

Le 20/08/2013 à 08h48
C'est un gros probleme en effet, la seule solution, oubli le lecteur de disquette et utilise plutot un disque dur type SD card ou compact flash. Il n y a pas d'autre solution car la cause c est le lecteur de disquette. Une methode cependant efficace, tu stocke l image dans la vram, puis tu permute les pages ou alors tu utilise la fonction copy. L'instruction CALL TURBO peux aussi s'averer utile.

La derniere solution, c'est d'avoir suffisement de ram, et de stocker toutes les images de la disquette dans celle ci! (un peu comme une ram disk) Edité par MSXlegend Le 20/08/2013 à 08h49


Createur du KCX Bluetooth emitter au format cartouche compatible stereo moonsound
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 20/08/2013 à 08h51
6502man :
Je recherche donc des infos sur les MSX2, pour le développement d'un jeu !


Bon, courage ! ;)



6502man :
- comment compresser une image SCREEN 5 pour être charger par le BASIC de manière rapide (plus rapide que par BLOAD"image",S ?[quote=6502man]

Peut-être le format MIF.



[quote=6502man]- et existe t'il dèja une routine ASM qui permettent de transférer un bloc d'octets de RAM vers VRAM ou VRAM vers VRAM très rapide ?


Dans le livre "Pratique du MSX2", il a une routine avec auto incrémentation. Il y a juste à définir l'adresse de début et envoyer les données une à une avec un OTIR. Il y a aussi d'autres méthode comme la commande COPY rapide du VDP. Ces routines sont un peu optimisable.



6502man :
-quel est le mappage RAM normal d'un MSX2 de base , et pourquoi le Basic ne voit qu'une 20aine de Ko de RAM ?


Le BIOS se place en 0000h ~ 3FFFh et la ROM de l'interpréteur du BASIC se place en 4000h ~ 7FFFh. Il reste donc 32Ko de RAM visible par le CPU. Il faut y soustraire la zone de travail et les variables du système (BIOS et BASIC).

En plus du plan de la mémoire, il vaut aussi comprendre ce que sont les SLOT si tu veux programmer en assembleur.



Plan de la mémoire :

http://www.msx.org/wiki/System_variables,_code_%26_hooks_in_RAM_after_boot



Fonctionnement des SLOT :

http://www.msxvillage.fr/forum/topic.php?id=1243



6502man :
- pour finir je me demande si il y a une différence de comportement sur les divers MSX2 ( euro, jap), (50/60Hz), (qwerty/azerty/kanji) ?


Oui, au niveau, de la police de caractères, matrice du clavier et du nombre d'images affichées par seconde. Edité par GDX Le 20/08/2013 à 08h58
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10356

Le 20/08/2013 à 13h08
regarde dans les jeux MSX2 , il y a de trés bons jeux avec de superbes images donc c'est possible a partir d'une disquette

il existe des compacteurs / décompacteurs d'images tout prêts genre : http://www.msx.org/downloads/utilities/graphics/bargain-1411


:noel
Site web    
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 20/08/2013 à 15h52
Le lien est mort.
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10356

Le 20/08/2013 à 16h11


:noel
Site web    
6502man Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 19/08/2013 à 18h14

Messages: 815

Le 20/08/2013 à 23h21
MERCI pour toutes vos réponses :|

Le COPY to FILE je ne connaissais pas et c'est une superbe fonction pour un Basic :)

Jipe: c'est exactement ce que je cherché :) :) :)

Le temps de chargement à était radicalement diminué avec cet utilitaire :)

Maintenant reste un problème a régler : cet utilitaire utilise la PAGE 0 pour charger les données et affiche sur la PAGE 1, mais j’utilise la PAGE 0 pour écrire et dessiner.
Lorsque je fixe l'écriture avec SET PAGE 1,1 l'image apparait bien et les dessins style LINE mais par contre le texte reste sur la PAGE 0 :(

J'ai une solution "bricolage" mais pas très esthétique et lente je trouve :

- éteindre l'affichage : VDP(1)=&HA0
- charger l'image compressée : BLOAD...
- exécuter la routine de décompression : USR...
- copier l'image de la PAGE 1 vers la PAGE 0 : COPY (0,0)-(....),1 to ...,1
- allumer l'affichage : VDP(1)=&HE0

Ca me parait pas terrible, il faut que je trouve autre choses ...




Site web    
Maggoo Membre non connecté

Touriste

Rang

Avatar

Inscrit le : 25/06/2013 à 17h49

Messages: 192

Le 21/08/2013 à 01h11
J'ai jamais utilise Bargain donc difficile a dire si il est possible d'utiliser une autre page que 0 pour la decompression. Mais si tu es en screen 5, tu peux aussi afficher la page 2 ou 3 pendant le chargement/decompression.

Pour accelerer les choses sous Basic, tu peux aussi utiliser le KUN Basic. Ca n'aide pas vraiment pour les chargements, mais pour les commandes COPY (X,Y) ca va quand meme bcp plus vite (a partir du moment ou les coordonnees sont un multiple de 2 --> Le Basic KUN utilise des "Byte copy" qui vont plus vite que les COPY sous basic traditionel.

Autre petit truc sous Basic pour accelerer (un peu) les choses: Inserer

10 DEF INT A-Z

en debut de programme. Tout les calculs se font sur des entiers plutot que sur des virgules flotantes a 14 digits. A eviter avec les routines de calculs, mais pour les jeux c'est parfois utile.
Site web    
6502man Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 19/08/2013 à 18h14

Messages: 815

Le 21/08/2013 à 22h58
Je connais pas ce Basic KUN !!!

Je connaissais le DEF INT ;)

Je vais essayer de trouver une solution pour les problèmes de PAGE 0 et 1 avec le PRINT !!!!



Site web    
Visiteurs

Vagabond

Rang

Avatar

Message : 0

Le 22/08/2013 à 00h42
6502man :
J'ai une solution "bricolage" mais pas très esthétique et lente je trouve :



- éteindre l'affichage : VDP(1)=&HA0

- charger l'image compressée : BLOAD...

- exécuter la routine de décompression : USR...

- copier l'image de la PAGE 1 vers la PAGE 0 : COPY (0,0)-(....),1 to ...,1

- allumer l'affichage : VDP(1)=&HE0



Ca me parait pas terrible, il faut que je trouve autre choses ...




c'est pas si mal ^^

gaffe au basic kun qui ne connait pas ttes les instructions du msx basic
   
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1487

Le 22/08/2013 à 07h30
BARGAIN n'est pas le seul utilitaire de compression, et ce n'est pas le plus simple à utiliser.

Il existe aussi PLETTER et BITBUSTER, qui ont l'avantage d'être des routines ASM de compression que l'on peut paramétrer : localisation de la routine, source, résultat ...


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

Villageois

Rang

Avatar

Inscrit le : 19/08/2013 à 18h14

Messages: 815

Le 23/08/2013 à 23h14
merci pour ces compresseur.

Mais pour l'instant je ne vais pas trop attaquer l'ASM Z80 (pas le temps).

Dans un premier temps je vais essayer de me débrouiller avec BARGAIN je devrais arriver à un résultat correct je pense.

J'ai une idée qui pourrais bien m'arranger : vue que l'on as 4 page en SCREEN 5 je vais stocker plusieurs images compressées dans la page2 et 3 et visualiser sur la page1, la page 0 étant réservé pour la décompression.....


Site web    
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie