MSX Village forum

La Place des Développeurs Capturer le contenu de la mémoire vidéo sur MSX

Wulfy Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 15/08/2010 à 22h46

Messages: 239

Le 27/03/2015 à 17h16
Bonjour à tous,

Vous souvenez-vous de ce code Basic qu'il fallait charger lorsque l'on désirait enregistrer dans un fichier image le contenu de la mémoire vidéo.

Dans mes souvenirs, il fallait lancer un jeu et au moment ou l'on voulait on faisait un Reset. Sous Basic il fallait alors entrer un code Basic pour afficher une page de la mémoire vidéo et ensuite un autre code pour enregistrer l'image dans un fichier SR5 ou SR8.

Je me souviens que j'ai fait ça de nombreuses fois pour récupérer les graphismes de Space Manbow par exemple et ainsi faire une démo avec un pote.

J'aimerais le faire à nouveau sur un MSX.

Si quelqu’un à ce fameux code !

Un grand merci à vous.
Site web    
TurboSEB Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 08/08/2010 à 20h57

Messages: 5794

Le 27/03/2015 à 18h55
En gros ça donne un truc comme celui là :

10 screen8 -> mode screen 5/6/7/8
20 copy (0,0)-(256,212),1 to (0,0),0 -> copie page 1 dans la page 0
30 set page 0 -> affiche page 0
40 Bsave "image.sc8",&h0,&hffff,s -> sauvegarde adresse page 0 dans fichier
50 goto 50

Note 1: la page 1 contient en général les données, la page 0 étant la page de "travail" et les autres pages 2 et 3(screen 5 et 7) sont en général vide selon mon expérience
Note 2: on peut tout aussi bien utiliser la fonction copy (0,0)-(256,212),1 to "image.scr"
Édit: après 25 ans de sommeil, je me suis forcément tromper sur un détail, genre adresse memoire, les virgules et le tirets, si qqun peu rectifier :oups
Édit 2: si un "sage" du village pouvait rappeller les adresses de sauvegarde des différentes page dans les différents screen, ça pourrait aider beaucoup :oups Edité par TurboSEB Le 27/03/2015 à 19h12



MSX 1&2 + Moniteurs+divers (environ 0.70Tonnes)
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10339

Le 27/03/2015 à 22h33
pas sur que ça marche bien a partir des 2 plus

les sony faisaient de la rétention de mémoire sur certains RESET

il vaut mieux avoir un jeu qui se lance sur disquette pour reprendre la main aprés le reset


:noel
Site web    
TurboSEB Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 08/08/2010 à 20h57

Messages: 5794

Le 27/03/2015 à 22h49
Une question: est-ce possible de shunter le reset des mémoires Vram en les alimentant ou en les sauvegardant avec une pipile ?



MSX 1&2 + Moniteurs+divers (environ 0.70Tonnes)
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10339

Le 28/03/2015 à 11h50
la mémoire vidéo est en DRAM (Dynamic Ram) et ne garde pas les données uniquement si on coupe l'alimentation
le reset ne coupe pas l'alim
le probléme des 2+ et au dessus c'est qu'il y a un systéme de remise a zéro des octets de la ram et c'est pour ça qu'il rendent la main a tout les coups sur le reset
a valider sur la VRAM


:noel
Site web    
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 28/03/2015 à 12h59
C'est possible de récupérer le contenu de la VRAM avec BlueMSX en faisant un Save State.
Le fichier STA créé est en fait un fichier ZIP. Ouvrez-le et récupérez le fichier VDP_00.
   
Wulfy Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 15/08/2010 à 22h46

Messages: 239

Le 28/03/2015 à 14h52
GDX :
C'est possible de récupérer le contenu de la VRAM avec BlueMSX en faisant un Save State.

Le fichier STA créé est en fait un fichier ZIP. Ouvrez-le et récupérez le fichier VDP_00.




En lançant BlueMSX j'ai vite fait un essai mais le VDP_00 est quel genre de format ?
Site web    
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 28/03/2015 à 15h15
C'est le contenu de la VRAM but, avec une entête de 02A8H octet. Par exemple, pour récupérer la page 0 du screen5, il faut extraire les 32 premiers Ko apres l'entête avec un éditeur hexa et ajouter l'entête FE 00 00 FF FF 00 00 (soit 7 octets) pour le lire sur MSX avec BLOAD"mon",S.

Edit : J'ai essayé sur CocoaMSX. L'entête faisait 0334H octets. Je me demande si elle est variable selon la configuguration. Edité par GDX Le 29/03/2015 à 08h51
   
Wulfy Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 15/08/2010 à 22h46

Messages: 239

Le 30/03/2015 à 15h06
TurboSEB :
En gros ça donne un truc comme celui là :



10 screen8 -> mode screen 5/6/7/8

20 copy (0,0)-(256,212),1 to (0,0),0 -> copie page 1 dans la page 0

30 set page 0 -> affiche page 0

40 Bsave "image.sc8",&h0,&hffff,s -> sauvegarde adresse page 0 dans fichier

50 goto 50





Bonjour,



J'ai bien essayé ton code mais cela ne semble pas fonctionner.
Site web    
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 30/03/2015 à 16h09
Essaie avec :

Code TEXT :
10 SCREEN8 'screen 5/6/7/8 possible
20 SETPAGE1,1 '2,2 ou 3,3 possible si screen 5/6
30 BSAVE "IMAGE.SC8",0,&HFFFF,S 'sauvegarde la page indiquée par le setpage


Il faut lancer le jeu MSX2~, faire Reset et lancer le programme basic ci-dessus. N'oublie pas que retirer une cartouche le MSX en marche peut faire des dégats. Edité par GDX Le 30/03/2015 à 16h16
   
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1487

Le 01/04/2015 à 20h46
Pareil que GDX : c'est une méthode qui présente beaucoup de risques !
Surtout avec nos machines qui ont maintenant un âge certain.

Beaucoup plus simple de le faire sous émulateur. Et sans risques.


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

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 08/08/2010 à 20h57

Messages: 5794

Le 01/04/2015 à 21h59
Ou d'utiliser, comme l'a deja indiquer Jipe, une version disquette du jeu ^^



MSX 1&2 + Moniteurs+divers (environ 0.70Tonnes)
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie