désassemblage de l'Aigle d'or

Cette catégorie traite de développements récents pour nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

nouvelhermes
Messages : 54
Enregistré le : 22 juil. 2020 20:56

Re: désassemblage de l'Aigle d'or

Message par nouvelhermes » 28 sept. 2020 22:54

Il faut ajouter que les boucles parcourues de nombreuses fois sont beaucoup plus sensible, ici la boucle principale est située entre les lignes 1420-1490.

Ythunder
Messages : 270
Enregistré le : 21 août 2019 10:12

Re: désassemblage de l'Aigle d'or

Message par Ythunder » 28 sept. 2020 22:58

Je dis ça je dis rien, pour avoir les vraies réponses, faudrait avoir celles du programmeur de l'Aigle d'or..
Tout n'est que suppositions, voire... déductions, qui ne sont que des suppositions...

nouvelhermes
Messages : 54
Enregistré le : 22 juil. 2020 20:56

Re: désassemblage de l'Aigle d'or

Message par nouvelhermes » 28 sept. 2020 23:10

Il faut bien comprendre que l'objectif du post n'est pas de porter un "jugement", dans le sens de dire c'est bien ou ce n'est pas bien, mais bien de comprendre comment le programme est construit, comment il fonctionne, éventuellement d'émettre des hypothèses sur la façon dont il a été conçu, etc...

Ici le programme est tout sauf optimisé, cela se voit à de très nombreux points.

La ligne 1420 en est un exemple, mais le peut le voir aussi à des formules de type :
*PEEK(SA+W+1)
ou
PSET (72,96),-1
ou
RND (-N*3+1)

Ces instructions ou fonctions sont très lentes, en particulier les instructions PSET sont destinées, d'après ce que je vois du programme à être des drapeaux ou des paramètres passés à l'assembleur, mais ceci a deux inconvénients majeurs :
*La fonction PSET est par nature lente, l'instruction CALL PSET en assembleur n'est d'ailleurs presque jamais utilisée,
*La mémoire du MO5 n'a pas de poblèmes de commutation de zones mémoires SAUF pour la mémoire écran qui doit être commutée entre forme et couleur avec le bit 0 de A7C0.

Des POKE en fin de mémoire aurait été plus efficaces à cette fin.

nouvelhermes
Messages : 54
Enregistré le : 22 juil. 2020 20:56

Re: désassemblage de l'Aigle d'or

Message par nouvelhermes » 28 sept. 2020 23:32

par Ythunder » 28 sept. 2020 22:58
Je dis ça je dis rien, pour avoir les vraies réponses, faudrait avoir celles du programmeur de l'Aigle d'or..
Tout n'est que suppositions, voire... déductions, qui ne sont que des suppositions...
C'est clair, sauf que les vraies réponses on ne les aura pas (ou l'on aura très peu de chances de les obtenir).

Après effectivement ce sont des hypothèses, on peut tenter d'émettre des hypothèses et d'y répondre. Ex : la forme du programme s'explique par que les auteurs ont cherché à l'optimiser, de nombreux indices tendent à répondre par la négative.

Néanmoins, si les auteurs ne sont pas dispo pour répondre à nos questions, le programme "parle" pour eux.

La présence par exemple de la ligne :
190 STOP

nous permet de nous poser quelques questions sur la présence de cette ligne.

Une fois le programme BASIC entièrement décortiqué, et le programme assembleur désassemblé et analysé, on sera en mesure à répondre :
* Comment fonctionne le programme, quels sont les différents sous-programmes
* Existe-il des parties orphelines (qui ne sont jamais exéctuées), cas manifeste des ligne 95 et 190 du listing BASIC
* Quelles sont les différents variables du programmes et à quoi elles servent
* comment sont résolus différents problèmes.

C'est la raison pour laquelle j'ai demandé si des bétas sont dispo, ce qui permet de connaître l'évolution du programme (même si le programme lui-même donne de nombreux indices)
Des routines sont manifestement "empruntées", je n'ai pas de jugement à porter sur ce point (de nombreuses personnes l'on fait), par contre il est intéressant de savoir d'où viennent ces "emprunts", et s'il y a modifs quelles modifs ont été faites.

Avatar du membre
Xavier_
Messages : 301
Enregistré le : 24 avr. 2020 21:20

Re: désassemblage de l'Aigle d'or

Message par Xavier_ » 29 sept. 2020 02:40

Salut,
J'avoue que la discipline est séduisante et nous avions spontanément proposé notre aide pour un programme Basic sur VG5000.
Avec, optimisation Basic et réécriture du programme en Basic.

Nous étions arrivé à de nombreuses conclusions plutôt décourageantes.
  • Un programme optimisé devient indigeste à la relecture.
  • Un programme Basic Standard sera toujours plus lent que l'assembleur.
  • Un programme hybride Basic/Asm aura toujours des problèmes de passage de variables/transitions.
  • Optimiser n'est pas corriger…
Reprendre un programme Basic est chronophage car parfois la structure même du programme n'a pas été imaginée ou prévue pour incrémenter de nombreuses fonctions ajoutées par la suite.


