(view as text)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4921fe9..ab44090 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -29,7 +29,7 @@ if (APPLE)
 			set(CMAKE_CXX_COMPILER "clang++")
 		endif()
 	endif()
-	if (NOT DEFINED CMAKE_CXX_COMPILER)
+	if (NOT DEFINED CMAKE_C_COMPILER)
 		set(CMAKE_C_COMPILER "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang")
 		if (NOT EXISTS "${CMAKE_C_COMPILER}")
 			set(CMAKE_C_COMPILER "clang")
@@ -555,7 +555,7 @@ endif()
 
 if(OPENAL_FOUND)
 	if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
-		check_lib(SOUNDTOUCH SoundTouch soundtouch/soundtouch.h QUIET)
+		check_lib(SOUNDTOUCH SoundTouch soundtouch/SoundTouch.h QUIET)
 	endif()
 	if (SOUNDTOUCH_FOUND)
 		message("Using shared soundtouch")
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/about/AboutActivity.java b/Source/Android/src/org/dolphinemu/dolphinemu/about/AboutActivity.java
index d544d7e..c19bc9f 100644
--- a/Source/Android/src/org/dolphinemu/dolphinemu/about/AboutActivity.java
+++ b/Source/Android/src/org/dolphinemu/dolphinemu/about/AboutActivity.java
@@ -1,3 +1,9 @@
+/**
+ * Copyright 2014 Dolphin Emulator Project
+ * Licensed under GPLv2
+ * Refer to the license.txt file included.
+ */
+
 package org.dolphinemu.dolphinemu.about;
 
 import org.dolphinemu.dolphinemu.R;
@@ -10,17 +16,10 @@ import android.app.Activity;
 import android.app.Fragment;
 import android.app.FragmentManager;
 import android.app.FragmentTransaction;
-import android.content.Context;
 import android.os.Bundle;
 import android.support.v13.app.FragmentPagerAdapter;
 import android.support.v4.view.ViewPager;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ArrayAdapter;
-import android.widget.TextView;
 
-import java.util.List;
 
 /**
  * Activity for the about menu, which displays info
@@ -31,75 +30,6 @@ public final class AboutActivity extends Activity implements TabListener
 	private ViewPager viewPager;
 	private final EGLHelper eglHelper = new EGLHelper(EGLHelper.EGL_OPENGL_ES2_BIT);
 
-	// Represents an item in the multiple About fragments.
-	public static final class AboutFragmentItem
-	{
-		private final String title;
-		private final String subtitle;
-
-		public AboutFragmentItem(String title, String subtitle)
-		{
-			this.title = title;
-			this.subtitle = subtitle;
-		}
-
-		public String getTitle()
-		{
-			return title;
-		}
-
-		public String getSubTitle()
-		{
-			return subtitle;
-		}
-	}
-
-	// The adapter that manages the displaying of items in multiple About fragments.
-	public static final class InfoFragmentAdapter extends ArrayAdapter<AboutFragmentItem>
-	{
-		private final int id;
-		private final List<AboutFragmentItem> items;
-
-		public InfoFragmentAdapter(Context ctx, int id, List<AboutFragmentItem> items)
-		{
-			super(ctx, id, items);
-
-			this.id = id;
-			this.items = items;
-		}
-
-		@Override
-		public AboutFragmentItem getItem(int index)
-		{
-			return items.get(index);
-		}
-
-		@Override
-		public View getView(int position, View convertView, ViewGroup parent)
-		{
-			if (convertView == null)
-			{
-				LayoutInflater vi = LayoutInflater.from(getContext());
-				convertView = vi.inflate(id, parent, false);
-			}
-
-			final AboutFragmentItem item = items.get(position);
-			if (item != null)
-			{
-				TextView title    = (TextView) convertView.findViewById(R.id.AboutItemTitle);
-				TextView subtitle = (TextView) convertView.findViewById(R.id.AboutItemSubTitle);
-
-				if (title != null)
-					title.setText(item.getTitle());
-
-				if (subtitle != null)
-					subtitle.setText(item.getSubTitle());
-			}
-
-			return convertView;
-		}
-	}
-
 	@Override
 	protected void onCreate(Bundle savedInstanceState)
 	{
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/about/AboutFragmentItem.java b/Source/Android/src/org/dolphinemu/dolphinemu/about/AboutFragmentItem.java
new file mode 100644
index 0000000..cc220ed
--- /dev/null
+++ b/Source/Android/src/org/dolphinemu/dolphinemu/about/AboutFragmentItem.java
@@ -0,0 +1,49 @@
+/**
+ * Copyright 2014 Dolphin Emulator Project
+ * Licensed under GPLv2
+ * Refer to the license.txt file included.
+ */
+
+package org.dolphinemu.dolphinemu.about;
+
+/**
+ * Represents an item within an info
+ * {@list Fragment} in the About menu.
+ */
+final class AboutFragmentItem
+{
+	private final String title;
+	private final String subtitle;
+
+	/**
+	 * Constructor
+	 * 
+	 * @param title    The title of this item.
+	 * @param subtitle The subtitle for this item.
+	 */
+	public AboutFragmentItem(String title, String subtitle)
+	{
+		this.title = title;
+		this.subtitle = subtitle;
+	}
+
+	/**
+	 * Gets the title of this item.
+	 * 
+	 * @return the title of this item.
+	 */
+	public String getTitle()
+	{
+		return title;
+	}
+
+	/**
+	 * Gets the subtitle of this item.
+	 * 
+	 * @return the subtitle of this item.
+	 */
+	public String getSubTitle()
+	{
+		return subtitle;
+	}
+}
\ No newline at end of file
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/about/AboutInfoFragmentAdapter.java b/Source/Android/src/org/dolphinemu/dolphinemu/about/AboutInfoFragmentAdapter.java
new file mode 100644
index 0000000..abf2fd2
--- /dev/null
+++ b/Source/Android/src/org/dolphinemu/dolphinemu/about/AboutInfoFragmentAdapter.java
@@ -0,0 +1,67 @@
+/**
+ * Copyright 2014 Dolphin Emulator Project
+ * Licensed under GPLv2
+ * Refer to the license.txt file included.
+ */
+
+package org.dolphinemu.dolphinemu.about;
+
+import java.util.List;
+
+import org.dolphinemu.dolphinemu.R;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.TextView;
+
+/**
+ * {@link ArrayAdapter} subclass specifically for the
+ * information fragments within the about menu.
+ */
+final class AboutInfoFragmentAdapter extends ArrayAdapter<AboutFragmentItem>
+{
+	private final int id;
+	private final List<AboutFragmentItem> items;
+
+	public AboutInfoFragmentAdapter(Context ctx, int id, List<AboutFragmentItem> items)
+	{
+		super(ctx, id, items);
+
+		this.id = id;
+		this.items = items;
+	}
+
+	@Override
+	public AboutFragmentItem getItem(int index)
+	{
+		return items.get(index);
+	}
+
+	@Override
+	public View getView(int position, View convertView, ViewGroup parent)
+	{
+		if (convertView == null)
+		{
+			LayoutInflater vi = LayoutInflater.from(getContext());
+			convertView = vi.inflate(id, parent, false);
+		}
+
+		final AboutFragmentItem item = items.get(position);
+		if (item != null)
+		{
+			TextView title    = (TextView) convertView.findViewById(R.id.AboutItemTitle);
+			TextView subtitle = (TextView) convertView.findViewById(R.id.AboutItemSubTitle);
+
+			if (title != null)
+				title.setText(item.getTitle());
+
+			if (subtitle != null)
+				subtitle.setText(item.getSubTitle());
+		}
+
+		return convertView;
+	}
+}
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/about/CPUInfoFragment.java b/Source/Android/src/org/dolphinemu/dolphinemu/about/CPUInfoFragment.java
index ddf1e0f..4183740 100644
--- a/Source/Android/src/org/dolphinemu/dolphinemu/about/CPUInfoFragment.java
+++ b/Source/Android/src/org/dolphinemu/dolphinemu/about/CPUInfoFragment.java
@@ -1,10 +1,15 @@
+/**
+ * Copyright 2014 Dolphin Emulator Project
+ * Licensed under GPLv2
+ * Refer to the license.txt file included.
+ */
+
 package org.dolphinemu.dolphinemu.about;
 
 import java.util.ArrayList;
 import java.util.List;
 
 import org.dolphinemu.dolphinemu.R;
-import org.dolphinemu.dolphinemu.about.AboutActivity.AboutFragmentItem;
 import org.dolphinemu.dolphinemu.utils.CPUHelper;
 
 import android.app.ListFragment;
@@ -25,7 +30,7 @@ public final class CPUInfoFragment extends ListFragment
 	public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
 	{
 		ListView rootView = (ListView) inflater.inflate(R.layout.gamelist_listview, container, false);
-		List<AboutActivity.AboutFragmentItem> items = new ArrayList<AboutActivity.AboutFragmentItem>();
+		List<AboutFragmentItem> items = new ArrayList<AboutFragmentItem>();
 
 		CPUHelper cpuHelper = new CPUHelper(getActivity());
 
@@ -39,7 +44,7 @@ public final class CPUInfoFragment extends ListFragment
 		if (CPUHelper.isARM())
 			items.add(new AboutFragmentItem(getString(R.string.cpu_implementer), cpuHelper.getImplementer()));
 
-		AboutActivity.InfoFragmentAdapter adapter = new AboutActivity.InfoFragmentAdapter(getActivity(), R.layout.about_layout, items);
+		AboutInfoFragmentAdapter adapter = new AboutInfoFragmentAdapter(getActivity(), R.layout.about_layout, items);
 		rootView.setAdapter(adapter);
 
 		return rootView;
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/about/DolphinInfoFragment.java b/Source/Android/src/org/dolphinemu/dolphinemu/about/DolphinInfoFragment.java
index af7d1a1..69f8961 100644
--- a/Source/Android/src/org/dolphinemu/dolphinemu/about/DolphinInfoFragment.java
+++ b/Source/Android/src/org/dolphinemu/dolphinemu/about/DolphinInfoFragment.java
@@ -1,5 +1,5 @@
 /**
- * Copyright 2013 Dolphin Emulator Project
+ * Copyright 2014 Dolphin Emulator Project
  * Licensed under GPLv2
  * Refer to the license.txt file included.
  */
@@ -18,8 +18,6 @@ import java.util.List;
 
 import org.dolphinemu.dolphinemu.NativeLibrary;
 import org.dolphinemu.dolphinemu.R;
-import org.dolphinemu.dolphinemu.about.AboutActivity.AboutFragmentItem;
-import org.dolphinemu.dolphinemu.about.AboutActivity.InfoFragmentAdapter;
 import org.dolphinemu.dolphinemu.utils.EGLHelper;
 
 /**
@@ -41,7 +39,7 @@ public final class DolphinInfoFragment extends ListFragment
 		Input.add(new AboutFragmentItem(getString(R.string.supports_gles3), eglHelper.supportsGLES3() ? yes : no));
 		Input.add(new AboutFragmentItem(getString(R.string.supports_neon),  NativeLibrary.SupportsNEON() ? yes : no));
 
-		InfoFragmentAdapter adapter = new InfoFragmentAdapter(getActivity(), R.layout.about_layout, Input);
+		AboutInfoFragmentAdapter adapter = new AboutInfoFragmentAdapter(getActivity(), R.layout.about_layout, Input);
 		rootView.setAdapter(adapter);
 		rootView.setEnabled(false);  // Makes the list view non-clickable.
 
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/about/GLES2InfoFragment.java b/Source/Android/src/org/dolphinemu/dolphinemu/about/GLES2InfoFragment.java
index 9525161..08784db 100644
--- a/Source/Android/src/org/dolphinemu/dolphinemu/about/GLES2InfoFragment.java
+++ b/Source/Android/src/org/dolphinemu/dolphinemu/about/GLES2InfoFragment.java
@@ -1,5 +1,5 @@
 /**
- * Copyright 2013 Dolphin Emulator Project
+ * Copyright 2014 Dolphin Emulator Project
  * Licensed under GPLv2
  * Refer to the license.txt file included.
  */
@@ -57,12 +57,12 @@ public final class GLES2InfoFragment extends ListFragment
 		final EGLHelper eglHelper = new EGLHelper(EGLHelper.EGL_OPENGL_ES2_BIT);
 
 		ListView rootView = (ListView) inflater.inflate(R.layout.gamelist_listview, container, false);
-		List<AboutActivity.AboutFragmentItem> Input = new ArrayList<AboutActivity.AboutFragmentItem>();
+		List<AboutFragmentItem> Input = new ArrayList<AboutFragmentItem>();
 
 		for (Limit limit : Limits)
 		{
 			Log.i("GLES2InfoFragment", "Getting enum " + limit.name);
-			Input.add(new AboutActivity.AboutFragmentItem(limit.name, limit.GetValue(eglHelper)));
+			Input.add(new AboutFragmentItem(limit.name, limit.GetValue(eglHelper)));
 		}
 
 		// Get extensions manually
@@ -72,9 +72,9 @@ public final class GLES2InfoFragment extends ListFragment
 		{
 			extensionsBuilder.append(extension).append('\n');
 		}
-		Input.add(new AboutActivity.AboutFragmentItem("OpenGL ES 2.0 Extensions", extensionsBuilder.toString()));
+		Input.add(new AboutFragmentItem("OpenGL ES 2.0 Extensions", extensionsBuilder.toString()));
 
-		AboutActivity.InfoFragmentAdapter adapter = new AboutActivity.InfoFragmentAdapter(getActivity(), R.layout.about_layout, Input);
+		AboutInfoFragmentAdapter adapter = new AboutInfoFragmentAdapter(getActivity(), R.layout.about_layout, Input);
 		rootView.setAdapter(adapter);
 
 		return rootView;
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/about/GLES3InfoFragment.java b/Source/Android/src/org/dolphinemu/dolphinemu/about/GLES3InfoFragment.java
index 17ba496..2c4649f 100644
--- a/Source/Android/src/org/dolphinemu/dolphinemu/about/GLES3InfoFragment.java
+++ b/Source/Android/src/org/dolphinemu/dolphinemu/about/GLES3InfoFragment.java
@@ -1,5 +1,5 @@
 /**
- * Copyright 2013 Dolphin Emulator Project
+ * Copyright 2014 Dolphin Emulator Project
  * Licensed under GPLv2
  * Refer to the license.txt file included.
  */
@@ -89,12 +89,12 @@ public final class GLES3InfoFragment extends ListFragment
 		final EGLHelper eglHelper = new EGLHelper(EGLHelper.EGL_OPENGL_ES3_BIT_KHR);
 
 		ListView rootView = (ListView) inflater.inflate(R.layout.gamelist_listview, container, false);
-		List<AboutActivity.AboutFragmentItem> Input = new ArrayList<AboutActivity.AboutFragmentItem>();
+		List<AboutFragmentItem> Input = new ArrayList<AboutFragmentItem>();
 
 		for (Limit limit : Limits)
 		{
 			Log.i("GLES3InfoFragment", "Getting enum " + limit.name);
-			Input.add(new AboutActivity.AboutFragmentItem(limit.name, limit.GetValue(eglHelper)));
+			Input.add(new AboutFragmentItem(limit.name, limit.GetValue(eglHelper)));
 		}
 
 		// Get extensions manually
@@ -104,9 +104,9 @@ public final class GLES3InfoFragment extends ListFragment
 		{
 			extensionsBuilder.append(eglHelper.glGetStringi(GLES30.GL_EXTENSIONS, i)).append('\n');
 		}
-		Input.add(new AboutActivity.AboutFragmentItem("OpenGL ES 3.0 Extensions", extensionsBuilder.toString()));
+		Input.add(new AboutFragmentItem("OpenGL ES 3.0 Extensions", extensionsBuilder.toString()));
 
-		AboutActivity.InfoFragmentAdapter adapter = new AboutActivity.InfoFragmentAdapter(getActivity(), R.layout.about_layout, Input);
+		AboutInfoFragmentAdapter adapter = new AboutInfoFragmentAdapter(getActivity(), R.layout.about_layout, Input);
 		rootView.setAdapter(adapter);
 
 		return rootView;
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/about/GLInfoFragment.java b/Source/Android/src/org/dolphinemu/dolphinemu/about/GLInfoFragment.java
index 448f56d..828b8dc 100644
--- a/Source/Android/src/org/dolphinemu/dolphinemu/about/GLInfoFragment.java
+++ b/Source/Android/src/org/dolphinemu/dolphinemu/about/GLInfoFragment.java
@@ -1,5 +1,5 @@
 /**
- * Copyright 2013 Dolphin Emulator Project
+ * Copyright 2014 Dolphin Emulator Project
  * Licensed under GPLv2
  * Refer to the license.txt file included.
  */
@@ -44,12 +44,12 @@ public final class GLInfoFragment extends ListFragment
 		final EGLHelper eglHelper = new EGLHelper(EGLHelper.EGL_OPENGL_BIT);
 
 		ListView rootView = (ListView) inflater.inflate(R.layout.gamelist_listview, container, false);
-		List<AboutActivity.AboutFragmentItem> Input = new ArrayList<AboutActivity.AboutFragmentItem>();
+		List<AboutFragmentItem> Input = new ArrayList<AboutFragmentItem>();
 
 		for (Limit limit : Limits)
 		{
 			Log.i("GLInfoFragment", "Getting enum " + limit.name);
-			Input.add(new AboutActivity.AboutFragmentItem(limit.name, limit.GetValue(eglHelper)));
+			Input.add(new AboutFragmentItem(limit.name, limit.GetValue(eglHelper)));
 		}
 
 		// Get extensions manually
@@ -59,9 +59,9 @@ public final class GLInfoFragment extends ListFragment
 		{
 			extensionsBuilder.append(eglHelper.glGetStringi(GL10.GL_EXTENSIONS, i)).append('\n');
 		}
-		Input.add(new AboutActivity.AboutFragmentItem("OpenGL Extensions", extensionsBuilder.toString()));
+		Input.add(new AboutFragmentItem("OpenGL Extensions", extensionsBuilder.toString()));
 
-		AboutActivity.InfoFragmentAdapter adapter = new AboutActivity.InfoFragmentAdapter(getActivity(), R.layout.about_layout, Input);
+		AboutInfoFragmentAdapter adapter = new AboutInfoFragmentAdapter(getActivity(), R.layout.about_layout, Input);
 		rootView.setAdapter(adapter);
 
 		return rootView;
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/about/Limit.java b/Source/Android/src/org/dolphinemu/dolphinemu/about/Limit.java
index 96b206b..9cbd15f 100644
--- a/Source/Android/src/org/dolphinemu/dolphinemu/about/Limit.java
+++ b/Source/Android/src/org/dolphinemu/dolphinemu/about/Limit.java
@@ -1,3 +1,9 @@
+/**
+ * Copyright 2014 Dolphin Emulator Project
+ * Licensed under GPLv2
+ * Refer to the license.txt file included.
+ */
+
 package org.dolphinemu.dolphinemu.about;
 
 import org.dolphinemu.dolphinemu.utils.EGLHelper;
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/emulation/EmulationActivity.java b/Source/Android/src/org/dolphinemu/dolphinemu/emulation/EmulationActivity.java
index 7f68965..cb13b9e 100644
--- a/Source/Android/src/org/dolphinemu/dolphinemu/emulation/EmulationActivity.java
+++ b/Source/Android/src/org/dolphinemu/dolphinemu/emulation/EmulationActivity.java
@@ -255,18 +255,13 @@ public final class EmulationActivity extends Activity
 				AlertDialog.Builder builder = new AlertDialog.Builder(this);
 				builder.setTitle(getString(R.string.overlay_exit_emulation));
 				builder.setMessage(R.string.overlay_exit_emulation_confirm);
+				builder.setNegativeButton(R.string.no, null);
 				builder.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
 					public void onClick(DialogInterface dialog, int which)
 					{
 						finish();
 					}
 				});
