"Hurlements" (Ubi Soft) sauvé des eaux ?

Réduire
X
 
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages
  • stephh
    General

    • janvier 2009
    • 1721

    #1

    "Hurlements" (Ubi Soft) sauvé des eaux ?

    A l'initiative de "GT400", j'ouvre ce sujet pour faire part de mes différentes expérimentations pour essayer de faire marcher la version PC d' "Hurlements" d'Ubi Soft avec les éléments dont nous disposons. ATTENTION ! Je ne m'engage à rien, je ne promets rien, mais si mes informations peuvent aider d'autres personnes (éventuellement d' "ergonomy_joe") à progresser, voire à en "recréer" une version fonctionnelle, ce sera déjà ça de gagné ...

    Tout d'abord, il faut savoir que la seule archive qui "circule" sur Internet ne contient pas la version EGA (peut-être parce qu'elle n'aurait pas tenu sur une disquette 5"1/4 et que personne n'a cette disquette supplémentaire). Comme je ne sais pas comment paramétrer DOSBOX pour faire éventuellement fonctionner la version Hercules, il ne reste plus que la version CGA (le fichier HURLE_C.EXE) sur laquelle nous pouvons travailler.

    Pour lancer le jeu, il y a 2 possibilités :
    . on tape "hurle c" : ça lance le fichier HURLE.BAT qui se charge ensuite d'appeler HURLE_C.EXE avec un paramètre
    . on tape "hurle_c" suivi directement du paramètre pour lancer le fichier HURLE_C.EXE
    Il y a 3 paramètres possibles (impérativement en majuscules) :
    . FUD (celui dans le fichier HURLE.BAT) pour lancer la version française
    . UDF pour lancer la version anglaise
    . DFU pour lancer la version allemande
    Tout autre paramètre ne fera RIEN et terminera le programme (et vous ramènera éventuellement directement à la ligne de commande) !

    Le jeu semble fonctionner correctement avec la version 0.74 de DOSBOX mais pas la 0.72 où le timer est beaucoup trop rapide (ce qui cause un "game over" moins de 10 secondes après le début du jeu). A vérifier néanmoins à un autre moment de la journée, parce que je ne suis pas sûr que les fonctions SetDate et SetTime aient été implémentées dans DOSBOX (alors que le jeu semble les appeler, mais de façon différente à "Zombi"). A ce propos, si vous savez de combien de temps réel ET virtuel on dispose pour finir le jeu, je serais grandement intéressé.

    Ce qui cause les problèmes graphiques actuels en bas de l'écran, c'est le fichier HURLE.SCR qui semble corrompu entre les offsets 0x2a00 et 0x3dff. Comme il s'agit d'une image CGA standard (320 x 200 / 4 = 16000 octets), on peut déjà tout remplacer par des 0x00 mais on risque de perdre certains détails comparé à la version Amstrad => s'il y a des pros du dessin qui ont les utilitaires pour (notamment quelque chose qui ne sauve pas de "header" contrairement à "Deluxe Paint"), faîtes-vous plaisir (et faîtes-en profiter les copains). A noter que dans cette zone "buggée" va ensuite s'afficher le bas du "chronomètre" et ensuite les différentes icônes avec les actions possibles.

    Le fichier HURLE.BCK est bien le fichier de sauvegarde (ce qui explique pourquoi on ne le trouve pas par défaut dans l'archive) d'une taille que j'espère fixe de 5890 octets. Je n'ai pas vraiment chercher à savoir comment il était constitué, mais il semblerait qu'il y ait une image au début (votre location à l'intérieur du cadre au milieu de l'écran ?) suivi de datas divers et variés (avec le temps dans les 2 derniers octets, mais ça ne semble pas aussi simple à bidouiller).

    Les fichiers HURLE.FG et HURLE.FP sont des images de la fin du jeu respectivement quand vous avez gagné (je n'y suis pas arrivé => impossible de dire à quoi l'image ressemble) ou perdu (image avec les loups). Ces images étant compactées et leur taille définie dans le programme, il ne semble pas possible de remplacer l'une par l'autre.

    C'est tout pour le moment ... J'attends maintenant vos commentaires et vos éventuelles questions pour peut-être poursuivre ce sujet ...

    Steph
  • GT400
    Manic Miner


    • juin 2004
    • 11522

    #2
    Envoyé par Stephh
    Ce qui cause les problèmes graphiques actuels en bas de l'écran, c'est le fichier HURLE.SCR qui semble corrompu entre les offsets 0x2a00 et 0x3dff. Comme il s'agit d'une image CGA standard (320 x 200 / 4 = 16000 octets), on peut déjà tout remplacer par des 0x00 mais on risque de perdre certains détails comparé à la version Amstrad => s'il y a des pros du dessin qui ont les utilitaires pour (notamment quelque chose qui ne sauve pas de "header" contrairement à "Deluxe Paint"), faîtes-vous plaisir (et faîtes-en profiter les copains).
    Si on me dit avec quoi ouvrir (et sauvegarder comme il faut) cette image, je peux probablement le faire (d'après la version Amstrad).

    Quant à l'image de "victoire", il est possible de la pomper sur la version Amstrad.
    (solution du jeu : http://www.aitpast.com/index.php?id=60&page=jeu )
    Mais la réintégrer dans le jeu ne sera probablement pas aussi facile, d'après ce que tu as dit.
    As the mist clears, the eerie image of a forest forms in front of you. To the east, a vast plain extends towards the horizon. Westward howewer, in the thick of the forest, a thousand pairs of eyes pierce the mist, glaring despondently back at you.

    Commentaire

    • stephh
      General

      • janvier 2009
      • 1721

      #3
      Envoyé par GT400 Voir le message
      Si on me dit avec quoi ouvrir (et sauvegarder comme il faut) cette image, je peux probablement le faire (d'après la version Amstrad).
      Justement, je ne sais pas quel programme utiliser (dessinant comme un pied, à part "Paint" sous Windows, je ne connais rien)

      En plus, je suis au taf sans doc et je n'ai plus l'organisation de la RAM vidéo pour un écran CGA et un truc me travaille : c'est vers la fin du fichier qu'on a des datas erronés et ça se traduit par de la "neige" vers le bas de l'écran => si ça ce trouve le fichier contient en fait chaque ligne dans un ordre "incrémentiel" (ligne 0 tout en haut, ligne 1 juste en dessous, ligne 2 encore en dessous ...) au lieu de l'ordre logique basé sur l'adresse mémoire, ce qui explique qu'on ne peut pas l'ouvrir aussi simplement qu'on le voudrait.

      J'espère qu' "ergonomy_joe" ou tout autre codeur qui a un peu de temps (moi ça risque d'être compliqué, surtout que je ne sais plus où sont tous mes "tools" parmi mes 3000+ disquettes pas forcément d'origine) passera sur le forum et pourra nous pondre un programme en Turbo Pacal ou en Turbo C pour afficher l'image (et ainsi voir comment elle est exactement codée) puis pour l'enregistrer dans un format exploitable par un truc dessin (avec ensuite de quoi la remettre dans le format d'origine du jeu).


      Quant à l'image de "victoire", il est possible de la pomper sur la version Amstrad.
      (solution du jeu : http://www.aitpast.com/index.php?id=60&page=jeu )
      Mais la réintégrer dans le jeu ne sera probablement pas aussi facile, d'après ce que tu as dit.
      Je n'ai pas dit qu'il y avait un quelconque problème avec l'image de "victoire", juste que je n'avais pas fini le jeu et que je ne savais donc pas à quoi elle ressemblait. Donc pas de souci de ce côté là pour le moment.

      A propos de la solution que tu donnes, il y a certaines "commandes" dont je ne suis pas sûr de savoir comment les faire sur PC (ex: avoir en main tel objet ou changer de personnage) : sur l'Amstrad, ça se faisait au joystick, mais qu'en est-il exactement au clavier sur PC ? Peux-tu éventuellement détailler ce qu'est sensé faire chaque icône du jeu (pour ceux comme moi qui n'y ont pas joué) ? Parce qu'il y a apparemment une scène primordiale où tu dois secouer le "bâton de joie" dans tous les sens (pour remonter du puits avec le combat contre la chauve souris), mais j'aimerais savoir comment on gère ça avec les 4 flèches (ou éventuellement d'autres touches).

      Steph

      Commentaire

      • GT400
        Manic Miner


        • juin 2004
        • 11522

        #4
        (Pour l'image de "victoire", je parlais de sa récupération sans devoir finir le jeu sur PC)

        Je ne saurais répondre à toutes tes questions, mais pour le combat au corps à corps (sans passer par un joystick) sur Zombi (version CPC), il fallait utiliser l'aternance des touches Z et X.

        Il y a d'autres trucs à propos du clavier sur la doc de Zombi dispo à la fin de cette page : http://cpcrulez.fr/GamesTest/zombi.htm et aussi la description des icones qui ont l'air d'être les mêmes (pas tous je crois) que ceux de Hurlements.
        As the mist clears, the eerie image of a forest forms in front of you. To the east, a vast plain extends towards the horizon. Westward howewer, in the thick of the forest, a thousand pairs of eyes pierce the mist, glaring despondently back at you.

        Commentaire

        • ergonomy_joe
          Swordsman


          • août 2010
          • 245

          #5
          Envoyé par stephh Voir le message
          J'espère qu' "ergonomy_joe" ou tout autre codeur qui a un peu de temps (moi ça risque d'être compliqué, surtout que je ne sais plus où sont tous mes "tools" parmi mes 3000+ disquettes pas forcément d'origine) passera sur le forum et pourra nous pondre un programme en Turbo Pacal ou en Turbo C pour afficher l'image (et ainsi voir comment elle est exactement codée) puis pour l'enregistrer dans un format exploitable par un truc dessin (avec ensuite de quoi la remettre dans le format d'origine du jeu).
          Quand on parle du loup

          Pour l'organisation du fichier en question je ne me rappelle plus exactement du format mais il y a de grandes chances que ca soit une copie direct de la ram video donc, 80 octets par ligne (4 pixels par octet) et lignes paires suivies lignes impaires, avec un peu de padding au milieu. Autrement dit (les adresses sont en hexadecimal):
          0x0000 ligne 0
          0x0050 ligne 2
          0x00a0 ligne 4
          0x00f0 ligne 6
          ...
          0x1ef0 ligne 198
          0x1f40~0x1fff padding (ne sera pas affiche)
          0x2000 ligne 1
          0x2050 ligne 3
          0x20a0 ligne 5
          0x20f0 ligne 7
          ...
          0x3ef0 ligne 199
          0x2f40~0x3fff padding (ne sera pas affiche)

          J'avais commence a jeter un oeil sur le jeu, mais je ne sais plus pourquoi j'ai tout laisse en plan. Le projet est au fin fond de mon disque dur, il faudra que je jette un coup d'oeil ce weekend, parce que moi aussi je suis au taf

          edit du 20 fevrier
          he bien je me suis trompe: en fait les lignes paires/impaires sont entrelacees dans le fichier hurle.scr; on a donc:
          0x0000~0x004f ligne 0
          0x0050~0x009f ligne 1
          0x00a0~0x00ef ligne 2
          0x00f0~0x013f ligne 3
          ...
          0x3de0~0x3e2f ligne 198
          0x3e30~0x3e7f ligne 199
          et du coup, pas de padding.

          Effectivement, les octets de 0x2a00~0x3dff ont ete ecrases par du code qui n'a aucun rapport avec le jeu.
          Dernière modification par ergonomy_joe, 20 février 2012, 05h40.

          Commentaire

          • ergonomy_joe
            Swordsman


            • août 2010
            • 245

            #6
            Ouf, ca y est, j'ai decompile hurle.exe;
            alors, a part que cette fois c'est du C, compile avec Turbo C 1.5, le source a beaucoup de point commun avec celui de Zombi; normal, me direz-vous, c'est le meme programmeur qui s'y est colle.
            Dans la mesure du possible, j'ai garde la meme nomenclarure pour les noms des fonctions. Pour les noms de variables, j'ai eu un souci qui est explique en commentaire dans le source (mais en anglais, histoire de faire plus international), mais libre a vous de les renommer de maniere plus explicites.
            La bonne nouvelle, c'est que, a part l'image de l'ecran principal du jeu, toutes les autres ressources sont (en tous cas ont l'air) intactes.
            La mauvaise nouvelle, c'est que s'y personne ne se devoue pour fournir une image corrigee, on sera oblige de jouer avec celle qui est "pourrie".

            Voici la bete: H_C_20120314.zip
            (C'est ma premiere piece jointe, alors ya des chances que sa foire)

            voila, un dernier petit mot; si quelqu'un genere un nouvel exe qui sera utilise pour mettre le jeu a disposition, je propose qu'il insere une chaine de caractere "static" dans le code histoire que, sans que ca ne perturbe le jeu, on puisse facilement tracer le binaire;
            par exemple:
            Code:
            static char __version__[] = "recompiled 2012/03/14 for Abandonware France";
            voila

            Commentaire

            • GT400
              Manic Miner


              • juin 2004
              • 11522

              #7
              Sur CPC, l'image d'écran principal de jeu qui se charge en début de partie est celle-ci (fichier intitulé aussi HURLE.SCR, facilement récupérable) (je pensais qu'elle ne contenait que les cadres mais elle affiche aussi le premier lieu du jeu, etc...) :



              (320x200 en 4 couleurs, comme sur PC)

              Les graphismes sont exactement les mêmes sur PC. Reste à convertir cette image dans le bon format/bonnes couleurs (pas compliqué pour les couleurs) pour remplacer celle qui foire sur la version PC. Je n'ai pas trouvé de vieux logiciels PC qui permettent de lire HURLE.SCR . Surtout que je ne sais si c'est un format conventionnel facilement manipulable sous un quelconque vieux logiciel de dessin. A vous de voir.
              Dernière modification par GT400, 14 mars 2012, 20h12.
              As the mist clears, the eerie image of a forest forms in front of you. To the east, a vast plain extends towards the horizon. Westward howewer, in the thick of the forest, a thousand pairs of eyes pierce the mist, glaring despondently back at you.

              Commentaire

              • ergonomy_joe
                Swordsman


                • août 2010
                • 245

                #8
                Envoyé par GT400 Voir le message
                Sur CPC, l'image d'écran principal de jeu qui se charge en début de partie est celle-ci (fichier intitulé aussi HURLE.SCR, facilement récupérable)
                Ah ben ca m'a l'air jouable tout ca

                Est-ce que tu pourrais mettre le fichier HURLE.SCR en piece jointe, je vais voir ce qu'on peut faire avec.

                Commentaire

                • GT400
                  Manic Miner


                  • juin 2004
                  • 11522

                  #9
                  Voici le fichier CPC (ça déconne avec les pièces jointes alors je le mets sur DF) :

                  http://depositfiles.com/files/qc8aaiijx

                  (je l'ai récupéré avec ManagerDSK... le second fichier (à renommer en .scr) est le même mais exporté sans en-tête)
                  Dernière modification par GT400, 15 mars 2012, 20h55.
                  As the mist clears, the eerie image of a forest forms in front of you. To the east, a vast plain extends towards the horizon. Westward howewer, in the thick of the forest, a thousand pairs of eyes pierce the mist, glaring despondently back at you.

                  Commentaire

                  • ergonomy_joe
                    Swordsman


                    • août 2010
                    • 245

                    #10
                    Envoyé par GT400 Voir le message
                    Voici le fichier CPC (ça déconne avec les pièces jointes alors je le mets sur DF) :

                    http://depositfiles.com/files/qc8aaiijx

                    (je l'ai récupéré avec ManagerDSK... le second fichier (à renommer en .scr) est le même mais exporté sans en-tête)
                    Super, merci.

                    J'ai reussi la conversion; dans la piece jointe ci-dessous il y a donc le ficher HURLE.SCR repare, et le bout de code en C (compile avec turbo c 1.5, pour la forme ) qui permet de faire la conversion entre le fichier amstrad cpc (celui sans l'en-tete) et la version pc.

                    hurle_scr.zip

                    (il n'y a pas de commentaire dans le code, c'est vraiment juste pour les curieux.)

                    reste a regler le probleme de timer maintenant. Mais avec le code source sous la main, ca ne va pas poser trop de probleme .. a Karamoon par exemple ? ;-)

                    Commentaire

                    • GT400
                      Manic Miner


                      • juin 2004
                      • 11522

                      #11
                      Du nouveau ?
                      As the mist clears, the eerie image of a forest forms in front of you. To the east, a vast plain extends towards the horizon. Westward howewer, in the thick of the forest, a thousand pairs of eyes pierce the mist, glaring despondently back at you.

                      Commentaire

                      • karamoon
                        Barbarian


                        • janvier 2006
                        • 343

                        #12
                        Je viens de découvrir ce soir même la discussion, et j'ai tout juste récupéré les sources et TC 2.01 (impossible de trouver la 1.5, mais ça compile avec cette version).

                        Par contre il me manque le jeu en lui même, est-il possible d'avoir un lien ?

                        Merci.

                        Commentaire

                        • GT400
                          Manic Miner


                          • juin 2004
                          • 11522

                          #13
                          Le jeu est ici (HURLE.RAR) :

                          http://peter.mathias.free.fr/abandonware/
                          As the mist clears, the eerie image of a forest forms in front of you. To the east, a vast plain extends towards the horizon. Westward howewer, in the thick of the forest, a thousand pairs of eyes pierce the mist, glaring despondently back at you.

                          Commentaire

                          • karamoon
                            Barbarian


                            • janvier 2006
                            • 343

                            #14
                            Salut à tous,

                            Voici un premier jet sur la correction des problèmes d'horloge :

                            H_C.zip

                            J'ai converti mon code issu de Zombi pour le problème du temps qui s'écoulait trop vite.

                            J'ai également réglé le problème de la fonction C delay qui réalisait mal les tempo longues . J'ai implémenté ma propre fonction Delay basée sur la fonction C biostime qui elle semble bien fonctionner.

                            Je n'ai pour le moment pas testé grand chose, mais le jeu se lance, je vais un peu continuer ce w-e.
                            Dernière modification par karamoon, 30 juin 2012, 10h17. Motif: Avec les sauvegardes fonctionnelles

                            Commentaire

                            • karamoon
                              Barbarian


                              • janvier 2006
                              • 343

                              #15
                              Version finale pour tests

                              Hurlements.zip

                              Bonjour à tous,

                              voici la version finale de Hurlements (avec le fichier corrompu remplacé) afin que vous puissiez la tester. Le code est compilé avec TC 2.01 avec les options indiquées par ergonomy_joe.
                              J'ai terminé le jeu avec cette version et je n'ai pas trouvé de bugs.

                              Par contre il y a une chose vraiment bizarre dans le code dans la fonction USE_1B().
                              Cette fonction permet de faire remonter le personnage bloqué au fond du puits. Le code suivant, présent dans la fonction, pose l'or (0xfc) de l'inventaire sur le sol en le remplace par un objet inconnu (0x1f) :
                              ...
                              for(bp_05 = 0; bp_05 < 4; bp_05++) {
                              if(_0037[bp_07]._carried[bp_05] == 0x1f) {
                              ReplaceObjs_0(0xfc, 0x1f, bp_08);
                              _0037[bp_07]._carried[bp_05] = 0;
                              }
                              }
                              if(_0037[bp_07]._held == 0x1f) {
                              ReplaceObjs_0(0xfc, 0x1f, bp_08);
                              _0037[bp_07]._held = 0;
                              }

                              ...

                              Il est donc impossible de terminer le jeu avec cette version du code, puisque l'on ne peut pas remonter l'or avec soit !
                              J'ai supprimé ces lignes pour que le jeu puisse être terminé.

                              Voici la liste des modifications apportées :
                              BUGS :
                              - Les nombreux problèmes de Timer
                              - Le problème de la fonction delay
                              - Suppression de la portion de code qui empêchait de terminer le jeu (l'or était supprimé de l'inventaire)
                              - Lors du tir au fusil, la fonction SetPalette() (pour l'effet de flash) faisait planter le jeu
                              - Correction du fait que l'on ne pouvait pas passer de LORY à KANE (mais le contraire était possible)
                              - L’utilisation de la trousse de secours ne mettait pas à jour les jauges de vie et de force

                              AMELIORATIONS :
                              - Batch de lancement pour sélectionner la langue du jeu
                              - Sélection de la direction en sens horaire et anti-horaire
                              - Affichage en permanence de l'horloge
                              - Utilisation de la barre d'espace en plus de la touche ENTER pour valider les actions
                              - Retour sous DOS après la fin du jeu (boucle infinie avant)
                              - Suppression de l'affichage du texte "..insérer disque jeu..." après une sauvegarde ou un chargement de partie
                              - Réglage de diverses tempo

                              Hurlements est sauvé des eaux grâce à tout le monde
                              Karamoon
                              Dernière modification par karamoon, 01 juillet 2012, 14h46.

                              Commentaire

                              Chargement...