Commit Graph

11277 Commits

Author SHA1 Message Date
Ka-n00b
80041ae410
Update const_e_es-419.txt 2026-05-08 12:53:59 -04: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
Kurt
cc7708e9d4 Misc fixes
Apply relearn moves when static8=>pk8 for dlc2 horses
Fix tera import regen; the PKH=>PK9 is correct, this rejuv was just undoing it.
2026-04-24 17:50:17 -05:00
Kurt
3d7a371395 Gen3: encounter legality tweaks
Gen3-5: Egg (breeding) requesting shiny now loops to match criteria.
Gen3: Add evolution nickname bypass for trash byte application
Gen3: Fix japanese OT prefill check from not actually working
Gen3: Add missing Voltorb encounter (was superseded by Wild slot, but aggressive checks since added).
2026-04-22 23:37:11 -05:00
Kurt
8a1c364207 Add threshold for transparent pixel handling
Artwork Pokemon Sprites have artefacts when rendering Sprite Glow due to them having small-value ARGB pixels. PKHeX was originally designed with the assumption of pure pixels, and not blurred edges from downscaling.

Co-Authored-By: abcboy101 <16735361+abcboy101@users.noreply.github.com>

#4785

#4785
2026-04-22 22:59:00 -05:00
Manu
0a1e955007
Handle HOME ZA gifts (#4786)
* Handle PA9 <-> PKH IsAlpha conversion

* IsHomeGift checks

* Read Ribbons, Scale, Height and Weight from HOME cards

* Extended legality checks
2026-04-21 22:31:59 -05:00
Ka-n00b
e3fd457272
Update Translations (#4784)
* Update const_oras_es-419.txt

* Update const_oras_es.txt

* Update flags_oras_es-419.txt

* Update flags_oras_es.txt

* Update flags_oras_ko.txt

* Update flags_sm_es-419.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 lang_de.txt

* Update lang_ko.txt

* Update lang_fr.txt

* Update lang_zh-Hant.txt

* Update lang_fr.txt

* Update lang_it.txt

* Update lang_fr.txt

* Update lang_ko.txt

* Update lang_es-419.txt

* Update lang_es.txt

* Update lang_es.txt

* Update lang_es-419.txt

* Update lang_it.txt

* Update lang_ko.txt

* Update lang_es-419.txt

* Update lang_zh-Hans.txt

* Update lang_zh-Hant.txt

* Update lang_zh-Hans.txt

* Update lang_zh-Hant.txt

* Update lang_ja.txt

* Update lang_de.txt

* Update lang_de.txt

* Update lang_es-419.txt

* Update lang_es.txt

* Update lang_de.txt

* Update lang_ko.txt

* Update lang_de.txt

* Update lang_es-419.txt

* Update lang_es.txt

* Update lang_de.txt

* Update lang_es.txt

* Update lang_es-419.txt

* Update legality_es-419.json

* Update legality_es.json

* Update lang_de.txt
2026-04-21 01:17:41 -05:00
Kurt
08178f70fe Fix g1 outsider trade evo message
https://projectpokemon.org/home/forums/topic/67931-bug-report-transferring-haunter-from-red-save-file-to-blue-save-file-giving-error/#comment-300058
2026-04-19 22:08:44 -05:00
Kurt
75e2a7a497 Rearrange tab indexes to follow visual
Closes #4781
2026-04-17 23:10:10 -05:00
Ka-n00b
516cc25d91
Update Translations (#4782)
* Update legality_de.json

* 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 lang_zh-Hant.txt

* Update lang_en.txt

* Update lang_fr.txt

* Update lang_it.txt

* Update lang_de.txt
2026-04-17 22:50:57 -05:00
Joel Suárez
4007eb7ca8
Battle Chateau rank editor for XY trainer data (#4780)
Directly edit Rank and Points
Translated rank titles
2026-04-17 22:50:25 -05:00
Kurt
452c8b5b81 Misc tweaks
SAV9ZA: Fix pc data import
SAV9ZA: More metadata writing for party; only write first `01` for non-basepatch saves.
2026-04-17 22:26:15 -05:00
Kurt
ee79ba2f61 WC9: Permit 255-all hisuian zoroark size
HOME misapplying PLA's size fixing, fun. Seems it was fixed in 4.0.0 (after 3.2.1?) or server side. A last-minute redeem=>deposit was "fixed" to 255, so the full date range of the card is allowed to be mutated.
2026-04-16 00:36:38 -05:00
Lusamine
dfcd86d950 Replace colon in French translation
Colon was previously removed because the label is too long, but it is still too long. Better fix would be to realign the labels (tbd).
2026-04-15 22:00:28 -05:00
Ka-n00b
c58981e365
Update Translations (#4776)
- Updated and revised the encountered Ground Tiles for generation 4 to match up with English in all other languages.
- Update Event Constants for some Spanish and Korean games.
- Additional translation additions, revisions, spacing adjustments, and typo fixes.
2026-04-15 21:49:36 -05:00
Kurt
2f9512e33b Misc tweaks
Fix box export (individual files) not including party data in the bin. Previous behavior would have 00'd party data if not force-calculated. Just calculate party stats if not present for the format. Log Database entity as party format, just to avoid using the Stored format size.
Revise gen2 odd egg declarations to group shiny eggs together, and enforce the Shiny property for object filtering. If IVs are specified, then Shininess property needs to be provided (rather than "random" which is untrue).
Simplify some logic paths for trade1/trade2. Extract some of the nuance of transferred Hiragana Dugtrio so the unit test is xref'd nicely.
2026-04-15 21:49:07 -05:00
ry
234f402beb
update odd egg IVs (#4777) 2026-04-14 15:40:14 -05:00
Kurt
021b93b87f HT lang: allow LATAM iff 9a
also allow WA9 latam lang (get/set was defaulting to english which probably matched anyway)
add a sanity check to TryGetSpecies which was only used by Gen1 with a hardcoded language ID. maybe someone will use it in their own project, might as well prevent an exception.
2026-04-12 10:20:23 -05:00
Kurt
227b9aaf13 Misc transfer regression for x=>SV 2026-04-11 20:16:12 -05:00
Kurt
2ece772735 Misc tweaks for Z-A slot presence
Not really an issue cuz the game sets them to `0` or `1` on startup, but clearing boxes/slots should match runtime behavior. livehex after clearing boxes can result in slots that don't update until the game is rebooted. no more ;)

should probably refactor the API a little better to avoid virtual spaghetti
2026-04-11 19:47:40 -05:00
Kurt
2cb62f7aa4 Update 26.04.11 2026-04-11 18:53:56 -05:00