Jump to content
Kaphotics

(X/Y) KeySAV2 - Box/Battle Video Data Viewer

Recommended Posts

KeySAV2 - now supports ORAS (BV or digital SAV)!

KeySAV2 is a conglomeration of two tools (KeySAV and KeyBV) that combines the features and includes more.

Retail Games are supported via: SD Card Battle Videos // PowerSaves/Cyber Gadget

Digital Games are supported via: SD Card Battle Videos & SD Card Save Games

LqyTr.jpg

Features:

  • KeyBV and KeySAV/Mass Dumping features.
    • (Multiple) Box viewing
    • Battle Video team viewing
    • Dumping of PK6 files (Decrypted Pokémon Files) which can be viewed in PKHeX.
    • Dumping to CSV to view all useful info at a glance.

    [*]Automatic (empty) box slot unlocking for future use (no need for new keys).

    • If KeySAV detects data with it's keys, it will display it and update it's key file.
    • Provisional Data (<100%) can be hidden or marked. (Options)
    • Once a slot has had 3 different states (Empty/Filled 1/Filled 2), certainty is 100%.

    [*]Options menu with customizable output.

    [*]KeySAV2 supports all game languages (input files and output data).

    [*]Language, Window Size, and Options are automatically saved/loaded.

    [*]Automatic Key loading when a Save/Battle Video is loaded (if key exists).

    [*]Automatic Save/Battle Video loading when the 3DS' SD card is plugged in.

    [*]Archival/Backup of Save/Battle Video files for future use.

    [*]Organized storage of Key / Dumps / Backups in folders.

    [*]Vivillon Forms are displayed as a part of the Species name.

    [*]Drag&Drop support.

Disclaimer:

Keys/Blanks from KeySAV and KeyBV cannot be used; re-break for the new format.

You cannot use someone else's data.

Extra:

Update: Vivillon forms now appear properly. (80)

CSV output fixed. (80)

31IV / Color Checkboxes now function properly. (50)

fixed ball output... again (30)

Programmed in C#

Inspiration from the various improvement forks of KeySAV/KeyBV and SV Checker.

Key Format:

0x0 - 16 byte ID number (0x10-0x1F from SAV/BV)

BV

0x100 - My Team Key
0x800 - Opponent Team Key (if broken successfully)

SAV

0x10 - 0xE0-0xE3 Blank Data (SAV)
0x1C - Box1 Offset (dynamic for ORAS)
0x100 - Key1 Data
0x40000 - Key2 Data

For the SAV Key Data:

First Break will store all of save1 into Key1, and any differing slot in save2 will be stored in key2.

When data different to either key is found in the save, the key will automatically update and store the new data if key2 is empty.

If key2 is full and the sav data is new, then if the save is detected empty (sav^key1 & sav^key2 are both valid EKX) or if either key is detected empty (one of the previous criteria fails), then the key will permanently store the empty data and always use it in the future (key1(empty) => use key2 always).

TUTORIALS:

Recommended: Extract KeySAV2 to its own folder somewhere -- it needs to make subfolders!

Follow the same breaking process as KeySAV/KeyBV by using the Options Tab of KeySAV2.

Source Code on my GitHub.

ALTERNATE (X/Y only) BUILD - Contains more features, by ViolentSpatula.

ALTERNATE (ORAS/XY) BUILDS:

Cu3PO42's BUILD & GUIDE (double saving not required)

Kaisonic's BUILD (double saving not required)

Download Link:

KeySAV2.zip

KeySAV2 (ORAS).zip

KeySAV2.zip

KeySAV2 (ORAS).zip

Edited by Kaphotics

Share this post


Link to post
Share on other sites

Kaphotics, your tool really is great :)

I'm writing a web application to support this tool

I need help!!

 

Can you help my by sending me your csv file? And if possible, text file with default format/ reddit format, too

If you can, please send an email to kuroemon485[at]gmail[dot]com

It look something like this:

(It does support csv format now)

Box with pokemon

3.PNG

 

Empty box

1.PNG

Import data

2.PNG

Quick look at normal Pokemon

4.PNG

Quick look at an Egg

4-1.PNG

Detail for shiny Pokemon

5.PNG

Detail for an Egg

5-1.PNG

Wipe data confirmation

6.PNG

How to use modal

7.PNG

Please enjoy your time here :)

Here's its source code: Box Simulator source code

I'm current looking for someone to host it. (actually, Reisyukaku has helped me host the old version, but he seem too busy to update source).

Share this post


Link to post
Share on other sites

Great! :grog:

Provisional Data (<100%) can be hidden or marked. (Options)

Once a slot has had 3 different states (Empty/Filled 1/Filled 2), certainty is 100%.

