-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
Mega Man Maverick Hunter X: PPSSPP hangs on ACCESS screen on OSX #7642
Comments
Please search before opening duplicate issues. Closing as a duplicate of #3318. -[Unknown] |
Sorry for this duplicated issue @unknownbrackets |
Well, I think it was reported in that issue that this happens on Linux / Mac, although 'm not sure why. Are you able to attach gdb and see where it's stuck? I'm guessing it's not flipping frames or something, but I don't know why (since even if it's not drawing anything, it should bail to flip a frame every 10 frames or so.) -[Unknown] |
Here it is:
|
US ver:
|
Can you give me a -[Unknown] |
Is this what you want? |
Yes. Looks like you're using "multithreaded" and it's waiting for an event on the GPU thread. If you turn that off, does it also hang completely, or does it start responding to user input? Otherwise, a -[Unknown] |
Closed "Multithreaded (experimental)"; UI still freezes completely
|
Okay, well, that's exactly where I'd want it to be. So, it's sleeping while you're pressing a key. At least it's not hung in a weird way or some loop. What if you add a It should do that several times per second, and that's where it should be accepting keypresses. You can also add a That should happen every time you press a key. -[Unknown] |
diff --git a/base/PCMain.cpp b/base/PCMain.cpp
index 536d2fd..57e43d0 100644
--- a/base/PCMain.cpp
+++ b/base/PCMain.cpp
@@ -653,6 +653,7 @@ int main(int argc, char *argv[]) {
SDL_Event event;
while (SDL_PollEvent(&event)) {
+ puts("SDL_PollEvent(&event): base/PCMain.cpp#L655");
float mx = event.motion.x * g_dpi_scale;
float my = event.motion.y * g_dpi_scale;
@@ -698,6 +699,7 @@ int main(int argc, char *argv[]) {
key.keyCode = KeyMapRawSDLtoNative.find(k)->second;
key.deviceId = DEVICE_ID_KEYBOARD;
NativeKey(key);
+ puts("NativeKey(key): base/PCMain.cpp#L700");
for (int i = 0; i < ARRAY_SIZE(legacyKeyMap); i++) {
if (legacyKeyMap[i] == key.keyCode) lldb logs: (I'm pressing keys rapidly)
Waited more than 30 seconds. Will a debug build be helpful? How can I build a debug version with cmake? @unknownbrackets |
I really don't know much about SDL myself. Something looks wrong here if it never polled SDL events, though. It only sleeps for the duration of a single frame, and it should drop out of the runloop periodically to check for SDL events. It doesn't look like it's doing this on Linux/Mac, but I don't know why. But I think all of that is unrelated to Mega Man, and we already have an issue for Mega Man. It would make more sense to open a separate issue that SDL_PollEvent doesn't get reached while the game is not drawing things (e.g. while it's not flipping buffers.) It needs to at least go back there sometimes, and I thought it did. Sleeping for most of the frame is still correct, though. -[Unknown] |
Seems a platform specific issue. Same game tested on Android and works fine ( after pressing Start or Circle )
Tested version: V1.0.1, lastest git on OSX
Tested game: ULUS10068 (US), ULJM05043 (JP)
The text was updated successfully, but these errors were encountered: