• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Tool: DNS - Day, Night and Seasons

Quickster

Dream or Drop?
351
Posts
16
Years
    • Seen Apr 4, 2016
    It's a mistake; the second 0x0 byte would be the day of the week.

    Thanks. I kinda assumed that when I opened it in the VBA 1.8.0 Beta 3 that was said to be used. But now I dont have to wait till tomorrow to find out! :D
     
    275
    Posts
    13
    Years
    • Seen Oct 9, 2019
    This is a similar problem to what I had. When it's Winter, it instead shows the tileset for Spring.
    I know this post is old, but I can at least describe the nature of the problem: the game reloads the OW palettes when you exit menus, and the hack apparently doesn't touch that reloading routine. The result is that the palettes (and possibly even tile animations, judging by what happens to your ice) for the "default" season are loaded. The same problem exists in JPAN's hacked engine, when using the "extended" palettes for his OW mods.
     

    droomph

    weeb
    4,285
    Posts
    12
    Years
  • I know this post is old, but I can at least describe the nature of the problem: the game reloads the OW palettes when you exit menus, and the hack apparently doesn't touch that reloading routine. The result is that the palettes (and possibly even tile animations, judging by what happens to your ice) for the "default" season are loaded. The same problem exists in JPAN's hacked engine, when using the "extended" palettes for his OW mods.
    We could locate the routine and add a
    Code:
    #org @main
    bl @check
            'actual routine etc.
    
    #org @check
    ldr r0, [pc, 0x10]
    ldr r0, [r0]
    cmp r0, 0 'or default number
    beq [pc, 0x4]
    b        '(go to modified routine, however that's done)
    b        '(return to main)
    #dword etc. 'status byte
    somewhere near the beginning, and then we could force it to reload the right ones that way.

    The modified routine would just be the same routine, but loads the right pallets. I don't even think it has to be a different routine, just different addresses for each season.

    However, with the routine being "sandwiched" in between all the other stuff...a repoint wouldn't hurt though, right?
     

    Mr.Pkmn

    Ordinary ASM Magician
    53
    Posts
    16
    Years
    • Seen Nov 17, 2023
    Fortunately it's not necessary.

    Some time ago i found the reason of the screen blinking while entering in a building or when you're selecting moves in battle. I don't know why, but the game stores a copy of the palette memory in WRAM and reloads it in these situations, causing a blink effect because the original palette is loaded for one frame. Replacing 0x70682 with 00 00 00 00 fixes the problem, but i haven't tested enough to say that it doesn't cause other glitches.
    This doesn't fix the warp-arrow glitch though.
     

    droomph

    weeb
    4,285
    Posts
    12
    Years
  • Fortunately it's not necessary.

    Some time ago i found the reason of the screen blinking while entering in a building or when you're selecting moves in battle. I don't know why, but the game stores a copy of the palette memory in WRAM and reloads it in these situations, causing a blink effect because the original palette is loaded for one frame. Replacing 0x70682 with 00 00 00 00 fixes the problem, but i haven't tested enough to say that it doesn't cause other glitches.
    This doesn't fix the warp-arrow glitch though.

    Okay thanks! After a while, I fixed it, thanks to you! Lubs this very much, prime-dialga you are a wonderful person to make this and Mr.Pkmn you are wonderful to find all the sloluppons *squee*

    THIS IS FREAKING AWESOME

    Emerald: Replace 0xA1BCE instead.
    LeafGreen: Replace 0x70682 instead.
    Ruby: Replace 0x73CEE instead.
    Sapphire: Replace 0x73CF2 instead.

    (Basically you are replacing a long-branch-with-link (four bytes) instruction with nothing twice, so it skips over the part where it reloads the OW pallet again. It shouldn't cause any glitches.)
     
    Last edited:
    1
    Posts
    12
    Years
    • Seen Mar 11, 2012
    So, I know i need to edit tilesets and such to change the look, but, where do I need to add/change a tileset to make the windows and lamps light up? Sorry if I sound like a noob, this is a bit confusing.
     
    6
    Posts
    12
    Years
    • Seen Feb 13, 2012
    Wha?

    I'm trying to insert both day & night aswell as seasons into a currently unedited firered ROM. Upon starting I cannot move from bugged up pallet town tiles. Does anyone have a tutorial or something? (Yeah, I know it's sad to ask for tut of a tool.)
     

    Pokehacker11

    a kid with a knack for mapping
    51
    Posts
    12
    Years
  • When I use it, it does not change. It's always night for some reason.
    Other then that, it's fine. But it freezes when I install it, so I have to erase it.
    Then it's always night.
     
    37
    Posts
    13
    Years
    • Seen Feb 7, 2014
    When I use it, it does not change. It's always night for some reason.
    Other then that, it's fine. But it freezes when I install it, so I have to erase it.
    Then it's always night.

    That's because you need to enable the Real Time Clock on your emulator. To do that in Visual Boy Advance, go to Options > Emulator > Real Time Clock (if you click it, it will check off).
     

    DarkFlameSquirrel

    Music Freak
    7
    Posts
    12
    Years
  • Sorry, I'm a total n00b.

    All I want to do is add Day, Night, and Seasons to my unedited Pokemon Emerald rom. When I load it with DNS, it gives me an insert RTC option. Doesn't it already have RTC or am I missing something here? If there's a tutorial somewhere for this, I would heavily appreciate it if someone linked it.
     

    prime-dialga

    pure darkness
    28
    Posts
    14
    Years
    • Seen Jul 8, 2014
    Pokemon Emerald has already a RTC but my system is based on interdpths RTC, so you must install this RTC too with the tool.
     

    droomph

    weeb
    4,285
    Posts
    12
    Years
  • Pokemon Emerald has already a RTC but my system is based on interdpths RTC, so you must install this RTC too with the tool.
    If it's a given that you have to install interdpth's RTC why not automatically find some free space and install it? It's not a big deal, but it'll help with making the process easier.
     

    prime-dialga

    pure darkness
    28
    Posts
    14
    Years
    • Seen Jul 8, 2014
    If it's a given that you have to install interdpth's RTC why not automatically find some free space and install it? It's not a big deal, but it'll help with making the process easier.
    ok, i can write a function which finds some free space in your ROM, but it also needs free space in the RAM-Area and to find this is much harder. So it's easier for me to let you place the RTC where you want.
     

    droomph

    weeb
    4,285
    Posts
    12
    Years
  • ok, i can write a function which finds some free space in your ROM, but it also needs free space in the RAM-Area and to find this is much harder. So it's easier for me to let you place the RTC where you want.
    Oh, I think I remember that.

    Well, ROM placement is enough if you still want to do it. I can look for the RAM myself if it's too hard for a function. But I think you already have a default right? Oh well it's okay.
     
    27
    Posts
    12
    Years
    • Seen Mar 2, 2017
    Really cool tool. I do not have the time or patience to add in seasons - and no one playing my new mod will play it all year long.. I do however really like the day and night system. Thanks much!

    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.

    Well thank you very much for this Jambo!!!!! I just implemented it into my game and it works flawlessly. I also learned a bit about ASM in the process too so thank you so much for this. I had no idea it took till level 75 to evolve an eevee though - too much training, thanks rare candies :)
     
    Last edited by a moderator:
    1
    Posts
    12
    Years
    • Seen Jul 31, 2019
    Can I use this to patch Light Platinum? I have played for a long time, and it has never became night time in my game.
     

    prime-dialga

    pure darkness
    28
    Posts
    14
    Years
    • Seen Jul 8, 2014
    Maybe you haven't activated the RTC in your Emulator...

    Anyway you can use this tool to patch it, if the hackers alow it.
     
    Back
    Top