• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • 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.
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?
 
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.
 
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 ;)
 
Yes! I have waited for this moment for so long. After it's released to the public could you make a tutorial on how to use it?
 
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:
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
 
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...
 
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.
 
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?
 
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...
 
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:
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.
 
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 :)
 
*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 -.-"
 
~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:
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*
 
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