Detect Mirror Usage

In my measurements, I've found that the mirror app can take up to 11ms of time on a per-frame basis. For many games, its performance may be fine, but for action games (often running at 40+ FPS (50 in my case), with full screen redraws), it isn't usable in my opinion.

To this end, it would be useful to have a programmatic way to detect mirror usage, either to disable it as a developer, or to tweak game behavior to accommodate its poor performance.

cc @marc who touched on this a bit in this thread (Mirror App Garbled Audio and slow fps Error - #3 by marc)

Notably this idea could possibly be extended to such an API.

8 Likes

Good idea. The dev could even just write a warning to pop up on screen, like "Performance may not be ideal when using Mirror."

The dev could even offer two choices, like "(B) Play with full effects anyway," "(A) Play with reduced effects."

The user/streamer/reviewer could then proceed as they wish, and even people watching the recording later would know the situation.

1 Like

I agree on this.

I added a “low graphics” mode in my game especially for Mirror, currently I show a message when FPS is too low, but it’s not ideal.

1 Like

Great idea.

Better still would be to boost performance to compensate. Like a cpu overclock or turning off the screen.

Since the pd is powered from usb, energy use is no objection

2 Likes

Oh I agree, I just felt this would be a helpful stopgap until they can do that work.

Based on my reading of the USB spec and some napkin math, it should be achievable.

Bumping this, cc @dave

2 Likes

+1 on this. The game I'm working on now runs at 50 fps on hardware and its performance is very sub-par with Mirror. I'm considering adding a "mirror mode" option to compensate for the reduced frame rate, but even then the game does not shine running under Mirror's limitations.

6 Likes

Hmm, I wonder.
If its possible to have separate screens for both Playdate and the Mirror app.
Kinda like a proto Game Boy Advance to GameCube adapter. However, I doubt its possible to render two screens at once and plus ruins the simplicity of the Mirror app. But yes, Mirror performance is a bit... heavy. I played Boogie Loops from Season 1 and it is, extremely slow on Mirror. Mostly due to particles.

circling back on this, as my release is coming soon, and mirrors performance is quite detrimental to the experience.

is there any way we could get a way to detect mirror usage?

cc @dave @willco @james @sally

one way this could work, would be as an event we can handle in our game loop, I'd really like that approach.

2 Likes

I'd also appreciate this.

1 Like

We have logged this in our tracker; I agree it would be nice to have.

9 Likes

Circling back to this.

I just added an option to turn off background stars in YOYOZO (didn't help as I'm still clearing the whole screen every update)

2 Likes

Circling back to this one again as its become a problem for users and we would like to be able to communicate to users that mirror/the underlying firmware isn't fast enough for certain titles, so they arent just confused and frustrated.

4 Likes

Gonna give this a bumpski because it would be a really nice feature to have. In my game I track FPS and just switch to a "performance mode" if it falls below a specific target; but being able to turn it on and off immediately when the user hooks into Mirror would be way more convenient.

Untitled

8 Likes

Hey yall, this came up again from a player of @Nnnn s fantastic game, Angel Pop

Since mirror has such drastic perf slowdown, there is a concern people can utilize it to exploit the score system a bit.

Is there any way we could get some progress on this one? Its a very small feature request and its been over a year with multiple catalog devs voicing support for it.

6 Likes

I’m the player! It’s me!

Angel Pop is, indeed, a fantastic game. Thanks @Nnnn :heart:

Keeping the leaderboards fair would make it even more fantastic

3 Likes

I am not a developer, but I am a player of many of the games listed above and I really cannot emphasize enough how important this change would be. For shoot em ups in arcades, there was often a sort of push and pull of game balance built around hardware slowdown -if there were enough bullet sprites on screen, the game would slow down giving the player more time and more precise control to weave through the bullets. Remove the slowdown, and the game becomes much harder, add more slowdown and it becomes much easier. For competitive leaderboards, the games are played on identical arcade hardware with equal slowdown so nobody has an advantage over anyone else. What we see in the playdate space with games like angel pop and gun trails, is a case where the games can be played in mirror which has worse performance, but still have access to competitive online leaderboards. By introducing extra slowdown not present on console, mirror users have a slower and easier experience and are at a significant advantage over console players. Thankfully, so far it seems the highest scoring players of these games have all set their scores without using mirror, but it's only a matter of time until this gets exploited. Shmups aren't the only genre of games vulnerable here, it can potentially affect any game with a leaderboard. I really really hope panic sees this thread and at least makes it possible for games to detect mirror use and exclude those scores from online leaderboards to maintain fair competition.

4 Likes