Rutinas by Javi4315 [Pokémon Editor | Act - 01/05/2017]

Like Tree63Gracias
Respuesta
 
Herramientas Desplegado
  #21  
01/05/2017
Favorito Respuesta: Rutinas by Javi4315 [Poder Oculto | Act - 20/04/2017]
Dicho por Javi4315♪ Ver mensaje
Esta rutina permite editar los datos encriptados de cualquier pokémon del equipo. Para ello, traslada los datos desencriptados del pokémon a un espacio libre de la RAM donde se pueden editar.
¡¡Esto es jodidamente genial! Es genial poder editar completamente los datos de un pokemon del equipo!! ¡Directo a mi hack jefe! Eres genial tío, cuando actualicé el hack te haré una mención a lo grande. No sabes el jugo que le voy a sacar a tu rutina. Ya tengo unas ideas muy bestias para darle mucho pero que mucho juego <3

~Mis respetos


¡Muchas gracias hermano!
~Un abrazo
Gracias: AaRóN y Saint Sage

Click para ver la firma




FEL!X



Premios




Galería (Link directo)



Aportaciones y participaciones



Algunas respuestas a posts y más posts





Respuesta: Cuantos años teneis? Que año Conocisteis Wah?

Respuesta: Con qué Pokémon te has encariñado y porqué?

Respuesta: GBA | Gráficos | [AVANZADO] ¡Añadir más frames a tus minis!

[Vídeo] Cuando Pokemon GO se vuelve violento
Respuesta: Rap de los Hackrom - Sage [A capella]
Respuesta: GBA | ASM | Clase Número 3: Instrucciones Básicas
Respuesta: ¿Cómo olvido a una chica? No puedo.
Respuesta: [Encuesta]¿Que encuentras mas divertido/entretenido al Rom Hackear/Makear?
* * *
Respuesta: [Cosas De WaH Ep2]¡¡5 Cosas Paranormal Que Nos Han Sucedido!!
Respuesta: FR| ASM| Salto en cualquier dirección.
Respuesta: [Cosas De WaH Ep1]¡¡10 Cosas Sobre Nosotros!!
¡fel!xidades! (Gracias a todos)

¡Ya están aquí!: Resultados PWaH 2015

Respuesta: ¿Qué estás escuchando ahora? (2)
* * *

Respuesta: [Relato de invierno] Chicago.
Respuesta: ¡TIPOS DE HACKERS! ¡Dime qué clase eres tú!
[TAG del MangaAnime]
Respuesta: [FR][DUDA]Comandos de dinero
[Por Una Wah Unida]
Respuesta: Mis motivos de estar aqui
* * *

Respuesta: Psicólogo para el psicólogo, filósofo para el filósofo~
Respuesta: ¿Qué estás escuchando ahora?
Respuesta: [Historia] Hijos del bosque, hijos del viento
Respuesta: [IDEA] Jugador se pueda liar
Respuesta: ¿Cuál es vuestro arquetipo de personaje favorito?
Respuesta: [Encuesta] ¿Cuál fue tu primer juego de pokemon?
* * *


Respuesta: [Test] ¿Qué tipo de personalidad eres?(Viva el comandante FEL!X)

Tu TOP 5 de animes (Mi propio top)
Respuesta:Pregunta a todos los spriters (Mi punto de vista)
Respuesta: IDEA | Nuevos Tipos Elementales 8El tipo experto)
Respuesta: IDEA | Nuevos Tipos de Evolucion (El caso de Machamp )

¡Un abrazo!

  #22  
