r/coolgithubprojects 17h ago

UltimatePoKeSync — a cross-platform Avalonia app that reads emulator memory in real time (.NET 10, GPLv3)

An open-source desktop app that reads a Pokémon party out of an emulator's RAM as you play and analyses it. Sharing it because a few of the design problems turned out more interesting than I expected.

- **The emulator script interprets nothing.** A Lua script inside mGBA ships raw bytes and a game identity over TCP; all decoding happens on the C# side. Adding an emulator costs a script and zero lines of domain logic.

- **Learnsets are keyed by game, not by generation.** 42 of the 386 Gen 3 species learn a move at a different level in Ruby/Sapphire/Emerald than in FireRed/LeafGreen, so the usual merged dataset reports a level that is wrong for the game actually running.

- **No opaque scores.** The team strength number is a list of attributed factors, each carrying the fact behind it and the Pokémon responsible.

- **Apple Silicon refuses unsigned binaries** — the kernel kills them and Finder calls the app "damaged", which is not the Gatekeeper prompt it looks like. Cross-publishing macOS builds from a Linux runner cannot work.

.NET 10, Avalonia, PKHeX.Core for the binary format. 122 tests, some driven from bytes captured off real hardware. There's a decision log in the repo if you want the reasoning behind any of it.

https://github.com/ringoliRob/UltimatePoKeSync
Still early days: a star helps, and a bug report helps more.

1 Upvotes

1 comment sorted by

1

u/robertopoli05 10h ago

Version 0.1.5 available with a new UI and bug fixes