Brilliant Diamond and Shining Pearl

Brilliant Diamond and Shining Pearl are Unity titles by ILCA whose IL2CPP game code speaks directly on Pia. The pages describe version 1.3.0, in the Union Room (Pokemon Center 2F, the left attendant, the plain “yes”) and the Grand Underground.

Status

Working on retail hardware:

feature detail
a seat in the console’s session needs only prod.keys and the LDN passphrase; every packet decrypts; the send path matches the console’s ciphertext byte for byte
transport the Local, Mesh Station and Mesh Protocol handshakes, the RTT timer, the reliable transport in both directions
a character in the Union Room walks, shows a trade emote, runs the game’s greeting dialogue
trade an assembled Pokemon accepted and saved; trades chain in one association (Trading)
hosting a console entering the Union Room joins a hosted room and trades (Hosting)
ball capsule a composed capsule lands in the collection with the seals the player holds (the protocol page)
record mixing, battle lobby up to the console’s record and its six chosen Pokemon
Grand Underground a character walks on the floor; the console’s secret base is read out

Pages

page contents
Joining and the Pia layer the advertisement, the passphrase, the seat, the packet format, the key hierarchy, the mesh handshakes, and hosting
The game protocol the 65 messages BDSP speaks, the Union Room, and controlling a character
Trading the trade flow, the PB8, the save, and the disconnect penalty

Unresolved

  • Why a 0x08 with no battle recruited leaves a retail console’s screen unchanged, when the code reads as a store to address 0x18 with no null check (The battle ladder).
  • Whether a retail console that is not the Grand Underground session host adopts a 0x61 from pokeldn. The common dispatch and the UgNetworkManager handler have no sender filter (the protocol page).

Table of contents