• 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: The Official DayAndNight-Thread

Status
Not open for further replies.

cooley

///Keepin' it simple
1,148
Posts
17
Years
  • Off-topic: By what I've heard, you can by making a script. Or just edit the normal one.

    On-Topic: I am looking for any updates here, this will help me... Or else I'll have to make 2 new Tilesets for my evil Universe.
    If it were that easy, I wouldn't be asking this question..:P

    As for your second Question, what do you mean by it?
     

    Heart's Soul

    Hey, look, I was gone.
    2,535
    Posts
    16
    Years
    • Age 28
    • Seen Aug 20, 2020
    I didn't ask a question... Er... Why? I will just look at every post here until a version forFRLG comes out, because there are more FR hackers than R/E.
     

    ZodiacDaGreat

    Working on a Mobile System
    429
    Posts
    17
    Years
  • cooley said:
    Off-Topic: is there a way to activate Ruby's national dex?
    You'll have to decrypt the game shark code to giving the national dex to get where the gameshark code writes to. Then use writebytetooffset to write the value given in the cheat to the pointer - which is also given by the cheat once its decrypted.

    There are 3 gameshark codes to it. Hope that helps. BTW, are you planing to hack Ruby? ;)

    @MX - all those stuff you're planning for us are cool. Can't wait ;)
     
    712
    Posts
    16
    Years
    • Seen Apr 8, 2024
    Also, is just a different effect for the same condition, like:
    if(time>7)
    {
    wild_poke1=hoot-hoot
    }

    instead of:

    if(time>7)
    {
    pallete=blue+10
    }

    OF COURSE IT ISN'T THAT SIMPLE. Just to undestand.

    whe? is this tool made from java?
    it would be a great help if someone teach me how to hexedit using java..

    btw, im a java programmer..
     
    Last edited:

    Surf

    ...
    1,196
    Posts
    15
    Years
    • Age 29
    • Rust
    • Seen Jul 31, 2011
    Also, is just a different effect for the same condition, like:
    if(time>7)
    {
    wild_poke1=hoot-hoot
    }

    instead of:

    if(time>7)
    {
    pallete=blue+10
    }

    OF COURSE IT ISN'T THAT SIMPLE. Just to undestand.

    Your right i'm just going to shut up now
     

    Mastermind_X

    ASM-Hacker
    92
    Posts
    17
    Years
  • Annotation: No, I don't use java for this tool. The hack itself is based on pure assemblers (feel 100% efficiency, which none of the compilers can offer) and the tool itself is written in good old VB6. ^^

    In addition to that: Sorry for the delay, I have to work for the university some hours per day...
     

    X-aveon

    IS BACK!!!!!!!!!!!!!!!!!!!
    233
    Posts
    16
    Years
    • Seen Jun 25, 2012
    Annotation: No, I don't use java for this tool. The hack itself is based on pure assemblers (feel 100% efficiency, which none of the compilers can offer) and the tool itself is written in good old VB6. ^^

    In addition to that: Sorry for the delay, I have to work for the university some hours per day...


    its okay. if not for you, we wouldn't even have the possibility for this option! i'm sure we can wait longer.
     

    jj_olli

    It's coming...
    141
    Posts
    17
    Years
  • We can wait as long as the tool will give us what we wanted for so long, but please answer my question :(
    Will there be morning, too?
     

    Mastermind_X

    ASM-Hacker
    92
    Posts
    17
    Years
  • Awesom MM_X, I have to day that I really like this.
    But what's about Morning Time, are you going to implement morning too?

    Werd ich machen, sobald ich Zeit dazu hab. Die erste Version wird nur Tag und Nacht haben. =P

    Translation:
    The first version will only have "day" and "night" - so nothing about "morning", "afternoon" and so on...
    In order to be honest: One of the older D/N-S versions "faded" from day to night (screen transition) and vice-versa. But there were some compatibility problems so I decided to remove that again.
    We'll see...
     

    poddish

    Spirit Of Radio
    233
    Posts
    15
    Years
  • You'll have to decrypt the game shark code to giving the national dex to get where the gameshark code writes to. Then use writebytetooffset to write the value given in the cheat to the pointer - which is also given by the cheat once its decrypted.

    There are 3 gameshark codes to it. Hope that helps. BTW, are you planing to hack Ruby? ;)

    @MX - all those stuff you're planning for us are cool. Can't wait ;)

    I played light platinum and you can get the nd in it and it's a hack of ruby, and if it was that easy (at least to experienced hackers) don't you think more people would have done that, and someone would have made a tut on how to.
    Or you could dig through fr/lg's code to figure out what flag is set to r/s to activate it when you trade between them.

    Anyway, for a fr/lg version of this d/n tool, you could make it based off certain flags, or how many pokemon are in your pokedex. Or whenever
    you beat the pokemon league again. That way, unlike my other ideas, you can change the time even after you set all the d/n flags/ complete your dex although you will have to wait until late in the game to use it, and if you want to change the time, you will have to train until you're strong enough to beat the stronger pkmn league, after the first time. Or you could make a bed in certain maps that allow you to change the time, but then you will have to release the flags that you used to change the time so we can use it.
     
    Last edited:

    ZodiacDaGreat

    Working on a Mobile System
    429
    Posts
    17
    Years
  • jj_olli said:
    We can wait as long as the tool will give us what we wanted for so long, but please answer my question :(
    Will there be morning, too?
    Come on pal... The image says it only Day & Night... I suppose MX will put the others in the next release or what ever he's planned.
     
    1,104
    Posts
    16
    Years
  • I played light platinum and you can get the nd in it and it's a hack of ruby, and if it was that easy (at least to experienced hackers) don't you think more people would have done that, and someone would have made a tut on how to.
    Or you could dig through fr/lg's code to figure out what flag is set to r/s to activate it when you trade between them.
    Actually there's a tutorial on it. It's just not here. You need to look, and not expect it to be dropped into your lap. Here's even a hint, MM_X. Very subtle, I know.
     

    ZodiacDaGreat

    Working on a Mobile System
    429
    Posts
    17
    Years
  • thethethethe said:
    Actually there's a tutorial on it. It's just not here. You need to look, and not expect it to be dropped into your lap. Here's even a hint, MM_X. Very subtle, I know.
    Not really a tutorial, but just the code. The post I made before basically contains how you do it... Man, loading should read this really. He discovered it :)
     

    Mastermind_X

    ASM-Hacker
    92
    Posts
    17
    Years
  • *rolleyes* C'mon guys. Let me solve the national dex problem so that we can return to the topic... =\

    Code:
    ROM:0809D448 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
    ROM:0809D448
    ROM:0809D448
    ROM:0809D448 check_national_dex
    ROM:0809D448                 PUSH    {LR}
    ROM:0809D44A                 LDR     R0, =0x3005D90  ; Load DMA-Pointer-Area
    ROM:0809D44C                 LDR     R0, [R0]        ; Get the first DMA save pointer
    ROM:0809D44E                 LDRB    R0, [R0,#0x1A]  ; load the byte from r0+0x1a
    ROM:0809D450                 CMP     R0, #0xDA       ; if it isn't 0xDA => no nationaldex
    ROM:0809D452                 BNE     loc_809D484
    ROM:0809D454                 LDR     R0, =0x4046
    ROM:0809D456                 BL      get_var         ; load value of var 0x4046
    ROM:0809D45A                 LSL     R0, R0, #0x10
    ROM:0809D45C                 LDR     R1, =0x3020000
    ROM:0809D45E                 CMP     R0, R1
    ROM:0809D460                 BNE     loc_809D484     ; if it isn't 0x302 => no national dex
    ROM:0809D462                 LDR     R0, =0x896
    ROM:0809D464                 BL      check_flag      ; get national-dex-flag
    ROM:0809D468                 LSL     R0, R0, #0x18
    ROM:0809D46A                 CMP     R0, #0
    ROM:0809D46C                 BEQ     loc_809D484     ; if it isn't set => no nationaldex
    ROM:0809D46E                 MOV     R0, #1          ; if the execution isn't canceled up to
    ROM:0809D46E                                           this point the function returns #1
    ROM:0809D46E                                           we have the national-dex. =)
    ROM:0809D470                 B       loc_809D486
    ROM:0809D470 ; ---------------------------------------------------------------------------
    ROM:0809D472                 DCB    0
    ROM:0809D473                 DCB    0
    ROM:0809D474 dword_809D474   DCD 0x3005D90
    ROM:0809D478 dword_809D478   DCD 0x4046
    ROM:0809D47C dword_809D47C   DCD 0x3020000
    ROM:0809D480 dword_809D480   DCD 0x896
    ROM:0809D484 ; ---------------------------------------------------------------------------
    ROM:0809D484
    ROM:0809D484 loc_809D484
    ROM:0809D484
    ROM:0809D484                 MOV     R0, #0          ; otherwise return 0
    ROM:0809D486
    ROM:0809D486 loc_809D486
    ROM:0809D486                 POP     {R1}
    ROM:0809D488                 BX      R1
    ROM:0809D488 ; End of function check_national_dex
    ROM:0809D488
    ROM:0809D488 ; ---------------------------------------------------------------------------

    The offsets to the left are the ones of EMER BPED. But the adresses loaded in the function remain the same for all games.
    Summary:
    The Pointer at 03005D90 in the RAM is 02024AB4. 02024AB4 + 0x1A = 02024ACE. Attention: Due to the DMA the calculated adress will always be something different. The way shown above is the only legitimate way to calculate it.
    So => The byte at 02024ACE has to be 0xDA (change it in the memviewer if you want to test it)

    The other two conditions are quite obvious:
    - var 0x4046 has to be 0x0302
    - flag 0x896 has to be SET

    So - it's easy at all. b2topic, pls -.-"
     

    Mastermind_X

    ASM-Hacker
    92
    Posts
    17
    Years
  • ~Edited~

    As I said - the first offset has to be DMA secure. That means that it changes several times per minute. So you can't just write constantly to 2024ACE. Use the way I described. (I don't know if there is a way to "load a pointer" via pokescript - as far as I remember it isn't)
     
    Last edited:

    Darthatron

    巨大なトロール。
    1,152
    Posts
    18
    Years
  • No. It won't work with your code.
    As I said - the first offset has to be DMA secure. That means that it changes several times per minute. So you can't just write constantly to 2024ACE. Use the way I described. (I don't know if there is a way to "load a pointer" via pokescript - as far as I remember it isn't)

    There is none as far as I know. I'll read better next time, sorry. :( *deletes post*
     
    695
    Posts
    17
    Years
    • Seen Aug 20, 2017
    So a firered and leaf green version is still coming *phew*.
    Anyway good job on finding the flag XD.
    Although the data was already for long time avaible.
    XSE his std file open it with notepad it shows all most needed flags xd.
     
    Status
    Not open for further replies.
    Back
    Top