Emulator Issues #11867
closedDJ Hero 2 hangs if you cancel the online sign-in. If you don't cancel, no hang and online works.
0%
Description
Game Name?
DJ Hero 2
Game ID? (right click the game in the game list, Properties, Info tab)
SWBE52
MD5 Hash? (right click the game in the game list, Properties, Verify tab, Verify Integrity button)
e7232c297731730c8b98a15661f12780
(note: wbfs image)
What's the problem? Describe what went wrong.
If Dolphin has certificates for connecting online, if you cancel sign-in to Nintendo Wi-Fi Connection, the game will hang.
The attached screenshot shows the moment where the game hangs.
If you don't cancel, the game successfully connects online; leaderboards work, matchmaking works, etc.
Removing the certificates avoids the hang but makes that Dolphin SSL error pop up and disables online features.
What steps will reproduce the problem?
Follow the Wii network guide (https://dolphin-emu.org/docs/guides/wii-network-guide/) or dump a NAND and extract the network certificates.
Boot the game, Press Start, cancel the signin, and the game will hang.
Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.
Yes, 5.0-10920
Is the issue present in the latest stable version?
Yes, 5.0
What are your PC specifications? (CPU, GPU, Operating System, more)
Intel i7-4720HQ
Nvidia GTX 860M
Windows 10 1903
Files
Updated by JMC4789 about 5 years ago
Hey, I've noticed the issues you've been writing and appreciate them. Unfortunately, we currently don't have anyone with the expertise to handle these issues available, so I can't really update you much on them.
Odds are that all of these hangs in games with third party servers are exactly the same issue. Just Dance, Call of Duty, DJ Hero, Rockband, etc.
The more examples we have, the better, but I can't guarantee much activity on these issues for a while.
Updated by sepalani about 5 years ago
@shockdudeX
Could you please provide the info log for both cases? You need to enable the log widget, configure it with the maximum verbosity (info or debug), tick the right categories (BOOT/CONSOLE/CORE/HLE/OSREPORT/IOS_NET/IOS_SSL/SYMBOLS) and ideally output it into a file.
Updated by shockdudeX about 5 years ago
- File dolphin.log dolphin.log added
sepalani wrote:
@shockdudeX
Could you please provide the info log for both cases? You need to enable the log widget, configure it with the maximum verbosity (info or debug), tick the right categories (BOOT/CONSOLE/CORE/HLE/OSREPORT/IOS_NET/IOS_SSL/SYMBOLS) and ideally output it into a file.
Log is attached
Updated by sepalani about 5 years ago
Thank you.
It seems the WinSocket closesocket
function is hanging forever on an UDP socket which is waiting input from demonware stun server.
I'm going to see what's the best way to fix that.
Callstack:
ntdll.dll!0000000076fa997a() Unknown
mswsock.dll!000007fefc1d25ea() Unknown
mswsock.dll!000007fefc1d2440() Unknown
ws2_32.dll!000007fefe9a19ad() Unknown
[Inline Frame] Dolphin.exe!IOS::HLE::WiiSocket::CloseFd() Line 165 C++
Dolphin.exe!IOS::HLE::WiiSockMan::DeleteSocket(int s) Line 676 C++
[Inline Frame] Dolphin.exe!IOS::HLE::Device::NetIPTop::HandleCloseRequest(const IOS::HLE::IOCtlRequest &) Line 389 C++
Dolphin.exe!IOS::HLE::Device::NetIPTop::IOCtl(const IOS::HLE::IOCtlRequest & request) Line 285 C++
Dolphin.exe!IOS::HLE::Kernel::HandleIPCCommand(const IOS::HLE::Request & request) Line 547 C++
[Inline Frame] Dolphin.exe!IOS::HLE::Kernel::ExecuteIPCCommand(unsigned int) Line 572 C++
Dolphin.exe!IOS::HLE::Kernel::UpdateIPC() Line 637 C++
Dolphin.exe!CoreTiming::Advance() Line 327 C++
0000000014838087() Unknown
0000000341780000() Unknown
0000000341780000() Unknown
0d0000040d000004() Unknown
000000000d9ff17c() Unknown
0000000100000000() Unknown
ffffffffffffffff() Unknown
Dolphin.exe!000000014008ccf0() C++
0000000006edb268() Unknown
Updated by shockdudeX about 5 years ago
- File dolphin.zip dolphin.zip added
I realized I forgot to make a log for a successful connection. Log attached; connected online then viewed the score leaderboard for one of the songs.
Updated by sepalani over 4 years ago
- File DJ_log.txt DJ_log.txt added
The above closesocket issue I had seems to be (or have been?) a bug in Windows related to UPnP (and isn't related to this issue).
Using a custom build I managed to get the attached log:
57:41:043 Core\HLE\HLE_OS.cpp:279 N[OSREPORT]: [0] info/bdUPnP.cpp(143) [bdnet/upnp::pump]: No UPnP devices discovered
57:41:043 Core\HLE\HLE_OS.cpp:292 N[OSREPORT]: [80728a58] SOClose(fd=00000001)
57:41:055 Core\HLE\HLE_OS.cpp:286 N[OSREPORT]: [80ae78b0] RecvFrom(fd=00000001, buf=80aea620, len=00000508, flags=00000000)
57:41:055 Core\HLE\HLE_OS.cpp:279 N[OSREPORT]: [0] info/bdNATTypeDiscoveryClient.cpp(105) [bdSocket/nat::init]: NAT discovery client initialized
57:41:058 Core\HLE\HLE_OS.cpp:279 N[OSREPORT]: [0] info/bdNATTypeDiscoveryClient.cpp(229) [bdSocket/nat::sendForTest1]: Sent packet for NTDC test 1
57:41:445 Core\HLE\HLE_OS.cpp:286 N[OSREPORT]: [80ae5030] RecvFrom(fd=00000000, buf=80ae71c0, len=00000508, flags=00000000)
57:41:445 Core\HLE\HLE_OS.cpp:286 N[OSREPORT]: [80ae78b0] RecvFrom(fd=00000001, buf=80aea620, len=00000508, flags=00000000)
57:41:463 Core\HLE\HLE_OS.cpp:279 N[OSREPORT]: [0] info/bdIPDiscoveryClient.cpp(101) [bdSocket/nat::pump]: Public IP discovered: 165.169.101.83:3074
57:41:466 Core\HLE\HLE_OS.cpp:279 N[OSREPORT]: [0] info/bdNATTypeDiscoveryClient.cpp(267) [bdSocket/nat::handleResponse]: Reply for test 1. Start test 2.
57:41:467 Core\HLE\HLE_OS.cpp:279 N[OSREPORT]: [0] info/bdNATTypeDiscoveryClient.cpp(241) [bdSocket/nat::sendForTest2]: Sent packet for NTDC test 2
57:41:558 Core\HLE\HLE_OS.cpp:279 N[OSREPORT]: [0] info/bdNATTypeDiscoveryClient.cpp(241) [bdSocket/nat::sendForTest2]: Sent packet for NTDC test 2
57:42:059 Core\HLE\HLE_OS.cpp:279 N[OSREPORT]: [0] info/bdNATTypeDiscoveryClient.cpp(241) [bdSocket/nat::sendForTest2]: Sent packet for NTDC test 2
57:42:560 Core\HLE\HLE_OS.cpp:279 N[OSREPORT]: [0] info/bdNATTypeDiscoveryClient.cpp(241) [bdSocket/nat::sendForTest2]: Sent packet for NTDC test 2
57:43:061 Core\HLE\HLE_OS.cpp:279 N[OSREPORT]: [0] info/bdNATTypeDiscoveryClient.cpp(241) [bdSocket/nat::sendForTest2]: Sent packet for NTDC test 2
57:43:561 Core\HLE\HLE_OS.cpp:279 N[OSREPORT]: [0] info/bdNATTypeDiscoveryClient.cpp(241) [bdSocket/nat::sendForTest2]: Sent packet for NTDC test 2
57:44:060 Core\HLE\HLE_OS.cpp:279 N[OSREPORT]: [0] info/bdNATTypeDiscoveryClient.cpp(472) [bdSocket/nat::pumpActiveTest]: Test 2 failed.
57:44:077 Core\HLE\HLE_OS.cpp:279 N[OSREPORT]: [0] info/bdNATTypeDiscoveryClient.cpp(252) [bdSocket/nat::sendForTest3]: Sent packet for NTDC test 3
57:44:517 Core\HLE\HLE_OS.cpp:286 N[OSREPORT]: [80ae78b0] RecvFrom(fd=00000001, buf=80aea620, len=00000508, flags=00000000)
57:44:529 Core\HLE\HLE_OS.cpp:279 N[OSREPORT]: [0] info/bdNATTypeDiscoveryClient.cpp(321) [bdSocket/nat::handleResponse]: Reply for test 3. Moderate NAT.
57:44:545 Core\HLE\HLE_OS.cpp:279 N[OSREPORT]: [0] info/bdNATTypeDiscoveryClient.cpp(171) [bdSocket/nat::quit]: NAT discovery client quit
57:44:546 Core\HLE\HLE_OS.cpp:292 N[OSREPORT]: [80728a58] SOClose(fd=00000001)
The interesting part is at the end. After that part the game hangs forever.
Basically, the receive thread (80ae78b0) is doing a recvfrom on a socket, while the current thread (80728a58) closes that socket.
Closing the socket will get rid of all of its pending ops in Dolphin.
In sum, the RecvFrom call never returns and the receive thread is hanging forever.
Using both the Thread and Network widget we can see that:
- The receive thread is blocking on a RecvFrom call
- The socket for that RecvFrom call was removed from the socket table
Updated by leoetlino over 4 years ago
- Status changed from New to Fixed
- Fixed in set to 5.0-11873
Updated by leoetlino over 4 years ago
- Related to Emulator Issues #11862: DJ Hero hangs when connecting online (works on console) added
Updated by leoetlino over 4 years ago
- Related to Emulator Issues #11910: Just Dance series crashes/freezes/hangs when the emulated console has internet connectivity added
Updated by leoetlino over 4 years ago
- Related to Emulator Issues #10338: Call of Duty: Multiplayer Freezes Mega Issue added
Updated by shockdudeX over 4 years ago
Confirmed fixed in 5.0-11873 on my end. Thanks!