Now I know why my data was such a mess. But, this will lead to 2 situations:

- A slot with pokemon filled in but doesnt have 100% data wont be showed if I choose "dont show".

- A slot without pokemon but still got some data will be show if I choose "mark ~" or leave the options be.

Both of them are bad for us normal user who just want to check our Pokemon's stats. Is there anyway to just show only slots which currently have a pokemon?

Share this post


Link to post
Share on other sites

Thank you for this new program. Quick question, would it be possible to add in a future update the option to see which game a Pokemon came from? Such as whether the Pokemon came from X or Y, or was Poke Transported from an older game.

Share this post


Link to post
Share on other sites
Thank you for this new program. Quick question, would it be possible to add in a future update the option to see which game a Pokemon came from? Such as whether the Pokemon came from X or Y, or was Poke Transported from an older game.

If you have PKHeX you can tell where a Pokemon came from. KeySAV2 allows you to export the .pkx files. All you have to do is open them up in PKHeX and go to the met tab and it should be there. This is a Scatterbug I hatched from my game:

d32044defb1483487c8ac97e9072ac39.png

Also how do you do the Battle Video thing exactly? Is there a prior tutorial for it that someone can link me or what?

Share this post


Link to post
Share on other sites
If you have PKHeX you can tell where a Pokemon came from. KeySAV2 allows you to export the .pkx files. All you have to do is open them up in PKHeX and go to the met tab and it should be there. This is a Scatterbug I hatched from my game:

d32044defb1483487c8ac97e9072ac39.png

Also how do you do the Battle Video thing exactly? Is there a prior tutorial for it that someone can link me or what?

I know. I can already check Pokemon in PKHeX but I thought I'd ask anyway because why not? The KeyBV link above will take you to the tutorial for that.

Share this post


Link to post
Share on other sites

The uncertain data will auto-delete itself the more you use the program. The program observes the data on the save and can't know if A^B is (Empty,Full) or (Full,Empty) until it has observed another decryptable state.

KeySAV doesn't generate the entire XORpad when it breaks (it can't), and to help streamline things it can't assume anything. The more you use the program, the more will be unlocked. Try dumping with the boxes empty, then the boxes full, then move different data around and it shouldn't be marked.

As for the met game displayed: there's so much data that it's best that the user just opens it in PKHeX. If you really must have it, create a fork and add it! (In the source there is a class/structure that you can ez get data with)

Share this post


Link to post
Share on other sites

Hi, it's Me Again...

I've Bruteforced My Key From My Save but i can't go any further on Dumping My Pokémon Data on px6! It explains when i open my Save Backup and say that The Key was not found, break it first! Being so, I already have my Key from my Pokémon Y Save Game. Why did this happen?

Thank You!

Share this post


Link to post
Share on other sites

You have to save your key where it initially opens to; it's not a suggestion. The \data\ folder will store your keys and is where it will look when finding a given key.

Share this post


Link to post
Share on other sites

I did it! I also managed to Backup my Kalos Born Pokémon... But Not My Transferred Pokémon... Thoughts?

Share this post


Link to post
Share on other sites

Thanks, I'll try it tomorrow

EDIT: I Did it! More coming up Tomorrow!!!!! Good night!

EDIT 2: Good Morning! I had dumped My Entire Pokémon Y pk6 Collection, here....

https://drive.google.com/?authuser=0#folders/0B9eNEYc0qQFZYnhsUkZmS05fcEE

Have a Good Day!

EDIT 3: Seems only until my Alakazam have been shared. Guess i have to grab my HD And Copy them There... God, give me Patience! :frown:

EDIT 4: All the pk6 is now available as of now. Thanks for Your support!

Edited by Maddaren

Share this post


Link to post
Share on other sites

maybe you should also add here (Retail Games are supported via: SD Card Battle Videos // PowerSaves/Cyber Gadget) that you can dump your card using gateway's loader, and extract your save from the dump :)

anyway, thanks for the update :)

Share this post


Link to post
Share on other sites

Hello, I'm really new on this, so...

Questions:

How do I send the .sav from my retail to the SD/PC ?

Once I have the .sav, how do I check if that poke will be shiny or not?

I remember it has to be something like:

TSV = ESV...

How do i check my TSV, can I get it from a previous hatched shiny?

I'm willing to pledge around 200 eggs, but hatching them is tooo damn crazy... so far I've hatched 1,700... so yes, I need a speed up tool...

Thanks.

Share this post


Link to post
Share on other sites
Hello, I'm really new on this, so...

Questions:

How do I send the .sav from my retail to the SD/PC ?

Once I have the .sav, how do I check if that poke will be shiny or not?

