M0nsieurL 40 Signaler ce message Posté(e) 13 février 2014( 13/02/2014 00:31 ) Bonsoir à tous, (ou bonjour suivant l'heure où vous lirez ce message). Voilà, dans le cadre de mes traductions (sur super nintendo/famicom), je suis amené à faire de la retouche de gfxs (graphismes). Seulement, voilà, il n'est pas toujours évident de voir pour de petits éléments (typographie, icône en 8pixel²) le rendu que cela aura à l'écran sans faire de longues modifications. Aussi, je me demandais si l'un d'entre vous aurait les capacités de coder un petit programme capable de convertir une image (la résolution ne sera jamais supérieure à 256 pixel de large par 224 pixel de haut ce qui est je crois la résolution maximale de la console) en 256 couleurs pour l'afficher sur la snes directement :] Dans l'idéal, un outil qui demanderait une image en png ou bmp (en ligne de commande ou avec une API, peut importe) et qui générerait un fichier smc pour afficher cette dernière. Déjà est-ce possible techniquement ? (sachant que pour les jeux que j'ai vu, je n'ai jamais vu 256 couleurs à la fois) À votre bon cœur messieurs les codeurs ! P.s : En techno utilisable ça serait bien un "stand alone", pas un truc qui nécessite une usine à gaz ou 10 billions de Dlls, pourquoi pas du multi plate-forme (en python ou java) ? Citer Partager ce message Lien à poster Partager sur d’autres sites
Akira76 25 Signaler ce message Posté(e) 13 février 2014( 13/02/2014 06:03 ) Je pense que c'est possible en utilisant pvsneslib déjà, mais là je parle du kit complet, pas seulement d'un outil en ligne de commande. Je vais voir si je peux te bidouiller un truc qui le fait comme ça mais je ne promets rien, je ne suis pas un champion ;-) Citer Partager ce message Lien à poster Partager sur d’autres sites
ichigobankai 198 Signaler ce message Posté(e) 13 février 2014( 13/02/2014 06:17 ) y'a certainement moyen de faire un smc de base/vierge avec la psneslib puis d'y réinjecter ce qu'il faut pour une image (avec une image sans compression) Quitte a ce qu'elle soit toujours en 256x224, et remplir en noir (ou blanc) quand elles sont plus petites avant des les réinjecter. il doir rester la génération du tilemap (je ne connais pas la snes donc je ne peux pas te dire) et la recup de la palette (256coul, a remplir de noir pour les non utilisées) une fois la base faite, via un script python ou autre ca ne devrait pas etre trop trop compliqué. Arno s'y connait en python, donc si tu nous lis... ^^ Citer Partager ce message Lien à poster Partager sur d’autres sites
Akira76 25 Signaler ce message Posté(e) 13 février 2014( 13/02/2014 06:41 ) C'est exactement ce que je suis en train de faire, étant donné que les sources de pcx2snes sont disponibles, ça devrait être faisable sans trop de soucis (sachant qu'il faut gérer les différents modes/palettes) mais j'ai confiance pour l'instant. Citer Partager ce message Lien à poster Partager sur d’autres sites
kogami 10 Signaler ce message Posté(e) 13 février 2014( 13/02/2014 08:23 ) Moi un aussi un programme comme ça m’intéresserais car on a toujours de drôle de surprise quand ça passe par la TV et un outils comme ça ferais gagner du temps. Citer Partager ce message Lien à poster Partager sur d’autres sites
M0nsieurL 40 Signaler ce message Posté(e) 13 février 2014( 13/02/2014 11:46 ) Merci Akira76, kogami c'est justement dans cette optique d'optimisation que je fais la demande qu'un tel programme :) Comme tu le dis, parfois on a de mauvaises surprises :/ En tous cas Akira76, si tu parviens à tes fins ça me permettra d'être plus rapide/efficace pour certains projets ! Me permettrais-tu de proposer l'outil sur la traf ? Citer Partager ce message Lien à poster Partager sur d’autres sites
Akira76 25 Signaler ce message Posté(e) 13 février 2014( 13/02/2014 14:46 ) Ok, j'ai quelque chose, Ce n'est pas exactement ce que tu veux, et pour l'instant c'est juste un hack quick & dirty de pcx2snes mais bon... Actuellement ça fonctionne avec des images pcx en 256 couleurs quelle qu'en soit la taille (dans la limite de celle de l'écran snes, bien sûr), il faut plus voir ça comme un proof of concept qu'un outil réel. Dans l'archive attachée tu trouveras un pcx2sfc.exe qui est l'outil qui va convertir une image pcx en .sfc, le source du programme ainsi que les deux images qui m'ont servi pour mes tests. Ce n'est pas du python, c'est du C, ça se compile sans soucis avec mingw sous windows, avec gcc sous linux, donc je suppose avec gcc sous macos aussi (je ne peux pas tester ça). Dis-moi ce que tu en penses et si je dois continuer dans cette voie ou si tu pensais à quelque chose de totalement différent. Edit : Bon, tapé trop vite, du coup je viens de corriger mes fautes pour obtenir un post intelligible... pcx2sfc.7z Citer Partager ce message Lien à poster Partager sur d’autres sites
Akira76 25 Signaler ce message Posté(e) 13 février 2014( 13/02/2014 14:48 ) Ah oui, j'ai oublié de répondre à ta question, oui, une fois que c'est terminé, ça ne me dérange pas du tout que tu proposes ça à TRAF, moi perso, je ne suis pas assez doué en romhacking pour que ça me serve vraiment ;-) Citer Partager ce message Lien à poster Partager sur d’autres sites
ltrmars 13 Signaler ce message Posté(e) 13 février 2014( 13/02/2014 14:48 ) Quel talent j'aimerais bien aider la communauté comme ça MonsieurL tu donne des cours ^^ Citer Partager ce message Lien à poster Partager sur d’autres sites
Akira76 25 Signaler ce message Posté(e) 13 février 2014( 13/02/2014 15:05 ) Ah, oui, je n'ai pas fourni le code pvsneslib, mais c'est le plus simple du monde : #include <snes.h> extern char pad_patterns1, pad_patterns2; extern char pad_palette, pad_map; int main(void) { consoleInit(); setMode(BG_MODE3,0); bgSetDisable(1); bgSetDisable(2); bgInitTileSet(0, &pad_patterns1, &pad_palette, 0, 0x0, 0x200, BG_256COLORS, 0x0000); dmaCopyVram(&pad_patterns1, 0x0000, 0x8000); dmaCopyVram(&pad_patterns2, 0x4000, 0x8000); bgInitMapSet(0, &pad_map, 0x800, SC_64x64, 0x6000); setFadeEffect(FADE_IN); while(1) { } return 0; } Citer Partager ce message Lien à poster Partager sur d’autres sites
M0nsieurL 40 Signaler ce message Posté(e) 13 février 2014( 13/02/2014 20:05 ) Je teste ça ce soir :) Merci encore ! P.s : le pcx est un format un peu vieillot, pourrais-tu faire en sorte qu'il supporte le png ou le bmp (même s'il s'agit d'un format propriétaire) ? P.s ²: ltrmars, j'ai pas compris ce que tu voulais dire :] Edit : ça marche au poil avec tes exemples à voir (pas encore testé sur le hardware), par contre même avec totoshop, je n'arrive pas à faire un fichier .pcx "valide" avec photoshop, quel outil as-tu utilisé pour faire ces images ? Citer Partager ce message Lien à poster Partager sur d’autres sites
Akira76 25 Signaler ce message Posté(e) 13 février 2014( 13/02/2014 20:17 ) Je suis en train de réécrire le tout, c'était juste pour vérifier que ça fonctionnait en fait. Je vais essayer d'ajouter le support d'un max de formats de fichiers, une fois que le bitmap est chargé en ram, c'est la même routine pour l'encodage de toute façon. Citer Partager ce message Lien à poster Partager sur d’autres sites
M0nsieurL 40 Signaler ce message Posté(e) 13 février 2014( 13/02/2014 21:00 ) Re, J'ai un petit bug sur hardware, par contre, j'arrive pas à retrouver mon apn :/ Le dernier tiles en bas à droite est tout buggé (je viens de voir que sur émulateur c'est le cas aussi). Par contre, je dois être une quiche, je n'arrive pas à faire un format pcx "correct" avec photoshop (j'ai aussi testé des outils de conversion en ligne, rien à faire...) Edit : J'ai enfin réussi à faire un fichier sfc ! Comme on dit souvent R.T.F.M (et pour le coup la ligne de commande...) un simple pcx2sfc.exe image.pcx -c256 à résolu l'affaire :] Citer Partager ce message Lien à poster Partager sur d’autres sites
ichigobankai 198 Signaler ce message Posté(e) 13 février 2014( 13/02/2014 21:27 ) le PCX c'est vieillot, pas sur que photoshop aime trop ca... faudrait une vieille version de paint shop pro Citer Partager ce message Lien à poster Partager sur d’autres sites
Akira76 25 Signaler ce message Posté(e) 13 février 2014( 13/02/2014 21:34 ) Ouaip, j'ai vu le souci avec le dernier tile, pas encore trouvé de quoi ça vient. Par contre, moi je n'ai pas de soucis avec le pcx sous photoshop image > mode > indexed colors file > save as ... Citer Partager ce message Lien à poster Partager sur d’autres sites
M0nsieurL 40 Signaler ce message Posté(e) 13 février 2014( 13/02/2014 22:04 ) Avec la version cs5, malgré le fait que mon image était bien en couleurs indexées en 8 bits le drop de l'image ne fonctionnait pas (contrairement au exemples que tu as mis) J'ai du passer par l'invite de commande pour que cela fonctionne :) Citer Partager ce message Lien à poster Partager sur d’autres sites
n_Arno 4 Signaler ce message Posté(e) 13 février 2014( 13/02/2014 23:08 ) Sinon, si je retrouve le truc qui va bien dans mon bordel, j'avais un example de code asm à compiler directement via wladx qui avec le make qui va bien te fait un slideshow des images d'un folder dans un SMC. Un truc pour faire un PPT sur une rom pour le passer en convention :D EDIT: le snes starter kit contient l'example dont je parle et les binaires de wla-dx ainsi qu'un fichier batch qui va bien. L'example est show.asm: http://nesdev.com/SNES-starterkit.zip Il serait donc possible de faire un truc "simple" qui va prendre un ou plusieurs fichiers et les afficher Citer Partager ce message Lien à poster Partager sur d’autres sites
M0nsieurL 40 Signaler ce message Posté(e) 14 février 2014( 14/02/2014 19:15 ) Arf, j'ai été un peu bête de faire (ré)inventer la roue :/ Néanmoins, je pense avoir pigé pourquoi ça bug ! C'est l'optimisation des tiles qui fout le brin, quand on dépasse la limite de tiles, il essaye d'optimiser, mais cette fonction merde :) Akira, je peux considérer l'outil terminé (vu que ça fait le job, comme les Canadiens le disent) ? Ou tu comptes faire le support bmp/png ? (Sinon j'attends pour proposer cet outil sur la T.R.A.F ^^) Je te remercie encore, ça me permet de voir mes travaux de typographie sur l'écran cathodique et LCD sans faire du hack de bourrin :wub: Citer Partager ce message Lien à poster Partager sur d’autres sites
Akira76 25 Signaler ce message Posté(e) 14 février 2014( 14/02/2014 19:20 ) Je suis toujours en train de bosser dessus. J'ai : - séparé les différentes fonction du programme en modules - récupéré le support bmp/tga du gfx2snes d'Alekmaul. - réglé le problème de drag&drop de fichiers J'ai encore des soucis de calcul du tilemap (maintenant j'ai les deux tiles en bas à gauche de l'image qui sont décalées d'un pixel vers le bas. Bref, je suis sur le job, je reviens vers toi pendant le weekend avec une autre version "stable" Citer Partager ce message Lien à poster Partager sur d’autres sites
Akira76 25 Signaler ce message Posté(e) 16 février 2014( 16/02/2014 20:42 ) Bon, pas trop eu le temps de bosser dessus ce weekend, mais voilà quand-même une version un peu plus complête. Les trois points du post précédent sont réglés, j'ai légèrement retravaillé la génération du tilemap, maintenant tout est bon... sauf le premier tile qui est blanc. En attendant mieux, j'ai re-joint les sources, l'exécutable, et quelques images de test. Je suis toujours en train de bosser sur le support gf/png mais je ne suis pas loin d'abandonner, ça fait vraiment trop longtemps que je n'ai pas fait de C, j'ai pas mal perdu ;-) gfx2sfc.7z Citer Partager ce message Lien à poster Partager sur d’autres sites
Akira76 25 Signaler ce message Posté(e) 21 février 2014( 21/02/2014 22:59 ) Ça a pris du temps, mais voilà la 1e version de prod de l'outil et un petit résumé des "fonctions" : - correction des problèmes de drag & drop. - correction de divers soucis d'allocation de mémoire. - réécriture complète du générateur de tilemap. - support des formats pcx, bmp, tga et png en couleurs indexées. - centrage de l'image sur l'écran snes si sa taille est inférieure à 256x224. - génération d'une rom avec un checksum correct. - compilation statique de l'exe (pas de dll supplémentaires requises, d'où sa taille) Je n'ai pas encore totalement nettoyé le code (basé sur gfx2snes, pas mal de choses qui ne servent pas pour cette utilisation là, donc c'est encore un peu fouilli). Merci de rapporter les bugs éventuels (et il y en aura j'en suis sûr). gfx2sfc-1.0.0.0.7z Citer Partager ce message Lien à poster Partager sur d’autres sites
M0nsieurL 40 Signaler ce message Posté(e) 22 février 2014( 22/02/2014 15:32 ) Merci, je vais faire des test poussés ce soir :) Citer Partager ce message Lien à poster Partager sur d’autres sites
Akira76 25 Signaler ce message Posté(e) 23 février 2014( 23/02/2014 08:10 ) Alors, ça raconte quoi? Citer Partager ce message Lien à poster Partager sur d’autres sites
M0nsieurL 40 Signaler ce message Posté(e) 23 février 2014( 23/02/2014 13:47 ) Et bien pour le moment, le png à l'air cool :) Je dois encore tester les autres formats, notamment le tga (les couleurs sont étranges) Le mario en BMP s'est retrouvé 'décalé' sans que je sache pourquoi, mais en réenregistrant le bmp, ça à marché après :] En tout cas, même s'il est "imparfait" pour le moment ça fait ce qu'on lui demande ! Merci encore :) Citer Partager ce message Lien à poster Partager sur d’autres sites
Akira76 25 Signaler ce message Posté(e) 23 février 2014( 23/02/2014 14:05 ) Ah, le mario bmp c'est ma faute, j'ai oublié de supprimer la couche alpha en exportant de gimp :wink:Pout le TGA, pas fait attention, mais c'est très possible que la palette ait une baffe, je n'ai pas retouché la méthode d'import d'origine, Je peux essayer de la refaire avec libtarga ce qui ferait grossir un peu plus l'exe mais permettrai aussi de supporter les targa avec compression RLE. Citer Partager ce message Lien à poster Partager sur d’autres sites
M0nsieurL 40 Signaler ce message Posté(e) 23 février 2014( 23/02/2014 15:52 ) Si cela ne te prends pas trop de temps, oui :) Citer Partager ce message Lien à poster Partager sur d’autres sites
Akira76 25 Signaler ce message Posté(e) 23 février 2014( 23/02/2014 19:36 ) Voilà une version qui utilise libtga au lieu de la fonction d'origine. Par contre, j'ai un bug avec le support du RLE, je me pencherai dessus demain je pense. gfx2sfc-1.0.1.121.7z Citer Partager ce message Lien à poster Partager sur d’autres sites
M0nsieurL 40 Signaler ce message Posté(e) 25 février 2014( 25/02/2014 23:41 ) Je pense que le TGA n'est pas forcément "nécessaire", c'est pas le format le plus répandu ^^ En tout cas, merci, merci, merci ! Grâce à ton outil, j'ai pu gagner un temps précieux :) Citer Partager ce message Lien à poster Partager sur d’autres sites
franciscaetano 0 Signaler ce message Posté(e) 31 mai 2018( 31/05/2018 11:37 ) Voilà une version qui utilise libtga au lieu de la fonction d'origine. Par contre, j'ai un bug avec le support du RLE, je me pencherai dessus demain je pense. Bom dia, muito obrigado por disponibilizar o aplicativo, me ajudou muito abraço, Thanks, worked very well for me! Citer Partager ce message Lien à poster Partager sur d’autres sites