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
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 »

__sam__ a écrit : 23 sept. 2020 22:18a votre avis, les jeux purement textuels sont-ils intéressant ou pas ?
Je développe de tel jeux depuis une quinzaine d'années, et je peux t'assurer qu'il existe un public pour ce genre de jeux. Certes ce n'est que du texte, mais l'absence d’illustrations n'est pas plus gênante qu'un bon livre sans images. On appelle même de tels jeux "romans interactifs".

Des versions plus récentes de la "Z-machine" permettent d'illustrer davantage le texte et de mettre des images :

https://www.youtube.com/watch?v=_IqtVcqAEME
nouvelhermes
Messages : 401
Inscription : 22 juil. 2020 20:56

Re: Interpréteur de jeux Infocom pour Thomson ?

Message par nouvelhermes »

Ces jeux sont très intéressant, même s'ils ne sont pas "sexy". Ce n'est pas le mode texte qui pose problème, beaucoup de jeux sont sortis en mode texte au moins jusqu'à la fin des années 80, sans parler des livres-jeux (livres dont vous êtes le héros) entièrement textuels et qui ont connus un grand succès.

Par contre, il faut bien considérer qu'il s'agit plus d'une oeuvre littéraire qu'informatique, et tous les scénarios ne se valent pas. Ils n'ont pas tous non plus la même "profondeur".

Et entre les lucas art (point and click) et les entièrement textuels, il y eut la grande mode du texte avec photo (moins austère)

Mais bon, après on peut aimer (ou pas).

A ce sujet voir le wiki : http://ifwiki.org/index.php/Main_Page (entièrement consacré à la fiction interactive, nom donné à ce type de jeux)
__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__ »

