For anyone who is using BPRE, these routines will use the RTC's status byte to get what time of day it is, and evolve Eevee accordingly.
For Espeon:
Code:
.text
.align 2
.thumb
.thumb_func
.global espeonevocheck
main:
ldr r1, time
ldrb r1, [r1, #0x0]
cmp r1, #0x4
bge no
cmp r1, #0x1
blt no
ldr r1, happinesscheck
bx r1
no: ldr r0, exit
bx r0
.align
time: .word 0x0203C000
happinesscheck: .word 0x08043001
exit: .word 0x08043111
Assemble and insert that routine anywhere in the ROM, then change the pointer at 0x42FC8 to point to the new routine, NOT PLUS ONE. The game uses mov pc, r0 to jump to the routine, meaning we do NOT need to add 1 for THUMB mode.
For Umbreon:
Code:
.text
.align 2
.thumb
.thumb_func
.global umbreonevocheck
main:
ldr r1, time
ldrb r1, [r1, #0x0]
cmp r1, #0x4
bge yes
cmp r1, #0x1
blt yes
ldr r0, exit
bx r0
yes: ldr r1, happinesscheck
bx r1
.align
time: .word 0x0203C000
happinesscheck: .word 0x08043001
exit: .word 0x08043111
Assemble and insert that routine anywhere in the ROM, then change the pointer at 0x42FCC to point to the new routine, NOT PLUS ONE.
When assembled, along side the RTC, this will allow Eevee to evolve into Espeon and Umbreon in the proper way in BPRE. Anyone who wants to convert these routines for another version, feel free to do so. Just remember to credit me for the original routines.
For people who don't know how to assemble the routines, I attached the binaries to this post, allowing you to insert them from the binary directly. I offer no help on inserting these routines. You should read HackMew's ASM tutorials for a good beginner's insight into inserting ASM.