Interpréteur de jeux Infocom pour Thomson ?

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

Avatar de l’utilisateur
exocet
Messages : 82
Inscription : 23 févr. 2017 12:57
Localisation : Londres, Royaume-Uni
Contact :

Interpréteur de jeux Infocom pour Thomson ?

Message par exocet »

Existe-t-il un interpréteur pour les jeux d'aventure textuels Infocom pour les machines Thomson ?

Sinon, quelqu'un serait-il intéressé pour en réaliser un ? Les sources d'un interpréteur TRS-80 en ASM 6809E sont disponibles apparemment.

Voir ici : https://twitter.com/hlabrande/status/13 ... 9825753088
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Interpréteur de jeux Infocom pour Thomson ?

Message par __sam__ »

Je connais pas, c'est quoi infocom ? Si c'est du texte, ca doit pas être difficile à porter je suppose.

[EDIT] j'ai fait quelques recherches:
* https://fr.wikipedia.org/wiki/Z-machine
* https://www.filfre.net/2012/01/zil-and-the-z-machine/
* http://inform-fiction.org/zmachine/stan ... /appd.html
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
nouvelhermes
Messages : 401
Inscription : 22 juil. 2020 20:56

Re: Interpréteur de jeux Infocom pour Thomson ?

Message par nouvelhermes »

Si je ne dis pas de bêtises, Infocom est une source de "moteur de jeux" en mode texte très courant dans les années 70 et 80.

Beaucoup de jeux de cette époque mélangeaient allègrement code et données (avec des instructions DATA en BASIC ou l'équivalent en assembleur), mais le moteur de jeu (c'est-à-dire un interpréteur de données conçues spécialement pour les jeux d'aventure en mode texte ou même textes avec images) permettait de convertir facilement les jeux d'une machine à une autre (il suffisait de convertir l'interpréteur, les données étaient inchangées).

Je ne crois pas qu'il y ait d'interpréteur spécifique, mais cela doit être faisable, encore faut-il savoir combien de mémoire est nécessaire pour les données (je pense que cela laisse de côté les machines à cassettes)
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Interpréteur de jeux Infocom pour Thomson ?

Message par __sam__ »

D'après ce que j'ai lu, ca doit tourner dans moins 64ko de ram.. mais même si les thomson ont suffisamment de mémoire j'ai peur qu'il faille de grosses zones "contiguës", or les banks de 16ko ne sont pas arrangeables de cette façon sur les thomson.

Maintenant c'est un apriori de ma part dans la mesure où je n'ai pas regardé le code source des intepréteurs. Si j'avais accès à un code source pour 6809, je pourrais voir quelle organisation mémoire est attendue, car si ca se trouve le mécanisme de bank thomson peut être suffisant (mais pas rapide).
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Interpréteur de jeux Infocom pour Thomson ?

Message par Daniel »

trs80_interpreter.zip
(37.29 Kio) Téléchargé 268 fois
Daniel
L'obstacle augmente mon ardeur.
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Interpréteur de jeux Infocom pour Thomson ?

Message par __sam__ »

Merci Daniel, c'est très instructif.

D'un coté il y a le bas niveau propre au coco avec carrément des recopies des routines ROM d'accès au disk pour (a priori) pouvoir mapper un bout de RAM sur l'espace ROM (avoir le max de RAM adressable de façon continue est important), une gestion de l'écran/imprimante sans passer par la ROM (avec les spécificités de l'écran coco: 32 car/ligne, inverse video etc). Bon tout cela il faudrait le refaire.

De l'autre le mécanisme de pagination (paging.src) à lire avec zequates.src qui définit entre autres l'organisation mémoire (en gros: code de l'interpréteur suivi par ses données, suivit ensuite par le code "non swappable" du jeu enfin de la ram pour les données du jeux, le tout de façon contigüe).

De ce que j'ai rapidement lu à ma pause ce midi, la Z-machine (c'est le processeur du jeu) utilise, dans cette version, des adresses sur 24 bits, ce qui veut dire qu'un jeu pourrait avoir jusqu'à 16Mo de mémoire (code+data, car en effet l'espace est commun pour les deux.) Bien évidemment comme la machine réel n'a pas autant de mémoire, ces 16Mo sont découpés en pages de 256 octets dont une petite partie est présente en mémoire physique à chaque instant. Cette version du code gère $A0 pages totales en ram, soit 40ko. Ca veut dire que la machine hôte doit contenir minimum 40ko auxquels il faut ajouter le code machine de la Z-machine (à la louche 8ko). J'estime donc qu'environ 48ko de ram contigüe sont nécessaires.

C'est beaucoup pour un thomson où au max on a, je crois, 32ko contigus, mais à cause des pages0,1,2 du moniteur on doit en pratique n'avoir que 24ko "d'un bloc". Alors on peut faire comme sur Coco et se passer des appels en ROM, mais bonjour la galère des incompatibilités entre machines thomson, mais je pense qu'on peut aussi modifier le code de la pagination (en fait le zequates.src) et utiliser moins de 160 ($A0) descripteurs de pages, mais disons 96 ce qui ferait que la Z-machine pourrait travailler avec seulement 24ko de ram contigües. Attention, cela implique du changement de page bien plus fréquent, et donc un ralentissement pour les gros jeux.

D'ailleurs à propos de gros jeux, je pense aussi que cette version datant de 1984 ne contient que les premières révisions de la Z-machine et ne permettra que de faire tourner les premiers jeux "infocom".

Quelque part je dirais que le portage se tente, ne serait-ce que pour l'exercice intellectuel. /!\ le matériel de l'archive est (c) et interdit de reproduction/adaptation. Il faudrait attendre 75ans après la mort des auteurs pour qu'il tombe officiellement dans le domaine-public français. Faut pas être pressé ;)

Ah un dernier point: le jeu accède au disk via les secteurs que ce soit pour le chargement dynamique de Z-code ou des données du jeu ou pour la sauvegarde. Cela veut dire que les diskettes ne peuvent être au format DOS thomson. Mais le bon coté est que du coup on a même pas besoin des points d'entrée minidos de la rom. J'aurais même tendance à dire que vu le volume possible des jeux (16mo d'espace adressable implique que les les jeux peuvent être nettement plus gros qu'une diskette thomson), il est fort possible que certain jeux ne soient jouables que depuis un SDDrive ;) (encore plus vrai si on voulait faire marcher les dernières évolutions des Z-Machines avec du son et de l'image)
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Interpréteur de jeux Infocom pour Thomson ?

Message par Daniel »

Le fichier que j'ai donné est (je crois) le code fourni par l'éditeur pour le TRS80. Les sources ont été diffusées officiellement et leur utilisation est peut-être autorisée (à vérifier).

Avant la publication des sources, un amateur (j'ai oublié son nom) a publié sa propre version de l'interpréteur. Elle n'est certainement pas aussi complète que la version officielle, mais je la donne si elle peut être utile.
info6809.zip
(10.16 Kio) Téléchargé 263 fois
Daniel
L'obstacle augmente mon ardeur.
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Interpréteur de jeux Infocom pour Thomson ?

Message par __sam__ »

Cette 2e version ressemble à du code désassemblé. Je trouve du coup le code d'origine plus facile à lire car il est commenté. Il est d'ailleurs très instructif de le lire pour voir comment on codait en ASM dans les années 80. Curieusement on croirait que le 6809 n'a que 3 registres: A,B,X et c'est tout! En réalité Y n'est pas spécialement utilisé et U contient le pointeur de pile de la Z-machine donc bloqué pour tout autre usage. Pratiquement tout passe par des variables globales en page-directe. J'ai trouvé du code redondant et optimisable à quelques (rares) endroits. C'est surprenant dans la mesure où le code n'a pas l'air moche du tout. Juste très classique, comme à l'école sans bidouilles. Hmm.. ca me chatouille... dommage que je ne sois plus en vacance.

Des infos sur le 1er interpréteur que tu as passé : https://retrotinker.blogspot.com/2018/0 ... vered.html. C'est la version C de la Z-Machine telle que dispo sur le Color Computer Archive (CoCoA je présume): https://colorcomputerarchive.com/repo/P ... terpreter/

Le jeu ZORK est téléchargeable gratuitement depuis l'éditeur ici: http://www.infocom-if.org/downloads/downloads.html

Plein d'autres jeux sont dispo sur le CoCoA: https://colorcomputerarchive.com/search?q=Infocom

Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Interpréteur de jeux Infocom pour Thomson ?

Message par Daniel »

Je crois comprendre que le jeu était écrit dans un langage de haut niveau et ensuite compilé pour être exécuté par l'interpréteur.
J'ai trouvé ça pour ZORK1 :
zork1.zip
(171.16 Kio) Téléchargé 262 fois
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
Falkor
Messages : 1701
Inscription : 28 juin 2010 12:09
Localisation : Cluny, Saône et Loire

Re: Interpréteur de jeux Infocom pour Thomson ?

Message par Falkor »

Ces jeux étaient les premiers à tourner dans l'équivalent d'une machine virtuelle. Le jeu était développé dans un langage générique, l'Inform (ou le ZIL dans les premières versions). Le concept était de développer/compiler le jeu dans ce langage, puis interpréter le fichier compilé par un interpréteur développé dans le langage spécifique à chaque machine. Il existe donc des interpréteurs pour la plupart des plates-formes les plus courantes.

C'est un peu le principe des fichiers PDF ou MP3 : le même fichier peut-être lu sur différentes plates-formes, seul le lecteur est spécifique à l'OS. :)
Xavier_

Re: Interpréteur de jeux Infocom pour Thomson ?

Message par Xavier_ »

Télécharger sous windows : http://ifarchive.org/indexes/if-archive ... ers/basic/ (lien de Falkor)

Télécharger le zip de Daniel "zork1.zip", et charger le fichier compilé "zork1-r119-s880429.z3" après l'appuie sur "rungame"
infocom.JPG
infocom.JPG (51.65 Kio) Consulté 6986 fois
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Interpréteur de jeux Infocom pour Thomson ?

Message par __sam__ »

... Ou le même principe que le SCUMM-VM de lucas-art. Du reste l'un des auteurs de twitter d'origine est un concepteur actuel de jeux interactifs en mode texte. Ces programmes sont des ZIP (Zork Interpreted Program) qui n'ont aucun rapport avec le système de comrpession. Dans la partie [EDIT]d'un de mes messages plus haut il y a les pointeurs sur toute l'histoire du ZIP je crois. Ca nous remonte à l'ère des PDP, mais c'est toujours d'actualité avec de nouveaux jeux très régulièrement: http://www.fiction-interactive.fr/
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Xavier_

Re: Interpréteur de jeux Infocom pour Thomson ?

Message par Xavier_ »

"The Quille" sur spectrum et les moteurs de "Adventure A,B,C,D..." sur Zx81.
Idem pour Fallout 1 & 2 qui utilise le même moteur de script à compiler en objet C++.

Mais sur une machine de 16, 48 ou 64k, le moteur prend 1/3 de la place et le texte limite grandement la qualité du jeu.
C'est pourquoi une bonne gestion des périphériques de stockage est indispensable, simple disquette ou multi-disquette..
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Interpréteur de jeux Infocom pour Thomson ?

Message par Daniel »

Ou carte SD pour ne pas avoir à changer la disquette.
Si en plus l'interpréteur accède directement aux secteurs physiques sans se soucier du système de fichiers la carte SD est idéale pour ça.
Daniel
L'obstacle augmente mon ardeur.
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Interpréteur de jeux Infocom pour Thomson ?

Message par __sam__ »

En plus comme ces jeux sont lent de base, on peut imaginer streamer de la musique en tache de fond depuis la carte SD (SDStreamer). Mais... hum... a votre avis, les jeux purement textuels sont-ils intéressant ou pas ?

J'avoue avoir un doute car perso après avoir vu les vidéos avec du texte en MAJUSCULE noir & vert en 32x24, je suis un peu dubitatif. Ca n'a pas l'air très motivant à suivre en tant que spectateur pour être franc. Perso je suis plus fan des jeux d'aventure de lucas-art dans lesquels j'aimais découvrir ce qu'il y a sur la planche graphique suivante ce qui fait que même avec une vidéo youtube "ca le fait", or là question graphisme... heu... bref rien quoi.

Après reste l'aspect intellectuel de porter le code depuis le TRS-80 qui est intéressant, mais ca ne met pas en valeur spécialement le thomson.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Répondre