Project

General

Profile

Actions

Emulator Issues #9002

closed

Reading Zelda Twilight Princess E3 demo disc crashes dolphin

Added by Anonymous over 8 years ago. Updated almost 3 years ago.

Status:
Fixed
Priority:
Normal
Assignee:
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
Yes
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

Game Name?

ZTP E3 Demo

Game ID? (right click the game in the game list, properties, info tab)

DZDE01

MD5 Hash? (right click the game in the game list, properties, info tab, MD5 Hash: Compute)

Raw file hashes, since dolphin can't parse it...
MD5: B5F5908B2A9C08BB39CA85FCAD20034F
SHA1: CBA6F6A36C2CDF0F8C5A68D39189435F9DBB4BB8

What's the problem? Describe what went wrong.

 	KernelBase.dll!RaiseException()	Unknown
 	vcruntime140d.dll!_CxxThrowException(void * pExceptionObject, const _s__ThrowInfo * pThrowInfo) Line 136	C++
 	DolphinD.exe!__scrt_throw_std_bad_alloc() Line 34	C++
 	DolphinD.exe!operator new(unsigned __int64 size) Line 37	C++
 	DolphinD.exe!std::_Allocate<DiscIO::SFileInfo>(unsigned __int64 _Count, DiscIO::SFileInfo * __formal, bool _Try_aligned_allocation) Line 75	C++
 	DolphinD.exe!std::allocator<DiscIO::SFileInfo>::allocate(unsigned __int64 _Count) Line 646	C++
 	DolphinD.exe!std::_Wrap_alloc<std::allocator<DiscIO::SFileInfo> >::allocate(unsigned __int64 _Count) Line 901	C++
 	DolphinD.exe!std::vector<DiscIO::SFileInfo,std::allocator<DiscIO::SFileInfo> >::_Reallocate(unsigned __int64 _Count) Line 1621	C++
 	DolphinD.exe!std::vector<DiscIO::SFileInfo,std::allocator<DiscIO::SFileInfo> >::reserve(unsigned __int64 _Count) Line 1038	C++
>	DolphinD.exe!DiscIO::CFileSystemGCWii::InitFileSystem() Line 279	C++
 	DolphinD.exe!DiscIO::CFileSystemGCWii::ReadFile(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & _rFullPath, unsigned char * _pBuffer, unsigned __int64 _MaxBufferSize, unsigned __int64 _OffsetInFile) Line 72	C++
 	DolphinD.exe!DiscIO::CVolumeWiiCrypted::GetNames(bool prefer_long) Line 211	C++
 	DolphinD.exe!GameListItem::GameListItem(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & _rFileName, const std::unordered_map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::hash<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::equal_to<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,std::basic_string<char,std::char_traits<char>,std::allocator<char> > > > > & custom_titles) Line 104	C++
 	DolphinD.exe!std::make_unique<GameListItem,std::basic_string<char,std::char_traits<char>,std::allocator<char> > & __ptr64,std::unordered_map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::hash<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::equal_to<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,std::basic_string<char,std::char_traits<char>,std::allocator<char> > > > > & __ptr64>(std::basic_string<char,std::char_traits<char>,std::allocator<char> > & <_Args_0>, std::unordered_map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::basic_string<char,std::char_traits<char>,std::allocator<char> >,std::hash<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::equal_to<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<std::pair<std::basic_string<char,std::char_traits<char>,std::allocator<char> > const ,std::basic_string<char,std::char_traits<char>,std::allocator<char> > > > > & <_Args_1>) Line 1636	C++
 	DolphinD.exe!CGameListCtrl::ScanForISOs() Line 511	C++
 	DolphinD.exe!CGameListCtrl::Update() Line 254	C++
 	DolphinD.exe!CFrame::UpdateGameList() Line 1895	C++
 	DolphinD.exe!DolphinApp::AfterInit() Line 282	C++
 	DolphinD.exe!DolphinApp::OnInit() Line 159	C++
 	DolphinD.exe!wxAppConsoleBase::CallOnInit() Line 93	C++
 	DolphinD.exe!wxEntryReal(int & argc, wchar_t * * argv) Line 479	C++
 	DolphinD.exe!wxEntry(int & argc, wchar_t * * argv) Line 188	C++
 	DolphinD.exe!wxEntry(HINSTANCE__ * hInstance, HINSTANCE__ * __formal, char * __formal, int nCmdShow) Line 415	C++
 	DolphinD.exe!WinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow) Line 80	C++
 	DolphinD.exe!invoke_main() Line 109	C++
 	DolphinD.exe!__scrt_common_main_seh() Line 264	C++
 	DolphinD.exe!__scrt_common_main() Line 309	C++
 	DolphinD.exe!WinMainCRTStartup() Line 17	C++
 	kernel32.dll!BaseThreadInitThunk()	Unknown
 	ntdll.dll!RtlUserThreadStart()	Unknown
Root
{m_NameOffset=0x00000000cccccccc m_Offset=0x0000000cba5d9400 m_FileSize=0x00000000cccccccc ...}
    m_NameOffset: 0x00000000cccccccc
    m_Offset: 0x0000000cba5d9400
    m_FileSize: 0x00000000cccccccc
    m_FullPath: ""

What steps will reproduce the problem?

Have the disc in a directory scanned by dolphin.

Which versions of Dolphin did you test on? Does using an older version of Dolphin solve your issue? If yes, which versions of Dolphin used to work?

master

Actions #1

Updated by Anonymous over 8 years ago

  • Description updated (diff)
Actions #2

Updated by JosJuice over 8 years ago

  • Status changed from New to Accepted

The cause is probably Read32 failing to read file system data, returning uninitialized values. CFileSystemGCWii::Read32 used to return 0 when a read failed, until it was replaced in https://github.com/dolphin-emu/dolphin/commit/5911dd528af4f66e8293c4b082a2b8a4d1199b90

Actions #3

Updated by JosJuice over 8 years ago

Please test https://github.com/dolphin-emu/dolphin/pull/3127

PR 2820 might also fix this specific issue, and PR 2610 will work around it, but only PR 3127 solves the underlying problem.

Actions #4

Updated by JosJuice over 8 years ago

  • Status changed from Accepted to Fix pending
Actions #5

Updated by JosJuice over 8 years ago

  • Status changed from Fix pending to Fixed
Actions #6

Updated by Hiccup about 8 years ago

The dump you have (Legend_of_Zelda-Twilight_Princess_E3_Demo_USA_Wii-iND) is bad. The_Legend_of_Zelda_Twilight_Princess_Demo_USA_iNTERNAL_Wii-SUNSHiNE is better, but I can't confirm it is good.

Actions #7

Updated by Anonymous almost 3 years ago

I happened to test this again and while it no longer crashes dolphin, dolphin hangs at the wiimote screen.
I haven't tried the alternate dump mentioned in the comments.

Actions

Also available in: Atom PDF