Cela montre bien qu'un projet, à l'époque, n'été pas structuré à sa naissance.
On part sur une idée, et on incrémente des éléments au fur et à mesure du temps.

Donc, l' "optimisation" consisterai à tout réécrire et à repenser le programme.
Et quand je parle d'optimisation, je pense à des modifications permettant d'accélérer et diminuer la taille du jeu.

Mais, le jeu choisit est un contre-exemple, car toutes les actions cycliques et redondantes ont déjà été traitées en assembleur.
Dans un monde idéal, ce serai une perte de temps d'accélérer un jeu qui se borne à attendre une réponse de l'utilisateur ou un action qui fera attendre l'utilisateur.

Donc, pourquoi s'acharner à vouloir modifier un aspect cosmétique, qui au bout du compte, n'apportera rien au fonctionnement du jeu.
Les détails cités sont des commandes Basic que tu suggères de substituer par des routines assembleur… Oui, elles sont lentes, mais sont en ROM et des routines "maison" ne seront peut-être pas plus rapides que celle-ci, car faisant elle même appel à des sous-routines ROM, et elle mangeront plus de mémoire en plus de faire des aller et retour au Basic.

Ce programme, même s'il est perfectible, ne mérite pas d'être réécrit dans sa totalité en Basic car déjà fonctionnel et débogué.

Sinon, il n'y plus d' "optimisation", mais une refonte totale du programme à effectuer… en Basic… ou directement en assembleur.

Mais, là… c'est une autre histoire.

nouvelhermes
Messages : 54
Enregistré le : 22 juil. 2020 20:56

Re: désassemblage de l'Aigle d'or

Message par nouvelhermes » 29 sept. 2020 09:15

On arrête avec ces histoire d'"optimisation" qui dégénèrent, et on rentre maintenant dans le vif du sujet.

Le fond du décor est proposé entre les lignes 110 et 180, les lignes 10 12 et 14 sont appelées en fonction de la salle.

Avatar du membre
Carl
Modérateur
Messages : 11390
Enregistré le : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: désassemblage de l'Aigle d'or

Message par Carl » 29 sept. 2020 13:32

Merci de rester dans le sujet de départ de ce fil de discussion avec des interventions constructives...
Carl

Avatar du membre
Xavier_
Messages : 301
Enregistré le : 24 avr. 2020 21:20

Re: désassemblage de l'Aigle d'or

Message par Xavier_ » 29 sept. 2020 17:33

Salut,

J'ai regardé une vidéo du jeu, et j'avoue que le jeu est bien fait.
Ajouter du décor, des éléments de mur, des emplacements d'oubliettes moins subjectif…

Mais, le jeu en vaut-il la peine?
On passe apparemment son temps à allumer la lumière, à ouvrir des portes et à se perdre.
Le décor peut casser cet effet de monotonie, mais ne changera en rien à l'aventure elle-même.

Dans le même domaine, j'ai "optimisé" le jeu Galagor.
Image

Mais au prix d'un long travail qui à force, aveugle le programmeur qui perd tout sentiments critique sur le jeu, sa finalité et son aspect global.

Car, un projet de ce type focalise son créateur sur les limites de la machines, les concessions matérielles et la jouabilité.
Le débogage implique des automatismes redondants et l'appréhension de découverte n'existe plus.

Donc, si ce logiciel a des lacunes, ce n'est surement pas dans son fonctionnement, mais dans ses limites de jouabilité imputable à la machine et au déroulé de l'aventure elle-même.

La modification d'un jeu doit être appréhendé avec sobriété, par contre on a l'impression qu'à notre époque on peut faire mieux, plus beau, avec du son, des techniques nouvelles et formidables…
Dans les faits, cela demande beaucoup de travail, de codage et de déceptions car ajouter des éléments exogènes à un programme n'est pas si simple.

Il faut rester humble et raisonnable, car au final, le mieux est l'ennemi du bien.
Modifié en dernier par Xavier_ le 29 sept. 2020 21:13, modifié 1 fois.

Memphis
Messages : 348
Enregistré le : 25 janv. 2015 18:16
Localisation : Pont à Mousson (54)

Re: désassemblage de l'Aigle d'or

Message par Memphis » 29 sept. 2020 18:33

Le moyen le plus simple est de contacter les développeurs du jeu. Ou des anciens de Loriciels. Ils peuvent fournir le code source complet de leurs archives.
Jérôme

Avatar du membre
Xavier_
Messages : 301
Enregistré le : 24 avr. 2020 21:20

Re: désassemblage de l'Aigle d'or

Message par Xavier_ » 30 sept. 2020 08:22

Salut Jérôme,

Oui, mais…
Nous parlons d'un travail de deux ou trois mois, envoyé par un auteur indépendant et d'une entreprise qui n'a pas forcement gardé ses documents de travail.

Donc, aucun souvenir exploitable sur le travail… vite oublié… avec un auteur qui n'a probablement pas gardé ses quelques listings de déménagements en déménagements… et une entreprise qui a jetée l'armoire avec les documents.
Généralement, ce qui est à l'entreprise, reste à l'entreprise et lors de la fermeture, tout est enterré.

