• 6 Posts
  • 96 Comments
Joined 1 year ago
cake
Cake day: June 10th, 2023

help-circle





  • There’s a host app that runs on the host machine alongside Sunshine that reads your Steam library, and the Deck plugin adds an icon on each game’s banner on your Deck. When you click the icon, the plugin communicates with the host app and then automatically starts a Moonlight/Sunshine session that then starts up the game you were on. You only have to add one “app” to Sunshine and set up the MoonDeckBuddy app on the host, and then you have streaming for your entire library available.





  • The reason this works well for certain applications and not others comes down to programming language / framework and compilation optimization.

    If the application was compiled directly into an executable binary and optimized, it can be decompiled, but it won’t be human-readable. Programmers would have to delve in and manually trace the code paths to figure out how it works. Fun fact, this is how a lot of the retro game decompilation projects are happening. Teams of volunteers are going through the unreadable decompilations and working together to figure them out.

    Dotnet and Java based applications are easier, because they don’t usually get directly compiled into machine-executable binaries, and even when they do, it’s still easy to decompile them. This is because they’re both compiled to an intermediate language that’s more optimized than the original, then that IL is run by a runtime. Dotnet’s IL is called Common Intermediate Language and Java’s is called bytecode. This sounds weird, but it’s kinda cool, because it lets people write different languages without having to have a full compiler. They just have to be able to get it compiled to an intermediate language, and then the existing runtime can take it from there.