Nouveau jeu VG5000 : MABOOL

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
Rhod
Messages : 12135
Inscription : 09 avr. 2007 09:54
Localisation : Orléans
Contact :

Nouveau jeu VG5000 : MABOOL

Message par Rhod »

Vu sur FB

Here the first release of my VG5000µ game "MABOOL" in K7 file format.
https://github.com/FreeTalent-BB/mabool-vg5000
Type CLOAD"MABOOL" to launch the game.

Image
Markerror
Messages : 2121
Inscription : 31 oct. 2011 19:21
Localisation : Orléans
Contact :

Re: Nouveau jeu VG5000 : MABOOL

Message par Markerror »

C'est un jeu créé dans le cadre de l'initiative sur Facebook pour alimenter les ordinateurs délaissés en logiciels. Ca semble tout mignon, les graphismes sont réussis.

Je n'ai pas pu le tester, car il n'y a pas sur Github le résultat final des sources. J'ai pas forcément envie d'installer une machine virtuelle Java sur le PC que j'utilise en congés. Ca manque aussi d'informations sur la marche à suivre même si j'imagine que ce n'est pas bien compliqué. Une petite diffusion sous la forme d'un fichier .K7 serait le bienvenue Baptiste !
Avatar de l’utilisateur
Mokona
Messages : 1036
Inscription : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Re: Nouveau jeu VG5000 : MABOOL

Message par Mokona »

Hello,

le fichier k7 est disponible dans le répertoire 'k7' du projet sur github.

J'ai fait une petite capture du un vrai vg5000. Aller vers 2' pour voir quelque chose de concret (l'écran de titre est réussi... mais on n'a pas le temps de le voir à cause d'un petit bug dont je parle sur Facebook)

Avatar de l’utilisateur
Carl
Modérateur
Messages : 13232
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: Nouveau jeu VG5000 : MABOOL

Message par Carl »

le fichier k7 + cover :
MABOOL-R1.zip
(1.41 Mio) Téléchargé 58 fois
Avatar de l’utilisateur
Leraptor06
Messages : 658
Inscription : 15 févr. 2022 10:34
Localisation : Mandelieu

Re: Nouveau jeu VG5000 : MABOOL

Message par Leraptor06 »

merci carl
Jp
Daniel
Messages : 17286
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Nouveau jeu VG5000 : MABOOL

Message par Daniel »

Le BASIC est vraiment lent, surtout pour le chargement des tableaux. Le même jeu en assembleur aurait plus de succès.
Daniel
L'obstacle augmente mon ardeur.
Avatar de l’utilisateur
Carl
Modérateur
Messages : 13232
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: Nouveau jeu VG5000 : MABOOL

Message par Carl »

la version VY 5040 (carte SD) :
DISKC.7z
(15.18 Kio) Téléchargé 50 fois
Carl
Markerror
Messages : 2121
Inscription : 31 oct. 2011 19:21
Localisation : Orléans
Contact :

Re: Nouveau jeu VG5000 : MABOOL

Message par Markerror »

Bonjour,

J'ai enfin pu voir cette merveille ! Même en restant 100% Basic, je pense qu'il y a moyen d'améliorer significativement la vitesse d'affichage des niveaux.

Le plus évident est de remplacer les PRINT CHR$(machin) par PRINT"<caractère>". On gagne de la place sur les lignes et c'est probablement un peu plus rapide (et on gagne deux octets par caractère !). Remplacer la batterie de IF par un ON x GOTO sur les lignes 30 à 43 serait aussi une bonne idée.

En regardant le code, j'ai eu la surprise de constater que des lignes dépassaient les 128 caractères. Evidemment, avec l'éditeur du VG 5000, ça ne fonctionne pas, mais l'interpréteur lui semble donc supporter plus de caractères.

Pour le bug signalé par Mokona sur Facebook, oui, les commandes stickx et sticky n'apprécient pas trop l'absence d'une interface manette, et retournent régulièrement des valeurs bidons. C'est un bon moyen de détection de la présence de l'interface en fait en utilisant une petite boucle d'interrogation comme dans Coloric. Ca évite ainsi de proposer à l'utilisateur un périphériques inexistant.
Avatar de l’utilisateur
hlide
Messages : 3456
Inscription : 29 nov. 2017 10:23

Re: Nouveau jeu VG5000 : MABOOL

Message par hlide »

Et peut-être une version assembleur comme ce fut le cas pour "Lode Runner" ? on n'arrête pas le chalenge.
Baptiste
Messages : 121
Inscription : 11 mars 2013 15:17
Localisation : Vernouillet (78)

Re: Nouveau jeu VG5000 : MABOOL

Message par Baptiste »

Bonjour à tous,

Merci pour vos retours sur mon programme. C'est toujours appréciable de voir d'autres personnes s'intéresser à mon travail :)

C'est mon premier programme pour le VG5000 et j'ai été assez surpris par la vitesse d'exécution du BASIC par rapport au BASIC des THOMSON MO/TO, dont le portage de MABOOL est en cours. Clairement remplacer la routine d'affichage des tableaux par une routine en ASM suffirait. C'est le vrai point noir du jeu car la jouabilité reste correcte, même en BASIC.

Seul hic! Je ne connais rien en ASM...

J'ai suivi les suggestions de Markerror. J'ai remplacé les Chr$() par le caractère lui-même. Effectivement, je gagne de l'espace mémoire, ce qui me permettra de proposer peut-être quelques tableaux en plus ;)
Rien ne sert de courir, en plus tu risques de tomber.
Avatar de l’utilisateur
hlide
Messages : 3456
Inscription : 29 nov. 2017 10:23

Re: Nouveau jeu VG5000 : MABOOL

Message par hlide »

Salut Baptiste,

le coup de l'assembleur, c'était plus une une blague ;)
Markerror
Messages : 2121
Inscription : 31 oct. 2011 19:21
Localisation : Orléans
Contact :

