
Les Logiciels dont VOUS êtes le Héros - Remake et création
Réduire
X
-
OK, je me suis trompé d'adresse mail.Envoyé par Cirax Voir le message
Envoyé par Cirax Voir le message
C'est là que je te propose mon futur moteur de jeu.Envoyé par Cirax Voir le message
Là il faut décompiler et ce n'est pas ma spécialité. Il y a des personnes sur le site versées dans cet exercice, mais je ne sais pas si elles ont du temps pour ça. D'un autre coté avec Ténèbres, malgré l'existence d'objets, je n'ai pas l'impression qu'il existe d'autres mécanismes que le choix des actions (sinon, dis moi si tu as vu l'influence de quelque chose de précis dans le jeu). Dans ce cas avec une méthode bourrin, il suffit de suivre le jeux et de récupérer actions/événements.Envoyé par Cirax Voir le message
C'est un grand début en mode console. Dés que j'ai quelque chose d'un minimum fonctionnel, je peux te le montrer. C'est de la programmation simple et c'est pour moi un bon moyen d'aborder les applis mobiles.Envoyé par Cirax Voir le message
-
Hors sujet :
En ce moment je lis "Superpouvoirs - La nuit du météore", un LDVELH que j'avais adoré dans ma jeunesse; et sa suite que je n'ai jamais lu. Et ensuite j'en ai une 10aines de coté qui n'attendent que je trouve + de temps.
Bref, moi aussi a fond LDVELH revival (mais pas forcément sur ordi; ou alors il faut que l'histoire et les graphismes soient a la hauteur pour que ca apporte par rapport au papier)
En tout cas bon courage pour vos projets
Dernière modification par Groovykid, 12 octobre 2014, 00h21.
Commentaire
-
Je ne decouvre cette discussion que maintenant, mais permettez-moi tout de meme d'y apporter ma contribution:
LENECROMANCIEN_SRC_20141015.zip
C'est le code source (obtenu par decompilation) de la version PC du jeu LE NECROMANCIEN.
J'ai essaye de peaufiner au maximum pour que ca soit lisible; alors premier truc, il faut imperativement editer les fichiers avec la page 850 (ou equivalent) pour l'encodage. Sinon les accents, cedilles, ... sont remplaces par du charabia.
Ensuite, la protection logicielle est toujours active dans cette version, mais elle plutot facile a eliminer (il y a deux ou trois solutions possibles pour cela).
Le plus interessant je pense, c'est de regarder principalement les fichiers "chapt_xx.pas" (il y en a 16) puisque ce sont eux qui contiennent le script du jeu (assez lineaire d'ailleurs), et qu'ils sont facilement lisibles (meme pour un non programmeur). Il y a juste le fait que j'ai garde la numerotation des paragraphes en hexadecimal. Ca peut etre un incovenient pour celui qui n'y est pas habitue, mais je ne me suis pas senti de remplacer toutes les occurences.
Dans les petites choses amusantes, il reste une dizaine de fonction pour la gestion de la souris dans le jeu, mais tous les ecrans ne sont pas geres et il y a quelques inconvenients. C'est sans doute pour ca que l'option est desactivee "en dur".
bon retro-programming !
Commentaire
-
Salut ergonomy_joe !
Difficile de trouver code plus claire
. C'est rare pour moi de lire du pascal (langage que je ne connais pas), mais c'est un plaisir à lire. Ça doit-être plaisant de programmer en pascal.
Pour Ténèbres, c'est un prog pour CPC, la décompilation doit-être différente ? De toute façon, éditer simplement le fichier fait apparaître tout le texte et les choix et il ne semble pas exister de mécanisme d'inventaire. J'ai fait le jeu et les objets utiles (en fait il y en a réellement qu'un), une certaine linéarité t'oblige à les obtenir pour poursuivre.Dernière modification par Rag'd, 15 octobre 2014, 09h35.
Commentaire
-
Encore un jeu de mon enfance qui va nous livrer ses secrets, merci ergonomy_joe !
Je suis un peu déçu par le code, je m'attendais à trouver un interpréteur qui traduirait les données de l'histoire en provenance d'un fichier pour chaque chapitre, mais non toute l'histoire est codée en dur.
Bon ça fait bien le boulot quand même
Et bon courage Rag'd pour ton développement !Dernière modification par karamoon, 15 octobre 2014, 20h13.
Commentaire
-
Merci pour tes encouragements karamoonEnvoyé par karamoon Voir le messageEt bon courage Rag'd pour ton développement !
Peut-être que c'était pour une question de rapidité d'exécution du code et aussi peut-être pour camoufler les données. De toute façon, le principe de la séparation du code et des données était rarement respecté à l'époque.Envoyé par karamoon Voir le messageJe suis un peu déçu par le code, je m'attendais à trouver un interpréteur qui traduirait les données de l'histoire en provenance d'un fichier pour chaque chapitre, mais non toute l'histoire est codée en dur.
Bon ça fait bien le boulot quand même
Commentaire
-
Je n'ai jamais fait de projet serieux en Pascal, donc je ne peux pas dire; mais pour quelqu'un qui connait deja le C, ca n'est pas trop depaysant.Envoyé par Rag'd Voir le messageDifficile de trouver code plus claire
. C'est rare pour moi de lire du pascal (langage que je ne connais pas), mais c'est un plaisir à lire. Ça doit-être plaisant de programmer en pascal.
Le "reverse" de programmes CPC je n'ai pas encore pousse trop loin; deja il faudrait chercher comment Tenebre a ete programme: en basic, en turbo pascal, en assembleur (auquel cas, la notion de decompilation tombe a l'eau), ...Envoyé par Rag'd Voir le messagePour Ténèbres, c'est un prog pour CPC, la décompilation doit-être différente ? De toute façon, éditer simplement le fichier fait apparaître tout le texte et les choix et il ne semble pas exister de mécanisme d'inventaire. J'ai fait le jeu et les objets utiles (en fait il y en a réellement qu'un), une certaine linéarité t'oblige à les obtenir pour poursuivre.
Edit -------------------------------------
Remarque, le programmeur s'est embete a utiliser les OVERLAYS, ca donne un petit interet technique a l'ensemble.Envoyé par karamoon Voir le messageJe suis un peu déçu par le code, je m'attendais à trouver un interpréteur qui traduirait les données de l'histoire en provenance d'un fichier pour chaque chapitre, mais non toute l'histoire est codée en dur.
A part ca, c'est vrai qu'il n'est pas alle cherche tres loin pour implementer son moteur de jeu.
de meme !Envoyé par karamoon Voir le messageEt bon courage Rag'd pour ton développement !
Commentaire
-
Hello,
je tombe sur ce post, ça me parle car car on y cause CPC. Justement je suis en train de voir comment décompiler un jeu CPC. Attention, en jeu d'aventure tu peux avoir de tout: du BASIC (là, pas de probleme pour acceder aux sources) ou de l'assembleur, et là c'est une autre paire de manche. Pas que le code source soit "caché" (il a été codé directement en assembleur), mais qu'il faut le comprendre. Pour l'instant je débute. J'ai désassemblé quelques jeux CPC, mais le plus dur est de comprendre ce qui est fait, car cela requiert de comprendre la programmation en assembleur Z80 version CPC!
Je vais essayer dans les prochains jours de regarder ce que Tenebres a dans le ventre. Je te tiens au courant.
Commentaire
-
N'hésite pas à nous tenir au courant, la décompilation des jeux m'intéresse toujours beaucoup. Et je m'intéresse depuis peu à la compilation de programmes en C sous CPC.Envoyé par fabricius Voir le messageHello,
je tombe sur ce post, ça me parle car car on y cause CPC. Justement je suis en train de voir comment décompiler un jeu CPC. Attention, en jeu d'aventure tu peux avoir de tout: du BASIC (là, pas de probleme pour acceder aux sources) ou de l'assembleur, et là c'est une autre paire de manche. Pas que le code source soit "caché" (il a été codé directement en assembleur), mais qu'il faut le comprendre. Pour l'instant je débute. J'ai désassemblé quelques jeux CPC, mais le plus dur est de comprendre ce qui est fait, car cela requiert de comprendre la programmation en assembleur Z80 version CPC!
Je vais essayer dans les prochains jours de regarder ce que Tenebres a dans le ventre. Je te tiens au courant.Dernière modification par karamoon, 23 octobre 2014, 18h53.
Commentaire
-
@ ergonomy_joe
Je dis que c'est clair car j'ai toujours trouvé le Pascal propre au coup d’œil, même si je ne connais pas ce langage. Après, le code semble bien organisé, mais j'ai pas été très loin.
Sinon, je ne sais pas ce que sont les OVERLAYS
Grâce au code, je m’aperçois que les choix possibles pour un même paragraphe peuvent varier (cela semble rarement le cas cependant).
exemple : (paragraphe 17 - Le troisième choix est soit Archives, soit Vieux mercenaire)
L'auteur et l'illustrateur sont les même pour Le nécromancien et Ténèbres (ça se sent bien dans le texte d'ailleurs), mais je ne sais pas si c'est le cas pour l'équipe de développement.PROCEDURE PARAGRAPH_17;
BEGIN
TxtDescription := ' Ou allez-vous ?';
TxtChoice_1 := 'Chez Zira';
TxtChoice_2 := 'Taverne';
IF FlagsArray[2] = 0
THEN TxtChoice_3 := 'Archives';
if FlagsArray[2] = 1
THEN TxtChoice_3 := 'Vieux mercenaire';
IF NOT WaitChoice THEN EXIT;
IF UserChoice = 1 THEN CurrentParagraph := $1A;
IF UserChoice = 2 THEN CurrentParagraph := $19;
IF (UserChoice = 3) AND (FlagsArray[2] = 0)
THEN CurrentParagraph := $1b;
IF (UserChoice = 3) AND (FlagsArray[2] <> 0)
THEN CurrentParagraph := $22;
END;
C'est là que fabricus peut peut-être obtenir le code. Cela permettrait de savoir s'il y a des situations équivalentes dans Ténèbres (avec des choix qui peuvent varier selon les situations ou les objets).Dernière modification par Rag'd, 26 octobre 2014, 09h49.
Commentaire
-
Voila une citation de la doc de Borland a ce sujet (traduite par moi donc attention aux erreurs):Envoyé par Rag'd Voir le messageSinon, je ne sais pas ce que sont les OVERLAYS
Le mieux c'est de lire tout le chapitre 18 du manuel de turbo pascal 3.0 (on en trouve le scan ici).Le system Overlay vous permet de creer un programme plus volumineux que ce que ne vous permet la memoire de l'ordinateur. La technique consiste a rassembler un certain nombre de sous-programmes(procedures et fonctions) dans un ou plusieurs fichiers distinct du programme principal, qui seront alors charges automatiquement lors de l'execution un a la fois dans la meme zone de la memoire.
Sinon le seul interet, a mon avis, ca serait pour celui qui recompilerait le programme pour DOS.
Commentaire
-
Merci ergonomy_joe pour ton explication
D'après ce qui est indiqué, les sous-programmse en overlays ne peuvent pas s'appeler entre eux, ce qui est logique, mais ça doit les destiner à une structure du programme bien précise. J'ai pas le temps d'aller voir plus loin, mais j'irai, un jour j'espère, programmer un tout petit peu en Pascal par curiosité.Dernière modification par Rag'd, 29 octobre 2014, 11h51.
Commentaire



Commentaire