Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature request: Pause without stopping emulation #17275

Closed
2 tasks done
Gamer123dsg opened this issue Apr 13, 2023 · 23 comments · Fixed by #18515
Closed
2 tasks done

Feature request: Pause without stopping emulation #17275

Gamer123dsg opened this issue Apr 13, 2023 · 23 comments · Fixed by #18515

Comments

@Gamer123dsg
Copy link

What should happen

make a check mark so that the game does not stop when the pause button is pressed, it will be useful for anyone who wants to assign the game menu and the emulator menu to one button

Who would this benefit

it will be useful for anyone who wants to assign the game menu and the emulator menu to one button

Platform (if relevant)

Windows

Games this would be useful in

ALL

Other emulators or software with a similar feature

No response

Checklist

@hrydgard
Copy link
Owner

I don't understand, you want to make it so you can navigate PPSSPP's pause menu while the game is still running behind?

@Gamer123dsg
Copy link
Author

Gamer123dsg commented Apr 13, 2023

well , yes , with a transparent background , so that the two menus are functional , a separate option

@unknownbrackets
Copy link
Collaborator

There might be a duplicate of this feature request already. IIRC, it's useful for network play, because you can't actually pause that without making the whole game desync.

-[Unknown]

@hrydgard hrydgard added this to the v1.16.0 milestone Apr 21, 2023
@hrydgard
Copy link
Owner

Hm, that's right. I'm marking for 1.16.

@UserGame3022
Copy link

Hm, that's right. I'm marking for 1.16.

So that it does not block other actions, so that you can press other keys at the same time and so that you can assign the game menu and the emulator to the same key, so that it does not block actions, with a transparent screen it is convenient.

@unknownbrackets
Copy link
Collaborator

What do you mean by press other keys? I assume while the pause menu is showing, you'd expect that the game wouldn't react to the controller anymore until it's unpaused. But I'm a bit confused by your reference to blocking actions - which actions do you mean?

-[Unknown]

@hrydgard
Copy link
Owner

hrydgard commented Jun 1, 2023

I also don't really understand, but I'll outline my idea for the feature:

  • Add a pause/play button on bottom right corner of the pause screen. If you click it to change its default state "pause" to "play", the game will continue to run "behind", and it'll also do so the next time you bring up the pause screen. The game will not receive input while the pause screen is up. This state will be preserved.
  • If any sort of multiplayer is enabled, this will be on by default. Not sure if that state should be saved or if it should even be possible to override to paused (although you can of course still do it by switching away from the emulator task on Android).

how does that sound?

@UserGame3022
Copy link

I would like it not to stop the game, and one thing was the control of the game during the pause, that is, an option that does not stop the game during the pause. So that you can do actions in the game.

@hrydgard
Copy link
Owner

hrydgard commented Jun 6, 2023

Sorry but I'm really struggling to understand you. Let's split the concepts.

