Aller au contenu
remy

Un Full SDK Cygwin

Messages recommandés

salut a tous,

 

je suis en train de préparer un full SDK ( c'est a dire quelque chose pour compiler directement vos homebrew sans avoir a chercher tel ou tel exécutable ainsi que quelques un de ma cuisine !! ( comme relocation des adresses de JMP ( pour exécution en WRAM ) d'un générateur de fichier ressource en asm et .h pour compilation directe )

 

pour ne rien vous cacher je suis passer sous cygwin au lieu de minGW car cygwin est bien plus complet mais bien plus lourd ( ~2Go sans compter eclipse )

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

j'ai commencer a creer des fonctions spécifique que l'on compile avec les fichier C standard .

 

je pense au final faire un fichier .lib qui regroupe des fonctions utile a tous ( style fadeIn et fadeOut etc ....)

 

d'ailleur j'ai inclu la compilation des librairies sous eclipse !!!

 

on peut donc ecrire un fichier C pour en creer une libraire, reste a ecrire le fichier .h pour les definitions des fonctions !!!

 

avec tous sa on peut tout faire sur la snes si des gens prenne le temps de coder quelques fonctions !!!!

Partager ce message


Lien à poster
Partager sur d’autres sites

Justement, pourquoi ne pas coder ces fonctions?

 

une pour la lecture du pad, une pour l'affichage de sprite, une pour en animer.

 

une pour afficher un Background, une autre pour les faire tourner/zoomer....

 

Au passage, un lien qui pourrait t'intéresser.

 

Comme d'habitude, si tu veux coder des trucs pour genre le multipad ou pour le super scope ou autre, j'ai de quoi tester et ça sera avec plaisir :shock:

Partager ce message


Lien à poster
Partager sur d’autres sites

voila le petit paquet de fonction supporter par la lib :

 

void SNES_fadeOut (unsigned char counter);

void SNES_fadeIn (unsigned char counter);

 

void WRAM_SetAddr(unsigned char bank, unsigned int addr );

void WRAM_WriteData(unsigned char data);

 

void CPU_InitNMIRegister(void);

void CPU_EnableReadAutoJoy(void);

void CPU_DisableReadAutoJoy(void);

unsigned short CPU_GetJoyValue(unsigned char joy);

void CPU_DisableNMI(void);

void CPU_EnableNMI(void);

 

je met a jours la doc !!!

Partager ce message


Lien à poster
Partager sur d’autres sites

rien de bien compliquer,

 

tu telecherge l'archive cygwin.rar sur le ftp et tu l'extrait a la racine de C:

 

sa doit te donner quelque chose comme sa :

 

c;/cygwin/bin et plein d'autre dossier .

 

a partir de ce moment tu telecharge l'archive d'eclipse

 

que tu installe ou tu veux

 

ensuite quand tu lance eclipse, il te demande de pointer vers un dossier workspace.

tu selectionne celui présent dans c:/cygwin/workspace

 

une fois ouvert, il t'ouvre deux projet :

le projet lib

et le projet LoaderUltimate !!!

 

si tu arrive la c'est deja un bon point .

 

tous est dispo dans la section download

 

eclispe : http://www.ultimate-consoles.fr/Download ... -win32.zip

cygwin : http://www.ultimate-consoles.fr/Download ... cygwin.rar

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci Rémy, j'ai pu faire une compilation, je trouve que la gueule du projet fait encore peur, mais bon :]

 

Pour les "features" je sais plus comment on dit en français :o .

 

faire un init simple!

(genre init et pour on active ce dont on a besoin)

 

Je trouve que sortir eclipse+cygwin ça fait vraiment artillerie super lourde pour faire du codage sur Snes :shock:

 

J'avais un truc qui s'appelait HamLib dans le temps pour le GBA, si je retrouve le cd je te ferai une copie pour te montrer à quoi ça ressemble :|

 

Incorporer une liste d'émulateur (no$sns, Bsnes, Zsnes ou ce que tu veux) pour quand on fasse un build ça le lance via l'ému qui va bien.

 

Avant de se lancer comme un forcené dans cette aventure pourquoi ne pas tenter de rendre accessible la prog sur snes?

Partager ce message


Lien à poster
Partager sur d’autres sites

oui c'est vrai qu'il serait bien de faire un installeur

 

mais pour l'instant cygwin est tellement universelle et propre , pareil pour eclipse qu'en phase de debug , il est préférable de prendre les archives directement !!

 

de plus cygwin nous permet aussi de developper sur dreamcast ( avec eclipse aussi ) donc pourquoi s'en privé !!!

 

certe il est enorme ( 2Go ) mais il est configurable , il suffit de désinstaller les paquets ( gestion des fonction avec le setup.exe de cygwin, on peut rajouter ou supprimer des paquets ) comme sur un vrai linux !!!

 

