L'atelier [RESOLU] "NO WAIT" OUTPUT - S3527 - 10% de cycles CPU très simplement
Reprise du message précédent
Moi, je trouve que la différence est à peine remarquable sur les vidéos mais c'est déjà ça de pris. Tout ce travail est quand même bien utile pour comprendre les entrailles du MSX.igal :
Voici le résulta des testes.
- Bosconian - Star Destroyer (Namco) : Le titre Bosconian est-il entièrement rouge ?
Le quart supérieur de la lettre B de BOSCONIAN est rouge lorsque le WAIT est désactivé.
En activant à chaud le WAIT, la partie rouge devient blanche.
Nb: Le Titre est en blanc, pas en rouge. (quelque soit la position du switch WAIT On ou Off)
Voici le résulta des testes.
- Bosconian - Star Destroyer (Namco) : Le titre Bosconian est-il entièrement rouge ?
Le quart supérieur de la lettre B de BOSCONIAN est rouge lorsque le WAIT est désactivé.
En activant à chaud le WAIT, la partie rouge devient blanche.
Nb: Le Titre est en blanc, pas en rouge. (quelque soit la position du switch WAIT On ou Off)
Je suis formel. Sur un MSX japonais à 60Hz les lettres de BOSCONIAN sont entièrement rouges comme sur le jeu d'arcade.
igal :
- Seleniak (Guzuta Raster Leisure) (La rom M1) : Jouable ?
Présente strictement les mêmes symptomes que Space Manbow...
De très nombreux parasites à l'écran!
(Il reste cependant tout à fait jouable au sens stricte du Gameplay!)
- Seleniak (Guzuta Raster Leisure) (La rom M1) : Jouable ?
Présente strictement les mêmes symptomes que Space Manbow...
De très nombreux parasites à l'écran!
(Il reste cependant tout à fait jouable au sens stricte du Gameplay!)
Désolé, je me suis trompé. Ce n'est pas la ROM M1 mais l'autre version qu'il fallait tester. C'est indiqué dans la doc. La version M1 est une version modifiée pour fonctionner même si les timing sont différents d'un MSX d'origine. La version M1 fonctionne mais avec quelques défauts dans le son et les graphismes.
igal :
- Retaliot (Video Hazard Electronic) : Jouable ?
Complètement buggé avec ou sans WAIT!
J'ai essayé plusieurs options differentes, mais impossible de jouer.
- Retaliot (Video Hazard Electronic) : Jouable ?
Complètement buggé avec ou sans WAIT!
J'ai essayé plusieurs options differentes, mais impossible de jouer.
On dit que le développeur a mis une protection comme pour Seleniak. Le jeu n'est pas jouable si les timing changent. Peut-être qu'il marche que sur un MSX à 60Hz. Je n'ai pas testé à 50Hz.
igal :
- Sweet Acorn : Pas de problème de son dans certains stages ?
J'ai pas remarqué de pb particulier dans la musique!
J'ai pas dépassé le premier stage (pas assez patient lol)
- Sweet Acorn : Pas de problème de son dans certains stages ?
J'ai pas remarqué de pb particulier dans la musique!
J'ai pas dépassé le premier stage (pas assez patient lol)
Lorsque les timing sont faux, il arrive que la musique ne soit pas audible à partir du stage 2.
igal :
- Shuffle Puck : Jouable ?
A peine plus rapide qu'en normal...
Il est un peu plus rapide... le jeu est déja trop rapide même avec le WAIT.
- Shuffle Puck : Jouable ?
A peine plus rapide qu'en normal...
Il est un peu plus rapide... le jeu est déja trop rapide même avec le WAIT.
OK.
igal :
- Compile Gamecase (JAM) : : Le logo apparait-il normalement ?
Le logo apparait un peu plus rapidement.
Flashé avec la commande /K. Le jeu ne se lance pas...Juste un message S.O.S et retour au logo!
- Activision Gamecase (JAM) : Le logo apparait-il normalement ?
Le logo apparait un peu plus rapidement.
Flashé avec la commande /K. Le jeu ne se lance pas...Juste un message (pas S.O.S) et retour au logo!
- Compile Gamecase (JAM) : : Le logo apparait-il normalement ?
Le logo apparait un peu plus rapidement.
Flashé avec la commande /K. Le jeu ne se lance pas...Juste un message S.O.S et retour au logo!
- Activision Gamecase (JAM) : Le logo apparait-il normalement ?
Le logo apparait un peu plus rapidement.
Flashé avec la commande /K. Le jeu ne se lance pas...Juste un message (pas S.O.S) et retour au logo!
Faudrait essayer en 60hz.
igal :
Par curiosité, j'ai testé Manbow 2 et aucun parasite!
Pourtant le moteur graphique est le même que Space Manbow je crois
Par curiosité, j'ai testé Manbow 2 et aucun parasite!
Pourtant le moteur graphique est le même que Space Manbow je crois
Le moteur graphique n'est pas le même.
igal :
Si vous avez une solution pour faire tourner Space Manbow en Rom 50 Hz, je suis preneur
Si je me souviens bien, il y a une interruption ligne avec en même temps, un changement de mode d'écran pour afficher le score. En 50Hz, ça doit déconner encore plus. Ça serait amusant de voir ce que ça donne. Edité par GDX Le 22/11/2011 à 14h03
igal
Membre non connecté
Conseiller Municipal
Fabf :
Et à part les jeux on sent une différence ?
Une boucle en basic ou un dir sous dos par exemple
Une boucle en basic ou un dir sous dos par exemple
Salut Fabf...
En fait lorsque tu fais un DIR sous dos, les noms des fichiers sont affichés de façon incohérente.
Manque de lettres dans les titres, ou encore lettre en quadruple etc...
Pour ce qui est du Basic, voici un bref extrait de la Démo Zelda MSX2 , avec le fond musical en 60Hz.
Les deux premier couplets sont à une allure normale WAIT actif...Le troisième couplet quant à lui est sensiblement plus rapide!
igal
Membre non connecté
Conseiller Municipal
Effectivement, j'étais très étonné de voir que même en screen 0, 80 colonnes, le VDP puisse avoir du retard sur un simple affichage de caractères ASCII
Heureusement, une simple bascule de l'interrupteur, et tout rentre dans l'ordre.
@GDX. Toi qui aime bien mettre les mains dans les Roms, t'aurais pas une solution pour forcer Space Manbow .ROM en 50 Hz?
Un truc du genre...
1) Tu lances l'editeur hex ....
2) Tu cherches l'expression MA CH IN CH OU ET TE
3) Tu remplaces par TR UC MU GE
Tu flash et le tour est joué!
Comme j'sais pas ou j'ai mal , je voudrais forcer le 60 Hz cette fois, pour Manbow 2
Il tourne en 50Hz à l'origine. Peut être pour tourner sur les vieux TV!? lol
Merci
Heureusement, une simple bascule de l'interrupteur, et tout rentre dans l'ordre.
@GDX. Toi qui aime bien mettre les mains dans les Roms, t'aurais pas une solution pour forcer Space Manbow .ROM en 50 Hz?
Un truc du genre...
1) Tu lances l'editeur hex ....
2) Tu cherches l'expression MA CH IN CH OU ET TE
3) Tu remplaces par TR UC MU GE
Tu flash et le tour est joué!
Comme j'sais pas ou j'ai mal , je voudrais forcer le 60 Hz cette fois, pour Manbow 2
Il tourne en 50Hz à l'origine. Peut être pour tourner sur les vieux TV!? lol
Merci
Pour mettre Space Manbow à 50 Hz, il faut changer les octets suivants.
00A40 : 80 -> 82
066CA : 00 -> 02
13063 : 80 -> 82
C'est possible qu'il y ait d'autres endroits à modifier. Il faut tester le jeu jusqu'à la fin pour le savoir.
Space Manbow fonctionne mieux que je l'imaginai à 50 Hz. Seul le son de la demo se coupe avant la fin et l'interruption ligne sous le score ne se fait plus proprement. Ça se voit à partir du stage 2.
00A40 : 80 -> 82
066CA : 00 -> 02
13063 : 80 -> 82
C'est possible qu'il y ait d'autres endroits à modifier. Il faut tester le jeu jusqu'à la fin pour le savoir.
Space Manbow fonctionne mieux que je l'imaginai à 50 Hz. Seul le son de la demo se coupe avant la fin et l'interruption ligne sous le score ne se fait plus proprement. Ça se voit à partir du stage 2.
igal
Membre non connecté
Conseiller Municipal
Merci GDX.
J'ai pu faire l'essai qui m’intéressait à savoir lancer la ROM depuis la Mégaflash 55Nano en 50Hz avec le mode "No Wait".
Je me rend compte que contrairement à ce que je pensai, les "parasite" ne s'affichent pas de façon anarchique, mais il y a une sorte de balayage de l'écran.
Dit avec un dessin, ces parasites se déplacent rapidement et de façon très régulière en balayant l'écran comme sur le schéma ci dessous.
La partie en Orange (High Score), n'est jamais parasité!
Les diagonales vertes schématisent la quantité et le positionnement de ces parasite
En rouge, les flèches indiquent le sens de déplacement.
Le tout se fait très rapidement, et c'est d'ailleurs la raison pur laquelle, j'ai voulu tester le jeu en 50 Hz.
Contrairement à ce que je pensai, il ne s'agit pas de blocs aléatoires, mais bien d'une répétition du même "Bloc" en déplacement rapide comme décrit par les pointillés verts, jusqu'à ce qu'il soit remplacé par un autre "Bloc".
Il peut y avoir 2 ou 3 "Bloc" différents, simultanément dans l'écran.
Je sais pas si c'est parlant pour certains, mais une idée peut être concernant la partie de l'image qui n'est pas touchée par ces symptômes.
@Gdx: Merci pour ta solution
Je voudrais voir si Manbow 2 génère lui aussi des "parasites" si il est soumis à un cycle VDP plus rapide.
J'ai bien essayé de lancer la version Hackée sur la Flashrom en utilisant l'option OPF /6 /X.
Je bascule bien en 60Hz sous OPX, mais une fois la ROM lancée, il semblerait que le rafraîchissement rebascule en 50Hz.
T'aurais pas une solution ? Edité par igal Le 24/11/2011 à 12h37
J'ai pu faire l'essai qui m’intéressait à savoir lancer la ROM depuis la Mégaflash 55Nano en 50Hz avec le mode "No Wait".
Je me rend compte que contrairement à ce que je pensai, les "parasite" ne s'affichent pas de façon anarchique, mais il y a une sorte de balayage de l'écran.
Dit avec un dessin, ces parasites se déplacent rapidement et de façon très régulière en balayant l'écran comme sur le schéma ci dessous.
La partie en Orange (High Score), n'est jamais parasité!
Les diagonales vertes schématisent la quantité et le positionnement de ces parasite
En rouge, les flèches indiquent le sens de déplacement.
Le tout se fait très rapidement, et c'est d'ailleurs la raison pur laquelle, j'ai voulu tester le jeu en 50 Hz.
Contrairement à ce que je pensai, il ne s'agit pas de blocs aléatoires, mais bien d'une répétition du même "Bloc" en déplacement rapide comme décrit par les pointillés verts, jusqu'à ce qu'il soit remplacé par un autre "Bloc".
Il peut y avoir 2 ou 3 "Bloc" différents, simultanément dans l'écran.
Je sais pas si c'est parlant pour certains, mais une idée peut être concernant la partie de l'image qui n'est pas touchée par ces symptômes.
@Gdx: Merci pour ta solution
Je voudrais voir si Manbow 2 génère lui aussi des "parasites" si il est soumis à un cycle VDP plus rapide.
J'ai bien essayé de lancer la version Hackée sur la Flashrom en utilisant l'option OPF /6 /X.
Je bascule bien en 60Hz sous OPX, mais une fois la ROM lancée, il semblerait que le rafraîchissement rebascule en 50Hz.
T'aurais pas une solution ? Edité par igal Le 24/11/2011 à 12h37
Si j'ai tout bien compris, la suppression du signal WAIT augmente "seulement" la vitesse d'accès à la RAM. Tous les problèmes que tu rencontres avec les jeux (et particulièrement Space Manbow) sont simplement une conséquence directe de cette augmentation de vitesse.
Pour la réalisation d'effets graphiques et sonores rapides dans les jeux en assembleurs, on est rapidement confronté à la limite des accès I/O avec les périphériques. Il y a deux façons de contourner le problème : soit on attend que le périphérique soit prêt pour lancer la prochaine commande (mais alors on perd du temps en boucle d'attente, et parfois on ne peut même pas savoir que le périphérique est prêt), soit on construit le programme avec suffisamment de précision pour que chaque accès I/O intervienne exactement au moment où le périphérique est prêt.
Cette dernière option est très efficace, mais elle est plutôt difficile à mettre en oeuvre.
Mais, quand elle est mise en oeuvre, elle est très dépendante (évidemment) du timing d'exécution des instructions entre chaque accès I/O. En accélérant l'accès à la RAM, on diminue le temps d'éxécution des instructions qui y accèdent, et on modifie donc le timing précis construit par le programmeur.
Ces parasites en sont la conséquence directe : la synchronisation voulue par le programmeur entre le Z80 et le VDP est perturbée, et il y a un décalage entre le timing des actions prévues et leur réalisation. Edité par Metalion Le 24/11/2011 à 14h11
Pour la réalisation d'effets graphiques et sonores rapides dans les jeux en assembleurs, on est rapidement confronté à la limite des accès I/O avec les périphériques. Il y a deux façons de contourner le problème : soit on attend que le périphérique soit prêt pour lancer la prochaine commande (mais alors on perd du temps en boucle d'attente, et parfois on ne peut même pas savoir que le périphérique est prêt), soit on construit le programme avec suffisamment de précision pour que chaque accès I/O intervienne exactement au moment où le périphérique est prêt.
Cette dernière option est très efficace, mais elle est plutôt difficile à mettre en oeuvre.
Mais, quand elle est mise en oeuvre, elle est très dépendante (évidemment) du timing d'exécution des instructions entre chaque accès I/O. En accélérant l'accès à la RAM, on diminue le temps d'éxécution des instructions qui y accèdent, et on modifie donc le timing précis construit par le programmeur.
Ces parasites en sont la conséquence directe : la synchronisation voulue par le programmeur entre le Z80 et le VDP est perturbée, et il y a un décalage entre le timing des actions prévues et leur réalisation. Edité par Metalion Le 24/11/2011 à 14h11
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)
igal
Membre non connecté
Conseiller Municipal
@Gdx: Je comprends tout à fait ce que tu dis.
En fait Manbow2 ne se contente pas de "Laisser" le VDP à 50Hz, mais il le fait basculer volontairement.
A contrario, les Jeux MSX1 comme Némesis 2 etc, ne forçant pas la bascule à 50Hz, il suffit de basculer le VDP en 60Hz avec OPF pour que celui-ci y reste
@Métalion: En extrapolant ce que tu dis, il faudrait comprendre que.
Selon la méthode de programmation,[Précision du programme] ou [Attente du périphérique] cela peut être la cause des "parasites"!
Cela voudrait dire que certains concepteurs de jeux, iraient jusqu'à "estimer" le nombre de cycles nécessaire à tel ou tel opération, entre tel ou tel périphérique, et adapter le programme en conséquence pour pousser au maximum des possibilités du MSX, et que SpaceManbow en serait le parfait exemple Edité par igal Le 24/11/2011 à 17h53
En fait Manbow2 ne se contente pas de "Laisser" le VDP à 50Hz, mais il le fait basculer volontairement.
A contrario, les Jeux MSX1 comme Némesis 2 etc, ne forçant pas la bascule à 50Hz, il suffit de basculer le VDP en 60Hz avec OPF pour que celui-ci y reste
@Métalion: En extrapolant ce que tu dis, il faudrait comprendre que.
Selon la méthode de programmation,[Précision du programme] ou [Attente du périphérique] cela peut être la cause des "parasites"!
Cela voudrait dire que certains concepteurs de jeux, iraient jusqu'à "estimer" le nombre de cycles nécessaire à tel ou tel opération, entre tel ou tel périphérique, et adapter le programme en conséquence pour pousser au maximum des possibilités du MSX, et que SpaceManbow en serait le parfait exemple Edité par igal Le 24/11/2011 à 17h53
igal :
Cela voudrait dire que certains concepteurs de jeux, iraient jusqu'à "estimer" le nombre de cycles nécessaire à tel ou tel opération, entre tel ou tel périphérique, et adapter le programme en conséquence pour pousser au maximum des possibilités du MSX, et que SpaceManbow en serait le parfait exemple
Exactement.
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)
igal
Membre non connecté
Conseiller Municipal
Le module COVOX et PLAYSMP 2.21.
Voici un autre périphérique profitant plaienement du NO WAIT puisque ce MODE permet l'écoute de Musiques .PCM à un taux de 44Khz et ce à la perfection
Voici quelques extraits du rendu audio impossible sans le mode NO WAIT.
MSX 44Khz Mono:
http://igalsirour.hautetfort.com/media/01/00/262895484.mp3
PC 44 Khz Mono:
http://igalsirour.hautetfort.com/media/02/00/881861460.mp3
GRANDIA II:
MSX 44Khz Mono:
http://igalsirour.hautetfort.com/media/00/00/919604881.mp3
PC 44 Khz Mono:
http://igalsirour.hautetfort.com/media/02/01/3413464983.mp3
Je posterai prochainement un extrait ou je basculerai en temps réel entre le Mode NO WAIT activé et désactivé
Voici un autre périphérique profitant plaienement du NO WAIT puisque ce MODE permet l'écoute de Musiques .PCM à un taux de 44Khz et ce à la perfection
Voici quelques extraits du rendu audio impossible sans le mode NO WAIT.
MSX 44Khz Mono:
http://igalsirour.hautetfort.com/media/01/00/262895484.mp3
PC 44 Khz Mono:
http://igalsirour.hautetfort.com/media/02/00/881861460.mp3
GRANDIA II:
MSX 44Khz Mono:
http://igalsirour.hautetfort.com/media/00/00/919604881.mp3
PC 44 Khz Mono:
http://igalsirour.hautetfort.com/media/02/01/3413464983.mp3
Je posterai prochainement un extrait ou je basculerai en temps réel entre le Mode NO WAIT activé et désactivé
igal
Membre non connecté
Conseiller Municipal
Je vous propose de constater par vous même le gain de vitesse du mode "NO WAIT".
Voici une Vidéo qui dure dans son interprétation "Normale" 9 Minutes et 57 Secondes. (597 Secondes)
La lecture est faite sur PC avec un Frame Rate connu de 24 par seconde.
La même vidéo une fois convertie en EVA et lue sur MSX avec le mode "NO WAIT" enclenché ne dure plus que 9 Minutes et 5 secondes. (545 Secondes)
Nb: La vidéo commence à la seconde 6 et se termine à 9 Minutes 11 secondes (à quelques dixièmes près)
Visualisé en 320 / 240
En théorie, le MSX doit lire 12 Frames par seconde.
Normale => 9 Min 57 Sec => 540 + 57 => 597 Secondes X 12Fps => 7164 frames lues en 9 Minutes et 57 Secondes.
Le nombre de Frames est donc de 7164.
(Petite remarque: Remarquez le superbe rendu du ruisseau )
Quel est le Gain obtenu grâce au mode "NO WAIT"?
Le mode "NO WAIT" permet une lecture des 7164 frames en seulement 545 Secondes.(contre 597 secondes en Normal)
7164Frames Divisées par 545 Secondes => 13 Frames environs...Soit 10% de gain réel
Je ferais un essais en créant un EVA avec la commande:
avi2eva nom.avi nom.eva -fps13 -dither
Au lieu de:
avi2eva nom.avi nom.eva -fps12 -dither
Concrètement, lorsque j'active le mode "NO WAIT", les sons sont plus aigus et les musiques plus rapides.
Cela confirme bien une lecture accélérée du nombre de frames par secondes
A suivre Edité par igal Le 27/03/2012 à 14h01
Voici une Vidéo qui dure dans son interprétation "Normale" 9 Minutes et 57 Secondes. (597 Secondes)
La lecture est faite sur PC avec un Frame Rate connu de 24 par seconde.
La même vidéo une fois convertie en EVA et lue sur MSX avec le mode "NO WAIT" enclenché ne dure plus que 9 Minutes et 5 secondes. (545 Secondes)
Nb: La vidéo commence à la seconde 6 et se termine à 9 Minutes 11 secondes (à quelques dixièmes près)
Visualisé en 320 / 240
En théorie, le MSX doit lire 12 Frames par seconde.
Normale => 9 Min 57 Sec => 540 + 57 => 597 Secondes X 12Fps => 7164 frames lues en 9 Minutes et 57 Secondes.
Le nombre de Frames est donc de 7164.
(Petite remarque: Remarquez le superbe rendu du ruisseau )
Quel est le Gain obtenu grâce au mode "NO WAIT"?
Le mode "NO WAIT" permet une lecture des 7164 frames en seulement 545 Secondes.(contre 597 secondes en Normal)
7164Frames Divisées par 545 Secondes => 13 Frames environs...Soit 10% de gain réel
Je ferais un essais en créant un EVA avec la commande:
avi2eva nom.avi nom.eva -fps13 -dither
Au lieu de:
avi2eva nom.avi nom.eva -fps12 -dither
Concrètement, lorsque j'active le mode "NO WAIT", les sons sont plus aigus et les musiques plus rapides.
Cela confirme bien une lecture accélérée du nombre de frames par secondes
A suivre Edité par igal Le 27/03/2012 à 14h01
MSXlegend
Membre non connecté
Conseiller Municipal
Je viens a l'instant de finir la mise en place d'un switch pour le "no wait" et ça fonctionne à la perfection
J'ai fait un test avec et sans sur un morceau musical de 40Khz sur speed 00 (le max). Autant c'est lent en normal, par contre le gain de vitesse est extraordinaire en desactivant le wait. Chapeau Igal pour cette trouvaille
J'ai fait un test avec et sans sur un morceau musical de 40Khz sur speed 00 (le max). Autant c'est lent en normal, par contre le gain de vitesse est extraordinaire en desactivant le wait. Chapeau Igal pour cette trouvaille
igal
Membre non connecté
Conseiller Municipal
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie