Registrarse

[RH - ASM] ¿como Reiniciar flag y v ariables?

Estado
Cerrado para nuevas respuestas.

KERBEROS

Usuario de Platino
Mi pregunta es,
utilizo el proceso para expandir las flags y variables, y todo funciona de maravilla, pero cuando reinicio el juego(comienzo una nueva partida, las variables no se resetean, y me imagino que las flags igual...

solo se resetean eliminando la partida vieja, si saben como arreglarlo, me ayudarian, igual puedo vivir con eso, pero seria anti estético. y es tomado en cuenta como bug.
 

Kaiser de Emperana

Called in hand
¿Rom base? ¿Método que usaste para expandirlas?

pero cuando reinicio el juego(comienzo una nueva partida, las variables no se resetean, y me imagino que las flags igual...
solo se resetean eliminando la partida vieja...
No se entiende lo que querés explicar. ¿Cuál es la diferencia entre crear una partida nueva, y borrar la partida vieja y crear una partida nueva?
 

KERBEROS

Usuario de Platino
Respuesta: Re: ¿como Reiniciar flag y v ariables?

¿Rom base? ¿Método que usaste para expandirlas?





No se entiende lo que querés explicar. ¿Cuál es la diferencia entre crear una partida nueva, y borrar la partida vieja y crear una partida nueva?

Utilicé este metodo: https://www.pokecommunity.com/showthread.php?t=302347

y todo va de maravilla, hasta que :el juego, sin borrar la partida, osea, estas en el menu de continuar, pero no continúas, si no que le das a nueva partida!
y obvio, la partida vieja, aun esta , pero al comenzar, no se dan los eventos.
solo se dan cuando elimino el sav. ya se entiende?

reinicio
 

Naren Jr.

Puto amo
Usuario de Platino
Tengo entendido que ese sistema usa el Save Block de Jpan, sistema que vuelve útil una parte estática de la memoria, por ende cuando reinicias y creas una nueva partida, estos valores seguirán estando, por eso no se reinician como las demás flags y variables de la ROM.

Habría que crear una rutina que detecte cuando se inicio una nueva partida y fije todos estos valores en 0, de lo contrario no se moverán.

Saludos.
 

~Criisss

Usuario mítico
A mi sigue sin quedarme claro qué método usaste, porque el link al que haces referencia es un post con información sobre variables y flags seguras en una rom limpia de fire red.

Entonces, insertaste alguna rutina asm o parche para expandir las variables seguras? O solamente estas usando la información del post?

En todo caso, como dice naren, si estas usando el hack de jambo para extender variables y flags, necesitas el save block hack de jpan. Si no has insertado nada y te da ese error, una rutina que limpie la zona de la ram para las variables no deberia ser muy compleja de hacer.
 

KERBEROS

Usuario de Platino
@Naren Jr. @Gold @~Criisss
Gracias, yo Trabajo en la JPAN, asi que eso ya esta incluido, creo que con lo que gold me paso, será suficiente, gracias a todos, si sirve, edito para cerrar el tema y solucionar ese "Fix"



bien, esta es la rutina asm ;

// change these constants as needed

rom equ "firered.gba"
.definelabel free_space, 0x08800000

.definelabel jpan_block, 0x0203C000

// -----------------------------------------------------------------------------

JPAN_BLOCK_SIZE equ 0xEC4

.definelabel memset, 0x081E5ED8
.definelabel sub_815EE0C, 0x0815EE0C
.definelabel new_game_hook, 0x08054B3E

// -----------------------------------------------------------------------------

.gba
.thumb

.open rom, 0x08000000

// -----------------------------------------------------------------------------

.org free_space

.area 48
.align 2

new_game_extension:

@@main:
ldr r0, =jpan_block
mov r1, #0
ldr r2, =JPAN_BLOCK_SIZE
ldr r3, =memset |1
bl @@call

ldr r3, =sub_815EE0C |1
bl @@call

add sp, sp, #8
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r3}

@@call:
bx r3

.pool
.endarea

// -----------------------------------------------------------------------------

.org new_game_hook

.area 0x12, 0xFF
ldr r0, =new_game_extension |1
bx r0
.pool
.endarea

// -----------------------------------------------------------------------------

.close




.pero..


Donde rayos la meto, la herramienta que usa para insertarla no se como usarla, yo uso thumb.
supongamos, paso a binario la rutina, y luego donde la inserto?
en espacio libre? o hago que sustituya algun lugar especifico? agradeceria eso tambien!!
 
Última edición:

Kaiser de Emperana

Called in hand
Tenés que descargar armips y poner el ejecutable en la misma carpeta que la rutina. Luego ponés tu rom en la misma carpeta, con el nombre "firered.gba".
Abrís la rutina con un editor de texto y cambiás el offset de la línea ".definelabel free_space, 0x08800000", por el offset donde quieras insertar la rutina.

Y finalmente abrís el cmd en la carpeta donde están la rutina, armips y tu rom, y ejecutás:
Código:
armips jpan-recycle-new-game.asm
Y con eso la rutina va a ser insertada en tu rom.
 

KERBEROS

Usuario de Platino
@Emperor Zell

Y finalmente abrís el cmd en la carpeta donde están la rutina, armips y tu rom, y ejecutás:


¿Como hago eso?
el cmd? en la carpeta no hay ningun cmd, solo el armips.
 

Kaiser de Emperana

Called in hand
La forma mas sencilla es abrir la carpeta con el explorador de archivos y en ls barra de tareas escribir cmd y apretar enter.

Sino tenes que abrir el cmd normalmente y hacer: cd "C:\ruta\de\la\carpeta"
 

KERBEROS

Usuario de Platino
@Naren Jr.
@Gold
@Emperor Zell

¡AL FIN!

¡EXITOOO!

TEMA CERRADO, SI FUNCIONA, AUN DEBO PROVARLO BIEN, PERO SE REINICIARON LAS VARIABLES Y FLAGS A REINICIAR, CON PARTIDA , LO CUAL ME VA MUY BIEN..

gracias a todos, luego sacare un parche con esto que es muy útil!!

 
Estado
Cerrado para nuevas respuestas.
Arriba