Commit Graph

11433 Commits

Author SHA1 Message Date
Kurt
0e0bde1bf2 Misc pogo pkl refinements
Add flags to pkl, +2 to each entry (oh well, maybe they'll add maxIV too)
Use flags to for random met date to a more reasonable day.
Use flags to remap displayed date range to the reasonable range.
2026-09-23 10:00:59 -05:00
Kurt
fffec78498 Handle misc errors
Closes #4877
Closes #4878
2026-09-23 00:44:28 -05:00
Kurt
d6ca8af5c2 Rework GO pkl for unpacked properties and more
Slot objects now require 3 less bytes to store their properties
pkl encounters now store minIV, minLevel, BallRestrict separately from PogoType
PogoType remains as decorative, no derivations
Simplify date/day juggling, only need DateOnly day numbers.
2026-09-23 00:30:48 -05:00
Kurt
dcadc33637 Clear tooltip assignment on result grid refresh
Closes #4876
2026-09-21 14:12:54 -05:00
Kurt
892eb9e027 Relocate bank7 format checks to bank7 2026-09-21 14:12:34 -05:00
Kurt
08c27668d2 Update bank format to read the Gen7 format
my only dump was from 2016; was updated later for gen7 & usum, so that new larger format needed support too.
just auto-update the gen6 dump, nobody should have it besides a select few archivists

extra warnings:
- do not move/deposit/withdraw pokemon: the upload-format tracking will desync as it is not updated. the box-slot readwrite api is not virtualized where I can easily start doing that.
- do not read unconverted gen6 slots. the program assumes they are gen7 format already. if ripping data out, be sure to reference the format byte. once more savefile examples are looked at, maybe I can figure something out.
2026-09-20 10:41:52 -05:00
Ka-n00b
8ad201e802 Update Chinese games txt files (#4873)
* Update text_Games_zh-Hans.txt

* Update text_Games_zh-Hant.txt
2026-09-16 17:10:18 -05:00
Kurt
9c170d99c3 Add gen3/4 effort value min EXP check
Thanks sadisticmystic for the details on pporg discord:
https://discord.com/channels/343093766477053953/367479180398428170/1545931760385265694

this only really catches sloppy hacks in gen3/4 that aren't leveled up, which is pretty rare overall.
2026-09-16 00:26:55 -05:00
Ka-n00b
d2910ef85a Update Translations (#4872)
* Update legality_zh-hans.json

* Update legality_zh-hant.json

* Update text_bw2_00000_zh-Hant.txt

* Update flags_oras_en.txt

* Update flags_oras_es.txt

* Update flags_oras_es-419.txt

* Update lang_zh-Hans.txt

* Update lang_zh-Hant.txt

* Update legality_zh-hans.json

* Update legality_zh-hant.json
2026-09-16 00:09:10 -05:00
sora10pls
bf57ff1286 Add GO move remapping for GO Park complex summaries 2026-09-15 10:37:11 -04:00
Kurt
fd213a27db Minor clean
No functional change; just deleting consecutive newlines, small suggestions from resharper, and moving some logic from WinForms into Core
2026-09-13 23:39:04 -05:00
abcboy101
77dcd3a789 Update Switch badwords to v23.0.0 (#4868) 2026-09-10 12:47:13 -05:00
Kurt
556e2c142c add wcs greninja
why not
-
looks like some past gen filenames were tweaked, no functional change
2026-09-09 00:29:11 -05:00
Kurt
8819098e86 Chain breed: add gen1 tradeback considerations
ty cloudzero
https://projectpokemon.org/home/forums/topic/68229-chained-egg-moves-flagged-illegal-verify-all-pkms-button-reports-all-clean/

remarks: looks a little janky jamming it all into one "can learn" step, rather than having as a distinct transfer step. Maybe I can rework it to a 2=>1=>2 kind of step change or something, but it's a not-breed step. Works for now.
2026-09-08 23:37:24 -05:00
sora10pls
4d2181d751 Add Champions 1.2.0 assets 2026-09-08 23:41:20 -04:00
Kurt
e0e63bc878 Minor tweaks
no functional change
gen7 statics with relearn moves get generated with the relearn moves as their moves rather than with current level up
2026-09-06 22:33:43 -05:00
Kurt
5e4b757984 Add gen4 battle video i/o and quick preview
fixes extrablock validation check
probably need to separate the object from the block, but whatever works as-is.
2026-09-06 22:33:10 -05:00
Kurt
a595033bc2 Fix slot write/batch regressions
Closes #4866: Slot Set now uses default settings instead of "None" update. `SlotEditor.cs`
Closes #4865: Return entire list of party data instead of first slot. No need to filter `GetChangelogSlots`.
Resolves #4867: Update Run button enabled state when finishing the applicability scan.

Add a note about bad rand range (`.Species=$100,$200` causes an internal error when executed). We don't care if SetRandomRange fails.
2026-09-01 22:10:21 -05:00
sora10pls
e15d2467b3 Add latest distribution raid/outbreak data ♟️ 2026-08-27 20:08:21 -04:00
Kurt
74b88906e9 Update 26.08.26 26.08.26 2026-08-27 12:23:08 -07:00
Zhang Minghao
19c356c357 fix: wrong name for item finder (#4859) 2026-08-23 09:55:10 -05:00
Ka-n00b
7859a1cdca Update GUI and Crystal Event Flags translations (#4863) 2026-08-23 09:54:17 -05:00
Kurt
46a4e0c6c9 update LCRNG reversal lattice consts
https: //github.com/kwsch/PKHeX/issues/4844#issuecomment-5355902735
Co-Authored-By: StarfBerry <65578604+StarfBerry@users.noreply.github.com>
2026-08-23 09:28:03 -05:00
Kurt
c7a5ab29be Stad2: add slot compression, ignore ghost slots
Uses the slot-present count in the box data header, same logic as Stadium 1.
Closes #4861
I assume Japanese-Stadium1 has the same issue, but I cannot find a reference save file with any box slots present. The count might be at offset 0x14 based on previous documentation threads on pporg.

add ampersand escape for display, and add some suppression for roslynator error that isn't needed.
2026-08-22 13:23:53 -05:00
Kurt
ad69eae1a3 Add legality rule tweak for Battle Tower rsbox
illegal by default, opt in
It's an extremely precise exploit that can even apply ribbons to eggs; RSBOX allows mutating the party when it should be "locked" in the brief moment before the ribbons are awarded. Permitting this exploit is generally against community consensus, so it's an opt-in. Eggs will be flagged, even though the exploit can be used to get ribbons on the eggs.

ty C87H176 via pporg:
https://projectpokemon.org/home/forums/topic/68163-how-to-give-ribbons-to-legendary-pok%C3%A9mon-using-pok%C3%A9mon-box-ruby-sapphire/

I considered making this an enum setting like the others, but the ribbon API doesn't support non-boolean verdicts at this time.

also translate the new batch editor controls from the previous pull request
2026-08-21 23:38:26 -05:00
sora10pls
c0e1cc86b8 Add latest distribution raid/outbreak data 🦒🔮 2026-08-20 20:06:57 -04:00
Kurt
90b265a8f3 Add hover tooltip for Met Location ID peek 2026-08-16 16:49:33 -05:00
Kurt
c0b78e6b6a Batch Editor: undo, enhancements
if you close the form after running a batch edit, it allows you to undo
if you want to undo while the form is still up, you can reset back to the initial state
buttons only enable when sufficient progress/available slots (so it doesn't run on 0/0)
shows a live-updating count of how many pkm slots will be edited by your currently entered command
2026-08-16 02:30:29 -05:00
Kurt
2d970dde75 SaveFinder: better timeout handling
Pass CancellationToken thru and better scan drive types to see if we bother trying to access them.
Network drives and CD drives are now disallowed, which should lessen the amount of hang-hiccups on startup for some users' hardware setup.
2026-08-13 23:02:48 -05:00
sora10pls
027f2450c6 Add latest distribution raid/outbreak data 🐵💢 2026-08-13 20:07:30 -04:00
Kurt
146172f618 Minor clean
parenthesis, trailing spaces, other info-warning clean fixes
2026-08-12 22:37:31 -05:00
Kurt
c46596c09e PBR: retain party stats, recognize party size
ty Pocket Monsters on pporg:
https://projectpokemon.org/home/forums/topic/68143-bug-in-dump-box-in-pok%C3%A9mon-battle-revolution-saves/
2026-08-12 21:37:52 -05:00
Kurt
8ea0ee00ef hatch4: permit rotom's room in hg/ss
thanks Erikz12
https://projectpokemon.org/home/forums/topic/68142-hgss-invalid-cant-hatch-egg-at-met-location-rotoms-room/
2026-08-12 14:21:36 -05:00
Kurt
6169d60cfd Fix berryfix zigzagoon min seed to allow 0,1,2
timestamp sum is across hh:mm:ss, no date component.
unify xmldoc/comment references to prevent any future confusion

https://projectpokemon.org/home/forums/topic/39517-gen-3-event-generation-algorithm-research-10anniv-etc/page/16/#findComment-222113

ty Shiny Mew Trader (discord) for bringing this to my attention :)
2026-08-10 00:05:46 -05:00
Kurt
368954c7b0 Misc tweaks
no functional change
2026-08-07 12:11:25 -05:00
Kurt
0f59fd4c5a Check Egg Move combinations for valid parent chain (#4847)
* Recursive egg chain solver

Supercedes #4444
- Handles Volbeat/NidoranM specific inheritance cases
- Handles Smoochum(female-only) male father search cases
- Allocation free, result struct

Closes #4426

Removed unreachable eggmoves from gs:
no Charm for Bulbasaur
no Charm for Oddish
no Charm for Snorlax
no AuroraBeam for Staryu
no Barrier for Staryu
no Supersonic for Staryu
no LovelyKiss for Smoochum

pass a ref struct storing the result, which updates with transactions to log the verification state during the recursion.

* Print traced chain in verbose report
2026-08-07 11:34:08 -05:00
Ka-n00b
5747342f19 Update translations (#4850)
* Update flags_dp_es-419.txt

* Update flags_dp_es.txt

* Update flags_pt_es-419.txt

* Update flags_pt_es.txt

* Update flags_pt_en.txt

* Update flags_dp_en.txt

* Update flags_dp_fr.txt

* Update flags_pt_fr.txt

* Update flags_pt_ja.txt

* Update flags_dp_ja.txt

* Update flags_dp_ko.txt

* Update flags_pt_ko.txt

* Update flags_pt_zh-Hans.txt

* Update flags_dp_zh-Hans.txt

* Update flags_pt_zh-Hant.txt

* Update flags_dp_zh-Hant.txt

* Update lang_fr.txt

* Update lang_it.txt

* Update lang_es-419.txt

* Update lang_es.txt

* Update flags_pt_zh-Hant.txt

* Update lang_es-419.txt

* Update lang_es.txt

* Update lang_fr.txt

* Update lang_es.txt

* Update lang_es-419.txt

* Update flags_rs_en.txt

* Update flags_rs_es-419.txt

* Update flags_rs_es.txt

* Update flags_rs_fr.txt

* Update flags_rs_ja.txt

* Update flags_rs_zh-Hans.txt

* Update flags_rs_zh-Hant.txt

* Update flags_e_en.txt

* Update flags_e_es-419.txt

* Update flags_e_es.txt

* Update flags_e_fr.txt

* Update flags_e_ja.txt

* Update flags_rs_zh-Hans.txt

* Update flags_e_zh-Hans.txt

* Update flags_e_zh-Hant.txt

* Update text_rsefrlg_00000_zh-Hant.txt

* Update text_xy_00000_zh-Hant.txt

* Update flags_rs_zh-Hant.txt

* Update flags_e_zh-Hant.txt

* Update text_xy_00000_zh-Hant.txt

* Update flags_oras_zh-Hant.txt

* Update flags_e_zh-Hans.txt

* Update flags_rs_zh-Hans.txt

* Update text_xy_00000_zh-Hant.txt

* Update flags_oras_zh-Hant.txt

* Update lang_es-419.txt

* Update lang_es.txt

* Update lang_es-419.txt

* Update lang_es.txt

* Update flags_dp_es.txt

* Update flags_dp_es-419.txt

* Update flags_pt_es.txt

* Update flags_pt_es-419.txt

* Update lang_fr.txt

* Update lang_fr.txt

* Update lang_it.txt

* Update lang_fr.txt

* Update lang_fr.txt
2026-08-06 22:21:24 -05:00
ScarlettHaze
361f272fef Exclude same gender rival in PokeGear callers for HGSS (#4848)
Added functionality to exclude the opposite-gender rival (self) from PokeGear callers.

* Remove Bike Shop from Pokegear callers list: It's not legally obtainable you only get called once you've used the Bike enough you never get to save it.

* Exclude bike shop in caller list logic

Updated logic to exclude both the rival and bike shop from the caller list.
2026-08-06 22:20:26 -05:00
sora10pls
9be23f2043 Add latest distribution raid/outbreak data 💐 2026-08-06 20:10:37 -04:00
Kurt
18cc30d641 BDSP: move voiceless to PersonalInfo
Better there and now public for anyone to use (why would they want to check that lol)

make the Battle Frontier hashset a ReadOnlySpan;
- since the list is sorted, use BinarySearch to reduce worst case from 43 ops to 6.
- no static ctor in RibbonRules (yay no nanosecond hiccup)

that was the last static HashSet in the repo 👀
2026-08-03 17:22:23 -05:00
Kurt
76307aaa4b BDSP: Condense voiceless array
saves 0.4KB lol
no functional change

update terminology; might not be explicitly "footprint" type, more "footprint man's evaluated type"
https://bulbapedia.bulbagarden.net/wiki/Footprint#Footprint_Ribbon
2026-08-03 17:06:12 -05:00
Kurt
31b4e0a6d8 Join Avenue: fix r/w of shop type
It's stored as a 3-variable value. Decompose & recompose in the GUI.

Closes #4841 -- Raffle is values 1-10, which explains the observed behavior in the issue.
The old GUI would set [-1, 7], if modified to any selected Shop type, results in all being Raffle (incorrect behavior).

By unpacking to separate variables, the 1-321 combinations are user adjustable rather than just showing the raw value for edits. Sure the Version could be localized, and Shop Rank could be [1,10] instead of [0,9]...

ref: https://bulbapedia.bulbagarden.net/wiki/Join_Avenue#Shop_rank
2026-08-03 15:06:51 -05:00
Kurt
09977b448f SAV: update record fallback - use correct global
#4845
2026-08-03 10:39:03 -05:00
Kurt
1f6c3f3fc1 Add .Ball=$rand in batch editor 2026-08-01 17:48:30 -05:00
Kurt
2e64de8e9d ComboBox suggest: Remove dropdown on keydown
Windows.Forms quirk where it don't hide the dropdown when it tries to Suggest via the separate Suggest pop-down.
Since all comboboxes that do the databind+suggest are impacted by this, just add the event when initializing binding. There don't appear to be any reapply-binding cases where it is set to suggest (only case is Battle Revolution save select, which isn't textual entry).

Closes #4846
2026-08-01 10:05:04 -05:00
Kurt
2f9d50308b Revise savefile subversion indication in title
Ensure all have dashes at front
for multiple strings, separate out the GB/VC to a separate tag.

No longer does the program show `SAV3FRLGUGBA` instead of `SAV3FRLG-U [GBA]`, which is a little more transparent to the end user.
2026-07-31 16:50:20 -05:00
Ka-n00b
7890222343 Minor GUI translation updates (#4839) 2026-07-30 00:04:36 -05:00
Kurt
d457fb02ae Update xoro128 solver, channel IV solver
I accidentally reverted my intermediate value sum for the channel solver after I discovered the counterexample -- now with the refinements as detailed in the issue, we can proceed with many `long` => `uint`

The xoroshiro128+ solvers aren't really set up to take advantage of the eager returns; the iterator struct (not class) would have to be made heavier to store the intermediate values for a given `assume`. Probably would have to inline the methods and break out their inner Update steps. Probably not worth the hassle :)

Closes #4844

Co-Authored-By: StarfBerry <65578604+StarfBerry@users.noreply.github.com>
2026-07-29 23:35:02 -05:00
Kurt
ce08c00877 More refinements/impl of lattice reversals
#4844
not yet implemented: xoroshiro algorithmic improvements

overflow counterexample for channel IV reversal regarding s32 vs s64 noted in the github issue

Co-Authored-By: StarfBerry <65578604+StarfBerry@users.noreply.github.com>
2026-07-28 23:48:39 -05:00
Kurt
757a297f14 encdb->pa8: source shiny roll count from save file 2026-07-28 21:54:00 -05:00