-				builder.setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {
-					public void onClick(DialogInterface dialog, int which)
-					{
-						// Do nothing. Just makes the No button appear.
-					}
-				});
 				builder.show();
 				return true;
 			}
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/settings/video/VideoSettingsFragment.java b/Source/Android/src/org/dolphinemu/dolphinemu/settings/video/VideoSettingsFragment.java
index 5059fe9..94e411c 100644
--- a/Source/Android/src/org/dolphinemu/dolphinemu/settings/video/VideoSettingsFragment.java
+++ b/Source/Android/src/org/dolphinemu/dolphinemu/settings/video/VideoSettingsFragment.java
@@ -107,11 +107,7 @@ public final class VideoSettingsFragment extends PreferenceFragment
 							AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
 							builder.setTitle(R.string.device_compat_warning);
 							builder.setMessage(R.string.device_gles3compat_warning_msg);
-							builder.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
-								public void onClick(DialogInterface dialog, int which) {
-									// Do Nothing. Just create the Yes button
-								}
-							});
+							builder.setPositiveButton(R.string.yes, null);
 							builder.setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {
 								public void onClick(DialogInterface dialog, int which)
 								{
diff --git a/Source/Core/Core/ActionReplay.cpp b/Source/Core/Core/ActionReplay.cpp
index 8b3b36b..70193fd 100644
--- a/Source/Core/Core/ActionReplay.cpp
+++ b/Source/Core/Core/ActionReplay.cpp
@@ -283,13 +283,10 @@ bool RunCode(const ARCode &arcode)
 	LogInfo("Code Name: %s", arcode.name.c_str());
 	LogInfo("Number of codes: %i", arcode.ops.size());
 
-	std::vector<AREntry>::const_iterator
-		iter = arcode.ops.begin(),
-		ops_end = arcode.ops.end();
-	for (; iter != ops_end; ++iter)
+	for (const AREntry& entry : arcode.ops)
 	{
-		const ARAddr& addr = *(ARAddr*)&iter->cmd_addr;
-		const u32 data = iter->value;
+		const ARAddr& addr = *(ARAddr*)&entry.cmd_addr;
+		const u32 data = entry.value;
 
 		// after a conditional code, skip lines if needed
 		if (skip_count)
diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/UCode_AX.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/UCode_AX.cpp
index 2141b9c..f7eea84 100644
--- a/Source/Core/Core/HW/DSPHLE/UCodes/UCode_AX.cpp
+++ b/Source/Core/Core/HW/DSPHLE/UCodes/UCode_AX.cpp
@@ -669,7 +669,6 @@ void CUCode_AX::HandleMail(u32 mail)
 	{
 		CopyCmdList(mail, cmdlist_size);
 		StartWorking();
-		NotifyAXThread();
 	}
 	else if (m_UploadSetupInProgress)
 	{
diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/UCode_ROM.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/UCode_ROM.cpp
index 1a90597..6048fd4 100644
--- a/Source/Core/Core/HW/DSPHLE/UCodes/UCode_ROM.cpp
+++ b/Source/Core/Core/HW/DSPHLE/UCodes/UCode_ROM.cpp
@@ -57,10 +57,6 @@ void CUCode_Rom::HandleMail(u32 _uMail)
 				m_CurrentUCode.m_Length = _uMail & 0xffff;
 				break;
 
-			case 0x80F3C002:
-				m_CurrentUCode.m_IMEMAddress = _uMail & 0xffff;
-				break;
-
 			case 0x80F3B002:
 				m_CurrentUCode.m_DMEMLength = _uMail & 0xffff;
 				if (m_CurrentUCode.m_DMEMLength) {
@@ -68,16 +64,17 @@ void CUCode_Rom::HandleMail(u32 _uMail)
 				}
 				break;
 
+			case 0x80F3C002:
+				m_CurrentUCode.m_IMEMAddress = _uMail & 0xffff;
+				break;
+
 			case 0x80F3D001:
-			{
 				m_CurrentUCode.m_StartPC = _uMail & 0xffff;
 				BootUCode();
 				return;  // Important! BootUCode indirectly does "delete this;". Must exit immediately.
-			}
-			break;
 
 			default:
-			break;
+				break;
 		}
 
 		// THE GODDAMN OVERWRITE WAS HERE. Without the return above, since BootUCode may delete "this", well ...
diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/UCode_Zelda.cpp b/Source/Core/Core/HW/DSPHLE/UCodes/UCode_Zelda.cpp
index 7c8536c..62c67d7 100644
--- a/Source/Core/Core/HW/DSPHLE/UCodes/UCode_Zelda.cpp
+++ b/Source/Core/Core/HW/DSPHLE/UCodes/UCode_Zelda.cpp
@@ -58,7 +58,7 @@ CUCode_Zelda::CUCode_Zelda(DSPHLE *dsp_hle, u32 _CRC)
 
 	if (IsLightVersion())
 	{
-		NOTICE_LOG(DSPHLE, "Luigi Stylee!");
+		DEBUG_LOG(DSPHLE, "Luigi Stylee!");
 		m_rMailHandler.PushMail(0x88881111);
 	}
 	else
@@ -92,9 +92,9 @@ CUCode_Zelda::~CUCode_Zelda()
 u8 *CUCode_Zelda::GetARAMPointer(u32 address)
 {
 	if (IsDMAVersion())
-		return (u8 *)(Memory::GetPointer(m_DMABaseAddr)) + address;
+		return Memory::GetPointer(m_DMABaseAddr) + address;
 	else
-		return (u8 *)(DSP::GetARAMPtr()) + address;
+		return DSP::GetARAMPtr() + address;
 }
 
 void CUCode_Zelda::Update(int cycles)
diff --git a/Source/Core/Core/HW/Wiimote.cpp b/Source/Core/Core/HW/Wiimote.cpp
index f93aa1c..6ca0118 100644
--- a/Source/Core/Core/HW/Wiimote.cpp
+++ b/Source/Core/Core/HW/Wiimote.cpp
@@ -24,11 +24,10 @@ InputPlugin *GetPlugin()
 
 void Shutdown()
 {
-	std::vector<ControllerEmu*>::const_iterator
-		i = g_plugin.controllers.begin(),
-		e = g_plugin.controllers.end();
-	for ( ; i!=e; ++i )
-		delete *i;
+	for (const ControllerEmu* i : g_plugin.controllers)
+	{
+		delete i;
+	}
 	g_plugin.controllers.clear();
 
 	WiimoteReal::Stop();
diff --git a/Source/Core/Core/PowerPC/Interpreter/Interpreter.h b/Source/Core/Core/PowerPC/Interpreter/Interpreter.h
index b1321df..1f0b234 100644
--- a/Source/Core/Core/PowerPC/Interpreter/Interpreter.h
+++ b/Source/Core/Core/PowerPC/Interpreter/Interpreter.h
@@ -206,7 +206,6 @@ public:
 	static void stwcxd(UGeckoInstruction _inst);
 	static void stwux(UGeckoInstruction _inst);
 	static void stwx(UGeckoInstruction _inst);
-	static void sync(UGeckoInstruction _inst);
 	static void tlbia(UGeckoInstruction _inst);
 	static void tlbie(UGeckoInstruction _inst);
 	static void tlbsync(UGeckoInstruction _inst);
@@ -281,15 +280,31 @@ public:
 	static void mcrf(UGeckoInstruction _inst);
 	static void rfi(UGeckoInstruction _inst);
 	static void rfid(UGeckoInstruction _inst);
-//   static void sync(UGeckoInstruction _inst);
+	static void sync(UGeckoInstruction _inst);
 	static void isync(UGeckoInstruction _inst);
 
+	static _interpreterInstruction m_opTable[64];
+	static _interpreterInstruction m_opTable4[1024];
+	static _interpreterInstruction m_opTable19[1024];
+	static _interpreterInstruction m_opTable31[1024];
+	static _interpreterInstruction m_opTable59[32];
+	static _interpreterInstruction m_opTable63[1024];
+
+	// singleton
+	static Interpreter* getInstance();
+
 	static void RunTable4(UGeckoInstruction _instCode);
 	static void RunTable19(UGeckoInstruction _instCode);
 	static void RunTable31(UGeckoInstruction _instCode);
 	static void RunTable59(UGeckoInstruction _instCode);
 	static void RunTable63(UGeckoInstruction _instCode);
 
+private:
+	Interpreter() { }
+	~Interpreter() { }
+	Interpreter(const Interpreter &);
+	Interpreter& operator=(const Interpreter&);
+
 	// flag helper
 	static void Helper_UpdateCR0(u32 _uValue);
 	static void Helper_UpdateCR1(double _fValue);
@@ -310,22 +325,6 @@ public:
 	// other helper
 	static u32 Helper_Mask(int mb, int me);
 
-	static _interpreterInstruction m_opTable[64];
-	static _interpreterInstruction m_opTable4[1024];
-	static _interpreterInstruction m_opTable19[1024];
-	static _interpreterInstruction m_opTable31[1024];
-	static _interpreterInstruction m_opTable59[32];
-	static _interpreterInstruction m_opTable63[1024];
-
-	// singleton
-	static Interpreter *getInstance();
-
-private:
-	Interpreter() { }
-	~Interpreter() { }
-	Interpreter(const Interpreter &);
-	Interpreter & operator=(const Interpreter &);
-
 	static void Helper_FloatCompareOrdered(UGeckoInstruction _inst, double a, double b);
 	static void Helper_FloatCompareUnordered(UGeckoInstruction _inst, double a, double b);
 
diff --git a/Source/Core/DiscIO/FileMonitor.cpp b/Source/Core/DiscIO/FileMonitor.cpp
index e04bc22..34790ff 100644
--- a/Source/Core/DiscIO/FileMonitor.cpp
+++ b/Source/Core/DiscIO/FileMonitor.cpp
@@ -46,7 +46,11 @@ bool IsSoundFile(const std::string& filename)
 		".dsp",   // Metroid Prime
 		".hps",   // SSB Melee
 		".ogg",   // Tony Hawk's Underground 2
-		".sad"    // Disaster 
+		".sad",   // Disaster
+		".snd",   // Tales of Symphonia
+		".song",  // Tales of Symphonia
+		".ssm",   // Custom Robo, Kirby Air Ride, etc.
+		".str",   // Harry Potter & the Sorcerer's Stone
 	};
 
 	return extensions.find(extension) != extensions.end();
diff --git a/Source/Core/DolphinWX/CheatsWindow.cpp b/Source/Core/DolphinWX/CheatsWindow.cpp
index 007dcb2..c89e16f 100644
--- a/Source/Core/DolphinWX/CheatsWindow.cpp
+++ b/Source/Core/DolphinWX/CheatsWindow.cpp
@@ -547,12 +547,9 @@ void CheatSearchTab::UpdateCheatSearchResultsList()
 	}
 	else
 	{
-		std::vector<CheatSearchResult>::const_iterator
-			i = search_results.begin(),
-			e = search_results.end();
-		for (; i!=e; ++i)
+		for (const CheatSearchResult& result : search_results)
 		{
-			u32 display_value = i->old_value;
+			u32 display_value = result.old_value;
 
 			// #ifdef LIL_ENDIAN :p
 			switch (search_type_size)
@@ -574,7 +571,7 @@ void CheatSearchTab::UpdateCheatSearchResultsList()
 			rowfmt[14] = (wxChar)(wxT('0') + search_type_size*2);
 
 			lbox_search_results->Append(
-				wxString::Format(rowfmt, i->address, display_value, display_value, display_value));
+				wxString::Format(rowfmt, result.address, display_value, display_value, display_value));
 		}
 	}
 
diff --git a/Source/Core/DolphinWX/GeckoCodeDiag.cpp b/Source/Core/DolphinWX/GeckoCodeDiag.cpp
index 345fa91..97bf0c8 100644
--- a/Source/Core/DolphinWX/GeckoCodeDiag.cpp
+++ b/Source/Core/DolphinWX/GeckoCodeDiag.cpp
@@ -88,14 +88,13 @@ void CodeConfigPanel::UpdateCodeList(bool checkRunning)
 
 	m_listbox_gcodes->Clear();
 	// add the codes to the listbox
-	std::vector<GeckoCode>::const_iterator
-		gcodes_iter = m_gcodes.begin(),
-		gcodes_end = m_gcodes.end();
-	for (; gcodes_iter!=gcodes_end; ++gcodes_iter)
+	for (const GeckoCode& code : m_gcodes)
 	{
-		m_listbox_gcodes->Append(StrToWxStr(gcodes_iter->name));
-		if (gcodes_iter->enabled)
+		m_listbox_gcodes->Append(StrToWxStr(code.name));
+		if (code.enabled)
+		{
 			m_listbox_gcodes->Check(m_listbox_gcodes->GetCount()-1, true);
+		}
 	}
 
 	wxCommandEvent evt;
@@ -131,21 +130,19 @@ void CodeConfigPanel::UpdateInfoBox(wxCommandEvent&)
 
 		// notes textctrl
 		m_infobox.textctrl_notes->Clear();
-		std::vector<std::string>::const_iterator
-			notes_iter = m_gcodes[sel].notes.begin(),
-			notes_end = m_gcodes[sel].notes.end();
-		for (; notes_iter!=notes_end; ++notes_iter)
-			m_infobox.textctrl_notes->AppendText(StrToWxStr(*notes_iter));
+		for (const std::string& note : m_gcodes[sel].notes)
+		{
+			m_infobox.textctrl_notes->AppendText(StrToWxStr(note));
+		}
 		m_infobox.textctrl_notes->ScrollLines(-99); // silly
 
 		m_infobox.label_creator->SetLabel(wxGetTranslation(wxstr_creator) + StrToWxStr(m_gcodes[sel].creator));
 
 		// add codes to info listbox
-		std::vector<GeckoCode::Code>::const_iterator
-		codes_iter = m_gcodes[sel].codes.begin(),
-		codes_end = m_gcodes[sel].codes.end();
-		for (; codes_iter!=codes_end; ++codes_iter)
-			m_infobox.listbox_codes->Append(wxString::Format(wxT("%08X %08X"), codes_iter->address, codes_iter->data));
+		for (const GeckoCode::Code& code : m_gcodes[sel].codes)
+		{
+			m_infobox.listbox_codes->Append(wxString::Format(wxT("%08X %08X"), code.address, code.data));
+		}
 	}
 	else
 	{
@@ -281,10 +278,7 @@ void CodeConfigPanel::DownloadCodes(wxCommandEvent&)
 			unsigned long added_count = 0;
 
 			// append the codes to the code list
-			std::vector<GeckoCode>::const_iterator
-				gcodes_iter = gcodes.begin(),
-				gcodes_end = gcodes.end();
-			for (; gcodes_iter!= gcodes_end; ++gcodes_iter)
+			for (const GeckoCode& code : gcodes)
 			{
 				// only add codes which do not already exist
 				std::vector<GeckoCode>::const_iterator
@@ -294,13 +288,13 @@ void CodeConfigPanel::DownloadCodes(wxCommandEvent&)
 				{
 					if (existing_gcodes_end == existing_gcodes_iter)
 					{
-						m_gcodes.push_back(*gcodes_iter);
+						m_gcodes.push_back(code);
 						++added_count;
 						break;
 					}
 
 					// code exists
-					if (existing_gcodes_iter->Compare(*gcodes_iter))
+					if (existing_gcodes_iter->Compare(code))
 						break;
 				}
 			}
diff --git a/Source/Core/DolphinWX/VideoConfigDiag.cpp b/Source/Core/DolphinWX/VideoConfigDiag.cpp
index ff61792..392ca6c 100644
--- a/Source/Core/DolphinWX/VideoConfigDiag.cpp
+++ b/Source/Core/DolphinWX/VideoConfigDiag.cpp
@@ -235,11 +235,10 @@ VideoConfigDiag::VideoConfigDiag(wxWindow* parent, const std::string &title, con
 	choice_backend = new wxChoice(page_general, wxID_ANY);
 	RegisterControl(choice_backend, wxGetTranslation(backend_desc));
 
-	std::vector<VideoBackend*>::const_iterator
-			it = g_available_video_backends.begin(),
-			itend = g_available_video_backends.end();
-	for (; it != itend; ++it)
-		choice_backend->AppendString(wxGetTranslation(StrToWxStr((*it)->GetDisplayName())));
+	for (const VideoBackend* backend : g_available_video_backends)
+	{
+		choice_backend->AppendString(wxGetTranslation(StrToWxStr(backend->GetDisplayName())));
+	}
 
 	choice_backend->SetStringSelection(wxGetTranslation(StrToWxStr(g_video_backend->GetDisplayName())));
 	choice_backend->Bind(wxEVT_COMMAND_CHOICE_SELECTED, &VideoConfigDiag::Event_Backend, this);
@@ -259,11 +258,10 @@ VideoConfigDiag::VideoConfigDiag(wxWindow* parent, const std::string &title, con
 	{
 		wxChoice* const choice_adapter = CreateChoice(page_general, vconfig.iAdapter, wxGetTranslation(adapter_desc));
 
-		std::vector<std::string>::const_iterator
-			it = vconfig.backend_info.Adapters.begin(),
-			itend = vconfig.backend_info.Adapters.end();
-		for (; it != itend; ++it)
-			choice_adapter->AppendString(StrToWxStr(*it));
+		for (const std::string& adapter : vconfig.backend_info.Adapters)
+		{
+			choice_adapter->AppendString(StrToWxStr(adapter));
+		}
 
 		choice_adapter->Select(vconfig.iAdapter);
 
@@ -381,11 +379,10 @@ VideoConfigDiag::VideoConfigDiag(wxWindow* parent, const std::string &title, con
 	text_aamode = new wxStaticText(page_enh, -1, _("Anti-Aliasing:"));
 	choice_aamode = CreateChoice(page_enh, vconfig.iMultisampleMode, wxGetTranslation(aa_desc));
 
-	std::vector<std::string>::const_iterator
-		it = vconfig.backend_info.AAModes.begin(),
-		itend = vconfig.backend_info.AAModes.end();
-	for (; it != itend; ++it)
-		choice_aamode->AppendString(wxGetTranslation(StrToWxStr(*it)));
+	for (const std::string& mode : vconfig.backend_info.AAModes)
+	{
+		choice_aamode->AppendString(wxGetTranslation(StrToWxStr(mode)));
+	}
 
 	choice_aamode->Select(vconfig.iMultisampleMode);
 	szr_enh->Add(text_aamode, 1, wxALIGN_CENTER_VERTICAL, 0);
@@ -406,11 +403,10 @@ VideoConfigDiag::VideoConfigDiag(wxWindow* parent, const std::string &title, con
 		RegisterControl(choice_ppshader, wxGetTranslation(ppshader_desc));
 		choice_ppshader->AppendString(_("(off)"));
 
-		std::vector<std::string>::const_iterator
-			it = vconfig.backend_info.PPShaders.begin(),
-			itend = vconfig.backend_info.PPShaders.end();
-		for (; it != itend; ++it)
-			choice_ppshader->AppendString(StrToWxStr(*it));
+		for (const std::string& shader : vconfig.backend_info.PPShaders)
+		{
+			choice_ppshader->AppendString(StrToWxStr(shader));
+		}
 
 		if (vconfig.sPostProcessingShader.empty())
 			choice_ppshader->Select(0);
diff --git a/Source/Core/VideoBackends/OGL/VideoBackend.h b/Source/Core/VideoBackends/OGL/VideoBackend.h
index 8b41b00..8bc1228 100644
--- a/Source/Core/VideoBackends/OGL/VideoBackend.h
+++ b/Source/Core/VideoBackends/OGL/VideoBackend.h
@@ -10,8 +10,8 @@ class VideoBackend : public VideoBackendHardware
 	bool Initialize(void *&) override;
 	void Shutdown() override;
 
-	std::string GetName() override;
-	std::string GetDisplayName() override;
+	std::string GetName() const override;
+	std::string GetDisplayName() const override;
 
 	void Video_Prepare() override;
 	void Video_Cleanup() override;
diff --git a/Source/Core/VideoBackends/OGL/main.cpp b/Source/Core/VideoBackends/OGL/main.cpp
index d902485..35a4d30 100644
--- a/Source/Core/VideoBackends/OGL/main.cpp
+++ b/Source/Core/VideoBackends/OGL/main.cpp
@@ -92,12 +92,12 @@ Make AA apply instantly during gameplay if possible
 namespace OGL
 {
 
-std::string VideoBackend::GetName()
+std::string VideoBackend::GetName() const
 {
 	return "OGL";
 }
 
-std::string VideoBackend::GetDisplayName()
+std::string VideoBackend::GetDisplayName() const
 {
 	if (GLInterface != nullptr && GLInterface->GetMode() == GLInterfaceMode::MODE_OPENGLES3)
 		return "OpenGLES";
diff --git a/Source/Core/VideoBackends/Software/SWmain.cpp b/Source/Core/VideoBackends/Software/SWmain.cpp
index 4651e44..6d7173e 100644
--- a/Source/Core/VideoBackends/Software/SWmain.cpp
+++ b/Source/Core/VideoBackends/Software/SWmain.cpp
@@ -53,7 +53,7 @@ static volatile bool fifoStateRun = false;
 static volatile bool emuRunningState = false;
 static std::mutex m_csSWVidOccupied;
 
-std::string VideoSoftware::GetName()
+std::string VideoSoftware::GetName() const
 {
 	return _trans("Software Renderer");
 }
diff --git a/Source/Core/VideoBackends/Software/VideoBackend.h b/Source/Core/VideoBackends/Software/VideoBackend.h
index 1559427..9ae0999 100644
--- a/Source/Core/VideoBackends/Software/VideoBackend.h
+++ b/Source/Core/VideoBackends/Software/VideoBackend.h
@@ -12,7 +12,7 @@ class VideoSoftware : public VideoBackend
 	bool Initialize(void *&) override;
 	void Shutdown() override;
 
-	std::string GetName() override;
+	std::string GetName() const override;
 
 	void EmuStateChange(EMUSTATE_CHANGE newState) override;
 
diff --git a/Source/Core/VideoBackends/Software/VideoConfigDialog.cpp b/Source/Core/VideoBackends/Software/VideoConfigDialog.cpp
index d730efd..fc205a3 100644
--- a/Source/Core/VideoBackends/Software/VideoConfigDialog.cpp
+++ b/Source/Core/VideoBackends/Software/VideoConfigDialog.cpp
@@ -47,11 +47,10 @@ VideoConfigDialog::VideoConfigDialog(wxWindow* parent, const std::string& title,
 	wxStaticText* const label_backend = new wxStaticText(page_general, wxID_ANY, _("Backend:"));
 	wxChoice* const choice_backend = new wxChoice(page_general, wxID_ANY, wxDefaultPosition);
 
-	std::vector<VideoBackend*>::const_iterator
-			it = g_available_video_backends.begin(),
-			itend = g_available_video_backends.end();
-	for (; it != itend; ++it)
-		choice_backend->AppendString(StrToWxStr((*it)->GetDisplayName()));
+	for (const VideoBackend* backend : g_available_video_backends)
+	{
+		choice_backend->AppendString(StrToWxStr(backend->GetDisplayName()));
+	}
 
 	// TODO: How to get the translated plugin name?
 	choice_backend->SetStringSelection(StrToWxStr(g_video_backend->GetName()));
diff --git a/Source/Core/VideoCommon/VideoBackendBase.h b/Source/Core/VideoCommon/VideoBackendBase.h
index 704afb8..7351d45 100644
--- a/Source/Core/VideoCommon/VideoBackendBase.h
+++ b/Source/Core/VideoCommon/VideoBackendBase.h
@@ -80,8 +80,8 @@ public:
 	virtual void Shutdown() = 0;
 	virtual void RunLoop(bool enable) = 0;
 
-	virtual std::string GetName() = 0;
-	virtual std::string GetDisplayName() { return GetName(); }
+	virtual std::string GetName() const = 0;
+	virtual std::string GetDisplayName() const { return GetName(); }
 
 	virtual void ShowConfig(void*) {}