I remember it has to be something like:

TSV = ESV...

How do i check my TSV, can I get it from a previous hatched shiny?

I'm willing to pledge around 200 eggs, but hatching them is tooo damn crazy... so far I've hatched 1,700... so yes, I need a speed up tool...

Thanks.

With a retail cartridge you need a Powersaves to dump the save file.

The only option usable by retail carts without that is the Battle Video portion, which requires you to use battle videos instead of save files, at a much slower pace.

Share this post


Link to post
Share on other sites

@Kaphotics

Thanks, I checked some information, I might be able to gather some boxes with eggs, store them in pokebank, pass them to my digital copy of poke X, get the 00000001.sav and store them as 16.sav and 26.sav, break the boxes, and after that, check all the boxes with eggs, check TSV and ESV, if match then just hatch get it back to the original poke Y and hatch it.

If I'm correct, I'll be downloading pokebank tonight after getting the box Keys...

Thank you :)

Share this post


Link to post
Share on other sites

Alternate KeySAV2 BUILD

Hello everyone! I really enjoy this program, but I wanted more from it, so I've forked KeySAV2 and added more formatting options to the program!

New Features/Changes:

  • New Formatting Options

  • Level

  • Region

  • Country

  • Held Item

  • Language

  • Game Version

  • Help menu can now be open while typing in options menu
  • "Reddit" style is changed to show more information
  • Support for Unown forms

Changelog:

  • 7/31/2014 - Unown now show what form they are.
  • 8/2/2014 - Fixes error caused by numbers greater than 618 in data.move and data.eggmove.

I'd be happy to add any other formatting options that are requested!

Source code on my GitHub~

Download:

KeySAV2.V.1.15.zip

KeySAV2.V.1.15.zip

Edited by ViolentSpatula

Share this post


Link to post
Share on other sites

I just started playing my poke X (digital)

Does anyone know why I can't break KeyBoxes ?

Do I need to have "Classius PC" or does it work with "Someone's PC"?

May I upload the 16.sav and 26.sav to a dropbox location so someone can assist?

Thanks.

Share this post


Link to post
Share on other sites

I made it work, but the ESV is not working properly with catched pokemons, do I need to breed one to have an ESV?

EDIT:

Well, I apologize, the tool is awesome, I'm just dumb, ESV is Egg Shiny Value, so to check an ESV It has to be an egg...

Since this is working like a charm, I've have the following TSV:

1652 (x)

0730 (y)

So, if anyone has some eggs with those ESV, I'll be glad to help you guys to breed them...

Edited by darkfalco
I noticed I was wrong

Share this post


Link to post
Share on other sites

I have previously used KeySAV and Massdumper, but I'm running into an issue with KeySAV2. I am able to break the encryption, but attempting to export my data results in this exception:

See the end of this message for details on invoking

just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************

System.IndexOutOfRangeException: Index was outside the bounds of the array.

at KeySAV2.Form1.dumpPKX_SAV(Byte[] pkx, Int32 dumpnum, Int32 dumpstart)

at KeySAV2.Form1.DumpSAV(Object sender, EventArgs e)

at System.Windows.Forms.Control.OnClick(EventArgs e)

at System.Windows.Forms.Button.OnClick(EventArgs e)

at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)

at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)

at System.Windows.Forms.Control.WndProc(Message& m)

at System.Windows.Forms.ButtonBase.WndProc(Message& m)

at System.Windows.Forms.Button.WndProc(Message& m)

at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)

at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

************** Loaded Assemblies **************

mscorlib

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.18444 built by: FX451RTMGDR

CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll

----------------------------------------

KeySAV2

Assembly Version: 1.0.0.0

Win32 Version: 1.0.0.0

CodeBase: file:///C:/Users/kirraley/Desktop/_Pokemon/Exporting/KeySAV2/KeySAV2.exe

----------------------------------------

System.Windows.Forms

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll

----------------------------------------

System.Drawing

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll

----------------------------------------

System

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll

----------------------------------------

System.Core

Assembly Version: 4.0.0.0

Win32 Version: 4.0.30319.18408 built by: FX451RTMGREL

CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll

----------------------------------------

************** JIT Debugging **************

To enable just-in-time (JIT) debugging, the .config file for this

application or computer (machine.config) must have the

jitDebugging value set in the system.windows.forms section.

The application must also be compiled with debugging

enabled.

For example:

<configuration>

<system.windows.forms jitDebugging="true" />

</configuration>

When JIT debugging is enabled, any unhandled exception

will be sent to the JIT debugger registered on the computer

rather than be handled by this dialog box.

Thank you for your help.

Share this post


Link to post
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...