La Place des Développeurs Compilateur BASIC
aoineko
Membre non connecté
Conseiller Municipal
Hello,
Comme vous le savez déjà (normalement), l'association MO5.com (qui œuvre la sauvegarde du patrimoine vidéoludique) est en train créer un jeu sur MSX lors d'une série de Live sur Twitch (le dernier en date était aujourd'hui d'ailleurs).
Ils font leur jeu en BASIC... et c'est donc très très lent.
J'ai lu des choses à propos de compilateur de programme BASIC (notamment Basic-Kun) : quelqu'un a de l'expérience avec ça et connait notamment les limites de ces compilateurs ?
Comme vous le savez déjà (normalement), l'association MO5.com (qui œuvre la sauvegarde du patrimoine vidéoludique) est en train créer un jeu sur MSX lors d'une série de Live sur Twitch (le dernier en date était aujourd'hui d'ailleurs).
Ils font leur jeu en BASIC... et c'est donc très très lent.
J'ai lu des choses à propos de compilateur de programme BASIC (notamment Basic-Kun) : quelqu'un a de l'expérience avec ça et connait notamment les limites de ces compilateurs ?
On est toujours ignorant avant de savoir.
moi je connais quelqu'un
http://msxosaure.wifeo.com/les-bases.php
https://www.dailymotion.com/video/xk6dir
le x-basic (basic kun) est rapide mais a ses limitations sur la taille du programme qui est limité à environ 10 k0
il y a aussi le nestor basic qui est un x-basic super amélioré mais qui demande au moins un MSX 2 avec 128 Ko
http://msxosaure.wifeo.com/les-bases.php
https://www.dailymotion.com/video/xk6dir
le x-basic (basic kun) est rapide mais a ses limitations sur la taille du programme qui est limité à environ 10 k0
il y a aussi le nestor basic qui est un x-basic super amélioré mais qui demande au moins un MSX 2 avec 128 Ko
pour les 2 programmes la compilation se fait directement dans la mémoire du MSX à partir du Basic et il ne génèrent pas de programme compilés éxècutables
il y a aussi le MCBC MSX Club Basic Compiler mais il ne tourne qu'avec un MSX ayant 128 kO de Ram Mappée
il y a aussi le MCBC MSX Club Basic Compiler mais il ne tourne qu'avec un MSX ayant 128 kO de Ram Mappée
ericb59
Membre non connecté
Conseiller Municipal
Hola chicos,
Oui je connais assez bien. j''y ai laissé des heures de ma vie, alors que je n'étais encore qu'un jeune bambin imberbe, en 2012 quand je m'était mis en tête de développer un jeu MSX2 : https://treasureofbabylon.ebsoft.fr
X-Basic / Kun-Basic c'est la même chose.
Nestor Basic c'est une version Améliorée de Kun-Basic, et comme le dit Jipe, c'est plus adapté à un MSX2.
Je dirais que c'est efficace à condition, soit de l'utiliser sur de petite routines, soit sur un programme complet, et du coup faut pas que ca dépasse 10Ko.
Le "compilateur" est chargé en RAM. Le principal inconvénient de cette solution est qu'il compile le code Basic à la volée, autant de fois qu'il est rencontré.
Code example
Ici quand la ligne 1150 est exécutée par le Basic, CALL TURBO ON indique qu'il faut compiler tout le bloque de code qui se termine par CALL TURBO OFF
On passe des variables au bloque de code par la même occasion.
Plus le bloque de code est grand, et plus le temps de compilation est long... Parfois plusieurs secondes.
Ce bout de code une fois compilé ne reste pas en RAM ou ailleurs. Et donc à caque fois que la ligne 1150 est appelée, le bloque de code est compilée à la volée.
Il faut donc faire attention où employer compilation, et ne pas sortir du bloque compilé pour rien...
Sinon, on arrive à une rapidité X10 la plupart du temps. Sauf sur les fonctions graphiques qui ne sont que peut accélérée.
Interrogation : je ne sais pas si ca marche sur MSX1.
Info : Kun Basic est intégré de base dans les MSX2+ de Sanyo
Edité par ericb59 Le 13/02/2023 à 18h04
Oui je connais assez bien. j''y ai laissé des heures de ma vie, alors que je n'étais encore qu'un jeune bambin imberbe, en 2012 quand je m'était mis en tête de développer un jeu MSX2 : https://treasureofbabylon.ebsoft.fr
X-Basic / Kun-Basic c'est la même chose.
Nestor Basic c'est une version Améliorée de Kun-Basic, et comme le dit Jipe, c'est plus adapté à un MSX2.
Je dirais que c'est efficace à condition, soit de l'utiliser sur de petite routines, soit sur un programme complet, et du coup faut pas que ca dépasse 10Ko.
Le "compilateur" est chargé en RAM. Le principal inconvénient de cette solution est qu'il compile le code Basic à la volée, autant de fois qu'il est rencontré.
Code example
Code TEXT :
[b]1150_TURBO ON(P(),O,STA,LVL,PA,NX(),NY(),TQ(),PCS,WI)[/b] 1151 NN=1:KO$="11557373" 1160 DX=TQ(0,3):DY=TQ(1,3) 1170 TIME=0:G=0:WI=0:CP=0:FORY=0TO2:FORX=0TO2:CP=CP+1 1180 IF CP<=PCSTHEN COPY(88+NX(TQ(X,Y)),132+NY(TQ(X,Y)))-(88+NX(TQ(X,Y))+19,132+NY(TQ(X,Y))+19),1TO(88+X*20,72+Y*20),0:G=G+1 1190 IF TQ(X,Y)=G THEN WI=WI+1 1200 NEXTX,Y:P(0)=17:P(1)=1:E=USR(69):IF STA=1ORPA=1THENGOTO1290 1210 IF WI=9 AND STA<>1 THEN P(0)=44:P(1)=1:E=USR(69):P(0)=7:P(1)=&H8C8+LVL:P(2)=1:E=USR(6):TIME=0:GOTO1290 ELSELINE(88+DX*20,72+DY*20)-(88+DX*20+19,72+DY*20+19),0,BF 'win or not 1220 IF TIME<20THEN 1220 1225 A=STICK(O):ON A GOTO1250,1225,1260,1225,1230,1225,1240,1225 1226 IFSTRIG(O)THEN1290 1227 GOTO1225 1230 IF DY-1>-1THEN TQ(DX,DY)=TQ(DX,DY-1):TQ(DX,DY-1)=9:DY=DY-1:GOTO1261 1240 IF DX+1<3THEN TQ(DX,DY)=TQ(DX+1,DY):TQ(DX+1,DY)=9:DX=DX+1:GOTO1261 1250 IF DY+1<3THEN TQ(DX,DY)=TQ(DX,DY+1):TQ(DX,DY+1)=9:DY=DY+1:GOTO1261 1260 IF DX-1>-1THEN TQ(DX,DY)=TQ(DX-1,DY):TQ(DX-1,DY)=9:DX=DX-1:GOTO1261 1261 C$=MID$(KO$,NN,1):D$=MID$(STR$(A),2,1):IFC$=D$THEN NN=NN+1ELSE NN=1 1262 IF NN=9 THENG=0:FORY=0TO2:FORX=0TO2:G=G+1:TQ(X,Y)=G:NEXTX,Y:PCS=9:WI=9 1265 GOTO 1170 1290 ' [b]1300 _TURBO OFF[/b]
Ici quand la ligne 1150 est exécutée par le Basic, CALL TURBO ON indique qu'il faut compiler tout le bloque de code qui se termine par CALL TURBO OFF
On passe des variables au bloque de code par la même occasion.
Plus le bloque de code est grand, et plus le temps de compilation est long... Parfois plusieurs secondes.
Ce bout de code une fois compilé ne reste pas en RAM ou ailleurs. Et donc à caque fois que la ligne 1150 est appelée, le bloque de code est compilée à la volée.
Il faut donc faire attention où employer compilation, et ne pas sortir du bloque compilé pour rien...
Sinon, on arrive à une rapidité X10 la plupart du temps. Sauf sur les fonctions graphiques qui ne sont que peut accélérée.
Interrogation : je ne sais pas si ca marche sur MSX1.
Info : Kun Basic est intégré de base dans les MSX2+ de Sanyo
Edité par ericb59 Le 13/02/2023 à 18h04
On avait fait Penguin Cafe aussi a l'époque sur MSX1, ça montre les limites de ce qu'on peut faire.
j'avais fait un genre de frogger penguin master mind
https://dai.ly/x55tu9
j'avais fait un genre de frogger penguin master mind
https://dai.ly/x55tu9
Le MSXien le plus à l'ouest ... ou presque
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie