[MO6][ugBasic] Creepy Carrots
Modérateurs : Papy.G, fneck, Carl
[MO6][ugBasic] Creepy Carrots
Nouveau jeu pour MO6, le premier jeu d'action que j'écris avec des performances en langage machine.
Il s'agit d'un clone de Manic Miner dans lequel vous devez collecter toutes les carottes et atteindre la sortie du niveau.
Le jeu est avant tout un prétexte pour montrer la puissance actuelle d' ugBasic : graphismes en 160x200x16, échange de pages vidéo, gestion de 3 banques de RAM en plus de la mémoire principale, lecture de plusieurs touches du clavier en même temps, et même si elles ne sont pas encore fournis de fonctions pour le son il est possible d'insérer de l'ASM inline donc le son présent dans le jeu est généré entièrement avec les routines NOTEH et les notes sont passées en valeur entre le code ugBasic et l'ASM.
ugBasic de spotlessmind1975 a apporté d'énormes améliorations et actuellement il est possible de gérer jusqu'à 28 Ko de code et 3 banques de graphiques, de cette façon j'ai pu insérer jusqu'à 4 niveaux différents, une limitation toujours présente est celle de l'insertion des données série directement dans le code mais avec spotlessmind1975 nous pensions déplacer la gestion des baies vers les bancs, ce qui combiné au chargement depuis le périphérique éliminerait toute limite technique pour créer des produits plus complexes.
L’avantage d’écrire avec ugBasic en termes de rapport temps/résultat est cependant très élevé. J'ai écrit ce jeu en quelques nuits alors qu'en ASM pur cela m'aurait pris beaucoup plus de temps. Par exemple, ugBasic charge et dessine une image avec une seule commande, adapte lui-même les formats d'image et calibre très précisément la palette du MO6 directement à partir des couleurs de l'image. L'économie de main d'œuvre est telle qu'elle nous permet de créer des jeux performants en peu de temps et ouvre la voie aux programmeurs qui voudraient écrire quelque chose pour cette machine mais sont souvent découragés par la lenteur du BASIC ou les inconvénients de l'ASM.
Ici vous pouvez télécharger les sources et le .k7 :
https://github.com/cttpla/Creepy-Carrots
Démarrez le jeu en BASIC 128 mode en écrivant :
CLEAR,&H2FFF: LOADM"CASS:",,R: EXEC
Enjoy!
Il s'agit d'un clone de Manic Miner dans lequel vous devez collecter toutes les carottes et atteindre la sortie du niveau.
Le jeu est avant tout un prétexte pour montrer la puissance actuelle d' ugBasic : graphismes en 160x200x16, échange de pages vidéo, gestion de 3 banques de RAM en plus de la mémoire principale, lecture de plusieurs touches du clavier en même temps, et même si elles ne sont pas encore fournis de fonctions pour le son il est possible d'insérer de l'ASM inline donc le son présent dans le jeu est généré entièrement avec les routines NOTEH et les notes sont passées en valeur entre le code ugBasic et l'ASM.
ugBasic de spotlessmind1975 a apporté d'énormes améliorations et actuellement il est possible de gérer jusqu'à 28 Ko de code et 3 banques de graphiques, de cette façon j'ai pu insérer jusqu'à 4 niveaux différents, une limitation toujours présente est celle de l'insertion des données série directement dans le code mais avec spotlessmind1975 nous pensions déplacer la gestion des baies vers les bancs, ce qui combiné au chargement depuis le périphérique éliminerait toute limite technique pour créer des produits plus complexes.
L’avantage d’écrire avec ugBasic en termes de rapport temps/résultat est cependant très élevé. J'ai écrit ce jeu en quelques nuits alors qu'en ASM pur cela m'aurait pris beaucoup plus de temps. Par exemple, ugBasic charge et dessine une image avec une seule commande, adapte lui-même les formats d'image et calibre très précisément la palette du MO6 directement à partir des couleurs de l'image. L'économie de main d'œuvre est telle qu'elle nous permet de créer des jeux performants en peu de temps et ouvre la voie aux programmeurs qui voudraient écrire quelque chose pour cette machine mais sont souvent découragés par la lenteur du BASIC ou les inconvénients de l'ASM.
Ici vous pouvez télécharger les sources et le .k7 :
https://github.com/cttpla/Creepy-Carrots
Démarrez le jeu en BASIC 128 mode en écrivant :
CLEAR,&H2FFF: LOADM"CASS:",,R: EXEC
Enjoy!
Dernière modification par Garland le 26 mars 2024 13:25, modifié 1 fois.
-
- Messages : 7989
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: [MO6][ugBasic] Creepy Carrots
Impressionnant ! J'imagine que le jeu marche du coup sur d'autres plateformes, ou est-ce que l'évolution d'ugBasic n'est pas équivalente sur toutes les machines.
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
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Re: [MO6][ugBasic] Creepy Carrots
C'est effectivement impressionnant.
L'animation est plutôt fluide et le jeu semble agréable.
Je n'ai pas de MO6.
L'animation est plutôt fluide et le jeu semble agréable.
Je n'ai pas de MO6.
Recherche: cartouches Mattel Intellivision Imagic (loose)
Star Jacker et Lode Runner sur Yeno/SEGA SC-3000
Star Jacker et Lode Runner sur Yeno/SEGA SC-3000
Re: [MO6][ugBasic] Creepy Carrots
Excellent !
Re: [MO6][ugBasic] Creepy Carrots
Actuellement, il est écrit en utilisant des fonctionnalités spécifiques de MO6 donc je ne pense pas qu'il puisse soudainement fonctionner sur d'autres cibles sans travail supplémentaire, mais ce n'était pas le but du projet, ici je voulais juste montrer ce qui peut être fait aujourd'hui avec ugBasic sur MO5/6 et je dirais que nous sommes déjà à un bon niveau. Quiconque n'est pas un grand expert ASM (comme moi) rêve d'un compilateur depuis des années et nous l'avons enfin, écrire en se souciant uniquement de la business logic supprime un gros blocage au développement donné que nous le faisons en réserve temps
Re: [MO6][ugBasic] Creepy Carrots
Un utilisateur a essayé le jeu sur un vrai MO6 mais il ne se charge pas. Il indique Erreur de périphérique et réinitialise la machine.
Mais ça marche sur DCMOTO... comment puis-je enquêter ?
Merci
Mais ça marche sur DCMOTO... comment puis-je enquêter ?
Merci
Re: [MO6][ugBasic] Creepy Carrots
J'ai essayé avec dcmoto et avec les vraies machines (MO6 et PC128). CLEAR,&H2FFF retourne l'erreur "Out Of Memory" s'il y a un lecteur de disquette connecté. Il faut donc débrancher le lecteur de disquette et le charger avec une cassette. Ce n'est pas pratique.To exec the K7 select BASIC 128 mode then type:
CLEAR,&H2FFF: LOADM"CASS:",R: EXEC
Pour que le jeu fonctionne sur disquette ou sur carte SD il faudrait le charger plus haut en mémoire, par exemple &H3200.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: [MO6][ugBasic] Creepy Carrots
@Daniel il te faudrait une extension 512K pour ton MO6
Re: [MO6][ugBasic] Creepy Carrots
Merci Daniel
Alors est-il possible de le lancer depuis une cassette si le lecteur n'est pas connecté ?
L'utilisateur reçoit une erreur Device I/O et a fait la cassette exactement comme les autres jeux qui fonctionnent pour lui, il n'a même pas de lecteur de disquette, donc je ne comprends pas vraiment pourquoi il a des problèmes de lecture.
Alors est-il possible de le lancer depuis une cassette si le lecteur n'est pas connecté ?
L'utilisateur reçoit une erreur Device I/O et a fait la cassette exactement comme les autres jeux qui fonctionnent pour lui, il n'a même pas de lecteur de disquette, donc je ne comprends pas vraiment pourquoi il a des problèmes de lecture.
- Pièces jointes
-
- 430999993_959593445875030_4393914047419720058_n.jpg (207.8 Kio) Consulté 1008 fois
Re: [MO6][ugBasic] Creepy Carrots
Il y a une erreur de syntaxe dans la commande LOADM. Il faut deux virgules avant le R.
D'autre part, en l'absence de lecteur de disquette, CASS: est inutile. EXE est inutile après un LOADM"",,R et ne sera pas exécuté.
Mais du fait de la double erreur de syntaxe, la ligne de commande est valide (par miracle). Le R en premier paramètre permet de translater le programme de R octets. Si R n'est pas initialisé il vaut zéro et le programme n'est pas translaté. Il n'y a pas de R en deuxième paramètre, donc le LOADM ne lancera pas l'exécution. Heureusement il y a une autre erreur ensuite, l'EXEC inutile. C'est lui qui va démarrer le programme.
Je donne la syntaxe correcte :
La cassette n'est pas un support fiable.
Si le magnétophone lit correctement d'autres cassettes, l'enregistrement de Creepy Carrots est mauvais.
D'autre part, en l'absence de lecteur de disquette, CASS: est inutile. EXE est inutile après un LOADM"",,R et ne sera pas exécuté.
Mais du fait de la double erreur de syntaxe, la ligne de commande est valide (par miracle). Le R en premier paramètre permet de translater le programme de R octets. Si R n'est pas initialisé il vaut zéro et le programme n'est pas translaté. Il n'y a pas de R en deuxième paramètre, donc le LOADM ne lancera pas l'exécution. Heureusement il y a une autre erreur ensuite, l'EXEC inutile. C'est lui qui va démarrer le programme.
Je donne la syntaxe correcte :
Code : Tout sélectionner
CLEAR,&H2FFF:LOADM"",,R
Si le magnétophone lit correctement d'autres cassettes, l'enregistrement de Creepy Carrots est mauvais.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: [MO6][ugBasic] Creepy Carrots
Après conversion au format .sd j'ai pu tester Creepy Carrots avec SDDRIVE sur les vraies machines : PC128 et MO6.
Le jeu fonctionne bien.
Le jeu fonctionne bien.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: [MO6][ugBasic] Creepy Carrots
Excellent, félicitations pour ce nouveau jeu MO6
Re: [MO6][ugBasic] Creepy Carrots
S U P E R !!! Merci Daniel donc si tu veux mettre ce jeu dans la liste DCMOTO n'hésite pas
Re: [MO6][ugBasic] Creepy Carrots
Le jeu a été ajouté au site dcmoto : http://dcmoto.free.fr/programmes/creepy ... index.html
Merci, et félicitations pour cette réalisation !
Merci, et félicitations pour cette réalisation !
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: [MO6][ugBasic] Creepy Carrots
Ca fait plaisir de voir arriver des nouveaux jeux sur Thomson, Bravo