From f5b22d7873c6793385df505ac0ecfda83913c99b Mon Sep 17 00:00:00 2001 From: Kurt Date: Tue, 17 Oct 2017 23:59:14 -0700 Subject: [PATCH] Update 17.10.17 Update event binaries with latest from the Event Gallery --- PKHeX.Core/Resources/byte/pcd.pkl | Bin 489632 -> 489632 bytes PKHeX.Core/Resources/byte/wc6.pkl | Bin 153384 -> 153648 bytes PKHeX.Core/Resources/byte/wc7full.pkl | Bin 237552 -> 264208 bytes .../Saves/Substructures/BVRequestUtil.cs | 72 ++++++++++++++++++ PKHeX.WinForms/Resources/text/changelog.txt | 32 +++++++- PKHeX.WinForms/Resources/text/version.txt | 2 +- 6 files changed, 104 insertions(+), 2 deletions(-) create mode 100644 PKHeX.Core/Saves/Substructures/BVRequestUtil.cs diff --git a/PKHeX.Core/Resources/byte/pcd.pkl b/PKHeX.Core/Resources/byte/pcd.pkl index 64822d2eaed4b2c168d9a01a6f17e6e6ef2bd127..17a6b0cab17a9fcccbb4f2c7002de39e4c95a128 100644 GIT binary patch delta 51 zcmZ4RQFg&c*@hOz7N!>F7M2#)Eo_$}+4cy`3Q?%tej}1Ch?z~nuj*M}U%Npp+jfIk H_5x`D3KF7M2#)Eo_$}+4A?!3Q?%rej}1Ch?#AHf7P>d{p|*^Y}*ZD H*$borAAS@F diff --git a/PKHeX.Core/Resources/byte/wc6.pkl b/PKHeX.Core/Resources/byte/wc6.pkl index 247d68ed44623222e7f871e28e1774cc3672afbc..4f2f77f7b775f2d3248d497ac855377cf6bf9217 100644 GIT binary patch delta 30 mcmZ3nj&s8X&J7lxlMOu9Pd=^^*=*t2ZsEze-NKXU11|u^u?x=t delta 22 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 diff --git a/PKHeX.Core/Saves/Substructures/BVRequestUtil.cs b/PKHeX.Core/Saves/Substructures/BVRequestUtil.cs new file mode 100644 index 000000000..db375c61c --- /dev/null +++ b/PKHeX.Core/Saves/Substructures/BVRequestUtil.cs @@ -0,0 +1,72 @@ +using System; +using System.Diagnostics; +using System.Linq; + +namespace PKHeX.Core +{ + public static class BVRequestUtil + { + public static string GetSMBattleVideoURL(string code) + { + code = code.Replace("-", string.Empty); + Debug.Assert(code.Length == 16); + var video_id = StringToUInt64(code); + if (video_id == uint.MaxValue) + return null; + return $"https://ctr-bnda-live.s3.amazonaws.com/10.CTR_BNDA_datastore/ds/1/data/{video_id:D11}-00001"; // Sun datastore + } + + private const ushort INVALID = ushort.MaxValue; + private const string _01IO = "01IO"; + private const string _WXYZ = "WXYZ"; + private static ushort CharToU16(char c) + { + if (_01IO.Contains(c)) + return INVALID; + int index = _WXYZ.IndexOf(c); + if (index >= 0) + c = _01IO[index]; + if (c >= '0' && c <= '9') + c -= '0'; + else + c -= '7'; + return c; + } + + private static ulong StringToUInt64(string s) + { + // First 4 characters act as the checksum + ulong v1 = 0; + ulong v2 = 0; + for (int i = 0; i < 4; i++) + { + var c = CharToU16(s[i]); + if (c == INVALID) + return INVALID; + v2 = (uint)(((v1 | c) >> 27) | (v2 << 5)); + v1 = (uint)((v1 | c) << 5); + } + var crc = ((v1 >> 5) | (uint)(v2 << 27)) >> 4; + crc |= (v2 >> 5) << 28 | (v2 >> 9) << 32; + + // Last 12 characters act as the file ID (returned value) + ulong val = 0; + for (int i = 4; i < 16; i++) + { + var c = CharToU16(s[i]); + if (c == INVALID) + return INVALID; + var v14 = val | c; + val = (val & 0xFFFFFFFF00000000) | (uint)(val | c); + if (i == 0xF) + continue; + val = (uint)((val >> 32) << 5) << 32 | (uint)val | (v14 >> 27); + val = (val & 0xFFFFFFFF00000000) | (uint)(v14 << 5); + } + + if (SaveUtil.CRC16_CCITT(BitConverter.GetBytes(val)) != crc) + return uint.MaxValue; + return val; + } + } +} diff --git a/PKHeX.WinForms/Resources/text/changelog.txt b/PKHeX.WinForms/Resources/text/changelog.txt index 1bf0d611c..a0a4952bd 100644 --- a/PKHeX.WinForms/Resources/text/changelog.txt +++ b/PKHeX.WinForms/Resources/text/changelog.txt @@ -1,7 +1,37 @@ PKHeX - By Kaphotics http://projectpokemon.org/pkhex -17/09/22 - New Update: +17/10/17 - New Update: + - Legality: + - - Fixed: Gen4 Cute Charm PIDIV detection for species that change gender ratios upon evolution (Combee etc). + - - Fixed: Gen6/7 Traded eggs change the origin version to the hatcher's version when hatched. Updated affected logic. + - - Changed: Gen2->Gen7 and Gen2->Gen1->Gen7 transfer detection & checking improved. + - - Changed: Another round of legality check updates. Thanks (so many different users)! + - Added: Gen1 Stationary Encounter rebattle editor. + - Added: Gen2 RTC Reset Key can now be calculated by clicking the RTC Save Editor button. + - Added: Gen3 Roamer editor. Thanks BlackShark! + - Added: Gen1-3 Japanese item translation. Thanks smileynation! + - Added: Gen1-3 German main series Item translation. Thanks Korados! + - Added: Batch Editor can now use $suggest for HyperTrainFlags. + - Added: Checkpoint (homebrew/cfw save reading) app auto-detection (like JKSV). Thanks sora10pls! + - Added: Can now toggle all mystery gifts in save file Used/Unused in the Mystery Gift save editor. + - Fixed: Gen1/2 Japanese Nicknames/OTs are no longer incorrectly recognized as Korean. + - Fixed: Gen1/2 50/50 gender detection for IV_ATK = 7. Thanks StarFisherX! + - Fixed: Gen1/2 character encoding issues. Thanks wwwwwwzx & theSlayer & Afepoke & smileynation! + - Fixed: Gen2 TM/HM pouch now loads/saves correctly. Thanks fattard! + - Fixed: Gen2 G/S Korean Save Files can now be saved. + - Fixed: Gen2 Unown alt-form now transfers correctly ->7. + - Fixed: Gen3 GC languages are now interpreted correctly. + - Fixed: Gen4 transferred eggs from HGSS special locations no longer reset to Faraway Place. + - Fixed: Current Poketch app now reads from the correct offset. Thanks sora10pls! + - Changed: Increased form loading speed (translation now translates controls faster). + - Changed: Folder browser now prioritizes available folders (sorting them to the top). + - Changed: Internal refactoring for pkm loading to tabs to standardize loading routines. + - Changed: PCD now caches the gift PKM for increased speed (Mystery Gift database or legality checks). + - Changed: Gen1/2 save file version detection improved (can now differentiate RB from Y, and VC from emu). + - Changed: Optimized crc method for faster save detection & saving. + +17/09/22 - New Update: (36505) [734332] - Added: Gen2 G/S Korean Save File/PKM editing support. - Added: Gen2 transporter code for pk2->pk7 (hypothetical). - Changed: Gen1 Shininess correlation changed to match the updated (correct) IV relationship. diff --git a/PKHeX.WinForms/Resources/text/version.txt b/PKHeX.WinForms/Resources/text/version.txt index 8105acdd2..114c6e5fd 100644 --- a/PKHeX.WinForms/Resources/text/version.txt +++ b/PKHeX.WinForms/Resources/text/version.txt @@ -1 +1 @@ -20170922 \ No newline at end of file +20171017 \ No newline at end of file