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 18/04/2012 13:10 | #
Pile à temps pour ce week-end !
Vitesse des fonctions en Basic Casio | 7 days CPC | Casio Universal Wiki | Tutoriel Basic Casio
>>> Give me a click Brother <<< >>> Teste mon générateur de mots nouveaux <<<
>>> Random Youtube Video <<<
Citer : Posté le 19/12/2012 20:18 | #
Je viens d'essayer le GUI pour le prizmSDK, lorsque je compile un projet que j'avais créé avec ce GUI j'ai toujours 0 Error et 0 Warning dans la fenêtre "Errors ans Warnings", mais si je regarde le fichier Projet/<nom du projet>/output.txt je vois que le fichier .txt n'est pas vide et contient :
D:/PrizmSDK-0.3/PrizmSDK-0.3/projects/test/src/main.c: In function 'main':
D:/PrizmSDK-0.3/PrizmSDK-0.3/projects/test/src/main.c:6:2: warning: 'return' with a value, in function returning void [enabled by default]
Citer : Posté le 20/12/2012 19:23 | #
Dans les options du compiler, essaye de rajouter "-Wall", ça force l'affichage de tous les warnings
Citer : Posté le 20/12/2012 19:41 | #
Sympas tout ça, même si je n'ai pas de prizm, je vais voir ce que ce sdk a dans le ventre.
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed
-mon tuto sur les Str
Mes calto: G25+, G75
Mon minecraft en dévelopement
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
Citer : Posté le 20/12/2012 20:46 | #
Il y a déjà -Wall dans les options
Citer : Posté le 20/12/2012 21:42 | #
Ah bah après, j'en sais rien, j'aime bien utiliser le SDK sans GUI, alors...
Citer : Posté le 24/12/2012 09:20 | #
si la compilation se bloque (elle ne fait plus rien du tout, mais n'est pas finie) , il faut faire quoi?
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2
merci a tout le monde pour son soutien
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm
(dont je connais le nom, mais pas vous )Arcuz !Citer : Posté le 07/01/2013 16:03 | #
C'est à dire? Ca donne quoi?
Citer : Posté le 07/01/2013 19:28 | #
la console reste en train de compiler. mais j'ai trouver la solution, plutot que de passer un tableau de 10000 short en argument d'une fonction, je le met en variable globale et ca marche...
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2
merci a tout le monde pour son soutien
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm
(dont je connais le nom, mais pas vous )Arcuz !Citer : Posté le 07/01/2013 22:00 | #
Oui, vaut mieux :S
Attends, le compilo essaye d'optimiser un passage d'un tableau? EN théorie ça ne devrait pas être compliqué si tu envoies juste l'adresse du tableau...
Citer : Posté le 09/09/2013 20:28 | #
On le trouve où make.bat
Ajouté le 09/09/2013 à 20:32 :
Trouvé
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 09/09/2013 21:05 | #
Hpmf. Si je reprends ce tuto, c'est pour un faire un maxi, avec toutes les fonctions graphiques à notre disposition...
Citer : Posté le 21/10/2013 12:09 | # | Fichier joint
je suis en train de tester ma librairie pour la prizm, mais les erreurs de mon codes ne s'affiche pas dans la fenêtre "errors and warnings". je ne sais pas quoi modifier dans mon makefile.
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 21/10/2013 12:31 | #
T'as déjà réussi/essayé a compiler autre chose que la lib ?
Si non vérifies que tu n'ais pas d'espaces dans le chemin de ton sdk, dans aucun dossier parent je veux dire, je sais pas si je m'exprime bien
Après, perso, j'utilise pas le GUI, je préfère le make.bat , donc je suis peut être pas le mieux plaçé pour t'aider
Sinon, comme dit plus haut, essaye de rajouter un -Wall dans les options du compiler
Citer : Posté le 21/10/2013 12:40 | #
Sur mon nouveau ordi, jamais. Je test
Ajouté le 21/10/2013 à 12:43 :
ça ne fonctionne pas.
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 21/10/2013 12:46 | #
Et avec le make.bat directement ?
Citer : Posté le 21/10/2013 12:47 | #
je pense que le problemem viens du makefile:oops:
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 21/10/2013 14:00 | #
Ah ! je pense avoir trouvé, je fais un test et je te dis ça !
Ajouté le 21/10/2013 à 14:02 :
Voila, en fait, suffisait d'ajouter un "pause" dans le make.bat : les erreurs s'affichaient bien, mais en mode "flash !".
Après, est-ce-que ça va changer quelque chose avec le GUI, je ne sais pas, mais en compilation de base ça suffit !
Citer : Posté le 21/10/2013 14:59 | #
ok merci en ajoutant pause a la fin cela fonctionne (on voit les erreurs) si on le lance a la main. Mais les erreurs ne sont toujours pas reporter dans la fenêtre errors and warnings avec le GUI.
Ajouté le 21/10/2013 à 15:40 :
je pense que personne n'a jamais eu d'erreur comme cela :
-0.3/projects/colorlib1/src/colorlib1.c -o colorlib1.o
C:/PrizmSDK-0.3/projects/colorlib1/src/colorlib1.c:3:6: warning: return type of 'main' is not 'int' [-Wmain]
C:/PrizmSDK-0.3/projects/colorlib1/src/colorlib1.c: In function 'main':
C:/PrizmSDK-0.3/projects/colorlib1/src/colorlib1.c:7:9: warning: implicit declaration of function 'GetKey' [-Wimplicit-function-declaration]
sh3eb-elf-gcc -MMD -MP -MF C:/PrizmSDK-0.3/projects/colorlib1/build/ColorLib2.d -Os -Wall -mb -m4a-nofpu -mhitachi -nostdlib -IC:/PrizmSDK-0.3/projects/colorlib1/build -IC:/PrizmSDK-0.3/include -c C:/PrizmSDK
-0.3/projects/colorlib1/src/ColorLib2.c -o ColorLib2.o
C:/PrizmSDK-0.3/projects/colorlib1/src/ColorLib2.c:129:1: warning: initialization discards 'const' qualifier from pointer target type [enabled by default]
C:/PrizmSDK-0.3/projects/colorlib1/src/ColorLib2.c: In function 'CL_text_drawPoint':
C:/PrizmSDK-0.3/projects/colorlib1/src/ColorLib2.c:161:11: warning: operation on 'vram' may be undefined [-Wsequence-point]
C:/PrizmSDK-0.3/projects/colorlib1/src/ColorLib2.c:161:11: warning: operation on 'vram' may be undefined [-Wsequence-point]
C:/PrizmSDK-0.3/projects/colorlib1/src/ColorLib2.c: In function 'CL_text_print':
C:/PrizmSDK-0.3/projects/colorlib1/src/ColorLib2.c:272:4: warning: implicit declaration of function 'text_printC' [-Wimplicit-function-declaration]
C:/PrizmSDK-0.3/projects/colorlib1/src/ColorLib2.c:273:4: warning: implicit declaration of function 'text_widthC' [-Wimplicit-function-declaration]
C:/PrizmSDK-0.3/projects/colorlib1/src/ColorLib2.c: In function 'CL_text_widthC':
C:/PrizmSDK-0.3/projects/colorlib1/src/ColorLib2.c:287:7: warning: pointer targets in assignment differ in signedness [-Wpointer-sign]
C:/PrizmSDK-0.3/projects/colorlib1/src/ColorLib2.c: In function 'CL_CopySpriteNbitMasked':
C:/PrizmSDK-0.3/projects/colorlib1/src/ColorLib2.c:510:13: warning: statement with no effect [-Wunused-value]
C:/PrizmSDK-0.3/projects/colorlib1/src/ColorLib2.c: In function 'CL_drawFilledCircle':
C:/PrizmSDK-0.3/projects/colorlib1/src/ColorLib2.c:545:14: warning: implicit declaration of function 'pow' [-Wimplicit-function-declaration]
C:/PrizmSDK-0.3/projects/colorlib1/src/ColorLib2.c:545:17: warning: incompatible implicit declaration of built-in function 'pow' [enabled by default]
C:/PrizmSDK-0.3/projects/colorlib1/src/ColorLib2.c: In function 'CL_drawFilledCircleAlpha':
C:/PrizmSDK-0.3/projects/colorlib1/src/ColorLib2.c:565:17: warning: incompatible implicit declaration of built-in function 'pow' [enabled by default]
C:/PrizmSDK-0.3/projects/colorlib1/src/ColorLib2.c: In function 'CL_drawPointAlpha':
C:/PrizmSDK-0.3/projects/colorlib1/src/ColorLib2.c:591:25: warning: operation on 'vram' may be undefined [-Wsequence-point]
C:/PrizmSDK-0.3/projects/colorlib1/src/ColorLib2.c:591:25: warning: operation on 'vram' may be undefined [-Wsequence-point]
C:/PrizmSDK-0.3/projects/colorlib1/src/ColorLib2.c: In function 'CL_Filled_polygon':
C:/PrizmSDK-0.3/projects/colorlib1/src/ColorLib2.c:641:6: warning: implicit declaration of function 'malloc' [-Wimplicit-function-declaration]
C:/PrizmSDK-0.3/projects/colorlib1/src/ColorLib2.c:641:20: warning: incompatible implicit declaration of built-in function 'malloc' [enabled by default]
C:/PrizmSDK-0.3/projects/colorlib1/src/ColorLib2.c:681:6: warning: implicit declaration of function 'free' [-Wimplicit-function-declaration]
C:/PrizmSDK-0.3/projects/colorlib1/src/ColorLib2.c:681:6: warning: incompatible implicit declaration of built-in function 'free' [enabled by default]
C:/PrizmSDK-0.3/projects/colorlib1/src/ColorLib2.c: In function 'GetVRAMAdress':
C:/PrizmSDK-0.3/projects/colorlib1/src/ColorLib2.c:707:2: warning: control reaches end of non-void function [-Wreturn-type]
C:/PrizmSDK-0.3/projects/colorlib1/src/ColorLib2.c: In function 'CL_CopySpriteNbitMasked':
C:/PrizmSDK-0.3/projects/colorlib1/src/ColorLib2.c:503:32: warning: 'buf' may be used uninitialized in this function [-Wuninitialized]
C:\Users\Enfant\AppData\Local\Temp\ccMeXfrc.s: Assembler messages:
C:\Users\Enfant\AppData\Local\Temp\ccMeXfrc.s:9: Error: invalid operands for opcode
C:\Users\Enfant\AppData\Local\Temp\ccMeXfrc.s:104: Error: invalid operands for opcode
C:\Users\Enfant\AppData\Local\Temp\ccMeXfrc.s:139: Error: invalid operands for opcode
C:\Users\Enfant\AppData\Local\Temp\ccMeXfrc.s:156: Error: invalid operands for opcode
C:\Users\Enfant\AppData\Local\Temp\ccMeXfrc.s:200: Error: invalid operands for opcode
C:\Users\Enfant\AppData\Local\Temp\ccMeXfrc.s:227: Error: invalid operands for opcode
C:\Users\Enfant\AppData\Local\Temp\ccMeXfrc.s:242: Error: invalid operands for opcode
C:\Users\Enfant\AppData\Local\Temp\ccMeXfrc.s:337: Error: invalid operands for opcode
C:\Users\Enfant\AppData\Local\Temp\ccMeXfrc.s:1831: Error: invalid operands for opcode
C:\Users\Enfant\AppData\Local\Temp\ccMeXfrc.s:1896: Error: invalid operands for opcode
C:\Users\Enfant\AppData\Local\Temp\ccMeXfrc.s:1906: Error: invalid operands for opcode
C:\Users\Enfant\AppData\Local\Temp\ccMeXfrc.s:2057: Error: invalid operands for opcode
C:\Users\Enfant\AppData\Local\Temp\ccMeXfrc.s:2067: Error: invalid operands for opcode
C:\Users\Enfant\AppData\Local\Temp\ccMeXfrc.s:2079: Error: invalid operands for opcode
make[1]: *** [ColorLib2.o] Error 1
make: *** [build] Error 2
Appuyez sur une touche pour continuer...
pourrai-je avoir des explications, je suis perdu :aie2:
Ajouté le 21/10/2013 à 15:42 :
Planète-Casio m'a supprimé les slaches des erreurs.
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 21/10/2013 15:48 | #
En effet, ça ne me dit rien comme erreur... Au niveau du code, t'as fait quoi de plus avant que ce bug arrive ?
Il se produit à toute les compilations ?
Ca à l'air de mettre en jeu un fichier temporaire : en redémarrant ton pc, ça le fait toujours ?