Registrarse

Velocidad del player FR [investigacion en desarrollo]

Nacho

Nadando hasta la otra orilla
Bueno es mi primera publicación en esta zona. La velocidad del player es controlada por la dirección 02037078 de la ram.

Cambiando los valores te dará una u otra velocidad

01: caminar
02: velocidad bicicleta
08: velocidad surf
21: al salir del menú o de una batalla, cuando das un paso se determina si estás en bicicleta o estás caminando y se cambia el valor correspondiente, con alguna rutina interna de la rom que aun ignoro.
81: valor si estás corriendo


Respecto a 02037079, da igual cual valor se le de, el player cambiará al de la bicicleta, y el valor de 02037078 cambiará a 02 (velocidad bici). Por el contrario si el valor es 08 en específico, cambiará el player a la montura de SURF, y por cosiguiente tambien cambiará el valor de 02037078 a 08 (velocidad surf)

0203707A y 0203707B se comportan así:

0 0 Nada presionado
0 0 Nada presionado
1 1 Presionado adelante
2 1 Presionado adelante
2 1 Presionado adelante
2 1 Presionado adelante
0 0 Nada presionado
2 1 Presionado adelante
2 1 Presionado adelante
0 0 Nada presionado
0 0 Nada presionado
1 1 Presionado hacia adelante
2 1 Presionado hacia adelante
2 1 Presionado hacia adelante

No sé acerca de 02037078 + 4.


La finalidad de la investigación es poder concluir como funciona el cambio de velocidad permanente de la bicicleta, y surf.

Agradecería sus colaboraciones en investigar, ya que tampoco tengo mucho conocimiento de ASM, pero le hecho ganas. La idea es poder descubrir el mecanismo para poder hacer pokemonturas diversas, entre otras cosas.


fuente:

https://www.pokecommunity.com/showthread.php?t=391997

https://www.pokecommunity.com/showthread.php?p=6250763#post6250763


Editaré posteriormente

RESULTADOS:

02037079 otorga efectos permanentes, pero cambia el ow del player (bici, a pie, surf)
02037078 los efectos son temporales pero el player no cambia.

Si el valor de 02037079 es 08 el player levitará por defecto, además de cambiar el OW. Si lo vuelves a cambiar consecutivamente a bicicleta o surf, el OW de levitación quedará y aun levitará (estos efectos hasta refrescar el mapa)
 
Última edición:

Ngidol

Durmiendo en los laureles
Miembro del equipo
Encargado/a de Eventos
Respuesta: Velocidad del player [investigacion en desarrollo]

En qué rom es?
 

Annatar

A la luz del quinto día, mira al este
Re: Respuesta: Velocidad del player [investigacion en desarrollo]

En qué rom es?
FR

Buen aporte nacho, desde luego que te vendrá de perlas para el Ancient. Pero como bien te ha preguntado Jason estaría bien que digas cual es la ROM. Ponlo en el titulo del tema.
 

DrakoVinyl

Profesional de WaH
No se si soy el único que lo recuerda, pero Javi4315 en su hack, POKéMON Inmortal, implementa la mecánica de "cansancio físico" del protagonista y para lograr tal cosa, usa los cambios de velocidad.

Quizás, con un poco de ingenio además de poco de revisión de scripts del inmortal, puedas lograr algo parecido o incluso mejor.

En fin. Es algo a lo que se le puede sacar mucho rédito, por ejemplo en tu hack nacho, en el desierto, cuando te desidratas y estás sediento, podrías implementar algo de esto para hacer que cuando más sed tenga el protagonista, más le cueste avanzar por el desierto, incluso puedes hacer que el prota de tanto en tanto diga algo así:

- A cada paso que doy me siento más y más sediento... Bajo este implacable calor que me abraza se me hace muy difícil avanzar... Con cada nueva pisada hasta el más mísero grano de arena parece pesar toneladas, si no encuentro agua pronto, francamente no creo poder aguantar mucho más...

Att: El tito Sub. (^3^)_b
 
Última edición:

Nacho

