protonscr

東方天流宮 ~ Heavenly Gathering of Clouds Demo

protonopen appid 4840440Game compatibility - Unofficial
ValveSoftware/Proton#10017 · opened 2026-07-30 by williewillus · updated 2026-07-31 · 3 comments · github · game page · search this game
Wwilliewillus 2026-07-30 github

Compatibility Report

  • Name of the game with compatibility issues: 東方天流宮 ~ Heavenly Gathering of Clouds (Demo)
  • Steam AppID of the game: 4840440

System Information

  • GPU: AMD Radeon 780M
  • Video driver version: 26.1.3-2
  • Kernel version: 7.0.13
  • Link to full system information report as Gist:
  • Proton version: Default (but also see below)

I confirm:

  • [x] that I haven't found an existing compatibility report for this game.
  • [x] that I have checked whether there are updates for my system available.

Symptoms

  • Player shots do not collide with any enemies, so enemies cannot be killed
  • Enemy bullets do not collide with the player, so the player cannot die

Reproduction

  1. Start the game
  2. Press Z repeatedly to start a game with the default shot type on Easy difficulty
  3. Hold Z to fire and note that no enemies are killed
  4. Run into a bullet (note: do not run into enemies) and note that the player does not die
  5. Repeat in Windows and observe that the above behavior does not happen

Extra info: I tested a different game (https://www.bulletforge.org/u/naudiz/p/dong-fang-bao-tian-jing-treasure-castle-labyrinth) that uses the same bullet hell engine on Proton 9, GE10, and 11, and it also exhibits the same problems, so I think it's a WINE bug. The engine code can be seen here for reference: https://github.com/Natashi/Touhou-Danmakufu-ph3sx-2

Wwilliewillus 2026-07-30 github
VVoidCounsel 2026-07-30 · hidden on GitHub github

Both directions failing completely is a key signal.

If hitboxes were just a bit off, you’d still get occasional hits. A total miss rate both ways means every intersection test is seeing a degenerate case — most likely collision extent stuck at zero (or never applied).

Most graphics engines start hitboxes at zero or uninitialized and then set radius/width when the object spawns or the frame updates. If that write never happens under, or the value is always read back as zero, then every distance check is against a point of size zero. Two points almost never coincide, so:

  • shot vs enemy → no hit
  • bullet vs player → no hit

Same shared zero extent on both sides. That would explain why both directions die together under Proton while it works on Windows.

Same failure on another ph3sx engine game across Proton 9/GE10/11 puts this most likely in the shared engine path, not this demo. Engine source: Touhou-Danmakufu-ph3sx-2.

@williewillus — on the other ph3sx game you already tested (the one you can edit):

  1. In script init, add: SetIntersectionVisualization(true);
  2. Run under Proton and start a stage.

That draws all hitboxes (green player, yellow enemy, red enemy shots, blue player shots). If those circles are missing or have no radius, the extents never got applied.

Ssimifor 2026-07-31 github

@williewillus for the time being you can try proton 8 which has bullets working on both ends

Nothing extracted yet.