diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7d94a79a91..dcec534409 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -773,11 +773,6 @@ if((NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin"))
install(DIRECTORY Data/User/ DESTINATION ${datadir}/user PATTERN)
install(DIRECTORY Data/Sys/ DESTINATION ${datadir}/sys PATTERN)
endif()
-include(FindGettext)
-if(GETTEXT_FOUND AND NOT DISABLE_WX)
- file(GLOB LINGUAS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} Languages/po/*.po)
- GETTEXT_CREATE_TRANSLATIONS(Languages/po/dolphin-emu.pot ALL ${LINGUAS})
-endif()
if((NOT ${CMAKE_SYSTEM_NAME} MATCHES "Linux|FreeBSD|Darwin"))
install(FILES Data/license.txt DESTINATION ${datadir})
endif()
diff --git a/Data/User/GameConfig/GH5D52.ini b/Data/User/GameConfig/GH5D52.ini
new file mode 100644
index 0000000000..f573b0530d
--- /dev/null
+++ b/Data/User/GameConfig/GH5D52.ini
@@ -0,0 +1,19 @@
+# GH5D52 - Over The Hedge
+[Core]
+# Values set here will override the main dolphin settings.
+TLBHack = 1
+[EmuState]
+# The Emulation State. 1 is worst, 5 is best, 0 is not set.
+EmulationStateId = 4
+EmulationIssues =
+[OnLoad]
+# Add memory patches to be loaded once on boot here.
+[OnFrame]
+[ActionReplay]
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
diff --git a/Data/User/GameConfig/GH5E52.ini b/Data/User/GameConfig/GH5E52.ini
index fe65a456f9..1426bc6953 100644
--- a/Data/User/GameConfig/GH5E52.ini
+++ b/Data/User/GameConfig/GH5E52.ini
@@ -1,19 +1,19 @@
# GH5E52 - Over The Hedge
-
[Core]
# Values set here will override the main dolphin settings.
-
+TLBHack = 1
[EmuState]
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
-EmulationStateId = 3
-EmulationIssues = Black screen
-
+EmulationStateId = 4
+EmulationIssues =
[OnLoad]
# Add memory patches to be loaded once on boot here.
-
[OnFrame]
-# Add memory patches to be applied every frame here.
-
[ActionReplay]
-# Add action replay cheats here.
-
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
diff --git a/Data/User/GameConfig/GH5F52.ini b/Data/User/GameConfig/GH5F52.ini
new file mode 100644
index 0000000000..f4ad49a646
--- /dev/null
+++ b/Data/User/GameConfig/GH5F52.ini
@@ -0,0 +1,19 @@
+# GH5F52 - Over The Hedge
+[Core]
+# Values set here will override the main dolphin settings.
+TLBHack = 1
+[EmuState]
+# The Emulation State. 1 is worst, 5 is best, 0 is not set.
+EmulationStateId = 4
+EmulationIssues =
+[OnLoad]
+# Add memory patches to be loaded once on boot here.
+[OnFrame]
+[ActionReplay]
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
diff --git a/Data/User/GameConfig/GH5P52.ini b/Data/User/GameConfig/GH5P52.ini
new file mode 100644
index 0000000000..64efb53d59
--- /dev/null
+++ b/Data/User/GameConfig/GH5P52.ini
@@ -0,0 +1,19 @@
+# GH5P52 - Over The Hedge
+[Core]
+# Values set here will override the main dolphin settings.
+TLBHack = 1
+[EmuState]
+# The Emulation State. 1 is worst, 5 is best, 0 is not set.
+EmulationStateId = 4
+EmulationIssues =
+[OnLoad]
+# Add memory patches to be loaded once on boot here.
+[OnFrame]
+[ActionReplay]
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
diff --git a/Data/User/GameConfig/GXGE08.ini b/Data/User/GameConfig/GXGE08.ini
index dd56ca6c1a..8c65c67c22 100644
--- a/Data/User/GameConfig/GXGE08.ini
+++ b/Data/User/GameConfig/GXGE08.ini
@@ -1,19 +1,21 @@
# GXGE08 - MEGAMAN X COLLECTION
-
[Core]
# Values set here will override the main dolphin settings.
-
[EmuState]
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
EmulationStateId = 3
-EmulationIssues =
-
+EmulationIssues =
[OnLoad]
# Add memory patches to be loaded once on boot here.
-
[OnFrame]
-# Add memory patches to be applied every frame here.
-
[ActionReplay]
-# Add action replay cheats here.
-
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Settings]
+SafeTextureCacheColorSamples = 0
diff --git a/Data/User/GameConfig/JADE01.ini b/Data/User/GameConfig/JADE01.ini
index 3d6627c176..0725e57fe3 100644
--- a/Data/User/GameConfig/JADE01.ini
+++ b/Data/User/GameConfig/JADE01.ini
@@ -1,22 +1,20 @@
# JADE01 - The Legend of Zelda A Link to the Past
-
[Core]
# Values set here will override the main dolphin settings.
-
[EmuState]
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
-EmulationIssues =
+EmulationIssues = Enable progressive scan for proper speed.
EmulationStateId = 4
-
[OnLoad]
# Add memory patches to be loaded once on boot here.
-
[OnFrame]
-# Add memory patches to be applied every frame here.
-
[ActionReplay]
-# Add action replay cheats here.
-
[Video]
ProjectionHack = 0
-
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Video_Settings]
+SafeTextureCacheColorSamples = 0
diff --git a/Data/User/GameConfig/JAEE01.ini b/Data/User/GameConfig/JAEE01.ini
index 37fd1a4007..d5cab7b346 100644
--- a/Data/User/GameConfig/JAEE01.ini
+++ b/Data/User/GameConfig/JAEE01.ini
@@ -1,19 +1,21 @@
# JAEE01 - Donkey Kong Country
-
[Core]
# Values set here will override the main dolphin settings.
-
[EmuState]
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
-EmulationStateId = 0
-EmulationIssues =
-
+EmulationStateId = 4
+EmulationIssues = Needs progressive scan for proper speed.
[OnLoad]
# Add memory patches to be loaded once on boot here.
-
[OnFrame]
-# Add memory patches to be applied every frame here.
-
[ActionReplay]
-# Add action replay cheats here.
-
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Settings]
+SafeTextureCacheColorSamples = 512
diff --git a/Data/User/GameConfig/JBKE01.ini b/Data/User/GameConfig/JBKE01.ini
new file mode 100644
index 0000000000..84f693cf41
--- /dev/null
+++ b/Data/User/GameConfig/JBKE01.ini
@@ -0,0 +1,20 @@
+# JBKE01 - Breath of Fire II
+[Core]
+[EmuState]
+EmulationStateId = 4
+EmulationIssues = Needs progressive scan for proper speed.
+[OnFrame]
+[ActionReplay]
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Settings]
+SafeTextureCacheColorSamples = 0
+[Video_Hacks]
+EFBToTextureEnable = False
+EFBCopyEnable = True
diff --git a/Data/User/GameConfig/JCBE01.ini b/Data/User/GameConfig/JCBE01.ini
new file mode 100644
index 0000000000..d50d7125b1
--- /dev/null
+++ b/Data/User/GameConfig/JCBE01.ini
@@ -0,0 +1,17 @@
+# JCBE01 - Super Mario RPG
+[Core]
+[EmuState]
+EmulationStateId = 4
+EmulationIssues = Needs progressive scan for proper speed.
+[OnFrame]
+[ActionReplay]
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Settings]
+SafeTextureCacheColorSamples = 512
diff --git a/Data/User/GameConfig/JCWE01.ini b/Data/User/GameConfig/JCWE01.ini
new file mode 100644
index 0000000000..d2cc9084f5
--- /dev/null
+++ b/Data/User/GameConfig/JCWE01.ini
@@ -0,0 +1,15 @@
+# JCWE01 - Super Mario Kart
+[Core]
+[EmuState]
+EmulationStateId = 4
+EmulationIssues = Enable progressive scan for proper speed.
+[OnFrame]
+[ActionReplay]
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
diff --git a/Data/User/GameConfig/NABE01.ini b/Data/User/GameConfig/NABE01.ini
index a4ae6a39c0..aeb4d2fd8e 100644
--- a/Data/User/GameConfig/NABE01.ini
+++ b/Data/User/GameConfig/NABE01.ini
@@ -1,23 +1,23 @@
# NABE01 - Mario Kart 64
-
[Core]
# Values set here will override the main dolphin settings.
-
[EmuState]
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
-EmulationIssues =
+EmulationIssues =
EmulationStateId = 4
-
[OnLoad]
# Add memory patches to be loaded once on boot here.
-
[OnFrame]
-# Add memory patches to be applied every frame here.
-
[ActionReplay]
-# Add action replay cheats here.
-
[Video]
Hack = -1
ProjectionHack = 0
-
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Hacks]
+EFBToTextureEnable = False
+EFBCopyEnable = True
diff --git a/Data/User/GameConfig/NAHE01.ini b/Data/User/GameConfig/NAHE01.ini
new file mode 100644
index 0000000000..413d20a790
--- /dev/null
+++ b/Data/User/GameConfig/NAHE01.ini
@@ -0,0 +1,17 @@
+# NAHE01 - Yoshi's Story
+[Core]
+[EmuState]
+EmulationStateId = 4
+EmulationIssues =
+[OnFrame]
+[ActionReplay]
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Settings]
+SafeTextureCacheColorSamples = 0
diff --git a/Data/User/GameConfig/NAKE01.ini b/Data/User/GameConfig/NAKE01.ini
new file mode 100644
index 0000000000..d169bc28f6
--- /dev/null
+++ b/Data/User/GameConfig/NAKE01.ini
@@ -0,0 +1,18 @@
+# NAKE01 - Pokémon Snap
+[Core]
+[EmuState]
+EmulationStateId = 3
+EmulationIssues =
+[OnFrame]
+[ActionReplay]
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Hacks]
+EFBToTextureEnable = False
+EFBCopyEnable = True
diff --git a/Data/User/GameConfig/R3RE8P.ini b/Data/User/GameConfig/R3RE8P.ini
index 9aad9d2413..92146e50c6 100644
--- a/Data/User/GameConfig/R3RE8P.ini
+++ b/Data/User/GameConfig/R3RE8P.ini
@@ -1,22 +1,22 @@
# R3RE8P - Sonic & Sega All-Stars Racing
-
[Core]
# Values set here will override the main dolphin settings.
-
[EmuState]
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
EmulationStateId = 4
-EmulationIssues =
-
+EmulationIssues = Use direct 3d 11 for less graphic glitches.
[OnLoad]
# Add memory patches to be loaded once on boot here.
-
[OnFrame]
-# Add memory patches to be applied every frame here.
-
[ActionReplay]
-# Add action replay cheats here.
-
[Video]
ProjectionHack = 0
-
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Hacks]
+EFBToTextureEnable = False
+EFBCopyEnable = True
diff --git a/Data/User/GameConfig/R3RP8P.ini b/Data/User/GameConfig/R3RP8P.ini
index c4d8670718..c32c9bc7cf 100644
--- a/Data/User/GameConfig/R3RP8P.ini
+++ b/Data/User/GameConfig/R3RP8P.ini
@@ -1,19 +1,22 @@
# R3RP8P - Sonic & Sega All-Stars Racing
-
[Core]
# Values set here will override the main dolphin settings.
-
[EmuState]
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
EmulationStateId = 4
-EmulationIssues =
-
+EmulationIssues = Use direct 3d 11 for less graphic glitches.
[OnLoad]
# Add memory patches to be loaded once on boot here.
-
[OnFrame]
-# Add memory patches to be applied every frame here.
-
[ActionReplay]
-# Add action replay cheats here.
-
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Hacks]
+EFBToTextureEnable = False
+EFBCopyEnable = True
diff --git a/Data/User/GameConfig/RHOE8P.ini b/Data/User/GameConfig/RHOE8P.ini
index 82ff52fdad..8d8190877a 100644
--- a/Data/User/GameConfig/RHOE8P.ini
+++ b/Data/User/GameConfig/RHOE8P.ini
@@ -1,49 +1,20 @@
# RHOE8P - House Of The Dead: OVERKILL
-
[Core]
# Values set here will override the main dolphin settings.
-
[EmuState]
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
EmulationStateId = 5
-EmulationIssues = Use dx11 plugin (r6945)
-
+EmulationIssues =
[OnLoad]
# Add memory patches to be loaded once on boot here.
-
[OnFrame]
-# Add memory patches to be applied every frame here.
-
[ActionReplay]
-# Add action replay cheats here.
-
[Video]
ProjectionHack = 0
PH_SZNear = 0
PH_SZFar = 0
PH_ExtraParam = 0
-PH_ZNear =
-PH_ZFar =
-$Infinte Bomb Usage after Getting 1 [g6flavor]
-04159D1C 60000000
-$If Score Increase, MAX [ZiT]
-C2142134 00000002
-3CA03B9B 38A5C9FF
-90A60178 00000000
-$Infinite LIFE [ZiT]
-04130ED4 60000000
-$Infinite Bullet [ZiT]
-04159FAC 907D0720
-$CASH MAX [ZiT]
-C214B118 00000002
-3CA03B9B 38A5C9FF
-90A300D8 00000000
-$CASH MAX [ZiT]
-C214B110 00000002
-3CA03B9B 38A5C9FF
-90A300DC 00000000
-$If Score Increase, MAX [ZiT]
-C2152674 00000002
-3CA03B9B 38A5C9FF
-90B60178 00000000
-
+PH_ZNear =
+PH_ZFar =
+[Video_Hacks]
+EFBEmulateFormatChanges = True
diff --git a/Data/User/GameConfig/RHOJ8P.ini b/Data/User/GameConfig/RHOJ8P.ini
index 549574908c..bdef300ddf 100644
--- a/Data/User/GameConfig/RHOJ8P.ini
+++ b/Data/User/GameConfig/RHOJ8P.ini
@@ -1,22 +1,20 @@
# RHOJ8P - House Of The Dead: OVERKILL
-
[Core]
# Values set here will override the main dolphin settings.
-
[EmuState]
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
EmulationStateId = 5
-EmulationIssues = Use dx11 plugin (r6945)
-
+EmulationIssues =
[OnLoad]
# Add memory patches to be loaded once on boot here.
-
[OnFrame]
-# Add memory patches to be applied every frame here.
-
[ActionReplay]
-# Add action replay cheats here.
-
[Video]
ProjectionHack = 0
-
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Video_Hacks]
+EFBEmulateFormatChanges = True
diff --git a/Data/User/GameConfig/RHOP8P.ini b/Data/User/GameConfig/RHOP8P.ini
index 79a3206066..fa314e84e4 100644
--- a/Data/User/GameConfig/RHOP8P.ini
+++ b/Data/User/GameConfig/RHOP8P.ini
@@ -1,22 +1,20 @@
# RHOP8P - House Of The Dead: OVERKILL
-
[Core]
# Values set here will override the main dolphin settings.
-
[EmuState]
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
EmulationStateId = 5
-EmulationIssues = Use dx11 plugin (r6945)
-
+EmulationIssues =
[OnLoad]
# Add memory patches to be loaded once on boot here.
-
[OnFrame]
-# Add memory patches to be applied every frame here.
-
[ActionReplay]
-# Add action replay cheats here.
-
[Video]
ProjectionHack = 0
-
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Video_Hacks]
+EFBEmulateFormatChanges = True
diff --git a/Data/User/GameConfig/RM8E01.ini b/Data/User/GameConfig/RM8E01.ini
index ad0b0ae81d..608c88ae1d 100644
--- a/Data/User/GameConfig/RM8E01.ini
+++ b/Data/User/GameConfig/RM8E01.ini
@@ -1,34 +1,24 @@
# RM8E01 - Mario Party 8
-
[Core]
# Values set here will override the main dolphin settings.
-
[EmuState]
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
EmulationStateId = 4
-Issues=
-EmulationIssues =
-
+EmulationIssues = Direct 3d9 has issues with paint minigames.
[OnLoad]
# Add memory patches to be loaded once on boot here.
-
[OnFrame]
-# Add memory patches to be applied every frame here.
-
[ActionReplay]
-# Add action replay cheats here.
-
[Video]
ProjectionHack = 0
PH_SZNear = 0
PH_SZFar = 0
PH_ExtraParam = 0
-PH_ZNear =
-PH_ZFar =
-
+PH_ZNear =
+PH_ZFar =
[Video_Enhancements]
ForceFiltering = False
-
[Video_Hacks]
+EFBToTextureEnable = False
+EFBCopyEnable = True
DlistCachingEnable = False
-
diff --git a/Data/User/GameConfig/RM8J01.ini b/Data/User/GameConfig/RM8J01.ini
new file mode 100644
index 0000000000..3c0fc16378
--- /dev/null
+++ b/Data/User/GameConfig/RM8J01.ini
@@ -0,0 +1,24 @@
+# RM8J01 - Mario Party 8
+[Core]
+# Values set here will override the main dolphin settings.
+[EmuState]
+# The Emulation State. 1 is worst, 5 is best, 0 is not set.
+EmulationStateId = 4
+EmulationIssues = Direct 3d9 has issues with paint minigames.
+[OnLoad]
+# Add memory patches to be loaded once on boot here.
+[OnFrame]
+[ActionReplay]
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Video_Enhancements]
+ForceFiltering = False
+[Video_Hacks]
+EFBToTextureEnable = False
+EFBCopyEnable = True
+DlistCachingEnable = False
diff --git a/Data/User/GameConfig/RM8K01.ini b/Data/User/GameConfig/RM8K01.ini
new file mode 100644
index 0000000000..eca45bf7b7
--- /dev/null
+++ b/Data/User/GameConfig/RM8K01.ini
@@ -0,0 +1,24 @@
+# RM8K01 - Mario Party 8
+[Core]
+# Values set here will override the main dolphin settings.
+[EmuState]
+# The Emulation State. 1 is worst, 5 is best, 0 is not set.
+EmulationStateId = 4
+EmulationIssues = Direct 3d9 has issues with paint minigames.
+[OnLoad]
+# Add memory patches to be loaded once on boot here.
+[OnFrame]
+[ActionReplay]
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Video_Enhancements]
+ForceFiltering = False
+[Video_Hacks]
+EFBToTextureEnable = False
+EFBCopyEnable = True
+DlistCachingEnable = False
diff --git a/Data/User/GameConfig/RM8P01.ini b/Data/User/GameConfig/RM8P01.ini
index af6b663910..1d2ecd582c 100644
--- a/Data/User/GameConfig/RM8P01.ini
+++ b/Data/User/GameConfig/RM8P01.ini
@@ -1,33 +1,24 @@
# RM8P01 - Mario Party 8
-
[Core]
# Values set here will override the main dolphin settings.
-
[EmuState]
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
EmulationStateId = 4
-EmulationIssues =
-
+EmulationIssues = Direct 3d9 has issues with paint minigames.
[OnLoad]
# Add memory patches to be loaded once on boot here.
-
[OnFrame]
-# Add memory patches to be applied every frame here.
-
[ActionReplay]
-# Add action replay cheats here.
-
[Video]
ProjectionHack = 0
PH_SZNear = 0
PH_SZFar = 0
PH_ExtraParam = 0
-PH_ZNear =
-PH_ZFar =
-
+PH_ZNear =
+PH_ZFar =
[Video_Enhancements]
ForceFiltering = False
-
[Video_Hacks]
+EFBToTextureEnable = False
+EFBCopyEnable = True
DlistCachingEnable = False
-
diff --git a/Data/User/GameConfig/RT3E54.ini b/Data/User/GameConfig/RT3E54.ini
new file mode 100644
index 0000000000..d175a9bd39
--- /dev/null
+++ b/Data/User/GameConfig/RT3E54.ini
@@ -0,0 +1,18 @@
+# RT3E54 - Rockstar Games presents Table Tennis
+[Core]
+[EmuState]
+EmulationStateId = 3
+EmulationIssues =
+[OnFrame]
+[ActionReplay]
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Settings]
+UseXFB = True
+UseRealXFB = False
diff --git a/Data/User/GameConfig/RT3JEL.ini b/Data/User/GameConfig/RT3JEL.ini
new file mode 100644
index 0000000000..036f24c3fb
--- /dev/null
+++ b/Data/User/GameConfig/RT3JEL.ini
@@ -0,0 +1,18 @@
+# RT3JEL - Rockstar Games presents Table Tennis
+[Core]
+[EmuState]
+EmulationStateId = 3
+EmulationIssues =
+[OnFrame]
+[ActionReplay]
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Settings]
+UseXFB = True
+UseRealXFB = False
diff --git a/Data/User/GameConfig/RT3P54.ini b/Data/User/GameConfig/RT3P54.ini
new file mode 100644
index 0000000000..f9b6824985
--- /dev/null
+++ b/Data/User/GameConfig/RT3P54.ini
@@ -0,0 +1,18 @@
+# RT3P54 - Rockstar Games presents Table Tennis
+[Core]
+[EmuState]
+EmulationStateId = 3
+EmulationIssues =
+[OnFrame]
+[ActionReplay]
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Settings]
+UseXFB = True
+UseRealXFB = False
diff --git a/Data/User/GameConfig/RUUE01.ini b/Data/User/GameConfig/RUUE01.ini
index 1e127bd511..e8e63f861c 100644
--- a/Data/User/GameConfig/RUUE01.ini
+++ b/Data/User/GameConfig/RUUE01.ini
@@ -1,19 +1,22 @@
# RUUE01 - Animal Crossing Wii
-
[Core]
# Values set here will override the main dolphin settings.
-
[EmuState]
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
EmulationStateId = 4
-EmulationIssues =
-
+EmulationIssues =
[OnLoad]
# Add memory patches to be loaded once on boot here.
-
[OnFrame]
-# Add memory patches to be applied every frame here.
-
[ActionReplay]
-# Add action replay cheats here.
-
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Hacks]
+EFBToTextureEnable = False
+EFBCopyEnable = True
diff --git a/Data/User/GameConfig/RUUJ01.ini b/Data/User/GameConfig/RUUJ01.ini
new file mode 100644
index 0000000000..fdeefb5003
--- /dev/null
+++ b/Data/User/GameConfig/RUUJ01.ini
@@ -0,0 +1,22 @@
+# RUUJ01 - Animal Crossing Wii
+[Core]
+# Values set here will override the main dolphin settings.
+[EmuState]
+# The Emulation State. 1 is worst, 5 is best, 0 is not set.
+EmulationStateId = 4
+EmulationIssues =
+[OnLoad]
+# Add memory patches to be loaded once on boot here.
+[OnFrame]
+[ActionReplay]
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Hacks]
+EFBToTextureEnable = False
+EFBCopyEnable = True
diff --git a/Data/User/GameConfig/RUUK01.ini b/Data/User/GameConfig/RUUK01.ini
new file mode 100644
index 0000000000..2bb3818a31
--- /dev/null
+++ b/Data/User/GameConfig/RUUK01.ini
@@ -0,0 +1,22 @@
+# RUUK01 - Animal Crossing Wii
+[Core]
+# Values set here will override the main dolphin settings.
+[EmuState]
+# The Emulation State. 1 is worst, 5 is best, 0 is not set.
+EmulationStateId = 4
+EmulationIssues =
+[OnLoad]
+# Add memory patches to be loaded once on boot here.
+[OnFrame]
+[ActionReplay]
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Hacks]
+EFBToTextureEnable = False
+EFBCopyEnable = True
diff --git a/Data/User/GameConfig/RUUP01.ini b/Data/User/GameConfig/RUUP01.ini
index 673d8ad463..4cb31371ef 100644
--- a/Data/User/GameConfig/RUUP01.ini
+++ b/Data/User/GameConfig/RUUP01.ini
@@ -1,18 +1,22 @@
# RUUP01 - Animal Crossing Wii
-
[Core]
# Values set here will override the main dolphin settings.
-
[EmuState]
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
EmulationStateId = 4
-
+EmulationIssues =
[OnLoad]
# Add memory patches to be loaded once on boot here.
-
[OnFrame]
-# Add memory patches to be applied every frame here.
-
[ActionReplay]
-# Add action replay cheats here.
-
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Hacks]
+EFBToTextureEnable = False
+EFBCopyEnable = True
diff --git a/Data/User/GameConfig/RZTE01.ini b/Data/User/GameConfig/RZTE01.ini
index c9f914d7cb..ef4e34f1f4 100644
--- a/Data/User/GameConfig/RZTE01.ini
+++ b/Data/User/GameConfig/RZTE01.ini
@@ -1,27 +1,21 @@
# RZTE01 - Wii Sports Resort
-
[Core]
# Values set here will override the main dolphin settings.
-
[EmuState]
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
EmulationStateId = 4
EmulationIssues = Needs real wiimote and motion plus.
-
[OnLoad]
# Add memory patches to be loaded once on boot here.
-
[OnFrame]
-# Add memory patches to be applied every frame here.
-
[ActionReplay]
-# Add action replay cheats here.
-
[Video]
ProjectionHack = 0
PH_SZNear = 0
PH_SZFar = 0
PH_ExtraParam = 0
-PH_ZNear =
-PH_ZFar =
-
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Hacks]
+EFBEmulateFormatChanges = True
diff --git a/Data/User/GameConfig/RZTJ01.ini b/Data/User/GameConfig/RZTJ01.ini
index 20a6eec5d6..b416f639bd 100644
--- a/Data/User/GameConfig/RZTJ01.ini
+++ b/Data/User/GameConfig/RZTJ01.ini
@@ -1,27 +1,21 @@
# RZTJ01 - Wii Sports Resort
-
[Core]
# Values set here will override the main dolphin settings.
-
[EmuState]
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
EmulationStateId = 4
EmulationIssues = Needs real wiimote and motion plus.
-
[OnLoad]
# Add memory patches to be loaded once on boot here.
-
[OnFrame]
-# Add memory patches to be applied every frame here.
-
[ActionReplay]
-# Add action replay cheats here.
-
[Video]
ProjectionHack = 0
PH_SZNear = 0
PH_SZFar = 0
PH_ExtraParam = 0
-PH_ZNear =
-PH_ZFar =
-
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Hacks]
+EFBEmulateFormatChanges = True
diff --git a/Data/User/GameConfig/RZTK01.ini b/Data/User/GameConfig/RZTK01.ini
index 4a009c4294..2daa37448a 100644
--- a/Data/User/GameConfig/RZTK01.ini
+++ b/Data/User/GameConfig/RZTK01.ini
@@ -1,27 +1,21 @@
# RZTK01 - Wii Sports Resort
-
[Core]
# Values set here will override the main dolphin settings.
-
[EmuState]
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
EmulationStateId = 4
EmulationIssues = Needs real wiimote and motion plus.
-
[OnLoad]
# Add memory patches to be loaded once on boot here.
-
[OnFrame]
-# Add memory patches to be applied every frame here.
-
[ActionReplay]
-# Add action replay cheats here.
-
[Video]
ProjectionHack = 0
PH_SZNear = 0
PH_SZFar = 0
PH_ExtraParam = 0
-PH_ZNear =
-PH_ZFar =
-
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Hacks]
+EFBEmulateFormatChanges = True
diff --git a/Data/User/GameConfig/RZTP01.ini b/Data/User/GameConfig/RZTP01.ini
index 947ab0e61f..393f8b637a 100644
--- a/Data/User/GameConfig/RZTP01.ini
+++ b/Data/User/GameConfig/RZTP01.ini
@@ -1,27 +1,21 @@
# RZTP01 - Wii Sports Resort
-
[Core]
# Values set here will override the main dolphin settings.
-
[EmuState]
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
EmulationStateId = 4
EmulationIssues = Needs real wiimote and motion plus.
-
[OnLoad]
# Add memory patches to be loaded once on boot here.
-
[OnFrame]
-# Add memory patches to be applied every frame here.
-
[ActionReplay]
-# Add action replay cheats here.
-
[Video]
ProjectionHack = 0
PH_SZNear = 0
PH_SZFar = 0
PH_ExtraParam = 0
-PH_ZNear =
-PH_ZFar =
-
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Hacks]
+EFBEmulateFormatChanges = True
diff --git a/Data/User/GameConfig/RZTW01.ini b/Data/User/GameConfig/RZTW01.ini
index 73af0701dd..bf63686d79 100644
--- a/Data/User/GameConfig/RZTW01.ini
+++ b/Data/User/GameConfig/RZTW01.ini
@@ -1,27 +1,21 @@
# RZTW01 - Wii Sports Resort
-
[Core]
# Values set here will override the main dolphin settings.
-
[EmuState]
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
EmulationStateId = 4
EmulationIssues = Needs real wiimote and motion plus.
-
[OnLoad]
# Add memory patches to be loaded once on boot here.
-
[OnFrame]
-# Add memory patches to be applied every frame here.
-
[ActionReplay]
-# Add action replay cheats here.
-
[Video]
ProjectionHack = 0
PH_SZNear = 0
PH_SZFar = 0
PH_ExtraParam = 0
-PH_ZNear =
-PH_ZFar =
-
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Hacks]
+EFBEmulateFormatChanges = True
diff --git a/Data/User/GameConfig/SJDE41.ini b/Data/User/GameConfig/SJDE41.ini
index f9ed9f80f4..0649746328 100644
--- a/Data/User/GameConfig/SJDE41.ini
+++ b/Data/User/GameConfig/SJDE41.ini
@@ -1,27 +1,20 @@
# SJDE41 - Just Dance 3
-
[Core]
# Values set here will override the main dolphin settings.
-
[EmuState]
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
-EmulationStateId = 3
-EmulationIssues = Suffers from random ingame lock ups.
-
+EmulationStateId = 4
+EmulationIssues =
[OnLoad]
# Add memory patches to be loaded once on boot here.
-
[OnFrame]
-# Add memory patches to be applied every frame here.
-
[ActionReplay]
-# Add action replay cheats here.
-
[Video]
ProjectionHack = 0
PH_SZNear = 0
PH_SZFar = 0
PH_ExtraParam = 0
-PH_ZNear =
-PH_ZFar =
-
+PH_ZNear =
+PH_ZFar =
+[Video_Enhancements]
+MaxAnisotropy = 0
diff --git a/Data/User/GameConfig/SJDP41.ini b/Data/User/GameConfig/SJDP41.ini
index 0de2883f39..56e57306c2 100644
--- a/Data/User/GameConfig/SJDP41.ini
+++ b/Data/User/GameConfig/SJDP41.ini
@@ -1,27 +1,21 @@
# SJDP41 - Just Dance 3
-
[Core]
# Values set here will override the main dolphin settings.
-
[EmuState]
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
-EmulationStateId = 3
-EmulationIssues = Suffers from random ingame lock ups.
-
+EmulationStateId = 4
+EmulationIssues =
[OnLoad]
# Add memory patches to be loaded once on boot here.
-
[OnFrame]
-# Add memory patches to be applied every frame here.
-
[ActionReplay]
-# Add action replay cheats here.
-
[Video]
ProjectionHack = 0
PH_SZNear = 0
PH_SZFar = 0
PH_ExtraParam = 0
-PH_ZNear =
-PH_ZFar =
+PH_ZNear =
+PH_ZFar =
+[Video_Enhancements]
+MaxAnisotropy = 0
diff --git a/Data/User/GameConfig/SJDY41.ini b/Data/User/GameConfig/SJDY41.ini
index c90a989c21..7fd447165a 100644
--- a/Data/User/GameConfig/SJDY41.ini
+++ b/Data/User/GameConfig/SJDY41.ini
@@ -1,27 +1,20 @@
# SJDY41 - Just Dance 3
-
[Core]
# Values set here will override the main dolphin settings.
-
[EmuState]
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
-EmulationStateId = 3
-EmulationIssues = Suffers from random ingame lock ups.
-
+EmulationStateId = 4
+EmulationIssues =
[OnLoad]
# Add memory patches to be loaded once on boot here.
-
[OnFrame]
-# Add memory patches to be applied every frame here.
-
[ActionReplay]
-# Add action replay cheats here.
-
[Video]
ProjectionHack = 0
PH_SZNear = 0
PH_SZFar = 0
PH_ExtraParam = 0
-PH_ZNear =
-PH_ZFar =
-
+PH_ZNear =
+PH_ZFar =
+[Video_Enhancements]
+MaxAnisotropy = 0
diff --git a/Data/User/GameConfig/SJDZ41.ini b/Data/User/GameConfig/SJDZ41.ini
index 0de2883f39..78b32d4e92 100644
--- a/Data/User/GameConfig/SJDZ41.ini
+++ b/Data/User/GameConfig/SJDZ41.ini
@@ -1,27 +1,20 @@
# SJDP41 - Just Dance 3
-
[Core]
# Values set here will override the main dolphin settings.
-
[EmuState]
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
-EmulationStateId = 3
-EmulationIssues = Suffers from random ingame lock ups.
-
+EmulationStateId = 4
+EmulationIssues =
[OnLoad]
# Add memory patches to be loaded once on boot here.
-
[OnFrame]
-# Add memory patches to be applied every frame here.
-
[ActionReplay]
-# Add action replay cheats here.
-
[Video]
ProjectionHack = 0
PH_SZNear = 0
PH_SZFar = 0
PH_ExtraParam = 0
-PH_ZNear =
-PH_ZFar =
-
+PH_ZNear =
+PH_ZFar =
+[Video_Enhancements]
+MaxAnisotropy = 0
diff --git a/Data/User/GameConfig/SOUE01.ini b/Data/User/GameConfig/SOUE01.ini
index d34b216b4e..21b2932d3e 100644
--- a/Data/User/GameConfig/SOUE01.ini
+++ b/Data/User/GameConfig/SOUE01.ini
@@ -1,31 +1,22 @@
# SOUE01 - The Legend of Zelda Skyward Sword
-
[Core]
# Values set here will override the main dolphin settings.
-
[EmuState]
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
EmulationStateId = 4
-EmulationIssues = Needs real wiimote and motion plus. Use direct 3d9 backend for less graphic issues.
-
+EmulationIssues = Needs real wiimote and motion plus.
[OnLoad]
# Add memory patches to be loaded once on boot here.
-
[OnFrame]
-# Add memory patches to be applied every frame here.
-
[ActionReplay]
-# Add action replay cheats here.
-
[Video]
ProjectionHack = 0
PH_SZNear = 0
PH_SZFar = 0
PH_ExtraParam = 0
-PH_ZNear =
-PH_ZFar =
-
+PH_ZNear =
+PH_ZFar =
[Video_Hacks]
EFBAccessEnable = True
DlistCachingEnable = False
-
+EFBEmulateFormatChanges = True
diff --git a/Data/User/GameConfig/SOUJ01.ini b/Data/User/GameConfig/SOUJ01.ini
index 9be2cefa22..cda850cfb3 100644
--- a/Data/User/GameConfig/SOUJ01.ini
+++ b/Data/User/GameConfig/SOUJ01.ini
@@ -1,31 +1,23 @@
# SOUJ01 - The Legend of Zelda Skyward Sword
-
[Core]
# Values set here will override the main dolphin settings.
-
[EmuState]
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
EmulationStateId = 4
-EmulationIssues = Needs real wiimote and motion plus. Use direct 3d9 backend for less graphic issues.
-
+EmulationIssues = Needs real wiimote and motion plus.
[OnLoad]
# Add memory patches to be loaded once on boot here.
-
[OnFrame]
-# Add memory patches to be applied every frame here.
-
[ActionReplay]
-# Add action replay cheats here.
-
[Video]
ProjectionHack = 0
PH_SZNear = 0
PH_SZFar = 0
PH_ExtraParam = 0
-PH_ZNear =
-PH_ZFar =
-
+PH_ZNear =
+PH_ZFar =
[Video_Hacks]
EFBAccessEnable = True
DlistCachingEnable = False
+EFBEmulateFormatChanges = True
diff --git a/Data/User/GameConfig/SOUK01.ini b/Data/User/GameConfig/SOUK01.ini
index 8d332015c3..ddaf1883a9 100644
--- a/Data/User/GameConfig/SOUK01.ini
+++ b/Data/User/GameConfig/SOUK01.ini
@@ -1,31 +1,23 @@
# SOUK01 - The Legend of Zelda Skyward Sword
-
[Core]
# Values set here will override the main dolphin settings.
-
[EmuState]
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
EmulationStateId = 4
-EmulationIssues = Needs real wiimote and motion plus. Use direct 3d9 backend for less graphic issues.
-
+EmulationIssues = Needs real wiimote and motion plus.
[OnLoad]
# Add memory patches to be loaded once on boot here.
-
[OnFrame]
-# Add memory patches to be applied every frame here.
-
[ActionReplay]
-# Add action replay cheats here.
-
[Video]
ProjectionHack = 0
PH_SZNear = 0
PH_SZFar = 0
PH_ExtraParam = 0
-PH_ZNear =
-PH_ZFar =
-
+PH_ZNear =
+PH_ZFar =
[Video_Hacks]
EFBAccessEnable = True
DlistCachingEnable = False
+EFBEmulateFormatChanges = True
diff --git a/Data/User/GameConfig/SOUP01.ini b/Data/User/GameConfig/SOUP01.ini
index c0db560999..bc3ade6a7b 100644
--- a/Data/User/GameConfig/SOUP01.ini
+++ b/Data/User/GameConfig/SOUP01.ini
@@ -1,31 +1,23 @@
# SOUP01 - The Legend of Zelda Skyward Sword
-
[Core]
# Values set here will override the main dolphin settings.
-
[EmuState]
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
EmulationStateId = 4
-EmulationIssues = Needs real wiimote and motion plus. Use direct 3d9 backend for less graphic issues.
-
+EmulationIssues = Needs real wiimote and motion plus.
[OnLoad]
# Add memory patches to be loaded once on boot here.
-
[OnFrame]
-# Add memory patches to be applied every frame here.
-
[ActionReplay]
-# Add action replay cheats here.
-
[Video]
ProjectionHack = 0
PH_SZNear = 0
PH_SZFar = 0
PH_ExtraParam = 0
-PH_ZNear =
-PH_ZFar =
-
+PH_ZNear =
+PH_ZFar =
[Video_Hacks]
EFBAccessEnable = True
DlistCachingEnable = False
+EFBEmulateFormatChanges = True
diff --git a/Data/User/GameConfig/W2GE08.ini b/Data/User/GameConfig/W2GE08.ini
new file mode 100644
index 0000000000..6590a12227
--- /dev/null
+++ b/Data/User/GameConfig/W2GE08.ini
@@ -0,0 +1,17 @@
+# W2GE08 - Phoenix Wright Ace Attorney Justice For All
+[Core]
+[EmuState]
+EmulationStateId = 4
+EmulationIssues =
+[OnFrame]
+[ActionReplay]
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Hacks]
+EFBEmulateFormatChanges = True
diff --git a/Data/User/GameConfig/W3GE08.ini b/Data/User/GameConfig/W3GE08.ini
new file mode 100644
index 0000000000..c21f5b73e0
--- /dev/null
+++ b/Data/User/GameConfig/W3GE08.ini
@@ -0,0 +1,17 @@
+# W3GE08 - Phoenix Wright Ace Attorney Trials and Tribulations
+[Core]
+[EmuState]
+EmulationStateId = 4
+EmulationIssues =
+[OnFrame]
+[ActionReplay]
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Video_Hacks]
+EFBEmulateFormatChanges = True
+[Gecko]
diff --git a/Data/User/GameConfig/WB2ETL.ini b/Data/User/GameConfig/WB2ETL.ini
new file mode 100644
index 0000000000..b7f7d48ca0
--- /dev/null
+++ b/Data/User/GameConfig/WB2ETL.ini
@@ -0,0 +1,18 @@
+# WB2ETL - Dangeresque 3
+[Core]
+[EmuState]
+EmulationStateId = 4
+EmulationIssues =
+[OnFrame]
+[ActionReplay]
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Settings]
+UseXFB = True
+UseRealXFB = False
diff --git a/Data/User/GameConfig/WB3ETL.ini b/Data/User/GameConfig/WB3ETL.ini
new file mode 100644
index 0000000000..2954bef58e
--- /dev/null
+++ b/Data/User/GameConfig/WB3ETL.ini
@@ -0,0 +1,18 @@
+# WB3ETL - 8-Bit Is Enough
+[Core]
+[EmuState]
+EmulationStateId = 4
+EmulationIssues =
+[OnFrame]
+[ActionReplay]
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Settings]
+UseXFB = True
+UseRealXFB = False
diff --git a/Data/User/GameConfig/WB6EGL.ini b/Data/User/GameConfig/WB6EGL.ini
new file mode 100644
index 0000000000..8af762c359
--- /dev/null
+++ b/Data/User/GameConfig/WB6EGL.ini
@@ -0,0 +1,18 @@
+# WB6EGL - TV Show King
+[Core]
+[EmuState]
+EmulationStateId = 4
+EmulationIssues =
+[OnFrame]
+[ActionReplay]
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Settings]
+UseXFB = True
+UseRealXFB = False
diff --git a/Data/User/GameConfig/WBXETL.ini b/Data/User/GameConfig/WBXETL.ini
new file mode 100644
index 0000000000..6520392f0c
--- /dev/null
+++ b/Data/User/GameConfig/WBXETL.ini
@@ -0,0 +1,18 @@
+# WBXETL - Homestar Ruiner
+[Core]
+[EmuState]
+EmulationStateId = 4
+EmulationIssues =
+[OnFrame]
+[ActionReplay]
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Settings]
+UseXFB = True
+UseRealXFB = False
diff --git a/Data/User/GameConfig/WBYETL.ini b/Data/User/GameConfig/WBYETL.ini
new file mode 100644
index 0000000000..55bb77dbb4
--- /dev/null
+++ b/Data/User/GameConfig/WBYETL.ini
@@ -0,0 +1,18 @@
+# WBYETL - StrongBadia the Free
+[Core]
+[EmuState]
+EmulationStateId = 4
+EmulationIssues =
+[OnFrame]
+[ActionReplay]
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Settings]
+UseXFB = True
+UseRealXFB = False
diff --git a/Data/User/GameConfig/WBZETL.ini b/Data/User/GameConfig/WBZETL.ini
new file mode 100644
index 0000000000..3fb8e504d7
--- /dev/null
+++ b/Data/User/GameConfig/WBZETL.ini
@@ -0,0 +1,18 @@
+# WBZETL - Baddest of the Bands
+[Core]
+[EmuState]
+EmulationStateId = 4
+EmulationIssues =
+[OnFrame]
+[ActionReplay]
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Settings]
+UseXFB = True
+UseRealXFB = False
diff --git a/Data/User/GameConfig/WC6EUP.ini b/Data/User/GameConfig/WC6EUP.ini
index 366afca831..8996b68646 100644
--- a/Data/User/GameConfig/WC6EUP.ini
+++ b/Data/User/GameConfig/WC6EUP.ini
@@ -1,22 +1,22 @@
# WC6EUP - Chronos Twins DX
-
[Core]
# Values set here will override the main dolphin settings.
-
[EmuState]
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
EmulationStateId = 4
EmulationIssues = Disable EuRGB60 mode
-
[OnLoad]
# Add memory patches to be loaded once on boot here.
-
[OnFrame]
-# Add memory patches to be applied every frame here.
-
[ActionReplay]
-# Add action replay cheats here.
-
[Video]
ProjectionHack = 0
-
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Settings]
+UseXFB = True
+UseRealXFB = False
diff --git a/Data/User/GameConfig/WCHEJS.ini b/Data/User/GameConfig/WCHEJS.ini
new file mode 100644
index 0000000000..df3f05b26f
--- /dev/null
+++ b/Data/User/GameConfig/WCHEJS.ini
@@ -0,0 +1,22 @@
+# WCHEJS - Chess Challenge!
+[Core]
+[EmuState]
+EmulationStateId = 4
+EmulationIssues =
+[OnFrame]
+[ActionReplay]
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Hacks]
+EFBEmulateFormatChanges = True
+EFBToTextureEnable = False
+EFBCopyEnable = True
+[Video_Settings]
+UseXFB = True
+UseRealXFB = False
diff --git a/Data/User/GameConfig/WFUEQQ.ini b/Data/User/GameConfig/WFUEQQ.ini
new file mode 100644
index 0000000000..fce18cf20c
--- /dev/null
+++ b/Data/User/GameConfig/WFUEQQ.ini
@@ -0,0 +1,18 @@
+# WFUEQQ - Furry Legends
+[Core]
+[EmuState]
+EmulationStateId = 4
+EmulationIssues =
+[OnFrame]
+[ActionReplay]
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Settings]
+UseXFB = True
+UseRealXFB = False
diff --git a/Data/User/GameConfig/WGSE08.ini b/Data/User/GameConfig/WGSE08.ini
index 373710b074..09b38270fc 100644
--- a/Data/User/GameConfig/WGSE08.ini
+++ b/Data/User/GameConfig/WGSE08.ini
@@ -1,19 +1,21 @@
# WGSE08 - PWAA Ace Attorney
-
[Core]
# Values set here will override the main dolphin settings.
-
[EmuState]
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
EmulationStateId = 4
-EmulationIssues =
-
+EmulationIssues =
[OnLoad]
# Add memory patches to be loaded once on boot here.
-
[OnFrame]
-# Add memory patches to be applied every frame here.
-
[ActionReplay]
-# Add action replay cheats here.
-
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Hacks]
+EFBEmulateFormatChanges = True
diff --git a/Data/User/GameConfig/WHWEFJ.ini b/Data/User/GameConfig/WHWEFJ.ini
new file mode 100644
index 0000000000..87fdaae304
--- /dev/null
+++ b/Data/User/GameConfig/WHWEFJ.ini
@@ -0,0 +1,20 @@
+# WHWEFJ - HoopWorld
+[Core]
+[EmuState]
+EmulationStateId = 4
+EmulationIssues =
+[OnFrame]
+[ActionReplay]
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Settings]
+SafeTextureCacheColorSamples = 0
+[Video_Hacks]
+EFBToTextureEnable = False
+EFBCopyEnable = True
diff --git a/Data/User/GameConfig/WHWPFJ.ini b/Data/User/GameConfig/WHWPFJ.ini
new file mode 100644
index 0000000000..0c658b96f6
--- /dev/null
+++ b/Data/User/GameConfig/WHWPFJ.ini
@@ -0,0 +1,20 @@
+# WHWPFJ - HoopWorld
+[Core]
+[EmuState]
+EmulationStateId = 4
+EmulationIssues =
+[OnFrame]
+[ActionReplay]
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Settings]
+SafeTextureCacheColorSamples = 0
+[Video_Hacks]
+EFBToTextureEnable = False
+EFBCopyEnable = True
diff --git a/Data/User/GameConfig/WPCE01.ini b/Data/User/GameConfig/WPCE01.ini
index 142c51d931..550e1424b4 100644
--- a/Data/User/GameConfig/WPCE01.ini
+++ b/Data/User/GameConfig/WPCE01.ini
@@ -1,22 +1,19 @@
# WPCE01 - Doc's Punch-Out!!
-
[Core]
# Values set here will override the main dolphin settings.
-
[EmuState]
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
EmulationStateId = 4
-EmulationIssues =
-
+EmulationIssues = Disable EuRGB60 mode
[OnLoad]
# Add memory patches to be loaded once on boot here.
-
[OnFrame]
-# Add memory patches to be applied every frame here.
-
[ActionReplay]
-# Add action replay cheats here.
-
[Video]
ProjectionHack = 0
-
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
diff --git a/Data/User/GameConfig/WPUEGD.ini b/Data/User/GameConfig/WPUEGD.ini
new file mode 100644
index 0000000000..2051ccf6eb
--- /dev/null
+++ b/Data/User/GameConfig/WPUEGD.ini
@@ -0,0 +1,18 @@
+# WPUEGD - Bust A Move Plus
+[Core]
+[EmuState]
+EmulationStateId = 4
+EmulationIssues =
+[OnFrame]
+[ActionReplay]
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Settings]
+UseXFB = True
+UseRealXFB = False
diff --git a/Data/User/GameConfig/WTEELU.ini b/Data/User/GameConfig/WTEELU.ini
new file mode 100644
index 0000000000..f44112dcd3
--- /dev/null
+++ b/Data/User/GameConfig/WTEELU.ini
@@ -0,0 +1,21 @@
+# WTEELU - Tales of Elastic Boy Mission 1
+[Core]
+[EmuState]
+EmulationStateId = 4
+EmulationIssues =
+[OnFrame]
+[ActionReplay]
+[Video]
+ProjectionHack = 0
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Settings]
+UseXFB = True
+UseRealXFB = False
+[Video_Hacks]
+EFBToTextureEnable = False
+EFBCopyEnable = True
diff --git a/Data/User/GameConfig/WTKEGL.ini b/Data/User/GameConfig/WTKEGL.ini
index 532b1b5f75..7af8152062 100644
--- a/Data/User/GameConfig/WTKEGL.ini
+++ b/Data/User/GameConfig/WTKEGL.ini
@@ -1,22 +1,21 @@
# WTKEGL - TV Show King 2
-
[Core]
# Values set here will override the main dolphin settings.
-
[EmuState]
# The Emulation State. 1 is worst, 5 is best, 0 is not set.
EmulationStateId = 4
-EmulationIssues =
-
+EmulationIssues =
[OnLoad]
# Add memory patches to be loaded once on boot here.
-
[OnFrame]
-# Add memory patches to be applied every frame here.
-
[ActionReplay]
-# Add action replay cheats here.
-
[Video]
ProjectionHack = 0
-
+PH_SZNear = 0
+PH_SZFar = 0
+PH_ExtraParam = 0
+PH_ZNear =
+PH_ZFar =
+[Gecko]
+[Video_Settings]
+SafeTextureCacheColorSamples = 512
diff --git a/Source/Android/res/values-ja/strings.xml b/Source/Android/res/values-ja/strings.xml
index d13d4870e4..515c127a9e 100644
--- a/Source/Android/res/values-ja/strings.xml
+++ b/Source/Android/res/values-ja/strings.xml
@@ -82,6 +82,8 @@
OpenGL ES 3
ビデオレンダラ
使用するビデオレンダラー
+ FPSを表示
+ エミュレーション速度の指標として、画面左上に毎秒レンダリングされた フレーム数を表示します。
画面上のコントロールを描画
画質向上の設定
diff --git a/Source/Android/res/values/strings.xml b/Source/Android/res/values/strings.xml
index f598d9d17f..86aa8bedb8 100644
--- a/Source/Android/res/values/strings.xml
+++ b/Source/Android/res/values/strings.xml
@@ -82,6 +82,8 @@
OpenGL ES 3
Video Backend
Video backend to use
+ Show FPS
+ Show the number of frames rendered per second as a measure of emulation speed.
Draw on-screen controls
Enhancements
diff --git a/Source/Android/res/xml/video_prefs.xml b/Source/Android/res/xml/video_prefs.xml
index ec0c1837f7..6ec29c13a0 100644
--- a/Source/Android/res/xml/video_prefs.xml
+++ b/Source/Android/res/xml/video_prefs.xml
@@ -3,66 +3,66 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
+ android:key="gpuPref"
+ android:summary="@string/video_backend_to_use"
+ android:title="@string/video_backend" />
+
+
Main activity.
*/
-public final class DolphinEmulator extends Activity
+public final class DolphinEmulator extends Activity
{
private void CopyAsset(String asset, String output)
{
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/EmulationActivity.java b/Source/Android/src/org/dolphinemu/dolphinemu/EmulationActivity.java
index aab01ad1ce..f982f9871c 100644
--- a/Source/Android/src/org/dolphinemu/dolphinemu/EmulationActivity.java
+++ b/Source/Android/src/org/dolphinemu/dolphinemu/EmulationActivity.java
@@ -14,7 +14,6 @@ import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.util.DisplayMetrics;
-import android.util.Log;
import android.view.InputDevice;
import android.view.KeyEvent;
import android.view.Menu;
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowser.java b/Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowser.java
index 306802a6de..890c43f347 100644
--- a/Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowser.java
+++ b/Source/Android/src/org/dolphinemu/dolphinemu/folderbrowser/FolderBrowser.java
@@ -112,7 +112,7 @@ public final class FolderBrowser extends Fragment
return mDrawerList;
}
- private AdapterView.OnItemClickListener mMenuItemClickListener = new AdapterView.OnItemClickListener()
+ private final AdapterView.OnItemClickListener mMenuItemClickListener = new AdapterView.OnItemClickListener()
{
public void onItemClick(AdapterView> parent, View view, int position, long id)
{
@@ -143,7 +143,6 @@ public final class FolderBrowser extends Fragment
{
String Directories = NativeLibrary.GetConfig("Dolphin.ini", "General", "GCMPathes", "0");
int intDirectories = Integer.parseInt(Directories);
- Directories = Integer.toString(intDirectories + 1);
// Check to see if a path set in the Dolphin config
// matches the one the user is trying to add. If it's
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListActivity.java b/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListActivity.java
index 86deafdeb6..5eaa24f9de 100644
--- a/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListActivity.java
+++ b/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListActivity.java
@@ -178,7 +178,7 @@ public final class GameListActivity extends Activity
}
}
- private AdapterView.OnItemClickListener mMenuItemClickListener = new AdapterView.OnItemClickListener()
+ private final AdapterView.OnItemClickListener mMenuItemClickListener = new AdapterView.OnItemClickListener()
{
public void onItemClick(AdapterView> parent, View view, int position, long id)
{
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListFragment.java b/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListFragment.java
index e0aefa153a..d96a3f8f99 100644
--- a/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListFragment.java
+++ b/Source/Android/src/org/dolphinemu/dolphinemu/gamelist/GameListFragment.java
@@ -120,7 +120,7 @@ public final class GameListFragment extends Fragment
return mMainList;
}
- private AdapterView.OnItemClickListener mGameItemClickListener = new AdapterView.OnItemClickListener()
+ private final AdapterView.OnItemClickListener mGameItemClickListener = new AdapterView.OnItemClickListener()
{
public void onItemClick(AdapterView> parent, View view, int position, long id)
{
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/settings/InputConfigFragment.java b/Source/Android/src/org/dolphinemu/dolphinemu/settings/InputConfigFragment.java
index 132db39ce0..985fb6d45e 100644
--- a/Source/Android/src/org/dolphinemu/dolphinemu/settings/InputConfigFragment.java
+++ b/Source/Android/src/org/dolphinemu/dolphinemu/settings/InputConfigFragment.java
@@ -30,11 +30,10 @@ import org.dolphinemu.dolphinemu.R;
* within the input control mapping config.
*/
public final class InputConfigFragment extends PreferenceFragment
- //implements PrefsActivity.OnGameConfigListener
{
private Activity m_activity;
private boolean firstEvent = true;
- private static ArrayList m_values = new ArrayList();
+ private static final ArrayList m_values = new ArrayList();
/**
* Gets the descriptor for the given {@link InputDevice}.
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/settings/UserPreferences.java b/Source/Android/src/org/dolphinemu/dolphinemu/settings/UserPreferences.java
index 7f4840b9a2..08d6ee2021 100644
--- a/Source/Android/src/org/dolphinemu/dolphinemu/settings/UserPreferences.java
+++ b/Source/Android/src/org/dolphinemu/dolphinemu/settings/UserPreferences.java
@@ -37,7 +37,8 @@ public final class UserPreferences
editor.putString("cpuCorePref", getConfig("Dolphin.ini", "Core", "CPUCore", "3"));
editor.putBoolean("dualCorePref", getConfig("Dolphin.ini", "Core", "CPUThread", "False").equals("True"));
- editor.putString("gpuPref", getConfig("Dolphin.ini", "Core", "GFXBackend ", "Software Renderer"));
+ editor.putString("gpuPref", getConfig("Dolphin.ini", "Core", "GFXBackend ", "Software Renderer"));
+ editor.putBoolean("showFPS", getConfig("gfx_opengl.ini", "Settings", "ShowFPS", "False").equals("True"));
editor.putBoolean("drawOnscreenControls", getConfig("Dolphin.ini", "Android", "ScreenControls", "True").equals("True"));
editor.putString("internalResolution", getConfig("gfx_opengl.ini", "Settings", "EFBScale", "2") );
@@ -120,6 +121,9 @@ public final class UserPreferences
// Current video backend being used. Falls back to software rendering upon error.
String currentVideoBackend = prefs.getString("gpuPref", "Software Rendering");
+ // Whether or not FPS will be displayed on-screen.
+ boolean showingFPS = prefs.getBoolean("showFPS", false);
+
// Whether or not to draw on-screen controls.
boolean drawingOnscreenControls = prefs.getBoolean("drawOnscreenControls", true);
@@ -172,6 +176,7 @@ public final class UserPreferences
// General Video Settings
NativeLibrary.SetConfig("Dolphin.ini", "Core", "GFXBackend", currentVideoBackend);
+ NativeLibrary.SetConfig("gfx_opengl.ini", "Settings", "ShowFPS", showingFPS ? "True" : "False");
NativeLibrary.SetConfig("Dolphin.ini", "Android", "ScreenControls", drawingOnscreenControls ? "True" : "False");
// Video Hack Settings
diff --git a/Source/Android/src/org/dolphinemu/dolphinemu/settings/VideoSettingsFragment.java b/Source/Android/src/org/dolphinemu/dolphinemu/settings/VideoSettingsFragment.java
index b8e82f4dd0..fdaec5df01 100644
--- a/Source/Android/src/org/dolphinemu/dolphinemu/settings/VideoSettingsFragment.java
+++ b/Source/Android/src/org/dolphinemu/dolphinemu/settings/VideoSettingsFragment.java
@@ -16,9 +16,13 @@ import javax.microedition.khronos.opengles.GL10;
import org.dolphinemu.dolphinemu.R;
import android.app.Activity;
+import android.content.SharedPreferences;
+import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.os.Bundle;
import android.preference.ListPreference;
import android.preference.PreferenceFragment;
+import android.preference.PreferenceManager;
+import android.preference.PreferenceScreen;
/**
* Responsible for handling the loading of the video preferences.
@@ -195,6 +199,58 @@ public final class VideoSettingsFragment extends PreferenceFragment
videoBackends.setEntries(R.array.videoBackendEntriesNoGLES3);
videoBackends.setEntryValues(R.array.videoBackendValuesNoGLES3);
}
+
+ //
+ // Disable all options if Software Rendering is used.
+ //
+ // Note that the numeric value in 'getPreference()'
+ // denotes the placement on the UI. So if more elements are
+ // added to the video settings, these may need to change.
+ //
+ final SharedPreferences sPrefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
+ final PreferenceScreen mainScreen = getPreferenceScreen();
+
+ if (videoBackends.getValue().equals("Software Renderer"))
+ {
+ mainScreen.getPreference(0).setEnabled(false);
+ mainScreen.getPreference(1).setEnabled(false);
+ mainScreen.getPreference(3).setEnabled(false);
+ mainScreen.getPreference(4).setEnabled(false);
+ }
+ else if (videoBackends.getValue().equals("OGL"))
+ {
+ mainScreen.getPreference(0).setEnabled(true);
+ mainScreen.getPreference(1).setEnabled(true);
+ mainScreen.getPreference(3).setEnabled(true);
+ mainScreen.getPreference(4).setEnabled(true);
+ }
+
+ // Also set a listener, so that if someone changes the video backend, it will disable
+ // the video settings, upon the user choosing "Software Rendering".
+ sPrefs.registerOnSharedPreferenceChangeListener(new OnSharedPreferenceChangeListener()
+ {
+ @Override
+ public void onSharedPreferenceChanged(SharedPreferences preference, String key)
+ {
+ if (key.equals("gpuPref"))
+ {
+ if (preference.getString(key, "Software Renderer").equals("Software Renderer"))
+ {
+ mainScreen.getPreference(0).setEnabled(false);
+ mainScreen.getPreference(1).setEnabled(false);
+ mainScreen.getPreference(3).setEnabled(false);
+ mainScreen.getPreference(4).setEnabled(false);
+ }
+ else if (preference.getString(key, "Software Renderer").equals("OGL"))
+ {
+ mainScreen.getPreference(0).setEnabled(true);
+ mainScreen.getPreference(1).setEnabled(true);
+ mainScreen.getPreference(3).setEnabled(true);
+ mainScreen.getPreference(4).setEnabled(true);
+ }
+ }
+ }
+ });
}
@Override
diff --git a/Source/Core/Common/Src/ArmEmitter.cpp b/Source/Core/Common/Src/ArmEmitter.cpp
index 2788760c6d..03f29da8bc 100644
--- a/Source/Core/Common/Src/ArmEmitter.cpp
+++ b/Source/Core/Common/Src/ArmEmitter.cpp
@@ -1154,7 +1154,10 @@ void ARMXEmitter::VMOV(ARMReg Dest, ARMReg Src)
else
{
// Move 64bit from Arm reg
- _dbg_assert_msg_(DYNA_REC, false, "This VMOV doesn't support moving 64bit ARM to NEON");
+ ARMReg Src2 = (ARMReg)(Src + 1);
+ Dest = SubBase(Dest);
+ Write32(condition | (0xC4 << 20) | (Src2 << 16) | (Src << 12) \
+ | (0xB << 8) | ((Dest & 0x10) << 1) | (1 << 4) | (Dest & 0xF));
return;
}
}
diff --git a/Source/Core/Common/Src/Common.h b/Source/Core/Common/Src/Common.h
index 9a1ebab8e9..e148b6638c 100644
--- a/Source/Core/Common/Src/Common.h
+++ b/Source/Core/Common/Src/Common.h
@@ -25,15 +25,23 @@ extern const char *netplay_dolphin_ver;
#define STACKALIGN
+#if __cplusplus >= 201103 || defined(_MSC_VER) || defined(__GXX_EXPERIMENTAL_CXX0X__)
+#define HAVE_CXX11_SYNTAX 1
+#endif
+
+#if HAVE_CXX11_SYNTAX
// An inheritable class to disallow the copy constructor and operator= functions
class NonCopyable
{
protected:
NonCopyable() {}
+ NonCopyable(const NonCopyable&&) {}
+ void operator=(const NonCopyable&&) {}
private:
- NonCopyable(const NonCopyable&);
- void operator=(const NonCopyable&);
+ NonCopyable(NonCopyable&);
+ NonCopyable& operator=(NonCopyable& other);
};
+#endif
#include "Log.h"
#include "CommonTypes.h"
diff --git a/Source/Core/Common/Src/FileUtil.cpp b/Source/Core/Common/Src/FileUtil.cpp
index 24f853c0c4..8792321bf0 100644
--- a/Source/Core/Common/Src/FileUtil.cpp
+++ b/Source/Core/Common/Src/FileUtil.cpp
@@ -853,7 +853,7 @@ IOFile::IOFile(IOFile&& other)
IOFile& IOFile::operator=(IOFile&& other)
{
- IOFile((IOFile&&)other).Swap(*this);
+ Swap(other);
return *this;
}
diff --git a/Source/Core/Common/Src/FileUtil.h b/Source/Core/Common/Src/FileUtil.h
index 1147bbdaad..40aba0037d 100644
--- a/Source/Core/Common/Src/FileUtil.h
+++ b/Source/Core/Common/Src/FileUtil.h
@@ -143,7 +143,7 @@ bool ReadFileToString(bool text_file, const char *filename, std::string &str);
// simple wrapper for cstdlib file functions to
// hopefully will make error checking easier
// and make forgetting an fclose() harder
-class IOFile
+class IOFile : public NonCopyable
{
public:
IOFile();
@@ -209,12 +209,11 @@ public:
// clear error state
void Clear() { m_good = true; std::clearerr(m_file); }
-private:
- IOFile(const IOFile&) /*= delete*/;
- IOFile& operator=(const IOFile&) /*= delete*/;
-
std::FILE* m_file;
bool m_good;
+private:
+ IOFile(IOFile&);
+ IOFile& operator=(IOFile& other);
};
} // namespace
diff --git a/Source/Core/Common/Src/StdConditionVariable.h b/Source/Core/Common/Src/StdConditionVariable.h
index 63f4551950..048a7e8975 100644
--- a/Source/Core/Common/Src/StdConditionVariable.h
+++ b/Source/Core/Common/Src/StdConditionVariable.h
@@ -9,7 +9,7 @@
#define __has_include(s) 0
#endif
-#if GCC_VERSION >= GCC_VER(4,4,0) && __GXX_EXPERIMENTAL_CXX0X__ && !ANDROID
+#if GCC_VERSION >= GCC_VER(4,4,0) && __GXX_EXPERIMENTAL_CXX0X__
// GCC 4.4 provides
#include
diff --git a/Source/Core/Common/Src/StdMutex.h b/Source/Core/Common/Src/StdMutex.h
index f66a5d1b2e..ce46a2f591 100644
--- a/Source/Core/Common/Src/StdMutex.h
+++ b/Source/Core/Common/Src/StdMutex.h
@@ -9,7 +9,7 @@
#define __has_include(s) 0
#endif
-#if GCC_VERSION >= GCC_VER(4,4,0) && __GXX_EXPERIMENTAL_CXX0X__ && !ANDROID
+#if GCC_VERSION >= GCC_VER(4,4,0) && __GXX_EXPERIMENTAL_CXX0X__
// GCC 4.4 provides
#include
#elif __has_include() && !ANDROID
diff --git a/Source/Core/Common/Src/StdThread.h b/Source/Core/Common/Src/StdThread.h
index 134bbb2fc0..e43d283443 100644
--- a/Source/Core/Common/Src/StdThread.h
+++ b/Source/Core/Common/Src/StdThread.h
@@ -9,7 +9,7 @@
#define __has_include(s) 0
#endif
-#if GCC_VERSION >= GCC_VER(4,4,0) && __GXX_EXPERIMENTAL_CXX0X__ && !ANDROID
+#if GCC_VERSION >= GCC_VER(4,4,0) && __GXX_EXPERIMENTAL_CXX0X__
// GCC 4.4 provides
#ifndef _GLIBCXX_USE_SCHED_YIELD
#define _GLIBCXX_USE_SCHED_YIELD
diff --git a/Source/Core/Core/Src/Boot/Boot_WiiWAD.cpp b/Source/Core/Core/Src/Boot/Boot_WiiWAD.cpp
index dd4d8e2f2f..d9d9b03021 100644
--- a/Source/Core/Core/Src/Boot/Boot_WiiWAD.cpp
+++ b/Source/Core/Core/Src/Boot/Boot_WiiWAD.cpp
@@ -19,6 +19,8 @@
#include "VolumeCreator.h"
#include "CommonPaths.h"
+#include
+
static u32 state_checksum(u32 *buf, int len)
{
u32 checksum = 0;
@@ -89,9 +91,17 @@ bool CBoot::Boot_WiiWAD(const char* _pFilename)
WII_IPC_HLE_Interface::SetDefaultContentFile(_pFilename);
- CDolLoader DolLoader(pContent->m_pData, pContent->m_Size);
- DolLoader.Load();
- PC = DolLoader.GetEntryPoint() | 0x80000000;
+ std::unique_ptr pDolLoader;
+ if (pContent->m_pData)
+ {
+ pDolLoader.reset(new CDolLoader(pContent->m_pData, pContent->m_Size));
+ }
+ else
+ {
+ pDolLoader.reset(new CDolLoader(pContent->m_Filename.c_str()));
+ }
+ pDolLoader->Load();
+ PC = pDolLoader->GetEntryPoint() | 0x80000000;
// Pass the "#002 check"
// Apploader should write the IOS version and revision to 0x3140, and compare it
diff --git a/Source/Core/Core/Src/ConfigManager.cpp b/Source/Core/Core/Src/ConfigManager.cpp
index c183f88c6a..a84b235b04 100644
--- a/Source/Core/Core/Src/ConfigManager.cpp
+++ b/Source/Core/Core/Src/ConfigManager.cpp
@@ -450,7 +450,7 @@ void SConfig::LoadSettings()
#elif defined __APPLE__
ini.Get("DSP", "Backend", &sBackend, BACKEND_COREAUDIO);
#elif defined _WIN32
- ini.Get("DSP", "Backend", &sBackend, BACKEND_DIRECTSOUND);
+ ini.Get("DSP", "Backend", &sBackend, BACKEND_XAUDIO2);
#elif defined ANDROID
ini.Get("DSP", "Backend", &sBackend, BACKEND_OPENSLES);
#else
diff --git a/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX.cpp b/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX.cpp
index 411624a714..e82ce626c9 100644
--- a/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX.cpp
+++ b/Source/Core/Core/Src/HW/DSPHLE/UCodes/UCode_AX.cpp
@@ -14,7 +14,7 @@ CUCode_AX::CUCode_AX(DSPHLE* dsp_hle, u32 crc)
: IUCode(dsp_hle, crc)
, m_work_available(false)
, m_cmdlist_size(0)
- , m_run_on_thread(SConfig::GetInstance().m_LocalCoreStartupParameter.bDSPThread)
+ , m_run_on_thread(false)
{
WARN_LOG(DSPHLE, "Instantiating CUCode_AX: crc=%08x", crc);
m_rMailHandler.PushMail(DSP_INIT);
@@ -22,6 +22,9 @@ CUCode_AX::CUCode_AX(DSPHLE* dsp_hle, u32 crc)
LoadResamplingCoefficients();
+ // DSP HLE on thread is always disabled because it causes audio
+ // issues/glitching (different timing characteristics). m_run_on_thread is
+ // always false.
if (m_run_on_thread)
m_axthread = std::thread(SpawnAXThread, this);
}
diff --git a/Source/Core/Core/Src/HW/SI.cpp b/Source/Core/Core/Src/HW/SI.cpp
index 9142919346..5574ae536e 100644
--- a/Source/Core/Core/Src/HW/SI.cpp
+++ b/Source/Core/Core/Src/HW/SI.cpp
@@ -262,9 +262,7 @@ void Init()
if (Movie::IsRecordingInput() || Movie::IsPlayingInput())
AddDevice(Movie::IsUsingPad(i) ? (Movie::IsUsingBongo(i) ? SIDEVICE_GC_TARUKONGA : SIDEVICE_GC_CONTROLLER) : SIDEVICE_NONE, i);
- else if (NetPlay::IsNetPlayRunning())
- AddDevice((SIDevices) g_NetPlaySettings.m_Controllers[i], i);
- else
+ else if (!NetPlay::IsNetPlayRunning())
AddDevice(SConfig::GetInstance().m_SIDevice[i], i);
}
@@ -567,7 +565,7 @@ void AddDevice(ISIDevice* pDevice)
void AddDevice(const SIDevices _device, int _iDeviceNumber)
{
- ISIDevice* pDevice = SIDevice_Create(_device, _iDeviceNumber);
+ ISIDevice *pDevice = SIDevice_Create(_device, _iDeviceNumber);
AddDevice(pDevice);
}
diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp
index aa1df13536..dcad297f7d 100644
--- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp
+++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.cpp
@@ -60,7 +60,7 @@ CWII_IPC_HLE_Device_es::CWII_IPC_HLE_Device_es(u32 _DeviceID, const std::string&
: IWII_IPC_HLE_Device(_DeviceID, _rDeviceName)
, m_pContentLoader(NULL)
, m_TitleID(-1)
- , AccessIdentID(0x6000000)
+ , m_AccessIdentID(0x6000000)
{
}
@@ -91,7 +91,7 @@ void CWII_IPC_HLE_Device_es::LoadWAD(const std::string& _rContentFile)
m_ContentFile = _rContentFile;
}
-bool CWII_IPC_HLE_Device_es::Open(u32 _CommandAddress, u32 _Mode)
+void CWII_IPC_HLE_Device_es::OpenInternal()
{
m_pContentLoader = &DiscIO::CNANDContentManager::Access().GetNANDLoader(m_ContentFile);
@@ -119,6 +119,57 @@ bool CWII_IPC_HLE_Device_es::Open(u32 _CommandAddress, u32 _Mode)
}
INFO_LOG(WII_IPC_ES, "Set default title to %08x/%08x", (u32)(m_TitleID>>32), (u32)m_TitleID);
+}
+
+void CWII_IPC_HLE_Device_es::DoState(PointerWrap& p)
+{
+ IWII_IPC_HLE_Device::DoState(p);
+ p.Do(m_ContentFile);
+ OpenInternal();
+ p.Do(m_AccessIdentID);
+ p.Do(m_TitleIDs);
+
+ u32 Count = m_ContentAccessMap.size();
+ p.Do(Count);
+
+ u32 CFD, Position;
+ u64 TitleID;
+ u16 Index;
+ if (p.GetMode() == PointerWrap::MODE_READ)
+ {
+ for (u32 i = 0; i < Count; i++)
+ {
+ p.Do(CFD);
+ p.Do(Position);
+ p.Do(TitleID);
+ p.Do(Index);
+ CFD = OpenTitleContent(CFD, TitleID, Index);
+ if (CFD != 0xffffffff)
+ {
+ m_ContentAccessMap[CFD].m_Position = Position;
+ }
+ }
+ }
+ else
+ {
+ for (auto itr = m_ContentAccessMap.begin(); itr != m_ContentAccessMap.end(); ++itr)
+ {
+ CFD = itr->first;
+ SContentAccess& Access = itr->second;
+ Position = Access.m_Position;
+ TitleID = Access.m_TitleID;
+ Index = Access.m_pContent->m_Index;
+ p.Do(CFD);
+ p.Do(Position);
+ p.Do(TitleID);
+ p.Do(Index);
+ }
+ }
+}
+
+bool CWII_IPC_HLE_Device_es::Open(u32 _CommandAddress, u32 _Mode)
+{
+ OpenInternal();
Memory::Write_U32(GetDeviceID(), _CommandAddress+4);
if (m_Active)
@@ -131,11 +182,15 @@ bool CWII_IPC_HLE_Device_es::Close(u32 _CommandAddress, bool _bForce)
{
// Leave deletion of the INANDContentLoader objects to CNANDContentManager, don't do it here!
m_NANDContent.clear();
+ for (auto itr = m_ContentAccessMap.begin(); itr != m_ContentAccessMap.end(); ++itr)
+ {
+ delete itr->second.m_pFile;
+ }
m_ContentAccessMap.clear();
m_pContentLoader = NULL;
m_TitleIDs.clear();
m_TitleID = -1;
- AccessIdentID = 0x6000000;
+ m_AccessIdentID = 0x6000000;
INFO_LOG(WII_IPC_ES, "ES: Close");
if (!_bForce)
@@ -144,6 +199,45 @@ bool CWII_IPC_HLE_Device_es::Close(u32 _CommandAddress, bool _bForce)
return true;
}
+u32 CWII_IPC_HLE_Device_es::OpenTitleContent(u32 CFD, u64 TitleID, u16 Index)
+{
+ const DiscIO::INANDContentLoader& Loader = AccessContentDevice(TitleID);
+
+ if (!Loader.IsValid())
+ {
+ WARN_LOG(WII_IPC_ES, "ES: loader not valid for %llx", TitleID);
+ return 0xffffffff;
+ }
+
+ const DiscIO::SNANDContent* pContent = Loader.GetContentByIndex(Index);
+
+ if (pContent == NULL)
+ {
+ return 0xffffffff; //TODO: what is the correct error value here?
+ }
+
+ SContentAccess Access;
+ Access.m_Position = 0;
+ Access.m_pContent = pContent;
+ Access.m_TitleID = TitleID;
+
+ if (!pContent->m_pData)
+ {
+ std::string Filename = pContent->m_Filename;
+ INFO_LOG(WII_IPC_ES, "ES: load %s", Filename.c_str());
+
+ Access.m_pFile = new File::IOFile(Filename, "rb");
+ if (!Access.m_pFile->IsGood())
+ {
+ WARN_LOG(WII_IPC_ES, "ES: couldn't load %s", Filename.c_str());
+ return 0xffffffff;
+ }
+ }
+
+ m_ContentAccessMap[CFD] = Access;
+ return CFD;
+}
+
bool CWII_IPC_HLE_Device_es::IOCtlV(u32 _CommandAddress)
{
SIOCtlVBuffer Buffer(_CommandAddress);
@@ -242,16 +336,11 @@ bool CWII_IPC_HLE_Device_es::IOCtlV(u32 _CommandAddress)
u64 TitleID = Memory::Read_U64(Buffer.InBuffer[0].m_Address);
u32 Index = Memory::Read_U32(Buffer.InBuffer[2].m_Address);
- u32 CFD = AccessIdentID++;
- m_ContentAccessMap[CFD].m_Position = 0;
- m_ContentAccessMap[CFD].m_pContent = AccessContentDevice(TitleID).GetContentByIndex(Index);
- _dbg_assert_msg_(WII_IPC_ES, m_ContentAccessMap[CFD].m_pContent != NULL, "No Content for TitleID: %08x/%08x at Index %x", (u32)(TitleID>>32), (u32)TitleID, Index);
- // Fix for DLC by itsnotmailmail
- if (m_ContentAccessMap[CFD].m_pContent == NULL)
- CFD = 0xffffffff; //TODO: what is the correct error value here?
+ u32 CFD = OpenTitleContent(m_AccessIdentID++, TitleID, Index);
Memory::Write_U32(CFD, _CommandAddress + 0x4);
INFO_LOG(WII_IPC_ES, "IOCTL_ES_OPENTITLECONTENT: TitleID: %08x/%08x Index %i -> got CFD %x", (u32)(TitleID>>32), (u32)TitleID, Index, CFD);
+
return true;
}
break;
@@ -260,19 +349,12 @@ bool CWII_IPC_HLE_Device_es::IOCtlV(u32 _CommandAddress)
{
_dbg_assert_(WII_IPC_ES, Buffer.NumberInBuffer == 1);
_dbg_assert_(WII_IPC_ES, Buffer.NumberPayloadBuffer == 0);
-
- u32 CFD = AccessIdentID++;
u32 Index = Memory::Read_U32(Buffer.InBuffer[0].m_Address);
- m_ContentAccessMap[CFD].m_Position = 0;
- m_ContentAccessMap[CFD].m_pContent = AccessContentDevice(m_TitleID).GetContentByIndex(Index);
-
- if (m_ContentAccessMap[CFD].m_pContent == NULL)
- CFD = 0xffffffff; //TODO: what is the correct error value here?
-
+ u32 CFD = OpenTitleContent(m_AccessIdentID++, m_TitleID, Index);
Memory::Write_U32(CFD, _CommandAddress + 0x4);
-
INFO_LOG(WII_IPC_ES, "IOCTL_ES_OPENCONTENT: Index %i -> got CFD %x", Index, CFD);
+
return true;
}
break;
@@ -286,12 +368,16 @@ bool CWII_IPC_HLE_Device_es::IOCtlV(u32 _CommandAddress)
u32 Size = Buffer.PayloadBuffer[0].m_Size;
u32 Addr = Buffer.PayloadBuffer[0].m_Address;
- _dbg_assert_(WII_IPC_ES, m_ContentAccessMap.find(CFD) != m_ContentAccessMap.end());
- SContentAccess& rContent = m_ContentAccessMap[CFD];
+ auto itr = m_ContentAccessMap.find(CFD);
+ if (itr == m_ContentAccessMap.end())
+ {
+ Memory::Write_U32(-1, _CommandAddress + 0x4);
+ return true;
+ }
+ SContentAccess& rContent = itr->second;
_dbg_assert_(WII_IPC_ES, rContent.m_pContent->m_pData != NULL);
- u8* pSrc = &rContent.m_pContent->m_pData[rContent.m_Position];
u8* pDest = Memory::GetPointer(Addr);
if (rContent.m_Position + Size > rContent.m_pContent->m_Size)
@@ -301,8 +387,26 @@ bool CWII_IPC_HLE_Device_es::IOCtlV(u32 _CommandAddress)
if (Size > 0)
{
- if (pDest) {
- memcpy(pDest, pSrc, Size);
+ if (pDest)
+ {
+ if (rContent.m_pContent->m_pData)
+ {
+ u8* pSrc = &rContent.m_pContent->m_pData[rContent.m_Position];
+ memcpy(pDest, pSrc, Size);
+ }
+ else
+ {
+ auto& pFile = rContent.m_pFile;
+ if (!pFile->Seek(rContent.m_Position, SEEK_SET))
+ {
+ ERROR_LOG(WII_IPC_ES, "ES: couldn't seek!");
+ }
+ WARN_LOG(WII_IPC_ES, "2 %p", pFile->GetHandle());
+ if (!pFile->ReadBytes(pDest, Size))
+ {
+ ERROR_LOG(WII_IPC_ES, "ES: short read; returning uninitialized data!");
+ }
+ }
rContent.m_Position += Size;
} else {
PanicAlertT("IOCTL_ES_READCONTENT - bad destination");
@@ -323,11 +427,18 @@ bool CWII_IPC_HLE_Device_es::IOCtlV(u32 _CommandAddress)
u32 CFD = Memory::Read_U32(Buffer.InBuffer[0].m_Address);
- CContentAccessMap::iterator itr = m_ContentAccessMap.find(CFD);
- m_ContentAccessMap.erase(itr);
-
INFO_LOG(WII_IPC_ES, "IOCTL_ES_CLOSECONTENT: CFD %x", CFD);
+ auto itr = m_ContentAccessMap.find(CFD);
+ if (itr == m_ContentAccessMap.end())
+ {
+ Memory::Write_U32(-1, _CommandAddress + 0x4);
+ return true;
+ }
+
+ delete itr->second.m_pFile;
+ m_ContentAccessMap.erase(itr);
+
Memory::Write_U32(0, _CommandAddress + 0x4);
return true;
}
@@ -342,8 +453,13 @@ bool CWII_IPC_HLE_Device_es::IOCtlV(u32 _CommandAddress)
u32 Addr = Memory::Read_U32(Buffer.InBuffer[1].m_Address);
u32 Mode = Memory::Read_U32(Buffer.InBuffer[2].m_Address);
- _dbg_assert_(WII_IPC_ES, m_ContentAccessMap.find(CFD) != m_ContentAccessMap.end());
- SContentAccess& rContent = m_ContentAccessMap[CFD];
+ auto itr = m_ContentAccessMap.find(CFD);
+ if (itr == m_ContentAccessMap.end())
+ {
+ Memory::Write_U32(-1, _CommandAddress + 0x4);
+ return true;
+ }
+ SContentAccess& rContent = itr->second;
switch (Mode)
{
@@ -759,12 +875,19 @@ bool CWII_IPC_HLE_Device_es::IOCtlV(u32 _CommandAddress)
if (pContent)
{
LoadWAD(Common::GetTitleContentPath(TitleID));
- CDolLoader DolLoader(pContent->m_pData, pContent->m_Size);
- DolLoader.Load(); // TODO: Check why sysmenu does not load the DOL correctly
- PC = DolLoader.GetEntryPoint() | 0x80000000;
+ std::unique_ptr pDolLoader;
+ if (pContent->m_pData)
+ {
+ pDolLoader.reset(new CDolLoader(pContent->m_pData, pContent->m_Size));
+ }
+ else
+ {
+ pDolLoader.reset(new CDolLoader(pContent->m_Filename.c_str()));
+ }
+ pDolLoader->Load(); // TODO: Check why sysmenu does not load the DOL correctly
+ PC = pDolLoader->GetEntryPoint() | 0x80000000;
IOSv = ContentLoader.GetIosVersion();
bSuccess = true;
-
}
}
}
@@ -908,7 +1031,7 @@ bool CWII_IPC_HLE_Device_es::IOCtlV(u32 _CommandAddress)
const DiscIO::INANDContentLoader& CWII_IPC_HLE_Device_es::AccessContentDevice(u64 _TitleID)
{
if (m_pContentLoader->IsValid() && m_pContentLoader->GetTitleID() == _TitleID)
- return* m_pContentLoader;
+ return *m_pContentLoader;
CTitleToContentMap::iterator itr = m_NANDContent.find(_TitleID);
if (itr != m_NANDContent.end())
diff --git a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.h b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.h
index a407ea4742..ddc1f3613f 100644
--- a/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.h
+++ b/Source/Core/Core/Src/IPC_HLE/WII_IPC_HLE_Device_es.h
@@ -8,6 +8,7 @@
#include