Nadando hasta la otra orilla
Re: Respuesta: Velocidad del player FR [investigacion en desarrollo]

No se si soy el único que lo recuerda, pero Javi4315 en su hack, POKéMON Inmortal, implementa la mecánica de "cansancio físico" del protagonista y para lograr tal cosa, usa los cambios de velocidad.

Quizás, con un poco de ingenio además de poco de revisión de scripts del inmortal, puedas lograr algo parecido o incluso mejor.

En fin. Es algo a lo que se le puede sacar mucho rédito, por ejemplo en tu hack nacho, en el desierto, cuando te desidratas y estás sediento, podrías implementar algo de esto para hacer que cuando más sed tenga el protagonista, más le cueste avanzar por el desierto, incluso puedes hacer que el prota de tanto en tanto diga algo así:

- A cada paso que doy me siento más y más sediento... Bajo este implacable calor que me abraza se me hace muy difícil avanzar... Con cada nueva pisada hasta el más mísero grano de arena parece pesar toneladas, si no encuentro agua pronto, francamente no creo poder aguantar mucho más...

Att: El tito Sub. (^3^)_b
ni idea como javinumeritos logró hacer eso, quizas con una rutina de pasos y algo más, pero sería genial poder descubrirlo!
 

DrakoVinyl

Profesional de WaH
Respuesta: Re: Respuesta: Velocidad del player FR [investigacion en desarrollo]

ni idea como javinumeritos logró hacer eso, quizas con una rutina de pasos y algo más, pero sería genial poder descubrirlo!
Efectivamente es una posibilidad, aunque no se si sea así. Por lo que he llegado a ver, es muy probable, aunque he visto que usa muchos scripts de nivel para lograr lo que se ve plasmado en su hack.
Aunque conociendo a javi, de seguro hay asm implicado.
 

DrakoVinyl

Profesional de WaH
Revisando nuevamente tu tema, Nacho, me pareció muy curioso esto que planteas.

Nacho dijo:
La finalidad de la investigación es poder concluir como funciona el cambio de velocidad permanente de la bicicleta, y surf.
Siempre que usas un objeto de los que tienes en la mochila, se ejecuta una rutina ASM que pone en acción la función del objeto en sí.
Basado en este razonamiento, supongo que existe la posibilidad de que revisando la rutina que se carga al usar la bicicleta, logres determinar como se hace lo que has planteado.
 

Nacho

Nadando hasta la otra orilla
Revisando nuevamente tu tema, Nacho, me pareció muy curioso esto que planteas.



Siempre que usas un objeto de los que tienes en la mochila, se ejecuta una rutina ASM que pone en acción la función del objeto en sí.
Basado en este razonamiento, supongo que existe la posibilidad de que revisando la rutina que se carga al usar la bicicleta, logres determinar como se hace lo que has planteado.
Tus y tusbrazonamientos siempre acertados. Buena lógica. El tema es que la rutina es compleja. Pero si logras ver los resultados el cambio de Byte en 02037079 permite efecto permanente, con eso ya basta un Wbto y ya.
 

Samu

Usuario de Oro
Ya te lo comenté el otro día por discord, pero ese byte está relacionado con una parte de la memoria llamada gPlayerAvatar en decomp:




La información contenida en esta estructura es la siguiente:


Cada u8, u16, etc indica el número de bits que usa ese valor (u8 -> 8bits -> 1 byte).
Lo que estás modificando tu en memoria es el primer byte, que corresponde a 'u8 flags'.

Estas son las 8 flags que controla ese u8:


Te sugiero que pruebes a encender varios de esos flags a la vez, a ver que pasa (seguramente nada bueno XD). Para eso ten en cuenta que ahora mismo estas haciendo:
0000 0001 -- 0x1
0000 0010 -- 0x2
0000 0100 -- 0x4
0000 1000 -- 0x8
0001 0000 -- 0x10
0010 0000 -- 0x20
0100 0000 -- 0x40
1000 0000 -- 0x80

Para encender 2 flags sería:
0001 0001 -- 0x11


Suerte.
 
Arriba