L'atelier Cartouche quick-save/load I have a dream

Salut,
J'ai toujours adoré le système de sauvegarde de l'état du CPU qu'on peut trouver dans les émulateurs et qui permet de sauvegarder / recharger facilement l'état d'avancement de n'importe quel jeu.
Du coup, je me suis demandé : « mais est-ce faisable sur un vrai MSX à partir d'une cartouche spéciale ? »
Je pense que non, mais j'attends l'avis des spécialistes.
Il faudrait que quand on appuie sur un bouton de la cartouche, le CPU s'arrête (?), qu'on enregistre la valeur des registres dans une mémoire de la cartouche (?), puis qu'on y transfert le contenu de la RAM et de la VRAM.
Pour recharger une partie, il suffirait de faire le processus inverse.
Autant pour le transfert de la RAM et de la VRAM, je pense pas que ça pose problème, autant je vois vraiment pas comment on peut interrompre le code du jeu et surtout, sans modifier la valeur des registres.
Je suppose que si c'était possible, ça aurait déjà était fait.
J'ai toujours adoré le système de sauvegarde de l'état du CPU qu'on peut trouver dans les émulateurs et qui permet de sauvegarder / recharger facilement l'état d'avancement de n'importe quel jeu.
Du coup, je me suis demandé : « mais est-ce faisable sur un vrai MSX à partir d'une cartouche spéciale ? »
Je pense que non, mais j'attends l'avis des spécialistes.
Il faudrait que quand on appuie sur un bouton de la cartouche, le CPU s'arrête (?), qu'on enregistre la valeur des registres dans une mémoire de la cartouche (?), puis qu'on y transfert le contenu de la RAM et de la VRAM.
Pour recharger une partie, il suffirait de faire le processus inverse.
Autant pour le transfert de la RAM et de la VRAM, je pense pas que ça pose problème, autant je vois vraiment pas comment on peut interrompre le code du jeu et surtout, sans modifier la valeur des registres.
Je suppose que si c'était possible, ça aurait déjà était fait.

On est toujours ignorant avant de savoir.

Je me suis deja penché sur le probleme avec mon project de consolisation Je ne pense pas que ce soit realisable pour le moment. Mais la solution m'interresse. Pas de mon niveau helas

Mon Github -> github.com/msxlegend
challenge 2013 -> neodream MSX 2013
Concepteur du -> KCX Bluetooth transmitter
Demo Terminator2 T2.zip

De mon coté, lors de mes expérimentations [RESOLU] AUDIO Stéréo / VIDEO Screen 8 (Real Time Movie)
J'avais pensé à une solution "Radicale" qui permettrait de sauvegarder (à la volée) le FLUX du Color Bus d'un film joué sur un 8280 et sauvegardé sur un fichier. Il est tout à fait envisageable de le faire sur émulateur si un Z80 n'est pas assez performant.
Une fois le fichier contenant le Flux du [Color Bus] sauvegardé, il suffirait de jouer ce flux sur n'importe quel MSX2 pour visualiser un Film en direct live en SCREEN8 simplement affiché par le VDP.
La grande question étant:
1) Sachant qu'un Z80 arrive à lire un PCM en 44Khz 8 Bits en mono soit => 44100 X 8 X 1 => 352 800 Bits par seconde.
Nb: C'est le flux (vitesse de lecture) maximum que j'ai pu atteindre avec mon 8250 en 60Hz avec le mode [No Wait] enclenché.
2) Combien de Bits par seconde nécessite un flux vidéo en Screen 8 soit => [Résolution 256 X 212=> 54 272] X [Frames ??? => ??? ??? Bits par seconde.
Voici le calcul (hypothétique) que j'ai posé: 352 800 Bits / 54 272 Bits => 6,500589.....
Soit 6,5 images par seconde!
Ca reste très hypothétique et incomplet, c'est pour ca que j'en avais pas parlé.
Je me permet de poser ca ici puisque ca rejoint l'idée de Aoineko
J'avais pensé à une solution "Radicale" qui permettrait de sauvegarder (à la volée) le FLUX du Color Bus d'un film joué sur un 8280 et sauvegardé sur un fichier. Il est tout à fait envisageable de le faire sur émulateur si un Z80 n'est pas assez performant.
Une fois le fichier contenant le Flux du [Color Bus] sauvegardé, il suffirait de jouer ce flux sur n'importe quel MSX2 pour visualiser un Film en direct live en SCREEN8 simplement affiché par le VDP.
La grande question étant:
1) Sachant qu'un Z80 arrive à lire un PCM en 44Khz 8 Bits en mono soit => 44100 X 8 X 1 => 352 800 Bits par seconde.
Nb: C'est le flux (vitesse de lecture) maximum que j'ai pu atteindre avec mon 8250 en 60Hz avec le mode [No Wait] enclenché.
2) Combien de Bits par seconde nécessite un flux vidéo en Screen 8 soit => [Résolution 256 X 212=> 54 272] X [Frames ??? => ??? ??? Bits par seconde.
Voici le calcul (hypothétique) que j'ai posé: 352 800 Bits / 54 272 Bits => 6,500589.....
Soit 6,5 images par seconde!
Ca reste très hypothétique et incomplet, c'est pour ca que j'en avais pas parlé.
Je me permet de poser ca ici puisque ca rejoint l'idée de Aoineko

C'est déjà possible sur Turbo R avec Megamu :
http://www.msxvillage.fr/forum/topic.php?id=1045#m19357
Je ne pense pas qu'il peut sauvegarder la palette des couleurs du VDP par contre.
Quant à faire ça avec une cartouche, ça doit être compliqué à faire car il y a plein de configurations différentes de MSX.
http://www.msxvillage.fr/forum/topic.php?id=1045#m19357
Je ne pense pas qu'il peut sauvegarder la palette des couleurs du VDP par contre.
Quant à faire ça avec une cartouche, ça doit être compliqué à faire car il y a plein de configurations différentes de MSX.

GDX :
Quant à faire ça avec une cartouche, ça doit être compliqué à faire car il y a plein de configurations différentes de MSX.
Si on pouvait sauvegarder (puis restaurer) l'intégralité du contenu des registres, de la RAM et de la VRAM, ça devrait marche, quelque soit le MSX, non ?
On pourrait pas sauvegarder sur un MSX et restaurer sur un autre, mais bon, déjà pouvoir le faire sur un même MSX, ça serait top.
Pour moi, les questions centrales sont :
- Est-il possible d'interrompre complétement le déroulement d'un programme via l'appui d'un bouton sur une cartouche ?
- Est-il possible de récupérer la valeur de tous les registres sans perte d'info ? (J'ai peur qu'on écrase la valeur des registres en voulant récupérer leur valeur)
- Peut-on lire et surtout écrire dans n'importe quel registre ?
On est toujours ignorant avant de savoir.
il y a un programme qui fait ce genre de travail mais il est en cassette :Odin de Loriciels odin.rar
il faut bien sur l'implanter dans la ram pour le faire tourner
le moniteur permet de voir les registres , les points d'arrêt et la sauvegarde de la mémoire
cette version se lance d'une disquette et on a la choix de l'adresse d'implantation en mémoire
la partie assembleur est restée sur cassette
il faut bien sur l'implanter dans la ram pour le faire tourner
le moniteur permet de voir les registres , les points d'arrêt et la sauvegarde de la mémoire
cette version se lance d'une disquette et on a la choix de l'adresse d'implantation en mémoire
la partie assembleur est restée sur cassette
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie