:: PlayerAdvance.org ::  

Précédent   :: PlayerAdvance.org :: > :: Développement Amateur :: > [DEV] Divers

[DEV] Divers Tout ce qui ne rentre pas dans les autres sections et qui a un lien avec les projets, la programmation, les graphismes etc...

Publicité

Affichage des résultats du sondage: Lequel de ces langages préféreriez-vous?
1. vieux style sans ColorIt 0 0%
2. nouveau style, à la objet 6 100,00%
3. nouveau style, "formel" 0 0%
4. aucun (précisez svp) 0 0%
Votants: 6. Vous ne pouvez pas participer à ce sondage.

Réponse
 
Outils de la discussion Modes d'affichage
Vieux 05/11/2009, 22h02   #1
Brunni
Super Modérateur
 
Date d'inscription: 10/11/2005
Localisation: Un pays avec beaucoup de banques
Messages: 3 226
Par défaut Langage pour coloration GB

Je suis en train de songer à faire enfin un format binaire pour la coloration GB, histoire qu'il soit facile à intégrer pour les émulateurs.
A l'occasion je vais faire un petit compilo qui crée le binaire à partir d'une source (le binaire sera désassemblable mais on perdra les commentaires, l'ordre des instructions, etc.). Dans le cas où je me lancerais, j'ai donc besoin de savoir ce que vous préféreriez comme langage, parmi les propositions de base suivantes (vous pouvez m'en proposer d'autres ou améliorer une de celles-ci si vous souhaitez):
1) Vieux style, sans les ColorIt. devant:
Code:
# Scène de CRC 12345678
[12345678]:
    # Définition des palettes
    setPalette 0, 0xffffff, 0xa0a0a0, 0x505050, 0x000000
    setPalette 1, 0xff8080, 0xff0000, 0x800000, 0x000000
    # Palette par défaut
    addTileRule 0, 383, 0
    addTileRule 2, 3, 1
    addTileRule 5, 1
    setTilesetData 0, "ffffffff 00ff00ff ff00ff00 00000000"
    End
Ce code respecte en partie la syntaxe du .ini, du coup certains éditeurs comme notepad2 le colorent automatiquement correctement.
2) Nouveau style, objet-style:
Code:
Scene(#12345678):
    ; Définition des palettes
    Palette(0) = #ffffff, #808080, #404040, #000000
    Palette(1) = #ff8080, #ff0000, #800000, #000000
    ; Par défaut pour tout
    Tile(0..383).palette = 0
    Tile(2, 3, 5).palette = 1
    ; Redéfinition d'une tile
    Tile(0).data = (
        #33333333,
        #33333333,
        #22222222,
        #22222222,
        #11111111,
        #11111111,
        #00000000,
        #00000000
    )
    End
3) Nouveau style, "formel":
Code:
Scene #12345678 is
    -- Utilise la palette 0 pour toutes les tiles (0 à 383)
    Palette 0 is #ffffff, #a0a0a0, #505050, #000000
        for 0..383;
    Palette 1 is #ff8080, #ff0000, #800000, #000000;
    -- Il est encore possible d'utiliser une palette après définition
    Palette 1 for 2, 3, 5;
    -- Redéfinition d'une tile
    Tile 0 data is
        #33333333,
        #33333333,
        #22222222,
        #22222222,
        #11111111,
        #11111111,
        #00000000,
        #00000000;
End
Je me tourne donc chez vous puisque pas mal ici connaissent la coloration
Merci d'avance de votre participation
Brunni est déconnecté   Réponse avec citation

Publicité

Vieux 05/11/2009, 22h26   #2
Lord Deimos
Modérateur
 
Date d'inscription: 21/09/2006
Localisation: Dans un RPG Old School, dont je suis le Héro.
Messages: 736
Par défaut

Je me souviens avoir lâchement abandonné (pour cause de problème à l'époque) mon projet de colorisation: Batman.

Si je me souviens bien, on utilisait un mix des 2 premières méthodes citées.
Je me trompe peut-être.

Personnellement, je te conseillerais le choix qui prendrait le moins de "place", histoire de ne pas "ralentir" l'émulation du jeu.

Bref, pour ma part je voyais plutôt:

Code:
# Scène de CRC 12345678
[12345678]:
    # Définition des palettes
    setPalette 0,  #ffffff, #808080, #404040, #000000
    setPalette 1,  #ff8080, #ff0000, #800000, #000000
    # Palette par défaut
    addTileRule 0, 383, 0
    addTileRule 2, 3, 1
    addTileRule 5, 1
    setTilesetData 0,         
        #33333333,
        #33333333,
        #22222222,
        #22222222,
        #11111111,
        #11111111,
        #00000000,
        #00000000

    End
Un mix donc...
Et ça me rappelle que j'arrivais pas à bien faire fonctionner MasterBoy sur PSP... (Faudrait que je m'y remette, à l'occas'...)

Belle initiative en tout cas, bravo.
__________________
Japan Expo 2010. IWH* !!!

*
Spoiler
Lord Deimos est déconnecté   Réponse avec citation
Vieux 05/11/2009, 23h10   #3
Brunni
Super Modérateur
 
Date d'inscription: 10/11/2005
Localisation: Un pays avec beaucoup de banques
Messages: 3 226
Par défaut

Nan mais si c'est binaire c'est compilé (sur PC), donc ça ne ralentira pas le programme.
Et ce qu'on utilisait c'est comme le premier (les 3 font la même chose pour info). Y avait juste les ColorIt en plus.
Sinon je note ta proposition (j'aimais pas trop cette syntaxe parce qu'en écrivant par exemple addTileRule 2, 3, 4 on voit pas trop ce qui se passe). Merci

[Edit] Ha j'ai oublié de préciser, le langage actuel (dans les .pal.ini) sera de toute façon aussi supporté, histoire de pouvoir "porter" rapidement les colorations actuelles le but si je propose un nouveau langage c'est d'améliorer un peu la syntaxe en rendant le truc plus digeste. Dans le 3ème langage proposé par exemple, on pourrait définir un truc comme ça:
Code:
-- Palette bleutée
Palette 1 is #ffffff, #8080ff, #0000ff, #000000 for
    0..7,       -- Tiles du ciel
    10..13,     -- Bords des nuages
    23;         -- Bout de ciel supplémentaire...
Plutôt qu'avec plein d'addTileRules.

Dernière modification par Brunni ; 05/11/2009 à 23h56.
Brunni est déconnecté   Réponse avec citation
Vieux 06/11/2009, 00h12   #4
Ayla
Membre confirmée
 
Date d'inscription: 09/08/2007
Localisation: Belfort :'(
Messages: 573
Par défaut

Ah merde, si tu changes la syntaxe je vais être obligé de modifier mon GUI

Sinon je choisis langage objet, sans hésiter une seconde.

D'ailleurs si tu pouvais ajouter des variables globales (des #define quoi) ça serait tip top !
Ayla est déconnecté   Réponse avec citation
Vieux 06/11/2009, 00h13   #5
Brunni
Super Modérateur
 
Date d'inscription: 10/11/2005
Localisation: Un pays avec beaucoup de banques
Messages: 3 226
Par défaut

Tu as fait une GUI? Je suis assez intéressé de voir, parce que c'est justement ce qu'il manque et j'ai pas prévu d'en faire une
(si jamais la vieille syntaxe sera toujours supportée hein )
Brunni est déconnecté   Réponse avec citation
Vieux 06/11/2009, 00h19   #6
Ayla
Membre confirmée
 
Date d'inscription: 09/08/2007
Localisation: Belfort :'(
Messages: 573
Par défaut

Ça remonte à ma fin de DUT avant le stage (donc avant avril) et c'est pas super abouti. Je suis pas super fort en création d'interfaces graphiques :s

J'essaie de recompiler le programme et je fais quelques screens.
Ayla est déconnecté   Réponse avec citation
Vieux 06/11/2009, 01h13   #7
Brunni
Super Modérateur
 
Date d'inscription: 10/11/2005
Localisation: Un pays avec beaucoup de banques
Messages: 3 226
Par défaut

Ok cool Est-ce que tu peux justifier ton choix "sans hésiter" du langage objet? Histoire que je puisse faire "au mieux" en cas de compromis

Dernière modification par Brunni ; 06/11/2009 à 01h43.
Brunni est déconnecté   Réponse avec citation
Vieux 06/11/2009, 01h47   #8
Ayla
Membre confirmée
 
Date d'inscription: 09/08/2007
Localisation: Belfort :'(
Messages: 573
Par défaut

Eh bien ça me paraît naturel, on manipule des objets "palette" et "tileset" ça semble logique qu'on utilise un langage objet

Et puis dans le GUI j'ai été obligé de me fabriquer ces objets à partir du code, j'imagine que ça doit être plus simple à faire avec un code déjà en langage objet.
Ayla est déconnecté   Réponse avec citation
Vieux 06/11/2009, 02h33   #9
Lord Deimos
Modérateur
 
Date d'inscription: 21/09/2006
Localisation: Dans un RPG Old School, dont je suis le Héro.
Messages: 736
Par défaut

