ROM Hack Pokemon Brilliant Diamond & Shining Pearl Cheat Database

JayBae

Well-Known Member
Member
Joined
May 24, 2020
Messages
301
Trophies
0
Age
37
Location
America
XP
375
Country
United States
You have to press L (or whatever activation key you're using for the shiny code) almost immediately after you press yes on the starter you want to select.
Thanx, that did the trick! Someone should make a cheat that just makes all 3 starters shiny by default, cause that hold L cheat loves to lock up the system if you don't time it right. lol
 

INSTRUMENTAL

-
Member
GBAtemp Patron
Joined
Nov 13, 2021
Messages
517
Trophies
1
XP
1,440
Country
Australia
Thanx, that did the trick! Someone should make a cheat that just makes all 3 starters shiny by default, cause that hold L cheat loves to lock up the system if you don't time it right. lol
It's just the scripting on the starter encounter that the shiny code seems to not get along with. Everywhere else seems to be unaffected.
 

INSTRUMENTAL

-
Member
GBAtemp Patron
Joined
Nov 13, 2021
Messages
517
Trophies
1
XP
1,440
Country
Australia
Invincibility code:

Pokemon Brilliant Diamond 1.1.2

Code:
[Invincible (on)]
04000000 02CCD3D0 3940F801
04000000 02CCD3D4 34000041
04000000 02CCD3D8 52800015
04000000 02CCD3DC 2A1503E1
04000000 02CCD3E0 17DA2B76
04000000 023581B4 1425D487

[Invincible (off)]
04000000 023581B4 2A1503E1
@ThePerplexedOne Would you be able to explain what first 5 lines of the activation code are doing?
I've started learning how to make ASM codes and I don't think I'm understanding your code correctly. To me it looks like you're writing over a debug line drawing subroutine with some instructions (that I can't figure out what they do). So I'm just wondering if I'm entirely out of the ball park on this, since I just don't know.
 

ThePerplexedOne

Active Member
Newcomer
Joined
Nov 30, 2021
Messages
40
Trophies
0
Age
29
XP
147
Country
United Kingdom
@ThePerplexedOne Would you be able to explain what first 5 lines of the activation code are doing?
I've started learning how to make ASM codes and I don't think I'm understanding your code correctly. To me it looks like you're writing over a debug line drawing subroutine with some instructions (that I can't figure out what they do). So I'm just wondering if I'm entirely out of the ball park on this, since I just don't know.
It's my code cave. Essentially, I am writing my own functions in "empty space" in the binary (first 5 lines) and calling it from the existing function. (final line)

The empty space will typically just be a bunch of nops and returns, so I'm free to write whatever I want in there.
 
  • Love
Reactions: INSTRUMENTAL

ThePerplexedOne

Active Member
Newcomer
Joined
Nov 30, 2021
Messages
40
Trophies
0
Age
29
XP
147
Country
United Kingdom
Can we have a x2 and x3 versions for this? Thanks!

Code:
[2x Exp (on)]
04000000 02CCD2F0 52800042
04000000 02CCD2F4 1B027F7B
04000000 02CCD2F8 2A1B03E2
04000000 02CCD2FC B90012E2
04000000 02CCD300 D65F03C0
04000000 02CCD304 52800042
04000000 02CCD308 1B027F5A
04000000 02CCD30C 2A1A03E2
04000000 02CCD310 B9001302
04000000 02CCD314 D65F03C0
04000000 023E8384 942393DB
04000000 023E856C 94239366

[3x Exp (on)]
04000000 02CCD2F0 52800062
04000000 02CCD2F4 1B027F7B
04000000 02CCD2F8 2A1B03E2
04000000 02CCD2FC B90012E2
04000000 02CCD300 D65F03C0
04000000 02CCD304 52800062
04000000 02CCD308 1B027F5A
04000000 02CCD30C 2A1A03E2
04000000 02CCD310 B9001302
04000000 02CCD314 D65F03C0
04000000 023E8384 942393DB
04000000 023E856C 94239366
 

INSTRUMENTAL

-
Member
GBAtemp Patron
Joined
Nov 13, 2021
Messages
517
Trophies
1
XP
1,440
Country
Australia
It's my code cave. Essentially, I am writing my own functions in "empty space" in the binary (first 5 lines) and calling it from the existing function. (final line)

The empty space will typically just be a bunch of nops and returns, so I'm free to write whatever I want in there.
Okay cool, I'm glad I was understanding that you were writing you're own instructions.
If you don't mind, would you be able to explain what the instructions were that you put in the "code cave"?
I see you're altering the instruction so that it alters how HpMinus runs when it's branched to, but I don't know how to work back from you're hex codes to understand the instructions yet.

Also thank you for explaining, It's very much appreciated. I haven't come across many specific examples to learn from for BDSP.
 

ThePerplexedOne

Active Member
Newcomer
Joined
Nov 30, 2021
Messages
40
Trophies
0
Age
29
XP
147
Country
United Kingdom
Okay cool, I'm glad I was understanding that you were writing you're own instructions.
If you don't mind, would you be able to explain what the instructions were that you put in the "code cave"?
I see you're altering the instruction so that it alters how HpMinus runs when it's branched to, but I don't know how to work back from you're hex codes to understand the instructions yet.

Also thank you for explaining, It's very much appreciated. I haven't come across many specific examples to learn from for BDSP.

Okay so let's take a look at our code and what that translates to in ARM:

Code:
ldrb w1, [x0, #0x3e] // Loads the value of x0 (as a byte) (first parameter passed) + offset 0x3e (which is m_friendship in BTL_POKEPARAM) into w1
cbz w1, #0xc // Checks if this value is 0, if it isn't, it will execute the next instruction, otherwise skip it.
mov w21, #0 // Loads the value 0 into w21
mov w1, w21 // Puts value of w21 back into w1 (this is the original instruction that we're overwriting in the final line)
b #0xffffffffff68ade8 // Go back to our original instruction, but the instruction after it (so we ain't looping)
b #0x975230 // This just brings us to our function

The first 5 lines are our function, and again, the final line is what takes us there.

Basically, what we're doing is checking if the pokemon being attacked has 0 friendship (it seems to me that all wild pokemon/trainer pokemon have 0 friendship), so if they do, they take damage, and we don't. The only case this may fail is if your pokemon has 0 friendship, e.g. you JUST caught it and it's your first battle with it.

To translate to and from HEX/ARM, you can use this: https://armconverter.com/

Also, it's worth noting that the bytes in our instructions in the code need to be reversed so that we can translate it.

E.g. the instruction `52800042` will become `42008052`. Don't just reverse it completely, only each byte block.
 
Last edited by ThePerplexedOne,

INSTRUMENTAL

-
Member
GBAtemp Patron
Joined
Nov 13, 2021
Messages
517
Trophies
1
XP
1,440
Country
Australia
Okay so let's take a look at our code and what that translates to in ARM:

Code:
ldrb w1, [x0, #0x3e] // Loads the value of x0 (first parameter passed) + offset 0x3e (which is m_friendship in BTL_POKEPARAM) into w1
cbz w1, #0xc // Checks if this value is 0, if it is, it will execute the next instruction, otherwise skip it.
mov w21, #0 // Loads the value 0 into w21
mov w1, w21 // Puts value of w21 back into w1 (this is the original instruction)
b #0xffffffffff68ade8 // Go back to our original instruction, but the instruction after it (so we ain't looping)
b #0x975230 // This just brings us to our function

The first 5 lines are our function, and again, the final line is what takes us there.

To translate to and from HEX/ARM, you can use this: https://armconverter.com/

Also, it's worth noting that the bytes in our instructions in the code need to be reversed so that we can translate it.

E.g. the instruction `52800042` will become `42008052`. Don't just reverse it completely, only each block of 2 bytes.
Thank you so much, that was perfect ♥
That helps out so much. Also thank you for the reverse reminder, I sometimes find myself trying out codes, only to realise the big endian button isn't toggled on armconverter
 
  • Like
Reactions: ThePerplexedOne

ThePerplexedOne

Active Member
Newcomer
Joined
Nov 30, 2021
Messages
40
Trophies
0
Age
29
XP
147
Country
United Kingdom
Thank you so much, that was perfect ♥
That helps out so much. Also thank you for the reverse reminder, I sometimes find myself trying out codes, only to realise the big endian button isn't toggled on armconverter

I found these tutorials really helpful (join the group if you haven't already):

https://gbatemp.net/threads/tutorial-1-making-a-multiplier-cheat.603417/
https://gbatemp.net/threads/tutorial-2-making-code-cave.603446/

I picked up some things I didn't know I could do with IDA before. Very useful :D
 
  • Love
Reactions: INSTRUMENTAL

INSTRUMENTAL

-
Member
GBAtemp Patron
Joined
Nov 13, 2021
Messages
517
Trophies
1
XP
1,440
Country
Australia
  • Like
Reactions: ThePerplexedOne

TheAquarius

Member
Newcomer
Joined
Dec 15, 2021
Messages
6
Trophies
0
Age
34
XP
91
Country
Morocco
Are the button activated codes working for you on ryujinx?

The way the code works is it sets the value to 99, however, with emulators having the codes permanently activated from launch, it means it's always setting it to 99, so for emulators you can't, since you have to restart to make changes to what cheats are active (as far as I'm aware, granted I've not used the emus, just been reading other peoples posts).
That's true, but the code you provided with the button activation works like a charm. I get 99 with my first encounter and the chain count keeps on going up to 100+, which is what I was looking for. And once I'm done with that chain, I press R to restart the chain count and now I can encounter a new pokemon and start a new chain with no issue at all. Perfectly done, thank you.
 
  • Like
Reactions: INSTRUMENTAL

awesomelink234

Active Member
Newcomer
Joined
Oct 20, 2016
Messages
26
Trophies
0
Age
21
XP
244
Country
United States
How do I use the radar chain codes? I saw one on CheatSlips that said to hold L, but I set the code to only do 40, and it doesn't work no matter where I hold L.
 

ezkitty

Well-Known Member
Member
Joined
Jul 28, 2021
Messages
165
Trophies
0
Age
26
XP
861
Country
United States

FabioCapela

Well-Known Member
Member
Joined
Jul 12, 2007
Messages
309
Trophies
1
XP
1,259
Country
Brazil
It acts like the original game. When a gba cartrige of a pokemon game is inserted in slot 2, you get newer pokemons that you couldn't encounter in the wild

https://www.serebii.net/diamondpearl/gbapokemon.shtml

I don't think these pokemon are legal for online since there's no way of inserting a gba cartridge to the switch
PKHeX will flag them as illegal, but I don't think they will have any issues with online trading or battling (as long as they aren't further modified) since Nintendo's legality checks are far more lenient than PKHeX's.

For the most part it's better to get them in the Underground, though, where they can be obtained at higher levels and with egg moves to boot.
 

JayBae

Well-Known Member
Member
Joined
May 24, 2020
Messages
301
Trophies
0
Age
37
Location
America
XP
375
Country
United States
So I noticed the main cheat file was last updated in november, is the person that started this even around anymore? and if so, why's it not been updated? XD
 

INSTRUMENTAL

-
Member
GBAtemp Patron
Joined
Nov 13, 2021
Messages
517
Trophies
1
XP
1,440
Country
Australia
So I noticed the main cheat file was last updated in november, is the person that started this even around anymore? and if so, why's it not been updated? XD
She was recently in an accident and is currently recovering, so things are a little slower here in terms of updates (She's is also a prominent in the ACNH cheat & reverse engineering scene, so spend time there as well).
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    K3Nv2 @ K3Nv2: Let me finish do the harder drugs