Coromon is another attempt to make a Pokemon styled game and while it is a lot of fun, the game had a major frustrating problem on Steam Deck and Linux desktop with Proton that has now been solved.
When covering it initially back in April 2022, I noted how it looked good and ran quite well until the performance would suddenly hard-drop down to 14FPS and just lock itself there. It would do it like clockwork every single time after a while of playing it (around an hour or so) and it was the same on desktop Linux too. The game was Steam Deck Verified by Valve back in April 2022, and stayed Verified the entire time which is another clear example of Deck Verified just not being thorough enough because this issue happened to everyone.
Thankfully, although rather late on it, the developer found the issue and fixed it in an update released in December 2022. So now it actually deserves the Steam Deck Verified rating.
Interestingly, the developer actually went onto Valve’s Proton GitHub page to give an explanation of what the issue was, to help others:
Developer of Coromon here, we’ve been investigating this issue for some time now and we’re finally able to pinpoint where the issue is coming from. Just dropping our findings here to help someone else perhaps fix the core issue.
The FPS drop starts happening after the
BOverlayNeedsPresent()Steam SDK API is called roughly ~130.000 times (~36.5 minutes converted to seconds * 60FPS).
The steamworks plugin of our engine calls this on every frame to determine whether OpenGL should force a render to ensure the overlay is being updated. We tested decreasing the polling rate to the
BOverlayNeedsPresent()to once every 10 frames, this delayed the FPS drop to 6 hours (360 minutes) instead of 36 minutes. This also changed the constant FPS drop into a frame spike every 10 frames, so it seems to me
BOverlayNeedsPresent()starts to take a lot of CPU time after it is called over ~130.000 times.
We tested on every available Proton version on Steam, Proton 4.2-9 & Proton 3.16-9 do not have this glitch somehow.
We’ll be releasing an update of our game soon where we decrease the polling rate even further to allow sessions of at least 18 hours without the FPS drop, but a better solution would be a fix for
So unless you’re doing a single run longer than 18 hours (what?!) you’re fine now.
It’s actually pretty great to see a developer explain things like this, I wished more did. It can help Proton developers, and other game developers for future problems.
As usual here’s a video with some fresh gameplay and a little discussion for people who prefer videos now:
You can buy it on Humble Store and Steam.