Press Shift #5 - Mipjabok (Louloux)
Posté le 15/01/2021 19:13
À tour de rôle, les rédacteurs de Planète Casio présentent un jeu innovant, drôle, beau ou bien conçu. Blockbuster ou trésor oublié, venez (re)découvrir des jeux d'une qualité remarquable ! Aujourd'hui, nous allons voir... Mipjabok de Louloux !
Ceci est mon 1er Press Shift !
Le projet
Bonjour et bienvenue dans ce 5ème Press Shift ! Aujourd'hui nous allons parler de
Mipjabok, un très bon jeu de
Louloux !
Il s'agit d'un jeu de plateforme, on l'on incarne un spectre, ou plutôt
des spectres, puisque l'on peut incarner plusieurs personnages.
De façon générale, c'est le spectre Mipjabok que l'on incarne, mais lui même peut incarner plusieurs personnages, comme Banshy, Bobby, Quadry ou Bluggy.
Mais on peut aussi créer nos personnages, ce qui va nous permettre de mieux passer les obstacles. Mais commençons tout de suite avec...
Un jeu de plateforme très complet
Mipjabok est un jeu très complet, avec ses
22 niveaux, ce qui en fait selon son créateur, Louloux, " le plus grand jeu de plateforme de l'histoire de la programmation sur calculatrices".
Pour ma part, je n'ai pas vérifié !
Ces 22 niveaux sont longs, ce qui en fait un jeu très complet !
Le but du jeu : trouver les 22 clés des 22 niveaux, et ce ne sera pas une mince affaire !
Les personnages
Dans Mipjabok, nous avons le choix entre différents personnages.
Le dernier est un peu particulier puisque c'est un personnage entièrement personnalisable, il coûte 2000 pièces.
Dans ce menu (Menu principal → Magasin), descendez jusqu'en bas puis [SHIFT] (pas besoin d'acheter le personnage modifiable pour le modifier, par contre il faut l'avoir acheté pour l'utiliser), vous allez voir...
Vous arrivez devant cela :
Là, rien de plus simple, [EXE] pour changer l'état d'un "pixel", les flèches pour se diriger et [EXIT] pour sortir.
Si vous avez assez d'argent, vous pouvez acheter ce personnage, c'est [EXE].
Mais justement, comment gagner l'argent ?
A chaque partie, vous amassez de l'argent présent dans les niveaux, et lorsque vous avez assez, vous pouvez acheter un personnage.
Sans plus tarder passons à la suite...
Le système de jeu
Niveau gameplay, rien de plus simple : [SHIFT] pour sauter, et les flèches pour se diriger, comme dans beaucoup de jeux sur calculettes d'ailleurs !
Les blocs sont variés : il y a les blocs "basiques", mais d'autres plus complexes, comme les ascenseurs.
Ces derniers permettent de monter, ou de descendre (selon le sens de l'ascenseur, pour la montée le personnage est attiré vers le haut, l'inverse pour la descente).
Nous pouvons aussi trouver les pics, sur lesquels il ne faut pas tomber sous peine d'un Game Over, écran de Game Over d'ailleurs très stylé (des pixels noirs remplissent peu à peu l'écran), les pièces, dont nous avons vu l'utilité précédemment, les portes (activées par une commande que je ne révèlerais pas, je crois que c'est une sorte d' "easter egg"
), les trampolines, permettant de sauter plus haut, et les clés, qui signent la fin du niveau.
J'ai aussi trouvé les champignons, et autres blocs "décoratifs".
Je ne sais pas si je dois dire ce qu'il se passe à la fin, donc je le mets en spoiler :
! SPOIL !
Enrouler
A la fin des 21 niveaux, votre personnage arrive devant Dracofeu, qui vous pose une énigme, dont je ne donnerais pas la réponse
.
Vous êtes alors redirigé vers un niveau "bonus", qui vous permettra de finir le jeu.
A la fin du jeu, un texte de fin défile expliquant une histoire, pas super claire j'avoue
, entre le bien et le mal.
Le jeu est à présent terminé, mais vous pouvez toujours jouer aux autres niveaux, pour débloquer les personnages qui ne le seraient éventuellement pas encore
Ce Press Shift est à présent terminé, Mipjabok est en tout cas un très bon jeu, et après l'avoir fini 2 fois je ne m'en lasse pas !
Un grand bravo à Louloux, à bientôt pour un nouveau Press Shift, et...
Enjoy !
... et à bientôt sur planet-casio !
Le Press Shift précedent : Press Shift #4 - Aventura, le Royaume Poudingue (Drak)
Citer : Posté le 18/01/2021 17:46 | #
Ah oui j'avoue en vrai !
Citer : Posté le 18/01/2021 17:47 | #
Non, (W) signifie Warning. Ça ne bloque pas la compilation, donc normalement le jeu doit être fonctionnel. Tente de lancer l'émulateur du SDK
Ajouté le 18/01/2021 à 17:52 :
J'en profite pour partager ce topic sur les erreurs du SDK : https://www.planet-casio.com/Fr/forums/topic9775-20-aide-sdk-les-erreurs-de-compilation.html
Citer : Posté le 18/01/2021 18:12 | #
Nan bah j'ai :
Ajouté le 18/01/2021 à 18:15 :
Ha non.
Citer : Posté le 18/01/2021 18:15 | #
Ah oui, faut ajouter MonochromeLib.c à la liste des fichiers dans les options du projet.
Edit : c'était dans le topic que j'ai cité dans mon message précédent. La prochaine fois que tu tombe sur une erreur qui est décrite dedans, je ne répondrais pas.
Citer : Posté le 18/01/2021 18:17 | #
Apparement ca marche, j'avais pas fait "Build all" mais "Build"...
Ajouté le 18/01/2021 à 18:17 :
Après il prend un temps anormal à compiler, là ca fait 10 minutes...
Citer : Posté le 18/01/2021 18:18 | #
T'as un joli screenshot à nous partager du coup ?
Citer : Posté le 18/01/2021 18:18 | #
Comme je l'ai dit : Après il prend un temps anormal à compiler, là ca fait 10 minutes...
Citer : Posté le 18/01/2021 18:19 | #
Comment veux tu que ça fasse 10 minutes si tu avais une erreur il y a moins de 5 minutes ? >_<
Citer : Posté le 18/01/2021 18:21 | #
Oui, je me suis mal exprimé : j'ai du éteindre mon pc il y a 30 minutes environ, ca faisait 10 minutes que ca compilait, et en relancant j'ai eu cette erreur, et là la compilation rame depuis 2 minutes
Citer : Posté le 18/01/2021 18:24 | #
Est-ce que tu peux prendre une capture d'écran de :
– la console de compilation du SDK
– la liste des fichiers du projets dans la fenêtre du SDK
– la liste des fichiers dans le dossier du projet
J'ai pas compilé avec le SDK depuis un bail, mais normalement ça devrait pas prendre plus d'une minute.
Citer : Posté le 18/01/2021 18:31 | # | Fichier joint
En pièce jointe voici le ZIP avec les 3 screens
Citer : Posté le 18/01/2021 18:33 | #
Enlève MonochromeLib.h des fichiers du projet, c'est un bug connu.
Citer : Posté le 18/01/2021 18:58 | # | Fichier joint
Comme demandé sur la shout, voici un zip du projet ! (En pièce jointe)
Citer : Posté le 18/01/2021 19:09 | #
Extrait du fichier MonochromeLib.c. Comme dirait un commentateur de football, y'a de l'idée mais la réalisation laisse à désirer.
void ML_display_vram()
{
char *LCD_register_selector = (char*)0xB4000000, *LCD_data_register = (char*)0xB4010000, *vram;
int i, j;
vram = ML_vram_adress();
for(i=0 ; i<64 ; i++)
{
*LCD_register_selector = 4;
*LCD_data_register = i|192;
*LCD_register_selector = 4;
*LCD_data_register = 0;
*LCD_register_selector = 7;
for(j=0 ; j<16 ; j++) *LCD_data_register = *vram++;
}
Bdisp_PutDisp_DD(
}
#endif
Je te laisse deviner ce qui ne va pas là dedans, et relire les messages de Lephe.
Citer : Posté le 18/01/2021 19:41 | #
Bdisp_PutDisp_DD() à mettre dans le for ?
Citer : Posté le 18/01/2021 19:43 | #
Je suis sympa
Ah c'est sans doute parce que ML_display_vram() ne gère pas le projecteur. Tu peux tenter de recompiler Mipjabok avec un Bdisp_PutDisp_DD() dans le corps de ML_display_vram(), ça devrait faire marcher ScreenReceiver (et p7screen).
Citer : Posté le 18/01/2021 19:52 | #
J'avais bien vu ce message, mais c'est quoi le corps d'une fonction ?
Ajouté le 18/01/2021 à 20:04 :
Attend... c'est une erreur de ton copier coller ou Bdisp_Putdisp_DD() n'a pas sa parenthèse refermée ?(je ne peux pas verifier)
Ajouté le 18/01/2021 à 20:07 :
Nanan, je viens de vérifier, j'ai oublié une parenthèse la hooonte
Sincèrement, désolééé
Citer : Posté le 18/01/2021 22:12 | #
D'une part il manque autre chose que la parenthèse, et d'autre part le message de Lephe consiste à dire :
Pour que le ScreenReceiver fonctionne, il faut que la fonction qui affiche à l'écran (ici ML_display_vram) soit remplacée par Bdisp_PutDisp_DD.
Pour cela, tu as deux solutions :
– soit tu parcours tout le code de Mipjabok et tu remplaces tous les ML_display_vram par des Bdisp_PutDisp_DD
– soit tu remplace le code de ML_display_vram par un appel à Bdisp_PutDisp_DD. Dans ce cas chaque appel de ML_display_vram ne fera que appeler "en cascade" Bdisp_PutDisp_DD, ce qui est plus commode que la solution 1.
Muni de ces informations, je te laisse faire la modification nécessaire.
Citer : Posté le 19/01/2021 06:59 | #
Ah d'accord ! Merci beaucoup, je vais essayer la seconde solution !
Ajouté le 19/01/2021 à 18:38 :
Malheureusement, le build en ayant changé tout ça n'a pas l'air plus concluant (même problème, ca build pas...)...
Citer : Posté le 19/01/2021 18:50 | #
Comme d'hab, un bout de code que tu pense être fautif serait le bienvenu.
Au pif le code de ML_display_vram
Citer : Posté le 19/01/2021 18:51 | #
Le voici :
void ML_display_vram()
{
Bdisp_PutDisp_DD();
}
#endif