Citation:
Envoyé par Brunni Voir le message
Et ce qu'on utilisait c'est comme le premier (les 3 font la même chose pour info). Y avait juste les ColorIt en plus.
Sinon je note ta proposition (j'aimais pas trop cette syntaxe parce qu'en écrivant par exemple addTileRule 2, 3, 4 on voit pas trop ce qui se passe). Merci

[Edit] Ha j'ai oublié de préciser, le langage actuel (dans les .pal.ini) sera de toute façon aussi supporté, [...]
Code:
-- Palette bleutée
Palette 1 is #ffffff, #8080ff, #0000ff, #000000 for
    0..7,       -- Tiles du ciel
    10..13,     -- Bords des nuages
    23;         -- Bout de ciel supplémentaire...
Plutôt qu'avec plein d'addTileRules.
Là je serais pour le troisième langage avec ton exemple. Clair qu'il serait plus simple de colorier un jeu avec cette méthode. En théorie... A voir en pratique.

Là par contre, je viens de me souvenir de la première méthode, celle avec laquelle je demandais des infos qui sortaient dans les tutos qui suivaient quelques jours après.
Au final si on peut tout faire sans trop bidouiller, je choisirais plutôt ce langage.
Lequel se rapproche du langage dont je parle maintenant ? (histoire que je puisse voter, car je viens seulement de voir ton sondage)
__________________
Japan Expo 2010. IWH* !!!

*
Spoiler
Lord Deimos est déconnecté   Réponse avec citation
Vieux 06/11/2009, 02h55   #10
Ayla
Membre confirmée
 
Date d'inscription: 09/08/2007
Localisation: Belfort :'(
Messages: 573
Par défaut

Voilà les images, comme je l'ai dit c'est basique (et pas terminé, comme on peut le voir sur la 3e image) :
Spoiler


EDIT : Et si tu peux permettre de faire une redéfinition de tile et l'appliquer en une seule ligne (on a rarement besoin de mettre le même dessin sur plusieurs tiles différentes) du genre :
Code:
Tile 0 is "ffffffff 00ff00ff ff00ff00 00000000" for 125
Ça serait super

Dernière modification par Ayla ; 06/11/2009 à 03h14.
Ayla est déconnecté   Réponse avec citation
Vieux 06/11/2009, 06h55   #11
Lord Deimos
Modérateur
 
Date d'inscription: 21/09/2006
Localisation: Dans un RPG Old School, dont je suis le Héro.
Messages: 736
Par défaut

Excellent Ayla !
Je sens que je vais pouvoir finir mon projet sans me prendre la tête cette fois...
__________________
Japan Expo 2010. IWH* !!!

*
Spoiler
Lord Deimos est déconnecté   Réponse avec citation
Vieux 06/11/2009, 09h56   #12
archipel
Kikoolol
 
Date d'inscription: 22/01/2007
Messages: 2 847
Par défaut

moi non, sauf si ca corrige les tiles qui sont utilisé à plusieurs endroits différents, si je me rappelle bien, dans mon jeu des tiles d'unité servaient aussi à dessiner l'arrière plan
archipel est déconnecté   Réponse avec citation
Vieux 06/11/2009, 10h19   #13
Brunni
Super Modérateur
 
Date d'inscription: 10/11/2005
Localisation: Un pays avec beaucoup de banques
Messages: 3 226
Par défaut

Merci de vos réponses En fait ce n'est qu'une question de notation, sur le principe tous permettent de faire la même chose, par exemple:
Code:
# Langage 1
setPalette x, 1, 2, 3, 4
addTileRule x, y, z

; Langage 2
Palette(x) = 1, 2, 3, 4
Tile(x..y).palette = z

-- Langage 3
Palette x is 1, 2, 3, 4;
Palette z for x..y;

-- Raccourci pour le langage 3
Palette x is 1, 2, 3, 4 for x..y;
Le langage 3 offre juste une façon structurée permettant de définir une palette et l'affecter aux tiles directement, sans faire plein de Tile(...).palette = laMêmePalette ou addTileRule.
Sinon les constantes (#define) ça servirait dans quels cas?
Ayla> Super cool Mais je comprends pas trop ton exemple à la fin:
Code:
setTilesetData 0, "ffffffff 00ff00ff ff00ff00 00000000"
Ca l'applique déjà en une ligne...
Brunni est déconnecté   Réponse avec citation
Vieux 06/11/2009, 11h23   #14
Ayla
Membre confirmée
 
Date d'inscription: 09/08/2007
Localisation: Belfort :'(
Messages: 573
Par défaut

Citation:
Envoyé par Brunni Voir le message
Ayla> Super cool Mais je comprends pas trop ton exemple à la fin:
Code:
setTilesetData 0, "ffffffff 00ff00ff ff00ff00 00000000"
Ca l'applique déjà en une ligne...
C'est simple, je voudrais remplacer ça :
Code:
#	Modification de la bulle

ColorIt.setTilesetData 1, L "03033330 33333333 33333333 33333333 11112333 11111111 11111111 11111111"

ColorIt.setTile +244, +245, 1
par ça :

Code:
#	Modification de la bulle

setTilesetData 244..245, "03033330 33333333 33333333 33333333 11112333 11111111 11111111 11111111"
D'ailleurs, ce n'est pas forcément facile de s'y retrouver avec des numéros de tiles avec des "+" devant et d'autres sans…
Ayla est déconnecté   Réponse avec citation
Vieux 06/11/2009, 12h43   #15
Brunni
Super Modérateur
 
Date d'inscription: 10/11/2005
Localisation: Un pays avec beaucoup de banques
Messages: 3 226
Par défaut

Citation:
Envoyé par archipel Voir le message
moi non, sauf si ca corrige les tiles qui sont utilisé à plusieurs endroits différents, si je me rappelle bien, dans mon jeu des tiles d'unité servaient aussi à dessiner l'arrière plan
Je peux éventuellement permettre des attributs différents si la tile est utilisée comme BG, fenêtre ou sprite. Mais ça complexifie l'implémentation et ne corrigera pas les problèmes si la tile est utilisée à deux endroits différents dans le BG par exemple.
Ayla> oué, sur le même principe il devrait être possible de faire genre:
Code:
Custom tile 0 is
    #33333333,
    #33333333,
    #22222222,
    #22222222,
    #11111111,
    #11111111,
    #00000000,
    #00000000 for 244..245;
Brunni est déconnecté   Réponse avec citation
Vieux 06/11/2009, 14h00   #16
Dreamkey
Membre confirmé
 
Date d'inscription: 13/08/2006
Messages: 476
Par défaut

[Mini HS]
Brunni, tu devrais mettre à jour ta vidéo youtube, car beaucoup de personnes croient que c'est un fake/un hack de la rom, et je pense que cela permettrait de mieux faire connaitre ton émulateur si spécial
[/Mini HS]
Dreamkey est déconnecté   Réponse avec citation
Vieux 06/11/2009, 14h23   #17
Lord Deimos
Modérateur
 
Date d'inscription: 21/09/2006
Localisation: Dans un RPG Old School, dont je suis le Héro.
Messages: 736
Par défaut

Citation:
Envoyé par Brunni Voir le message
Mais ça complexifie l'implémentation et ne corrigera pas les problèmes si la tile est utilisée à deux endroits différents dans le BG par exemple.
Dans le jeu Batman, par exemple, j'avais rencontré ce problème.
Et je ne sais plus si on m'avait aider à le résoudre ou pas... (A moins que c'est à ce moment que j'avais "disparu" de PA ?)
__________________
Japan Expo 2010. IWH* !!!

*
Spoiler
Lord Deimos est déconnecté   Réponse avec citation
Vieux 06/11/2009, 16h40   #18
Brunni
Super Modérateur
 
Date d'inscription: 10/11/2005
Localisation: Un pays avec beaucoup de banques
Messages: 3 226
Par défaut

Nan mais c'est le cas dans pas mal de jeux. La solution n'est malheureusement pas universelle, le but c'est d'abord qu'elle soit simple à utiliser et à implémenter dans les émus. Pour une meilleure coloration, il faut passer par du hack, et c'est obligatoire dans certains jeux (du moins j'ai pas trouvé de solution raisonnable pour pallier aux divers problèmes qu'on m'a reportés).
Quand vous rencontrez ce genre de cas il faut se débrouiller pour colorer ces objets de la façon la plus neutre possible (et aussi anticiper qu'une tile toute noire par exemple a des chances d'être réutilisée plus tard ).
Sinon je n'ai toujours qu'un vote
Brunni est déconnecté   Réponse avec citation
Vieux 06/11/2009, 20h18   #19
Lord Deimos
Modérateur
 
Date d'inscription: 21/09/2006
Localisation: Dans un RPG Old School, dont je suis le Héro.
Messages: 736
Par défaut

Finalement en relisant tous les posts, j'ai opté pour la seconde solution (objet, tileset).
Ha, y'a 3 votes maintenant.
__________________
Japan Expo 2010. IWH* !!!

*
Spoiler
Lord Deimos est déconnecté   Réponse avec citation
Vieux 06/11/2009, 20h22   #20
Yodajr
Administrateur
 
Date d'inscription: 09/11/2005
Messages: 3 750
Par défaut

A la objet, plus logique je trouve
Yodajr est déconnecté   Réponse avec citation
Vieux 06/11/2009, 22h09   #21
Pixou
Super Modérateur
 
Date d'inscription: 17/11/2007
Localisation: Pas très loin de Toulouse.
Messages: 1 401
Par défaut

Obiwan Kennoby.
Si vous avez besoin d'un autre avis, hésitez pas !
__________________
Needs more gigawatt !

GameBoy Pocket bleu, Gameboy Color jaune, Gameboy Advance SP argent, GameBoy µ Famicom edition, Nintendo DS noire.
Psp Slim noire.

Pixou est déconnecté   Réponse avec citation
Vieux 07/11/2009, 01h05   #22
Nesgba
Membre confirmé
 
Date d'inscription: 10/11/2005
Messages: 830
Par défaut

Objet aussi, comme la plupart des langages de script récent.
Nesgba est déconnecté   Réponse avec citation
Vieux 07/11/2009, 02h02   #23
Riolehh
Ptite allumeuse
 
Date d'inscription: 08/05/2006
Localisation: Aux côtés d'une petite créature prénommée "chat".
Messages: 2 929
Voir les codes amis Nintendo DS Voir les codes amis Wii
Par défaut

Le 2 a l'air le plus simple. Mais je me demande un truc, avant pour les couleurs j'utilisais les valeurs du rouge, vert, bleu en fixant une variable de 0 à 255 pour chacune, ça marche comment le système de ffffffff ? en hexa avec une valeur de 00 à ff pour les trois couleurs primaires ?

Aussi :
Code:
Tile(0..383).palette = 0
Tile(2, 3, 5).palette = 1
le 0..383, c'est utilisation de la palette 0 pour les tiles 0 à 383 ? Et l'autre juste coloration de la tile 2, 3 et 5 avec la palette 1 ?

Y aurai quand même pas moyen de garder le premier où un équivalent pour le transfert des anciens .pal.ini histoire que tout soit au même format (qu'il y ai pas des .pal.ini qui se baladent et de l'autre côté ton nouveau format, ça sera un ips ?)?

Dernier truc (oui je fais chier avec mes quetions), c'est quoi cette chose là ? Je me souviens pas l'avoir vu :
Code:
Tile(0).data = (
#blablabla
#blablaa
#etc...
Riolehh est déconnecté   Réponse avec citation
Vieux 07/11/2009, 02h35   #24
Brunni
Super Modérateur
 
Date d'inscription: 10/11/2005
Localisation: Un pays avec beaucoup de banques
Messages: 3 226
Par défaut

Je suis quand même étonné que vous ayiez tous choisi le 2 Si on prend:
Tile(0).palette = ...
On a deux parenthèses et un égal à taper qui nécessitent un shift au clavier, en plus ils sautent tous à l'analyse syntaxique (ils sont inutiles quoi). J'avais essayé comme ça pour simplifier:
Code:
Tile 0 palette = 1
Mais c'est pas super joli. En tous cas ça confirme que c'est ce qui vous semble le plus naturel
Par contre je vois 5 votes pour le langage 2 mais quelques gens parlent quand même de garder l'ancien... apparemment ils n'ont pas voté.
Rio> oui c'est ça. Le dernier truc ça redéfinit une tile (tu la redessines toi même quoi).

Dernière modification par Brunni ; 07/11/2009 à 02h44.
Brunni est déconnecté   Réponse avec citation
Vieux 07/11/2009, 03h06   #25
Riolehh
Ptite allumeuse
 
Date d'inscription: 08/05/2006
Localisation: Aux côtés d'une petite créature prénommée "chat".
Messages: 2 929
Voir les codes amis Nintendo DS Voir les codes amis Wii
Par défaut

Citation:
Envoyé par Brunni Voir le message
Rio> oui c'est ça. Le dernier truc ça redéfinit une tile (tu la redessines toi même quoi).
Oui c'est ça à toutes les questions ?
Riolehh est déconnecté   Réponse avec citation
Réponse

Liens sociaux

Publicité



Utilisateurs regardant la discussion actuelle : 1 (0 membre(s) et 1 invité(s))
 
Outils de la discussion
Modes d'affichage

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Navigation rapide

Discussions similaires
Discussion Auteur Forum Réponses Dernier message
[Divers] PMP (Portable Game & Media Player) : La nouvelle console cheap! vgiant Articles 46 07/01/2010 13h46


Fuseau horaire GMT +2. Il est actuellement 12h50.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Tous droits réservés.
Version française #16 par l'association vBulletin francophone
Design par Ass-Itch, DJP et Dr.Vince