Activateurs pour les versions B&N ?

Pages: [1]

Exagone

  • Membre
  • 220 posts
19 Mars 2011, 11:22
Bonjour, étant donné que mon bouton L ne fonctionne pas, j'ai essayé de changer l'activateur pour le code pour traverser les murs ... Sauf que, l'activateur L+A pour les "anciennes versions" n'est pas dans le code pour traverser les murs de la version Blanche. Quelqu'un les a forcément trouver, pour faire les codes, mais quels sont ces activateurs ?

NB : J'ai pas encore la version Blanche, c'est juste pour être prêt avec ces nouveaux codes.
« Modifié: 19 Mars 2011, 11:25 par Exagone »

Mikachu

  • Membre
  • 972 posts
19 Mars 2011, 11:35
Les activateurs de code sont identique, et ce quelque soit la version du jeu.

Tu trouvera le générateur d' activateurs (crée par M@T) ici. Il te suffit de cocher les touches que tu veux utiliser comme activateur et tu aura le code adéquat. Il te suffit alors de remplacer l'activateur précédent par celui de ton choix...

Enjoy !! ;)
« Modifié: 19 Mars 2011, 11:37 par Mikachu »

Exagone

  • Membre
  • 220 posts
19 Mars 2011, 11:45
T'inquiète je le connais, j'ai copié sa version originale : http://res.22web.net/activateurs.html (comme il était sur xdir et que le ftp de xdir ne marche plus ...)

Et pour ce qui est de mon cas, c'est normal ?
« Modifié: 19 Mars 2011, 11:47 par Exagone »

M@T

  • Membre
  • 15208 posts
19 Mars 2011, 15:18
L'activateur est légèrement modifié afin de gérer les cas où l'utilisateur appuie simultanément sur L, A et B.
Mais comme le dit Mikachu, les activateurs sont communs à tous les jeux.

Tu voudrais quelles touches à la place ?

Exagone

  • Membre
  • 220 posts
22 Mars 2011, 19:38
pour faire un code sans activateurs, quelle est la partie du code à utiliser ? cette qui met à 0 la (plus de vocabulaire ce soir je suis crevé, équivalent à variable pour les langages hors hexa) je suppose.

M@T

  • Membre
  • 15208 posts
23 Mars 2011, 09:27
Mauvaise idée de l'activer en permanence...

Enfin, si ça peut te faire plaisir :

Marcher à travers les murs (toujours activé) (version Blanche) :
521A45F8 D0002901
121A45FC 00002002
D0000000 00000000

Exagone

  • Membre
  • 220 posts
23 Mars 2011, 18:51
Pourquoi ? Je ne vais pas en wifi. Sinon c'est juste pour pouvoir faire avec les activateurs que je connais.
Et c'est possible un activateur pour dire "je relâche telle touche" ?

Touche R pressée : on active le code.
Touche R relâchée : on "désactive" le code.

EDIT : dans ton code, c'est pas plutôt le terminateur D2 au lieu de D0 ? D0 c'est pas quand le code n'est pas fini ?
« Modifié: 23 Mars 2011, 19:00 par Exagone »

M@T

  • Membre
  • 15208 posts
23 Mars 2011, 19:09
Pour faire le contraire d'une condition "9...", c'est "A...".
Donc pour dire "Quand ni L ni R sont appuyés", c'est "A4000130 FCFF0000".
Ça marche également avec "94000130 FCFF0300".

En fait, "FCFF" c'est un bitmask qui sert à isoler deux bits.
"94000130 FCFF0000" vérifie que [valeur à 0x04000130] & !(0xFCFF) == 0
c'est-à-dire : [valeur à 0x04000130] & 0b0000001100000000 == 0

La valeur à 0x04000130 contient les informations sur l'état des touches (sauf X et Y).
Chaque touche est codée sur un bit, qui vaut 1 quand la touche est relâchée et 0 quand elle est pressée.

Du coup, quand il n'y a aucune touche de pressée, ça vaut 0b1111111111111111 = 0xFFFF

Pour l'activateur "94000130 FCFF0000"

Aucune touche pressée :
  0b1111111111111111    // Tous les bits valent 1
& 0b0000001100000000    // Valeur pour L+R
--------------------
= 0b0000001100000000    // Différent de 0, donc le code n'est pas exécuté

Touche R pressée, L relâchée :
  0b1111111011111111
& 0b0000001100000000    // Valeur pour L+R
--------------------
= 0b0000001000000000    // Différent de 0, donc le code n'est pas exécuté

Touche L pressée, R relâchée :
  0b1111110111111111    // Le bit de L vaut 0
& 0b0000001100000000    // Valeur pour L+R
--------------------
= 0b0000000100000000    // Différent de 0, donc le code n'est pas exécuté

Touches L et R pressées :
  0b1111110011111111    // Les bits de L et de R valent 0
& 0b0000001100000000    // Valeur pour L+R
--------------------
= 0b0000000000000000    // Égal à 0, donc le code est exécuté

Le code de type "A..." faisant le contraire de "9...", il sera vrai quand ce dernier ne l'est pas.

Enfin, si tu as compris le truc des bitmasks, tu peux faire des trucs plus complexes, comme pour le code qui permet de marcher à travers les murs.

Par exemple, "94000130 FCFF0100" ne s'exécute que quand L est pressé mais pas R.

Touche R pressée : on active le code.
Touche R relâchée : on "désactive" le code.

Je vais voir pour celui-là.

EDIT : dans ton code, c'est pas plutôt le terminateur D2 au lieu de D0 ? D0 c'est pas quand le code n'est pas fini ?

Pas besoin, vu que le seul truc utilisé dedans c'est une condition.
"D0" sert à indiquer la fin d'une condition.
"D2" termine tout (conditions, boucles) et remet tous les registres à 0 (offset et "data").
« Modifié: 23 Mars 2011, 19:12 par M@T »

Exagone

  • Membre
  • 220 posts
24 Mars 2011, 09:57
Toute ce que j'ai compris c'est qu'il me reste à apprendre pour te rattraper ;D
Déjà il me manque le vocabulaire pour les 8 premiers caractères qui donne l'endroit où la ligne d'après doit agir sur la sauvegarde en temps réel, les 8 derniers de la ligne qui change la valeur (et comment elle se nomme cette valeur ?), etc ... Tu peux me donner des liens (même sur gbatemp) où je pourrais apprendre tout ça ?

Pour ce qui est du tuto, ce que j'ai compris c'est que sur AAAABBBB, AAAA c'est la bitmask qui donne la combinaison de touche et BBBB des information supplémentaires sur cette combinaison.
« Modifié: 24 Mars 2011, 09:59 par Exagone »

M@T

  • Membre
  • 15208 posts
24 Mars 2011, 13:04
Je pense que tu peux parler de fonction et d'argument pour la 1ère et la 2ème partie de la ligne.
Tous les types de codes sont là : http://doc.kodewerx.org/hacking_nds.html#arcodetypes

Exagone

  • Membre
  • 220 posts
24 Mars 2011, 13:10
Merci je comprend mieux d'où venais le 9.
À quand une amélioration de ton programme pour les activateurs ?

M@T

  • Membre
  • 15208 posts
24 Mars 2011, 13:43
Pas besoin de ça je pense...

Exagone

  • Membre
  • 220 posts
24 Mars 2011, 18:41
Marcher à travers les murs (maintenir R) (version Blanche)
94000130 FEFF0000
521A45F8 D0002901
121A45FC 00002002
D0000000 00000000
A4000130 FEFF0000
521A45F8 D0002901
121A45FC 00002004
D0000000 00000000


C'est ça ?

Ou ça ?

521A45F8 D0002901
94000130 FEFF0000
121A45FC 00002002
D0000000 00000000
A4000130 FEFF0000
121A45FC 00002004
D0000000 00000000
« Modifié: 24 Mars 2011, 19:17 par Exagone »

M@T

  • Membre
  • 15208 posts
24 Mars 2011, 19:24
En fait, t'as pas besoin du "A".

Regarde :

521A45F8 D0002901  // Vérifie un truc sur une valeur qui indique sûrement que la partie a été chargée
121A45FC 00002004  // Si la partie est chargée, alors on empêche de traverser les murs
94000130 FEFF0000  // Si la touche R est pressée
121A45FC 00002002  // Alors on permet de traverser les murs
D0000000 00000000  // Fin de la condition

Dans tous les cas on écrit la valeur qui empêche de traverser les murs, mais si R est pressée, alors on remplace immédiatement par la valeur qui permet de les traverser.
« Modifié: 24 Mars 2011, 19:25 par M@T »

Pages: [1]    En haut ↑