Pausing means that the game simply doesn't run, it can't recieve input (though I guess you could influence the input state it'll use when it resumes).

"Menu" means that the pause menu is displayed. Receiving input here is awkward since it'll conflict with the pause menu controls.

Currently, you can have pause+menu or neither. I thought the idea was to have menu but not pause (so it runs behind, can be useful for multiplayer). Do you want pause but not menu, so you can carefully control the input when resuming? Or what?

@UserGame3022
Copy link

I want it to look like in the debug menu, but the pause menu without stopping. I would like to assign a menu in the game on ESC and pause menu to control the game menu and the pause menu at the same time.

@UserGame3022
Copy link

Just to have a choice in the settings, select the pause settings option without stopping the game. Debug menu does not stop the game such a example

@unknownbrackets
Copy link
Collaborator

I think it'd be easier to understand if you explained a specific thing you want to do.

Let me give an example. This example is just what I imagine you doing from what you have said so far.

  1. You press a button to open the game menu and pause menu at the same time.
  2. With your left hand, you press the arrow keys, which moves the cursor in the game menu.
  3. Simultaneously, you move the mouse with your right hand to select post-processing shader options.
  4. You press the X button with your nose to select a character and go into their status screen.
  5. Meanwhile, you're using the mouse to adjust different post-processing shader options.
  6. With your left hand, you press L to rotate the character in the status screen while continuing to adjust the post-processing options using your right hand.

That example is probably not what you mean exactly. I doubt you intend to control with your nose. But if you could give a step by step example like that, it would help understand. A specific game where this would be useful would help too.

It is complicated to do what you seem to be asking, so "just" is not the right word to use. It also seems like it could be extremely confusing and cause a ton of bugs. That's why there's lots of questions.

-[Unknown]

@hrydgard
Copy link
Owner

So, repurposing this issue for just being able to run the game in the background when showing the current pause menu, it doesn't fit super cleanly into our current architecture. We want the game to keep running even if you're several levels of menu deep, so the existing transparency mechanism for screens isn't the way to go.

There was another request of being able to bounce back and forth between the gameplay and somewhere deep in the menu, which I suppose can sometimes be useful, but also doesn't work well with the concept of the EmuScreen being where gameplay happens.

Anyway, within the bounds of the current UI architecture, the easiest solution for just keeping the game running behind is probably to have every UIScreenWithGameBackground essentially turn into a minimalist EmuScreen, keeping the game running but not processing inputs etc.

Additionally, a bunch of checks for UIState around the code base probably will make less sense than before.

This is a desirable feature but also seems to risk obscure breakage, so I'm going to post-pone it to after the 1.16 release.

@hrydgard hrydgard modified the milestones: v1.16.0, v1.17.0 Aug 17, 2023
@hrydgard hrydgard changed the title PPSSPP new function pause without stopping emulation Feature request: Pause without stopping emulation Dec 8, 2023
@hrydgard
Copy link
Owner

hrydgard commented Dec 11, 2023

This is now implemented. The UI is a Play/Pause button on the bottom right of the pause screen.

Though, currently the game cannot be controlled while it is behind the pause screen, which this issue originally requested.

Some more tweaks will come, like force-enabling this during multiplayer gameplay for example.

@Gamernumberone
Copy link

Gamernumberone commented Dec 11, 2023

to me black screen, why?

@Gamernumberone
Copy link

Gamernumberone commented Dec 11, 2023

It's not bad, but it would be better to add the ability to control the game in the future, because it will be convenient to assign the pause button of the game and the emulator menu with one button and so that the control is available. However, for some reason, in the last build I have a black screen, and always

@Gamernumberone
Copy link

This is now implemented. The UI is a Play/Pause button on the bottom right of the pause screen.

Though, currently the game cannot be controlled while it is behind the pause screen, which this issue originally requested.

Some more tweaks will come, like force-enabling this during multiplayer gameplay for example.

Dirext11 and other black screen, vulkan wirk good

@hrydgard
Copy link
Owner

#18520 fixes the black screen problems

@Gamernumberone
Copy link

Gamernumberone commented Dec 15, 2023

This is now implemented. The UI is a Play/Pause button on the bottom right of the pause screen.

Though, currently the game cannot be controlled while it is behind the pause screen, which this issue originally requested.

Some more tweaks will come, like force-enabling this during multiplayer gameplay for example.

About controlling the game during a pause. Maybe it's worth removing the control buttons in the ppsspp menu in this mode and enabling the ability to control the game? After all, we have a mouse for that to move to the ppsspp menu. I noticed that in the standard ppsspp menu, you can press x and dpad down to confirm

@LunaMoo
Copy link
Collaborator

LunaMoo commented Dec 15, 2023

After all, we have a mouse for that to move to the ppsspp menu.

Depending on the fact assuming everyone uses mouse is a bad idea. A lot of people while playing games in a comfortable way are limited to gamepad even if they currently do have a mouse connected to their system simply because using mouse immediately stops them from effective use of gamepad. In gamepad oriented setups mouse might not even be a thing even on pc's with windows since it's nowadays controlled pretty well with just gamepad and the experience doesn't differ that much with steam big picture as from using a console.

So a feature like that, should:

  • provide different ways to control menu than in-game (possibly just a new button to switch between menu/in-game control as mapping both to gamepad feels unrealistic, but we easily do have a room for extra button, especially if this is about multiplayer and changing speed there is a no-no) and make at least one form of separate menu control required for activation,
  • be verbose enough about informing user what it does to avoid confusion and people using it being unpleasantly surprised that they lost control and don't know what to do,
  • possibly have one time warning to make it even more verbose after using pause with it active that with your settings you have to use separate menu controls to continue and maybe disable the feature if user doesn't input in like 10 s.

@Gamernumberone
Copy link

the idea is to make a single menu of the game and the emulator similar to PC games. Therefore, you need to control the game during a pause so that you can assign both the game menu and the emulator to the esk, I think it would be very convenient. That is, we control the game menu with the keyboard, and the emulator menu with the mouse and everything with a transparent screen

@hrydgard
Copy link
Owner

As LunaMoo says, coming up with something that will work for players on pc, mobile phones, and keyboard/mouse-less TV devices, is not easy, and I don't see that this goal is super important. So don't expect what you are asking for anytime soon. However, there might well be some smaller changes.

@Gamernumberone
Copy link

As LunaMoo says, coming up with something that will work for players on pc, mobile phones, and keyboard/mouse-less TV devices, is not easy, and I don't see that this goal is super important. So don't expect what you are asking for anytime soon. However, there might well be some smaller changes.

well, is it possible to just give control to the game during a pause?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants