Commit graph

707 commits

Author SHA1 Message Date
Kurt
28d15bb06e Permit usum met locations & add new move PP counts 2017-11-08 20:32:23 -08:00
Kurt
ab8faac55d Update legal tables with usum species 2017-11-08 20:23:06 -08:00
wwwwwwzx
9ab2938b84 Fix USUM Chinese species names encoding 2017-11-08 20:20:41 -08:00
Matt
a8000608f2
Add more USUM static encounter locations
Totems @ Heahea Beach, Island Scan.

Grovyle is Akala-Friday @ Route 5, as is Bellsprout in SM; assume locations were unchanged.
2017-11-08 22:56:13 -05:00
Kurt
115c611120 add surf to gift pikachu moveset
only gift pkm with special move
2017-11-08 19:51:04 -08:00
Kurt
da5dd5ccb3 remove usum early return for dex bit setting
I highly doubt this is causing save corruption; looked through the
disassembly and the offset ptrs are the same relative to sun/moon.
Implementation is flexible for both as gamefreak allocated enough space
in each bit array.

pokedex editor recognizes bools correctly (including for formes).
2017-11-08 19:34:07 -08:00
Kurt
93b49928a0 add lvl/egg move tables for usum
add a few met locations for static encounters, recognizes torracat with
double kick correctly!
2017-11-08 19:31:07 -08:00
Kurt
93bd974249 Add EncounterStatic data
sourced from Ultra Moon, location IDs are not known (need manual docs).
Many of these may be unused, like last gen. Will eventually remove
unused ones once crowdsourced effort finishes.
2017-11-08 18:43:55 -08:00
Kurt
0caa0dec72 Group forms with special battle formes check 2017-11-08 16:27:35 -08:00
Kurt
800ba6cf90 encounter additions
add ingame trade data
add placeholder SOS data containers
add refs to all wild encounters (pelago is same as sm)
unmark some todo's
2017-11-08 15:07:04 -08:00
Kurt
cf35adca6f Add roto blank item handling
preserve input data
2017-11-08 14:12:41 -08:00
Kurt
47058d5709 Permit loading of usum met locations to pkmeditor 2017-11-08 13:44:55 -08:00
Kurt
97dcd1a845 Add pokedex forme flag correlation table 2017-11-08 13:29:06 -08:00
Kurt
56ca5d02bc re-add newline
now boots, inventory editor now works
2017-11-08 13:12:10 -08:00
Kurt
80bedb97c4 Misc tweaks
Adds game names for languages other than english
adds z crystal sprites for held items
temp-fixes chinese pkm names (need manual translation for the new
species)
remove newline at eof
toggle back on legal item lists, add assumed Key Item list
differentiate duplicate item name strings (-arizers)
2017-11-08 13:06:20 -08:00
Michael Scire
78acb8e13b Fix save resigning for USUM, add resources for new pokemon 2017-11-08 11:31:09 -08:00
Kurt
ae773f189b add usum tutor data
one large list at static.rodata:005E6860, formatted to look like AO
table with deletions & insertions at the bottom.
bitflags are used in one large set (not 4 chunks of 4 like prior).
2017-11-08 01:25:10 -08:00
Kurt
ece66e1a02 Misc tweaks
allows loading of species > 720 lol
still nowhere near done (large task is resource acquisition)
2017-11-08 00:51:08 -08:00
Kurt
543736d568 Early rough USUM compatibility
need to dump string resources, sprites, and repoint the form list string
fetch later. tons more to do

no guarantee of any working functions
2017-11-08 00:34:32 -08:00
Kurt
9af0876352 clone cached string resources
don't share object references, need to be passed as new copies as the
array contents can be modified

need to clone on dict return to not pollute dict, and need to clone
after dict add so that the first return doesn't equal the dict copy --
this one could be on the dict add... keep returns same.
2017-11-07 17:12:04 -08:00
Kurt
d08bd25b4f always clear memecrypto sig on load
allows verification & resigning to work as intended
reverts to code prior to refactor

b1641772e6 (diff-1681616e650971296aa4b549afadd0eaL116)

cleanup suggestions for tests
2017-11-07 16:57:18 -08:00
Kurt
9ef4152736 add more xml docs 2017-11-06 22:44:51 -08:00
Kurt
6df1f97f95 early abort on altforms < 1
prior generations store 0 instead of 1 for some cases

24121553b4 (commitcomment-25445089)
2017-11-06 21:08:39 -08:00
Kurt
24121553b4 Add savegame sensitive pkm legality checking
uses the forme count of the savefile (rather than a futureproofed
same-gen forme count)
Closes #1559
2017-11-06 19:31:24 -08:00
Kurt
062684f4a6 Relocate transfer block cases to separate method
#1559
2017-11-06 18:34:35 -08:00
Kurt
9cac3738dc Add handling for mid-chain lowlvl encounter evos
haunter caught at level 20, transferred at 24, leveled once as gengar
did not allow gengar in the chain as it is assumed (incorrectly) that
gengar is evolved after transfer.

determine if the lower levels of the next step's evolution rung are
valid, using the same logic as pikachu case but to handle the other side

Closes #1564

(should probably refactor the encounter chain generator to use the base
encounter data if known, but oh well works fine and isn't a cpu hog)
2017-11-06 18:21:58 -08:00
Kurt
38989b4747 Export correct species name for verbose output
#1564
2017-11-06 18:06:23 -08:00
Kurt
0f69c1116e Add unown gen2 invalid form check
closes #1565
2017-11-06 17:13:16 -08:00
Kurt
4a6ea19a31 Cleanup 2017-11-06 17:12:59 -08:00
Kamron Batman
83e06b4436 Adds WC4 support. 2017-11-06 16:26:34 -08:00
Evan Dixon
cf4e31a67d Remove zh file in ko directory 2017-11-06 10:57:42 -06:00
Kurt
f0cfb0df23 cleanup
shuffle / fix xml doc data
2017-11-06 08:01:33 -08:00
Michael Scire
b1641772e6 Refactor Memecrypto API, Add Memecrypto Tests
Refactors the Memecrypto API to improve generalized usage.

Adds unit tests that verify memecrypto works, so that future changes
don't potentially break the code.
2017-11-06 03:24:48 -08:00
Kurt
ff4903ae04 Fix dppt trainer names
were shifted by a lang ID
closes #1558
2017-11-04 18:35:46 -07:00
Kurt
2d6b6f7095 Simplify gen7 checksum operations
don't spit out a new byte array for each block, just check with same
array

unrelated: allow pk2's to be selected from file->open when a sav7 is
open
2017-11-04 15:04:21 -07:00
Kurt
f959179e1a add more colo encounter locations
dogs had hypothetical met locations, now fixed (y u so weird cxd)
Closes #1556
2017-11-03 21:33:48 -07:00
Kurt
f48afaf12d Switch slottype to flags
simplifies some logic, adds some documentation, speeds up loading very
slightly
2017-11-03 17:14:18 -07:00
Kurt
d7300ce68f Cleanup
add amoongus route22 encounter
fix typos in comments
resharper suggestions for recent pr
2017-11-02 21:37:28 -07:00
Evan Dixon
35ed920805 Set build action of new resources
I forgot to check this when merging master into my previous PR
2017-11-02 14:06:32 -05:00
Kurt
a00f3ed894 random IVs with specified count
Closes #1553
removes duplicate logic in batch editor
2017-11-02 09:05:44 -07:00
Kurt
008605c4ff Add Gen5 BP editing to simpletrainer
a little bit hacky but exposes the values well enough.
moves the coins entry to the Badges groupbox, and makes it visible
looking like a BP editor (lol)

thanks @sora10pls for finding the offsets!
(blockinfo array isn't really used, is sorta just there for
documentation...)
2017-11-01 21:26:38 -07:00
Kurt
495eb26740 Rework colo starter PIDIV detection
force colo starters to be male only
use some c# lang features for EncounterType flags

add edge case PIDIV detection for starter gender/shiny lock scenario

adds a little documentation for those unfamiliar with the NPC PKM
generation quirks.

Colosseum Starters will now be recognized with a different PIDIV type
which is specific to them & them only.
2017-11-01 21:12:44 -07:00
Evan Dixon
7ac1a4c6df Cache resource name => manifest resouce name mapping 2017-11-01 21:47:55 -05:00
Evan Dixon
133a19a468 Fix fallback from unlocalized language file to default language 2017-11-01 21:44:35 -05:00
Evan Dixon
81e87c1a15 Change the concurrent dictionary to a dictionary
It'd be nice to be thread-safe, but I don't really expect multithreaded applications to be calling this method a lot, and I'd imagine the concurrent version has more overhead
2017-11-01 21:42:12 -05:00
Evan Dixon
29ce9a347b Cache retrieved data to improve execution speed 2017-11-01 21:34:01 -05:00
Evan Dixon
b13aae9a57 Merge branch master 2017-11-01 21:08:43 -05:00
Kurt
60e719a65a Misc refactoring
more usum prep
don't allocate empty array on every savefile creation (use linq All
comparison)
add percent seen/caught savefile properties for data analysis purposes
2017-10-31 09:24:54 -07:00
Kurt
e9cebf933c Fix headbutt encountertype fetch
future improvement can be detecting when "none" is appropriate, but for
now, whatever.
Closes #1502
2017-10-29 20:19:49 -07:00
Kurt
da9e316cd8 Add rock smash encounter type flagging
I don't believe rock smash (EncounterType 1) exists, tests at Route 19
and Vermillion yielded None & City.

Closes #1379
Opens #1502
2017-10-29 19:17:53 -07:00
Kurt
3f533399f2 Simplify slot type loading
instead of 2 similar methods, use params to achieve a flexible method
for both situations

isolate rock smash / headbutt type loading
2017-10-29 18:09:30 -07:00
Kurt
afde4514e2 Add realgam tower / deep colosseum locs
sudowoodo & gsc dogs
closes #1549

fix loading issue for abilities in gen3 format, copy the gen4
sanitization
2017-10-29 10:41:12 -07:00
Kurt
9ada593af9 add gen7 nick ot (trades)
#1249
todo usum table when appropriate
2017-10-28 23:04:02 -07:00
Kurt
d2ebb6340e Add gen5 nick/OT info (trades)
#1249
appears b2w2 is the first game with fixed nature & nonfixed PID (based
on RoC's specimens), so can't filter by PID on those.
2017-10-28 21:43:47 -07:00
Kurt
e4319fd929 Add gen3 nick/OT info
#1249
2017-10-28 19:51:55 -07:00
Kurt
2c73e130af Add gen4 nick/OT info
#1249
2017-10-28 19:02:18 -07:00
Kurt
021ecbfe47 move pkm load compat check to pkmconverter
closes #1550 , mgdb/pkmdb throw unconverted files which need conversion;
move main file load conversion to a reusable method and have pkmeditor
call it on every load.

add skip argument to ignore the conversion check (ie if the file is
loaded from an undoubtedly same type source).
2017-10-28 14:26:27 -07:00
Kurt
9d0b153eab Add egg hatch suggestion for b2w2 2017-10-28 14:00:44 -07:00
Kurt
a401db608e Split trade encounter nick/OT verification methods
#1249
2017-10-28 13:15:51 -07:00
Kurt
0e9960909b Refactor encountertype check to bitflags
#1379
need to double check none permissive later
2017-10-27 23:57:21 -07:00
Kurt
52b2fd2778 Add fullwidth 0-9 for kor tables
since _0 and _B are the same, just share a reference instead of separate
tables with same values.

Closes #1548 , thanks @host1126 !
2017-10-27 16:30:02 -07:00
Kurt
f6927e4fe5 Add gen2 KOR localization exceptions
Closes #1547
Thanks @host1126 !
2017-10-26 20:37:11 -07:00
Kurt
c2cf824afd Fix {0xE8, "췄"} - {"츄", 0xF2} KOR swap
that's silly lol
#1547
2017-10-26 20:18:32 -07:00
Kurt
00a4c1adf5 Add multilang c/xd ingame gifts
save space by just using a loop
closes #1529 , pokespot proc discussion relocated to associated issue
(as previously noted in comments)
2017-10-25 21:53:55 -07:00
Kurt
a6ef105544 Update gen3/4 encounter generators
revisit for simplification now that EncounterTrade matching is more
precise (PID required to match).

#1249
2017-10-24 22:25:52 -07:00
Kurt
59319a614a Add PID values for Gen3/4 ingame trades
#1249
2017-10-24 22:24:29 -07:00
Kurt
8c2dcb2dd3 Use generation specific species name
nickname resetting should use the generation specific value
2017-10-24 20:59:58 -07:00
Kurt
8a84f63fcb Add usum special tutor bitflags
( ͡° ͜ʖ ͡°)
2017-10-24 19:59:46 -07:00
Kurt
c60fee85b2 fix pk2 korean nickname set
closes #1544 , thanks @host1126 !
2017-10-24 18:57:28 -07:00
Kurt
9bbd7c6551 Save all 5 korean OT characters
Closes #1545, thanks @Bl4ckSh4rk !
2017-10-24 18:49:51 -07:00
Kurt
933bfba8e1 Misc cleanup
check gen2 stadium names, use pkm.Japanese when favorable
2017-10-24 18:27:40 -07:00
Kurt
69cf1eaa9c add more pkhex.core xml documentation
adds a bunch of documentation useful for those unfamiliar with the core
library
2017-10-23 23:12:58 -07:00
Kurt
a46e56c917 Add xmldoc for mystery gift class names
refactor pattern checking to simpler representation, add null abort when
extension is not provided.
2017-10-23 15:45:58 -07:00
Kurt
60562fb44e Use empty enumerable when appropriate
no allocation == no pressure for garbage collector
2017-10-23 15:44:01 -07:00
Evan Dixon
9e980f4a1d Use manifest resources for string lists instead of the resources file 2017-10-23 13:18:44 -05:00
Kurt
a03ac10fc5 Misc refactoring
no functional change
2017-10-22 23:26:37 -07:00
Kurt
515a694afa Add LanguageID enum
no functional change, just less-magic-numbers for easier to understand
src
2017-10-22 21:01:08 -07:00
Kurt
44c80bd722 Exclude light ball pikachu from gen1 species setter
Thanks Dunsparce!

https://projectpokemon.org/home/forums/topic/41880-yellow-version-pikachu-editing-bug/

non-functional change but fix misuse of gameversion checks (used X/Y
instead of YelloW)
2017-10-22 17:11:48 -07:00
Kurt
42d1c252ee Enhance gen1/2 language detection
Closes #1540 , check for german only characters (gen1/2 can trade
between resulting in only OT being checkable). May be worth changing the
german check to return an int instead and check for other language
specific values.
2017-10-22 16:52:46 -07:00
Kurt
096f6bbd18 Add RANDY Gen2 ingame trade
closes #1538