Daniel a écrit : 23 sept. 2020 19:55 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.
Il y aussi autre chose que le système de fichier thomson bride. En effet, le jeu utilise des "blocs" de 256 octets. Et on se dit parfait! Les diskettes thomson haute densité ont aussi 256 octets, donc on pourrait utiliser un vrai fichier disk et l'y accéder par bloc de 256 octets. Ok, sauf que pas de chance, pour le DOS thomson, les secteurs ne font pas 256 octets mais 255. Oui, oui il y a 1/256 de place perdue dans les secteurs du DOS thomson (ca ne sert même pas de CRC). Du coup des secteurs de 255 octets d'une diskette DOS ne marchent pas avec un chargement par bloc de 256 octets. Impossible donc de passer outre les API de l'extramon qui gomment ce problème. Cela limiterait le jeu aux seuls (MO6)/TO8/TO9/TO9+, alors que je pense les TO7/70 et MO5 seraient plus adaptés. Donc je pense que le format diskette non-dos avec des secteurs de 256 octets bien entrelacés est ce qu'il y a de plus simple (sauf quand il s'agira de metre un fichier de jeu sur cette diskette.)
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
Avatar de l’utilisateur
Papy.G
Modérateur
Messages : 3047
Inscription : 10 juin 2014 13:40
Localisation : Haute-Garonne/Gers

Re: Interpréteur de jeux Infocom pour Thomson ?

Message par Papy.G »

La plateforme de prédilection pour ce genre de jeux serait alors la liseuse, ou des consoles portables peu énergivores.
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
hlabrande
Messages : 2
Inscription : 26 sept. 2020 05:21

Re: Interpréteur de jeux Infocom pour Thomson ?

Message par hlabrande »

Bonjour ! Je suis la personne qui a fait le tweet dans le premier message :D
Je suis ravi que ça intéresse des gens, et j'espère pouvoir vous aider !

Sur la question du code asm 6809, c'est le code d'Infocom, qui techniquement est propriété intellectuelle d'Activision. (Je dis techniquement car ils n'ont jamais bronché, même quand quelqu'un a mis tous les fichiers de jeu en ligne, ou quand les archives de code source ont été mises sur Github).
Donc peut-être faudrait-il réécrire un interpréteur, mais c'est tout de même un travail non négligeable.

Il y a des dizaines d'interpréteurs un peu partout, et les standards mentionnés plus haut codifient bien le comportement à recréer. Il y a beaucoup de code sources disponibles, dont en assembleur pour le 6502 (Commodore 8-bit, Oric) ou Z80 (CP/M, TI-84), mais je ne sais pas si ça vous avance (le code pour le CoCo est le seul que je connaissais pour le 6809).

Notez aussi que le format Z-Machine manipule les caractères majuscule et minuscule ; c'est l'interpréteur du CoCo sui convertit tout en majuscules. Quelqu'un a fait un hack pour rétablir l'affichage des minuscules sur CoCoVGA (et aussi pour un affichage 64 col sur CoCo3) : https://thezippsterzone.com/2018/05/11/ ... terpreter/

De façon peut-être plus surprenante, la Z-Machine prend en charge les caractères accentués ; par contre de nombreux interpréteurs n'affichent pas ces caractères correctement. Je viens d'aider la communauté anglophone de TI-99/4A à modifier le code de leur interpréteur pour qu'il puisse afficher les accents, et ça marche.

Pour ce qui est des histoires de place et dee mémoire, je n'y connais pas grand-chose :) mais peut-être qu'en regardant les plateformes sur lesquelles la Z-Machine a été portée, ça aiderait ? Par exemple, ça tourne sur un VIC-20 avec toutes les expansions de RAM (28k de RAM donc), voire même sur une calculatrice scientifique TI-84+CE ou TI-83+ (21k ou 27k de RAM, il me semble - mais les processeurs sont plus puissants que celui des Thomson, donc ils peuvent se permettre des pages plus petites).

Pour ce qui est des trucs de 255 octets, ça me rappelle fortement ce que fait l'interpréteur de TI-99/4A, sur lequel j'ai un peu travaillé (J'ai fait un utilitaire qui prend un fichier z3 et qui crée le fichier au bon format, avec un octet mis à 0 tous les 256 octets et stocké dans un tableau à la fin.): le 256e octet était mis dans un tableau quelque part, et mis à 0 dans le fichier ; l'interpréteur se chargeait de remettre ça dans l'ordre. C'était une histoire de format de disque, j'ai pas tout compris, mais euh... y'a des chances ?

Et enfin, sur les formats de la Z-Machine, quelques précisions (je suis surpris qu'on parle d'adressage jusqu'à 16Mo, mais ptet bien après tout) :
- Z-Machine v3 : 128kb max (machine simple, qui "crache du texte")
- Z-Machine v5 : 256kb max (+ ajout d'opcodes de style de texte, d'attente / input en temps réel, de nettoyage d'écran, de charsets étendus)
- Z-Machine v8 : 512 kb max (seule diff avec z5)
- Z-Machine v6 : permet d'afficher des images ; format rarement pris en charge, pas super bien pensé (Infocom essayait d'éviter la faillite en ajoutant des images), difficile de trouver des outils ou de la doc pour en faire de nos jours.
Le format z3 est en train de renaître en 2020, avec des nouveaux outils pour en créer ; il couvre aussi 80% des jeux Infocom, et également des portages de Scott Adams et des jeux anglais. Le format z5 a été très largement utilisé pendant les années 90, mais les interpréteurs sur micros ont souvent tendance à ramer sur ce format. Le z8 encore plus...

Et, oui, pour finir, un peu de contexte perso : je suis en train de travailler sur un jeu z3 en anglais, "Tristam Island", dont j'ai sorti la démo hier, sur 34 plateformes différentes. (hlabrande.itch.io/tristam-island-demo) Je sors la version complète le 20 novembre (~6-7h de jeu) ; on peut déjà la précommander sur hlabrande.itch.io/tristam-island. Courant 2021 je m'attaque à la traduction en français (+réfection d'interpréteurs pour pouvoir afficher les accents). Et inutile de dire que j'adorerais avoir une version pour Thomson :)
__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__ »

Super message, merci! Il y a plein d'infos qui me manquaient.

Le monde est décidément petit car hier soir je conversais sur IRC avec un amigaïste qui justement vient de terminer l'écriture d'un jeu interactif (https://batteman.itch.io/). Je lui ai compilé rapidement le compilo inform6.3.4 sur amiga (ca compile bien mais plante +/- avec certaines options). J'ai même réalisé que tu étais aussi sur le forum Oric que je fréquente un peu (du coté des astuces graphiques). Décidément très petit ce monde :)

Je dis 16Mo dans la mesure où la structure interne utilise 24bits pour les adresses (3 octets), ce qui permet d'avoir jusqu'à 16Mo. Ce qui est certain c'est que ca va bien au delà de 64ko (16bits, 2 octets). Il y a peut-être d'autres limites ailleurs qui font que c'est moins que 16Mo au total.
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
hlabrande
Messages : 2
Inscription : 26 sept. 2020 05:21

Re: Interpréteur de jeux Infocom pour Thomson ?

Message par hlabrande »

C'est Batteman qui m'a envoyé le lien vers ici :)

Et oui, pour les adresses tu as sûrement raison, c'est juste que Infocom n'a jamais utilisé plus de 256ko et que la majorité de leurs jeux font 128ko. (C'est dans le standard, donc le compilateur actuel fait une fatal error si jamais on dépasse la taille du format spécifié.) Il y a d'autres contraintes, genre la RAM de la machine virtuelle ne doit pas dépasser 64ko, mais c'est un peu technique (mais l'organisation de la mémoire dans les différents formats est très bien documenté).
__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__ »

Vous saviez qu'il existe un compilateur C-ansi pour z-machine ?

http://cowlark.com/vbcc-z-compiler/index.html

Cela signifie qu'on peut faire marcher du code C plu gros que la mémoire vive sur nos vieilles babasses 8 bits. Ca m'intrigue dans la mesure où je pense qu'il y a forcément une limite quelque part.. genre on a pas le "tas" mais juste accès aux 240 octets pour les variables.

Dans tous les cas c'est capable de générer du code z5 à partir d'un jeu d'échec en C: http://cowlark.com/silicon-castles/index.html

sam.
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