Registrarse

[ASM] [FR] Mostrar los pokemon del equipo en la trainer Card.

Eaas

Profesional de WaH
Hola.
Bueno creo que el título dice bastante.

Para realizar este sistema solo se necesita una rutina.

Código:
.thumb
.align 2

push {r0, lr}
bl CIERRA
bl SPRITE
bl TC
b end

CIERRA:
ldr r0, OFF1
bx r0

SPRITE:
ldr r0, OFF2
bx r0

TC:
Ldr r0, OFF3
bx r0

end:
POP {r0, pc}

.align 2

OFF1:
.word 0x806F541
OFF2:
.word 0x80CC2BD
OFF3:
.word 0x806F4B5
Bueno, solo necesitan insertarla en una dirección vacía de la Rom.
Después de hacer esto necesitan dirigirse a la dirección 3A7360 e insertar la dirección en la que Insertaste la rutina +1 permutado.

Si han usado el tutorial de modificar el orden de las opciones del menú o el de insertar un script en alguna opción del menú y alguno de estos métodos a modificado la opción de la trainercard ya sea su orden.

Pues debe abrir un editor HEX y buscar en la Rom estos bytes:
B5 F4 06 08
Y cambiar estos bytes por los de tu rutina omitiendo el paso de la dirección 3A7360


