**Le SDK pour fx-9860/Graph85** Topic officiel
Posté le 18/07/2007 15:08
Vu la multitude de topics sur le SDK de la 85, j'ai décidé d'en faire un seul et unique, où l'on posera nos problèmes et explications sur ce même topic, et non pas sur 50, par souci de clareté et de facilité.
Des nouveautés ? Des problèmes ? Des idées ?
Exposez les ici !
Voici une liste de commandes commencées par Muelsaco. N'hésitez pas à rajouter vos commandes dans le topic je les rajouterai pour en faire profiter tout le monde. Merci.
// Locate X,Y,"Texte"
:arrow: locate(x,y); Print("Texte");
// Text X,Y,"Texte"
:arrow: PrintMini(x,y,"Texte",0);
// F-Line x1,y1,x2,y2
:arrow: Bdisp_DrawLineVRAM(x1,y1,x2,y2);
// Tracer une ligne blanche
:arrow: Bdisp_ClearLineVRAM(x1,y1,x2,y2);
// PxlOn x,y & PxlOff x,y
:arrow: Bdisp_SetPoint_VRAM(x,y,<couleur>)
<couleur> : 0 pour le blanc, 1 pour le noir
// Cls
:arrow: Bdisp_AllClr_DDVRAM();
// Actualiser l'écran
:arrow: Bdisp_PutDisp_DD();
Fonction très importante. Elle permet d'afficher une image tracée virtuellement dans la VRAM. Toute image doit d'abord être dessinée dans la VRAM puis affichée à l'écran. Vous ne verrez donc pas votre image s'afficher tant que vous n'aurez pas appelé Bdisp_PutDisp_DD(). À noter que les fonctions GetKey() et Print() l'appellent automatiquement.
While <exp1>
<code>
WhileEnd
:arrow:
while(<exp1>)
{
<code>
}
// StoPict x
:arrow: SaveDisp(x);
x variant de 1 à 3 uniquement.
// RclPict x
:arrow: RestoreDisp(x);
x variant de 1 à 3 uniquement.
// Ouvrir un popup (comme les erreurs syntaxe, etc)
:arrow: PopUpWin(<taille>);
<taille> : de 1 à 8.
Rappels sur les variables globales : Source
* Les variables globales sont à utiliser avec précaution, puisqu'elles créent des liens invisibles entre les fonctions. La modularité d'un programme peut en souffrir et le programmeur risque de perdre la vue d'ensemble.
* Il faut faire attention à ne pas cacher involontairement des variables globales par des variables locales du même nom.
* Le codex de la programmation défensive nous conseille d'écrire nos programmes aussi 'localement' que possible.
L'utilisation de variables globales est jusitifiée, si
* Plusieurs fonctions qui ne s'appellent pas ont besoin des mêmes variables, ou
* Plusieurs fonctions d'un programme ont besoin du même ensemble de variables. Ce serait alors trop encombrant de passer toutes les variables comme paramètres d'une fonction à l'autre.
Citer : Posté le 30/09/2013 18:56 | #
J'en connais un qui n'est pas rassuré
Citer : Posté le 30/09/2013 19:01 | #
Qui? je sais parfaitement ce que je fait (a aucun moment je ne modifie la mémoire, je ne fais que l'afficher, normalement c'est bon)
hem, si c'est moi qui dit ça, c'est peut être moi qui n'est pas rassuré?
-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 01/10/2013 17:26 | #
Classe, tes essais Limachi !
Calculatrices : Graph 35+ USB tweakée et Classpad 330
Suivez moi et mon humour dévastateur ici focliquéla
Citer : Posté le 01/10/2013 17:53 | #
J'ai déjà eu cette image, il y a un addin qui ouvre un menu caché (celui avec le timer) et j'étais allé dans la partie Kidou protect : après je n'avais plus accès qu'au menu run : j'ai fait un reboot total et j'ai changé la carte SD
Citer : Posté le 08/10/2013 15:14 | #
hey, j'ai une petite question.
Comme vous avez pu le remarquer, de plus en plus d'add-ins ont un temps de "lag" au moment ou on veut sortir... plus rien ne marche pendant quelques secondes...
En tout cas le jeu que je programme actuellement à ce problème, et j'aimerais le résoudre avant de le poster, alors si quelqu'un à une solution ou une autre manière d'arrêter un programme sans faire bugguer la calto, je suis preneur.
(j'ai remarqué que ça arrive bcp plus depuis qu'on rajoute le code SH4, peut-être est-ce lié?)
Jouez à 6 sur une seule calto : Curve Fever
Un die and retry qui vous fera bieeeen rager Test Andropov
un très bon sokoban
le seul vrai jeu de foot en basic : FIFA 12
Ca c'est ce que j'appelle un jeu de reflexion jewel master
Qui vaincra l'intelligence artificielle de cet othello
Le célèbre pacman
Et tant d'autres BTL's games
Le jeu du mois de Novembre et award du jeu le plus dur de l'année 2013 MultiTask, testez-le
Citer : Posté le 08/10/2013 17:09 | #
personnellement, sur evasion survival, j'ai eu ce problème lorsque je l'ai rendu compatible. mais sur pokemon stadium, je n'ai pas de lag de sortie, a mon avis parce que j'utilise une fonction d'input annexe
essaye de mettre ca comme fonction d'input, pour voir si ca bloque toujours
(il est possible qu'il y ait un peu plus de code que nécessaire, c'est un code que casimo m'a passé, mais je ne le comprends pas entièrement )
typedef int(*sc_i2cp2sip) (char*, char*, short int*, short int*);
typedef int(*sc_iv) (void);
typedef int(*sc_4i) (int, int, int);
const unsigned int sc003b[] = {SCA, SCB, SCE, 0x3B};
const unsigned int sc0015[] = {SCA, SCB, SCE, 0x15};
const unsigned int sc0248[] = {SCA, SCB, SCE, 0x248};
#define RTC_GetTicks (*(sc_iv)sc003b)
#define PutKey (*(sc_4i)sc0248)
#define GlibGetOSVersionInfo (*(sc_i2cp2sip)sc0015)
int OSVersionAsInt(void)
{
unsigned char mainversion;
unsigned char minorversion;
unsigned short release;
unsigned short build;
GlibGetOSVersionInfo( &mainversion, &minorversion, &release, &build );
return ( ( mainversion << 24 ) & 0xFF000000 ) | ( ( minorversion << 16 ) & 0x00FF0000 ) | ( release & 0x0000FFFF );
}
#define isOS2 (OSVersionAsInt() >= 0x02020000)
#define OS2(x,y) ((OSVersionAsInt() >= 0x02020000)?y:x)
static int SysCallCode[] = {0xD201422B,0x60F20000,0x80010070};
static int (*SysCall)( int R4, int R5, int R6, int R7, int FNo ) = (void*)&SysCallCode;
unsigned char key_down_real(unsigned char code)
{
unsigned short key[8];
const unsigned short* keyboardregister = (unsigned short*)0xA44B0000;
unsigned char row;
if(isOS2)
{
memcpy(&key, keyboardregister, sizeof(unsigned short) << 3);
row= code%10;
return (0 != (key[row >> 1] & 1 << code / 10 - 1 + ((row & 1) << 3)));
}
else
{
return CheckKeyRow((code % 10) + ((code / 10 - 1) << 4));
}
}
#define K_0 71
#define K_1 72
#define K_2 62
#define K_3 52
#define K_4 73
#define K_5 63
#define K_6 53
#define K_7 74
#define K_8 64
#define K_9 54
#define K_DP 61
#define K_EXP 51
#define K_PMINUS 41
#define K_PLUS 42
#define K_MINUS 32
#define K_MULT 43
#define K_DIV 33
#define K_FRAC 75
#define K_LPAR 55
#define K_RPAR 45
#define K_COMMA 35
#define K_STORE 25
#define K_LOG 66
#define K_LN 56
#define K_SIN 46
#define K_COS 36
#define K_TAN 26
#define K_SQUARE 67
#define K_POW 57
#define K_EXE 31
#define K_DEL 44
#define K_AC 32
#define K_FD 65
#define K_EXIT 47
#define K_SHIFT 78
#define K_ALPHA 77
#define K_OPTN 68
#define K_VARS 58
#define K_UP 28
#define K_DOWN 37
#define K_LEFT 38
#define K_RIGHT 27
#define K_F1 79
#define K_F2 69
#define K_F3 59
#define K_F4 49
#define K_F5 39
#define K_F6 29
#define K_MENU 48
#define K_XT 76
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 23/10/2013 21:20 | #
Salut j'ai un petit soucis de débutant qui a surement déjà été posé sur une des 51 pages mais bon si je veux trouver la réponse en cherchant ça risque de me prendre du temps
Donc je voulais regarder comment était fait un add-in en format *.g1a via le SDK mais je sais pas si c'est possible de l'ouvrir ...
Si oui comment faire
Si non ... comment faire
Citer : Posté le 23/10/2013 22:14 | #
il n'y a pas moyen, le g1a est le code compilé du code source.
au mieux, tu peut avoir le code désassemblé, mais cela ne te sera sans doute pas tres utile
regarde si l'auteur n'a pas mis un autre fichier a telecharger qui contiendrait le code sources (sous forme de .c .cpp ou .h), que tu pourra ouvrir avec le SDK
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 23/10/2013 22:31 | #
C'est bon je me rendors
Merci dodormeur
Citer : Posté le 07/11/2013 19:45 | # | Fichier joint
Wow, il m'arrive un truc pas cool.
Du jour au lendemain quand j'essaie de compiler mon programme, il me met une erreur (cf: fichier joint) comme quoi, il ne trouve plus le chemin d'accès.
Alors j'ai regardé partout dans les reglages du SDK mais tout était confo.
Je me suis rendu compte que j'avais la même erreur pour tous mes programmes, et que, même si j'en créais un nouveau, il ne trouvait de nouveau pas de chemin.
Jouez à 6 sur une seule calto : Curve Fever
Un die and retry qui vous fera bieeeen rager Test Andropov
un très bon sokoban
le seul vrai jeu de foot en basic : FIFA 12
Ca c'est ce que j'appelle un jeu de reflexion jewel master
Qui vaincra l'intelligence artificielle de cet othello
Le célèbre pacman
Et tant d'autres BTL's games
Le jeu du mois de Novembre et award du jeu le plus dur de l'année 2013 MultiTask, testez-le
Citer : Posté le 07/11/2013 19:47 | #
Réinstalle le SDK pour le coup. Ca m'est déjà arrivé
Citer : Posté le 07/11/2013 20:02 | #
bah je l'ai déjà reinstallé et repair... mais autant réessayer on ne sait jamais
Jouez à 6 sur une seule calto : Curve Fever
Un die and retry qui vous fera bieeeen rager Test Andropov
un très bon sokoban
le seul vrai jeu de foot en basic : FIFA 12
Ca c'est ce que j'appelle un jeu de reflexion jewel master
Qui vaincra l'intelligence artificielle de cet othello
Le célèbre pacman
Et tant d'autres BTL's games
Le jeu du mois de Novembre et award du jeu le plus dur de l'année 2013 MultiTask, testez-le
Citer : Posté le 07/11/2013 20:19 | #
Tes fichiers sont sur une clé USB ou un DDE ?
Si oui ça peut venir de ça...
Citer : Posté le 07/11/2013 20:32 | #
Nonon ils sont dans un dossier sur le bureau...
mais je me suis rendu compte que malgré le fait qu'il m'indique cette erreur, je peux quand même lancer mes programmes dans l'émul du SDK... mais je ne pense pas que le G1A soit créée.
Jouez à 6 sur une seule calto : Curve Fever
Un die and retry qui vous fera bieeeen rager Test Andropov
un très bon sokoban
le seul vrai jeu de foot en basic : FIFA 12
Ca c'est ce que j'appelle un jeu de reflexion jewel master
Qui vaincra l'intelligence artificielle de cet othello
Le célèbre pacman
Et tant d'autres BTL's games
Le jeu du mois de Novembre et award du jeu le plus dur de l'année 2013 MultiTask, testez-le
Citer : Posté le 07/11/2013 20:36 | #
C'est chelou ça...
Citer : Posté le 08/11/2013 21:58 | #
(Désolé, je réponds aux deux dernières pages)
a la différence que je n'utilise pas de + mais des |, c'est plus rapide et plus "logique" si je dois dire (aucun bit ne peut ce chevaucher, donc | est préférable a +)
Ce n'est pas plus rapide non. Un or comme une addition ne prend qu'une instruction.
(le sdk ne recharge une lib (.h) que si TOUS les .c qui l'incluent sont a jours!)
Tout compilateur C compile les fichiers sources (*.c) en fichier objet (*.o) et ne recompile un fichier source que s'il a été modifié depuis la dernière compilation (sauf si on lui demande explicitement de tout recompiler) et dans le cas contraire il conserve le .o tel quel pour l'édition de liens. Le compilo Renesas passe le fichier au préprocesseur après avoir vérifié la date de dernière modification. Donc ton header est bien pris en compte dans les sources recompilées.
A propos du système de fichier Casio, Kristaba en avait déjà fait l'étude et avait fait une bonne petite lib permettant un accès en lecture seule (l'écriture étant trop risquée en cas de mise à jour du FS dans une future version de l'OS). Il ne l'avait pas publié quelque part ?
L'image du rond barré est bien connue, mais je ne savais pas qu'elle était affichée en cas d'erreur fatale.
Btl: L'erreur n'est pas accompagnée du chemin en question ?
T'as pas un caractère non-ASCII dans le chemin de ton projet et/ou dans celui du SDK ?
HELPME Invité
Citer : Posté le 10/11/2013 16:32 | #
Bonjour,
J'ai cherché sur plusieurs pages de ce topic sans succès la réponse à ma question : comment utiliser les GetKey ?
J'ai l'impression que mes conditions ne fonctionnent absolument pas ! :/ Je vous poste mon code...
{
[purple]unsigned int[/purple] key;
[purple]unsigned int[/purple] code;
Bdisp_AllClr_DDVRAM();
PrintMini(1,[maroon]1[/maroon],[gray]"=========== PHYSIQUE ==========="[/gray], MINI_OVER);
PrintMini(1,[maroon]15[/maroon],[gray]"I. ACIDES / BASES"[/gray],MINI_OVER);
[b][blue]while[/blue][/b](1){
GetKey(&key);
[b][blue]if[/blue][/b] (&key==KEY_CHAR_4) {
PrintMini(1,[maroon]22[/maroon],[gray]"TOUCHE NUM 4"[/gray],MINI_OVER);
}
[b][blue]else[/blue][/b] {
PrintMini(1,[maroon]22[/maroon],[gray]"AUTRE TOUCHE"[/gray],MINI_OVER);
}
}
[b][blue]return[/blue][/b] 1;
}
Quelque soit la touche sur laquelle j'appuie, le second message est affiché...
Citer : Posté le 10/11/2013 17:00 | #
ton erreur est la.
il faut comparer key, et pas l'adresse de key
voila le code corrigé
{
unsigned int key;
unsigned int code;
Bdisp_AllClr_DDVRAM();
PrintMini(1,1,"=========== PHYSIQUE ===========", MINI_OVER);
PrintMini(1,15,"I. ACIDES / BASES",MINI_OVER);
while(1){
GetKey(&key);
if (key==KEY_CHAR_4) {
PrintMini(1,22,"TOUCHE NUM 4",MINI_OVER);
}
else {
PrintMini(1,22,"AUTRE TOUCHE",MINI_OVER);
}
}
return 1;
}
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 11/11/2013 14:12 | #
Je te conseille de revoir tes pointeurs (voir SdZ, Open Classrooms)
pour une variable normale (int getkey par exemple)
key -> valeur contenue dans la variable
&key -> adresse de la variable
pour un pointeur (int *pointeur = &getkey)
pointeur -> adresse de getkey
*pointeur -> valeur contenue dans getkey
&pointeur -> adresse de la variable pointeur
Modifié par Dark Storm : Test
Citer : Posté le 12/11/2013 12:28 | #
est-ce que quelqu'un aurait un exemple d'utilisation de Bfile_FindFirst, Bfile_FindNext et Bfile_FindClose?
(j'arrive pas a les utiliser correctement dans mon minecraft et je n'ai pas trouvé de sources les utilisant)
-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 12/11/2013 20:11 | #
Voilà :
FindFiles.h
FindFiles.c
C'est une mini-lib qui simplifie leur utilisation, mais ça sert aussi d'exemple.