rename pid deferral to pidiv deferral for clarity
2017-10-22 10:41:27 -07:00
Kurt
c5b0ed6c35 Move encountertype deferral to main generator
gen4->gen5/6 electrode will match static & wild slots, but deferral only
defers within the same IEncounterable group.
2017-10-22 09:42:15 -07:00
Kurt
3970b177af Fix kor table 0x5 0x30-3A swaps
pls no more
2017-10-22 09:27:00 -07:00
Kurt
cc2e379880 Fix kor table 0x5 0x10-0x20 swaps
there's still more in the 0x5_30 region
y u rong bulbapedia
2017-10-21 19:05:38 -07:00
Kurt
528593b59e Disallow crystal tutors if VC 2017-10-21 19:01:23 -07:00
Kurt
791a41b1a7 Fix KOR encoding table off by 1
Closes #1534
Thanks @host1126 !
2017-10-21 10:32:08 -07:00
wwwwwwzx
0820059adf Fix Gen3-5 MaxEV per stat 2017-10-21 01:06:25 -07:00
Kurt
39279a7ad4 Add VC transfer checks
checks were previously only performed when finding the encounter, once
found, the GB encounter was validated. the transfer encounter is derived
after all encounter checks, thus remaining unchecked (really, only for
Locations).

Move generating logic to the generator, and double check the locations
are valid.

#1535
Thanks @DJPanda065 !
2017-10-20 21:07:15 -07:00
Kurt
00adfda6e4 Flag Hidden Ability -> other change (hacked)
Closes #1535
2017-10-20 20:10:56 -07:00
Kurt
0e24b5237e cleanup
remove redundant/repetitive match update (updateTypeInfo with Format>=7
already updates the encountermatch just prior to this method call)
2017-10-20 20:10:13 -07:00
Kurt
7c36190661 Expand IdentifierContains feature
now behaves the same as a property filtering
2017-10-20 08:47:31 -07:00
Kurt
ae0bf5c75c remove (None) egg gen4 hatch location 2017-10-19 22:00:31 -07:00
Kurt
a75614ed77 Modify eggmove fetch
fetch is exclusively done with version already known; there are cases
where version can change for eggs so it's safer this way.

version change reference (gen6+):

212a489335
2017-10-19 21:20:47 -07:00
Kurt
a561948371 Detect mixed->fixed gender incompatibility
Calculate and compare the original encounter's gender's as well.

exclude azurill gender change (only case where this can happen) by
continuing the if-else.

Add Snorunt-Froslass to FixedGenderFromBiGender.

Thanks Davil !
2017-10-19 20:56:59 -07:00
Matt
4353f39286 Ban Sport Ball 2017-10-19 14:33:39 -04:00
Kurt
6e42d01779 calculate 4->5 string dictionaries 2017-10-18 22:16:48 -07:00
Kurt
228b0e84fb Simplify some dex interaction
utilize get/set flag method calls, add xml docs for the two methods
2017-10-18 21:43:42 -07:00
Kurt
a53e8ddb7e Fix grotto mienfoo level range
Thanks paf!
2017-10-18 21:16:52 -07:00
Kurt
5a09cd9122 Add deferral case for gen6 magmar classic ribbon
use "when" for easy src code

Thanks Nessus!
2017-10-18 18:28:17 -07:00
Kurt
cd6dfceb9e Update fateful/shiny lock check gen3 wc3
VerifyFatefulMysteryGift wasn't hitting for WC3's (g.Format == 3);
simplify that branch and reintroduce the shiny check as a separate
method

Thanks Davil!
2017-10-18 18:18:23 -07:00
Archit Date
6f5d0489d5 Zygarde 50% Power construct Showdown Import fix 2017-10-19 02:45:45 +08:00
Kurt
f5b22d7873 Update 17.10.17
Update event binaries with latest from the Event Gallery
2017-10-17 23:59:14 -07:00
Kurt
886b2ef632 misc refactoring
simplification / splitting, also more usum prep and other readability
updates
2017-10-17 23:19:34 -07:00
Kurt
0cc60e6006 Change lookup arrays to hashsets
faster checking (slightly negligible but using the correct data
structure for the use case)
2017-10-17 22:06:07 -07:00
Kurt
a9261a1eec Fix starly safari ball species ID
not staravia dawg
Thanks Britty!
2017-10-17 19:23:22 -07:00
Kurt
18aa7fe100 ban more safari/hidden ability pairs
https://projectpokemon.org/home/forums/topic/41840-bug-pokemon-in-ball/?tab=comments#comment-221383
2017-10-17 09:08:48 -07:00
Kurt
c3e0d5339c Fix jp gen2 save detection
simplification commit was dyslexic on JP/EN.
20 <-> 30 (EN 20, JP 30 is the correct count)

https://bulbapedia.bulbagarden.net/wiki/Pokémon_Storage_System#Core_series_games

pk2 structure is smaller for jp (smaller strings), thus has 30 cap.
International has 20.
2017-10-16 17:33:09 -07:00
Kurt
4d91aad876 Flag gen2 egg moves when transferred from gen1
move must be removed 2->1 so cannot be permitted as egg move.

remove unreachable code (ParseMovesRelearn only is called for Generation
>= 6, and thus Format != 2).
2017-10-16 17:24:19 -07:00
Kurt
e744dcc340 Add OT too short check
apparently some people can be this oblivious
2017-10-15 18:11:20 -07:00
Kurt
f5e595772d Add more sav7 properties 2017-10-14 23:47:16 -07:00
Kurt
331d6ec6a0 Sync missing file
#1523
yeah lol
2017-10-14 16:48:43 -07:00
Kurt
fa310e8c4e Add gen6 map mirror coordinate changing
not sure what they do but the values should match
Closes #1523
2017-10-14 16:32:34 -07:00
Kurt
a11b6f4a60 add recent de strings as resource
now load instead of not at all
2017-10-13 22:40:34 -07:00
Kurt
6f69ce11b5 Merge pull request #1522 from Korados/master
German Translation for Gen1-3 item strings
2017-10-13 21:36:10 -07:00
Korados
ef6a7827bf Create text_ItemsG3_de.txt 2017-10-14 01:34:15 +02:00
Kurt
0120263bd3 Cute Charm gender ratio changing edge case
Thanks @Admiral-Fish !
2017-10-12 23:18:43 -07:00
Korados
8e5299dcae Create text_ItemsG2_de.txt 2017-10-12 23:39:47 +02:00
Kurt
43d1c7740f add event flag localization
rename files for english indication
allow script text retrieval with current language

simplify resource retrieval a little
2017-10-11 20:00:18 -07:00
Kurt
90e8f571b9 move event script resources to separate folder 2017-10-11 19:34:48 -07:00
Kurt
02c06d154b Split item cap for usum prep 2017-10-10 19:30:55 -07:00
Kurt
c3c4336d43 Add gen3 roamer editor
Thanks BlackShark!
2017-10-10 18:48:14 -07:00
Korados
8e10aab76f Create text_ItemsG1_de.txt 2017-10-11 02:40:09 +02:00
Kurt
79ede6a212 Add gen3 roamer r/w 2017-10-09 21:00:36 -07:00
Kurt
78a557c3cd misc tweaks
simplify some linq usage
2017-10-08 22:14:47 -07:00
Kurt
9f2ade5b14 Add japanese gen1-3 ingame translation data
Thanks @smileynation!
2017-10-08 18:07:49 -07:00
Kurt
b63e444e15 Add hatch location check for static egg gifts
to match mysterygift check
2017-10-08 14:48:35 -07:00
Kurt
c256786467 Change encountertype ja encoding to Unicode
UTF-8 => Unicode
2017-10-08 13:41:44 -07:00
Kurt
50dfa3603e fix 50/50% male/female gen1/2 7 ATKIV
ma boi nixhex with wrong info at smogon
http://www.smogon.com/ingame/guides/rby_gsc_stats#gender

bulbapedia is right
https://bulbapedia.bulbagarden.net/wiki/Individual_values#Gender

Thanks StarFisherX for bringing this to my attention!
2017-10-07 20:42:51 -07:00
Kurt
bee64b495b Remove gen2 auto resizing jpn saves
introduced in the start of sav2, removing doesn't seem to have any
consequences

a3250a0d56 (diff-c6536dcc6b76e8415f41529d664b75d9R24)

closes #1516
2017-10-07 16:46:09 -07:00
Kurt
4b135902f3 Allow EV yields for gen1/2 untrained
abusing daycare

https://projectpokemon.org/home/forums/topic/41788-pk2-gets-dinged-for-having-too-many-evs-at-starting-levelxp/
2017-10-07 08:23:05 -07:00
Kurt
c7dfc3d9b0 Cleanup
union / count usages
remove unnecessary stuff
2017-10-06 21:03:23 -07:00
Kurt
762b55e957 handle invalid nature stat amps
natures (>25) are invalid and causes IndexOutOfRangeException due to
being greater than the length of the array.
sanity check array length and amped stat prior to applying amplification
Closes #1515
2017-10-06 18:44:14 -07:00
Kurt
a816f4cea6 Misc event egg tweaks
Thanks Kirzi!
2017-10-05 23:13:48 -07:00
Kurt
059451d66e misc tweaks
dictionary species check, max deviation beginnings for USUM
simplification for gen1/2 pokemonlists
2017-10-05 22:37:45 -07:00
Kurt
413cfddb6c Misc tweaks
fix ranch pkm hacks being treated as valid (wrong severity)
fix xml docs relative to recent changes
move kata/hiragana charmapping to be like the Farfetch'd alias
{"'", 0xE0}, // Alias ' to ’ for Farfetch'd
{"’", 0xE0},
2017-10-04 17:21:51 -07:00
wwwwwwzx
384605b127 Misc gen1/gen2 fixes
- G1/G2 only have Hiragana letter he -> fixed Houndoom(ヘルガー) /Heracross (ヘラクロス) default name mismatch
- Fixed Stadium2 Farfetch'd move (Thrash -> Slash)
- Added VC Mew TID check
- Update Chinese legality strings
2017-10-04 00:14:50 -07:00
Kurt
b5e3b616de nickname edge case
evolved on a foreign language can't rely on stored language ID, have to
detect it
2017-10-03 19:21:17 -07:00
Kurt
6bd0e7ce72 sync remaining
pls revoke my access
2017-10-03 18:20:31 -07:00
Kurt
ea751e26b1 Convert chinese string only if species name
Resolves charmap duplications in the chinese char tables:
多边兽Z (Porygon-Z)
属性:空 (Type Null)
谜拟Q (Mimikyu)
卡璞・鸣鸣 (Tapu-Koko)

Games cannot have a nickname/OT in chinese as of current date... I
assume this will be fixed down the road
2017-10-03 18:15:15 -07:00
Kurt
df287f8fc5 Fix concatbinary load
Closes #1509

I think I had two ideas on how I wanted the method to work and
incorrectly blended the two together.
2017-10-03 16:51:13 -07:00
Kurt
b7b449e65c Add move length check
Closes #1507
2017-10-03 16:44:12 -07:00
Kurt
ec491cdd52 Fix sav2 badge/tmhm clearing
Closes #1505
Thanks @fattard !
2017-10-02 23:17:00 -07:00
Kurt
a9892203c7 Refactoring
extract pkm loading routines to smaller methods
reduce code duplication (rely on empty setters to ignore some calls)

should be much easier to understand the load/save process; the original
setup (pk6) was following the structure from 0x00-end, no point still
doing that as everything is now abstracted.
2017-10-02 23:13:40 -07:00
Kurt
b23658dee1 Misc tweaks
allow cute charm static encounters
ignore user-entry control types
2017-10-01 21:25:23 -07:00
Kurt
44c0b53852 Provide map for Z Crystals KeyItem->HeldItem
allows for loading sprites for the key items (they're smaller than the
key item but better than missingno sprite)
Closes #1504
2017-09-30 20:57:32 -07:00
Kurt
3300afdd19 More gen1/2 str encoding updates
Thanks theSlayer!

i blame rhydon
2017-09-30 18:20:23 -07:00
Kurt
593f31ff02 hashset contains over array contains
faster++, reduces some linq ToArray() allocations
2017-09-30 14:08:35 -07:00
Kurt
3552e6396c Move pidivmatches check outside secondary check
gen3/4 generators auto-defer bad PIDIVs to end, so no need to keep
skipping to the very end
2017-09-30 13:42:57 -07:00
Kurt
e6f43ff629 Add 6 gen2 jp characters to encoding list
?!ゥェォ and space
other half-width characters are already present
2017-09-30 11:18:08 -07:00
Kurt
b201ded8e8 Fix エ decapping to ェ
Both characters map back to character 0x83, but 0x83 previously mapped
back to the lowercase variant which was unlike the others.
(オ and ォ -> オ)

Thanks Afepoke & smileynation!
2017-09-30 09:37:09 -07:00
Kurt
32bbd2cee0 old cleanup
revisit comboitem providing, simplify some methods with fancy linq
probably faster as there's no use of dictionaries and Array.IndexOf
after sorting, as the values are kept with the text.
2017-09-30 01:07:30 -07:00
Kurt
1e377c2963 interpolation++
no functional change (assumed)
2017-09-29 22:58:25 -07:00
Kurt
a93a3897b3 Cache pgt/pk4 when read from gift file
speeds up repeat accessing (legality checks and mgdb opening)
2017-09-29 22:40:35 -07:00
Kurt
ce4e5f739e Fix korean Gold/Silver saving
closes #1496
2017-09-29 19:13:03 -07:00
Kurt
ed1b934374 Misc refactoring
expose some useful IEnumerable methods (sorting / bin->pkm / copy) to
simplify some common operations
change some explicit arrays to IList for flexibility
remove old memecrypto bool (no longer necessary as XP is not supported)
rename some methods for more clarity
2017-09-28 22:20:27 -07:00
Kurt
212a489335 Add gen6+ link trade egg edge case
slakoth with play rough with x/y version
why u modify game origin when hatched???
2017-09-28 17:11:30 -07:00
Kurt
14697f47d3 misc simplifications
recognize 01 01 01 00 xd saves
simplify some detection to be easier to follow, less lines is nice too
2017-09-27 23:22:41 -07:00
Kurt
2c8e2176e9 Fix gen4 egg transfer egg location
Egg Location wasn't explicitly kept, only the 'faraway place' was kept.
Closes #1498
2017-09-27 19:39:30 -07:00
Kurt
a52f88dd5c Add ice punch feraligatr non-relearn link gift move
Thanks cicciochiave!
2017-09-27 08:32:35 -07:00
Kurt
c270479bf9 Show SID7 on hover
Closes #1494
2017-09-26 23:14:29 -07:00
Kurt
8b02f05bd5 Faster crc16 ccitt
insert lenny face here
>4x faster, relative speed is higher for larger input arrays
2017-09-26 23:10:31 -07:00
Kurt
9699cdefae Gen2 egg gift bypass fix
Gen4+ static encounter eggs could slide through the VC case
prevent empty moves from appearing before suggested moves (relearnbase
being empty)
2017-09-26 20:09:18 -07:00
Kurt
8d0af0bd5b Handle all gc remapped languages
good stuff genius sonority
2017-09-26 19:56:08 -07:00
Kurt
532cee406a Add gen1 overworld respawner 2017-09-25 23:06:16 -07:00
SciresM
4272ad56ae We know what Key 9 is for (Cap Pikachu).
Refactor for Memecrypto API incoming in the next few days.

Gonna add a public overload that takes in a memekey, to facilitate Local Wireless memecrypto.
2017-09-25 17:51:17 -07:00
Kurt
bbff1e086a relax RB/Y detection when no starter chosen
value is 0 until a starter is chosen
2017-09-24 16:58:19 -07:00
Kurt
4950909d97 Add Red/Blue vs Yellow savefile detection
use the player's starter choice species value :)
2017-09-24 16:36:51 -07:00
Kurt
ccf9cd2284 Update japanese translation
Thanks smileynation!
2017-09-24 14:44:27 -07:00
Kurt
499126f9a4 Update gen1/2 move fetch
recent commit changed GetEncounterMoves to return 4 always rather than a
variable size array; double check the output for actual movecount
2017-09-24 12:39:12 -07:00
Kurt
e166f1eaa9 Show gen3+ berry analogues on gen2
also change "Reset key" to "Reset Password" to be closer to the game's
prompt
2017-09-24 12:05:36 -07:00
Kurt
c0f5166184 Fix rtc reset key generation
money into 3 bytes => sum
psypokes only does the 2 lowest bytes, is missing the high byte
Closes #1490
2017-09-24 10:59:35 -07:00
Kurt
1b354624b1 Korean move validation fixes
Korean g/s cannot access gen1 movesets, so pruning gen1 was necessary.
Rather than rebuilding the array (slow), just futureproof the entire
method to not rely on '7' (in case this code is ever used on Gen8).
2017-09-24 10:52:39 -07:00
Kurt
9ef2016d35 Encounter Learnset move duplication fix
a level 15/16 magmar has leer/smog twice in its learnset (at level 1 and
at actual levels); returning just the 4 previous learned moves at level
15/16 yields duplicates for Smog. [Smog, Leer, Fire Punch, Smog | Leer,
Ember]. By ignoring moves already added, the true movepool is acquired

also fix TradebackType getting overwritten at the end of the method (in
case of nontradeback like korean/egg)
2017-09-24 10:36:16 -07:00
Kurt
e5d7a063af Fix jpn/kor pkm collision
OTname length is 6 in JP games and 11 in kor/eng
Thanks smileynation!

https://projectpokemon.org/home/forums/topic/41689-bug-reporting-japanese-name-of-kin-gin-version-vc-jpn
2017-09-24 08:36:10 -07:00
Kurt
496cc35f97 Fix mew male gender
Closes #1489
2017-09-23 22:44:54 -07:00
Kurt
12187a5128 Expose gen2 RTC resetkey
#1487

also expose gen1 event flags (well, the crappy ones at least)
constants/event_constants.asm
2017-09-23 22:13:48 -07:00
Kurt
16341b4d91 Add SPA/ENG Oct16 Diancie collision handling
Card 0525 was accidentally uploaded without the 3 flawless IVs setting;
sometimes when the internal event binary is built, the 3IV card comes
before the 0IV.

Play favorites with the 0IV.
2017-09-23 17:11:19 -07:00
Kurt
d8c2cdb8e3 Use EnumerateFiles over GetFiles in some cases
https://msdn.microsoft.com/en-us/library/07wt70x2.aspx

