Jump to content

Obtaining the expected TID in Pokémon sword/shield


Hide

Recommended Posts

I am working with a Sword/Shield Pokémon in PKHEX and I want to provide it with a specific trainer ID value.

My target TID is 65635.
Hence, to get this value my inputs should be TID 99, SID 1.
Because: 99+(1*65536) = 65635.

I was expecting to find 3 cells in the TRAINER tab:

One cell to enter the TID value of 99 (“legacy” TID).
Another cell to enter the SID value of 1 (“legacy” SID).
And a third cell containing the calculated “65635” (“new/final” TID).

Instead, PKHEX has SID/TID cells that (seem to) work differently.
Why?

I got to leave the SID value as 0 and directly enter TID 65635, if want the "TID hover values" to display the 99/1.
Otherwise, entering 99/1 in the SID/TID cells returns "random" (unexpcted) "TID hover values"... And I guess this will change my "new/final" TID.

How do I get the target Sword/Shield TID value (65635) in PKHEX, without leaving the PKHEX SID value as 0? (Because I think leaving the SID field as 0 is against the rules).

Thank you!

Link to comment
Share on other sites

14 minutes ago, Hide said:

Instead, PKHEX has SID/TID cells that (seem to) work differently.
Why?

Because.. that is the trainer ID that appears in game.
(the 6 digit appears in game, and the rest is SID7. Much like the "legacy" versions, the SID doesn't appear in game.)
 

This might be a roundabout way, but if you want to use the legacy value (and you don't care what the in-game trainer value looks like) you use this in batch editor:
.TID=value here
.SID=value here

It refers to the "legacy" value you wanna achieve.
The mon will have the correct TrainerID7 and SecretID7 (the non legacy values)

You can then take note of the values, and insert the trainer value.

Just make sure you write it into a different save (the batch editing is a test save, don't make that your actual save ;3 )

Link to comment
Share on other sites

7 hours ago, theSLAYER said:

This might be a roundabout way, but if you want to use the legacy value (and you don't care what the in-game trainer value looks like) you use this in batch editor:
.TID=value here
.SID=value here

I understand, so if I do that in batch editor:

PKHEX returns a SID value of "0000", and...
PKHEX also returns the TID and “ID” values I would like to display.

Which takes me back to my question:
Why do I get a SID value of "0"?

Does sword/shield handle 2 different SID values and 2 different TID values?

How does PKHEX calculate the ID: xxxx/yyyy values (the ones that show when you hover over the onscreen TID) using the onscreen SID and TID?

Thanks!

PKM.png

Link to comment
Share on other sites

16 minutes ago, Hide said:

I understand, so if I do that in batch editor:

PKHEX returns a SID value of "0000", and...
PKHEX also returns the TID and “ID” values I would like to display.

Which takes me back to my question:
Why do I get a SID value of "0"?

Does sword/shield handle 2 different SID values and 2 different TID values?

How does PKHEX calculate the ID: xxxx/yyyy values (the ones that show when you hover over the onscreen TID) using the onscreen SID and TID?

Thanks!

PKM.png

I don't know how to explain it to you.
Effectively both fields are derived from the same bytes.
The "legacy" method reads them as they are, with the max being 65535.
The G7 method reads the same bytes, but applies a formula.

So SWSH handles the TID/SID differently depending of Game of Origin,
but the location of the data is exactly the same.

So based on game of origin, how PKHeX handles those bytes also change
(to emulate how the game handles it)

If you want to know the formula, read this here.

Link to comment
Share on other sites

Change the origin game to the game that it originates from.

Then enter in the TID/SID you want the game to show.

 

The Trainer ID is stored as a 32 bit value. The game does a bitshift for gen6 game-origin and prior. The game does a modulo for gen7 game-origin and up.

The value-portion that is discarded is the Secret ID.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

14 minutes ago, Hide said:

I checked the formula:
It says: IDfinal = IDtrainer + (IDsecret × 65536).

But the article does not mention anything about “another” SID (the one that returns ceroes).
How do you calculate this SID?

PKM2.png

TID(legacy) and SID(legacy) isn't the same as TID7 and SID7.

SID7 is the first four digits unused by TID7.

Maybe in reference to the post, this would make sense.
image.png

As for why your SID7 is a value of 7.. It's because the TID(legacy) and SID(legacy) pair you inputted generated SID7 as 0. Nothing special.

  • Thanks 1
Link to comment
Share on other sites

9 minutes ago, Kaphotics said:

Change the origin game to the game that it originates from.

Then enter in the TID/SID you want the game to show. The Trainer ID is stored as a 32 bit value. The game does a bitshift for gen6 game-origin and prior. The game does a modulo for gen7 game-origin and up.

The value-portion that is discarded is the Secret ID.

 

Nice, thank you very much!

 

5 minutes ago, theSLAYER said:

TID(legacy) and SID(legacy) isn't the same as TID7 and SID7.

SID7 is the first four digits unused by TID7.

Maybe in reference to the post, this would make sense.
image.png

Oh, I get it, this wraps it all!
Then it does not matter if that value remains as 0. Right?

Link to comment
Share on other sites

8 minutes ago, Hide said:

Oh, I get it, this wraps it all!
Then it does not matter if that value remains as 0. Right?

Not sure why you're going by the TID(legacy) and SID(legacy),
when most peoples are concerned about whether the TID7 fits. (normally they'll want the SWSH one displayed to be the one they use),
but in this case it doesn't matter if it's 0 :3

 

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...