Kurt d1cfdd782e Rework ball / frame check passing
Two checks are performed for Gen 3 & 4:
A: Encounterability (wurmple, ball, ability)
B: RNG Compatibility (frame)

Original code only checked 'A'
Recent code ordered by 'A', but returned anything that matched 'B'. If
'B was not satisfied, an 'A' match would get deferred, allowing for an
eventual B & !A to be returned before a A & !B being returned.

yay bool logic

we want to prefer a RNGFrameMatch as well as a SlotCompatible match
original code (no RNG checks) retrieves with SlotCompatible just fine
recent adding in framematch resulted in deferring compatible if not RNG
frame, yielding !A matches before A & !B

maintain 3 queues (A & B get yielded immediately) to track A!B, !AB, and
!A!B
not necessary to check unown case anymore as it'll fall into the A!B
group. better performant to skip that check in favor of only adding for
fail.

thanks theSlayer!
2018-03-21 20:19:54 -07:00
2018-03-20 22:34:44 -07:00
2015-07-20 20:54:07 -07:00
2018-01-28 09:28:45 -08:00

PKHeX

License

Pokémon core series save editor, programmed in C#.

Supports the following files:

  • Save files ("main", *.sav, *.dsv, *.dat, *.gci)
  • GameCube Memory Card files (*.raw, *.bin) containing GC Pokémon savegames.
  • Individual Pokémon entity files (.pk*, *.ck3, *.xk3, *.bk4)
  • Mystery Gift files (*.pgt, *.pcd, *.pgf, .wc*) including conversion to .pk*
  • Importing teams from Decrypted 3DS Battle Videos
  • Transferring from one generation to another, converting formats along the way.

Data is displayed in a view which can be edited and saved. The interface can be translated with resource/external text files so that different languages can be supported.

Pokémon Showdown sets and QR codes can be imported/exported to assist in sharing.

Nintendo 3DS savedata containers use an AES MAC that cannot be emulated without the 3DS's keys, thus a resigning service is required (Checkpoint, save_manager, JKSM, or SaveDataFiler).

We do not support or condone cheating at the expense of others. Do not use significantly hacked Pokémon in battle or in trades with those who are unaware hacked Pokémon are in use.

Screenshots

Main Window

Building

PKHeX is a Windows Forms application which requires .NET Framework v4.6.

The executable can be built with any compiler that supports C# 7.

Build Configurations

Use the Debug or Release build configurations when building using the .NET Framework. Use the Mono-Debug or Mono-Release build configurations when building using Mono.

Dependencies

PKHeX's QR code generation code is taken from QRCoder, which is licensed under the MIT license.

PKHeX's shiny sprite collection is taken from pokesprite, which is licensed under the MIT license.

IDE

PKHeX can be opened with IDEs such as Visual Studio or MonoDevelop by opening the .sln or .csproj file.

GNU/Linux

Install MonoDevelop and Mono Runtime with flatpak install --user --from https://download.mono-project.com/repo/monodevelop.flatpakref. GNU/Linux is not the main Operating System of developers of this program so there may be bugs; some may come from non GNU/Linux specific code of Mono (so developers using *BSD, Windows and macOS should be able to reproduce them).

Languages
C# 100%