iterating as an ienumerable (ie not consuming the whole collection) can
be more efficient by not waiting for the whole collection
2017-09-23 17:02:28 -07:00
Kurt
7974943bcf Refactoring
slight simplification related to #1486
2017-09-23 16:24:22 -07:00
Kurt
caf25efb46 Add RTC ResetKey calc 2017-09-23 16:04:02 -07:00
javierhimura
ea86032480 Comments and a fix for AllowGen2Crystal function 2017-09-23 21:00:57 +02:00
javierhimura
153206be6c Merge remote-tracking branch 'remotes/kwsch/master' into VC1withVC2tradeback 2017-09-23 20:46:39 +02:00
javierhimura
f3743e490b Korean language restrictions
Restriction happens because Korean can not trade with non-Korean GB era games
- There is no Korean release for gen 1 pokemon, included VC
- With no gen1 pokemon means any Korean gen2 is Gen2_NotTradeback, that means no gen1 origin nor moves are Legal
- Crystal was never released in Korean
- Pokemon Stadium 2 was never released in Korean, that means no move reminder for gen 2 korean pokemon

- Generation 4 can not trade between Korean and not Korean games, but Korean games can use the palpark with any language

Chinese language restrictions
There is no Chinese release for gen 1 and 2 pokemon games, VC Chinese games are in Japanese
2017-09-23 20:46:10 +02:00
Kurt
4a467fcf43 Fix gen5 HA checking for male only species 2017-09-23 07:58:55 -07:00
Kurt
756f9bb8dc Allow gen7 ribbons on gen2 transfers 2017-09-23 07:54:31 -07:00
Kurt
89d7d45304 Simplify isnicknamedany
for gen2 korean edge case (use lang 8), and skip lang 0 (same as lang 1)
2017-09-23 06:50:46 -07:00
javierhimura
eda97f4b49 Do not allow gen2 preevolutions for VC1 pokemon in generation 7 2017-09-23 13:16:33 +02:00
javierhimura
f129701ee6 Do not allow gen2 evolutions in generation 2 for VC1 pokemon, gen2 preevolutions are allowed 2017-09-23 13:12:03 +02:00
javierhimura
efc60c3bf8 Change VC1 pokemon tradeback initial status to allow VC2 origin, there is no way to know if the pokemon was traded to gen7 after or before VC2 release
Do not allow gen1 evolutions for VC2 pokemon without gen1 evolutions or preevolutions
2017-09-23 12:58:46 +02:00
Kurt
76adfd62bf Fix korean nickname detection
extracted the GetNonNicknamedBytes method (used in SetNotNicknamed and
GetIsNicknamed)
korean strings are variable byte width so using max string length is
insufficient
2017-09-22 20:34:29 -07:00
Kurt
6e579abfc3 Misc changes
* allow gen2 to have evolutions on gen1 when transferred to gen7
(Core.cs)
* handle korean strings on transfer slightly better (pk2.cs)
* auto-set johto location when changing game ID
* auto-detect VC saves (all have extensions with .dat)

Closes #1478 , thanks @NinFanBoyFTW !
2017-09-22 17:54:43 -07:00
Kurt
91386e330a Unmark vc2 Johto location
removes " (-)" from the johto location
2017-09-22 16:23:39 -07:00
Kurt
3a90093cb1 Add unown altform 2->7 conversion
Closes #1476
2017-09-22 15:38:17 -07:00
Kurt
a21a70ee4c Fix gen2->7 encounter move args
#1476
suicune water gun
2017-09-22 15:33:33 -07:00
Kurt
561752dd4d Update 17.09.22
Update event binaries with latest from the Event Gallery
2017-09-21 18:04:30 -07:00
Kurt
496da9e4ab Add ranch ingame trades
debut of the long awaited EncounterTradePID class

gist to generate trades from folder (using LINQPad):
https://gist.github.com/kwsch/d778f1f63e4c393e5440dfb0e14cfcc3

Closes #1458 , although Mew/Phione's PIDIV method is unknown.
2017-09-20 21:28:29 -07:00
Kurt
a938a1bd9c Add wordfilter bypass search via database
regex matching takes a lot more time and is a cosmetic / easily fixable
issue (reset to no nickname / default OT).
Add a prompt to temp turn off those checks to drastically speed up
search (no regexes done).

Fix unsanitize for gen6 (should have been >= 6, aka starting with gen6)
2017-09-20 16:46:40 -07:00
Kurt
69e8c071f7 Misc tweaks (apostrophe & vc2 pre)
farfetch'd apostrophe mapping disabled for gen5 and prior
Closes #1474

flag gen2 new moves as not obtainable if transferred from RBY (VC1) as
they must be removed before transferring 2->1.
2017-09-20 16:19:50 -07:00
Kurt
7b6d393b2f Add Hong Kong to Taiwan countries list
Closes #1473
2017-09-20 15:18:33 -07:00
Kurt
1149845db5 Misc database fixes
Initialize move array for WC3 if none are present
Closes #1472
More gracefully handle invalid version pkms in a given format (gen5
origin version pkm on gen4 format no longer throws an exception).
2017-09-20 09:04:30 -07:00
Kurt
b63e53af95 misc tweaks
no functional changes
2017-09-19 23:19:22 -07:00