mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-23 14:19:46 -06:00
Merge branch 'master' into wii-network
Conflicts: Source/Core/Common/Src/CommonPaths.h Source/Core/Common/Src/FileUtil.cpp
This commit is contained in:
@ -1,3 +1,9 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2013 Dolphin Emulator Project
|
||||||
|
* Licensed under GPLv2
|
||||||
|
* Refer to the license.txt file included.
|
||||||
|
*/
|
||||||
|
|
||||||
package org.dolphinemu.dolphinemu;
|
package org.dolphinemu.dolphinemu;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
@ -15,11 +21,7 @@ import org.dolphinemu.dolphinemu.folderbrowser.FolderBrowserAdapter;
|
|||||||
import org.dolphinemu.dolphinemu.folderbrowser.FolderBrowserItem;
|
import org.dolphinemu.dolphinemu.folderbrowser.FolderBrowserItem;
|
||||||
import org.dolphinemu.dolphinemu.settings.VideoSettingsFragment;
|
import org.dolphinemu.dolphinemu.settings.VideoSettingsFragment;
|
||||||
|
|
||||||
/**
|
|
||||||
* Copyright 2013 Dolphin Emulator Project
|
|
||||||
* Licensed under GPLv2
|
|
||||||
* Refer to the license.txt file included.
|
|
||||||
*/
|
|
||||||
public final class AboutFragment extends Fragment
|
public final class AboutFragment extends Fragment
|
||||||
{
|
{
|
||||||
private static Activity m_activity;
|
private static Activity m_activity;
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2013 Dolphin Emulator Project
|
||||||
|
* Licensed under GPLv2
|
||||||
|
* Refer to the license.txt file included.
|
||||||
|
*/
|
||||||
|
|
||||||
package org.dolphinemu.dolphinemu;
|
package org.dolphinemu.dolphinemu;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2013 Dolphin Emulator Project
|
||||||
|
* Licensed under GPLv2
|
||||||
|
* Refer to the license.txt file included.
|
||||||
|
*/
|
||||||
|
|
||||||
package org.dolphinemu.dolphinemu;
|
package org.dolphinemu.dolphinemu;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2013 Dolphin Emulator Project
|
||||||
|
* Licensed under GPLv2
|
||||||
|
* Refer to the license.txt file included.
|
||||||
|
*/
|
||||||
|
|
||||||
package org.dolphinemu.dolphinemu.folderbrowser;
|
package org.dolphinemu.dolphinemu.folderbrowser;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
@ -131,15 +137,38 @@ public final class FolderBrowser extends Fragment
|
|||||||
// Cache the activity instance.
|
// Cache the activity instance.
|
||||||
m_activity = activity;
|
m_activity = activity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void FolderSelected()
|
private void FolderSelected()
|
||||||
{
|
{
|
||||||
String Directories = NativeLibrary.GetConfig("Dolphin.ini", "General", "GCMPathes", "0");
|
String Directories = NativeLibrary.GetConfig("Dolphin.ini", "General", "GCMPathes", "0");
|
||||||
int intDirectories = Integer.parseInt(Directories);
|
int intDirectories = Integer.parseInt(Directories);
|
||||||
Directories = Integer.toString(intDirectories + 1);
|
Directories = Integer.toString(intDirectories + 1);
|
||||||
NativeLibrary.SetConfig("Dolphin.ini", "General", "GCMPathes", Directories);
|
|
||||||
NativeLibrary.SetConfig("Dolphin.ini", "General", "GCMPath" + Integer.toString(intDirectories), currentDir.getPath());
|
// Check to see if a path set in the Dolphin config
|
||||||
|
// matches the one the user is trying to add. If it's
|
||||||
|
// already set, then don't add it to the list again.
|
||||||
|
boolean pathNotPresent = true;
|
||||||
|
for (int i = 0; i < intDirectories; i++)
|
||||||
|
{
|
||||||
|
String gcmPath = NativeLibrary.GetConfig("Dolphin.ini", "General", "GCMPath" + i, "");
|
||||||
|
|
||||||
|
if (gcmPath.equals(currentDir.getPath()))
|
||||||
|
{
|
||||||
|
pathNotPresent = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pathNotPresent = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// User doesn't have this path in the config, so add it.
|
||||||
|
if (pathNotPresent)
|
||||||
|
{
|
||||||
|
NativeLibrary.SetConfig("Dolphin.ini", "General", "GCMPathes", Integer.toString(intDirectories+1));
|
||||||
|
NativeLibrary.SetConfig("Dolphin.ini", "General", "GCMPath" + Integer.toString(intDirectories), currentDir.getPath());
|
||||||
|
}
|
||||||
|
|
||||||
((GameListActivity)m_activity).SwitchPage(0);
|
((GameListActivity)m_activity).SwitchPage(0);
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2013 Dolphin Emulator Project
|
||||||
|
* Licensed under GPLv2
|
||||||
|
* Refer to the license.txt file included.
|
||||||
|
*/
|
||||||
|
|
||||||
package org.dolphinemu.dolphinemu.folderbrowser;
|
package org.dolphinemu.dolphinemu.folderbrowser;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2013 Dolphin Emulator Project
|
||||||
|
* Licensed under GPLv2
|
||||||
|
* Refer to the license.txt file included.
|
||||||
|
*/
|
||||||
|
|
||||||
package org.dolphinemu.dolphinemu.folderbrowser;
|
package org.dolphinemu.dolphinemu.folderbrowser;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
@ -173,6 +173,7 @@ public final class GameListActivity extends Activity
|
|||||||
mCurFragment = new GameListFragment();
|
mCurFragment = new GameListFragment();
|
||||||
FragmentManager fragmentManager = getFragmentManager();
|
FragmentManager fragmentManager = getFragmentManager();
|
||||||
fragmentManager.beginTransaction().replace(R.id.content_frame, mCurFragment).commit();
|
fragmentManager.beginTransaction().replace(R.id.content_frame, mCurFragment).commit();
|
||||||
|
invalidateOptionsMenu();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -182,6 +183,7 @@ public final class GameListActivity extends Activity
|
|||||||
mCurFragment = new FolderBrowser();
|
mCurFragment = new FolderBrowser();
|
||||||
FragmentManager fragmentManager = getFragmentManager();
|
FragmentManager fragmentManager = getFragmentManager();
|
||||||
fragmentManager.beginTransaction().replace(R.id.content_frame, mCurFragment).commit();
|
fragmentManager.beginTransaction().replace(R.id.content_frame, mCurFragment).commit();
|
||||||
|
invalidateOptionsMenu();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -198,6 +200,7 @@ public final class GameListActivity extends Activity
|
|||||||
mCurFragment = new InputConfigFragment();
|
mCurFragment = new InputConfigFragment();
|
||||||
FragmentManager fragmentManager = getFragmentManager();
|
FragmentManager fragmentManager = getFragmentManager();
|
||||||
fragmentManager.beginTransaction().replace(R.id.content_frame, mCurFragment).commit();
|
fragmentManager.beginTransaction().replace(R.id.content_frame, mCurFragment).commit();
|
||||||
|
invalidateOptionsMenu();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -207,6 +210,7 @@ public final class GameListActivity extends Activity
|
|||||||
mCurFragment = new AboutFragment();
|
mCurFragment = new AboutFragment();
|
||||||
FragmentManager fragmentManager = getFragmentManager();
|
FragmentManager fragmentManager = getFragmentManager();
|
||||||
fragmentManager.beginTransaction().replace(R.id.content_frame, mCurFragment).commit();
|
fragmentManager.beginTransaction().replace(R.id.content_frame, mCurFragment).commit();
|
||||||
|
invalidateOptionsMenu();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -293,6 +297,8 @@ public final class GameListActivity extends Activity
|
|||||||
NativeLibrary.SetConfig("Dolphin.ini", "General", "GCMPath" + i, "");
|
NativeLibrary.SetConfig("Dolphin.ini", "General", "GCMPath" + i, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NativeLibrary.SetConfig("Dolphin.ini", "General", "GCMPathes", "0");
|
||||||
|
|
||||||
ArrayAdapter<GameListItem> adapter = ((GameListFragment)GameListActivity.this.mCurFragment).getAdapter();
|
ArrayAdapter<GameListItem> adapter = ((GameListFragment)GameListActivity.this.mCurFragment).getAdapter();
|
||||||
adapter.clear();
|
adapter.clear();
|
||||||
adapter.notifyDataSetChanged();
|
adapter.notifyDataSetChanged();
|
||||||
|
@ -98,22 +98,6 @@ public final class GameListFragment extends Fragment
|
|||||||
}
|
}
|
||||||
Collections.sort(fls);
|
Collections.sort(fls);
|
||||||
|
|
||||||
// Remove any duplicate items from the list.
|
|
||||||
// We don't need to index these in the game list more than once.
|
|
||||||
//
|
|
||||||
// This works by comparing the paths of items in the file list for equality,
|
|
||||||
// so there should be no worries about accidentally removing a valid game.
|
|
||||||
for (int i = 0; i < fls.size(); i++)
|
|
||||||
{
|
|
||||||
for (int j = i+1; j < fls.size(); j++)
|
|
||||||
{
|
|
||||||
if (fls.get(j).getPath().equals(fls.get(i).getPath()))
|
|
||||||
{
|
|
||||||
fls.remove(j);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
mGameAdapter = new GameListAdapter(mMe, R.layout.gamelist_layout, fls);
|
mGameAdapter = new GameListAdapter(mMe, R.layout.gamelist_layout, fls);
|
||||||
mMainList.setAdapter(mGameAdapter);
|
mMainList.setAdapter(mGameAdapter);
|
||||||
|
|
||||||
|
@ -61,29 +61,29 @@
|
|||||||
#define JAP_DIR "JAP"
|
#define JAP_DIR "JAP"
|
||||||
|
|
||||||
// Subdirs in the User dir returned by GetUserPath(D_USER_IDX)
|
// Subdirs in the User dir returned by GetUserPath(D_USER_IDX)
|
||||||
#define GC_USER_DIR "GC"
|
#define GC_USER_DIR "GC"
|
||||||
#define WII_USER_DIR "Wii"
|
#define WII_USER_DIR "Wii"
|
||||||
#define CONFIG_DIR "Config"
|
#define CONFIG_DIR "Config"
|
||||||
#define GAMECONFIG_DIR "GameConfig"
|
#define GAMECONFIG_DIR "GameConfig"
|
||||||
#define MAPS_DIR "Maps"
|
#define MAPS_DIR "Maps"
|
||||||
#define CACHE_DIR "Cache"
|
#define CACHE_DIR "Cache"
|
||||||
#define SHADERCACHE_DIR "ShaderCache"
|
#define SHADERCACHE_DIR "ShaderCache"
|
||||||
#define STATESAVES_DIR "StateSaves"
|
#define STATESAVES_DIR "StateSaves"
|
||||||
#define SCREENSHOTS_DIR "ScreenShots"
|
#define SCREENSHOTS_DIR "ScreenShots"
|
||||||
#define OPENCL_DIR "OpenCL"
|
#define OPENCL_DIR "OpenCL"
|
||||||
#define LOAD_DIR "Load"
|
#define LOAD_DIR "Load"
|
||||||
#define HIRES_TEXTURES_DIR LOAD_DIR DIR_SEP "Textures"
|
#define HIRES_TEXTURES_DIR LOAD_DIR DIR_SEP "Textures"
|
||||||
#define DUMP_DIR "Dump"
|
#define DUMP_DIR "Dump"
|
||||||
#define DUMP_TEXTURES_DIR DUMP_DIR DIR_SEP "Textures"
|
#define DUMP_TEXTURES_DIR "Textures"
|
||||||
#define DUMP_FRAMES_DIR DUMP_DIR DIR_SEP "Frames"
|
#define DUMP_FRAMES_DIR "Frames"
|
||||||
#define DUMP_AUDIO_DIR DUMP_DIR DIR_SEP "Audio"
|
#define DUMP_AUDIO_DIR "Audio"
|
||||||
#define DUMP_DSP_DIR DUMP_DIR DIR_SEP "DSP"
|
#define DUMP_DSP_DIR "DSP"
|
||||||
#define LOGS_DIR "Logs"
|
#define LOGS_DIR "Logs"
|
||||||
#define MAIL_LOGS_DIR LOGS_DIR DIR_SEP "Mail"
|
#define MAIL_LOGS_DIR "Mail"
|
||||||
#define SHADERS_DIR "Shaders"
|
#define SHADERS_DIR "Shaders"
|
||||||
#define WII_SYSCONF_DIR "shared2" DIR_SEP "sys"
|
#define WII_SYSCONF_DIR "shared2" DIR_SEP "sys"
|
||||||
#define WII_WC24CONF_DIR "shared2" DIR_SEP "wc24"
|
#define WII_WC24CONF_DIR "shared2" DIR_SEP "wc24"
|
||||||
#define THEMES_DIR "Themes"
|
#define THEMES_DIR "Themes"
|
||||||
|
|
||||||
// Filenames
|
// Filenames
|
||||||
// Files in the directory returned by GetUserPath(D_CONFIG_IDX)
|
// Files in the directory returned by GetUserPath(D_CONFIG_IDX)
|
||||||
|
@ -689,15 +689,15 @@ const std::string& GetUserPath(const unsigned int DirIDX, const std::string &new
|
|||||||
paths[D_OPENCL_IDX] = paths[D_USER_IDX] + OPENCL_DIR DIR_SEP;
|
paths[D_OPENCL_IDX] = paths[D_USER_IDX] + OPENCL_DIR DIR_SEP;
|
||||||
paths[D_HIRESTEXTURES_IDX] = paths[D_USER_IDX] + HIRES_TEXTURES_DIR DIR_SEP;
|
paths[D_HIRESTEXTURES_IDX] = paths[D_USER_IDX] + HIRES_TEXTURES_DIR DIR_SEP;
|
||||||
paths[D_DUMP_IDX] = paths[D_USER_IDX] + DUMP_DIR DIR_SEP;
|
paths[D_DUMP_IDX] = paths[D_USER_IDX] + DUMP_DIR DIR_SEP;
|
||||||
paths[D_DUMPFRAMES_IDX] = paths[D_USER_IDX] + DUMP_FRAMES_DIR DIR_SEP;
|
paths[D_DUMPFRAMES_IDX] = paths[D_DUMP_IDX] + DUMP_FRAMES_DIR DIR_SEP;
|
||||||
paths[D_DUMPAUDIO_IDX] = paths[D_USER_IDX] + DUMP_AUDIO_DIR DIR_SEP;
|
paths[D_DUMPAUDIO_IDX] = paths[D_DUMP_IDX] + DUMP_AUDIO_DIR DIR_SEP;
|
||||||
paths[D_DUMPTEXTURES_IDX] = paths[D_USER_IDX] + DUMP_TEXTURES_DIR DIR_SEP;
|
paths[D_DUMPTEXTURES_IDX] = paths[D_DUMP_IDX] + DUMP_TEXTURES_DIR DIR_SEP;
|
||||||
paths[D_DUMPDSP_IDX] = paths[D_USER_IDX] + DUMP_DSP_DIR DIR_SEP;
|
paths[D_DUMPDSP_IDX] = paths[D_DUMP_IDX] + DUMP_DSP_DIR DIR_SEP;
|
||||||
paths[D_LOGS_IDX] = paths[D_USER_IDX] + LOGS_DIR DIR_SEP;
|
paths[D_LOGS_IDX] = paths[D_USER_IDX] + LOGS_DIR DIR_SEP;
|
||||||
paths[D_MAILLOGS_IDX] = paths[D_USER_IDX] + MAIL_LOGS_DIR DIR_SEP;
|
paths[D_MAILLOGS_IDX] = paths[D_LOGS_IDX] + MAIL_LOGS_DIR DIR_SEP;
|
||||||
paths[D_THEMES_IDX] = paths[D_USER_IDX] + THEMES_DIR DIR_SEP;
|
|
||||||
paths[D_WIISYSCONF_IDX] = paths[D_WIIUSER_IDX] + WII_SYSCONF_DIR DIR_SEP;
|
paths[D_WIISYSCONF_IDX] = paths[D_WIIUSER_IDX] + WII_SYSCONF_DIR DIR_SEP;
|
||||||
paths[D_WIIWC24_IDX] = paths[D_WIIUSER_IDX] + WII_WC24CONF_DIR DIR_SEP;
|
paths[D_WIIWC24_IDX] = paths[D_WIIUSER_IDX] + WII_WC24CONF_DIR DIR_SEP;
|
||||||
|
paths[D_THEMES_IDX] = paths[D_USER_IDX] + THEMES_DIR DIR_SEP;
|
||||||
paths[F_DOLPHINCONFIG_IDX] = paths[D_CONFIG_IDX] + DOLPHIN_CONFIG;
|
paths[F_DOLPHINCONFIG_IDX] = paths[D_CONFIG_IDX] + DOLPHIN_CONFIG;
|
||||||
paths[F_DEBUGGERCONFIG_IDX] = paths[D_CONFIG_IDX] + DEBUGGER_CONFIG;
|
paths[F_DEBUGGERCONFIG_IDX] = paths[D_CONFIG_IDX] + DEBUGGER_CONFIG;
|
||||||
paths[F_LOGGERCONFIG_IDX] = paths[D_CONFIG_IDX] + LOGGER_CONFIG;
|
paths[F_LOGGERCONFIG_IDX] = paths[D_CONFIG_IDX] + LOGGER_CONFIG;
|
||||||
@ -711,17 +711,80 @@ const std::string& GetUserPath(const unsigned int DirIDX, const std::string &new
|
|||||||
|
|
||||||
if (!newPath.empty())
|
if (!newPath.empty())
|
||||||
{
|
{
|
||||||
if(DirIDX != D_WIIROOT_IDX)
|
|
||||||
PanicAlert("Trying to change user path other than Wii root");
|
|
||||||
|
|
||||||
if (!File::IsDirectory(newPath))
|
if (!File::IsDirectory(newPath))
|
||||||
{
|
{
|
||||||
WARN_LOG(COMMON, "Invalid path specified %s, Wii user path will be set to default", newPath.c_str());
|
WARN_LOG(COMMON, "Invalid path specified %s", newPath.c_str());
|
||||||
paths[D_WIIROOT_IDX] = paths[D_USER_IDX] + WII_USER_DIR;
|
return paths[DirIDX];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
paths[D_WIIROOT_IDX] = newPath;
|
paths[DirIDX] = newPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (DirIDX)
|
||||||
|
{
|
||||||
|
case D_WIIROOT_IDX:
|
||||||
|
paths[D_WIIUSER_IDX] = paths[D_WIIROOT_IDX] + DIR_SEP;
|
||||||
|
paths[D_WIISYSCONF_IDX] = paths[D_WIIUSER_IDX] + WII_SYSCONF_DIR + DIR_SEP;
|
||||||
|
paths[F_WIISYSCONF_IDX] = paths[D_WIISYSCONF_IDX] + WII_SYSCONF;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case D_USER_IDX:
|
||||||
|
paths[D_GCUSER_IDX] = paths[D_USER_IDX] + GC_USER_DIR DIR_SEP;
|
||||||
|
paths[D_WIIROOT_IDX] = paths[D_USER_IDX] + WII_USER_DIR;
|
||||||
|
paths[D_WIIUSER_IDX] = paths[D_WIIROOT_IDX] + DIR_SEP;
|
||||||
|
paths[D_CONFIG_IDX] = paths[D_USER_IDX] + CONFIG_DIR DIR_SEP;
|
||||||
|
paths[D_GAMECONFIG_IDX] = paths[D_USER_IDX] + GAMECONFIG_DIR DIR_SEP;
|
||||||
|
paths[D_MAPS_IDX] = paths[D_USER_IDX] + MAPS_DIR DIR_SEP;
|
||||||
|
paths[D_CACHE_IDX] = paths[D_USER_IDX] + CACHE_DIR DIR_SEP;
|
||||||
|
paths[D_SHADERCACHE_IDX] = paths[D_USER_IDX] + SHADERCACHE_DIR DIR_SEP;
|
||||||
|
paths[D_SHADERS_IDX] = paths[D_USER_IDX] + SHADERS_DIR DIR_SEP;
|
||||||
|
paths[D_STATESAVES_IDX] = paths[D_USER_IDX] + STATESAVES_DIR DIR_SEP;
|
||||||
|
paths[D_SCREENSHOTS_IDX] = paths[D_USER_IDX] + SCREENSHOTS_DIR DIR_SEP;
|
||||||
|
paths[D_OPENCL_IDX] = paths[D_USER_IDX] + OPENCL_DIR DIR_SEP;
|
||||||
|
paths[D_HIRESTEXTURES_IDX] = paths[D_USER_IDX] + HIRES_TEXTURES_DIR DIR_SEP;
|
||||||
|
paths[D_DUMP_IDX] = paths[D_USER_IDX] + DUMP_DIR DIR_SEP;
|
||||||
|
paths[D_DUMPFRAMES_IDX] = paths[D_DUMP_IDX] + DUMP_FRAMES_DIR DIR_SEP;
|
||||||
|
paths[D_DUMPAUDIO_IDX] = paths[D_DUMP_IDX] + DUMP_AUDIO_DIR DIR_SEP;
|
||||||
|
paths[D_DUMPTEXTURES_IDX] = paths[D_DUMP_IDX] + DUMP_TEXTURES_DIR DIR_SEP;
|
||||||
|
paths[D_DUMPDSP_IDX] = paths[D_DUMP_IDX] + DUMP_DSP_DIR DIR_SEP;
|
||||||
|
paths[D_LOGS_IDX] = paths[D_USER_IDX] + LOGS_DIR DIR_SEP;
|
||||||
|
paths[D_MAILLOGS_IDX] = paths[D_LOGS_IDX] + MAIL_LOGS_DIR DIR_SEP;
|
||||||
|
paths[D_WIISYSCONF_IDX] = paths[D_WIIUSER_IDX] + WII_SYSCONF_DIR DIR_SEP;
|
||||||
|
paths[D_THEMES_IDX] = paths[D_USER_IDX] + THEMES_DIR DIR_SEP;
|
||||||
|
paths[F_DOLPHINCONFIG_IDX] = paths[D_CONFIG_IDX] + DOLPHIN_CONFIG;
|
||||||
|
paths[F_DEBUGGERCONFIG_IDX] = paths[D_CONFIG_IDX] + DEBUGGER_CONFIG;
|
||||||
|
paths[F_LOGGERCONFIG_IDX] = paths[D_CONFIG_IDX] + LOGGER_CONFIG;
|
||||||
|
paths[F_MAINLOG_IDX] = paths[D_LOGS_IDX] + MAIN_LOG;
|
||||||
|
paths[F_WIISYSCONF_IDX] = paths[D_WIISYSCONF_IDX] + WII_SYSCONF;
|
||||||
|
paths[F_RAMDUMP_IDX] = paths[D_DUMP_IDX] + RAM_DUMP;
|
||||||
|
paths[F_ARAMDUMP_IDX] = paths[D_DUMP_IDX] + ARAM_DUMP;
|
||||||
|
paths[F_FAKEVMEMDUMP_IDX] = paths[D_DUMP_IDX] + FAKEVMEM_DUMP;
|
||||||
|
paths[F_GCSRAM_IDX] = paths[D_GCUSER_IDX] + GC_SRAM;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case D_CONFIG_IDX:
|
||||||
|
paths[F_DOLPHINCONFIG_IDX] = paths[D_CONFIG_IDX] + DOLPHIN_CONFIG;
|
||||||
|
paths[F_DEBUGGERCONFIG_IDX] = paths[D_CONFIG_IDX] + DEBUGGER_CONFIG;
|
||||||
|
paths[F_LOGGERCONFIG_IDX] = paths[D_CONFIG_IDX] + LOGGER_CONFIG;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case D_GCUSER_IDX:
|
||||||
|
paths[F_GCSRAM_IDX] = paths[D_GCUSER_IDX] + GC_SRAM;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case D_DUMP_IDX:
|
||||||
|
paths[D_DUMPFRAMES_IDX] = paths[D_DUMP_IDX] + DUMP_FRAMES_DIR DIR_SEP;
|
||||||
|
paths[D_DUMPAUDIO_IDX] = paths[D_DUMP_IDX] + DUMP_AUDIO_DIR DIR_SEP;
|
||||||
|
paths[D_DUMPTEXTURES_IDX] = paths[D_DUMP_IDX] + DUMP_TEXTURES_DIR DIR_SEP;
|
||||||
|
paths[D_DUMPDSP_IDX] = paths[D_DUMP_IDX] + DUMP_DSP_DIR DIR_SEP;
|
||||||
|
paths[F_RAMDUMP_IDX] = paths[D_DUMP_IDX] + RAM_DUMP;
|
||||||
|
paths[F_ARAMDUMP_IDX] = paths[D_DUMP_IDX] + ARAM_DUMP;
|
||||||
|
paths[F_FAKEVMEMDUMP_IDX] = paths[D_DUMP_IDX] + FAKEVMEM_DUMP;
|
||||||
|
break;
|
||||||
|
case D_LOGS_IDX:
|
||||||
|
paths[D_MAILLOGS_IDX] = paths[D_LOGS_IDX] + MAIL_LOGS_DIR DIR_SEP;
|
||||||
|
paths[F_MAINLOG_IDX] = paths[D_LOGS_IDX] + MAIN_LOG;
|
||||||
}
|
}
|
||||||
|
|
||||||
paths[D_WIIUSER_IDX] = paths[D_WIIROOT_IDX] + DIR_SEP;
|
paths[D_WIIUSER_IDX] = paths[D_WIIROOT_IDX] + DIR_SEP;
|
||||||
@ -729,6 +792,7 @@ const std::string& GetUserPath(const unsigned int DirIDX, const std::string &new
|
|||||||
paths[D_WIISYSCONF_IDX] = paths[D_WIIUSER_IDX] + WII_SYSCONF_DIR + DIR_SEP;
|
paths[D_WIISYSCONF_IDX] = paths[D_WIIUSER_IDX] + WII_SYSCONF_DIR + DIR_SEP;
|
||||||
paths[F_WIISYSCONF_IDX] = paths[D_WIISYSCONF_IDX] + WII_SYSCONF;
|
paths[F_WIISYSCONF_IDX] = paths[D_WIISYSCONF_IDX] + WII_SYSCONF;
|
||||||
}
|
}
|
||||||
|
|
||||||
return paths[DirIDX];
|
return paths[DirIDX];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,71 +32,42 @@ CWII_IPC_HLE_Device_usb_oh1_57e_305::CWII_IPC_HLE_Device_usb_oh1_57e_305(u32 _De
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
u8 maxWM = min<u8>(BT_DINF.num_registered, MAX_BBMOTES);
|
|
||||||
bdaddr_t tmpBD = BDADDR_ANY;
|
bdaddr_t tmpBD = BDADDR_ANY;
|
||||||
u8 i = 0;
|
u8 i = 0;
|
||||||
while (i < maxWM)
|
while (i < MAX_BBMOTES)
|
||||||
{
|
{
|
||||||
tmpBD.b[5] = BT_DINF.active[i].bdaddr[0] = BT_DINF.registered[i].bdaddr[0];
|
if (i < BT_DINF.num_registered)
|
||||||
tmpBD.b[4] = BT_DINF.active[i].bdaddr[1] = BT_DINF.registered[i].bdaddr[1];
|
|
||||||
tmpBD.b[3] = BT_DINF.active[i].bdaddr[2] = BT_DINF.registered[i].bdaddr[2];
|
|
||||||
tmpBD.b[2] = BT_DINF.active[i].bdaddr[3] = BT_DINF.registered[i].bdaddr[3];
|
|
||||||
tmpBD.b[1] = BT_DINF.active[i].bdaddr[4] = BT_DINF.registered[i].bdaddr[4];
|
|
||||||
tmpBD.b[0] = BT_DINF.active[i].bdaddr[5] = BT_DINF.registered[i].bdaddr[5];
|
|
||||||
if(i == WIIMOTE_BALANCE_BOARD)
|
|
||||||
{
|
{
|
||||||
const char * wmName = "Nintendo RVL-WBC-01";
|
tmpBD.b[5] = BT_DINF.active[i].bdaddr[0] = BT_DINF.registered[i].bdaddr[0];
|
||||||
memcpy(BT_DINF.registered[i].name, wmName, 20);
|
tmpBD.b[4] = BT_DINF.active[i].bdaddr[1] = BT_DINF.registered[i].bdaddr[1];
|
||||||
memcpy(BT_DINF.balance_board.name, wmName, 20);
|
tmpBD.b[3] = BT_DINF.active[i].bdaddr[2] = BT_DINF.registered[i].bdaddr[2];
|
||||||
|
tmpBD.b[2] = BT_DINF.active[i].bdaddr[3] = BT_DINF.registered[i].bdaddr[3];
|
||||||
|
tmpBD.b[1] = BT_DINF.active[i].bdaddr[4] = BT_DINF.registered[i].bdaddr[4];
|
||||||
|
tmpBD.b[0] = BT_DINF.active[i].bdaddr[5] = BT_DINF.registered[i].bdaddr[5];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
const char * wmName = "Nintendo RVL-CNT-01";
|
tmpBD.b[5] = BT_DINF.active[i].bdaddr[0] = BT_DINF.registered[i].bdaddr[0] = i;
|
||||||
memcpy(BT_DINF.registered[i].name, wmName, 20);
|
tmpBD.b[4] = BT_DINF.active[i].bdaddr[1] = BT_DINF.registered[i].bdaddr[1] = 0;
|
||||||
memcpy(BT_DINF.active[i].name, wmName, 20);
|
tmpBD.b[3] = BT_DINF.active[i].bdaddr[2] = BT_DINF.registered[i].bdaddr[2] = 0x79;
|
||||||
|
tmpBD.b[2] = BT_DINF.active[i].bdaddr[3] = BT_DINF.registered[i].bdaddr[3] = 0x19;
|
||||||
|
tmpBD.b[1] = BT_DINF.active[i].bdaddr[4] = BT_DINF.registered[i].bdaddr[4] = 2;
|
||||||
|
tmpBD.b[0] = BT_DINF.active[i].bdaddr[5] = BT_DINF.registered[i].bdaddr[5] = 0x11;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char* wmName;
|
||||||
|
if (i == WIIMOTE_BALANCE_BOARD)
|
||||||
|
wmName = "Nintendo RVL-WBC-01";
|
||||||
|
else
|
||||||
|
wmName = "Nintendo RVL-CNT-01";
|
||||||
|
memcpy(BT_DINF.registered[i].name, wmName, 20);
|
||||||
|
memcpy(BT_DINF.active[i].name, wmName, 20);
|
||||||
|
|
||||||
INFO_LOG(WII_IPC_WIIMOTE, "Wiimote %d BT ID %x,%x,%x,%x,%x,%x", i, tmpBD.b[0], tmpBD.b[1], tmpBD.b[2], tmpBD.b[3], tmpBD.b[4], tmpBD.b[5]);
|
INFO_LOG(WII_IPC_WIIMOTE, "Wiimote %d BT ID %x,%x,%x,%x,%x,%x", i, tmpBD.b[0], tmpBD.b[1], tmpBD.b[2], tmpBD.b[3], tmpBD.b[4], tmpBD.b[5]);
|
||||||
m_WiiMotes.push_back(CWII_IPC_HLE_WiiMote(this, i, tmpBD, false));
|
m_WiiMotes.push_back(CWII_IPC_HLE_WiiMote(this, i, tmpBD, false));
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
while (i < MAX_BBMOTES)
|
|
||||||
{
|
|
||||||
if(i == WIIMOTE_BALANCE_BOARD)
|
|
||||||
{
|
|
||||||
const char * wmName = "Nintendo RVL-WBC-01";
|
|
||||||
++BT_DINF.num_registered;
|
|
||||||
BT_DINF.balance_board.bdaddr[0] = BT_DINF.registered[i].bdaddr[0] = tmpBD.b[5] = i;
|
|
||||||
BT_DINF.balance_board.bdaddr[1] = BT_DINF.registered[i].bdaddr[1] = tmpBD.b[4] = 0;
|
|
||||||
BT_DINF.balance_board.bdaddr[2] = BT_DINF.registered[i].bdaddr[2] = tmpBD.b[3] = 0x79;
|
|
||||||
BT_DINF.balance_board.bdaddr[3] = BT_DINF.registered[i].bdaddr[3] = tmpBD.b[2] = 0x19;
|
|
||||||
BT_DINF.balance_board.bdaddr[4] = BT_DINF.registered[i].bdaddr[4] = tmpBD.b[1] = 2;
|
|
||||||
BT_DINF.balance_board.bdaddr[5] = BT_DINF.registered[i].bdaddr[5] = tmpBD.b[0] = 0x11;
|
|
||||||
memcpy(BT_DINF.registered[i].name, wmName, 20);
|
|
||||||
memcpy(BT_DINF.balance_board.name, wmName, 20);
|
|
||||||
|
|
||||||
INFO_LOG(WII_IPC_WIIMOTE, "Balance Board %d BT ID %x,%x,%x,%x,%x,%x", i, tmpBD.b[0], tmpBD.b[1], tmpBD.b[2], tmpBD.b[3], tmpBD.b[4], tmpBD.b[5]);
|
|
||||||
m_WiiMotes.push_back(CWII_IPC_HLE_WiiMote(this, i, tmpBD, false));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
const char * wmName = "Nintendo RVL-CNT-01";
|
|
||||||
++BT_DINF.num_registered;
|
|
||||||
BT_DINF.active[i].bdaddr[0] = BT_DINF.registered[i].bdaddr[0] = tmpBD.b[5] = i;
|
|
||||||
BT_DINF.active[i].bdaddr[1] = BT_DINF.registered[i].bdaddr[1] = tmpBD.b[4] = 0;
|
|
||||||
BT_DINF.active[i].bdaddr[2] = BT_DINF.registered[i].bdaddr[2] = tmpBD.b[3] = 0x79;
|
|
||||||
BT_DINF.active[i].bdaddr[3] = BT_DINF.registered[i].bdaddr[3] = tmpBD.b[2] = 0x19;
|
|
||||||
BT_DINF.active[i].bdaddr[4] = BT_DINF.registered[i].bdaddr[4] = tmpBD.b[1] = 2;
|
|
||||||
BT_DINF.active[i].bdaddr[5] = BT_DINF.registered[i].bdaddr[5] = tmpBD.b[0] = 0x11;
|
|
||||||
memcpy(BT_DINF.registered[i].name, wmName, 20);
|
|
||||||
|
|
||||||
INFO_LOG(WII_IPC_WIIMOTE, "Adding to SYSConf Wiimote %d BT ID %x,%x,%x,%x,%x,%x", i, tmpBD.b[0], tmpBD.b[1], tmpBD.b[2], tmpBD.b[3], tmpBD.b[4], tmpBD.b[5]);
|
|
||||||
m_WiiMotes.push_back(CWII_IPC_HLE_WiiMote(this, i, tmpBD, false));
|
|
||||||
|
|
||||||
}
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
|
|
||||||
// save now so that when games load sysconf file it includes the new wiimotes
|
// save now so that when games load sysconf file it includes the new wiimotes
|
||||||
// and the correct order for connected wiimotes
|
// and the correct order for connected wiimotes
|
||||||
if (!SConfig::GetInstance().m_SYSCONF->SetArrayData("BT.DINF", (u8*)&BT_DINF, sizeof(_conf_pads)) || !SConfig::GetInstance().m_SYSCONF->Save())
|
if (!SConfig::GetInstance().m_SYSCONF->SetArrayData("BT.DINF", (u8*)&BT_DINF, sizeof(_conf_pads)) || !SConfig::GetInstance().m_SYSCONF->Save())
|
||||||
|
@ -286,8 +286,7 @@ private:
|
|||||||
{
|
{
|
||||||
u8 num_registered;
|
u8 num_registered;
|
||||||
_conf_pad_device registered[CONF_PAD_MAX_REGISTERED];
|
_conf_pad_device registered[CONF_PAD_MAX_REGISTERED];
|
||||||
_conf_pad_device active[MAX_WIIMOTES];
|
_conf_pad_device active[MAX_BBMOTES];
|
||||||
_conf_pad_device balance_board;
|
|
||||||
u8 unknown[0x45];
|
u8 unknown[0x45];
|
||||||
};
|
};
|
||||||
#pragma pack(pop)
|
#pragma pack(pop)
|
||||||
|
@ -187,6 +187,12 @@ unsigned int NetPlayServer::OnConnect(sf::SocketTCP& socket)
|
|||||||
socket.Send(spac);
|
socket.Send(spac);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// send the pad buffer value
|
||||||
|
spac.Clear();
|
||||||
|
spac << (MessageId)NP_MSG_PAD_BUFFER;
|
||||||
|
spac << (u32)m_target_buffer_size;
|
||||||
|
socket.Send(spac);
|
||||||
|
|
||||||
// sync values with new client
|
// sync values with new client
|
||||||
std::map<sf::SocketTCP, Client>::const_iterator
|
std::map<sf::SocketTCP, Client>::const_iterator
|
||||||
i,
|
i,
|
||||||
|
@ -128,6 +128,7 @@ bool DolphinApp::OnInit()
|
|||||||
|
|
||||||
wxString videoBackendName;
|
wxString videoBackendName;
|
||||||
wxString audioEmulationName;
|
wxString audioEmulationName;
|
||||||
|
wxString userPath;
|
||||||
|
|
||||||
#if wxUSE_CMDLINE_PARSER // Parse command lines
|
#if wxUSE_CMDLINE_PARSER // Parse command lines
|
||||||
wxCmdLineEntryDesc cmdLineDesc[] =
|
wxCmdLineEntryDesc cmdLineDesc[] =
|
||||||
@ -172,6 +173,11 @@ bool DolphinApp::OnInit()
|
|||||||
"Play a movie file",
|
"Play a movie file",
|
||||||
wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL
|
wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
wxCMD_LINE_OPTION, "U", "user",
|
||||||
|
"User folder path",
|
||||||
|
wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL
|
||||||
|
},
|
||||||
{
|
{
|
||||||
wxCMD_LINE_NONE, NULL, NULL, NULL, wxCMD_LINE_VAL_NONE, 0
|
wxCMD_LINE_NONE, NULL, NULL, NULL, wxCMD_LINE_VAL_NONE, 0
|
||||||
}
|
}
|
||||||
@ -193,6 +199,12 @@ bool DolphinApp::OnInit()
|
|||||||
selectAudioEmulation = parser.Found(wxT("audio_emulation"),
|
selectAudioEmulation = parser.Found(wxT("audio_emulation"),
|
||||||
&audioEmulationName);
|
&audioEmulationName);
|
||||||
playMovie = parser.Found(wxT("movie"), &movieFile);
|
playMovie = parser.Found(wxT("movie"), &movieFile);
|
||||||
|
|
||||||
|
if (parser.Found(wxT("user"), &userPath))
|
||||||
|
{
|
||||||
|
File::CreateFullPath(WxStrToStr(userPath) + DIR_SEP);
|
||||||
|
File::GetUserPath(D_USER_IDX, userPath.ToStdString() + DIR_SEP);
|
||||||
|
}
|
||||||
#endif // wxUSE_CMDLINE_PARSER
|
#endif // wxUSE_CMDLINE_PARSER
|
||||||
|
|
||||||
#if defined _DEBUG && defined _WIN32
|
#if defined _DEBUG && defined _WIN32
|
||||||
|
@ -154,7 +154,7 @@ void RunGpuLoop()
|
|||||||
fifo.isGpuReadingData = true;
|
fifo.isGpuReadingData = true;
|
||||||
CommandProcessor::isPossibleWaitingSetDrawDone = fifo.bFF_GPLinkEnable ? true : false;
|
CommandProcessor::isPossibleWaitingSetDrawDone = fifo.bFF_GPLinkEnable ? true : false;
|
||||||
|
|
||||||
if (Common::AtomicLoad(CommandProcessor::VITicks) > CommandProcessor::m_cpClockOrigin || !Core::g_CoreStartupParameter.bSyncGPU)
|
if (!Core::g_CoreStartupParameter.bSyncGPU || Common::AtomicLoad(CommandProcessor::VITicks) > CommandProcessor::m_cpClockOrigin)
|
||||||
{
|
{
|
||||||
u32 readPtr = fifo.CPReadPointer;
|
u32 readPtr = fifo.CPReadPointer;
|
||||||
u8 *uData = Memory::GetPointer(readPtr);
|
u8 *uData = Memory::GetPointer(readPtr);
|
||||||
@ -171,7 +171,7 @@ void RunGpuLoop()
|
|||||||
|
|
||||||
cyclesExecuted = OpcodeDecoder_Run(g_bSkipCurrentFrame);
|
cyclesExecuted = OpcodeDecoder_Run(g_bSkipCurrentFrame);
|
||||||
|
|
||||||
if (Common::AtomicLoad(CommandProcessor::VITicks) > cyclesExecuted && Core::g_CoreStartupParameter.bSyncGPU)
|
if (Core::g_CoreStartupParameter.bSyncGPU && Common::AtomicLoad(CommandProcessor::VITicks) > cyclesExecuted)
|
||||||
Common::AtomicAdd(CommandProcessor::VITicks, -(s32)cyclesExecuted);
|
Common::AtomicAdd(CommandProcessor::VITicks, -(s32)cyclesExecuted);
|
||||||
|
|
||||||
Common::AtomicStore(fifo.CPReadPointer, readPtr);
|
Common::AtomicStore(fifo.CPReadPointer, readPtr);
|
||||||
|
Reference in New Issue
Block a user