[C]Easy Coding
Posté le 03/07/2011 22:53
SAlut à tous!
Je viens ici présenter Easy Coding, alias ECode, petit projet que je développe en même temps que coder en C des jeux/progs, ave cla précieuse aide de KekevVTT...
Qui n'a jamais eu marre d'avoir pleins de petites fonctions traîner ici ou là-bas, fonctions très utiles, mais que vous devez à chaque fois réécrire/recopier?
Avec Easy Coding, vous aurez une petite lib de fonctions toutes utiles et toutes chouettes, du Int to String, jusqu'à la détermination de la vlaeur d'un bit dans un int!
Désormais, ECode détient des fonctions de détections de touches de nouvelles génération, dignes de FAstKeyDown, mais avec la compatibilité en prime! Fini les versions G75 plus lentes que les G85+! Fini les boucles de jeu ralenties pour rien!
Voici une petite liste non exhaustive venant du .h actuel
typedef enum {EMUlATOR, G35, G75, G85, G85SD, G95, UNDEFINED} Model;
/**MODEL DETECTION**/
char isEmulator();
char isG35p75();
char isG75(); // BESOIN DE LA VALEUR!!!
char isG85();
char isG85SD();
char isG95();
char hasSD();
Model modelDetector();
/**STRING MANIUPLATION**/
char* toLower(unsigned char* str, unsigned int len);
char* toUpper(unsigned char* str, unsigned int len);
char* strMirror(unsigned char* str, unsigned int len);
char* strRotate(unsigned char* str, unsigned int len, unsigned char mov);
void printf(unsigned char x, unsigned char y, unsigned char str, int mode);
void printn(unsigned char x, unsigned char y, int n, unsigned char mode);
/**TO STRING OPERATIONS**/
unsigned char* intToStr(char* c, int n);
unsigned char* uintToStr(char* c, unsigned int n);
unsigned char* charToStr(char* c, char n);
unsigned char* ucharToStr(char* c, unsigned char n);
unsigned char* floatToStr(char* c, float f, int pecision);
/**TO NUMBER**/
char strToChar(char* c);
unsigned char strToUchar(char* c);
int strToInt(char* c);
unsigned int strToUint(char* c);
/**TO HEX**/
char* charToHex(char* result, unsigned char hex);
char* intToHex(char* result, unsigned int hex);
/**BITS OPERATIONS**/
char readBit_char(char num, char index);
char inverseBit_char(char num, char index);
char upBit_char(char num, char index);
char downBit_char(char num, char index);
char readBit_int(int num, char index);
int inverseBit_int(int num, char index);
int upBit_int(int num, char index);
int downBit_int(int num, char index);
/**KEY DETECTION**/
unsigned char KeyDown( unsigned char code);
unsigned char KeyUp( unsigned char code);
unsigned char AnyKey();
/**OTHERS**/
char* input(char* c, int x, int y, int longueur, char nb);
int numArray_char(char* arr);
int numArray_int(char* arr);
Ca donne envie?
Ce n'est qu'un projet, donc je ne publie pas directement les sources, mais peut-être après avoir étoffé le bousin
?-Pourquoi avoir fait cette lib?
R-Je me sentais pas d'avoir à chaque fois une lib standard de 2ko pour une fonction, donc j'ai fait ici des fonctions facilement sélectionnables, et qui ne dépendent de rien (sauf input, mais fxlib.h, c'est LE fichier, quoi!).
Ainsi vous pouvez avoir aussi bien une fonction d'appelée, que toute la lib, en un seul define!
LIB RELEASED! Sous license Creative Commons:
C'est à dire que vous pouvez le modifier, le publier, l'utiliser, mais à condition de le republier sous les mêmes conditions ( même license) et d'iattribuer l'oeuvre originale, c'est à dire indiquer au moins mon pseudo Eiyeron dans les sources, ou dans le programme en execution.
Maj du 28/08/2011 à 1:23: AJout de la détection de la carte SD, et correction de la doc...
Mini Hotfix à 11:58: correction de AnyKeyDown.
Re Hfix pour recorrection. Décidemment!
05/09/2011 10:33 : Minif fix de nom de fonctions
18/09/2011 15:21: J'ai enfin les codes pour G75
13/10/2011: après un oubli, j'esaye de réparer mon eeruer en ajoutant d'autres corrections pour des fonctions. Il me reste à corrigerquelques trucs, mais il me faut tester.
18/10/2011: COrrections de KevkevVTT, qui mérite sa place de co-programmeur
Hey! KeyDOwn fonctionne avec un cpuspeed dans le caisson! o/
Fichier joint
Citer : Posté le 14/04/2012 09:07 | #
Suite à mes expérimentations sur PRGM2, je me suis rendu compte que la fonction ML_get_contrast() de MonochromeLib ne fonctionne pas.
Comme ta lib est déjà bien calée en détection des modèles, est-ce que tu pourrais rajouter un fonction qui renvoie la bonne valeur du contraste pour chaque modèle ?
Escape prison
Bloxorz
Free wheel
QR code
Nombre en or
RayCasting Engine
Mario Party
Zelda
et Planète Casio
Citer : Posté le 14/04/2012 11:44 | #
Je vais essayer de me renseigner la dessus, mais la fonction qu'il y a dans PRGM2 marche chez moi!
Citer : Posté le 14/04/2012 11:58 | #
Je vais essayer de me renseigner la dessus, mais la fonction qu'il y a dans PRGM2 marche chez moi!
Justement, c'est ça le truc : le contraste dépend de la calculatrice utilisée.
PRO CONVERT le meilleur programme de conversion sur casio !
Citer : Posté le 14/04/2012 13:07 | #
Je vais essayer de me renseigner la dessus, mais la fonction qu'il y a dans PRGM2 marche chez moi!
PierrotLL m'a confirmé que la fonction de MonochromeLib ne marche pas.
Justement, c'est ça le truc : le contraste dépend de la calculatrice utilisée.
C'est pour ça que je demande ici.
Il faudrait rajouter une fonction du genre :
{
int contraste = 0;
if(isG35p75()) contraste = 161;
if(isG75()) contraste = 170;
if(isG85()) contraste = 175;
if(isG85SD()) contraste = 175;
if(isG95()) contraste = 170;
return contraste;
}
Après y'a plus qu'à déterminer les bonnes valeurs.
Escape prison
Bloxorz
Free wheel
QR code
Nombre en or
RayCasting Engine
Mario Party
Zelda
et Planète Casio
Citer : Posté le 12/01/2013 19:51 | #
une petite question, que renvoie AnyKey()? Et pourquoi on ne met pas de &key en parametre de la fonction? J'ai essayé de comprendreen regardant le code mais je ne comprends pas "return *((unsigned char*)0xA4000120)!=0xFF;" on dirait limite pas du C je trouve...
Citer : Posté le 12/01/2013 20:38 | #
c'est un syscall, CAD une fonction systeme, qui effectivement si tu ne la connait pas est incomprehensible...
et a mon avis la fonction renvoye 1 si une touche est appuyée, ou 0 si aucune touche n'est appuyée
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 12/01/2013 20:42 | #
C'est PAR-FAIT !
mais c'est bizarre la fonction est déclarée en char*....
Citer : Posté le 12/01/2013 20:50 | #
*((unsigned char*)0xA4000120) est un pointeur vers une zone fixe de la mémoire, donc c'est une comparaison entre la valeur sur la quelle pointe ce pointeur et 255 (0xFF en exadécimal).
C'est on ne peut plus du C...
en gros, le return vaudra 0 si la valeur a la case 0xA400 0120 (pas vraiment convertible, mais j'ai fait une algo qui me donne 2751463712) est égale a 0xFF (255), et sinon renvoie 1
Ajouté le 12/01/2013 à 20:53 :
c\'est un syscall, CAD une fonction systeme
désole de te contredire... mais la il s\'agit d\'une lecture de zone de mémoire, ce qui n\'est pas forcément égal a un syscall (bien que le syscall marche un peux sur le principe, vu que l\'on modifie une zone de mémoire pour activer une fonction) (ici, il me semble que l\'on regarde la zone de la mémoire ou sont stocké les codes de touches enfoncées)
-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/01/2013 20:55 | #
mea culpa
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 12/01/2013 20:57 | #
t’inquiète, moi c'est parce que je travaille sur les syscalls depuis un moment que j'ai pu comprendre plus ou moins comment ils fonctionnent, mais il est vrai que c'est loin d'être évident si on ne comprend pas comment marche les pointeurs et comment est utilisée la mémoire de la calculatrice.
-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 18/01/2013 20:02 | #
Faut trop pas trop lire mon code, c'est soit du moche, soit du trop optimisé pour être lisible (ce qui est peu le cas)
Citer : Posté le 29/12/2013 17:52 | #
Comment ça fonctionne char isEmulator(); ?
Citer : Posté le 29/12/2013 17:57 | #
tu peux faire :
if(isEmulator)
{
code si c'est sur l'émulateur
}
else
{
code si c'est onCalc
}
En fait, ça retourne 1 si t'es sur l'émulateur, 0 sinon
Citer : Posté le 29/12/2013 18:11 | #
Okay, quelqu'un devrait faire une documentation sur cet lib.
PS: J'ai un nouveau logo