Commit Graph

11296 Commits

Author SHA1 Message Date
Ka-n00b
a2bc573331
Update DPPt Event Flags + Translations (#4810)
* Update text_Games_ja.txt

* Update const_dp_en.txt

* Update const_dp_es-419.txt

* Update const_dp_fr.txt

* Update const_dp_ja.txt

* Update const_dp_ko.txt

* Update const_dp_zh-Hans.txt

* Update const_dp_zh-Hant.txt

* Update const_dp_es.txt

* Update const_pt_en.txt

* Update const_pt_es-419.txt

* Update const_pt_es.txt

* Update const_pt_fr.txt

* Update const_pt_ja.txt

* Update const_pt_ko.txt

* Update const_pt_zh-Hans.txt

* Update const_pt_zh-Hant.txt

* Update flags_dp_en.txt

* Update flags_dp_es.txt

* Update flags_dp_es-419.txt

* Update flags_dp_fr.txt

* Update flags_dp_ja.txt

* Update flags_dp_ko.txt

* Update flags_dp_zh-Hans.txt

* Update flags_dp_zh-Hant.txt

* Update flags_pt_en.txt

* Update flags_pt_es.txt

* Update flags_pt_es-419.txt

* Update flags_pt_fr.txt

* Update flags_pt_ja.txt

* Update flags_pt_ko.txt

* Update flags_pt_zh-Hans.txt

* Update flags_pt_zh-Hant.txt

* Update lang_de.txt

* Update lang_en.txt

* Update lang_es-419.txt

* Update lang_es.txt

* Update lang_fr.txt

* Update lang_it.txt

* Update lang_ja.txt

* Update lang_ko.txt

* Update lang_zh-Hans.txt

* Update lang_zh-Hant.txt

* Update text_Games_zh-Hans.txt

* Update text_Games_zh-Hant.txt

* Update lang_ja.txt

* Update const_dp_en.txt
2026-05-24 00:21:01 -05:00
Kurt
62e9e63795 pk2: fix test with impossible EVs (tyrogue evo)
25600 is the max from vitamins (was 0 EVs for every other stat)
> Prior to Generation III, effort values were based on a system of stat experience and vitamins increased a stat by 2560 EV points, but could only be used until the stat had 25600 EVs.
change it from 65535 (raw max) to 25600 (legal max).
2026-05-24 00:18:47 -05:00
Kurt
2fb38b368a B2W2: extract medal editor, add habitat list
A bit more coherent to see a list of medals rather than one at a time.
Add a few more properties, along with the Habitat List.

Remove maximize box from Join Avenue editor, consistent with other editors.
2026-05-24 00:13:08 -05:00
Kurt
10a141889f Inventory: Begin edit on cell select
Saves a click.
2026-05-23 23:54:54 -05:00
Kurt
934ec2afe7 B2W2: Add Join Avenue & editor
Adds i/o to save/import individual visitors/etc
2026-05-23 14:13:38 -05:00
Kurt
b8478a4488 Minor tweaks
Fix localization dump
LocalizedDescription duplicate property names: not per-class, so update the internal label to be more general.
2026-05-23 10:35:35 -05:00
Kurt
06c742ac78 Slot9a: overqwil defer, ignore hasTracker
https://projectpokemon.org/home/forums/topic/57375-pkhex-new-update-legality-errors-contribution-page/page/36/#findComment-300382
ZA origin can't travel to adjacent games to explore those evolution methods, so the formarg evo verification fails. Exert more preference for an exact species-match, don't settle for a Qwilfish just cuz it has a tracker.
2026-05-21 19:35:29 -05:00
Ka-n00b
78ac3e841f
Minor updates (#4806)
* Update ProgramLanguage.cs

* Update lang_zh-Hant.txt

* Update lang_es-419.txt

* Update lang_es.txt

* Update lang_es.txt

* Update lang_de.txt

* Update lang_it.txt

* Update lang_es-419.txt

* Update lang_es.txt

* Update lang_fr.txt

* Update lang_fr.txt

* Update lang_zh-Hant.txt

* Update lang_zh-Hant.txt

* Update text_Games_it.txt

* Update text_Games_de.txt

* Update text_Games_ko.txt

* Update lang_fr.txt

* Update lang_es.txt

* Update lang_es-419.txt
2026-05-19 22:59:40 -05:00
Kurt
a703b377f1 Update SAV_Misc5.cs
Closes #4807
2026-05-18 11:28:51 -05:00
Kurt
ac9285b977 Misc tweaks
Add more reflection usage attributes
Remove unnecessary casts
2026-05-16 13:24:04 -05:00
Kurt
f4622bacc6 Gen1/2: check egg EVs, check sus EVs
Also remove EXP match for Odd Egg due to Gen2 daycare EXP reset
Add notes re: Gen1/2 EV verification being not worth the *effort*.
2026-05-16 13:19:19 -05:00
Kurt
c924cfb469 Gen1/2=>7 add notes/visibility EXP-nature 2026-05-15 09:05:49 -05:00
Kurt
cf5cd280a8 Autosize event flag checkbox
Closes #4805
2026-05-13 21:10:30 -05:00
Kurt
4250bc8ae2 MysteryGift: Gen5+=>pk* respect criteria IVs
Extract a common IV generator method that has considerations for over-specified and under-specified criteria, rather than deadlocking/returning invalid IV spreads.
2026-05-13 00:03:09 -05:00
Kurt
8b635c9c8f skip strange ball giveall PLA, dishes SV 2026-05-11 22:24:41 -05:00
Kurt
90fb3d422c Gen4 Safari: add another branch for no-sync 31IV
Rearrange magic numbers for sync lock-out/lock-in for better JIT comparison (sequential range).

Previous improvement missed the "what if the lead is NOT synchronize". We already have a branch for YES synchronize. Magnemite test case solves for no-sync

Probably would be worthwhile to de-tangle this but meh
2026-05-10 15:35:45 -05:00
Kurt
4814b55403 Update EncounterDatabaseSettings.cs
forgot to save changes, 11 => 9 same as other db's
2026-05-10 15:20:23 -05:00
Ka-n00b
c66587c79f
Small Spanish RSE and ORAS revisions (#4804)
* Update const_e_es-419.txt

* Update const_e_es.txt

* Update const_rs_es.txt

* Update const_rs_es-419.txt

* Update const_oras_es.txt

* Update const_oras_es-419.txt

* Update const_oras_es.txt

* Update const_oras_es-419.txt

* Update const_oras_es-419.txt

* Update const_oras_es.txt

* Update flags_oras_es-419.txt

* Update flags_oras_es.txt

* Update const_oras_es-419.txt

* Update const_oras_es.txt

* Update flags_oras_es.txt

* Update flags_oras_es-419.txt

* Update flags_xy_es-419.txt

* Update flags_xy_es.txt

* Update lang_de.txt

* Update lang_it.txt

* Update lang_es-419.txt

* Update lang_es.txt
2026-05-10 11:11:36 -05:00
Kurt
5df994dbae database: settings to specify row count
Default rows changed from 11 => 9
min,max is now [5,20] to prevent stupid entry

ergonomics: 6 min for encdb, 4 min for mgdb, 9 min for pkmdb
2026-05-09 17:56:40 -05:00
Kurt
a384c9f666 plugin load: slightly more error tolerance
if costura load errors, don't abort loading plugins
pre-scan for constructors with no-args so createinstance doesn't throw an exception preventing any other plugins from loading
2026-05-09 17:54:34 -05:00
Ka-n00b
1e6100662d
Update Korean and Spanish translations (#4803)
* Update legality_ko.json

* Update lang_es-419.txt

* Update lang_es.txt

* Add files via upload

* Update lang_ko.txt

* Update lang_es-419.txt

* Update lang_es.txt

* Update lang_es-419.txt

* Update lang_es.txt

* Update lang_es.txt

* Update lang_es-419.txt

* Update lang_es.txt

* Update lang_es-419.txt

* Update lang_es.txt

* Update lang_es-419.txt

* Update lang_es-419.txt

* Update lang_es.txt

* Update lang_es.txt

* Update lang_es-419.txt

* Update const_e_es.txt

* Update const_e_es-419.txt

* Update const_rs_es.txt

* Update const_rs_es-419.txt

* Update const_rs_es-419.txt

* Update const_rs_es.txt

* Update const_e_es-419.txt

* Update const_e_es.txt

* Update const_rs_es-419.txt

* Update const_rs_es.txt

* Update const_e_es-419.txt

* Update const_e_es.txt
2026-05-08 07:41:38 -05:00
Kurt
f0a9c33daf Add more attributes to indicate reflection
Useful for code trimming gates to not trim interior/uses

Removes reflection use from EntityBlank, change signature to use EntityContext and Language for safest interaction.
2026-05-07 00:18:35 -05:00
Kurt
74ae08572a Add better sanity flag init
fix debug assert when calling decrypt
2026-05-06 22:22:23 -05:00
Ka-n00b
5aa1d51438
Translation Updates (#4802)
* Update lang_zh-Hant.txt

* Update lang_ko.txt

* Update lang_it.txt

* Update lang_de.txt

* Update lang_fr.txt

* Update lang_es-419.txt

* Update lang_es.txt

* Update text_gear_es-419.txt

* Update lang_de.txt

* Update lang_de.txt

* Update lang_it.txt

* Update legality_zh-hant.json

* Update lang_it.txt

* Update lang_es-419.txt

* Update lang_es.txt
2026-05-05 17:33:20 -05:00
Easy World
c7f0063b44
Update Simplified Chinese translations (#4801)
Translate several strings to Simplified Chinese (zh-Hans). Updated legality_zh-hans.json (LevelBoostNotZero) and multiple UI text entries in lang_zh-Hans.txt, replacing English phrases with Chinese equivalents for sound prompts, menu labels, buttons, and trainer fields (e.g., PlaySoundOther, SAV_BattlePass.f_MAIN, SAV_Database.B_Add, SAV_Misc8b.TAB_Main, SAV_Trainer4BR.L_PlayerID, SID/TID).
2026-05-05 06:50:15 -05:00
Kurt
b8ebbebdbc Update 26.05.05 2026-05-04 22:47:30 -05:00
abcboy101
b2bcb1db0c
Gen2: Adjust Korean string detection logic (#4800) 2026-05-04 21:25:28 -05:00
Kurt
c7d6357133 Reflow trainer9 editor
now allows for wider label text
2026-05-04 21:18:46 -05:00
Kurt
583a457818 Gen6/7: Check for missing geo history region
Also update the report to indicate which index triggered the flag.
2026-05-04 19:22:03 -05:00
Ka-n00b
3e7caeec09
Translation Updates (#4799)
* Update legality_es-419.json

* Update legality_es.json

* Update legality_it.json

* Update text_rsefrlg_00000_de.txt

* Update text_rsefrlg_00000_fr.txt

* Update text_rsefrlg_00000_it.txt

* Update lang_de.txt

* Update lang_es-419.txt

* Update lang_es.txt

* Update lang_fr.txt

* Update lang_it.txt

* Update lang_ko.txt

* Update legality_de.json

* Update legality_es.json

* Update legality_es-419.json

* Update lang_it.txt

* Update lang_fr.txt

* Update lang_it.txt

* Update lang_es-419.txt

* Update lang_es.txt

* Update lang_fr.txt

* Update lang_it.txt
2026-05-04 16:21:03 -05:00
Kurt
22083b07c5 Fix inverted shedinja affix ribbon loss check 2026-05-04 09:20:55 -05:00
Kurt
de5e983faf Differentiate HG/SS save files (no HGSS)
Pt/HG/SS store the ROMCode, but D/P do not. In D/P, every "get version" function for the ROM is inlined to return a fixed value, not from the save file.
2026-05-03 22:34:55 -05:00
Kurt
571de117fb Allow downwards traversal for evo move check
https://projectpokemon.org/home/forums/topic/67681-move-evolution-pokemon-from-gen-4-gen-7-flagging-at-level-100/#findComment-299264
2026-05-03 22:33:29 -05:00
Kurt
f2ffca749f Gen9a: fix 2^32 solver end chunk search
uint cast, was an "exclusive range" so it truncated back to 0, immediately terminating the loop and not searching the highest-end of seeds.
replace with tuple deconstruct so they stay as ulongs.
2026-05-03 00:55:13 -05:00
Kurt
55f47f0f89 Update translations for prior commit
commit: 230c1aaf60
2026-05-02 21:52:15 -05:00
Kurt
230c1aaf60 Add mirage island force appear button cheat
Closes #4791
2026-05-02 21:44:14 -05:00
Ka-n00b
7f752ebe7d
Update Translations (#4792)
- Updated Ribbons for all languages to match the most recent official names.
- Finished off Italian UI and legality translations.
- Some updates to FRLG's Spanish Event Flags.
- Other miscellaneous additions, fixes, text fitting, and improvements for other languages.
2026-05-02 18:23:37 -05:00
Kurt
d11db7a1cb Gen4: add bcc/safari badIV recursion requirement
Since BCC/Safari only roll PIDIV up to 4 times, a large amount of resulting-pk4 will still lack a 31 IV. These require the full recursion failure to be reached, so the traversal needs to travel up 4x before accepting an origin.

Reduce parameter passing by wrapping the immutables/derived in a struct.

Also clean up some level comparisons for lead:pressure boosting check, maybe DPPt's MethodJ impl was comparing wrong (didn't match MethodK). If we're above the encounter slot's level range, then it must have been pressure boosted. Don't bother checking for Grass type (the only type that can boost) as we already check that in the IsMatchExact yield.

Unrelated: Add a unit test of an obvious genned mon EVs I laughed at when scrolling thru my HG save file.
2026-05-02 10:46:17 -05:00
Kurt
fa1d34d970 Update EncounterStatic8.cs 2026-05-02 00:03:34 -05:00
Kurt
c0a81a7164 Gen4: Rewrite 31IV reject loop, inline activation
Thanks Unknown Warrior for reporting a BCC Volbeat that failed the detection. Not sure why I implemented the logic that way originally, but this cleans it up slightly. After looking at it further, it was missing a bit of tree pruning for Synchronization fails/lock-in, so we have a little bit of parameter passing hell happening. It's internal to the private methods, so I guess it's not too bad.

GPT-5.4 was given it as a first pass, of which it identified both existing bugs:
- seed was mutated in TryGetMatch before passing to the recursion
- frame reversal to origin inside the recursion (to get the seed that generates the rejected pid-iv) was off-by-one

The two fixes did allow it to solve, but it was missing the synchronize lock-in effect and sync-fail paths; no fault to GPT. Once those were added, everything worked as expected!

The frame-exit activation check was being run on the first-match of all lead candidates; due to leads consuming different amounts of calls, not all exit frame paths were checked. This resulted in a very very rare chance that a valid frame wouldn't be possible for non-sweet-scent encounters. So, those had to get inlined to each lead-check. Now, they're fully encounterable before being emitted to the "best result" aggregator at the top of the call chain. They're already preferentially emitted inside the lead-checker set (hence the weird if-else arrangement), just that separate PID-loop frames will possibly yield a less-restricted/more-common lead arrangement.

Peppers in a few more context dumps to help future me (or future AI) better maintain context. Also de-magics the Format numbers to better clarify what "0" does/means.

Unrelated: remove an unnecessary space (at the end of a line) in HomeQuirks

I'm pleasantly surprised that GPT-5.4 was able to deduce the two bugs in the implementation; I didn't provide enough context/requests, but it was quite confident in the two bugs (as it should have been -- it was correct) when I challenged it for explanation.
2026-05-01 23:32:12 -05:00
Kurt
6c409da5b1 Misc tweaks
Extract gen3 default trash to trash class & folder
remove erroneous mismatch parse add (should be a pure method)
Set all purchased flags when shift is held
Gen3 LeafGreen french name detection tweaks (both fr & lg contain `feu`)
Gen4: Disable White Flute from boosting BugContest encounters
2026-04-30 22:58:02 -05:00
Manu
67e5927bb3
Handle HOME Shiny Volcanion (#4798)
* Server date

* Only check for IV count if there's a specified Flawless value

* Calculate Shiny XOR from the correct ID32 value

* Do not require the legality checker to check for forced XOR 1
2026-04-28 22:10:15 -05:00
Coki628
52ed9177e3
Translation Improvement (#4797)
* Swap Lapras and Snorlax in flags_gs_ja.txt
* Swap Lapras and Snorlax in flags_c_ja.txt
2026-04-28 08:09:52 -05:00
Kurt
a2e0381193 Add HOME 4.0.0 scale reset quirk handling
Extract some of the HOME quirk logic to a separate class to centralize the workarounds. Thanks ILCA.
2026-04-28 01:43:53 -05:00
Kurt
b4c5bd96e6 Gen3: Rewrite IsNicknamedByUser detection 2026-04-27 23:43:43 -05:00
Kurt
72847381cc Gen3: RSE default trainer trash
Adds all possible options for all languages.
2026-04-27 22:31:57 -05:00
Lusamine
a85257da7d Additional documentation for LA cavern alpha correction 2026-04-27 02:28:49 -05:00
BtEtta
c2bb4188e5
Add a movement threshold for initiating drag & drop operations (#4794) 2026-04-26 16:49:49 -05:00
BtEtta
906cae24e8
Fix/optimisation pass on all PNG images (#4788)
Closes #4785
2026-04-25 12:22:16 -05:00
Coki628
2ff7ad40d9
Gen2 HP Up item name fix (#4787)
* Update text_ItemsG2_ja.txt
`ポイントアップ` means PP Up in Japanese, not HP Up.
HP Up is `マックスアップ`.

Updated unit tests to ensure all gen1-3 string lists are unique item names.
2026-04-25 12:16:54 -05:00