[GBA] Existe-t-il un éditeur de script haut-niveau ?

Pages: [1]

Mourad1081

  • Membre
  • 205 posts
27 juillet 2015, 19:15
Bonjour à tous

Étant vraiment un allergique des langages bas niveau, je me demandais s'il existait un éditeur de script "haut niveau" qui remplacerait celui qu'on utilise tous sous Advance Map (peu importe la ROM GBA).

Par "haut niveau", je sous-entends le fait qu'il ne faille plus faire :

;Ouvrir un fichier en asm
MOV EAX, 5
MOV EBX, nomFichier
MOV ECX, modeDouverture
INT 0x80

mais plutôt :

//Ouvrir un fichier en C
fopen(filename, mode);


S'il n'en existe pas, pourquoi ne pas en coder un ? Je ne dis pas qu'il faille un compilateur mais simplement un bête programme qui fait office d'éditeur de texte, qui va parser le code "haut niveau" (nous définirions les mots-clés et une API*) et le traduire vers le langage utilisé par Advance Map pour scripter.

Merci.

_____________

* https://fr.wikipedia.org/wiki/Interface_de_programmation
« Modifié: 27 juillet 2015, 20:05 par Mourad1081 »

yago58

  • Invité
27 juillet 2015, 19:20
Tu me refais ta présentation au triple galop. >:(

Mourad1081

  • Membre
  • 205 posts
27 juillet 2015, 19:23
OK,attends mec, je prends mon PC, j'étais sur mon gsm en train de chier quand j'ai tapé ça :/

hremeraude

  • Membre
  • 11384 posts
27 juillet 2015, 19:49
Tu me refais ta présentation au triple galop. >:(

tant de haine :x

yago58

  • Invité

Mourad1081

  • Membre
  • 205 posts
27 juillet 2015, 20:06
Voilà j'ai modifié en adéquation avec ton lien.
Si ce n'est toujours pas valide, peux-tu mettre en exergue ce qui ne va pas ?

Merci mec

yago58

  • Invité
27 juillet 2015, 20:08
C'est bon,merci pour tes efforts.

Unifag

  • Membre
  • 883 posts
27 juillet 2015, 21:19
Les scripts des différents pnj ne sont pas en asm, mais dans un langage propre au jeu. Éditable avec XSE (ou d'autres éditeur de scripts).
Si effectivement tu voulais parler de l'asm alors oui il existe des compilateurs pour compiler du langage C en asm pour gba, je n'ai pas de nom en tête mais quoi qu'il en soit ce n'est pas forcement adapter au hacking.

Mourad1081

  • Membre
  • 205 posts
27 juillet 2015, 21:59
Lorsque j'ai pris l'asm pour exemple, je parlais du langage dans lequel nous codons avec XSE, ils se ressemblent dans leur syntaxe. Je parlais plutôt d'un logiciel LangageHautNiveau--->XSE

Mickey`

  • Membre
  • 2746 posts
28 juillet 2015, 15:16
Je ne trouve pas que le langage de bas niveau. Quelle différence entre :

givepokemon 0x1 0x64 0x0
Et

givePokemon(1, 100, 0)
 ? L'asm, pourquoi pas. Mais XSE offre déjà un langage d'assez haut niveau. Après ok t'as pas de boucles, de variables et autre mais c'est pas indispensable (même si ça serait pratique)

Mourad1081

  • Membre
  • 205 posts
28 juillet 2015, 15:38
Le givepokemon OK c'est simple, mais je faisais plutôt référence à ce genre de trucs :

//Copié-collé du tuto
'---------------
#org 0x8B412A
msgbox 0x86BC415 MSG_SIGN '"Message de pa..."
end

'---------
'Strings
'---------
#org 0x6BC415
= Message de pancarte. Cool!

Qu'on pourrait abréger en :

MessagePancarte("Message de pancarte. Cool !");

On pourrait même implémenter les boucles

Unifag

  • Membre
  • 883 posts
28 juillet 2015, 17:18
Enfaite les problèmes que tu pointe sont propre à XSE, il se fait vieux et ses défauts sont nombreux, dont notamment un affichage moisi des messages. Il y a actuellement une tentative de standardisation en cours sur pokécommunity : http://www.pokecommunity.com/showthread.php?t=350668 Libre a toi d'y contribuer.
Personnellement j’attends beaucoup un nouvelle éditeur de script mieux pensé et surtout open-source pour la maintenabilité. (Idem pour un éditeur de map, parce-que a-map c'est de la merde).

Mourad1081

  • Membre
  • 205 posts
28 juillet 2015, 17:43
Merci beaucoup pour le lien, je pense que si personne n'a encore codé ça, je tenterai le coup en open-source sur github quand j'aurai du temps libre.

EDIT :
Voici un screenshot de mon programme à l'arrache pour l'instant... Reste plus qu'à coder un compilateur x)

« Modifié: 28 juillet 2015, 18:30 par Mourad1081 »

Ribesg

  • Membre
  • 39 posts
28 juillet 2015, 20:37
Tant qu'il n'y a pas de variables ou de fonctions, ce n'est pas un compilateur dont tu as besoin, mais d'un simple "search&replace" ;)

Mourad1081

  • Membre
  • 205 posts
28 juillet 2015, 21:57
Oui voilà, un bête parseur qui va traduire :)

Megadrifter

  • Membre
  • 6425 posts
07 août 2015, 09:32
Le givepokemon OK c'est simple, mais je faisais plutôt référence à ce genre de trucs :

//Copié-collé du tuto
'---------------
#org 0x8B412A
msgbox 0x86BC415 MSG_SIGN '"Message de pa..."
end

'---------
'Strings
'---------
#org 0x6BC415
= Message de pancarte. Cool!

Qu'on pourrait abréger en :

MessagePancarte("Message de pancarte. Cool !");

On pourrait même implémenter les boucles
Ce que tu souhaites là ne pourra fonctionner correctement que si la fonction MessagePancarte(string) gère automatiquement l'attribution des offsets à la chaîne passée en paramètre, et aux éventuelles autres chaînes qui la suivent si elles sont trop proches. Sinon, oui, ça reste faisable.

Mourad1081

  • Membre
  • 205 posts
07 août 2015, 12:03
Je suis en train d'en coder un. L'utilisateur pourra s'abstraire de toute gestion de la mémoire, tout est géré par le programme :)

Unifag

  • Membre
  • 883 posts
07 août 2015, 12:18
Les scripts ne gère en rien la mémoire déjà ... Même si je pense avoir compris ce que tu voulais dire et c'est le principe de scripter en dynamique, je sais pas si XSE gère ça bien par contre.
Sauf que ce principe pose des soucis quand il s'agit de modifier un script déjà existant.
D'ailleurs je ne comprend pas vraiment ce que tu essaye de faire, de mon point de vue tous ce que tu fais c'est changer la syntaxe.

Guitoh

  • Membre
  • 5981 posts
07 août 2015, 15:29
la syntaxe l'horripile, c'est bien juste ça, il veut faire un truc plus "évolué". Par contre s'il arrive à faire un truc avec gestion automatique des offsets, ça peut être intéressant :)

Mourad1081

  • Membre
  • 205 posts
07 août 2015, 21:21
Guitoh a tout dit =)
Je déteste la syntaxe d'XSE qui me fait penser à l'asm que je n'aime pas.

Je préfère écrire read(...) que move des entiers dans pleins de registres puis int 0x80. J'ai envie de simplifier le code en fait.

@Unifag, ce que je voulais dire c'est que l'utilisateur n'aura plus à chercher des offsets (script statiques) ni même à devoir s'occuper des endroits où XSE insèrera les offsets si tu codes en dynamiques (en gros, plus de @start, @message1, @message2, 0x993FE2, etc. Que du code, comme Java)

Unifag

  • Membre
  • 883 posts
08 août 2015, 01:31
Ajoute la possibilité de pouvoir gérer manuellement les offsets, dans certains cas on peut justement avoir besoin de scripter en static (si il faut faire appel à un autre script par exemple, la position de cette autre scripts doit être static.)

Mourad1081

  • Membre
  • 205 posts
08 août 2015, 01:44
C'est noté :)

Pages: [1]    En haut ↑