20/05/2017
Predeterminado Respuesta: Rutinas by Javi4315 [Pokémon Editor | Act - 01/05/2017]
Una pregunta se podria hacer que te den un pokemon con uno o varios ataques custom(ataques que no tiene porque aprender por ejemplo pikachu con surf)
Seria como lo del nombre? Se podria poner en variables los ataques y luego modificarlo aunque molaria dar un pokemon customizado de arriba a abajo preparado con asignar variables las que sean texto podrían ser punteros al texto (bueno no se como va el asm pero me parece que es posible

Crees que se podria hacer? De ser asi podrías?????(carita de perro pidon)(entiendo que puede ser mucha faena y no tengas ganas xD)
  #23  
20/05/2017
Predeterminado Respuesta: Rutinas by Javi4315 [Pokémon Editor | Act - 01/05/2017]
Dicho por pikachu240 Ver mensaje
Una pregunta se podria hacer que te den un pokemon con uno o varios ataques custom(ataques que no tiene porque aprender por ejemplo pikachu con surf)
Seria como lo del nombre? Se podria poner en variables los ataques y luego modificarlo aunque molaria dar un pokemon customizado de arriba a abajo preparado con asignar variables las que sean texto podrían ser punteros al texto (bueno no se como va el asm pero me parece que es posible

Crees que se podria hacer? De ser asi podrías?????(carita de perro pidon)(entiendo que puede ser mucha faena y no tengas ganas xD)
Puedes hacerlo con la última rutina que puse ("Pokémon editor"). Desencripta el pokémon que quieras editar, y utiliza el comando writebytooffset para cambiar los ataques. Puse la tabla, si la miras, verás que los ataques están en 0x203F500 + 44.
Gracias: pikachu240 y Cheve J.
¡Pokémon Inmortal ya tiene BETA 2!
  #24  
20/05/2017
Predeterminado Respuesta: Rutinas by Javi4315 [Poder Oculto | Act - 20/04/2017]
Dicho por Javi4315♪ Ver mensaje
[caja=background:#F5F5F5; color:#3E3E3E; border: 2px solid #9E9E9E; padding: 20px]
[caja=background:#F5F5F5; color:#7E7E7E; border: 2px solid #9E9E9E;]
POKéMON EDITOR
[/caja]
Esta rutina permite editar los datos encriptados de cualquier pokémon del equipo. Para ello, traslada los datos desencriptados del pokémon a un espacio libre de la RAM donde se pueden editar.

Spoiler


En realidad, el sistema utiliza dos rutinas, una para desencriptar y otra para encriptar. Aviso de que son largas.

Esta es la rutina para desencriptar los datos:

Código:
.align 2
.thumb

push {r0-r7,lr}
ldr r1, .var_8000
ldrh r1, [r1]
mov r0, #0x64
mul r1, r0
ldr r0, .party
add r0, r0, r1
ldr r1, [r0]
ldr r2, [r0,#0x4]
eor r1, r2
mov r6, r1
ldr r2, .memory
mov r7, #0x0
ldr r7, [r0,#0x50]
mov r5, r0
ldr r0, [r0]

seguir2:
ldr r1, =0x18000000
cmp r0, r1
blo seguir3
sub r0, r0, r1
b seguir2

seguir3:
ldr r1, =0x1800000
cmp r0, r1
blo seguir4
sub r0, r0, r1
b seguir3

seguir4:
ldr r1, =0x180000
cmp r0, r1
blo seguir5
sub r0, r0, r1
b seguir4

seguir5:
ldr r1, =0x18000
cmp r0, r1
blo seguir6
sub r0, r0, r1
b seguir5

seguir6:
ldr r1, =0x1800
cmp r0, r1
blo seguir7
sub r0, r0, r1
b seguir6

seguir7:
ldr r1, =0x180
cmp r0, r1
blo seguir8
sub r0, r0, r1
b seguir7

seguir8:
ldr r1, =0x18
cmp r0, r1
blo continuar
sub r0, r0, r1
b seguir8

continuar:
str r0, [r2,#0x50]
mov r0, r5
mov r5, #0x0
ldr r3, [r0]
str r3, [r2]
ldr r3, [r0,#0x4]
str r3, [r2,#0x4]
ldr r3, [r0,#0x8]
str r3, [r2,#0x8]
ldr r3, [r0,#0xC]
str r3, [r2,#0xC]
ldr r3, [r0,#0x10]
str r3, [r2,#0x10]
ldr r3, [r0,#0x14]
str r3, [r2,#0x14]
ldr r3, [r0,#0x18]
str r3, [r2,#0x18]
ldr r3, [r0,#0x1C]
str r3, [r2,#0x1C]
mov r5, #0x50
ldr r5, .memory
ldr r4, =0x50
ldrb r5, [r5,r4]
mov r1, r6
cmp r5, #0x6
blo g_pri
cmp r5, #0xC
blo a_pri
cmp r5, #0x12
blo e_pri
cmp r5, #0x18
blo m_pri

g_pri:
mov r3, #0x0
ldr r3, [r0,#0x20]
eor r3, r1
str r3, [r2,#0x20]
ldr r3, [r0,#0x24]
eor r3, r1
str r3, [r2,#0x24]
ldr r3, [r0,#0x28]
eor r3, r1
str r3, [r2,#0x28]
b segunda

a_pri:
mov r3, #0x0
ldr r3, [r0,#0x20]
eor r3, r1
str r3, [r2,#0x2C]
ldr r3, [r0,#0x24]
eor r3, r1
str r3, [r2,#0x30]
ldr r3, [r0,#0x28]
eor r3, r1
str r3, [r2,#0x34]
b segunda

e_pri:
mov r3, #0x0
ldr r3, [r0,#0x20]
eor r3, r1
str r3, [r2,#0x38]
ldr r3, [r0,#0x24]
eor r3, r1
str r3, [r2,#0x3C]
ldr r3, [r0,#0x28]
eor r3, r1
str r3, [r2,#0x40]
b segunda

m_pri:
mov r3, #0x0
ldr r3, [r0,#0x20]
eor r3, r1
str r3, [r2,#0x44]
ldr r3, [r0,#0x24]
eor r3, r1
str r3, [r2,#0x48]
ldr r3, [r0,#0x28]
eor r3, r1
str r3, [r2,#0x4C]

segunda:
mov r3, #0x0
cmp r5, #0x6
beq g_seg
cmp r5, #0x7
beq g_seg
cmp r5, #0xC
beq g_seg
cmp r5, #0xD
beq g_seg
cmp r5, #0x12
beq g_seg
cmp r5, #0x13
beq g_seg
cmp r5, #0x0
beq a_seg
cmp r5, #0x1
beq a_seg
cmp r5, #0xE
beq a_seg
cmp r5, #0xF
beq a_seg
cmp r5, #0x14
beq a_seg
cmp r5, #0x15
beq a_seg
cmp r5, #0x2
beq e_seg
cmp r5, #0x3
beq e_seg
cmp r5, #0x8
beq e_seg
cmp r5, #0x9
beq e_seg
cmp r5, #0x16
beq e_seg
cmp r5, #0x17
beq e_seg
cmp r5, #0x4
beq m_seg
cmp r5, #0x5
beq m_seg
cmp r5, #0xA
beq m_seg
cmp r5, #0xB
beq m_seg
cmp r5, #0x10
beq m_seg
cmp r5, #0x11
beq m_seg

g_seg:
mov r3, #0x0
ldr r3, [r0,#0x2C]
eor r3, r1
str r3, [r2,#0x20]
ldr r3, [r0,#0x30]
eor r3, r1
str r3, [r2,#0x24]
ldr r3, [r0,#0x34]
eor r3, r1
str r3, [r2,#0x28]
b tercera

a_seg:
mov r3, #0x0
ldr r3, [r0,#0x2C]
eor r3, r1
str r3, [r2,#0x2C]
ldr r3, [r0,#0x30]
eor r3, r1
str r3, [r2,#0x30]
ldr r3, [r0,#0x34]
eor r3, r1
str r3, [r2,#0x34]
b tercera

e_seg:
mov r3, #0x0
ldr r3, [r0,#0x2C]
eor r3, r1
str r3, [r2,#0x38]
ldr r3, [r0,#0x30]
eor r3, r1
str r3, [r2,#0x3C]
ldr r3, [r0,#0x34]
eor r3, r1
str r3, [r2,#0x40]
b tercera

m_seg:
mov r3, #0x0
ldr r3, [r0,#0x2C]
eor r3, r1
str r3, [r2,#0x44]
ldr r3, [r0,#0x30]
eor r3, r1
str r3, [r2,#0x48]
ldr r3, [r0,#0x34]
eor r3, r1
str r3, [r2,#0x4C]

tercera:
mov r3, #0x0
cmp r5, #0x8
beq g_ter
cmp r5, #0xA
beq g_ter
cmp r5, #0xE
beq g_ter
cmp r5, #0x10
beq g_ter
cmp r5, #0x14
beq g_ter
cmp r5, #0x16
beq g_ter
cmp r5, #0x2
beq a_ter
cmp r5, #0x4
beq a_ter
cmp r5, #0xC
beq a_ter
cmp r5, #0x11
beq a_ter
cmp r5, #0x12
beq a_ter
cmp r5, #0x17
beq a_ter
cmp r5, #0x0
beq e_ter
cmp r5, #0x5
beq e_ter
cmp r5, #0x6
beq e_ter
cmp r5, #0xB
beq e_ter
cmp r5, #0x13
beq e_ter
cmp r5, #0x15
beq e_ter
cmp r5, #0x1
beq m_ter
cmp r5, #0x3
beq m_ter
cmp r5, #0x7
beq m_ter
cmp r5, #0x9
beq m_ter
cmp r5, #0xD
beq m_ter
cmp r5, #0xF
beq m_ter

g_ter:
mov r3, #0x0
ldr r3, [r0,#0x38]
eor r3, r1
str r3, [r2,#0x20]
ldr r3, [r0,#0x3C]
eor r3, r1
str r3, [r2,#0x24]
ldr r3, [r0,#0x40]
eor r3, r1
str r3, [r2,#0x28]
b cuarta

a_ter:
mov r3, #0x0
ldr r3, [r0,#0x38]
eor r3, r1
str r3, [r2,#0x2C]
ldr r3, [r0,#0x3C]
eor r3, r1
str r3, [r2,#0x30]
ldr r3, [r0,#0x40]
eor r3, r1
str r3, [r2,#0x34]
b cuarta

e_ter:
mov r3, #0x0
ldr r3, [r0,#0x38]
eor r3, r1
str r3, [r2,#0x38]
ldr r3, [r0,#0x3C]
eor r3, r1
str r3, [r2,#0x3C]
ldr r3, [r0,#0x40]
eor r3, r1
str r3, [r2,#0x40]
b cuarta

m_ter:
mov r3, #0x0
ldr r3, [r0,#0x38]
eor r3, r1
str r3, [r2,#0x44]
ldr r3, [r0,#0x3C]
eor r3, r1
str r3, [r2,#0x48]
ldr r3, [r0,#0x40]
eor r3, r1
str r3, [r2,#0x4C]

cuarta:
mov r3, #0x0
cmp r5, #0x9
beq g_cua
cmp r5, #0xB
beq g_cua
cmp r5, #0xF
beq g_cua
cmp r5, #0x11
beq g_cua
cmp r5, #0x15
beq g_cua
cmp r5, #0x17
beq g_cua
cmp r5, #0x3
beq a_cua
cmp r5, #0x5
beq a_cua
cmp r5, #0xD
beq a_cua
cmp r5, #0x10
beq a_cua
cmp r5, #0x13
beq a_cua
cmp r5, #0x16
beq a_cua
cmp r5, #0x1
beq e_cua
cmp r5, #0x4
beq e_cua
cmp r5, #0x7
beq e_cua
cmp r5, #0xA
beq e_cua
cmp r5, #0x12
beq e_cua
cmp r5, #0x14
beq e_cua
cmp r5, #0x0
beq m_cua
cmp r5, #0x2
beq m_cua
cmp r5, #0x6
beq m_cua
cmp r5, #0x8
beq m_cua
cmp r5, #0xC
beq m_cua
cmp r5, #0xE
beq m_cua

g_cua:
mov r3, #0x0
ldr r3, [r0,#0x44]
eor r3, r1
str r3, [r2,#0x20]
ldr r3, [r0,#0x48]
eor r3, r1
str r3, [r2,#0x24]
ldr r3, [r0,#0x4C]
eor r3, r1
str r3, [r2,#0x28]
b salir

a_cua:
mov r3, #0x0
ldr r3, [r0,#0x44]
eor r3, r1
str r3, [r2,#0x2C]
ldr r3, [r0,#0x48]
eor r3, r1
str r3, [r2,#0x30]
ldr r3, [r0,#0x4C]
eor r3, r1
str r3, [r2,#0x34]
b salir

e_cua:
mov r3, #0x0
ldr r3, [r0,#0x44]
eor r3, r1
str r3, [r2,#0x38]
ldr r3, [r0,#0x48]
eor r3, r1
str r3, [r2,#0x3C]
ldr r3, [r0,#0x4C]
eor r3, r1
str r3, [r2,#0x40]
b salir

m_cua:
mov r3, #0x0
ldr r3, [r0,#0x44]
eor r3, r1
str r3, [r2,#0x44]
ldr r3, [r0,#0x48]
eor r3, r1
str r3, [r2,#0x48]
ldr r3, [r0,#0x4C]
eor r3, r1
str r3, [r2,#0x4C]

salir:
str r7, [r2,#0x50]
pop {r0-r7,pc}

.party: .word 0x02024284
.var_8000: .word 0x020370B8
.memory: .word 0x0203f500
Código:
FF B5 CA 49 09 88 64 20 41 43 C7 48 40 18 01 68 42 68 51 40 0E 1C C6 4A 00 27 07 6D 05 1C 00 68 C4 49 88 42 01 D3 40 1A FA E7 C3 49 88 42 01 D3 40 1A FA E7 C1 49 88 42 01 D3 40 1A FA E7 C0 49 88 42 01 D3 40 1A FA E7 BE 49 88 42 01 D3 40 1A FA E7 BD 49 88 42 01 D3 40 1A FA E7 18 21 88 42 01 D3 40 1A FA E7 10 65 28 1C 00 25 03 68 13 60 43 68 53 60 83 68 93 60 C3 68 D3 60 03 69 13 61 43 69 53 61 83 69 93 61 C3 69 D3 61 50 25 A8 4D 50 24 2D 5D 31 1C 06 2D 05 D3 0C 2D 0E D3 12 2D 17 D3 18 2D 20 D3 00 23 03 6A 4B 40 13 62 43 6A 4B 40 53 62 83 6A 4B 40 93 62 1F E0 00 23 03 6A 4B 40 D3 62 43 6A 4B 40 13 63 83 6A 4B 40 53 63 14 E0 00 23 03 6A 4B 40 93 63 43 6A 4B 40 D3 63 83 6A 4B 40 13 64 09 E0 00 23 03 6A 4B 40 53 64 43 6A 4B 40 93 64 83 6A 4B 40 D3 64 00 23 06 2D 2D D0 07 2D 2B D0 0C 2D 29 D0 0D 2D 27 D0 12 2D 25 D0 13 2D 23 D0 00 2D 2C D0 01 2D 2A D0 0E 2D 28 D0 0F 2D 26 D0 14 2D 24 D0 15 2D 22 D0 02 2D 2B D0 03 2D 29 D0 08 2D 27 D0 09 2D 25 D0 16 2D 23 D0 17 2D 21 D0 04 2D 2A D0 05 2D 28 D0 0A 2D 26 D0 0B 2D 24 D0 10 2D 22 D0 11 2D 20 D0 00 23 C3 6A 4B 40 13 62 03 6B 4B 40 53 62 43 6B 4B 40 93 62 1F E0 00 23 C3 6A 4B 40 D3 62 03 6B 4B 40 13 63 43 6B 4B 40 53 63 14 E0 00 23 C3 6A 4B 40 93 63 03 6B 4B 40 D3 63 43 6B 4B 40 13 64 09 E0 00 23 C3 6A 4B 40 53 64 03 6B 4B 40 93 64 43 6B 4B 40 D3 64 00 23 08 2D 2D D0 0A 2D 2B D0 0E 2D 29 D0 10 2D 27 D0 14 2D 25 D0 16 2D 23 D0 02 2D 2C D0 04 2D 2A D0 0C 2D 28 D0 11 2D 26 D0 12 2D 24 D0 17 2D 22 D0 00 2D 2B D0 05 2D 29 D0 06 2D 27 D0 0B 2D 25 D0 13 2D 23 D0 15 2D 21 D0 01 2D 2A D0 03 2D 28 D0 07 2D 26 D0 09 2D 24 D0 0D 2D 22 D0 0F 2D 20 D0 00 23 83 6B 4B 40 13 62 C3 6B 4B 40 53 62 03 6C 4B 40 93 62 1F E0 00 23 83 6B 4B 40 D3 62 C3 6B 4B 40 13 63 03 6C 4B 40 53 63 14 E0 00 23 83 6B 4B 40 93 63 C3 6B 4B 40 D3 63 03 6C 4B 40 13 64 09 E0 00 23 83 6B 4B 40 53 64 C3 6B 4B 40 93 64 03 6C 4B 40 D3 64 00 23 09 2D 2D D0 0B 2D 2B D0 0F 2D 29 D0 11 2D 27 D0 15 2D 25 D0 17 2D 23 D0 03 2D 2C D0 05 2D 2A D0 0D 2D 28 D0 10 2D 26 D0 13 2D 24 D0 16 2D 22 D0 01 2D 2B D0 04 2D 29 D0 07 2D 27 D0 0A 2D 25 D0 12 2D 23 D0 14 2D 21 D0 00 2D 2A D0 02 2D 28 D0 06 2D 26 D0 08 2D 24 D0 0C 2D 22 D0 0E 2D 20 D0 00 23 43 6C 4B 40 13 62 83 6C 4B 40 53 62 C3 6C 4B 40 93 62 1F E0 00 23 43 6C 4B 40 D3 62 83 6C 4B 40 13 63 C3 6C 4B 40 53 63 14 E0 00 23 43 6C 4B 40 93 63 83 6C 4B 40 D3 63 C3 6C 4B 40 13 64 09 E0 00 23 43 6C 4B 40 53 64 83 6C 4B 40 93 64 C3 6C 4B 40 D3 64 17 65 FF BD 84 42 02 02 B8 70 03 02 00 F5 03 02 00 00 00 18 00 00 80 01 00 00 18 00 00 80 01 00 00 18 00 00 80 01 00 00
Y esta es la rutina para volverlos a encriptar:

Código:
.align 2
.thumb

push {r0-r7,lr}
ldrh r0, .memory
add r0, #0x20
mov r2, #0x0
mov r3, #0x2
mov r4, #0x0

checksum:
cmp r2, #0x30
beq encriptar2
ldrh r1, [r0,r2]
add r4, r4, r1
add r2, r2, r3
b checksum

encriptar2:
ldr r1, .var_8000
ldrh r1, [r1]
mov r0, #0x64
mul r1, r0
ldr r0, .party
add r2, r0, r1
ldr r0, .memory
ldr r7, [r0,#0x50]
strh r4, [r0,#0x1C]
ldr r1, [r0]
ldr r5, [r0,#0x4]
eor r1, r5
mov r6, r1
mov r5, r0
ldr r0, [r0]

seguir2:
ldr r1, =0x18000000
cmp r0, r1
blo seguir3
sub r0, r0, r1
b seguir2

seguir3:
ldr r1, =0x1800000
cmp r0, r1
blo seguir4
sub r0, r0, r1
b seguir3

seguir4:
ldr r1, =0x180000
cmp r0, r1
blo seguir5
sub r0, r0, r1
b seguir4

seguir5:
ldr r1, =0x18000
cmp r0, r1
blo seguir6
sub r0, r0, r1
b seguir5

seguir6:
ldr r1, =0x1800
cmp r0, r1
blo seguir7
sub r0, r0, r1
b seguir6

seguir7:
ldr r1, =0x180
cmp r0, r1
blo seguir8
sub r0, r0, r1
b seguir7

seguir8:
ldr r1, =0x18
cmp r0, r1
blo continuar
sub r0, r0, r1
b seguir8

continuar:
str r0, [r2,#0x50]
mov r0, r5
mov r5, #0x0
ldr r3, [r0]
str r3, [r2]
ldr r3, [r0,#0x4]
str r3, [r2,#0x4]
ldr r3, [r0,#0x8]
str r3, [r2,#0x8]
ldr r3, [r0,#0xC]
str r3, [r2,#0xC]
ldr r3, [r0,#0x10]
str r3, [r2,#0x10]
ldr r3, [r0,#0x14]
str r3, [r2,#0x14]
ldr r3, [r0,#0x18]
str r3, [r2,#0x18]
ldr r3, [r0,#0x1C]
str r3, [r2,#0x1C]
mov r5, #0x50
ldr r4, =0x50
ldrb r5, [r2,r4]
mov r1, r6
cmp r5, #0x6
blo g_pri
cmp r5, #0xC
blo a_pri
cmp r5, #0x12
blo e_pri
cmp r5, #0x18
blo m_pri

g_pri:
mov r3, #0x0
ldr r3, [r0,#0x20]
eor r3, r1
str r3, [r2,#0x20]
ldr r3, [r0,#0x24]
eor r3, r1
str r3, [r2,#0x24]
ldr r3, [r0,#0x28]
eor r3, r1
str r3, [r2,#0x28]
b segunda

a_pri:
mov r3, #0x0
ldr r3, [r0,#0x2C]
eor r3, r1
str r3, [r2,#0x20]
ldr r3, [r0,#0x30]
eor r3, r1
str r3, [r2,#0x24]
ldr r3, [r0,#0x34]
eor r3, r1
str r3, [r2,#0x28]
b segunda

e_pri:
mov r3, #0x0
ldr r3, [r0,#0x38]
eor r3, r1
str r3, [r2,#0x20]
ldr r3, [r0,#0x3C]
eor r3, r1
str r3, [r2,#0x24]
ldr r3, [r0,#0x40]
eor r3, r1
str r3, [r2,#0x28]
b segunda

m_pri:
mov r3, #0x0
ldr r3, [r0,#0x44]
eor r3, r1
str r3, [r2,#0x20]
ldr r3, [r0,#0x48]
eor r3, r1
str r3, [r2,#0x24]
ldr r3, [r0,#0x4C]
eor r3, r1
str r3, [r2,#0x28]

segunda:
mov r3, #0x0
cmp r5, #0x6
beq g_seg
cmp r5, #0x7
beq g_seg
cmp r5, #0xC
beq g_seg
cmp r5, #0xD
beq g_seg
cmp r5, #0x12
beq g_seg
cmp r5, #0x13
beq g_seg
cmp r5, #0x0
beq a_seg
cmp r5, #0x1
beq a_seg
cmp r5, #0xE
beq a_seg
cmp r5, #0xF
beq a_seg
cmp r5, #0x14
beq a_seg
cmp r5, #0x15
beq a_seg
cmp r5, #0x2
beq e_seg
cmp r5, #0x3
beq e_seg
cmp r5, #0x8
beq e_seg
cmp r5, #0x9
beq e_seg
cmp r5, #0x16
beq e_seg
cmp r5, #0x17
beq e_seg
cmp r5, #0x4
beq m_seg
cmp r5, #0x5
beq m_seg
cmp r5, #0xA
beq m_seg
cmp r5, #0xB
beq m_seg
cmp r5, #0x10
beq m_seg
cmp r5, #0x11
beq m_seg

g_seg:
mov r3, #0x0
ldr r3, [r0,#0x20]
eor r3, r1
str r3, [r2,#0x2C]
ldr r3, [r0,#0x24]
eor r3, r1
str r3, [r2,#0x30]
ldr r3, [r0,#0x28]
eor r3, r1
str r3, [r2,#0x34]
b tercera

a_seg:
mov r3, #0x0
ldr r3, [r0,#0x2C]
eor r3, r1
str r3, [r2,#0x2C]
ldr r3, [r0,#0x30]
eor r3, r1
str r3, [r2,#0x30]
ldr r3, [r0,#0x34]
eor r3, r1
str r3, [r2,#0x34]
b tercera

e_seg:
mov r3, #0x0
ldr r3, [r0,#0x38]
eor r3, r1
str r3, [r2,#0x2C]
ldr r3, [r0,#0x3C]
eor r3, r1
str r3, [r2,#0x30]
ldr r3, [r0,#0x40]
eor r3, r1
str r3, [r2,#0x34]
b tercera

m_seg:
mov r3, #0x0
ldr r3, [r0,#0x44]
eor r3, r1
str r3, [r2,#0x2C]
ldr r3, [r0,#0x48]
eor r3, r1
str r3, [r2,#0x30]
ldr r3, [r0,#0x4C]
eor r3, r1
str r3, [r2,#0x34]

tercera:
mov r3, #0x0
cmp r5, #0x8
beq g_ter
cmp r5, #0xA
beq g_ter
cmp r5, #0xE
beq g_ter
cmp r5, #0x10
beq g_ter
cmp r5, #0x14
beq g_ter
cmp r5, #0x16
beq g_ter
cmp r5, #0x2
beq a_ter
cmp r5, #0x4
beq a_ter
cmp r5, #0xC
beq a_ter
cmp r5, #0x11
beq a_ter
cmp r5, #0x12
beq a_ter
cmp r5, #0x17
beq a_ter
cmp r5, #0x0
beq e_ter
cmp r5, #0x5
beq e_ter
cmp r5, #0x6
beq e_ter
cmp r5, #0xB
beq e_ter
cmp r5, #0x13
beq e_ter
cmp r5, #0x15
beq e_ter
cmp r5, #0x1
beq m_ter
cmp r5, #0x3
beq m_ter
cmp r5, #0x7
beq m_ter
cmp r5, #0x9
beq m_ter
cmp r5, #0xD
beq m_ter
cmp r5, #0xF
beq m_ter

g_ter:
mov r3, #0x0
ldr r3, [r0,#0x20]
eor r3, r1
str r3, [r2,#0x38]
ldr r3, [r0,#0x24]
eor r3, r1
str r3, [r2,#0x3C]
ldr r3, [r0,#0x28]
eor r3, r1
str r3, [r2,#0x40]
b cuarta

a_ter:
mov r3, #0x0
ldr r3, [r0,#0x2C]
eor r3, r1
str r3, [r2,#0x38]
ldr r3, [r0,#0x30]
eor r3, r1
str r3, [r2,#0x3C]
ldr r3, [r0,#0x34]
eor r3, r1
str r3, [r2,#0x40]
b cuarta

e_ter:
mov r3, #0x0
ldr r3, [r0,#0x38]
eor r3, r1
str r3, [r2,#0x38]
ldr r3, [r0,#0x3C]
eor r3, r1
str r3, [r2,#0x3C]
ldr r3, [r0,#0x40]
eor r3, r1
str r3, [r2,#0x40]
b cuarta

m_ter:
mov r3, #0x0
ldr r3, [r0,#0x44]
eor r3, r1
str r3, [r2,#0x38]
ldr r3, [r0,#0x48]
eor r3, r1
str r3, [r2,#0x3C]
ldr r3, [r0,#0x4C]
eor r3, r1
str r3, [r2,#0x40]

cuarta:
mov r3, #0x0
cmp r5, #0x9
beq g_cua
cmp r5, #0xB
beq g_cua
cmp r5, #0xF
beq g_cua
cmp r5, #0x11
beq g_cua
cmp r5, #0x15
beq g_cua
cmp r5, #0x17
beq g_cua
cmp r5, #0x3
beq a_cua
cmp r5, #0x5
beq a_cua
cmp r5, #0xD
beq a_cua
cmp r5, #0x10
beq a_cua
cmp r5, #0x13
beq a_cua
cmp r5, #0x16
beq a_cua
cmp r5, #0x1
beq e_cua
cmp r5, #0x4
beq e_cua
cmp r5, #0x7
beq e_cua
cmp r5, #0xA
beq e_cua
cmp r5, #0x12
beq e_cua
cmp r5, #0x14
beq e_cua
cmp r5, #0x0
beq m_cua
cmp r5, #0x2
beq m_cua
cmp r5, #0x6
beq m_cua
cmp r5, #0x8
beq m_cua
cmp r5, #0xC
beq m_cua
cmp r5, #0xE
beq m_cua

g_cua:
mov r3, #0x0
ldr r3, [r0,#0x20]
eor r3, r1
str r3, [r2,#0x44]
ldr r3, [r0,#0x24]
eor r3, r1
str r3, [r2,#0x48]
ldr r3, [r0,#0x28]
eor r3, r1
str r3, [r2,#0x4C]
b salir

a_cua:
mov r3, #0x0
ldr r3, [r0,#0x2C]
eor r3, r1
str r3, [r2,#0x44]
ldr r3, [r0,#0x30]
eor r3, r1
str r3, [r2,#0x48]
ldr r3, [r0,#0x34]
eor r3, r1
str r3, [r2,#0x4C]
b salir

e_cua:
mov r3, #0x0
ldr r3, [r0,#0x38]
eor r3, r1
str r3, [r2,#0x44]
ldr r3, [r0,#0x3C]
eor r3, r1
str r3, [r2,#0x48]
ldr r3, [r0,#0x40]
eor r3, r1
str r3, [r2,#0x4C]
b salir

m_cua:
mov r3, #0x0
ldr r3, [r0,#0x44]
eor r3, r1
str r3, [r2,#0x44]
ldr r3, [r0,#0x48]
eor r3, r1
str r3, [r2,#0x48]
ldr r3, [r0,#0x4C]
eor r3, r1
str r3, [r2,#0x4C]

salir:
str r7, [r2,#0x50]
pop {r0-r7,pc}

.party: .word 0x02024284
.var_8000: .word 0x020370B8
.memory: .word 0x0203f500
Código:
FF B5 D0 48 20 30 00 22 02 23 00 24 30 2A 03 D0 81 5A 64 18 D2 18 F9 E7 C9 49 09 88 64 20 41 43 C6 48 42 18 C7 48 07 6D 84 83 01 68 45 68 69 40 0E 1C 05 1C 00 68 C4 49 88 42 01 D3 40 1A FA E7 C2 49 88 42 01 D3 40 1A FA E7 C1 49 88 42 01 D3 40 1A FA E7 BF 49 88 42 01 D3 40 1A FA E7 BE 49 88 42 01 D3 40 1A FA E7 BC 49 88 42 01 D3 40 1A FA E7 18 21 88 42 01 D3 40 1A FA E7 10 65 28 1C 00 25 03 68 13 60 43 68 53 60 83 68 93 60 C3 68 D3 60 03 69 13 61 43 69 53 61 83 69 93 61 C3 69 D3 61 50 25 50 24 15 5D 31 1C 06 2D 05 D3 0C 2D 0E D3 12 2D 17 D3 18 2D 20 D3 00 23 03 6A 4B 40 13 62 43 6A 4B 40 53 62 83 6A 4B 40 93 62 1F E0 00 23 C3 6A 4B 40 13 62 03 6B 4B 40 53 62 43 6B 4B 40 93 62 14 E0 00 23 83 6B 4B 40 13 62 C3 6B 4B 40 53 62 03 6C 4B 40 93 62 09 E0 00 23 43 6C 4B 40 13 62 83 6C 4B 40 53 62 C3 6C 4B 40 93 62 00 23 06 2D 2D D0 07 2D 2B D0 0C 2D 29 D0 0D 2D 27 D0 12 2D 25 D0 13 2D 23 D0 00 2D 2C D0 01 2D 2A D0 0E 2D 28 D0 0F 2D 26 D0 14 2D 24 D0 15 2D 22 D0 02 2D 2B D0 03 2D 29 D0 08 2D 27 D0 09 2D 25 D0 16 2D 23 D0 17 2D 21 D0 04 2D 2A D0 05 2D 28 D0 0A 2D 26 D0 0B 2D 24 D0 10 2D 22 D0 11 2D 20 D0 00 23 03 6A 4B 40 D3 62 43 6A 4B 40 13 63 83 6A 4B 40 53 63 1F E0 00 23 C3 6A 4B 40 D3 62 03 6B 4B 40 13 63 43 6B 4B 40 53 63 14 E0 00 23 83 6B 4B 40 D3 62 C3 6B 4B 40 13 63 03 6C 4B 40 53 63 09 E0 00 23 43 6C 4B 40 D3 62 83 6C 4B 40 13 63 C3 6C 4B 40 53 63 00 23 08 2D 2D D0 0A 2D 2B D0 0E 2D 29 D0 10 2D 27 D0 14 2D 25 D0 16 2D 23 D0 02 2D 2C D0 04 2D 2A D0 0C 2D 28 D0 11 2D 26 D0 12 2D 24 D0 17 2D 22 D0 00 2D 2B D0 05 2D 29 D0 06 2D 27 D0 0B 2D 25 D0 13 2D 23 D0 15 2D 21 D0 01 2D 2A D0 03 2D 28 D0 07 2D 26 D0 09 2D 24 D0 0D 2D 22 D0 0F 2D 20 D0 00 23 03 6A 4B 40 93 63 43 6A 4B 40 D3 63 83 6A 4B 40 13 64 1F E0 00 23 C3 6A 4B 40 93 63 03 6B 4B 40 D3 63 43 6B 4B 40 13 64 14 E0 00 23 83 6B 4B 40 93 63 C3 6B 4B 40 D3 63 03 6C 4B 40 13 64 09 E0 00 23 43 6C 4B 40 93 63 83 6C 4B 40 D3 63 C3 6C 4B 40 13 64 00 23 09 2D 2D D0 0B 2D 2B D0 0F 2D 29 D0 11 2D 27 D0 15 2D 25 D0 17 2D 23 D0 03 2D 2C D0 05 2D 2A D0 0D 2D 28 D0 10 2D 26 D0 13 2D 24 D0 16 2D 22 D0 01 2D 2B D0 04 2D 29 D0 07 2D 27 D0 0A 2D 25 D0 12 2D 23 D0 14 2D 21 D0 00 2D 2A D0 02 2D 28 D0 06 2D 26 D0 08 2D 24 D0 0C 2D 22 D0 0E 2D 20 D0 00 23 03 6A 4B 40 53 64 43 6A 4B 40 93 64 83 6A 4B 40 D3 64 1F E0 00 23 C3 6A 4B 40 53 64 03 6B 4B 40 93 64 43 6B 4B 40 D3 64 14 E0 00 23 83 6B 4B 40 53 64 C3 6B 4B 40 93 64 03 6C 4B 40 D3 64 09 E0 00 23 43 6C 4B 40 53 64 83 6C 4B 40 93 64 C3 6C 4B 40 D3 64 17 65 FF BD 84 42 02 02 B8 70 03 02 00 F5 03 02 00 00 00 18 00 00 80 01 00 00 18 00 00 80 01 00 00 18 00 00 80 01 00 00
El funcionamiento, al contrario que la rutina xD, es simple. Solo tienes que guardar el slot del poke en la variable 0x8000 y llamar a la rutina que desencripta los datos. Después, edita los datos que quieras y, por ultimo, llama a la rutina que los encripta de nuevo. Pero ten cuidado, si cambias el valor de la variable, se encriptarán los datos en otro slot, así que, cuando tengas que editar datos, hazlo y encripta de nuevo sin hacer otras cosas.

La rutina desencripta los datos, por tanto, no son editables los datos no encriptados, ya que estos se pueden hacer directamente sin necesidad de una rutina.

El pokémon se desencripta en la dirección 0x203F500 y se pueden editar los datos con simples WBTOs. Estos son los datos (en decimal):



NOTA: Pronto haré un tutorial en el que explicaré cómo funcionan todos los datos de los pokémon para que sepáis editarlos correctamente. Además, es probable que también haga rutinas suplementarias para que podáis editar fácilmente algunos aspectos más complicados, como la pokéball en la que fue capturado o para poder hacer shiny al pokémon.

[/caja]
Oh my...

Buen trabajo Javi! Gracias por traer semejante aporte ~

Retirado del RomHacking




Skype: scriptercheve
Twitter: The Moon Lover


"Transforma tu mundo"





.


  #25  
23/07/2017
Predeterminado Respuesta: Rutinas by Javi4315 [Pokémon Editor | Act - 01/05/2017]
Sera muy diferente el cambio de genero para Emerald?
  #26  
23/07/2017
Predeterminado Re: Respuesta: Rutinas by Javi4315 [Pokémon Editor | Act - 01/05/2017]
Dicho por Isley Ver mensaje
Sera muy diferente el cambio de genero para Emerald?
Hay una rutina en la seccion Tutoriales "al descubrimiento de emerald" y muy bien explicado como utilizarla
  #27  
08/09/2017
Corazón Respuesta: Rutinas by Javi4315 [Pokémon Editor | Act - 01/05/2017]
Dicho por Javi4315♪ Ver mensaje
GIVEPOKEMON CON NOMBRE PREDEFINIDO
Escribí un script tal que asi y este fue el resultado:

Nota: La rutina compilada fue insertada en 0x71A250.
Nota2: Bahamut es el nickname que siempre le doy a mis Charmander, ignorenlo.

¿Cual fue mi error?


EDITO: Solucionado. Cambié levemente la estructura del script y funcionó de maravilla.
Puse la cadena del countpokemon apenas empezar el script y moví el loadpointer a la linea anterior al givepokemon.
Basicamente este es el script cambiado y aqui el resultado:


Muchisimas gracias Javi

EDITO2: Viendo esto de nuevo, se me vinieron un par de ideas a la cabeza.
¿Seria posible asignarle un OT (Original Trainer) y TID (Trainer ID) propios al Pokémon que estás recibiendo?
Eso haria que el script en si se sienta un poco mas real/correcto, quiero decir, la idea detras de darle un apodo a un Pokémon es formar un vinculo, y esa idea se pierde si el Pokémon que recibes tiene tu mismo OT y TID en lugar de los propios del entrenador que te dió al Pokémon.

Última edición por Lunos; Hace 4 Semanas a las 10:55 Razón: Solución / Sugerencia
Respuesta

Herramientas
Desplegado

Permisos para publicar mensajes
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los BB code están Activado
Los Emoticones están Activado
El código [IMG] está Activado
El Código HTML está Desactivado
Trackbacks are Activado
Pingbacks are Activado
Refbacks are Desactivado



Extra
Estilo clásico
La franja horaria es GMT +1. Ahora son las 08:37.
Skin Afternoon por Sage