Lisez bien la FAQ. Pour poster un message ou poser une question, vous devez être enregistré. Vous n'êtes pas obligé d'être connecté pour lire les messages et voir les contenus.
Nous espérons que vous trouverez vos réponses ici, et n'hésitez pas à participer.
Bonne visite !
Sur ces forums, il est possible d'aborder n'importe quels sujets, de façon sérieuse ou pas !
Afin de préserver son harmonie et éviter les débordements, nous avons établi un ensemble de règles très simples que nous vous demandons de respecter.
1) Les thèmes suivants ne doivent jamais être abordés: La politique, La religion, La haine raciale, La pédophilie. Faites appel à votre bon sens pour éviter tout autre sujet susceptible de provoquer une polémique trop violente.
2) Ce forum est destiné à l'Abandonware (jeux a l'abandon) et le jeu vidéo. Les discussions ou liens vers un contenu illégal (piratage, désinformation, complotisme...), ou vers des contenus adultes, financiers, religieux... seront systématiquement effacés.
3) Ne publiez pas d'images dans vos messages qui pourraient choquer les autres visiteurs (rappel, le public peut être très jeune).
4) Lorsque vous lancez un sujet, veillez à ce qu'il soit dans le forum approprié (ne faites pas par exemple une requête dans le forum Discussion générale / Le bar des amis).
5) Il est souhaitable de ne pas faire dévier un sujet, ne serait-ce que par respect pour celui ou celle qui a lancé la discussion.
6) Avant de poser une question d'ordre (technique, requêtes...), assurez-vous qu'elle n'ait pas déjà été posé via la recherche.
6) Nous détestons le SPAM et le Flood ! Évitez donc de poster des messages inutiles et de façon répétée.
7) Peace and Love ! Les forums sont un endroit de détente, amusez-vous, ne vous prenez pas la tête inutilement en public.
8) Les administrateurs et modérateurs sont présents pour s'assurer que les règles et les personnes soient respectées. Leurs décisions sont elles-mêmes à respecter.
9) Ce forum n'est pas un téléphone portable ! Un forum est un lieu où on prend le temps, donc évitez le langage "texto/SMS". De plus, vos messages ne sont pas limités à 160 caractères, alors s'il vous plait, écrivez correctement ! Clairement, on ne va pas vous tomber dessus pour un "s" oublié ou pour un accord incorrect, mais pas de "g chrché c je pandan dé mwa"! Copiez-collez votre message dans Word pour profiter du correcteur orthographique, au besoin.
Ces règles sont très importantes, merci de les respecter ! En cas de non-respect, vous pourrez recevoir un avertissement, ou en fonction de la faute, être banni temporairement, voir définitivement du forum.
Merci à vous et bonnes discussions
Je n'arrive pas a faire tourner Zombi sur Dosbox. Je sais ca parait curieux, un grand classique comme ca, et personne n'aurait encore releve de probleme ? .... il n'y a qu'une explication: je dois faire une fausse manip'.
Mon probleme
J'utilise la derniere version de Dosbox, la 0.74, en mode CGA (la palette est plus adaptee). Le jeu se lance sans probleme: generique, splash screen, et puis l'ecran principal de jeu.
Et au bout de quelques seconde, l'image de FIN du jeu, celle ou tout le monde devient zombi.
Mon hypothese
Alors apres quelques recherches, j'ai trouve que Zombi utilise deux fonctions DOS (2Ch, et 2Dh; lire/ecrire la date systeme) pour la gestion du temps dans le jeu. Et si on en croit le source de Dosbox:
Code:
case 0x2d: /* Set System Time */
LOG(LOG_DOSMISC,LOG_ERROR)("DOS:Set System Time not supported");
//Check input parameters nonetheless
if( reg_ch > 23 || reg_cl > 59 || reg_dh > 59 || reg_dl > 99 )
reg_al = 0xff;
else reg_al = 0;
break;
Ah ben voila, donc c'est normal que le jeu ne fonctionne pas. Mais alors pourquoi le jeu aparait comme "supported" sur le site de Dosbox ?
En conclusion
Vous comprenez mon desarroi... alors est-ce que quelqu'un a reussi a faire tourner ce jeu sous Dosbox deja ? Est-ce qu'il existe plusieurs versions de Zombi en abandonware et j'aurais telecharge la mauvaise ?
Je te recommanderais de jouer à la version Atari ST ou Amiga via émulateur. Non seulement les graphismes et peut-être même la musique y sont de meilleure qualité, mais en plus, tu n'auras aucun bug de ce genre.
J'adore les dragons! Ils sont le centre de ma vie! Je ne les oublierai jamais...
Cliquez ici pour visiter mes dragons et les aider à grandir. Ils vous en seraient très reconnaissant!
Je te recommanderais de jouer à la version Atari ST ou Amiga via émulateur. Non seulement les graphismes et peut-être même la musique y sont de meilleure qualité, mais en plus, tu n'auras aucun bug de ce genre.
Merci pour la response, mais je me rends compte que mon post n'etais peut-etre pas assez clair. Quand je demande si il existe plusieurs versions du jeu, je voulais parler de versions PC (avec un patch par exemple).
Et plus generalement, est-ce que quelqu'un a deja reussi a faire tourner le jeu sous Dosbox ?
J'ai essayé mais pas réussi.
J'ai même essayé des vielles version de Dosbox sans aucun résultat
Même problème constaté sur le jeu Hurlement.
Le jeu débute et d'un coup la barre vie défile à une vitesse hallucinante.
Des fois en diminuant la vitesse de dosbox et en déplacent vite les personnages, j'avais une chance de jouer sinon c'était fini en moins de deux.
J'ai essayé mais pas réussi.
J'ai même essayé des vielles version de Dosbox sans aucun résultat
Même problème constaté sur le jeu Hurlement.
Le jeu débute et d'un coup la barre vie défile à une vitesse hallucinante.
Des fois en diminuant la vitesse de dosbox et en déplacent vite les personnages, j'avais une chance de jouer sinon c'était fini en moins de deux.
Pas essayé cette méthode avec Zombi.
He bien je me sens un peu moins seul deja.
Pour Hurlements, vu que c'est la meme equipe de developpement (enfin a ce qu'il me semble) et le meme genre de jeu, il y a des chances que ca soit le meme systeme de gestion du temps de jeu; d'ou des symptomes similaires.
Trouverons-nous un troisieme larron pour nous tenir compagnie ?
Mon hypothese
Alors apres quelques recherches, j'ai trouve que Zombi utilise deux fonctions DOS (2Ch, et 2Dh; lire/ecrire la date systeme) pour la gestion du temps dans le jeu. Et si on en croit le source de Dosbox:
Code:
case 0x2d: /* Set System Time */
LOG(LOG_DOSMISC,LOG_ERROR)("DOS:Set System Time not supported");
//Check input parameters nonetheless
if( reg_ch > 23 || reg_cl > 59 || reg_dh > 59 || reg_dl > 99 )
reg_al = 0xff;
else reg_al = 0;
break;
Ah ben voila, donc c'est normal que le jeu ne fonctionne pas.
Il n'y a pas de d'heure invalide puisqu'il n'y a pas de message d'erreur. Il doit donc y avoir autre chose parce qu'effectivement le temps avance très vite.
J'viens tout juste d'essayer et je n'ai pas rencontré de problème immédiat. Le texte peut défiler rapidement, mais il suffit de diminuer les cycles. Pour le temps, peu importe le nombre de cycles utilisé, il semble filer de manière constante à la même vitesse.
Je vois vraiment pas où est le problème...
J'adore les dragons! Ils sont le centre de ma vie! Je ne les oublierai jamais...
Cliquez ici pour visiter mes dragons et les aider à grandir. Ils vous en seraient très reconnaissant!
Il n'y a pas de d'heure invalide puisqu'il n'y a pas de message d'erreur. Il doit donc y avoir autre chose parce qu'effectivement le temps avance très vite.
Steph
Je ne vois pas trop ce que tu entends par heure invalide, mais enfin pour plus de precisions, voila comment ca se passe dans le monde de zombi question gestion de temps:
une des premieres choses que fait le programme apres lancement, est de positionner l'heure systeme (la fameuse fonction 2d) a 11h15 (ou un truc dans le genre), ce qui echoue sur dosbox, mais sans generer d'erreur (cf code).
a intervalle regulier, il consulte l'heure systeme (fonction 2c) et calcule la difference avec son "heure de reference", 11h15.
une difference de 5 secondes reelles (a verifier ici aussi) correspond a une minute de temps de jeu, ce qui explique que le temps semble defiler vite, et ca ne devrait pas avoir de rapport avec le nombre de cycles ... enfin pas direct en tous les cas
Alors c'est vrai que je n'avais pas pense a ca, mais peut-etre quel e fait que vous n'ayez pas eu de probleme pourrait etre lie au fait que vous ayez lance le jeu tot ce matin (donc proche de l'heure de debut du jeu). Reessayez plusieurs fois au cours de la journee et vous devriez voir l'horloge du jeu afficher un horaire de plus en plus tardif; au final, vous n'aurez meme plus le temps de rien faire, vous irez a la page game over directement.
Si ce n'est pas le cas .... he bien ....
PS: je viens d'editer le message en remplacant 6h30 par 11h15
Dernière modification par ergonomy_joe, 01 février 2011, 07h10.
Je ne vois pas trop ce que tu entends par heure invalide, mais enfin pour plus de precisions, voila comment ca se passe dans le monde de zombi question gestion de temps :
une des premieres choses que fait le programme apres lancement, est de positionner l'heure systeme (la fameuse fonction 2d) a 11h15 (ou un truc dans le genre), ce qui echoue sur dosbox, mais sans generer d'erreur (cf code).
a intervalle regulier, il consulte l'heure systeme (fonction 2c) et calcule la difference avec son "heure de reference", 11h15.
une difference de 5 secondes reelles (a verifier ici aussi) correspond a une minute de temps de jeu, ce qui explique que le temps semble defiler vite, et ca ne devrait pas avoir de rapport avec le nombre de cycles ... enfin pas direct en tous les cas
Alors c'est vrai que je n'avais pas pense a ca, mais peut-etre quel e fait que vous n'ayez pas eu de probleme pourrait etre lie au fait que vous ayez lance le jeu tot ce matin (donc proche de l'heure de debut du jeu). Reessayez plusieurs fois au cours de la journee et vous devriez voir l'horloge du jeu afficher un horaire de plus en plus tardif; au final, vous n'aurez meme plus le temps de rien faire, vous irez a la page game over directement.
Pour avoir lancé le jeu plusieurs fois cette nuit, effectivement, plus on lance le jeu (et donc on avance l'heure réelle), et plus l'heure de début du jeu est tardive (et ne correspond à rien d' "évident" qui plus est).
Maintenant je vais d'abord voir ce soir ou demain ce qu'il en est pour cette histoire d'erreur "invisible" quand on utilise la fonction 0x2d avant de penser à régler cette histoire d'avancement trop rapide ...
Edit:
Il y a des fois où je me demande si je ne suis pas débile
Dans l'émulateur, il n'y a rien de surprenant à ce que la fonction 0x2d ne fasse rien (sinon ce serait chiant à gérer - je n'entre pas dans les détails), et donc fatalement, quand on appelle ensuite la fonction 0x2c, ça renvoie une mauvaise valeur.
Donc en fait, ce qu'il faudrait, c'est détourner la fonction 0x2c de manière à rajouter l'heure de début du jeu de manière à ce que quand la soustraction se fait, on n'ait que le temps réel écoulé depuis le début de la partie (et ensuite le jeu se charge de convertir cette différence réelle en heure pour le jeu).
J'ai vérifié sur la version Amstrad 6128 via CaPriCe32, le jeu débute à 10h15 (et non 11h15), et effectivement, 5 secondes réelles correspondent à 1 minute dans le jeu.
Donc pour résumer, voici ce que doit faire dans le résident la nouvelle fonction 0x2c en pseudo-code (à traduire ensuite en assembleur x86, ce qui ne devrait pas poser de problème) :
Code:
Appel à la fonction 0x2c d'origine
CL += 15
si CL >= 60
alors
CL -= 60
CH += 1
finsi
CH += 10
si CH >= 24
alors
CH -= 24
finsi
Logiquement, ça devrait marcher (ou alors un truc m'échappe) ...
Après, pourquoi le jeu va trop vite est une autre histoire que je n'ai pour l'instant pas cherché à comprendre ...
Steph
Dernière modification par stephh, 01 février 2011, 18h35.
Pour avoir lancé le jeu plusieurs fois cette nuit, effectivement, plus on lance le jeu (et donc on avance l'heure réelle), et plus l'heure de début du jeu est tardive (et ne correspond à rien d' "évident" qui plus est).
Maintenant je vais d'abord voir ce soir ou demain ce qu'il en est pour cette histoire d'erreur "invisible" quand on utilise la fonction 0x2d avant de penser à régler cette histoire d'avancement trop rapide ...
Edit:
Il y a des fois où je me demande si je ne suis pas débile
Dans l'émulateur, il n'y a rien de surprenant à ce que la fonction 0x2d ne fasse rien (sinon ce serait chiant à gérer - je n'entre pas dans les détails), et donc fatalement, quand on appelle ensuite la fonction 0x2c, ça renvoie une mauvaise valeur.
Donc en fait, ce qu'il faudrait, c'est détourner la fonction 0x2c de manière à rajouter l'heure de début du jeu de manière à ce que quand la soustraction se fait, on n'ait que le temps réel écoulé depuis le début de la partie (et ensuite le jeu se charge de convertir cette différence réelle en heure pour le jeu).
J'ai vérifié sur la version Amstrad 6128 via CaPriCe32, le jeu débute à 10h15 (et non 11h15), et effectivement, 5 secondes réelles correspondent à 1 minute dans le jeu.
Donc pour résumer, voici ce que doit faire dans le résident la nouvelle fonction 0x2c en pseudo-code (à traduire ensuite en assembleur x86, ce qui ne devrait pas poser de problème) :
Code:
Appel à la fonction 0x2c d'origine
CL += 15
si CL >= 60
alors
CL -= 60
CH += 1
finsi
CH += 10
si CH >= 24
alors
CH -= 24
finsi
Logiquement, ça devrait marcher (ou alors un truc m'échappe) ...
Après, pourquoi le jeu va trop vite est une autre histoire que je n'ai pour l'instant pas cherché à comprendre ...
Steph
Merci de t'investir autant Steph, je n'en demandais pas tant
Mais sinon, je dois etre fatigue moi aussi, parce que la logique de ton code m'echappe. Si je comprends bien, ta fonction 0x2c patchee renvoie la date systeme majoree de 15 minutes ? Quel est l'interet ?
Pour faire marcher Zombi sur Dosbox j'ai plutot l'impression qu'il faudrait patcher les deux fonctions getTime et setTime (respectivement 0x2c et 0x2d). Un truc genre:
Code:
[I]setTime()[/I]
stocker les valeurs recues en parametre -> A
stocker les valeurs retour de la fonction [I]getTime() non patchee[/I] -> B
[I]getTime()[/I]
lire les valeurs retour de [I]getTime() non patchee[/I] faire la difference avec B -> C
renvoyer A + C
Enfin quoi qu'il en soit, est-ce que ca confirme le fait que Zombi ne marche pas sous Dosbox alors ? Tout au moins selon l'heure a laquelle on le lance ?
Merci de t'investir autant Steph, je n'en demandais pas tant
Mais sinon, je dois etre fatigue moi aussi, parce que la logique de ton code m'echappe. Si je comprends bien, ta fonction 0x2c patchee renvoie la date systeme majoree de 15 minutes ? Quel est l'interet ?
Regarde bien : tu majores les minutes de 15 ET les heures de 10 (heure de début du jeu) ...
Maintenant je me rends compte de 2 erreurs dans ma conception :
1) Il ne faut pas chercher à faire de tests si on dépasse les 60 minutes ou les 24 heures, mais garder le résultat tel quel sinon quand on va faire la soustraction avec l'heure de départ, ça va faire n'importe quoi.
2) Il faut prévoir le cas où tu dépasses minuit (0h00) pendant une partie (en commençant par exemple à 23h55), mais j'avoue ne pas encore trop savoir comment gérer ça à part effectivement stocker l'heure de départ.
Pour faire marcher Zombi sur Dosbox j'ai plutot l'impression qu'il faudrait patcher les deux fonctions getTime et setTime (respectivement 0x2c et 0x2d). Un truc genre:
Code:
[I]setTime()[/I]
stocker les valeurs recues en parametre -> A
stocker les valeurs retour de la fonction [I]getTime() non patchee[/I] -> B
[I]getTime()[/I]
lire les valeurs retour de [I]getTime() non patchee[/I] faire la difference avec B -> C
renvoyer A + C
Il y a un truc que je ne sais pas pour le moment, c'est si la fonction 0x2d est appelée une fois au début du jeu, ou à chaque fois avant l'appel de la fonction 0x2c.
Apparemment, au début du jeu, l'heure système est fixée à 00:00:00 et ensuite on lit régulièrement l'heure système sur laquelle on applique différents calculs pour avoir l'heure du jeu.
Evidemment, avec une heure de base à 00:00:00, les calculs sont grandement simplifiés et du fait de l' "accélération" voulue par le jeu (5 secondes réelles = 1 minute du jeu), on n'a jamais de problème de débordement (il faudrait d'ailleurs que je vois sur l'Amstrad l'heure de fin, celle où tout le monde devient zombie).
Concernant ton code, ça pourrait être bon, mais comme l'heure de départ est apparemment fixée à 00:00:00 et vu que c'est le jeu qui s'occupe apparemment de calculer l'écart réel et de le convertir en temps de jeu, peut-être peut-on justement le simplifier ...
Enfin quoi qu'il en soit, est-ce que ca confirme le fait que Zombi ne marche pas sous Dosbox alors ? Tout au moins selon l'heure a laquelle on le lance ?
Je serais tenté de dire que non ça ne marche pas puisque l'heure de départ du jeu est fausse (il n'est jamais 10:15) => soit on se débrouille pour faire un résident qui fonctionne, soit c'est à Dosbox de prendre ça en compte quand ils émulent les fonctions 0x2c et 0x2d (ce qui serait beaucoup plus logique et permettrait de ne pas avoir le même problème sur d'autres jeux).
Pourquoi ne pas soumettre vos idées directement sur le forum de Dosbox?
Ca a beau être intéressant mais là franchement on n'y comprend plus rien, même moi alors que j'ai quand même quelques notions en programmation.
Je dis ça car la discussion a l'ait d'être un peu stérile en dehors des échanges entre vous deux.
Il y aura à mon avis plus de retour là-bas.
Bref, à vous de voir.
POUR LES CHANGEMENTS DE CD DANS UN JEU EN INSTALLATION FACILE (et pour Dosbox en général), IL FAUT FAIRE LA COMBINAISON DE TOUCHES CTRL F4.
NOTEZ QU'A CHAQUE DÉMARRAGE D'UN JEU INSTALLATION FACILE, UNE AIDE S'AFFICHE. MERCI DE LIRE AVANT D'APPUYER DIRECTEMENT SUR UNE TOUCHE POUR JOUER. CA PREND 5 SECONDES A LIRE ET CA ÉVITE DE CHERCHER UNE DEMIE JOURNÉE POUR TROUVER LA RÉPONSE.
Au départ, la question avait sa place ici puisqu'on ne savait pas d'où venait le problème (et s'il y avait effectivement un problème). Mais maintenant qu'il s'avère que c'est la "faute" de Dosbox, on peut effectivement leur laisser le message (et éventuellement continuer nos échanges en MP).
Reste maintenant a trouver un "volontaire" pour partir a l'assaut des forums Dosbox
Sinon, un poil hors-sujet, mais y a-t-il une raison pour laquelle Zombi n'est pas present sur le serveur de Abandonware France ? Est-ce justement lie a ce probleme d'emulation ?
Nous collectons des données personnelles sur notre site, à travers l'utilisation des cookies ainsi que d'autres technologies, pour vous fournir nos services, des publicités personnalisées et pour analyser le trafic. Nous pouvons être amené à partager certaines informations avec les partenaires publicitaires et d'analyse. Pour plus de détails, veuillez consulter la politique de confidentialité.
En cliquant sur « J'accepte » ci-dessous, vous acceptez notre politique de confidentialité ainsi que la collecte de données personnelles et l'utilisation de cookies comme décrit. Vous reconnaissez aussi que ce forum peut être hébergé en dehors de votre pays de résidence et que vous consentez à la collecte, le stockage et l'utilisation de vos données dans le pays où ce forum est hébergé.
Commentaire