[Gba] Augmentez la difficulté: adaptez le niveau adverse au notre.

Pages: [1]

Unifag

  • Membre
  • 883 posts
14 juillet 2013, 15:25
Ceci n'est pas un tuto puisqu'il n'a pas pour objectif de vous apprendre quelque-chose, je vais juste vous donnez une routine ASM que j'ai faite et quelque éxplication pour que vous puissiez l'utiliser vous aussi. Je précise que les routines ASM disponible ici sont prévu pour la version rf, mais elles sont aussi compatible avec les autres versions, il suffit de trouver les offsets pour ces versions (et j'ai la flemme de chercher :) )

Avec ça vous pourrez faire en sorte que le niveau des pokémons adverse (pour les dresseurs uniquement) soit le même que celui du meilleur pokémon de votre équipe, enfin presque, car il y un système pour éviter les abus.
Imaginez une équipe de pokémons niveau 5 qui bat la ligue parce-que le maître à des pokémons niveau 5 lui aussi. J'ai donc fais en sorte que si le meilleur pokémon de l'équipe est trop faible le niveau adverse ne s'adapte pas. Par exemple, si l'adversaire à un pokémon qui aurait du être niveau 49, il y à alors 2 situation:
- mon pokémon le plus fort est niveau 87, dans ce cas l'adversaire sera de niveau 87 lui aussi.
- mon pokémon le plus fort est niveau 38, dans ce cas l'adversaire conservera sont niveau 49.

Voila une petite vidéo pour illustrer ça (regardez les niveaux adverse et le mien): [RH] Niveau du pokémon adverse adapté à notre niveau

Avec ce système la difficulté est garanti tous au long de l'aventure, fini les parties où on se contenter de monter 1 seul pokémon, ici ça ne marchera pas. Il faudra impérativement entraîner plusieurs pokémon de types différents.

Bon, concrètement comment faire, pour commencez il vous faut trouver un espace libre dans la rom d'une taille minimum de 0x3C et noter cette offset.
Maintenant rendez vous à l'offset 0x0003E6F2 (0x000690AA pour emeraude) et remplacer ceci:
50 1E 00 06 00 0E 70 BC 02 BC 08 47 00 00par ceci:
01 48 00 47 00 00 XX XX XX 08 00 00 00 00Où XX XX XX est un pointeur de l'offset que je vous est demandé de noter, enfin pas tous à fait puisqu'il faut faire +1 à cette offset. Par exemple si j'avais choisis l'offset 0x7134C0 j'aurais alors obtenu le pointeur C1 34 71 08.
Pour ceux qui souhaite comprendre à quoi ça sert regardez avec le désassembleur, c'est simple à comprendre.

Ensuite rendez-vous à l'offset que vous aviez choisis et coller y ceci (il s'agit de la routine):
50 1E 00 06 00 0E 7D 25 2D 02 1C 35 6C 46 24 04 24 0C AC 42 0A D1 07 4C 00 25 64 26 6E 43 A6 5D B0 42 00 D2 30 1C 01 35 06 2D F6 D3 70 BC 02 BC 08 47 00 00 D8 42 02 02Si vous utilisez emeraude remplacez D8 42 02 02 par 40 45 02 02.
Et voila, vous pouvez essayer, tous fonctionne correctement, et si jamais ce n'est pas le cas et que vous remarquez un bug n'hésitait pas à en faire par ici, mais normalement j'ai fais ce qu'il fallait pour que seul le niveau des pokémons des dresseurs sois changer.

Pour ceux que ça intéresse voici la routine au format texte:
.align 2
.thumb
start:
sub r0, r2, #0x1
lsl r0, r0, #0x18
lsr r0, r0, #0x18
mov r5, #0x7D
lsl r5, #0x8
add r5, #0x1C
mov r4, r13
lsl r4, #0x10
lsr r4, #0x10
cmp r4, r5
bne end
ldr r4, playerteam
mov r5, #0x0
hightLevel:
mov r6, #0x64
mul r6, r5
ldrb r6, [r4, r6]
cmp r0, r6
bhs checkLast
mov r0, r6
checkLast:
add r5, #0x1
cmp r5, #0x6
blo hightLevel
end:
pop {r4-r6}
pop {r1}
bx r1

playerteam:
.word 0x20242D8
« Modifié: 17 juillet 2013, 00:09 par Unifag »

Myst

  • Membre
  • 1870 posts
14 juillet 2013, 17:23
Oui,oui et oui!
Excellent!

Valounours

  • Membre
  • 133 posts
14 juillet 2013, 19:33
Tout simplement génial ! Surtout pour les Rom Hack "HardCore" tu l'a posté sur Pokécommunity ?

Unifag

  • Membre
  • 883 posts
14 juillet 2013, 21:12
Non je l'ai pas posté sur PC, et je sais pas si je le ferais.

Tuturosso

  • Membre
  • 773 posts
15 juillet 2013, 15:17
Laissons de l exclusivité au rom-hackers francais.
Tu peux trouver les offsets d emeraude dans quelques jours si tu as des dispo?

Undi

  • Modérateur de section
  • 2513 posts
15 juillet 2013, 15:28
Possible d'avoir une RH patchée avec ce code ?

j'aimerai jouer à la rom normale avec ce code, mais je m'y connais pas assez pour l'intégré  :-[

Unifag

  • Membre
  • 883 posts
15 juillet 2013, 15:51
Je te prépare ça se soir, la je peut pas.
Et pour tuturosso je verrais, je te promet rien psk j'ai vraiment la flemme de chercher les adresses mémoire pour les autres versions.

Undi

  • Modérateur de section
  • 2513 posts

Unifag

  • Membre
  • 883 posts
15 juillet 2013, 19:32
Voila pour toi ;)
https://mega.co.nz/#!1MIWUSgZ!FL7Q1UIXTeo-scRUV5gk7ng_Qslx1a3vOQ8uExFlN24


D'ailleurs je viens de penser qu'il peut y avoir des choses étranges, par exemple si votre adversaire est un roucoul et qu'il aurait du être niveau 7 et comme vous êtes level 91 il est lui aussi lvl 91, mais malgré sont level 91 il ne possède que charge et jet de sable.
Ce que je peut éventuellement faire c'est obliger le pokémon adverse à avoir les 4 dernières attaques qu'il peut apprendre.

Edit: il y avais une erreur avec le premier lien, voila le bon: https://mega.co.nz/#!MUB30bIJ!PA3KDFSUjsPKLjkFNEzZNzLfbCUlwU1e7sEA1jg5veo
« Modifié: 16 juillet 2013, 22:44 par Unifag »

Undi

  • Modérateur de section
  • 2513 posts
15 juillet 2013, 19:43
Owi, ce serai cool ça !

Tacabro

  • Membre
  • 196 posts
15 juillet 2013, 21:15
Merci Unifag, je vais tester la rom pour voir, ça donne envie  :win:

yushi56

  • Membre
  • 298 posts
15 juillet 2013, 23:14
c'est vraiment génial ;)
merci

Je serai aussi intérressé par adaptation pour les version émeraude fr ;)

Et encore GG !!

Arnik

  • Membre
  • 1812 posts
16 juillet 2013, 18:01
Je vais utiliser ce code pour la version "hard" de ma hack.

Unifag

  • Membre
  • 883 posts
16 juillet 2013, 19:26
Tu devrais attendre un peu avant de l'utiliser. J'ai prévu de l’améliorer pour faire en sorte que l'adversaire est des attaques qui correspondent à sont niveau. Et je ferais aussi une version où le joueur peut choisir si oui ou non il veut jouer contre des adversaires de sont niveau, tu aura juste à activer un flag pour passer en mode "difficile" et le désactiver pour passer en mode "normal".

Arnik

  • Membre
  • 1812 posts
16 juillet 2013, 20:09
Impressionant, tu m'épates!

Boumbibthebob

  • Membre
  • 22640 posts
16 juillet 2013, 21:00
Ca m'a l'air vraiment pas mal ce que t'as fait, je test ça ce soir !

Boumbibthebob

  • Membre
  • 22640 posts
16 juillet 2013, 21:14
Tu pourrais faire la même chose avec une rom de emeraude stp ?

Je viens de me faire tuer par un roucool niveau 6 à la première route, ça annonce du très lourd aha !

Elyiøs

  • Membre
  • 3107 posts