pour l'emu , il y est , il faut faire un execute pour que sa compile et que sa lance la rom direct sur Bsnes version debug !!!

 

si tu as un message d'erreur alors il faut faire un "close projet " sur le projet Lib !!!

Partager ce message


Lien à poster
Partager sur d’autres sites

bon voila pas mal de nouvelle fonctionnalité :

 

void SNES_fadeOut (unsigned char counter);

void SNES_fadeIn (unsigned char counter);

void SNES_VBlank (void);

void SNES_settiles (unsigned int b, unsigned char *p1, unsigned int size);

void SNES_setmap (unsigned int b, unsigned char *p1, unsigned int size);

void SNES_resettimer(void);

void SNES_sync (unsigned int d);

 

void WRAM_SetAddr (unsigned char bank, unsigned int addr );

void WRAM_WriteData (unsigned char data);

 

void CPU_InitNMIRegister(void);

void CPU_EnableReadAutoJoy(void);

void CPU_DisableReadAutoJoy(void);

unsigned short CPU_GetJoyValue(unsigned char joy);

void CPU_DisableNMI (void);

void CPU_EnableNMI (void);

 

void PAL_Init(void);

void PAL_SetDirect(unsigned char *pal);

void PAL_Valid(void);

 

avec tous sa en 4 ligne on peut afficher du texte a l'ecran !!!!

Partager ce message


Lien à poster
Partager sur d’autres sites

Je suis ça de loin mais le sujet m???intéresse mais une petite remarque.

 

??a serait sympa pour les novices (dont j'en fais partie) de faire une petite capture pour montrer ce que produit chaque routine sur la Snes (ou une petite explication) car là je me s'en tout perdu :shock:

Partager ce message


Lien à poster
Partager sur d’autres sites

Comment je fais pour mettre la lib à jour? :D

 

Mais heu faut quand même se casser le fion à lire l'index du pad?

 

unsigned char idx : Index du pad a lire

unsigned int JOY_GetStatus(unsigned char idx)
{
       return snessdk_controllers[idx];
}

 

j'imaginai un truc plus simpliste :)

 

dans le genre :

 

Pad_x_Start

Pad_x_Select

Pad_x_Up

Pad_x_Down

Pad_x_Left

Pad_x_Right

Pad_x_X

Pad_x_Y

Pad_x_A

Pad_x_B

Pad_x_L

Pad_x_R

 

ou x est le numéro du pad à tester.

 

En tout cas, c'est plus "user friendly" comme ça :D

Partager ce message


Lien à poster
Partager sur d’autres sites

alors pour mettre a jours la lib , il suffit que je la reupload !!

 

non tu li pas l'index, tu le donne pour sortir les datas !!

 

 

JOY_GetStatus(0) vas te donner les boutons qui sont appuyer sur le pad N°1

Partager ce message


Lien à poster
Partager sur d’autres sites

:D tu sais ce qu'il te reste à faire! :D

 

Il y a de l'idée, dommage que je n'ai pas le temps ce soir :)

 

Tu pourrais faire un premier "tuto" pour afficher un texte en fonction d'un bouton?

 

Pourquoi ne pas inclure des fonction pour l'index des touches justement? ça faciliterait grandement la lecture en plus!

Des petites fonctions comme la PAlib ça serait nickel!

 

ps: je t'ai uppé une lib gba qui va bien avec api, doc et tout ce qui va bien avec :D check tes mails!

Partager ce message


Lien à poster
Partager sur d’autres sites

make all 
816-tcc -Wall -I../../Snes_Include -o str.s -c str.c
816-reloc str.s 7F0000
make: execvp: 816-reloc: Permission denied
Makefile:46: recipe for target `str.s' failed
make: *** [str.s] Error 127

 

pourtant je n'ai fait qu'un simple clean?

 

Edit : et après la mise à jour, c'est pas mieux.

 

Build problems
 Errors during build.
   Errors running builder 'Integrated External Tool Builder' on project 'lib'.
   The builder launch configuration could not be found.

Partager ce message


Lien à poster
Partager sur d’autres sites

Hum bon bah de la crotte, quand je veux compiler ça merdoie :

 

Erreur à la ligne 127 du main.s

 

; ld2 [snesParam + 18], tcc__r0

 

Description Resource Path Location Type

recipe for target `main.s' failed Makefile LoaderUltimate 46 C/C++ Problem

 

La ligne du makefile qu'il n'aime pas (ligne 46)

	$(CC) -Wall -I../../Snes_Include -o $@ -c $<

Partager ce message


Lien à poster
Partager sur d’autres sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Restaurer la mise en forme

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

Chargement

×
×
  • Créer...