Re: Nouveau jeu VG5000 : MABOOL

Message par Markerror »

Bon, j'ai pas pu résister au petit jeu de l'optimisation :-). J'ai renommé les lignes avec un pas de 10 pour pouvoir bricoler en faisant un RENUM sans paramètre lorsque le listing était en mémoire dans le VG 5000 (et après, LLIST et hop, un beau listing).

Pour pouvoir remplacer systématiquement les CHR$() par un caractère, j'ai changé le SETEG 34 en SETEG 118.

Le code ci-dessous utilise la commande ON xx GOTO, ce qui permet de gagner du temps sur l'affichage.
J'ai viré dans les commandes PRINT les + qui sont ici inutiles (gain de place et un peu de temps je pense).
J'ai viré l'affichage systématique de la ligne "LOADING.... " et la conversion en chaine du pourcentage.
J'ai viré la variable C, le test de fin de ligne pouvant être détecté avec MX.
Enfin, quand c'est possible (la plupart du temps), j'ai viré les paramètres sur les commandes ET EG TX et GR

Seule chose dont je ne suis pas sûr à 100%, la ligne 291. J'ai supprimé l'affichage de ce qui est apparemment la tuile "vide".

On pourrait gratter un peu en raccourcissant par exemple la variable i4$ en i$.

Dans le listing, il y a aussi une variable MOV qui est trop longue (seules les deux premières lettres sont significatives)

