Registrarse

[ASM] FR |Comprobar la felicidad de tu Pokémon

Lunos

Enfrentando a La Organización
Miembro insignia
Holi. Pedí una rutina en el Tema de Recursos ASM de PokeCommunity que me permitiese comprobar los puntos de felicidad/amistad de mis Pokémon y una gran persona la creó. Como siento que merece la pena compartirla, vine a compartirla.
Los creditos van para esa magnifica persona, el usuario ghoulslash de PokeCommunity por haberla creado y posteado justo aqui.
Sin mas que añadir, vamos a ello.

Necesitaremos:
-ROM de Pokémon Fire Red v1.0 (USA)
-Editor hexadecimal a preferencia (Como siempre, yo usaré HxD)
-Editor de scripts a elección (Yo usaré XSE, como el 99.9% de la comunidad)

Instrucciones:

1) Abrí tu ROM de Pokémon Fire Red en tu editor hexadecimal, copiá la siguiente Rutina ASM Compilada y pegala usando Ctrl+B en un offset con espacio vacio en tu ROM.
Como siempre mas vale prevenir que lamentar, yo sugiero que la pongan en un offset que termine en 0, 4, 8 o C. Yo la puse en 71A250.
Código:
07 B5 08 48 00 78 64 21 48 43 05 49 08 18 20 21 00 F0 03 F8 03 49 88 70 07 BD 03 4A 10 47 C0 46 84 42 02 02 C0 70 03 02 E9 FB 03 08
Explicación: Lo que hace esta rutina es comprobar los puntos de felicidad/amistad que tenga el Pokémon que hayamos puesto en la Variable 0x8004, y devuelve dicho valor en la Variable 0x8005 (en principio).

2) Escribir el script como se les antoje, usando el callasm 0x8XXXXXX+1 correspondiente.
Nota: XXXXXX+1 = Offset donde insertamos la rutina, +1.

En mi caso yo creé este simplón script para probar la rutina.
Usenla como base o expandanla a su antojo, como les apetezca.

Aqui una muestra del resultado:


Y eso fue todo.​
 
M

Miembro eliminado 28262

Invitado
Re: FR | Otros | Comprobar la felicidad de tu Pokémon

Yo ya tenia hecho esto hace tiempo para final red
No es gran cosa la verdad pero es un sistema bastante chido

Gracias por compartirlo!
Y ahora a esperar a que se viralice :snooty:
 

Markuzz Kaizuka

Usuario de platino
Respuesta: FR | Otros | Comprobar la felicidad de tu Pokémon

Cosas tan simples, pero que ayudan tanto...

Porque no haces un tutorial mas grande en donde recolectes los demas tutos de similar tamaño a este, en todos ellos das una muy buena explicación y es facil, esa es tu decisión,pero seria genial que los reunieras todos en uno, así hay mas facilidad para encontrarlos.

Saludos!!
Muy buen tuto!!
 

kakarotto

Leyenda de WaH
Respuesta: FR | Otros | Comprobar la felicidad de tu Pokémon

Buen tutorial Lunos, se puede hacer algun sistema de evolución espeon umbreon crobat como script secundario en un hack. Es un aporte bastante interesante y se agradece usuarios asi
 

MichaKing

Grafista avanzado
Respuesta: FR | Otros | Comprobar la felicidad de tu Pokémon


Ni que decir Lunos, todos tus "pequeños" aportes a la comunidad son de las cosas que más aprecio sin duda alguna, dan mucha jugabilidad la verdad. Ahora mismo no me imagino algo secundario que se pueda hacer gracias a esto, pero es muy útil para todos aquellos Pokémon que evolucionan por felicidad o algo por el estilo...

~MichaKing
 
Respuesta: FR | Otros | Comprobar la felicidad de tu Pokémon

Buen tutorial. Gracias!

PD. Podrías proveer el script? Estoy teniendo problemas con la identificación de su felicidad.
 
M

Miembro eliminado 28262

Invitado
Respuesta: FR | Otros | Comprobar la felicidad de tu Pokémon

Buen tutorial. Gracias!

PD. Podrías proveer el script? Estoy teniendo problemas con la identificación de su felicidad.
Pa que? Pa que te lo robes?
Aquí está, el mismo lo dejo en el tema, sabes

Código:
#dynamic 0x071A250
#org @inicio
lock
faceplayer
special 0x9F // Pantalla de selección de Pokémon
waitstate
compare 0x8004 0x6 // Comprueba si el jugador se echó para atras
if 0x4 goto @end // En cuyo caso, obliga al script a terminar.
special 0x7C // Toma el Mote del Pokémon que esté marcado en la Variable 0x8004 y lo guarda en el Buffer #1
callasm 0x8XXXXXX+1 // Invoca la rutina de ghoulslash
buffernumber 0x1 0x8005 // Guarda la cantidad de felicidad/amistad de tu Pokémon en el Buffer #2.
msgbox @1 0x6
release
end

#org @end
release
end

#org @1
= Tu [buffer1] tiene [buffer2]\npuntos de felicidad.
 
Respuesta: FR | Otros | Comprobar la felicidad de tu Pokémon

Pa que? Pa que te lo robes?
Aquí está, el mismo lo dejo en el tema, sabes

Código:
#dynamic 0x071A250
#org @inicio
lock
faceplayer
special 0x9F // Pantalla de selección de Pokémon
waitstate
compare 0x8004 0x6 // Comprueba si el jugador se echó para atras
if 0x4 goto @end // En cuyo caso, obliga al script a terminar.
special 0x7C // Toma el Mote del Pokémon que esté marcado en la Variable 0x8004 y lo guarda en el Buffer #1
callasm 0x8XXXXXX+1 // Invoca la rutina de ghoulslash
buffernumber 0x1 0x8005 // Guarda la cantidad de felicidad/amistad de tu Pokémon en el Buffer #2.
msgbox @1 0x6
release
end

#org @end
release
end

#org @1
= Tu [buffer1] tiene [buffer2]\npuntos de felicidad.
Robar, que idiota!
 

IIWolfgangII

Usuario de oro
Respuesta: FR | ASM | Comprobar la felicidad de tu Pokémon

Hola Una Consulta.. Aun estoy tratando de entender Esto "yo sugiero que la pongan en un offset que termine en 0, 4, 8 o C" Queres decir que la primera parte de la rutina osea "07 B5 .. .." Este en Un Offset que termine en esos Números, o que el Final de la rutina osea ".. .. 03 08" Termine en esos Números.. Disculpa por la Duda!!!
 

Samu

Miembro insignia
Miembro insignia
Re: Respuesta: FR | ASM | Comprobar la felicidad de tu Pokémon

Hola Una Consulta.. Aun estoy tratando de entender Esto "yo sugiero que la pongan en un offset que termine en 0, 4, 8 o C" Queres decir que la primera parte de la rutina osea "07 B5 .. .." Este en Un Offset que termine en esos Números, o que el Final de la rutina osea ".. .. 03 08" Termine en esos Números.. Disculpa por la Duda!!!
Se refiere al comienzo de la rutina. Si no quieres complicarte la vida, ponla al principio de una línea vacía. Con eso debería funcionar.

Es por como funciona el procesador de GBA, que 'coge' la información de 4 bytes en 4 bytes, y necesita por lo tanto que el inicio esté alineado respecto a 4 (0, 4, 8, C). De hecho, más que una sugerencia, es algo que debes hacer si quieres que no se te cuelgue el juego.
 

IIWolfgangII

Usuario de oro
Respuesta: FR | ASM | Comprobar la felicidad de tu Pokémon

Muchas Gracias Samu!! Ademas de sacarme la duda me diste una breve explicacion y ahora entiendo entonces por que se debe compilar en esos offsets!! MUCHAS GRAACIAS!
 

IITinchoII

Usuario de bronce
Hola, una pregunta, me sucede que cuando eclosiona un huevo se rompe algo y deja de indicar bien la felicidad, alguien sabe como arreglarlo ?
explico un poco mejore, si hago como en el tutorial y agrego un mini para hacer el check de la felicidad, por más que interactué o no, con él, cuando eclosiona el huevo, algo en la rutina debe de romperse.

SOLUCIONADO. Dejo el comentario por si alguno le paso. La solucion es restar 256 a la variable q devuelve la rutina, yo lo hice con un script, concidero q no es de las mejores soluciones pero al menos me sirvio.

#dynamic 0xB00000

'---------------
#org @start
lock
faceplayer
msgbox @string2 MSG_YESNO
compare LASTRESULT 0x1
if 0x1 goto @snippet3
msgbox @string3 MSG_NORMAL
release
end

'---------------
#org @snippet3
special 0x9F
waitstate
compare 0x8004 0x6
if 0x4 goto @snippet1
special 0x7C
callasm 0x8XXXXXX + 1
compare 0x8005 0xFF 'ACA COMPARO SI ES MAYOR AL MAXIMO DE FELICIDAD 255
if 0x2 goto @snippet2
buffernumber 0x1 0x8005
msgbox @string1 MSG_NORMAL '"Tu [buffer1] tiene [buffer2]\npunt..."
release
end

'---------------
#org @snippet1
msgbox @string3 MSG_NORMAL
release
end

'---------------
#org @snippet2
subvar 0x8005 0x100 'ACA LE RESTO 256 Y DESPUES TODO IGUAL
buffernumber 0x1 0x8005
msgbox @string1 MSG_NORMAL '"Tu [buffer1] tiene [buffer2]\npunt..."
release
end


'---------
' Strings
'---------
#org @string1
= Tu [buffer1] tiene [buffer2]\npuntos de felicidad.

#org @string2
= Hola, [player].\nSoy un investigador POKéMON\pestudio las relaciones entre POKéMON\ny entrenador.\p¿Te gustaría saber cuan feliz\nes tu POKéMON?.

#org @string3
= ¡Regresa cuando quieras!\pme encuentro siempre en el centro\nPOKéMON.
 
Última edición:
Arriba