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,433
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,433
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,433
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,433
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,433
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
854
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,433
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
  • Sicklyboy @ Sicklyboy:
    I love how insurance companies can deny procedures because they deem it not medically necessary despite the procedure being ordered by a doctor
  • K3Nv2 @ K3Nv2:
    Going with that right now with a dental claim morons put the wrong company name and rejected claims been on hold an hour for the claims department
  • K3Nv2 @ K3Nv2:
    @Sicklyboy, BTW is it better to go usb or bt for these mini Pcs figure you may know since you play with rack systems so much
  • Sicklyboy @ Sicklyboy:
    Counting my blessings that my insurance hasn't caused me really any headache (yet, at least) despite the fact that I've been getting way more appointments and what not recently due
  • Sicklyboy @ Sicklyboy:
    @K3Nv2, what do you mean, what are you trying to do?
  • K3Nv2 @ K3Nv2:
    Just looking at a built in mouse pad keyboard combo
  • K3Nv2 @ K3Nv2:
    I loose the dongle constantly but they may have better connection with usb frequency
  • Sicklyboy @ Sicklyboy:
    Imo Bluetooth is always a option of last resort for me
  • Sicklyboy @ Sicklyboy:
    Except for phones because it tends to be pretty reliable there
  • K3Nv2 @ K3Nv2:
    I got a bad habit of taking out usb transmitter and loosing it because they can't you know print names on the damn things
  • Sicklyboy @ Sicklyboy:
    But any desktop OS, I've never had anything but frustration trying to get Bluetooth devices to work reliably and stable. It might pair and connect once, and then next time I go to use it I have to delete and re-pair it again
  • K3Nv2 @ K3Nv2:
    5.3 has been so good I think 6 is really going to make it stable
  • K3Nv2 @ K3Nv2:
    I remember how shit 3 was
  • Sicklyboy @ Sicklyboy:
    Ptouch labeler aren't terribly expensive, label shit yourself fam. This is the one I own and there are cheaper ones too https://www.amazon.com/Brother-P-Touch-PTH110BP-Portable-included/dp/B09QXYND6S
  • Sicklyboy @ Sicklyboy:
    Solves part of the problem, mixing up which dongle is which. Then you just have to not lose them lol
  • K3Nv2 @ K3Nv2:
    Double D would be proud
    +1
  • Sicklyboy @ Sicklyboy:
    Even my Xbox One controller I have it paired to my desktop over Bluetooth, it USUALLY works but sometimes it refuses to connect and I have to delete and re-pair it. Maddening
  • K3Nv2 @ K3Nv2:
    Gigabytes built in mobo bt/wifi pairs pretty decent
  • Sicklyboy @ Sicklyboy:
    That's what I'm using :(
  • K3Nv2 @ K3Nv2:
    Ran a driver update in device manager?
  • Sicklyboy @ Sicklyboy:
    Not recently but I think it's less a driver issue and more just Windows having a garbage Bluetooth stack
  • K3Nv2 @ K3Nv2:
    Could be I was having issues when I first upgraded it and didn't realiser gigabyte has specific driver revisions which is stupid
  • K3Nv2 @ K3Nv2:
    Which is married to the boards revision
  • Xdqwerty @ Xdqwerty:
    Made my first review
  • RedColoredStars @ RedColoredStars:
    I've gone years without ever removing a logitech usb transmitter. Across several replacements of keyboards and mice. It just stays put.
    RedColoredStars @ RedColoredStars: I've gone years without ever removing a logitech usb transmitter. Across several replacements of...