Jump to content
Sign in to follow this  
Ammako

Gen 4 Pokédex forms incorrectly read/written

Recommended Posts

Posted (edited)

As per a brand new save file: POKEMON_D_ADAE05.sav

Forms are incorrectly read, showing duplicated forms as Seen when they shouldn't be (e.g. two East Shellos/Gastrodon as Seen, two Origin Giratina, two Sky Shaymin)

Deoxys, Burmy, Wormadam and Rotom (Pt/HGSS) break the Pokédex editor, so does Pichu (HGSS.)

Spoiler

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 PKHeX.WinForms.SAV_Pokedex4.<>c__DisplayClass14_0.<GetEntry>b__1(Int32 v, Int32 i) in D:\Downloads\PKHeX-master\PKHeX.WinForms\Subforms\Save Editors\Gen4\SAV_Pokedex4.cs:line 142
   at System.Linq.Enumerable.<SelectIterator>d__5`2.MoveNext()
   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at PKHeX.WinForms.SAV_Pokedex4.GetEntry() in D:\Downloads\PKHeX-master\PKHeX.WinForms\Subforms\Save Editors\Gen4\SAV_Pokedex4.cs:line 142
   at PKHeX.WinForms.SAV_Pokedex4.ChangeLBSpecies(Object sender, EventArgs e) in D:\Downloads\PKHeX-master\PKHeX.WinForms\Subforms\Save Editors\Gen4\SAV_Pokedex4.cs:line 72
   at System.Windows.Forms.ListBox.OnSelectedIndexChanged(EventArgs e)
   at System.Windows.Forms.ListBox.set_SelectedIndex(Int32 value)
   at PKHeX.WinForms.SAV_Pokedex4.ModifyAll(Object sender, EventArgs e) in D:\Downloads\PKHeX-master\PKHeX.WinForms\Subforms\Save Editors\Gen4\SAV_Pokedex4.cs:line 302
   at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
   at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
   at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
   at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
   at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ToolStrip.WndProc(Message& m)
   at System.Windows.Forms.ToolStripDropDown.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.7.2634.0 built by: NET471REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
PKHeX
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///D:/Downloads/PKHeX-master/PKHeX.WinForms/bin/Debug/PKHeX.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.2558.0 built by: NET471REL1
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.2634.0 built by: NET471REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.2558.0 built by: NET471REL1
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
PKHeX.Core
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///D:/Downloads/PKHeX-master/PKHeX.WinForms/bin/Debug/PKHeX.Core.DLL
----------------------------------------
System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.2558.0 built by: NET471REL1
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.2634.0 built by: NET471REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.2612.0 built by: NET471REL1LAST_B
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.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.

(GetDexFormValues returns a handful -1 form IDs for these, from 1st arg being wrong/invalid)

Using Seen All/Caught All/Complete Dex, you can even get it to crash on Arceus with the same error, but it doesn't normally crash there since Arceus doesn't actually display its forms in the UI for Gen 4 saves.

Unown works fine, its forms are read/set differently from every other.

If all forms have been marked as Seen by the game via normal gameplay or via a different save editor (see here), then everything is read and recognized properly in PKHeX, but any edits made in PKHeX will break it again for that Pokémon. If even just one form is unseen, it breaks in the same ways.

 

(Additional strange behavior: the labels for seen/unseen forms are active and clickable at all times for DP save files, allowing them to be marked as Seen without explicitly checking the Seen checkmark first, whereas they are grayed out on Pt/HGSS until the Seen checkbox is checked.)

Edited by Ammako

Share this post


Link to post
Share on other sites

Pushed some changes, not sure what else is left to fix (I don't think I changed anything for saving the values...) Probably the seen&unseen case (is that even a possible ingame case?).

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
Sign in to follow this  

×