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

Launching game via command-line on Windows crashes #2900

Closed
breadcat opened this issue Jul 23, 2013 · 10 comments
Closed

Launching game via command-line on Windows crashes #2900

breadcat opened this issue Jul 23, 2013 · 10 comments

Comments

@breadcat
Copy link

Launching a game as an argument crashes PPSSPP, whereas previously it would load without issue.
Manually loading via the UI still works as expected.
I've just downloaded the most recent daily build from emucr.com (v0.8.1-747-g9644de0).

I'm running Windows 7 64bit, my games are stored as .cso files.

@thedax
Copy link
Collaborator

thedax commented Jul 23, 2013

Slightly offtopic, but I highly recommend using our official source for daily builds instead, as emucr is, well..heh.

http://buildbot.orphis.net/ppsspp/

@breadcat
Copy link
Author

No worries, I didn't even know you had a buildbot. I'll be sure to use it from now on.
Still happening in the latest version from the buildbot (v0.8.1-749-g3139c5).

@thedax
Copy link
Collaborator

thedax commented Jul 23, 2013

I'm able to reproduce the crash(Unhandled exception at 0x7557C9F1 in PPSSPPDebug.exe: 0xC0000005: Access violation executing location 0x00000000.), with a debug build, this is the call stack:

    ntdll.dll!77bf15de()    Unknown
    [Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll] 
    ntdll.dll!77bf15de()    Unknown
    ntdll.dll!77be014e()    Unknown
>   msvcr100d.dll!_unlock(int locknum) Line 375 C
    msvcr100d.dll!_heap_alloc_dbg_impl(unsigned int nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 507 C++
    msvcr100d.dll!_heap_alloc_dbg_impl(unsigned int nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 504 C++
    msvcr100d.dll!_nh_malloc_dbg_impl(unsigned int nSize, int nhFlag, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp) Line 239  C++
    PPSSPPDebug.exe!CheckGLExtensions() Line 70 C++
    PPSSPPDebug.exe!std::tr1::_Pmf_caller1<void,class WorkerThread>::_Call_pmf<void ( WorkerThread::*)(void),class WorkerThread * const>(void const volatile *,void ( WorkerThread::*)(void),class WorkerThread * const &)  C++
    PPSSPPDebug.exe!std::tr1::_Pmf_caller1<void,class WorkerThread>::_Call_pmf<void ( WorkerThread::*)(void),class WorkerThread * const>(void const volatile *,void ( WorkerThread::*)(void),class WorkerThread * const &)  C++
    msvcr100d.dll!___dllonexit�()   Unknown
    ntdll.dll!77c471d5()    Unknown
    ntdll.dll!77c09ec5()    Unknown

Perhaps a null pointer is being used somewhere it shouldn't be? I'll begin a bisect in a moment.

@thedax
Copy link
Collaborator

thedax commented Jul 23, 2013

Here's the bisect result:

81411a7 is the first bad commit

git.exe bisect bad

81411a74edc3fc0bd9e41d1e5751d0fcde0e6b4a is the first bad commit
commit 81411a74edc3fc0bd9e41d1e5751d0fcde0e6b4a
Author: Henrik Rydgard <censored to protect his email>
Date:   Tue Jul 16 22:50:53 2013 +0200

Experimental: Make orientation change possible on Android.

:040000 040000 8f35d4d947f4d871cd6c9653dc306d260c2c8f57 40f031e1a3f4b3163525dc3426de1967b2d66226 M  Common
:040000 040000 65d3da7fb00bc555c54cdcdc655ad618d4af285d b224acd7079c9ef0138438cf0be2e3eff0324738 M  GPU
:040000 040000 c4d283776c68a3d1521d78771a70b5db53cf447b cebf720d4ddf592e2820e3261478e0d8eac946e5 M  UI
:040000 040000 a1764e4986a8b6500bf1fbce7594165096110264 93afe3df351425dca1bedacb60d26fbb8e1a2c6d M  android
:160000 160000 a7b92d63d6a51f41b3fe8c89fee0bd5f85b8f4a6 8559d298f86338c779dee368249edc7087d8dd46 M  native

@thedax
Copy link
Collaborator

thedax commented Jul 23, 2013

Could you perhaps rename this issue to: "Launching game via command-line on Windows crashes"?

Another callstack:

    ntdll.dll!77bf15de()    Unknown
    [Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll] 
    ntdll.dll!77bf15de()    Unknown
    ntdll.dll!77be014e()    Unknown
    KernelBase.dll!75856b9e()   Unknown
    KernelBase.dll!7586ef9d()   Unknown
>   PPSSPPWindows.exe!CheckGLExtensions() Line 60   C++
    PPSSPPWindows.exe!EmuScreen::EmuScreen(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & filename) Line 57   C++
    PPSSPPWindows.exe!NativeInit(int argc, const char * * argv, const char * savegame_directory, const char * external_directory, const char * installID) Line 385  C++
    PPSSPPWindows.exe!TheThread(void * __formal) Line 106   C++
    msvcr100.dll!72c5c556() Unknown
    msvcr100.dll!72c5c600() Unknown
    kernel32.dll!775e33aa() Unknown
    ntdll.dll!77c09ef2()    Unknown
    ntdll.dll!77c09ec5()    Unknown

@breadcat
Copy link
Author

Issue renamed.

@thedax
Copy link
Collaborator

thedax commented Jul 26, 2013

This can be closed due to being fixed by #2935. I don't like how we have to sit through the 2 second logo on startup, though..

@hrydgard
Copy link
Owner

The logo can be clicked through at least. But yeah, I'm all for bypassing it on command line loads.

@thedax
Copy link
Collaborator

thedax commented Jul 26, 2013

That's what I meant, yeah. Command-line should instantly start.

@unknownbrackets
Copy link
Collaborator

This was introduced in 81411a7. Moving it back to NativeInitGraphics() fixes it. This is because EmuThread hasn't called host->InitGL() yet, so CheckGLExtensions() crashes.

-[Unknown]

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

No branches or pull requests

4 participants