270 MX=4:MY=2:J0=0:J6=0:P=1:W8=0:Q0=0:NT=1
280 ET7,0,0:CURSORX10:CURSORY24:PRINT"LOADING STAGE...";
290 MV=F5(P):EGU8:CURSORXMX:CURSORYMY
291 IFMV=0 THEN 450: REM THEN EGU8,2:PRINT"oo"I4$"oo":GOTO 450
292 ON MV GOTO 310,320,330,340,350,360,370,370,380,380,380,390,390,390,390,390,400,400,410,410,420,430
293 GOTO 440
310 PRINT" !"I4$"FG":GOTO 450
320 PRINT"vv"I4$"vv":GOTO 450
330 PRINT"#$"I4$"HI":GOTO 450
340 PRINT"%&"I4$"JK":Z1(NT)=MX:Z1(NT+1)=MY:Z1(NT+2)=P:NT=NT+3:GOTO 450
350 PRINT"'("I4$"LM":GOTO 450
360 PRINT")*"I4$"NO":P3=MX:V7=MY:W8=P:GOTO 450
370 PRINT"-."I4$"RS":GOTO 450
380 PRINT"23"I4$"XY":V8=MX:C1=MY:Q0=P:F5(Q0)=2:GOTO 450
390 PRINT"<="I4$"bc":J0=J0+1:GOTO 450
400 PRINT"@A"I4$"fg":J6=J6+1:GOTO 450
410 PRINT"DE"I4$"jk":GOTO 450
420 PRINT"lm"I4$"lm":Y4=Y4+1:Q2(Y4)=P:Q7(Y4)=MX:F7(Y4)=MY:GOTO 450
430 PRINT"nn"I4$"rr":Y4=Y4+1:Q2(Y4)=P:Q7(Y4)=MX:F7(Y4)=MY:GOTO 450
440 IFMV=41THENPRINT"pq"I4$"tu"
450 MX=MX+2:P=P+1:ET7:CURSORX27:CURSORY24:PRINT INT((100/160)*P)" %";
451 IF MX=36THENMY=MY+2:MX=4
460 IFP<160THEN 290

On peut encore accélérer l'affichage en jouant avec la commande DISPLAY (ex : DISPLAY 100 en 280). Le niveau s'affiche par à-coup mais ça va beaucoup plus vite (évidemment, le pourcentage d'affichage n'est plus très progressif... ).

Si tu comptes faire une autre version avec beaucoup plus de niveaux, n'hésite pas à utiliser 32ko. Les utilisateurs actifs de VG 5000 ont habituellement en stock soit une VG5216, soit une VY-5040 ou une extension mémoire maison. Conserver par contre une version 16ko est pour moi obligatoire, afin que d'éventuels nouveaux utilisateurs puissent utiliser une machine de base.
Dernière modification par Markerror le 30 juil. 2022 11:46, modifié 1 fois.
Baptiste
Messages : 121
Inscription : 11 mars 2013 15:17
Localisation : Vernouillet (78)

Re: Nouveau jeu VG5000 : MABOOL

Message par Baptiste »

Merci Markerror ;)

Je ne savais pas que l'on pouvait supprimer le + de la concaténation de chaîne. Je vais ajouté cela à mon transpiler RSCRIPT.

Pour info, les sources du jeu sont sur le github (dans src). Ceux sont les fichiers .rscript qui sont transformés par mon transpiler RSCRIPT. Cela permet de coder avec les anciens BASIC, de manière un peu plus moderne (pas de N° de ligne, utilisation d'étiquettes, compression du code, renommage des variables, inclusion de code...).

Il y a également 2 petits outils qui permettent de transformer une image en caractères utilisateurs et les cartes de jeu au format TMX (créées avec TILED) en ligne de DATA dans le code.
Rien ne sert de courir, en plus tu risques de tomber.
Markerror
Messages : 2121
Inscription : 31 oct. 2011 19:21
Localisation : Orléans
Contact :

Re: Nouveau jeu VG5000 : MABOOL

Message par Markerror »

Le Basic du VG5000 est assez primitif et incomplet, mais on sent qu'il a été optimisé pour occuper le minimum de mémoire. Il y a pas mal de petites choses classiques (comme remplacer le IF THEN GOTO par des IF THEN (deux octets en moins) ) ou plus tordues (comme la suppression du guillemet à la fin de l'affichage d'un texte). J'essaie de documenter un peu tout ça au fil de l'eau dans l'article ci-dessous, mais ce n'est pas complet.

http://vg5000bazar.free.fr/html/articles/bugs_basic.htm

Pour ma part, je code presque à l'ancienne sur VG 5000. Seule concession à la modernité, j'utilise un éditeur de texte sur PC pour taper le texte (et l'injecter dans l'émulateur de Daniel). C'est certainement moins efficace que ta méthode, mais on ne se refait pas :-).
Avatar de l’utilisateur
Mokona
Messages : 1036
Inscription : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Re: Nouveau jeu VG5000 : MABOOL

Message par Mokona »

Oh excellent cette page, je n'étais jamais tombée dessus. Merci d'avoir recensé tout ça.
Répondre