Registrarse

Elimine al Profesor Oak pero tengo dudas

Estado
Cerrado para nuevas respuestas.

lucas2017

Aguante Magikarp
Hola gente, antes que nada quiero decirles que es un honor para mi haberme registrado en esta comunidad que sigo desde hace mucho. bueno ahora si al punto de este tema. aplique el siguiente parche a mi pokemon Fire Red FR | Otros | Cómo saltarse la intro del Profesor Oak pero aunque esto funciona de diez me surgieron algunas dudas:
  1. ¿Como elijo el nombre de mi personaje?
  2. ¿Como elijo el nombre de el rival?
  3. ¿Como cambio de genero?
se que se hace con un callasm pero no se a que hacerle dicho call ¿:. espero que puedan ayudarme
 
Última edición:

Inferno

Miembro insignia
Miembro insignia
Hola gente, antes que nada quiero decirles que es un honor para mi haberme registrado en esta comunidad que sigo desde hace mucho. bueno ahora si al punto de este tema. aplique el siguiente parche a mi pokemon Fire Red FR | Otros | Cómo saltarse la intro del Profesor Oak pero aunque esto funciona de diez me surgieron algunas dudas:
  1. ¿Como elijo el nombre de mi personaje?
  2. ¿Como elijo el nombre de el rival?
  3. ¿Como cambio de genero?
se que se hace con un callasm pero no se a que hacerle dicho call ¿:. espero que puedan ayudarme
1. callasm 0x809FC91
2. Veo dos formas, la primera sería no utilizando la opción [rival] sino poner directamente el nombre. Y la segunda sería usar las rutinas de Jambo51:
Naming the Rival from the Overworld:

The Code:
Code:
Código:
.text
.align 2
.thumb
.thumb_func
.global rivalnamingingame
main:
push {r0-r4,lr}
ldr r0, place
str r0, [sp, #0x4]
ldr r1, ramlocation
ldr r1, [r1, #0x0]
ldr r0, standard
add r1, r1, r0
mov r0, #0x4
mov r2, #0x0
mov r3, #0x0
bl place2
ldr r1, ramlocation
ldr r1, [r1, #0x0]
ldr r0, standard
add r1, r1, r0
ldrb r0, [r1, #0x0]
cmp r0, #0xFF
beq failsafe
cmp r0, #0x0
beq failsafe
return: pop {r0-r4}
pop {pc}
place2: ldr r4, actualroutine
bx r4
failsafe: ldr r0, rivalname
loop: ldrb r2, [r0, #0x0]
strb r2, [r1, #0x0]
cmp r2, #0xFF
beq return
add r0, #0x1
add r1, #0x1
b loop
.align
place: .word 0x080568E1
ramlocation: .word 0x03005008
standard: .word 0x00003A4C
actualroutine: .word 0x0809D955
rivalname: .word 0x08FFFFFF
Where to insert: Anywhere! This routine is called from a script in the game, and as such, doesn't need to be carefully linked into existing routines. All you need to do is remember the rule of THUMB, add 1 to the offset when calling it!

Explanation: It's what it says on the tin, it lets you name your rival from the in game overworld, allowing for Silver like naming, or indeed, any other possibility you can come up with. The rivalname: .word 0x08FFFFFF is for if the player leaves the name box blank. It will fill it with a standard name instead. This standard name is up to you to create. Simply compile a name with XSE, and point that pointer to it.

You also need to put this routine in the game, or else it won't be able to load past the intro without naming the rival. All it does is temporarily write a holding name to the rival buffer so that the game doesn't crash.

Code:
Código:
.text
.align 2
.thumb
.thumb_func
.global rivalnamingskip
main:
ldr r1, [r6, #0x0]
ldr r0, number
mov r8, r0
add r1, r8
push {r1}
ldr r0, rivalname
loop: ldrb r2, [r0, #0x0]
cmp r2, #0xFF
beq end
strb r2, [r1, #0x0]
add r0, #0x1
add r1, #0x1
b loop
end: strb r2, [r1, #0x0]
pop {r1}
mov r0, sp
ldr r3, return
bx r3
.align
number: .word 0x00003A4C
rivalname: .word 0x08FFFFFF
return: .word 0x08054A75
Where to insert: Navigate to 0x54A6A, and change the following bytes to this:
01 49 08 47 00 00 XX XX XX 08.
Where the XX's stand for the pointer to the new routine plus 1.

Explanation: It simply writes a placeholder name into the [rival] buffer so the game doesn't crash. Obviously, you shouldn't be using the [rival] buffer until the player has named the rival, so it shouldn't be a problem.

To make this work, navigate to 0x130690, and change the pointer there to 0x1307D1.
Post original: PHO - Pokémon Hackers Online - View Single Post - [Document] Jambo51's ASM Resource Center
La tenía guardada de cuando buscara yo algo, pero al final nunca la acabé probando, por eso no sé si funciona o no. (Creo recordar que había alguna manera más sencilla de hacer esto o algo así, pero a menos que alguien la sepa yo no me acuerdo)

3. https://whackahack.com/foro/t-47631/rutinas-by-javi4315-pokemon-editor-act-01-05-2017-a (Sección Cambio de género)
 

lucas2017

Aguante Magikarp
gracias por tu respuesta hay lo pruebo, y creo que tienes razon en lo de el rival es mejor no usar el rival
 
Estado
Cerrado para nuevas respuestas.
Arriba