Programmer en C pour la Prizm, bis
Posté le 14/02/2012 13:01
Salut à tous! Dans la suite du précédent topic, voici la démarche pour installer le PrizmSDK et l'utiliser.
Honnêtement, je préfère le PrizmSDK (je l'appelle généralement PSDK), il est basé sur GCC, est portable et ne dépend pas du compilateur de Casio/Renesas. Je m'en sers pour tous mes projets sur Prizm. Voyons un peu comment on le configure.
1. Téléchargez le zip du PrizmSDK sur le site de Cemetech [
ici].
2. Dézippez le PSDK dans un dossier vide de préférence pour éviter d'écraser tout fichier personnel/important.
3. Voilà ! Il est prêt à être utilisé.
Une fois le PSDK installé, on peut commencer à programmer. Voyons comment on crée un nouveau projet.
1. Dans le dossier project, copier le dossier default, et renommer ladite copie en le nom du projet (par exemple j'ai nommé mon dossier Bust-A-Move)
2. Dans le makefile, remplacer toutes les occurences du mot "defauflt" par le nom du dossier/projet.
3. Le projet est prêt à être codé, compilé et transféré.
Le Makefile est nécéssaire pour le PSDK pour lui indiquer quoi compiler et comment compiler. Observons-le de plus près
TARGET := $(notdir $(CURDIR))
BUILD := build
SOURCES := src
DATA := data
INCLUDES :=
On définit ici le dossier de destination du projet (le TARGET), le dossier où l'on stocke les binaires temporaires par code source (le BUILD), le/les dossiers contenant les sources (le SRC) et le data (je sais pas ce que c'est, j'ai pas fait attention pour le moment)
MKG3AFLAGS := -n basic:Bust-a-Move -i uns:../unselected.bmp -i sel:../selected.bmp
Ici, on indique au programme qui va compiler le .bin en .g3a de nommer l'addin "Bust-a-Move", d'utiliser les icônes unselected.bmp et selected.bmp pour afficher l'addin dans le menu principal (unselected quand l'addin n'est pas survolé et selected quand il l'est.)
On peut nommer l'addin en fonction de la langue désirée, ainsi
-n basic:Bust-a-Move -n fr:Puzzle-Bobble
Va nommer l'addin Puzzle-Bobble quand la calto est en français et Bust-a-Move autrement. On la la possiblité de choisir un nom pour chaque langue ci-dessous
en - Anglais
es - Espagnol
de - Allemand
fr - Cocorico
pt - Portugais
zh - Chinois (bonne chance pour nommer l'addin en idéogrammes, j'ai pas testé).
Une dernière ligne? Le reste n'est pas modifiable sauf si vous voulez casser le Makefile.
CFLAGS = -Os -std=c99 -Wall $(MACHDEP) $(INCLUDE)
Ici, on indique quelques options pour le compilateur lui-même :
-Os = optimiser la taille du programme au détriment des éventuelles optimisations de performance
-std=c99 = utiliser le langage C en version 1999, on peut ainsi utiliser les rajouts faits pour le C99 (comme déclarer une variable plus ou moins partout).
-Wall = je l'appelle le mur mais ça veut dire Warning ALL. Affiche [b]tous[/b] les warnings. Je considère cette option comme [b]OBLIGATOIRE[/b] car elle montre toute portion de code pouvant être relativement trouble pour le compilateur.
Compiler et nettoyer.
Pour compiler, lancez le make.bat. Il va lancer la procédure de compilation en utilisant le Makefile. Ca permet par exemple de ne recompiler que les fichiers sources qui ont été modifiés. Si, pour des raisons diverses (utilisation de clé usb, changement de dossier...) ça ne compile plus, essayez d'abord de lancer clean.bat, puis make.bat
Transférer automatiquement le g3a à la Prizm.
Prérequis : On va renommer le stockage de la Prizm en "PRIZM". Pour ce faire, branchez la Prizm et entrez en mode USB. Son stockage devrait s'afficher dans l'Ordinateur/Poste de travail. Clic-droit dessus puis renommez en "PRIZM". Ca permettra ensuite à mon outil de reconnaître la calto.
J'ai conçu un petit batch windows qui permet de trouver la calto par le nom de son stockage, créez dans votre dossier de projet un fichier "copy.bat" et collez-y ce code-ci
@echo off
SET /A ligneCourante=0
for %%i in (A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z) do (
if exist "%%i:" (
FOR /F "usebackq tokens=7* delims= " %%A in (`VOL %%i:`) DO (
IF %ligneCourante%==0 (
if "%%B" == "PRIZM" (echo Prizm trouvée!
echo Elle etait en %%i:
xcopy *.g3a %%i:\ /Y /Q
pause
echo "-Fin-"
exit
)
SET /A ligneCourante+=1
)
)
)
echo Prizm au Nom de PRIZM introuvable. Verifiez le branchement et le nom du sotckage de la Prizm.
pause
Quand vous voudrez transférer, vous n'aurez qu'à brancher la calto et une fois qu'elle est reconnue, double-clic sur le batch pour lancer la copie!
Et voilà, vous savez le nécessaire pour créer un projet et transférer un addin automatiquement. Amusez-vous bien!
Citer : Posté le 06/12/2013 21:40 | #
Ah, dommage :(.
Citer : Posté le 09/12/2013 20:57 | #
Si, normalement, il est possible de compiler en c++ même si le sdk est basé sur GCC... En revanche, il me semble que ce n'est pas toptop, enfin, que le sdk est plus adapté pour du C.
The PrizmSDK is a community-created SDK for writing C/C++ programs for the Casio Prizm. Casio, as of now, has shown no plans of making and releasing an official SDK. The PrizmSDK contains headers, libraries, scripts, and a build system for developing programs using GCC
Regarde là aussi : http://www.cemetech.net/forum/viewtopic.php?p=213402&switchmobile=0 , même si c'est récent, ça peut peut être t'apporter une réponse et le sujet va sans-doute être développé dans les jours qui viennent ;).
Ajouté le 15/12/2013 à 18:02 :
Je sais pas si t'as avancé sur la question, mais j'ai quelques infos en plus...
Déjà, dans le Makefile, t'as une partie qui commence comme ça :
# use CXX for linking C++ projects, CC for standard C
#---------------------------------------------------------------------------------
Et c'est déjà rempli comme il faut dans le makefile standard pour du C++ apparemment (le mien qui est relativement standard et celui d'un projet en C++ étant identiques à ce niveau là)...
Ensuite, tu peux ajouter un -std=c++11 dans les Cflags .
Enfin, j'ai trouvé ça, mais n'ayant jamais fait trop de C++, je n'ai pas fait de tests, si jamais tu veux essayer ça ;).
Au pire tu peux aller chercher le makefile (ou autre) de eigenmath sur github par exemple, qui est programmé en C++ !
Citer : Posté le 04/06/2014 15:54 | #
ou est le copy.bat :huh:
Citer : Posté le 05/06/2014 18:29 | #
@Nemhardy : J'ai testé et ça marche très bien, merci (je n'ai pas rajouter std=c++11)
J'ai aussi dû modifier les extensions .c en .cpp
Citer : Posté le 05/06/2014 18:57 | #
Cool alors !
En plus si ça te rend certaines choses plus pratiques pour continuer ton Zelda 8) .
Citer : Posté le 13/06/2014 22:46 | #
Copy.bat Sur windows, renommez le disque de stockage de la prizm en PRIZM.
@echo off
REM H,I,J,K,
SET /A ligneCourante=0
for %%i in (A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z) do (
if exist "%%i:" (
FOR /F "usebackq tokens=7* delims= " %%A in (`VOL %%i:`) DO (
IF %ligneCourante%==0 (
REM ECHO Nom: %%B
if "%%B" == "PRIZM" (echo FOUND
echo Elle etait en %%i:
xcopy *.g3a %%i:\ /Y /Q
pause
exit
)
) ELSE (
REM ECHO Série: %%B
)
SET /A ligneCourante+=1
)
)
)
echo Prizm au Nom de PRIZM introuvable.
pause
Ajouté le 28/06/2014 à 17:34 :
Grosse mise à jour du tutoriel. (enfin!)
Citer : Posté le 29/06/2014 18:38 | #
Sympa
J'ai appris des choses
Zelda de Smashmaster
Super Geek Brothers de Siapran
Pac-Man
Pac-Man Color
Meta Ball
Add-ins Jetpack Joyride et Pac-Man sur PRIZM (les 2 non commencés mais en réflexion)
A la recherche des sprites jetpack Joride si quelqu'un les a en couleur
Citer : Posté le 03/07/2014 20:25 | #
J'ai envie de préciser davantage le fonctionnement du Makefile mais ça n'aurait pas sa place ici.
Citer : Posté le 29/07/2014 22:33 | #
est ce que l'on peut modifier la version de l'addin?
Citer : Posté le 30/07/2014 08:38 | #
Je ne sais pas si tu le peux directement, mais au pire tu modifies dans le g3a les 10 octets à l'offset 0x130 sous la forme "01.00.0000" (avec les points).
Citer : Posté le 30/07/2014 10:44 | #
Tu peux aussi le modifier en ajoutant l'option "-V" à l'appel de mkg3a, pour en savoir plus tu peux invoquer l'aide de mkg3a (qui devrait le détailler à mon avis), ou sinon tu as la doc de mkg3a.
Citer : Posté le 13/08/2014 10:59 | #
Bonjour, j'ai essayé de lancer le make.bat en ne mettant pas le projet dans le dossier projet
J'ai modifié le fichier make.bat et faisant
exemple C:\Users\Yoann\Documents\dir\make.exe %*
mais ça me donne une erreur
make: *** No targets specified and no makefile found. Stop.
Quelqu'un a une idée pour remédier à ça???
Citer : Posté le 13/08/2014 11:29 | #
Il faut que tu exécutes make en étant dans le répertoire où se situe le makefile, et donc le projet en général.
Sinon, tu peux aussi lui passer le makefile en argument, ce qui est peut être plus pratique dans ton cas (je ne sais pas comment tu t'es organisé) : regarde par ici.
Citer : Posté le 14/08/2014 18:41 | #
y a t'il un argument pour que certains messages comme
ne s'affichent pas
Citer : Posté le 16/08/2014 22:53 | #
Au fait, yaurais pas une balise [/code] ou
Sinon bon tuto ;)
Citer : Posté le 17/08/2014 11:25 | #
Merci de la remarque. J'ai corrigé.
Citer : Posté le 23/08/2014 14:47 | #
est ce que l'on peut programmer en C++ avec la configuration standard car dans le Makefile.old
il y a
Mais il n'y a pas
Citer : Posté le 23/08/2014 14:50 | #
Ça dépend si en compilant gcc on a utilisé
ou pas.
Citer : Posté le 23/08/2014 14:58 | #
tu aurais un idée pour faire disparaitre les messages
des sorties de compilation
Citer : Posté le 23/08/2014 14:59 | #
Yep, il faut ajouter un symbole particulier au début de la ligne de commade du Makefile. Je te dis dans une minute.
Ajouté le 23/08/2014 à 15:00 :
C'est le '@'
Citer : Posté le 23/08/2014 15:06 | #
est ce que l'on peut programmer en C++ avec la configuration standard car dans le Makefile.old
il y a
Mais il n'y a pas