16 juillet 2013, 21:18
Bah putain.
C'est que ce doit être dur.
Dans emeraude t'a que les Chenipottes Goelise ×)

Boumbibthebob

  • Membre
  • 22640 posts
16 juillet 2013, 21:20
En gros, j'ai un carapuce timide. Il est trop lent pour fuir, et trop faible pour espérer battre un pokémon. Tjrs niveau 6 à Jadielle, c'est assez tendu pour l'instant.

Unifag

  • Membre
  • 883 posts
16 juillet 2013, 21:40
C'est vraie qu'au début ça doit être très difficile.
Mais j'ai un doute, tu à croiser un roucoul lvl 6 dans la nature? Psk j'ai pas souvenir de dresseur sur la première route et normalement les sauvages sont pas affecté pour éviter les abus.

Au pire si c'est trop difficile au début il est possible de faire une difficulté croissante, genre entre le level 0-10 l'adversaire à 2 lvl de moins que toi, lvl 0-20 il à 1 lvl de moins et ensuite même lvl que toi.

Pour émeraude je verrais, pour le moment c'est pas une priorité.

Boumbibthebob

  • Membre
  • 22640 posts
16 juillet 2013, 21:56
Oui, c'était un roucool sauvage.

Par contre, j'ai un bug. Dés que je capture un pokémon sauvage, quand je veux le regarder dans l'équipe, ça met au moins 10 secondes à charger le pokémon.
Ensuite, quand je gagne de l'expérience avec une nouvelle recrue (donc n'importe quel pokémon sauf le starter), sa barre monte jusqu'au bout, mais le pokémon ne gagne pas d'expérience.

Elyiøs

  • Membre
  • 3107 posts
16 juillet 2013, 22:09
L'ajustement fallait le mettre que sur les dresseurs.

Unifag

  • Membre
  • 883 posts
16 juillet 2013, 22:18
Oui c'était ce qui était prévu mais j'ai fais une modification avant de poster pour réduire la taille et j'ai pas pris le temps de tester du-coup. C'est pour ça que vous avez des bugs, je corrige ça tous de suite.

Edit: finalement c'était au moment de l'upload que je mettais trompé de rom, j'en avais pris une en cours de test. Voila la bonne: https://mega.co.nz/#!MUB30bIJ!PA3KDFSUjsPKLjkFNEzZNzLfbCUlwU1e7sEA1jg5veo
Edit: Au vu du nombre de demande pour adapter ça pour la version emeraude je l'ai fais, donc 1er post maj. Et voila une version modifié pour ce qui voudrait essayer: https://mega.co.nz/#!Jc4QgZxS!VbXmq1XCvW6sKBA4NYjGuT4Za_tWbqw_jCMRQwe_y_E
« Modifié: 17 juillet 2013, 00:28 par Unifag »

yushi56

  • Membre
  • 298 posts
17 juillet 2013, 04:12
Génial merci unifag ;)
tu gères!!

Tuturosso

  • Membre
  • 773 posts
18 juillet 2013, 13:54
Merciiiiiii!

hremeraude

  • Membre
  • 11384 posts
28 juillet 2013, 21:22
Faut je test :D

Nefarius

  • Membre
  • 22 posts
23 avril 2017, 00:39
Bon , désolé de faire remonter ce vieux topic mais moi , quand j'appuie sur "a" pour continuer depuis ma sauvegarde ça m'a relancé le jeu .
Du coup , j'ai essayé en appuyant sur "Nouvelle partie" , ça a marché jusqu’à ce que je prennes mon starter , et la , ça m'a redémarré le jeu --'
J'ai donc essayé de changer certains trucs ( sans faire n'importe quoi hein , je savais ce que je faisait ) , mais dans ce cas ça m'a simplement empêcher de jouer :
C'est-a-dire que au lieu de se lancer , l'écran du jeu restait blanc :/

EDIT : ouais j'avais mis un truc en trop mtn ça marche
« Modifié: 27 avril 2017, 18:36 par Nefarius »

tonindulou

  • Membre
  • 2 posts
30 avril 2017, 15:02
Ce serait possible de changer le code pour que les ennemis s'adaptent même si leur lvl de base est plus haut. Ce serait pour une version de Pokémon où on est pas obligé de farmer.

Pages: [1]    En haut ↑