Author Id: 17082 Author Name: Sonicarvalho Post Content: [cabecera]http://img809.imageshack.us/img809/2377/rekkuza.jpg[/cabecera] Resetvars - El comando temporal! Compatibilidad: Ruby Sapphire Emerald Buenas, gente! Hoy vengo aquí postar una información poco conocida, que yo encontré por puro acaso, hace muy tiempo! Como deberéis saber, yo trabajo con Emerald principalmente! Y por acaso estaba mirando los comandos de la rom y descubrí algo sobre el comando 0x2E, el ResetVars. En FireRed, ese comando hace lo que dice: Pone el valor 0x0 en las vars 0x8000, 0x8001, 0x8002. Pero en Ruby/Sapphire y Emerald, las cosas ya no son tan sencillas... No fue al acaso que llame el resetvars de comando "temporal"... Bueno yo sé que mucha gente utiliza el sistema Dia y Noche, pero bueno, lo que este comando hace es poner el tiempo del reloj en las vars 8000 8001 y 8002! Eso mismo! Cuando hacen resetvars, lo que las variables pasan a tener es el siguiente: [B]Variables:[/B] 8000 -> Horas 8001 -> Minutos 8002 -> Segundos Esto claro según el reloj al inicio del juego, no según el DNS. [spoiler=Rutinas (si quieren dar una mirada)] [spoiler=Ruby] 08066344 @ =============== S U B R O U T I N E ======================================= 08066344 08066344 08066344 s2E_Get_Time_in_Vars: @ DATA XREF: ROM:Cmd_tableo 08066344 PUSH {LR} 08066346 BL time_update 0806634A LDR R2, =Var_8000 0806634C LDR R1, =word_3004038 0806634E MOVS R0, #2 08066350 LDRSB R0, [R1,R0] 08066352 STRH R0, [R2] 08066354 LDR R2, =Var_8001 08066356 MOVS R0, #3 08066358 LDRSB R0, [R1,R0] 0806635A STRH R0, [R2] 0806635C LDR R2, =Var_8002 0806635E MOVS R0, #4 08066360 LDRSB R0, [R1,R0] 08066362 STRH R0, [R2] 08066364 MOVS R0, #0 08066366 POP {R1} 08066368 BX R1 08066368 @ End of function s2E_Get_time_in_vars 08066368 08066368 @ --------------------------------------------------------------------------- Piensen que el offset 0x03004038 es donde estan grabados los dias, horas, minutos y segundos del reloj, no del tiempo de juego! [/spoiler] [spoiler=Emerald] 08099E1C @ =============== S U B R O U T I N E ======================================= 08099E1C 08099E1C 08099E1C s2E_get_time_to_vars_x800x: @ DATA XREF: ROM:081DB734o 08099E1C PUSH {LR} 08099E1E BL time_update 08099E22 LDR R2, =var_8000 08099E24 LDR R1, =Internal_Clock_Data_HEX 08099E26 MOVS R0, #Internal_Clock_RTC.hours 08099E28 LDRSB R0, [R1,R0] 08099E2A STRH R0, [R2] 08099E2C LDR R2, =var_8001 08099E2E MOVS R0, #Internal_Clock_RTC.minutes 08099E30 LDRSB R0, [R1,R0] 08099E32 STRH R0, [R2] 08099E34 LDR R2, =var_8002 08099E36 MOVS R0, #Internal_Clock_RTC.seconds 08099E38 LDRSB R0, [R1,R0] 08099E3A STRH R0, [R2] 08099E3C MOVS R0, #0 08099E3E POP {R1} 08099E40 BX R1 08099E40 @ End of function s2E_get_time_to_vars_x800x 08099E40 08099E40 @ --------------------------------------------------------------------------- Piensen que el offset 0x03005CF8 es donde estan grabados los dias, horas, minutos y segundos del reloj, no del tiempo de juego![/spoiler] [/spoiler] Bien, saludos! Happy Hacking!