From 4877c637502c94a6dedf2af4b644c49d4e51f345 Mon Sep 17 00:00:00 2001 From: Kurt Date: Wed, 11 Oct 2023 20:12:51 -0700 Subject: [PATCH] Update 23.10.11 Add sizes for 2.0.2 Add crossover Unown-C location for PLA - Closes #4031 --- Directory.Build.props | 2 +- .../Encounters/Data/Gen8/Encounters8a.cs | 1 + .../legality/wild/encounter_go_home.pkl | Bin 117560 -> 117916 bytes .../legality/wild/encounter_go_lgpe.pkl | Bin 26432 -> 26472 bytes .../Saves/Access/SaveBlockAccessor9SV.cs | 1 - PKHeX.Core/Saves/Util/SaveUtil.cs | 52 +++++++++--------- PKHeX.WinForms/Resources/text/changelog.txt | 13 ++++- 7 files changed, 41 insertions(+), 28 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 764ed87b77a..c8a4aa3d0c0 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,6 +1,6 @@ - 23.09.25 + 23.10.11 11 enable en diff --git a/PKHeX.Core/Legality/Encounters/Data/Gen8/Encounters8a.cs b/PKHeX.Core/Legality/Encounters/Data/Gen8/Encounters8a.cs index 94a113bb972..9b0ee669523 100644 --- a/PKHeX.Core/Legality/Encounters/Data/Gen8/Encounters8a.cs +++ b/PKHeX.Core/Legality/Encounters/Data/Gen8/Encounters8a.cs @@ -75,6 +75,7 @@ internal static class Encounters8a new(201,027,25,U) { Location = 006, Method = Fixed }, // Unown ? // Future updates will handle crossovers better. + new(201,002,25,U) { Location = 010, Method = Fixed }, // Unown C (Coronet Highlands) new(201,017,25,U) { Location = 009, Method = Fixed }, // Unown R (Cobalt Coastlands) new(201,026,25,U) { Location = 099, Method = Fixed }, // Unown ! (Arena’s Approach) new(201,026,25,U) { Location = 141, Method = Fixed }, // Unown ! (Icepeak Arena) diff --git a/PKHeX.Core/Resources/legality/wild/encounter_go_home.pkl b/PKHeX.Core/Resources/legality/wild/encounter_go_home.pkl index dea8d85a68f2549c0c6ca46bfd236bfe1fead172..545111ed4064f6213287040a22864fdf40147ab8 100644 GIT binary patch delta 4951 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 SpVF59d)_+s9Q@#by8C~@bOZGO delta 4616 zcmZA4adgww6~OWP+Cl>an?ba7#1f!tk$_RFM2(oa=(1TQXr0wn39d@f0vT4Vh$gTK z@mM92N`gj=Ql)6cXw$XRAW;LYnz`ya7q#2sStfOMGuyf?o0;1;9FNTX@%iPK-|xNq z?z{J;Xn0ro;LdW->h+(MCM!geIuV&A(lc9RL@%O0K}1_6k}o<@q+^aq6ysq=#Ni=Q{vD}I_#@{Bg>2~@b zyPfRsVBtGiY@b#t!;>FI6boN(nA&oks;f1cf8G|GZSFA$`U!wG#qEkiF{0~q8WLtf?{F*L^MImU_(u%QI~cP7{Y zVz9r;89?SWD)2hNl9cxlfr}0^3C%;C?;jbt&#vy6`NFk2a_bDGtAJ9`wqTxf{ zp=OMYKz_}pVEhe*;dGLNiNzW{Tp=vgZ zq7A)p>y=oKSJHI?aVmLV#Tq9v_nS(zb69JRhrtFVrjwM!V6Rq^Kpw4gNdPvZk_fEx zluRNspTG;07;8uXZ6`DT6z0Hws*(_lwJZwVLM2UzqjQmxmc>-)bUsmLrV1V|6R@1Y z0HmNjlR*d}jheHRG-D9jIwb~dg7It?L<>3*#VGQyoTDUHw3N9PDt9h1&m(zg&*wcH z@PvzBtV~4b1(XLdq%a0q#tt!#rVF`8C(L8Kt5%W^s*Hg`U`agLYla@2k$>$1!!*B(zB=f5ngz(iIoJNwkhW1=b*-=3452yr2 zP}4+P5QpVDB^{9Kxkn7koN`91P8r z5N(Jcg*@yxk}PuQyon@NvluKb#3))r?{6VKk{&LuR;(oma_b1{=Ke>V3)nVrkdVLx zbhnZOS`dS#jkX|+aaeC-aYPWsDDp7e&PL$4gVv#~oeIIDy^{sdvyq+O#V*jYiQsVF z%|L_@M+Q~*kU2J?3xmkQOeH&zhRMs%5~Hwg=1gH26VPoTF8s)Cq5tL|(+@)<8Y z5JDV=dl?M(R^Dyn9#uXPhUPw!Ma}&r*GUx~F7_i=y_Mgg@kCc+CpVn{>R&(91lbRdp#Xn(?v(Eu+(NFoR40M&vg#wCeSXa_l! za3hXU7=Oy&cZ85f<4e4U4-q6W4(-b%jApc<17XCFLKX$+>kcZ|~{?S1r-0;GW2-48K#yYQg$d;Qr` zbw*%;ZFZn@Q76w&ES>Fpaf>E@U5AAAxRyL?%x$nwD2J=+7Z<=L+uPT~J0q$IF@ z&jWpJD{fj?BGQ-L_|gnM13g>cJ#FgrBjwYudFD*6x}$e`u9Zjc=5Vb(ddIZhZ5!r% z6}GQ+Pg)yrM&Bz2G{3N;a#k^m&8ocgNO=Xk{O@57Dtvgvn*5sY>pAcLocHbYY-C|JQhQm+ zw?k8Jwm>=#Y=xA@^jh;OZgXAhwnIh}`l&((yjR!>H6^;NQEmrR6-}6_QAKxJr*IdP zcEbmyyQ%Pb4=gFS7d~o1`F#c{8oF^mv{X0%@uWp5m{aA*UE74PdkskQ2XvS_8o`4zUPTHL&PQe$YvM{W-r`2o78ACLqcn-1} z($t^lvoNl&=gc^7#sw#O(FO zf7MNkZ`pmnmsaz(`|j9%36@nJutP1YIOySbtt~s5d%CX&PDo9S3_)khuhK&o9>Jo< z9z$%{!Y6KMyj$^W)7s$2n$3D1)E8ruja>VS*vi$u*XNVHL7NZwsYdE;$+`di-snhe b=n7W-4XFl=RNtqK|K1Iq9LP4p!T9>$stJYB delta 632 zcmX}pKWq|l7{>93h8PBorqYTE6_Hv5R5X;LBBG^A=&7h^5K+;#yD=TuaA0s?AUOsH zMh6E>OmJWzhD3)B4Y`4_Lk9;2ho%!lhkjYSkn*=W;Hb{S!kV- z!Y*kH|7qz1niwK;hWD_al_IF&FVb$Q4X;P~4A&fc5I-kX;P8@(bvVwm4_=>?yCD5Q z*srSk^U^=WFG@eLi_`)^a0FO*N!mj?$bCq1hovsuSEM|?!Ese8;b=rEV1&Rmvf#Z= z77|f17NxI<#-vXe#i~@ZByD4iKXK{A4Z1?$CS7Cm7KOo?kPI|#BT2{|LePd%Obr<{ zC)aoB8ohgDER&Iz$}1FnU#g?>fXoaNsAj1cL-bd9Xt3!aV}3+1N{^WUj2x9eq4THw znr9S~r&x5Kv+f1K1!)I~mwXUA2o(9)E4nU82NSRHh9cjRiBwtgSezp7c!90=Ok<7T zf%*muI^U=Er_JBKlV)$GJ|%TBvo)t(9Htda^1yV3tpE2%Br3F-t;=6JR`{c5vcbsy PI&M0PiOF@Y=sI=?|K@s< diff --git a/PKHeX.Core/Saves/Access/SaveBlockAccessor9SV.cs b/PKHeX.Core/Saves/Access/SaveBlockAccessor9SV.cs index 06aca16104e..ef31b0b8ae3 100644 --- a/PKHeX.Core/Saves/Access/SaveBlockAccessor9SV.cs +++ b/PKHeX.Core/Saves/Access/SaveBlockAccessor9SV.cs @@ -1,5 +1,4 @@ using System.Collections.Generic; -using System.Runtime.CompilerServices; // ReSharper disable UnusedMember.Local #pragma warning disable IDE0051 // Remove unused private members #pragma warning disable RCS1213 // Remove unused member declaration. diff --git a/PKHeX.Core/Saves/Util/SaveUtil.cs b/PKHeX.Core/Saves/Util/SaveUtil.cs index 4e5c2d54522..c4ce1d75084 100644 --- a/PKHeX.Core/Saves/Util/SaveUtil.cs +++ b/PKHeX.Core/Saves/Util/SaveUtil.cs @@ -142,6 +142,8 @@ public static class SaveUtil }; #endif + private const int SIZE_G9_202 = 0xC8E; // Add 2 blocks (1 obj 0xC80, 1 bool) = 4{key}1{obj}4{len} + 4{key}1{boolT/boolF} + private static readonly HashSet SizesSV = new() { SIZE_G9_0, SIZE_G9_0a, @@ -155,31 +157,31 @@ public static class SaveUtil SIZE_G9_3G0, SIZE_G9_3G1, SIZE_G9_3P0, SIZE_G9_3P1, - SIZE_G9_DLC1_0, - SIZE_G9_DLC1_1, - SIZE_G9_DLC1_2, - SIZE_G9_DLC1_3, - SIZE_G9_DLC1_4, - SIZE_G9_DLC1_5, - SIZE_G9_DLC1_6, - SIZE_G9_DLC1_7, - SIZE_G9_DLC1_8, - SIZE_G9_DLC1_9, - SIZE_G9_DLC1_A, - SIZE_G9_DLC1_B, - SIZE_G9_DLC1_C, - SIZE_G9_DLC1_D, - SIZE_G9_DLC1_E, - SIZE_G9_DLC1_F, - SIZE_G9_DLC1_G, - SIZE_G9_DLC1_H, - SIZE_G9_DLC1_I, - SIZE_G9_DLC1_Q, - SIZE_G9_DLC1_W, - SIZE_G9_DLC1_R, - SIZE_G9_DLC1_T, - SIZE_G9_DLC1_Y, - SIZE_G9_DLC1_U, + SIZE_G9_DLC1_0, SIZE_G9_DLC1_0 + SIZE_G9_202, + SIZE_G9_DLC1_1, SIZE_G9_DLC1_1 + SIZE_G9_202, + SIZE_G9_DLC1_2, SIZE_G9_DLC1_2 + SIZE_G9_202, + SIZE_G9_DLC1_3, SIZE_G9_DLC1_3 + SIZE_G9_202, + SIZE_G9_DLC1_4, SIZE_G9_DLC1_4 + SIZE_G9_202, + SIZE_G9_DLC1_5, SIZE_G9_DLC1_5 + SIZE_G9_202, + SIZE_G9_DLC1_6, SIZE_G9_DLC1_6 + SIZE_G9_202, + SIZE_G9_DLC1_7, SIZE_G9_DLC1_7 + SIZE_G9_202, + SIZE_G9_DLC1_8, SIZE_G9_DLC1_8 + SIZE_G9_202, + SIZE_G9_DLC1_9, SIZE_G9_DLC1_9 + SIZE_G9_202, + SIZE_G9_DLC1_A, SIZE_G9_DLC1_A + SIZE_G9_202, + SIZE_G9_DLC1_B, SIZE_G9_DLC1_B + SIZE_G9_202, + SIZE_G9_DLC1_C, SIZE_G9_DLC1_C + SIZE_G9_202, + SIZE_G9_DLC1_D, SIZE_G9_DLC1_D + SIZE_G9_202, + SIZE_G9_DLC1_E, SIZE_G9_DLC1_E + SIZE_G9_202, + SIZE_G9_DLC1_F, SIZE_G9_DLC1_F + SIZE_G9_202, + SIZE_G9_DLC1_G, SIZE_G9_DLC1_G + SIZE_G9_202, + SIZE_G9_DLC1_H, SIZE_G9_DLC1_H + SIZE_G9_202, + SIZE_G9_DLC1_I, SIZE_G9_DLC1_I + SIZE_G9_202, + SIZE_G9_DLC1_Q, SIZE_G9_DLC1_Q + SIZE_G9_202, + SIZE_G9_DLC1_W, SIZE_G9_DLC1_W + SIZE_G9_202, + SIZE_G9_DLC1_R, SIZE_G9_DLC1_R + SIZE_G9_202, + SIZE_G9_DLC1_T, SIZE_G9_DLC1_T + SIZE_G9_202, + SIZE_G9_DLC1_Y, SIZE_G9_DLC1_Y + SIZE_G9_202, + SIZE_G9_DLC1_U, SIZE_G9_DLC1_U + SIZE_G9_202, }; private static readonly HashSet SizesSWSH = new() diff --git a/PKHeX.WinForms/Resources/text/changelog.txt b/PKHeX.WinForms/Resources/text/changelog.txt index 433d014f626..6b0bfdaa92d 100644 --- a/PKHeX.WinForms/Resources/text/changelog.txt +++ b/PKHeX.WinForms/Resources/text/changelog.txt @@ -1,7 +1,18 @@ PKHeX - By Kaphotics http://projectpokemon.org/pkhex/ -23/09/25 - New Update: +23/10/11 - New Update: + - Added support for Scarlet & Violet 2.0.2 save file sizes. + - Legality: + - - Badwords list has been updated to be more strict per latest Nintendo Switch 16.0.0 firmware. Thanks @Bl4ckSh4rk! + - - Gen9 Distribution Outbreaks now recognized. Thanks @Lusamine & @sora10pls! + - - Gen9 Crossover met location logic tweaked for better location identification in Kitakami. + - - Gen4 Pokéwalker IV spreads are now validated. Thanks @Lincoln-LM & @HappyLappy1! + - Added: Gen8 SW/SH adventure start date can now be changed in the Trainer Editor. Thansk @foohyfooh! + - Added: Gen4 Pokeathlon Points can now be edited via the Block Editor. + - Fixed: Initial program startup now notifies all plugins when a save is loaded on startup. + +23/09/25 - New Update: (100007) [7579695] - Added support for more Scarlet & Violet 2.0.1 save file sizes. - Legality: Added more Kitakami encounters (sub-zones) and basic weather mark recognition. - Fixed: Encounter template recognition regressions resolved (Gen4 Pokewalker, Gen9 static encounter scale).