#436

Offering patches: Steam DLC downloads, JIT shortcut fix, Vulkan/OpenGL

OpenJoWood94opened 4d ago

Hi! I’m Giuseppe. I’ve been building tooling around Madeira for my own iPhone (17 Pro Max, iOS 27), and along the way I wrote some changes to Madeira itself. Rather than keep a fork, I’d like to offer them upstream as small, separate PRs, if you’re interested. All are against v0.1.3 (4e9d45a), GPL-3.0-or-later with the Madeira Converter Exception, and I don’t redistribute builds.

  1. Steam: install owned DLC with the game (ready, tested on device)

The downloader skips every dlcappid depot today. The patch adds owned DLC depots, using the appids/depotids of the account’s license packages. Steam still decides access through depot keys, so there’s no emulation or DRM involved. DLC depots are recorded with dlcappid like Valve’s client does. A refused DLC depot never fails the base install, and Update shows up when owned DLC is missing. Tested with Isaac (250900): all 4 DLC depots downloaded, and the game reports “Repentance+ v1.9.7.17”. It only touches the Steam Swift files and docs/STEAM_LIBRARY.md. Those files derive from Jfishin’s SwiftSteam, so tell me if he should review too.

  1. JIT shortcut: never lose the “done” that turns cellular data back on

Three code paths can leave cellular data off after a launch: a failed “done” run, a launch abandoned before Wine starts, and Enable JIT used without a game. The patch keeps the owed “done” until it succeeds and adds a 90 s safety restore.

  1. Vulkan through MoltenVK / KosmicKrisp, and native OpenGL (works, still WIP)

winevulkan unixlib, a winios Vulkan driver (VK_EXT_metal_surface), and opengl32 → EGL → Mesa Zink running natively in the app. Isaac on native GL runs at about 56–58 fps on average. This needs splitting into topic PRs and a discussion about how you’d want Mesa/MoltenVK shipped. I’d like your view before going further.

Planned: Workshop item downloads (subscribed UGC into steamapps/workshop/content/, plus appworkshop_.acf).

Questions:

Are you open to PRs like these? Which would you want first? Any rules on PR size, tests (tests/host/…) or docs I should follow? For the GPU work, would you accept bundled Mesa/MoltenVK dylibs, or should it stay opt-in or external?

Thanks for Madeira. Happy to adjust anything.

Activity

2
intraducine3d ago

Current review links for this offer: #400 contains the opt-in Vulkan route; #353 covers broader graphics routes; #188 tracks Workshop. Those do not cover the owned-DLC download change or prove the cellular-data restore change is present. This offer stays open for those distinct parts. No decision to ship Mesa or MoltenVK is implied by this cleanup.

intraducine1d ago

The graphics routes offered here now have source/build integration in main through 7ed32a9b and #476.

Keeping this offer open for the remaining distinct parts. In particular, SteamAppInfo.installDepots still filters out depots with dlcAppID, so I am not marking owned-DLC downloads as implemented. Workshop remains tracked in #188. The shortcut restore offer also needs its own complete review.