From 7789de016e7b3bbb8cc5c2c88517694e63848457 Mon Sep 17 00:00:00 2001 From: luigiblood Date: Sun, 22 May 2016 14:55:23 +0200 Subject: [PATCH] [64DD] Disk dump loading from command line / drag 'n' drop to EXE file --- Source/Project64/main.cpp | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/Source/Project64/main.cpp b/Source/Project64/main.cpp index d403532a9..4b2afb963 100644 --- a/Source/Project64/main.cpp +++ b/Source/Project64/main.cpp @@ -24,7 +24,42 @@ int WINAPI WinMain(HINSTANCE /*hInstance*/, HINSTANCE /*hPrevInstance*/, LPSTR / if (g_Settings->LoadStringVal(Cmd_RomFile).length() > 0) { MainWindow.Show(true); //Show the main window - CN64System::RunFileImage(g_Settings->LoadStringVal(Cmd_RomFile).c_str()); + //N64 ROM or 64DD Disk + stdstr ext = CPath(g_Settings->LoadStringVal(Cmd_RomFile)).GetExtension(); + if (!(_stricmp(ext.c_str(), "ndd") == 0)) + { + //File Extension is not *.ndd so it should be a N64 ROM + CN64System::RunFileImage(g_Settings->LoadStringVal(Cmd_RomFile).c_str()); + } + else + { + //Ext is *.ndd, so it should be a disk file. + if (CN64System::RunDiskImage(g_Settings->LoadStringVal(Cmd_RomFile).c_str())) + { + stdstr IPLROM = g_Settings->LoadStringVal(File_DiskIPLPath); + if ((IPLROM.length() <= 0) || (!CN64System::RunFileImage(IPLROM.c_str()))) + { + // Open DDROM + OPENFILENAME openfilename; + char FileName[_MAX_PATH], Directory[_MAX_PATH]; + memset(&FileName, 0, sizeof(FileName)); + memset(&openfilename, 0, sizeof(openfilename)); + + openfilename.lStructSize = sizeof(openfilename); + //openfilename.hwndOwner = (HWND)hWnd; + openfilename.lpstrFilter = "64DD IPL ROM Image (*.zip, *.7z, *.?64, *.rom, *.usa, *.jap, *.pal, *.bin)\0*.?64;*.zip;*.7z;*.bin;*.rom;*.usa;*.jap;*.pal\0All files (*.*)\0*.*\0"; + openfilename.lpstrFile = FileName; + openfilename.lpstrInitialDir = Directory; + openfilename.nMaxFile = MAX_PATH; + openfilename.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY; + + if (GetOpenFileName(&openfilename)) + { + CN64System::RunFileImage(FileName); + } + } + } + } } else {