@EaasGame. te había dicho que no usaras r0 en esa rutina (?
El problema del sonido se produce porque estás llamando a la función que cierra el menú, y porque no estás pusheando r4 :v
En fin, esta rutina debería dar el resultado que esperas.

Código:
.align 2
.thumb
.thumb_func

@fire red, hook en 0x3A7360, antes B5 F4 06 08 = 0806F4B4+1 = StartMenuPlayerCallback

main:
    push {r4, lr}
    ldr r3, UpdateTrainerCardPhotoIcons
    bl bx_r3
    ldr r3, StartMenuPlayerCallback
    bl bx_r3
    pop {r4,pc}

bx_r3:
    bx r3

.align 2
UpdateTrainerCardPhotoIcons:
    .word 0x080cc2bc+1

StartMenuPlayerCallback:  
    .word 0x0806f4b4+1

Debo decir que para algunos no es nuevo que llevo tiempo sin PC, por lo que escribí el código desde mi cerebro y sin poder probarlo por mi mismo, así que debo agradecer al usuario @Tio_Terry el cual la probó en su juego y me hizo un gif del sistema.
También quiero agradecer a @Acimut por consejos dados.

Scan:
Pokemon_Fire_Red_2.png

GIF:
 
Última edición:

Zhyruk

Usuario de platino
es genial, pero THUMB no me deja convertir el archivo a .bin

alguien puede dejar la rutina lista para abrir con hxd?
por favor...
 

Versekr Dark

Usuario mítico
Hola.
Bueno creo que el título dice bastante.

Para realizar este sistema solo se necesita una rutina.

Código:
.thumb
.align 2

push {r0, lr}
bl CIERRA
bl SPRITE
bl TC
b end

CIERRA:
ldr r0, OFF1
bx r0

SPRITE:
ldr r0, OFF2
bx r0

TC:
Ldr r0, OFF3
bx r0

end:
POP {r0, pc}

.align 2

OFF1:
.word 0x806F541
OFF2:
.word 0x80CC2BD
OFF3:
.word 0x806F4B5
Bueno, solo necesitan insertarla en una dirección vacía de la Rom.
Después de hacer esto necesitan dirigirse a la dirección 3A7360 e insertar la dirección en la que Insertaste la rutina +1 permutado.

Si han usado el tutorial de modificar el orden de las opciones del menú o el de insertar un script en alguna opción del menú y alguno de estos métodos a modificado la opción de la trainercard ya sea su orden.

Pues debe abrir un editor HEX y buscar en la Rom estos bytes:
B5 F4 06 08
Y cambiar estos bytes por los de tu rutina omitiendo el paso de la dirección 3A7360

Debo decir que para algunos no es nuevo que llevo tiempo sin PC, por lo que escribí el código desde mi cerebro y sin poder probarlo por mi mismo, así que debo agradecer al usuario @Tio_Terry el cual la probó en su juego y me hizo un gif del sistema.
También quiero agradecer a @Acimut por consejos dados.

Scan:
Ver el archivo adjunto 6339
GIF:
Al final si quedo solucionado el problema con el audio o sigue el mismo error?
 

Eaas

Profesional de WaH
Al final si quedo solucionado el problema con el audio o sigue el mismo error?
Estoy en eso.
Estoy tratando de modificar la rutina de la trainer card, para hacer desde ella un salto a la de los sprite.
Ya que el sonido se reproduce por la rutina del menú, no por la de la trainer card.

Péro sabes que eso en la situación en la que estoy es algo lento.

Por lo tanto aquí te dejo una solución temporal al problema, que funsiona bien.

COMPILAR SCRIPT Y ANORTAR OFFSET:

#DYNAMIC 0X800000
#ORG #START
CALLASM 0XCC2BD
PAUSE 0X5
CALLASM 0X6F4B5
END

EN ESPACIO LIBRE INSERTAR:
01B500F003F800F003F801BD0448004700B5044800F001F800BD03490847C04641F50608AAAAAA08E59A0608

EN AAAAAA DE LA RUTINA INSERTAR SCRIPT PERMUTADO.

EN 3A7360 INSERTAR RUTINA PERMUTADO MÁS 1

Esta rutina lo que hace es llamar al script.
El hecho es que desde el script me da tiempo poner un Pause.

Cuando solucione la rutina actualizo el post.
Y gracias a todos los que me informaron sobre el error.
😘
 
Última edición:

Lunalight

Usuario de plata
Estoy en eso.
Estoy tratando de modificar la rutina de la trainer card, para hacer desde ella un salto a la de los sprite.
Ya que el sonido se reproduce por la rutina del menú, no por la de la trainer card.

Péro sabes que eso en la situación en la que estoy es algo lento.

Por lo tanto aquí te dejo una solución temporal al problema, que funsiona bien.

COMPILAR SCRIPT Y ANORTAR OFFSET:

#DYNAMIC 0X800000
#ORG #START
LOCK
CALLASM 0XCC2BD
PAUSE 0X5
CALLASM 0X6F4B5
RELEASE
END

EN ESPACIO LIBRE INSERTAR:
01B500F003F800F003F801BD0448004700B5044800F001F800BD03490847C04641F50608AAAAAA08E59A0608

EN AAAAAA DE LA RUTINA INSERTAR SCRIPT PERMUTADO.

EN 3A7360 INSERTAR RUTINA PERMUTADO MÁS 1

Esta rutina lo que hace es llamar al script.
El hecho es que desde el script me da tiempo poner un Pause.

Cuando solucione la rutina actualizo el post.
Y gracias a todos los que me informaron sobre el error.
😘
Ya hiba a preguntar acerca de esto, que bueno.
 

jrlopes

Héroe de WaH
Hola.
Bueno creo que el título dice bastante.

Para realizar este sistema solo se necesita una rutina.

Código:
.thumb
.align 2

push {r0, lr}
bl CIERRA
bl SPRITE
bl TC
b end

CIERRA:
ldr r0, OFF1
bx r0

SPRITE:
ldr r0, OFF2
bx r0

TC:
Ldr r0, OFF3
bx r0

end:
POP {r0, pc}

.align 2

OFF1:
.word 0x806F541
OFF2:
.word 0x80CC2BD
OFF3:
.word 0x806F4B5
Bueno, solo necesitan insertarla en una dirección vacía de la Rom.
Después de hacer esto necesitan dirigirse a la dirección 3A7360 e insertar la dirección en la que Insertaste la rutina +1 permutado.

Si han usado el tutorial de modificar el orden de las opciones del menú o el de insertar un script en alguna opción del menú y alguno de estos métodos a modificado la opción de la trainercard ya sea su orden.

Pues debe abrir un editor HEX y buscar en la Rom estos bytes:
B5 F4 06 08
Y cambiar estos bytes por los de tu rutina omitiendo el paso de la dirección 3A7360

Debo decir que para algunos no es nuevo que llevo tiempo sin PC, por lo que escribí el código desde mi cerebro y sin poder probarlo por mi mismo, así que debo agradecer al usuario @Tio_Terry el cual la probó en su juego y me hizo un gif del sistema.
También quiero agradecer a @Acimut por consejos dados.

Scan:
Ver el archivo adjunto 6339
GIF:
Hice una prueba en la base limpia de Firered, cada vez que voy a la Trainer Card, bloquea el juego.
Usé offset 800000 en 3A7360 puse 01 00 80, ¿sería eso?
 

Eaas

Profesional de WaH
Hice una prueba en la base limpia de Firered, cada vez que voy a la Trainer Card, bloquea el juego.
Usé offset 800000 en 3A7360 puse 01 00 80, ¿sería eso?
COMPILAR SCRIPT Y ANORTAR OFFSET:

#DYNAMIC 0X800000
#ORG #START
LOCK
CALLASM 0XCC2BD
PAUSE 0X5
CALLASM 0X6F4B5
RELEASE
END

EN ESPACIO LIBRE INSERTAR:
01B500F003F800F003F801BD0448004700B5044800F001F800BD03490847C04641F50608AAAAAA08E59A0608

EN AAAAAA DE LA RUTINA INSERTAR SCRIPT PERMUTADO.

EN 3A7360 INSERTAR RUTINA PERMUTADO MÁS 1
 

jrlopes

Héroe de WaH
Hice lo anterior, generé el script, cambié el desplazamiento generado en la rutina y continúo congelando el juego al abrir el Trainer Card.
 

Eaas

Profesional de WaH
Hice lo anterior, generé el script, cambié el desplazamiento generado en la rutina y continúo congelando el juego al abrir el Trainer Card.
No se que ocurre, la verdad.
Prueba el script solamente en un npc, y mira aver si se congela el juego, sino se congela entonces algo estas haciendo mal.
 

jrlopes

Héroe de WaH
Hice una prueba poniendo el código en el NPC, funciona, pero cuando accedo a la tarjeta de entrenador desde el menú presionando Iniciar, el juego se congela.

Pongo la rutina en 810000, voy al 3A7360 y pongo 01 00 81, no sé qué puede estar pasando por el error cuando presiono inicio para acceder al menú.
 

Eaas

Profesional de WaH
Hice una prueba poniendo el código en el NPC, funciona, pero cuando accedo a la tarjeta de entrenador desde el menú presionando Iniciar, el juego se congela.

Pongo la rutina en 810000, voy al 3A7360 y pongo 01 00 81, no sé qué puede estar pasando por el error cuando presiono inicio para acceder al menú.
No idea bro, aconsejo que esperes a que edite la rutina.
Igual, prueba quitando el pause.
O el lock.
 

Tohru

Baneado
Hice una prueba poniendo el código en el NPC, funciona, pero cuando accedo a la tarjeta de entrenador desde el menú presionando Iniciar, el juego se congela.

Pongo la rutina en 810000, voy al 3A7360 y pongo 01 00 81, no sé qué puede estar pasando por el error cuando presiono inicio para acceder al menú.
No idea bro, aconsejo que esperes a que edite la rutina.
Igual, prueba quitando el pause.
O el lock.
Creo que tal ves ese error podría estar en el emulador que estás usando para probar la rutina ya que en el mgba 0.9.0 me pasaba lo mismo pero en el mgba 0.9.2 no me pasa eso
 

jrlopes

Héroe de WaH
Creo que tal ves ese error podría estar en el emulador que estás usando para probar la rutina ya que en el mgba 0.9.0 me pasaba lo mismo pero en el mgba 0.9.2 no me pasa eso
La prueba siguió siendo el mismo error, incluso cambiando el emulador.
 

ACE10

Héroe de WaH
Si no recuerdo mal en el casino se te permite tomarte una foto y hace que tus pokemon salgan de este modo y creo tbn esta una maquina.
Checa y puede que te ayude a arreglar los detalles
 
Última edición:

Acimut

Profesional de WaH
@EaasGame. te había dicho que no usaras r0 en esa rutina (?
El problema del sonido se produce porque estás llamando a la función que cierra el menú, y porque no estás pusheando r4 :v
En fin, esta rutina debería dar el resultado que esperas.

Código:
.align 2
.thumb
.thumb_func

@fire red, hook en 0x3A7360, antes B5 F4 06 08 = 0806F4B4+1 = StartMenuPlayerCallback

main:
    push {r4, lr}
    ldr r3, UpdateTrainerCardPhotoIcons
    bl bx_r3
    ldr r3, StartMenuPlayerCallback
    bl bx_r3
    pop {r4,pc}

bx_r3:
    bx r3

.align 2
UpdateTrainerCardPhotoIcons:
    .word 0x080cc2bc+1

StartMenuPlayerCallback:   
    .word 0x0806f4b4+1
 
Arriba