Research RAR'd up, includes battle pkms, more encrypted videos and everything else that follows and more.
This was done without using NulMyre's program as the structure is entirely different, all that I used from it was the decompiled java just to see how it worked in Platinum.
Decrypted Jenn Video
Overwriting Battle Videos
Reading the BPKM data from the RAM (identical to the decrypted data)
A little tutorial on accessing data within a Battle Video:
Upon loading the battle video, the game loads the entire VRD at 0x0226AFAC.
The video is loaded in its encrypted form, occupying
0x0226AFAC-0x0226C8BF
Guess what, it gets decrypted by the game. Huzzah!
While in DeSmuME, Open Memory Viewer at the Battle Video Screen.
Dump All. Open .bin in HxD
copy the offsets: 0x0226AFAC-0x0226C8BF
Into a new file.
Bam, decrypted VRD, aka DBV (decrypted battle video)
Now to make sense of what the data is inside!
Program Implications:
There are no checksums on the entire save file in regards to Battle Videos.
If you overwrite one video in the save with another downloaded one,
it will be viewable instead! Backup and Share them!
Battle Video Structure:
Surface Summaries
Moves
Pokemon
Trainers
Closing Summaries (???)
Battle Video PKMs are 112 bytes long (not all data is present!!!)
Offsets in Decrypted Battle Video:
0XCFC: Max Present PKM
0xCFE: Currently Present PKM
PID 0xD00 + 0x70*pkm
Species 0xD06 + 0x70*pkm
Held Item 0xD08 + 0x70*pkm
Trainer ID 0xD0C + 0x70*pkm
Trainer SID 0xD0E + 0x70*pkm
Happiness 0xD14 + 0x70*pkm
Ability 0xD15 + 0x70*pkm
HP-EV 0xD16 + 0x70*pkm
Atk-EV 0xD17 + 0x70*pkm
Def-EV 0xD18 + 0x70*pkm
SpA-EV 0xD19 + 0x70*pkm
SpD-EV 0xD1A + 0x70*pkm
SpE-EV 0xD1B + 0x70*pkm
Move 1 0xD1C + 0x70*pkm
Move 2 0xD1E + 0x70*pkm
Move 3 0xD20 + 0x70*pkm
Move 4 0xD22 + 0x70*pkm
PP 1 0xD24 + 0x70*pkm
PP 2 0xD25 + 0x70*pkm
PP 3 0xD26 + 0x70*pkm
PP 4 0xD27 + 0x70*pkm
IVs 0xD2C + 0x70*pkm
Gender Forme 0xD30 + 0x70*pkm
NickName Field 0xD32 + 0x70*pkm
OTName Field 0xD48 + 0x70*pkm
PokeBall 0xD58 + 0x70*pkm
Origin 0xD59 + 0x70*pkm (01 is Japan, 02 is English)
Level 0xD60 + 0x70*pkm
BatlStat(maxHP) 0xD62 + 0x70*pkm
BatlStat(curHP) 0xD64 + 0x70*pkm
BatlStat(AtK) 0xD66 + 0x70*pkm
BatlStat(Def) 0xD68 + 0x70*pkm
BatlStat(SpA) 0xD6A + 0x70*pkm
BatlStat(SpD) 0xD6C + 0x70*pkm
BatlStat(SpE) 0xD6E + 0x70*pkm
For Enemy Pokemon, add 4 to the base offset as the
max/current PKM present shifts it as well.
Some Offsets within the Battle Video that define visual cues:
0x00-0x0F - Trainer Profile (Owner of Video)
0x10-0x25 -- Trainer Profile Data
0x10-0x13 - Trainer PID
0x14 - Trainer Gender (00 Male 01 Female)
0x15 - Trainer Birth Month
0x16 - Trainer Avatar
0x17 - Trainer Nation
0x18 - Trainer SubLocale
0x1C - Trainer Pokemon Displayed (Half Word)
0x1D-0x25 - ???
0x26-0x6F -- FF Pads
0x70-0x7B -- Unused/Unknown
0x80-0xAX -- Battle Overview Data
0x80-0x8B - Team#1
0x8C-0x97 - Team#2
0xA4 - Battle # (Subway Streak)
0xA6 - Battle Mode(???)
0xA7 - Game Modes (Launcher?)
0xB8-0xBC - Battle Video ID(???)