Donc, très peu de chance de ce côté là.

Il est difficile de glaner des témoignages ponctuels, mais plus des histoires contextuels de l'époque…

Pour un travail ou un projet précis, il est très difficile de se remémorer une routine qui demandait un bouclage rapide et toujours urgent.

Les demandes que j'ai déjà effectué, ont toujours abouties à des amnésies compréhensibles sur des bribes d'histoire qui à l'époque étaient un travail intensif… sur un projet de courte durée… avant de passer à autre chose.

Généralement, les auteurs ou les acteurs de cette époque sont amusés, voir parfois agacé que l'on aborde un point précis de leur vie… alors que ce n'est pas forcement le point sur lequel ils estiment baser leurs compétences et leurs points forts.

Parfois, ils n'en retirent aucunes fierté et trouvent farfelu de déterrer ces "échecs" de jeunesse.

Daniel
Messages : 13107
Enregistré le : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: désassemblage de l'Aigle d'or

Message par Daniel » 30 sept. 2020 08:52

En demandant à l'auteur il vous donnera les sources et expliquera comment il a créé l'Aigle d'Or. Il l'a déjà raconté plusieurs fois dans des interviews que l'on trouve sur internet. Les liens du site dcmoto peuvent être utiles pour les retrouver.

auteur.jpg
auteur.jpg (21.36 Kio) Vu 346 fois
aigle1.jpg
aigle1.jpg (170.39 Kio) Vu 346 fois
aigle2.jpg
aigle2.jpg (221.67 Kio) Vu 346 fois
Daniel
L'obstacle augmente mon ardeur.

Daniel
Messages : 13107
Enregistré le : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: désassemblage de l'Aigle d'or

Message par Daniel » 30 sept. 2020 09:02

Quelques documents de travail :

aigle3.jpg
aigle3.jpg (160.55 Kio) Vu 343 fois
aigle4.jpg
aigle4.jpg (156.32 Kio) Vu 343 fois
aigle5.jpg
aigle5.jpg (150.27 Kio) Vu 343 fois
aigle6.jpg
aigle6.jpg (137.52 Kio) Vu 343 fois
Daniel
L'obstacle augmente mon ardeur.

Daniel
Messages : 13107
Enregistré le : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: désassemblage de l'Aigle d'or

Message par Daniel » 30 sept. 2020 09:55

Xavier_ a écrit :
29 sept. 2020 17:33
Mais, le jeu en vaut-il la peine?
On passe apparemment son temps à allumer la lumière, à ouvrir des portes et à se perdre.
Le décor peut casser cet effet de monotonie, mais ne changera en rien à l'aventure elle-même.
Ouais, mais c'est quand même une référence reconnue par tous. En particulier L'aigle d'Or a eu le Tilt d'Or en 1984 :

tilt-d-or.jpg
tilt-d-or.jpg (254.08 Kio) Vu 331 fois

SVM n°4 page 87 : Le jeu du mois.
L"Aigle d'Or" n'en reste pas moins un des plus beau logiciels d'aventure réalisés sur les ordinateurs familiaux et diffusés en cassette. Le fait que ce logiciel soit en français n'en fait qu'augmenter le mérite. Sûrement un futur "classique".
svm1.jpg
svm1.jpg (74.23 Kio) Vu 331 fois
Daniel
L'obstacle augmente mon ardeur.

Ythunder
Messages : 270
Enregistré le : 21 août 2019 10:12

Re: désassemblage de l'Aigle d'or

Message par Ythunder » 30 sept. 2020 10:16

Je suis d'accord, L'aigle d'Or en vaut la chandelle. C'est pour moi en tout cas l'un des symboles de l'ère de la micro-informatique à ses "débuts" (je parle surtout de l'air 8bits). Oui effectivement, on enlève les décors il reste... Bein il reste le type de jeu de l'époque ! Et on est sur la période de l'Oric aussi, pas Atari ST...

Des décors maigres ? Bein c'est cette période qui mettait en action notre imagination, qui créait l'ambiance un peu de peur que de traverser ce chateau dans l'aigle d'or.

Des sensations bien disparues en 2020.... L'année dernier ou en 2018, j'avais pris la photo d'un resto en Alsace qui s'appellait "L"aigle d'Or". Bein croyez moi, ça m'a sévèrement troublé, tout le mystique du titre m'est revenu dans la tronche...

__sam__
Messages : 5494
Enregistré le : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: désassemblage de l'Aigle d'or

Message par __sam__ » 30 sept. 2020 10:31

Les décors sont pas maigres. A l'époque on avait droit à des jeux d'aventures sur cartes et décor fixe pas très fins (Mandragore), et là on a une pseudo 3D avec des graphismes médiévaux qui me faisaient forte impression l'époque (plein de détails, les flammes bougent!!! -- enfin dans mon souvenir du moins, mais quand on est jeune l'imagination est forte et transcende l'écran).
Samuel.
A500 Vampire V2+ ^8^, A1200(030@50mhz/fpu/64mb/cf 8go),
GVP530 (MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.

Répondre