mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-01-10 08:09:26 +01:00
Merge branch 'master' into wii-network
This commit is contained in:
commit
2dd077028f
@ -3,6 +3,19 @@
|
|||||||
#
|
#
|
||||||
cmake_minimum_required(VERSION 2.6)
|
cmake_minimum_required(VERSION 2.6)
|
||||||
|
|
||||||
|
option(USE_GLES "Enables GLES, disables OGL" OFF)
|
||||||
|
option(DISABLE_WX "Disable wxWidgets (use CLI interface)" OFF)
|
||||||
|
|
||||||
|
option(FASTLOG "Enable all logs" OFF)
|
||||||
|
option(OPROFILING "Enable profiling" OFF)
|
||||||
|
option(OPENMP "Enable OpenMP parallelization" ON)
|
||||||
|
option(ENCODE_FRAMEDUMPS "Encode framedumps in AVI format" ON)
|
||||||
|
########################################
|
||||||
|
# Optional Targets
|
||||||
|
# TODO: Add DSPSpy and TestSuite.
|
||||||
|
option(DSPTOOL "Build dsptool" OFF)
|
||||||
|
option(UNITTESTS "Build unitests" OFF)
|
||||||
|
|
||||||
# Update compiler before calling project()
|
# Update compiler before calling project()
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
# Use clang compiler
|
# Use clang compiler
|
||||||
@ -224,7 +237,6 @@ if(CMAKE_BUILD_TYPE STREQUAL Release)
|
|||||||
add_definitions(-fomit-frame-pointer)
|
add_definitions(-fomit-frame-pointer)
|
||||||
endif(CMAKE_BUILD_TYPE STREQUAL Release)
|
endif(CMAKE_BUILD_TYPE STREQUAL Release)
|
||||||
|
|
||||||
option(FASTLOG "Enable all logs" OFF)
|
|
||||||
if(FASTLOG)
|
if(FASTLOG)
|
||||||
add_definitions(-DDEBUGFAST)
|
add_definitions(-DDEBUGFAST)
|
||||||
endif()
|
endif()
|
||||||
@ -237,7 +249,6 @@ endif(GDBSTUB)
|
|||||||
|
|
||||||
# For now GLES and EGL are tied to each other.
|
# For now GLES and EGL are tied to each other.
|
||||||
# Enabling GLES also disables the OpenGL plugin.
|
# Enabling GLES also disables the OpenGL plugin.
|
||||||
option(USE_GLES "Enables GLES, disables OGL" OFF)
|
|
||||||
if(USE_GLES)
|
if(USE_GLES)
|
||||||
message("GLES rendering enabled")
|
message("GLES rendering enabled")
|
||||||
add_definitions(-DUSE_GLES)
|
add_definitions(-DUSE_GLES)
|
||||||
@ -261,7 +272,6 @@ if(NOT OPENGL_GLU_FOUND)
|
|||||||
message(FATAL_ERROR "GLU is required but not found")
|
message(FATAL_ERROR "GLU is required but not found")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
option(OPENMP "Enable OpenMP parallelization" ON)
|
|
||||||
if(OPENMP)
|
if(OPENMP)
|
||||||
include(FindOpenMP OPTIONAL)
|
include(FindOpenMP OPTIONAL)
|
||||||
if(OPENMP_FOUND)
|
if(OPENMP_FOUND)
|
||||||
@ -344,7 +354,6 @@ else()
|
|||||||
add_definitions(-DHAVE_XRANDR=0)
|
add_definitions(-DHAVE_XRANDR=0)
|
||||||
endif(XRANDR_FOUND)
|
endif(XRANDR_FOUND)
|
||||||
|
|
||||||
option(ENCODE_FRAMEDUMPS "Encode framedumps in AVI format" ON)
|
|
||||||
if(ENCODE_FRAMEDUMPS)
|
if(ENCODE_FRAMEDUMPS)
|
||||||
check_libav()
|
check_libav()
|
||||||
endif()
|
endif()
|
||||||
@ -366,7 +375,6 @@ else()
|
|||||||
set(PORTAUDIO_FOUND FALSE)
|
set(PORTAUDIO_FOUND FALSE)
|
||||||
endif(PORTAUDIO)
|
endif(PORTAUDIO)
|
||||||
|
|
||||||
option(OPROFILING "Enable profiling" OFF)
|
|
||||||
if(OPROFILING)
|
if(OPROFILING)
|
||||||
check_lib(OPROFILE opagent opagent.h)
|
check_lib(OPROFILE opagent opagent.h)
|
||||||
check_lib(BFD bfd bfd.h)
|
check_lib(BFD bfd bfd.h)
|
||||||
@ -536,7 +544,6 @@ else()
|
|||||||
add_subdirectory(Externals/CLRun)
|
add_subdirectory(Externals/CLRun)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
option(DISABLE_WX "Disable wxWidgets (use CLI interface)" OFF)
|
|
||||||
if(NOT DISABLE_WX)
|
if(NOT DISABLE_WX)
|
||||||
include(FindwxWidgets OPTIONAL)
|
include(FindwxWidgets OPTIONAL)
|
||||||
FIND_PACKAGE(wxWidgets COMPONENTS core aui adv)
|
FIND_PACKAGE(wxWidgets COMPONENTS core aui adv)
|
||||||
@ -632,12 +639,6 @@ file(WRITE ${PROJECT_BINARY_DIR}/Source/Core/Common/Src/scmrev.h
|
|||||||
)
|
)
|
||||||
include_directories("${PROJECT_BINARY_DIR}/Source/Core/Common/Src")
|
include_directories("${PROJECT_BINARY_DIR}/Source/Core/Common/Src")
|
||||||
|
|
||||||
########################################
|
|
||||||
# Optional Targets
|
|
||||||
# TODO: Add DSPSpy and TestSuite.
|
|
||||||
option(DSPTOOL "Build dsptool" OFF)
|
|
||||||
option(UNITTESTS "Build unitests" OFF)
|
|
||||||
|
|
||||||
########################################
|
########################################
|
||||||
# Start compiling our code
|
# Start compiling our code
|
||||||
#
|
#
|
||||||
|
@ -2,6 +2,15 @@
|
|||||||
[Core] Values set here will override the main dolphin settings.
|
[Core] Values set here will override the main dolphin settings.
|
||||||
TLBHack = 1
|
TLBHack = 1
|
||||||
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
||||||
EmulationStateId = 1
|
EmulationStateId = 4
|
||||||
|
EmulationIssues =
|
||||||
[OnFrame] Add memory patches to be applied every frame here.
|
[OnFrame] Add memory patches to be applied every frame here.
|
||||||
[ActionReplay] Add action replay cheats here.
|
[ActionReplay] Add action replay cheats here.
|
||||||
|
[Video]
|
||||||
|
ProjectionHack = 0
|
||||||
|
PH_SZNear = 0
|
||||||
|
PH_SZFar = 0
|
||||||
|
PH_ExtraParam = 0
|
||||||
|
PH_ZNear =
|
||||||
|
PH_ZFar =
|
||||||
|
[Gecko]
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# G3AE69 - The Lord of the Rings, The Third Age
|
# G3AP69 - The Lord of the Rings, The Third Age
|
||||||
[Core] Values set here will override the main dolphin settings.
|
[Core] Values set here will override the main dolphin settings.
|
||||||
TLBHack = 1
|
TLBHack = 1
|
||||||
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
||||||
|
16
Data/User/GameConfig/GAZD69.ini
Normal file
16
Data/User/GameConfig/GAZD69.ini
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# GAZD69 - Harry Potter : POA
|
||||||
|
[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 = Videos are messed up, skip them.
|
||||||
|
[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]
|
@ -2,6 +2,15 @@
|
|||||||
[Core] Values set here will override the main dolphin settings.
|
[Core] Values set here will override the main dolphin settings.
|
||||||
TLBHack = 1
|
TLBHack = 1
|
||||||
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
||||||
EmulationStateId = 1
|
EmulationStateId = 4
|
||||||
|
EmulationIssues = Videos are messed up, skip them.
|
||||||
[OnFrame] Add memory patches to be applied every frame here.
|
[OnFrame] Add memory patches to be applied every frame here.
|
||||||
[ActionReplay] Add action replay cheats here.
|
[ActionReplay] Add action replay cheats here.
|
||||||
|
[Video]
|
||||||
|
ProjectionHack = 0
|
||||||
|
PH_SZNear = 0
|
||||||
|
PH_SZFar = 0
|
||||||
|
PH_ExtraParam = 0
|
||||||
|
PH_ZNear =
|
||||||
|
PH_ZFar =
|
||||||
|
[Gecko]
|
||||||
|
16
Data/User/GameConfig/GAZF69.ini
Normal file
16
Data/User/GameConfig/GAZF69.ini
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# GAZF69 - Harry Potter : POA
|
||||||
|
[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 = Videos are messed up, skip them.
|
||||||
|
[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]
|
16
Data/User/GameConfig/GAZH69.ini
Normal file
16
Data/User/GameConfig/GAZH69.ini
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# GAZH69 - Harry Potter : POA
|
||||||
|
[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 = Videos are messed up, skip them.
|
||||||
|
[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]
|
16
Data/User/GameConfig/GAZI69.ini
Normal file
16
Data/User/GameConfig/GAZI69.ini
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# GAZI69 - Harry Potter : POA
|
||||||
|
[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 = Videos are messed up, skip them.
|
||||||
|
[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]
|
16
Data/User/GameConfig/GAZJ69.ini
Normal file
16
Data/User/GameConfig/GAZJ69.ini
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# GAZJ69 - Harry Potter to Azkaban no Shuujin
|
||||||
|
[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 = Videos are messed up, skip them.
|
||||||
|
[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]
|
16
Data/User/GameConfig/GAZM69.ini
Normal file
16
Data/User/GameConfig/GAZM69.ini
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# GAZM69 - Harry Potter : POA
|
||||||
|
[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 = Videos are messed up, skip them.
|
||||||
|
[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]
|
16
Data/User/GameConfig/GAZP69.ini
Normal file
16
Data/User/GameConfig/GAZP69.ini
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# GAZP69 - Harry Potter : POA
|
||||||
|
[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 = Videos are messed up, skip them.
|
||||||
|
[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]
|
16
Data/User/GameConfig/GAZS69.ini
Normal file
16
Data/User/GameConfig/GAZS69.ini
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# GAZS69 - Harry Potter : POA
|
||||||
|
[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 = Videos are messed up, skip them.
|
||||||
|
[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]
|
16
Data/User/GameConfig/GH4D69.ini
Normal file
16
Data/User/GameConfig/GH4D69.ini
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# GH4D69 - Harry Potter and the Goblet of Fire
|
||||||
|
[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 =
|
||||||
|
[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]
|
@ -1,7 +1,16 @@
|
|||||||
# GH4E69 - Goblet Of Fire
|
# GH4E69 - Harry Potter and the Goblet of Fire
|
||||||
[Core] Values set here will override the main dolphin settings.
|
[Core] Values set here will override the main dolphin settings.
|
||||||
TLBHack = 1
|
TLBHack = 1
|
||||||
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
||||||
EmulationStateId = 1
|
EmulationStateId = 4
|
||||||
|
EmulationIssues =
|
||||||
[OnFrame] Add memory patches to be applied every frame here.
|
[OnFrame] Add memory patches to be applied every frame here.
|
||||||
[ActionReplay] Add action replay cheats here.
|
[ActionReplay] Add action replay cheats here.
|
||||||
|
[Video]
|
||||||
|
ProjectionHack = 0
|
||||||
|
PH_SZNear = 0
|
||||||
|
PH_SZFar = 0
|
||||||
|
PH_ExtraParam = 0
|
||||||
|
PH_ZNear =
|
||||||
|
PH_ZFar =
|
||||||
|
[Gecko]
|
||||||
|
16
Data/User/GameConfig/GH4F69.ini
Normal file
16
Data/User/GameConfig/GH4F69.ini
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# GH4F69 - Harry Potter and the Goblet of Fire
|
||||||
|
[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 =
|
||||||
|
[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]
|
16
Data/User/GameConfig/GH4H69.ini
Normal file
16
Data/User/GameConfig/GH4H69.ini
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# GH4H69 - Harry Potter and the Goblet of Fire
|
||||||
|
[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 =
|
||||||
|
[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]
|
16
Data/User/GameConfig/GH4I69.ini
Normal file
16
Data/User/GameConfig/GH4I69.ini
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# GH4I69 - Harry Potter and the Goblet of Fire
|
||||||
|
[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 =
|
||||||
|
[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]
|
16
Data/User/GameConfig/GH4J69.ini
Normal file
16
Data/User/GameConfig/GH4J69.ini
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# GH4J69 - Harry Potter to Honoo no Goblet
|
||||||
|
[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 =
|
||||||
|
[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]
|
16
Data/User/GameConfig/GH4M69.ini
Normal file
16
Data/User/GameConfig/GH4M69.ini
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# GH4M69 - Harry Potter and the Goblet of Fire
|
||||||
|
[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 =
|
||||||
|
[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]
|
16
Data/User/GameConfig/GH4P69.ini
Normal file
16
Data/User/GameConfig/GH4P69.ini
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# GH4P69 - Harry Potter and the Goblet of Fire
|
||||||
|
[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 =
|
||||||
|
[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]
|
16
Data/User/GameConfig/GH4S69.ini
Normal file
16
Data/User/GameConfig/GH4S69.ini
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# GH4S69 - Harry Potter and the Goblet of Fire
|
||||||
|
[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 =
|
||||||
|
[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]
|
@ -1,7 +1,16 @@
|
|||||||
# GHLE69 - Harry Potter and the Sorcerer's Stone
|
# GHLE69 - Harry Potter and the Sorcerer's Stone
|
||||||
[Core] Values set here will override the main dolphin settings.
|
[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.
|
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
||||||
EmulationStateId = 4
|
EmulationStateId = 4
|
||||||
EmulationIssues = Missing text sometimes
|
EmulationIssues = Text missing in D3D9, use D3D11 or Opengl instead.
|
||||||
[OnFrame] Add memory patches to be applied every frame here.
|
[OnFrame] Add memory patches to be applied every frame here.
|
||||||
[ActionReplay] Add action replay cheats here.
|
[ActionReplay] Add action replay cheats here.
|
||||||
|
[Video]
|
||||||
|
ProjectionHack = 0
|
||||||
|
PH_SZNear = 0
|
||||||
|
PH_SZFar = 0
|
||||||
|
PH_ExtraParam = 0
|
||||||
|
PH_ZNear =
|
||||||
|
PH_ZFar =
|
||||||
|
[Gecko]
|
||||||
|
16
Data/User/GameConfig/GHLJ69.ini
Normal file
16
Data/User/GameConfig/GHLJ69.ini
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# GHLJ69 - Harry Potter to Kenja no Ishi
|
||||||
|
[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 = Text missing in D3D9, use D3D11 or Opengl instead.
|
||||||
|
[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]
|
16
Data/User/GameConfig/GHLP69.ini
Normal file
16
Data/User/GameConfig/GHLP69.ini
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# GHLP69 - Harry Potter and the Philosopher's Stone
|
||||||
|
[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 = Text missing in D3D9, use D3D11 or Opengl instead.
|
||||||
|
[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]
|
16
Data/User/GameConfig/GHLX69.ini
Normal file
16
Data/User/GameConfig/GHLX69.ini
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# GHLX69 - Harry Potter and the Sorcerer's Stone
|
||||||
|
[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 = Text missing in D3D9, use D3D11 or Opengl instead.
|
||||||
|
[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]
|
16
Data/User/GameConfig/GHLY69.ini
Normal file
16
Data/User/GameConfig/GHLY69.ini
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# GHLY69 - Harry Potter and the Sorcerer's Stone
|
||||||
|
[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 = Text missing in D3D9, use D3D11 or Opengl instead.
|
||||||
|
[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]
|
16
Data/User/GameConfig/GHLZ69.ini
Normal file
16
Data/User/GameConfig/GHLZ69.ini
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# GHLZ69 - Harry Potter and the Sorcerer's Stone
|
||||||
|
[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 = Text missing in D3D9, use D3D11 or Opengl instead.
|
||||||
|
[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]
|
@ -2,7 +2,7 @@
|
|||||||
[Core] Values set here will override the main dolphin settings.
|
[Core] Values set here will override the main dolphin settings.
|
||||||
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
||||||
EmulationStateId = 4
|
EmulationStateId = 4
|
||||||
EmulationIssues = HLE sound glitches, videos require real XFB
|
EmulationIssues = Needs Real Xfb for videos to display.
|
||||||
[OnFrame] Add memory patches to be applied every frame here.
|
[OnFrame] Add memory patches to be applied every frame here.
|
||||||
[ActionReplay] Add action replay cheats here.
|
[ActionReplay] Add action replay cheats here.
|
||||||
[Video]
|
[Video]
|
||||||
|
18
Data/User/GameConfig/GHSJ69.ini
Normal file
18
Data/User/GameConfig/GHSJ69.ini
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# GHSJ69 - Harry Potter to Himitsu no Heya
|
||||||
|
[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 Xfb for videos to display.
|
||||||
|
[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 = True
|
18
Data/User/GameConfig/GHSP69.ini
Normal file
18
Data/User/GameConfig/GHSP69.ini
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# GHSP69 - Harry Potter: Chamber Of Secrets
|
||||||
|
[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 Xfb for videos to display.
|
||||||
|
[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 = True
|
18
Data/User/GameConfig/GHSX69.ini
Normal file
18
Data/User/GameConfig/GHSX69.ini
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# GHSX69 - Harry Potter: Chamber Of Secrets
|
||||||
|
[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 Xfb for videos to display.
|
||||||
|
[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 = True
|
@ -2,7 +2,7 @@
|
|||||||
[Core] Values set here will override the main dolphin settings.
|
[Core] Values set here will override the main dolphin settings.
|
||||||
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
||||||
EmulationStateId = 4
|
EmulationStateId = 4
|
||||||
EmulationIssues = HLE sound glitches, videos require real XFB
|
EmulationIssues = Needs Real Xfb for videos to display.
|
||||||
[OnFrame] Add memory patches to be applied every frame here.
|
[OnFrame] Add memory patches to be applied every frame here.
|
||||||
[ActionReplay] Add action replay cheats here.
|
[ActionReplay] Add action replay cheats here.
|
||||||
[Video]
|
[Video]
|
||||||
|
@ -6,5 +6,12 @@ EmulationIssues =
|
|||||||
[OnFrame] Add memory patches to be applied every frame here.
|
[OnFrame] Add memory patches to be applied every frame here.
|
||||||
[ActionReplay] Add action replay cheats here.
|
[ActionReplay] Add action replay cheats here.
|
||||||
[Video]
|
[Video]
|
||||||
|
ProjectionHack = 0
|
||||||
|
PH_SZNear = 0
|
||||||
|
PH_SZFar = 0
|
||||||
|
PH_ExtraParam = 0
|
||||||
|
PH_ZNear =
|
||||||
|
PH_ZFar =
|
||||||
[Gecko]
|
[Gecko]
|
||||||
|
[Video_Hacks]
|
||||||
|
EFBEmulateFormatChanges = True
|
||||||
|
17
Data/User/GameConfig/GKYJ01.ini
Normal file
17
Data/User/GameConfig/GKYJ01.ini
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# GKYJ01 - Kirby Air Ride
|
||||||
|
[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 =
|
||||||
|
[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
|
@ -1,6 +1,17 @@
|
|||||||
# GKYP01 - Kirby Air Ride
|
# GKYP01 - Kirby Air Ride
|
||||||
[Core] Values set here will override the main dolphin settings.
|
[Core] Values set here will override the main dolphin settings.
|
||||||
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
||||||
EmulationStateId = 4
|
EmulationStateId = 5
|
||||||
|
EmulationIssues =
|
||||||
[OnFrame] Add memory patches to be applied every frame here.
|
[OnFrame] Add memory patches to be applied every frame here.
|
||||||
[ActionReplay] Add action replay cheats 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
|
||||||
|
@ -38,7 +38,6 @@ $Have Wave Beam
|
|||||||
$Have Plasma Beam
|
$Have Plasma Beam
|
||||||
4200183C 00230001
|
4200183C 00230001
|
||||||
$Have Phazon Beam
|
$Have Phazon Beam
|
||||||
01165C8D 08000000
|
|
||||||
70458245 00000080
|
70458245 00000080
|
||||||
087A55A9 000000C5
|
087A55A9 000000C5
|
||||||
00458245 0000007C
|
00458245 0000007C
|
||||||
@ -100,4 +99,3 @@ SafeTextureCacheColorSamples = 512
|
|||||||
EFBCopyEnable = True
|
EFBCopyEnable = True
|
||||||
EFBToTextureEnable = False
|
EFBToTextureEnable = False
|
||||||
[Video_Enhancements]
|
[Video_Enhancements]
|
||||||
|
|
||||||
|
@ -1,7 +1,16 @@
|
|||||||
# GQWE69 - Quidditch World Cup
|
# GQWE69 - Quidditch World Cup
|
||||||
[Core] Values set here will override the main dolphin settings.
|
[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.
|
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
||||||
EmulationIssues = Black screen
|
EmulationIssues =
|
||||||
EmulationStateId = 1
|
EmulationStateId = 4
|
||||||
[OnFrame] Add memory patches to be applied every frame here.
|
[OnFrame] Add memory patches to be applied every frame here.
|
||||||
[ActionReplay] Add action replay cheats here.
|
[ActionReplay] Add action replay cheats here.
|
||||||
|
[Video]
|
||||||
|
ProjectionHack = 0
|
||||||
|
PH_SZNear = 0
|
||||||
|
PH_SZFar = 0
|
||||||
|
PH_ExtraParam = 0
|
||||||
|
PH_ZNear =
|
||||||
|
PH_ZFar =
|
||||||
|
[Gecko]
|
||||||
|
16
Data/User/GameConfig/GQWJ69.ini
Normal file
16
Data/User/GameConfig/GQWJ69.ini
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# GQWJ69 - Quidditch World Cup
|
||||||
|
[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.
|
||||||
|
EmulationIssues =
|
||||||
|
EmulationStateId = 4
|
||||||
|
[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]
|
16
Data/User/GameConfig/GQWP69.ini
Normal file
16
Data/User/GameConfig/GQWP69.ini
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# GQWP69 - Quidditch World Cup
|
||||||
|
[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.
|
||||||
|
EmulationIssues =
|
||||||
|
EmulationStateId = 4
|
||||||
|
[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]
|
16
Data/User/GameConfig/GQWX69.ini
Normal file
16
Data/User/GameConfig/GQWX69.ini
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# GQWX69 - Quidditch World Cup
|
||||||
|
[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.
|
||||||
|
EmulationIssues =
|
||||||
|
EmulationStateId = 4
|
||||||
|
[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]
|
@ -2,8 +2,8 @@
|
|||||||
[Core] Values set here will override the main dolphin settings.
|
[Core] Values set here will override the main dolphin settings.
|
||||||
MMU = 1
|
MMU = 1
|
||||||
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
||||||
EmulationIssues = Needs MMU to run, it gives a black screen after the intro video though.
|
EmulationIssues = Needs MMU to run, and it runs slow.
|
||||||
EmulationStateId = 2
|
EmulationStateId = 3
|
||||||
[OnFrame] Add memory patches to be applied every frame here.
|
[OnFrame] Add memory patches to be applied every frame here.
|
||||||
[ActionReplay] Add action replay cheats here.
|
[ActionReplay] Add action replay cheats here.
|
||||||
[Video]
|
[Video]
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
[Core] Values set here will override the main dolphin settings.
|
[Core] Values set here will override the main dolphin settings.
|
||||||
MMU = 1
|
MMU = 1
|
||||||
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
||||||
EmulationIssues = Needs MMU to run, it gives a black screen after the intro video though.
|
EmulationIssues = Needs MMU to run, and it runs slow.
|
||||||
EmulationStateId = 2
|
EmulationStateId = 3
|
||||||
[OnFrame] Add memory patches to be applied every frame here.
|
[OnFrame] Add memory patches to be applied every frame here.
|
||||||
[ActionReplay] Add action replay cheats here.
|
[ActionReplay] Add action replay cheats here.
|
||||||
[Video]
|
[Video]
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# R2GEXJ - FRAGILE DREAMS
|
# R2GEXJ - FRAGILE DREAMS
|
||||||
[Core] Values set here will override the main dolphin settings.
|
[Core] Values set here will override the main dolphin settings.
|
||||||
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
||||||
EmulationIssues =
|
EmulationIssues = Minimap needs emulate format changes to work.
|
||||||
EmulationStateId = 4
|
EmulationStateId = 4
|
||||||
[OnFrame] Add memory patches to be applied every frame here.
|
[OnFrame] Add memory patches to be applied every frame here.
|
||||||
[ActionReplay] Add action replay cheats here.
|
[ActionReplay] Add action replay cheats here.
|
||||||
@ -18,3 +18,4 @@ UseXFB = True
|
|||||||
UseRealXFB = False
|
UseRealXFB = False
|
||||||
[Video_Hacks]
|
[Video_Hacks]
|
||||||
DlistCachingEnable = False
|
DlistCachingEnable = False
|
||||||
|
EFBEmulateFormatChanges = True
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# R2GJAF - FRAGILE
|
# R2GJAF - FRAGILE
|
||||||
[Core] Values set here will override the main dolphin settings.
|
[Core] Values set here will override the main dolphin settings.
|
||||||
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
||||||
EmulationIssues =
|
EmulationIssues = Minimap needs emulate format changes to work.
|
||||||
EmulationStateId = 4
|
EmulationStateId = 4
|
||||||
[OnFrame] Add memory patches to be applied every frame here.
|
[OnFrame] Add memory patches to be applied every frame here.
|
||||||
[ActionReplay] Add action replay cheats here.
|
[ActionReplay] Add action replay cheats here.
|
||||||
@ -16,6 +16,6 @@ PH_ZFar =
|
|||||||
[Video_Settings]
|
[Video_Settings]
|
||||||
UseXFB = True
|
UseXFB = True
|
||||||
UseRealXFB = False
|
UseRealXFB = False
|
||||||
[Video_Enhancements]
|
|
||||||
[Video_Hacks]
|
[Video_Hacks]
|
||||||
DlistCachingEnable = False
|
DlistCachingEnable = False
|
||||||
|
EFBEmulateFormatChanges = True
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# R2GP99 - FRAGILE DREAMS
|
# R2GP99 - FRAGILE DREAMS
|
||||||
[Core] Values set here will override the main dolphin settings.
|
[Core] Values set here will override the main dolphin settings.
|
||||||
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
||||||
EmulationIssues =
|
EmulationIssues = Minimap needs emulate format changes to work.
|
||||||
EmulationStateId = 4
|
EmulationStateId = 4
|
||||||
[OnFrame] Add memory patches to be applied every frame here.
|
[OnFrame] Add memory patches to be applied every frame here.
|
||||||
[ActionReplay] Add action replay cheats here.
|
[ActionReplay] Add action replay cheats here.
|
||||||
@ -18,4 +18,4 @@ UseXFB = True
|
|||||||
UseRealXFB = False
|
UseRealXFB = False
|
||||||
[Video_Hacks]
|
[Video_Hacks]
|
||||||
DlistCachingEnable = False
|
DlistCachingEnable = False
|
||||||
|
EFBEmulateFormatChanges = True
|
||||||
|
@ -1,10 +1,20 @@
|
|||||||
# R3ME01 - Metroid Prime Trilogy
|
# R3ME01 - Metroid Prime Trilogy
|
||||||
[Core] Values set here will override the main dolphin settings.
|
[Core] Values set here will override the main dolphin settings.
|
||||||
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
||||||
EmulationStateId = 1
|
EmulationStateId = 4
|
||||||
EmulationIssues =
|
EmulationIssues = Disable EuRGB60(PAL60) to avoid a black bar appearing.
|
||||||
[OnFrame] Add memory patches to be applied every frame here.
|
[OnFrame] Add memory patches to be applied every frame here.
|
||||||
[ActionReplay] Add action replay cheats here.
|
[ActionReplay] Add action replay cheats here.
|
||||||
[Video]
|
[Video]
|
||||||
ProjectionHack = 0
|
ProjectionHack = 0
|
||||||
|
PH_SZNear = 0
|
||||||
|
PH_SZFar = 0
|
||||||
|
PH_ExtraParam = 0
|
||||||
|
PH_ZNear =
|
||||||
|
PH_ZFar =
|
||||||
[Gecko]
|
[Gecko]
|
||||||
|
[Video_Hacks]
|
||||||
|
EFBToTextureEnable = False
|
||||||
|
EFBCopyEnable = True
|
||||||
|
[Wii]
|
||||||
|
DisableWiimoteSpeaker = 1
|
||||||
|
20
Data/User/GameConfig/R3MP01.ini
Normal file
20
Data/User/GameConfig/R3MP01.ini
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
# R3MP01 - Metroid Prime Trilogy
|
||||||
|
[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(PAL60) to avoid a black bar appearing.
|
||||||
|
[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
|
||||||
|
[Wii]
|
||||||
|
DisableWiimoteSpeaker = 1
|
@ -14,3 +14,5 @@ PH_ZNear =
|
|||||||
PH_ZFar =
|
PH_ZFar =
|
||||||
[Gecko]
|
[Gecko]
|
||||||
[Video_Enhancements]
|
[Video_Enhancements]
|
||||||
|
[Wii]
|
||||||
|
DisableWiimoteSpeaker = 1
|
||||||
|
@ -14,3 +14,5 @@ PH_ZNear =
|
|||||||
PH_ZFar =
|
PH_ZFar =
|
||||||
[Gecko]
|
[Gecko]
|
||||||
[Video_Enhancements]
|
[Video_Enhancements]
|
||||||
|
[Wii]
|
||||||
|
DisableWiimoteSpeaker = 1
|
||||||
|
@ -14,3 +14,5 @@ PH_ZNear =
|
|||||||
PH_ZFar =
|
PH_ZFar =
|
||||||
[Gecko]
|
[Gecko]
|
||||||
[Video_Enhancements]
|
[Video_Enhancements]
|
||||||
|
[Wii]
|
||||||
|
DisableWiimoteSpeaker = 1
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
# RHDE8P - THE HOUSE OF THE DEAD 2 AND 3 RETURN
|
# RHDE8P - THE HOUSE OF THE DEAD 2 AND 3 RETURN
|
||||||
[Core] Values set here will override the main dolphin settings.
|
[Core] Values set here will override the main dolphin settings.
|
||||||
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
||||||
EmulationStateId = 3
|
EmulationStateId = 4
|
||||||
EmulationIssues = Only Hotd 3 works. XFB is needed for dx9.
|
EmulationIssues =
|
||||||
[OnFrame] Add memory patches to be applied every frame here.
|
[OnFrame] Add memory patches to be applied every frame here.
|
||||||
[ActionReplay] Add action replay cheats here.
|
[ActionReplay] Add action replay cheats here.
|
||||||
[Video]
|
[Video]
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
# RHDJ8P - THE HOUSE OF THE DEAD 2 AND 3 RETURN
|
# RHDJ8P - THE HOUSE OF THE DEAD 2 AND 3 RETURN
|
||||||
[Core] Values set here will override the main dolphin settings.
|
[Core] Values set here will override the main dolphin settings.
|
||||||
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
||||||
EmulationStateId = 3
|
EmulationStateId = 4
|
||||||
EmulationIssues = Only Hotd 3 works. XFB is needed for dx9.
|
EmulationIssues =
|
||||||
[OnFrame] Add memory patches to be applied every frame here.
|
[OnFrame] Add memory patches to be applied every frame here.
|
||||||
[ActionReplay] Add action replay cheats here.
|
[ActionReplay] Add action replay cheats here.
|
||||||
[Video]
|
[Video]
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
# RHDP8P - THE HOUSE OF THE DEAD 2 AND 3 RETURN
|
# RHDP8P - THE HOUSE OF THE DEAD 2 AND 3 RETURN
|
||||||
[Core] Values set here will override the main dolphin settings.
|
[Core] Values set here will override the main dolphin settings.
|
||||||
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
||||||
EmulationStateId = 3
|
EmulationStateId = 4
|
||||||
EmulationIssues = Only Hotd 3 works. XFB is needed for dx9.
|
EmulationIssues =
|
||||||
[OnFrame] Add memory patches to be applied every frame here.
|
[OnFrame] Add memory patches to be applied every frame here.
|
||||||
[ActionReplay] Add action replay cheats here.
|
[ActionReplay] Add action replay cheats here.
|
||||||
[Video]
|
[Video]
|
||||||
|
@ -15,3 +15,5 @@ PH_ZFar =
|
|||||||
[Gecko]
|
[Gecko]
|
||||||
[Video_Settings]
|
[Video_Settings]
|
||||||
SafeTextureCacheColorSamples = 0
|
SafeTextureCacheColorSamples = 0
|
||||||
|
[Wii]
|
||||||
|
DisableWiimoteSpeaker = 1
|
||||||
|
@ -15,3 +15,5 @@ PH_ZFar =
|
|||||||
[Gecko]
|
[Gecko]
|
||||||
[Video_Settings]
|
[Video_Settings]
|
||||||
SafeTextureCacheColorSamples = 0
|
SafeTextureCacheColorSamples = 0
|
||||||
|
[Wii]
|
||||||
|
DisableWiimoteSpeaker = 1
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
# WZIPTW - Rubik's: Rush
|
# WZIPTW - Rubik's: Rush
|
||||||
[Core] Values set here will override the main dolphin settings.
|
[Core] Values set here will override the main dolphin settings.
|
||||||
|
DCBZ = 1
|
||||||
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
[EmuState] The Emulation State. 1 is worst, 5 is best, 0 is not set.
|
||||||
EmulationStateId = 1
|
EmulationStateId = 1
|
||||||
EmulationIssues = Requires data cache emulation
|
EmulationIssues = Requires data cache emulation
|
||||||
|
@ -146,7 +146,7 @@ ALDeviceList::~ALDeviceList()
|
|||||||
{
|
{
|
||||||
for (u32 i = 0; i < vDeviceInfo.size(); i++) {
|
for (u32 i = 0; i < vDeviceInfo.size(); i++) {
|
||||||
if (vDeviceInfo[i].pvstrExtensions) {
|
if (vDeviceInfo[i].pvstrExtensions) {
|
||||||
vDeviceInfo[i].pvstrExtensions->empty();
|
vDeviceInfo[i].pvstrExtensions->clear();
|
||||||
delete vDeviceInfo[i].pvstrExtensions;
|
delete vDeviceInfo[i].pvstrExtensions;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -512,13 +512,25 @@ bool DeleteDirRecursively(const std::string &directory)
|
|||||||
if (IsDirectory(newPath))
|
if (IsDirectory(newPath))
|
||||||
{
|
{
|
||||||
if (!DeleteDirRecursively(newPath))
|
if (!DeleteDirRecursively(newPath))
|
||||||
|
{
|
||||||
|
#ifndef _WIN32
|
||||||
|
closedir(dirp);
|
||||||
|
#endif
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!File::Delete(newPath))
|
if (!File::Delete(newPath))
|
||||||
|
{
|
||||||
|
#ifndef _WIN32
|
||||||
|
closedir(dirp);
|
||||||
|
#endif
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
} while (FindNextFile(hFind, &ffd) != 0);
|
} while (FindNextFile(hFind, &ffd) != 0);
|
||||||
|
@ -54,7 +54,7 @@ namespace BootManager
|
|||||||
// Apply fire liberally
|
// Apply fire liberally
|
||||||
struct ConfigCache
|
struct ConfigCache
|
||||||
{
|
{
|
||||||
bool valid, bCPUThread, bSkipIdle, bEnableFPRF, bMMU, bMMUBAT,
|
bool valid, bCPUThread, bSkipIdle, bEnableFPRF, bMMU, bDCBZOFF,
|
||||||
bVBeam, bFastDiscSpeed, bMergeBlocks, bDSPHLE, bDisableWiimoteSpeaker, bHLE_BS2;
|
bVBeam, bFastDiscSpeed, bMergeBlocks, bDSPHLE, bDisableWiimoteSpeaker, bHLE_BS2;
|
||||||
int iTLBHack, iCPUCore;
|
int iTLBHack, iCPUCore;
|
||||||
std::string strBackend;
|
std::string strBackend;
|
||||||
@ -92,7 +92,7 @@ bool BootCore(const std::string& _rFilename)
|
|||||||
config_cache.iCPUCore = StartUp.iCPUCore;
|
config_cache.iCPUCore = StartUp.iCPUCore;
|
||||||
config_cache.bEnableFPRF = StartUp.bEnableFPRF;
|
config_cache.bEnableFPRF = StartUp.bEnableFPRF;
|
||||||
config_cache.bMMU = StartUp.bMMU;
|
config_cache.bMMU = StartUp.bMMU;
|
||||||
config_cache.bMMUBAT = StartUp.bMMUBAT;
|
config_cache.bDCBZOFF = StartUp.bDCBZOFF;
|
||||||
config_cache.iTLBHack = StartUp.iTLBHack;
|
config_cache.iTLBHack = StartUp.iTLBHack;
|
||||||
config_cache.bVBeam = StartUp.bVBeam;
|
config_cache.bVBeam = StartUp.bVBeam;
|
||||||
config_cache.bFastDiscSpeed = StartUp.bFastDiscSpeed;
|
config_cache.bFastDiscSpeed = StartUp.bFastDiscSpeed;
|
||||||
@ -107,8 +107,8 @@ bool BootCore(const std::string& _rFilename)
|
|||||||
game_ini.Get("Core", "SkipIdle", &StartUp.bSkipIdle, StartUp.bSkipIdle);
|
game_ini.Get("Core", "SkipIdle", &StartUp.bSkipIdle, StartUp.bSkipIdle);
|
||||||
game_ini.Get("Core", "EnableFPRF", &StartUp.bEnableFPRF, StartUp.bEnableFPRF);
|
game_ini.Get("Core", "EnableFPRF", &StartUp.bEnableFPRF, StartUp.bEnableFPRF);
|
||||||
game_ini.Get("Core", "MMU", &StartUp.bMMU, StartUp.bMMU);
|
game_ini.Get("Core", "MMU", &StartUp.bMMU, StartUp.bMMU);
|
||||||
game_ini.Get("Core", "BAT", &StartUp.bMMUBAT, StartUp.bMMUBAT);
|
|
||||||
game_ini.Get("Core", "TLBHack", &StartUp.iTLBHack, StartUp.iTLBHack);
|
game_ini.Get("Core", "TLBHack", &StartUp.iTLBHack, StartUp.iTLBHack);
|
||||||
|
game_ini.Get("Core", "DCBZ", &StartUp.bDCBZOFF, StartUp.bDCBZOFF);
|
||||||
game_ini.Get("Core", "VBeam", &StartUp.bVBeam, StartUp.bVBeam);
|
game_ini.Get("Core", "VBeam", &StartUp.bVBeam, StartUp.bVBeam);
|
||||||
game_ini.Get("Core", "FastDiscSpeed", &StartUp.bFastDiscSpeed, StartUp.bFastDiscSpeed);
|
game_ini.Get("Core", "FastDiscSpeed", &StartUp.bFastDiscSpeed, StartUp.bFastDiscSpeed);
|
||||||
game_ini.Get("Core", "BlockMerging", &StartUp.bMergeBlocks, StartUp.bMergeBlocks);
|
game_ini.Get("Core", "BlockMerging", &StartUp.bMergeBlocks, StartUp.bMergeBlocks);
|
||||||
@ -167,7 +167,7 @@ void Stop()
|
|||||||
StartUp.iCPUCore = config_cache.iCPUCore;
|
StartUp.iCPUCore = config_cache.iCPUCore;
|
||||||
StartUp.bEnableFPRF = config_cache.bEnableFPRF;
|
StartUp.bEnableFPRF = config_cache.bEnableFPRF;
|
||||||
StartUp.bMMU = config_cache.bMMU;
|
StartUp.bMMU = config_cache.bMMU;
|
||||||
StartUp.bMMUBAT = config_cache.bMMUBAT;
|
StartUp.bDCBZOFF = config_cache.bDCBZOFF;
|
||||||
StartUp.iTLBHack = config_cache.iTLBHack;
|
StartUp.iTLBHack = config_cache.iTLBHack;
|
||||||
StartUp.bVBeam = config_cache.bVBeam;
|
StartUp.bVBeam = config_cache.bVBeam;
|
||||||
StartUp.bFastDiscSpeed = config_cache.bFastDiscSpeed;
|
StartUp.bFastDiscSpeed = config_cache.bFastDiscSpeed;
|
||||||
|
@ -408,7 +408,7 @@ void SConfig::LoadSettings()
|
|||||||
ini.Get("Core", "TLBHack", &m_LocalCoreStartupParameter.iTLBHack, 0);
|
ini.Get("Core", "TLBHack", &m_LocalCoreStartupParameter.iTLBHack, 0);
|
||||||
ini.Get("Core", "VBeam", &m_LocalCoreStartupParameter.bVBeam, false);
|
ini.Get("Core", "VBeam", &m_LocalCoreStartupParameter.bVBeam, false);
|
||||||
ini.Get("Core", "FastDiscSpeed", &m_LocalCoreStartupParameter.bFastDiscSpeed, false);
|
ini.Get("Core", "FastDiscSpeed", &m_LocalCoreStartupParameter.bFastDiscSpeed, false);
|
||||||
ini.Get("Core", "BAT", &m_LocalCoreStartupParameter.bMMUBAT, false);
|
ini.Get("Core", "DCBZ", &m_LocalCoreStartupParameter.bDCBZOFF, false);
|
||||||
ini.Get("Core", "FrameLimit", &m_Framelimit, 1); // auto frame limit by default
|
ini.Get("Core", "FrameLimit", &m_Framelimit, 1); // auto frame limit by default
|
||||||
ini.Get("Core", "UseFPS", &b_UseFPS, false); // use vps as default
|
ini.Get("Core", "UseFPS", &b_UseFPS, false); // use vps as default
|
||||||
|
|
||||||
|
@ -313,8 +313,6 @@ void CpuThread()
|
|||||||
g_video_backend->Video_Prepare();
|
g_video_backend->Video_Prepare();
|
||||||
}
|
}
|
||||||
|
|
||||||
Common::SetCurrentThreadAffinity(1); // Force to first core
|
|
||||||
|
|
||||||
#if defined(_M_X64)
|
#if defined(_M_X64)
|
||||||
EMM::InstallExceptionHandler(); // Let's run under memory watch
|
EMM::InstallExceptionHandler(); // Let's run under memory watch
|
||||||
#endif
|
#endif
|
||||||
@ -356,8 +354,6 @@ void FifoPlayerThread()
|
|||||||
Common::SetCurrentThreadName("FIFO-GPU thread");
|
Common::SetCurrentThreadName("FIFO-GPU thread");
|
||||||
}
|
}
|
||||||
|
|
||||||
Common::SetCurrentThreadAffinity(1); // Force to first core
|
|
||||||
|
|
||||||
g_bStarted = true;
|
g_bStarted = true;
|
||||||
|
|
||||||
// Enter CPU run loop. When we leave it - we are done.
|
// Enter CPU run loop. When we leave it - we are done.
|
||||||
@ -382,13 +378,6 @@ void EmuThread()
|
|||||||
|
|
||||||
Common::SetCurrentThreadName("Emuthread - Starting");
|
Common::SetCurrentThreadName("Emuthread - Starting");
|
||||||
|
|
||||||
{
|
|
||||||
if (cpu_info.num_cores > 3) // Force to third, non-HT core
|
|
||||||
Common::SetCurrentThreadAffinity(4);
|
|
||||||
else // Force to second core
|
|
||||||
Common::SetCurrentThreadAffinity(2);
|
|
||||||
}
|
|
||||||
|
|
||||||
DisplayMessage(cpu_info.brand_string, 8000);
|
DisplayMessage(cpu_info.brand_string, 8000);
|
||||||
DisplayMessage(cpu_info.Summarize(), 8000);
|
DisplayMessage(cpu_info.Summarize(), 8000);
|
||||||
DisplayMessage(_CoreParameter.m_strFilename, 3000);
|
DisplayMessage(_CoreParameter.m_strFilename, 3000);
|
||||||
|
@ -49,7 +49,7 @@ SCoreStartupParameter::SCoreStartupParameter()
|
|||||||
bMergeBlocks(false),
|
bMergeBlocks(false),
|
||||||
bDPL2Decoder(false), iLatency(14),
|
bDPL2Decoder(false), iLatency(14),
|
||||||
bRunCompareServer(false), bRunCompareClient(false),
|
bRunCompareServer(false), bRunCompareClient(false),
|
||||||
bMMU(false), bMMUBAT(false), iTLBHack(0), bVBeam(false),
|
bMMU(false), bDCBZOFF(false), iTLBHack(0), bVBeam(false),
|
||||||
bFastDiscSpeed(false),
|
bFastDiscSpeed(false),
|
||||||
SelectedLanguage(0), bWii(false), bDisableWiimoteSpeaker(false),
|
SelectedLanguage(0), bWii(false), bDisableWiimoteSpeaker(false),
|
||||||
bConfirmStop(false), bHideCursor(false),
|
bConfirmStop(false), bHideCursor(false),
|
||||||
@ -78,7 +78,7 @@ void SCoreStartupParameter::LoadDefaults()
|
|||||||
bDSPThread = true;
|
bDSPThread = true;
|
||||||
bEnableFPRF = false;
|
bEnableFPRF = false;
|
||||||
bMMU = false;
|
bMMU = false;
|
||||||
bMMUBAT = false;
|
bDCBZOFF = false;
|
||||||
iTLBHack = 0;
|
iTLBHack = 0;
|
||||||
bVBeam = false;
|
bVBeam = false;
|
||||||
bFastDiscSpeed = false;
|
bFastDiscSpeed = false;
|
||||||
@ -351,7 +351,11 @@ void SCoreStartupParameter::CheckMemcardPath(std::string& memcardPath, std::stri
|
|||||||
{
|
{
|
||||||
// Use default memcard path if there is no user defined name
|
// Use default memcard path if there is no user defined name
|
||||||
std::string defaultFilename = isSlotA ? GC_MEMCARDA : GC_MEMCARDB;
|
std::string defaultFilename = isSlotA ? GC_MEMCARDA : GC_MEMCARDB;
|
||||||
|
#ifdef _WIN32
|
||||||
|
memcardPath = "." + File::GetUserPath(D_GCUSER_IDX).substr(File::GetExeDirectory().size()) + defaultFilename + ext;
|
||||||
|
#else
|
||||||
memcardPath = File::GetUserPath(D_GCUSER_IDX) + defaultFilename + ext;
|
memcardPath = File::GetUserPath(D_GCUSER_IDX) + defaultFilename + ext;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -116,7 +116,7 @@ struct SCoreStartupParameter
|
|||||||
bool bRunCompareClient;
|
bool bRunCompareClient;
|
||||||
|
|
||||||
bool bMMU;
|
bool bMMU;
|
||||||
bool bMMUBAT;
|
bool bDCBZOFF;
|
||||||
int iTLBHack;
|
int iTLBHack;
|
||||||
bool bVBeam;
|
bool bVBeam;
|
||||||
bool bFastDiscSpeed;
|
bool bFastDiscSpeed;
|
||||||
|
@ -165,9 +165,10 @@ u16 dsp_read_accelerator()
|
|||||||
// Somehow, YN1 and YN2 must be initialized with their "loop" values,
|
// Somehow, YN1 and YN2 must be initialized with their "loop" values,
|
||||||
// so yeah, it seems likely that we should raise an exception to let
|
// so yeah, it seems likely that we should raise an exception to let
|
||||||
// the DSP program do that, at least if DSP_FORMAT == 0x0A.
|
// the DSP program do that, at least if DSP_FORMAT == 0x0A.
|
||||||
if ((Address & ~0x1f) == (EndAddress & ~0x1f))
|
if (Address >= EndAddress)
|
||||||
{
|
{
|
||||||
// Set address back to start address.
|
// Set address back to start address.
|
||||||
|
if ((Address & ~0x1f) == (EndAddress & ~0x1f))
|
||||||
Address = (g_dsp.ifx_regs[DSP_ACSAH] << 16) | g_dsp.ifx_regs[DSP_ACSAL];
|
Address = (g_dsp.ifx_regs[DSP_ACSAH] << 16) | g_dsp.ifx_regs[DSP_ACSAL];
|
||||||
DSPCore_SetException(EXP_ACCOV);
|
DSPCore_SetException(EXP_ACCOV);
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,6 @@
|
|||||||
|
|
||||||
#include "Common.h"
|
#include "Common.h"
|
||||||
#include "CoreTiming.h"
|
#include "CoreTiming.h"
|
||||||
#include "Thread.h"
|
|
||||||
|
|
||||||
#include "HW/GPFifo.h"
|
#include "HW/GPFifo.h"
|
||||||
#include "HW/Memmap.h"
|
#include "HW/Memmap.h"
|
||||||
@ -28,7 +27,6 @@
|
|||||||
#include "PowerPC/PowerPC.h"
|
#include "PowerPC/PowerPC.h"
|
||||||
|
|
||||||
#include "BPMemory.h"
|
#include "BPMemory.h"
|
||||||
#include "CommandProcessor.h"
|
|
||||||
|
|
||||||
FifoPlayer::~FifoPlayer()
|
FifoPlayer::~FifoPlayer()
|
||||||
{
|
{
|
||||||
@ -96,41 +94,8 @@ bool FifoPlayer::Play()
|
|||||||
if (m_EarlyMemoryUpdates && m_CurrentFrame == m_FrameRangeStart)
|
if (m_EarlyMemoryUpdates && m_CurrentFrame == m_FrameRangeStart)
|
||||||
WriteAllMemoryUpdates();
|
WriteAllMemoryUpdates();
|
||||||
|
|
||||||
// Stop Fifo processing until we've written the new frame
|
|
||||||
WriteCP(CommandProcessor::CTRL_REGISTER, 0x10); // disable read & breakpoints, enable GP link
|
|
||||||
|
|
||||||
// Write frame data
|
|
||||||
WriteFrame(m_File->GetFrame(m_CurrentFrame), m_FrameInfo[m_CurrentFrame]);
|
WriteFrame(m_File->GetFrame(m_CurrentFrame), m_FrameInfo[m_CurrentFrame]);
|
||||||
|
|
||||||
// Enable frame processing and break when done
|
|
||||||
u16 write_ptr_lo = ReadCP(CommandProcessor::FIFO_WRITE_POINTER_LO);
|
|
||||||
u16 write_ptr_hi = ReadCP(CommandProcessor::FIFO_WRITE_POINTER_HI);
|
|
||||||
WriteCP(CommandProcessor::FIFO_BP_LO, write_ptr_lo);
|
|
||||||
WriteCP(CommandProcessor::FIFO_BP_HI, write_ptr_hi);
|
|
||||||
WriteCP(CommandProcessor::CTRL_REGISTER, 0x13); // enable read, breakpoints & GP link
|
|
||||||
|
|
||||||
// If necessary, wait until GP has reached the breakpoint to prevent fifo overflows
|
|
||||||
// TODO: Can this be done any better? Dual core mode is slower than single core mode even with these conditions..
|
|
||||||
if (m_CurrentFrame < m_FrameRangeEnd)
|
|
||||||
{
|
|
||||||
// Check if FIFO would be overflown when writing the next frame
|
|
||||||
u32 CPRWDistance = (ReadCP(CommandProcessor::FIFO_RW_DISTANCE_HI)<<16) | ReadCP(CommandProcessor::FIFO_RW_DISTANCE_LO);
|
|
||||||
CPRWDistance += m_File->GetFrame(m_CurrentFrame+1).fifoDataSize + CommandProcessor::GATHER_PIPE_SIZE;
|
|
||||||
u32 CPFifoBase = (ReadCP(CommandProcessor::FIFO_BASE_HI)<<16) | ReadCP(CommandProcessor::FIFO_BASE_LO);
|
|
||||||
u32 CPFifoEnd = (ReadCP(CommandProcessor::FIFO_END_HI)<<16) | ReadCP(CommandProcessor::FIFO_END_LO);
|
|
||||||
|
|
||||||
bool bWait = (CPRWDistance > CPFifoEnd - CPFifoBase);
|
|
||||||
while (bWait && (ReadCP(CommandProcessor::FIFO_READ_POINTER_LO) != write_ptr_lo ||
|
|
||||||
ReadCP(CommandProcessor::FIFO_READ_POINTER_HI) != write_ptr_hi))
|
|
||||||
{
|
|
||||||
Common::YieldCPU();
|
|
||||||
CoreTiming::Advance(); // Process scheduled events (esp. PixelEngine::SetFinish!)
|
|
||||||
|
|
||||||
if (PowerPC::GetState() == PowerPC::CPU_POWERDOWN)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
++m_CurrentFrame;
|
++m_CurrentFrame;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -422,11 +387,6 @@ void FifoPlayer::LoadMemory()
|
|||||||
FlushWGP();
|
FlushWGP();
|
||||||
}
|
}
|
||||||
|
|
||||||
u16 FifoPlayer::ReadCP(u32 address)
|
|
||||||
{
|
|
||||||
return Memory::Read_U16(0xCC000000 | address);
|
|
||||||
}
|
|
||||||
|
|
||||||
void FifoPlayer::WriteCP(u32 address, u16 value)
|
void FifoPlayer::WriteCP(u32 address, u16 value)
|
||||||
{
|
{
|
||||||
Memory::Write_U16(value, 0xCC000000 | address);
|
Memory::Write_U16(value, 0xCC000000 | address);
|
||||||
|
@ -87,7 +87,6 @@ private:
|
|||||||
|
|
||||||
void LoadMemory();
|
void LoadMemory();
|
||||||
|
|
||||||
u16 ReadCP(u32 address);
|
|
||||||
void WriteCP(u32 address, u16 value);
|
void WriteCP(u32 address, u16 value);
|
||||||
void WritePI(u32 address, u32 value);
|
void WritePI(u32 address, u32 value);
|
||||||
|
|
||||||
|
@ -203,9 +203,11 @@ u16 AcceleratorGetSample()
|
|||||||
//
|
//
|
||||||
// On real hardware, this would raise an interrupt that is handled by the
|
// On real hardware, this would raise an interrupt that is handled by the
|
||||||
// UCode. We simulate what this interrupt does here.
|
// UCode. We simulate what this interrupt does here.
|
||||||
if ((*acc_cur_addr & ~0x1F) == (acc_end_addr & ~0x1F))
|
if (*acc_cur_addr >= acc_end_addr)
|
||||||
{
|
{
|
||||||
// If we are really at the end, loop back to loop_addr.
|
// If we are really at the end (and we don't simply have cur_addr >
|
||||||
|
// end_addr all the time), loop back to loop_addr.
|
||||||
|
if ((*acc_cur_addr & ~0x1F) == (acc_end_addr & ~0x1F))
|
||||||
*acc_cur_addr = acc_loop_addr;
|
*acc_cur_addr = acc_loop_addr;
|
||||||
|
|
||||||
if (acc_pb->audio_addr.looping)
|
if (acc_pb->audio_addr.looping)
|
||||||
|
@ -104,26 +104,6 @@ void DSPLLE::dsp_thread(DSPLLE *dsp_lle)
|
|||||||
{
|
{
|
||||||
Common::SetCurrentThreadName("DSP thread");
|
Common::SetCurrentThreadName("DSP thread");
|
||||||
|
|
||||||
{
|
|
||||||
if (cpu_info.num_cores > 3)
|
|
||||||
{
|
|
||||||
// HACK (delroth): there is no way to know where hyperthreads are in
|
|
||||||
// the current Dolphin version.
|
|
||||||
bool windows = false;
|
|
||||||
#ifdef _WIN32
|
|
||||||
windows = true;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
u8 core_id;
|
|
||||||
if (windows && cpu_info.num_cores > 4) // Probably HT
|
|
||||||
core_id = 5; // 3rd non HT core
|
|
||||||
else
|
|
||||||
core_id = 3; // 3rd core
|
|
||||||
|
|
||||||
Common::SetCurrentThreadAffinity(1 << (core_id - 1));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
while (dsp_lle->m_bIsRunning)
|
while (dsp_lle->m_bIsRunning)
|
||||||
{
|
{
|
||||||
int cycles = (int)dsp_lle->m_cycle_count;
|
int cycles = (int)dsp_lle->m_cycle_count;
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
|
|
||||||
#include "EXI.h"
|
#include "EXI.h"
|
||||||
#include "Sram.h"
|
#include "Sram.h"
|
||||||
|
#include "../Movie.h"
|
||||||
SRAM g_SRAM;
|
SRAM g_SRAM;
|
||||||
|
|
||||||
namespace ExpansionInterface
|
namespace ExpansionInterface
|
||||||
@ -44,6 +45,11 @@ void Init()
|
|||||||
for (u32 i = 0; i < NUM_CHANNELS; i++)
|
for (u32 i = 0; i < NUM_CHANNELS; i++)
|
||||||
g_Channels[i] = new CEXIChannel(i);
|
g_Channels[i] = new CEXIChannel(i);
|
||||||
|
|
||||||
|
if (Movie::IsPlayingInput() && Movie::IsUsingMemcard() && Movie::IsConfigSaved())
|
||||||
|
g_Channels[0]->AddDevice(EXIDEVICE_MEMORYCARD, 0); // SlotA
|
||||||
|
else if(Movie::IsPlayingInput() && !Movie::IsUsingMemcard() && Movie::IsConfigSaved())
|
||||||
|
g_Channels[0]->AddDevice(EXIDEVICE_NONE, 0); // SlotA
|
||||||
|
else
|
||||||
g_Channels[0]->AddDevice(SConfig::GetInstance().m_EXIDevice[0], 0); // SlotA
|
g_Channels[0]->AddDevice(SConfig::GetInstance().m_EXIDevice[0], 0); // SlotA
|
||||||
g_Channels[0]->AddDevice(EXIDEVICE_MASKROM, 1);
|
g_Channels[0]->AddDevice(EXIDEVICE_MASKROM, 1);
|
||||||
g_Channels[0]->AddDevice(SConfig::GetInstance().m_EXIDevice[2], 2); // Serial Port 1
|
g_Channels[0]->AddDevice(SConfig::GetInstance().m_EXIDevice[2], 2); // Serial Port 1
|
||||||
|
@ -960,7 +960,7 @@ u32 TranslateAddress(const u32 _Address, const XCheckTLBFlag _Flag)
|
|||||||
// Check MSR[DR] bit before translating data addresses
|
// Check MSR[DR] bit before translating data addresses
|
||||||
//if (((_Flag == FLAG_READ) || (_Flag == FLAG_WRITE)) && !(MSR & (1 << (31 - 27)))) return _Address;
|
//if (((_Flag == FLAG_READ) || (_Flag == FLAG_WRITE)) && !(MSR & (1 << (31 - 27)))) return _Address;
|
||||||
|
|
||||||
u32 tlb_addr = Core::g_CoreStartupParameter.bMMUBAT?TranslateBlockAddress(_Address, _Flag):0;
|
u32 tlb_addr = TranslateBlockAddress(_Address, _Flag);
|
||||||
if (tlb_addr == 0)
|
if (tlb_addr == 0)
|
||||||
{
|
{
|
||||||
tlb_addr = TranslatePageAddress(_Address, _Flag);
|
tlb_addr = TranslatePageAddress(_Address, _Flag);
|
||||||
|
@ -144,8 +144,8 @@ void Preset(bool _bNTSC)
|
|||||||
m_HorizontalStepping.FbSteps = 40;
|
m_HorizontalStepping.FbSteps = 40;
|
||||||
m_HorizontalStepping.FieldSteps = 40;
|
m_HorizontalStepping.FieldSteps = 40;
|
||||||
|
|
||||||
m_HBeamPos = 1;
|
m_HBeamPos = 0;
|
||||||
m_VBeamPos = 1;
|
m_VBeamPos = 0;
|
||||||
|
|
||||||
// 54MHz, capable of progressive scan
|
// 54MHz, capable of progressive scan
|
||||||
m_Clock = Core::g_CoreStartupParameter.bProgressive;
|
m_Clock = Core::g_CoreStartupParameter.bProgressive;
|
||||||
|
@ -97,8 +97,9 @@ void Turntable::GetState(u8* const data, const bool focus)
|
|||||||
|
|
||||||
// crossfade slider
|
// crossfade slider
|
||||||
{
|
{
|
||||||
u8 cfs = 0;
|
s8 cfs = 0;
|
||||||
m_crossfade->GetState(&cfs, 8, 7);
|
m_crossfade->GetState(&cfs, focus ? 7 : 0);
|
||||||
|
cfs += 8;
|
||||||
|
|
||||||
ttdata->slider = cfs;
|
ttdata->slider = cfs;
|
||||||
}
|
}
|
||||||
|
@ -41,6 +41,13 @@ inline double round(double x) { return (x-floor(x))>0.5 ? ceil(x) : floor(x); }
|
|||||||
|
|
||||||
#include "../../Movie.h"
|
#include "../../Movie.h"
|
||||||
|
|
||||||
|
namespace
|
||||||
|
{
|
||||||
|
// :)
|
||||||
|
auto const TAU = 6.28318530717958647692;
|
||||||
|
auto const PI = TAU / 2.0;
|
||||||
|
}
|
||||||
|
|
||||||
namespace WiimoteEmu
|
namespace WiimoteEmu
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -124,7 +131,8 @@ void EmulateTilt(AccelData* const accel
|
|||||||
, const bool focus, const bool sideways, const bool upright)
|
, const bool focus, const bool sideways, const bool upright)
|
||||||
{
|
{
|
||||||
float roll, pitch;
|
float roll, pitch;
|
||||||
tilt_group->GetState( &roll, &pitch, 0, focus ? (PI / 2) : 0 ); // 90 degrees
|
// 180 degrees
|
||||||
|
tilt_group->GetState(&roll, &pitch, 0, focus ? PI : 0);
|
||||||
|
|
||||||
unsigned int ud = 0, lr = 0, fb = 0;
|
unsigned int ud = 0, lr = 0, fb = 0;
|
||||||
|
|
||||||
@ -267,6 +275,9 @@ Wiimote::Wiimote( const unsigned int index )
|
|||||||
for (unsigned int i=0; i < sizeof(named_buttons)/sizeof(*named_buttons); ++i)
|
for (unsigned int i=0; i < sizeof(named_buttons)/sizeof(*named_buttons); ++i)
|
||||||
m_buttons->controls.push_back(new ControlGroup::Input( named_buttons[i]));
|
m_buttons->controls.push_back(new ControlGroup::Input( named_buttons[i]));
|
||||||
|
|
||||||
|
// udp
|
||||||
|
groups.push_back(m_udp = new UDPWrapper(m_index, _trans("UDP Wiimote")));
|
||||||
|
|
||||||
// ir
|
// ir
|
||||||
groups.push_back(m_ir = new Cursor(_trans("IR")));
|
groups.push_back(m_ir = new Cursor(_trans("IR")));
|
||||||
|
|
||||||
@ -276,9 +287,6 @@ Wiimote::Wiimote( const unsigned int index )
|
|||||||
// tilt
|
// tilt
|
||||||
groups.push_back(m_tilt = new Tilt(_trans("Tilt")));
|
groups.push_back(m_tilt = new Tilt(_trans("Tilt")));
|
||||||
|
|
||||||
// udp
|
|
||||||
groups.push_back(m_udp = new UDPWrapper(m_index, _trans("UDP Wiimote")));
|
|
||||||
|
|
||||||
// shake
|
// shake
|
||||||
groups.push_back(m_shake = new Buttons(_trans("Shake")));
|
groups.push_back(m_shake = new Buttons(_trans("Shake")));
|
||||||
m_shake->controls.push_back(new ControlGroup::Input("X"));
|
m_shake->controls.push_back(new ControlGroup::Input("X"));
|
||||||
|
@ -30,13 +30,6 @@
|
|||||||
#include <vector>
|
#include <vector>
|
||||||
#include <queue>
|
#include <queue>
|
||||||
|
|
||||||
namespace
|
|
||||||
{
|
|
||||||
// :)
|
|
||||||
auto const TAU = 6.28318530717958647692;
|
|
||||||
auto const PI = TAU / 2.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Registry sizes
|
// Registry sizes
|
||||||
#define WIIMOTE_EEPROM_SIZE (16*1024)
|
#define WIIMOTE_EEPROM_SIZE (16*1024)
|
||||||
#define WIIMOTE_EEPROM_FREE_SIZE 0x1700
|
#define WIIMOTE_EEPROM_FREE_SIZE 0x1700
|
||||||
|
@ -736,16 +736,6 @@ bool PlayInput(const char *filename)
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load savestate (and skip to frame data)
|
|
||||||
if(tmpHeader.bFromSaveState)
|
|
||||||
{
|
|
||||||
const std::string stateFilename = std::string(filename) + ".sav";
|
|
||||||
if(File::Exists(stateFilename))
|
|
||||||
Core::SetStateFileName(stateFilename);
|
|
||||||
g_bRecordingFromSaveState = true;
|
|
||||||
Movie::LoadInput(filename);
|
|
||||||
}
|
|
||||||
|
|
||||||
ReadHeader();
|
ReadHeader();
|
||||||
g_totalFrames = tmpHeader.frameCount;
|
g_totalFrames = tmpHeader.frameCount;
|
||||||
g_totalLagCount = tmpHeader.lagCount;
|
g_totalLagCount = tmpHeader.lagCount;
|
||||||
@ -762,6 +752,16 @@ bool PlayInput(const char *filename)
|
|||||||
g_currentByte = 0;
|
g_currentByte = 0;
|
||||||
g_recordfd.Close();
|
g_recordfd.Close();
|
||||||
|
|
||||||
|
// Load savestate (and skip to frame data)
|
||||||
|
if(tmpHeader.bFromSaveState)
|
||||||
|
{
|
||||||
|
const std::string stateFilename = std::string(filename) + ".sav";
|
||||||
|
if(File::Exists(stateFilename))
|
||||||
|
Core::SetStateFileName(stateFilename);
|
||||||
|
g_bRecordingFromSaveState = true;
|
||||||
|
Movie::LoadInput(filename);
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
@ -786,7 +786,13 @@ void DoState(PointerWrap &p)
|
|||||||
|
|
||||||
void LoadInput(const char *filename)
|
void LoadInput(const char *filename)
|
||||||
{
|
{
|
||||||
File::IOFile t_record(filename, "r+b");
|
File::IOFile t_record;
|
||||||
|
if (!t_record.Open(filename, "r+b"))
|
||||||
|
{
|
||||||
|
PanicAlertT("Failed to read %s", filename);
|
||||||
|
EndPlayInput(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
t_record.ReadArray(&tmpHeader, 1);
|
t_record.ReadArray(&tmpHeader, 1);
|
||||||
|
|
||||||
@ -849,7 +855,7 @@ void LoadInput(const char *filename)
|
|||||||
{
|
{
|
||||||
// this is a "you did something wrong" alert for the user's benefit.
|
// this is a "you did something wrong" alert for the user's benefit.
|
||||||
// we'll try to say what's going on in excruciating detail, otherwise the user might not believe us.
|
// we'll try to say what's going on in excruciating detail, otherwise the user might not believe us.
|
||||||
if(Core::g_CoreStartupParameter.bWii)
|
if(IsUsingWiimote(0))
|
||||||
{
|
{
|
||||||
// TODO: more detail
|
// TODO: more detail
|
||||||
PanicAlertT("Warning: You loaded a save whose movie mismatches on byte %d (0x%X). You should load another save before continuing, or load this state with read-only mode off. Otherwise you'll probably get a desync.", i+256, i+256);
|
PanicAlertT("Warning: You loaded a save whose movie mismatches on byte %d (0x%X). You should load another save before continuing, or load this state with read-only mode off. Otherwise you'll probably get a desync.", i+256, i+256);
|
||||||
@ -925,18 +931,6 @@ void PlayController(SPADStatus *PadStatus, int controllerID)
|
|||||||
if (!IsPlayingInput() || !IsUsingPad(controllerID) || tmpInput == NULL)
|
if (!IsPlayingInput() || !IsUsingPad(controllerID) || tmpInput == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (g_currentFrame == 1)
|
|
||||||
{
|
|
||||||
if (tmpHeader.bMemcard)
|
|
||||||
{
|
|
||||||
ExpansionInterface::ChangeDevice(0, EXIDEVICE_MEMORYCARD, 0);
|
|
||||||
}
|
|
||||||
else if (!tmpHeader.bMemcard)
|
|
||||||
{
|
|
||||||
ExpansionInterface::ChangeDevice(0, EXIDEVICE_NONE, 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (g_currentByte + 8 > g_totalBytes)
|
if (g_currentByte + 8 > g_totalBytes)
|
||||||
{
|
{
|
||||||
PanicAlertT("Premature movie end in PlayController. %u + 8 > %u", (u32)g_currentByte, (u32)g_totalBytes);
|
PanicAlertT("Premature movie end in PlayController. %u + 8 > %u", (u32)g_currentByte, (u32)g_totalBytes);
|
||||||
@ -1194,9 +1188,13 @@ void GetSettings()
|
|||||||
g_bClearSave = !File::Exists(SConfig::GetInstance().m_strMemoryCardA);
|
g_bClearSave = !File::Exists(SConfig::GetInstance().m_strMemoryCardA);
|
||||||
bMemcard = SConfig::GetInstance().m_EXIDevice[0] == EXIDEVICE_MEMORYCARD;
|
bMemcard = SConfig::GetInstance().m_EXIDevice[0] == EXIDEVICE_MEMORYCARD;
|
||||||
|
|
||||||
std::stringstream ss;
|
int temp;
|
||||||
ss << std::hex << SCM_REV_STR;
|
|
||||||
ss >> revision;
|
for(int i = 0; i < 4; ++i )
|
||||||
|
{
|
||||||
|
sscanf(SCM_REV_STR + 2 * i, "%2x", &temp );
|
||||||
|
revision[i] = temp;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CheckMD5()
|
void CheckMD5()
|
||||||
|
@ -407,7 +407,7 @@ void Interpreter::dcbtst(UGeckoInstruction _inst)
|
|||||||
void Interpreter::dcbz(UGeckoInstruction _inst)
|
void Interpreter::dcbz(UGeckoInstruction _inst)
|
||||||
{
|
{
|
||||||
// HACK but works... we think
|
// HACK but works... we think
|
||||||
if (HID2.WPE || !HID0.DCFA)
|
if (!Core::g_CoreStartupParameter.bDCBZOFF)
|
||||||
Memory::Memset(Helper_Get_EA_X(_inst) & (~31), 0, 32);
|
Memory::Memset(Helper_Get_EA_X(_inst) & (~31), 0, 32);
|
||||||
if (!jit)
|
if (!jit)
|
||||||
PowerPC::CheckExceptions();
|
PowerPC::CheckExceptions();
|
||||||
|
@ -90,6 +90,13 @@ const u8 *TrampolineCache::GetReadTrampoline(const InstructionInfo &info)
|
|||||||
case 4:
|
case 4:
|
||||||
CALL(thunks.ProtectFunction((void *)&Memory::Read_U32, 1));
|
CALL(thunks.ProtectFunction((void *)&Memory::Read_U32, 1));
|
||||||
break;
|
break;
|
||||||
|
case 2:
|
||||||
|
CALL(thunks.ProtectFunction((void *)&Memory::Read_U16, 1));
|
||||||
|
SHL(32, R(EAX), Imm8(16));
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
CALL(thunks.ProtectFunction((void *)&Memory::Read_U8, 1));
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
ABI_PopAllCallerSavedRegsAndAdjustStack();
|
ABI_PopAllCallerSavedRegsAndAdjustStack();
|
||||||
if (dataReg != EAX) {
|
if (dataReg != EAX) {
|
||||||
@ -176,10 +183,6 @@ const u8 *JitBase::BackPatch(u8 *codePtr, int accessType, u32 emAddress, void *c
|
|||||||
codePtr, emAddress);
|
codePtr, emAddress);
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
if (info.operandSize != 4) {
|
|
||||||
BackPatchError(StringFromFormat("BackPatch - no support for operand size %i", info.operandSize), codePtr, emAddress);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (info.otherReg != RBX)
|
if (info.otherReg != RBX)
|
||||||
PanicAlert("BackPatch : Base reg not RBX."
|
PanicAlert("BackPatch : Base reg not RBX."
|
||||||
"\n\nAttempted to access %08x.", emAddress);
|
"\n\nAttempted to access %08x.", emAddress);
|
||||||
@ -188,7 +191,6 @@ const u8 *JitBase::BackPatch(u8 *codePtr, int accessType, u32 emAddress, void *c
|
|||||||
PanicAlert("BackPatch : Currently only supporting reads."
|
PanicAlert("BackPatch : Currently only supporting reads."
|
||||||
"\n\nAttempted to write to %08x.", emAddress);
|
"\n\nAttempted to write to %08x.", emAddress);
|
||||||
|
|
||||||
// In the first iteration, we assume that all accesses are 32-bit. We also only deal with reads.
|
|
||||||
if (accessType == 0)
|
if (accessType == 0)
|
||||||
{
|
{
|
||||||
XEmitter emitter(codePtr);
|
XEmitter emitter(codePtr);
|
||||||
|
@ -97,6 +97,10 @@ void EmuCodeBlock::UnsafeLoadToEAX(const Gen::OpArg & opAddress, int accessSize,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Add a 2 bytes NOP to have some space for the backpatching
|
||||||
|
if (accessSize == 8)
|
||||||
|
NOP(2);
|
||||||
|
|
||||||
if (accessSize == 32)
|
if (accessSize == 32)
|
||||||
{
|
{
|
||||||
BSWAP(32, EAX);
|
BSWAP(32, EAX);
|
||||||
@ -120,12 +124,11 @@ void EmuCodeBlock::SafeLoadToEAX(const Gen::OpArg & opAddress, int accessSize, s
|
|||||||
{
|
{
|
||||||
#if defined(_M_X64)
|
#if defined(_M_X64)
|
||||||
#ifdef ENABLE_MEM_CHECK
|
#ifdef ENABLE_MEM_CHECK
|
||||||
if (accessSize == 32 && !Core::g_CoreStartupParameter.bMMU && !Core::g_CoreStartupParameter.bEnableDebugging)
|
if (!Core::g_CoreStartupParameter.bMMU && !Core::g_CoreStartupParameter.bEnableDebugging)
|
||||||
#else
|
#else
|
||||||
if (accessSize == 32 && !Core::g_CoreStartupParameter.bMMU)
|
if (!Core::g_CoreStartupParameter.bMMU)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
// BackPatch only supports 32-bits accesses
|
|
||||||
UnsafeLoadToEAX(opAddress, accessSize, offset, signExtend);
|
UnsafeLoadToEAX(opAddress, accessSize, offset, signExtend);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -43,6 +43,7 @@ public:
|
|||||||
virtual std::string GetApploaderDate() const = 0;
|
virtual std::string GetApploaderDate() const = 0;
|
||||||
virtual bool SupportsIntegrityCheck() const { return false; }
|
virtual bool SupportsIntegrityCheck() const { return false; }
|
||||||
virtual bool CheckIntegrity() const { return false; }
|
virtual bool CheckIntegrity() const { return false; }
|
||||||
|
virtual bool IsDiscTwo() const { return false; }
|
||||||
|
|
||||||
enum ECountry
|
enum ECountry
|
||||||
{
|
{
|
||||||
|
@ -137,4 +137,11 @@ u64 CVolumeGC::GetSize() const
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CVolumeGC::IsDiscTwo() const
|
||||||
|
{
|
||||||
|
bool discTwo;
|
||||||
|
Read(6,1, (u8*) &discTwo);
|
||||||
|
return discTwo;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
@ -39,6 +39,7 @@ public:
|
|||||||
std::string GetApploaderDate() const;
|
std::string GetApploaderDate() const;
|
||||||
ECountry GetCountry() const;
|
ECountry GetCountry() const;
|
||||||
u64 GetSize() const;
|
u64 GetSize() const;
|
||||||
|
bool IsDiscTwo() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
IBlobReader* m_pReader;
|
IBlobReader* m_pReader;
|
||||||
|
@ -1064,6 +1064,13 @@ void CConfigMain::ChooseMemcardPath(std::string& strMemcard, bool isSlotA)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#ifdef _WIN32
|
||||||
|
if (!strncmp(File::GetExeDirectory().c_str(), filename.c_str(), File::GetExeDirectory().size()))
|
||||||
|
{
|
||||||
|
filename.erase(0, File::GetExeDirectory().size() +1);
|
||||||
|
filename = "./" + filename;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// also check that the path isn't used for the other memcard...
|
// also check that the path isn't used for the other memcard...
|
||||||
if (filename.compare(isSlotA ? SConfig::GetInstance().m_strMemoryCardB
|
if (filename.compare(isSlotA ? SConfig::GetInstance().m_strMemoryCardB
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
#include "VideoConfig.h"
|
#include "VideoConfig.h"
|
||||||
#include "Host.h"
|
#include "Host.h"
|
||||||
#include "RenderBase.h"
|
#include "RenderBase.h"
|
||||||
|
#include "ConfigManager.h"
|
||||||
|
|
||||||
#include "VertexShaderManager.h"
|
#include "VertexShaderManager.h"
|
||||||
#include "../GLInterface.h"
|
#include "../GLInterface.h"
|
||||||
@ -90,13 +91,6 @@ bool cInterfaceAGL::Create(void *&window_handle)
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool cInterfaceAGL::MakeCurrent()
|
bool cInterfaceAGL::MakeCurrent()
|
||||||
{
|
|
||||||
[GLWin.cocoaCtx makeCurrentContext];
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update window width, size and etc. Called from Render.cpp
|
|
||||||
void cInterfaceAGL::Update()
|
|
||||||
{
|
{
|
||||||
int width, height;
|
int width, height;
|
||||||
|
|
||||||
@ -110,6 +104,7 @@ void cInterfaceAGL::Update()
|
|||||||
[GLWin.cocoaCtx makeCurrentContext];
|
[GLWin.cocoaCtx makeCurrentContext];
|
||||||
s_backbuffer_width = width;
|
s_backbuffer_width = width;
|
||||||
s_backbuffer_height = height;
|
s_backbuffer_height = height;
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Close backend
|
// Close backend
|
||||||
|
@ -26,6 +26,12 @@ void cInterfaceEGL::UpdateFPSDisplay(const char *text)
|
|||||||
{
|
{
|
||||||
XStoreName(GLWin.dpy, GLWin.win, text);
|
XStoreName(GLWin.dpy, GLWin.win, text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void cInterfaceEGL::SwapInterval(int Interval)
|
||||||
|
{
|
||||||
|
eglSwapInterval(GLWin.egl_dpy, Interval);
|
||||||
|
}
|
||||||
|
|
||||||
void cInterfaceEGL::Swap()
|
void cInterfaceEGL::Swap()
|
||||||
{
|
{
|
||||||
eglSwapBuffers(GLWin.egl_dpy, GLWin.egl_surf);
|
eglSwapBuffers(GLWin.egl_dpy, GLWin.egl_surf);
|
||||||
@ -42,38 +48,30 @@ bool cInterfaceEGL::Create(void *&window_handle)
|
|||||||
s_backbuffer_width = _twidth;
|
s_backbuffer_width = _twidth;
|
||||||
s_backbuffer_height = _theight;
|
s_backbuffer_height = _theight;
|
||||||
|
|
||||||
const char *s;
|
|
||||||
EGLint egl_major, egl_minor;
|
EGLint egl_major, egl_minor;
|
||||||
|
|
||||||
GLWin.dpy = XOpenDisplay(NULL);
|
GLWin.dpy = XOpenDisplay(NULL);
|
||||||
|
|
||||||
if (!GLWin.dpy) {
|
if (!GLWin.dpy) {
|
||||||
printf("Error: couldn't open display\n");
|
ERROR_LOG(VIDEO, "Error: couldn't open display\n");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
GLWin.egl_dpy = eglGetDisplay(GLWin.dpy);
|
GLWin.egl_dpy = eglGetDisplay(GLWin.dpy);
|
||||||
if (!GLWin.egl_dpy) {
|
if (!GLWin.egl_dpy) {
|
||||||
printf("Error: eglGetDisplay() failed\n");
|
ERROR_LOG(VIDEO, "Error: eglGetDisplay() failed\n");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!eglInitialize(GLWin.egl_dpy, &egl_major, &egl_minor)) {
|
if (!eglInitialize(GLWin.egl_dpy, &egl_major, &egl_minor)) {
|
||||||
printf("Error: eglInitialize() failed\n");
|
ERROR_LOG(VIDEO, "Error: eglInitialize() failed\n");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
s = eglQueryString(GLWin.egl_dpy, EGL_VERSION);
|
INFO_LOG(VIDEO, "EGL_VERSION = %s\n", eglQueryString(GLWin.egl_dpy, EGL_VERSION));
|
||||||
printf("EGL_VERSION = %s\n", s);
|
INFO_LOG(VIDEO, "EGL_VENDOR = %s\n", eglQueryString(GLWin.egl_dpy, EGL_VENDOR));
|
||||||
|
INFO_LOG(VIDEO, "EGL_EXTENSIONS = %s\n", eglQueryString(GLWin.egl_dpy, EGL_EXTENSIONS));
|
||||||
s = eglQueryString(GLWin.egl_dpy, EGL_VENDOR);
|
INFO_LOG(VIDEO, "EGL_CLIENT_APIS = %s\n", eglQueryString(GLWin.egl_dpy, EGL_CLIENT_APIS));
|
||||||
printf("EGL_VENDOR = %s\n", s);
|
|
||||||
|
|
||||||
s = eglQueryString(GLWin.egl_dpy, EGL_EXTENSIONS);
|
|
||||||
printf("EGL_EXTENSIONS = %s\n", s);
|
|
||||||
|
|
||||||
s = eglQueryString(GLWin.egl_dpy, EGL_CLIENT_APIS);
|
|
||||||
printf("EGL_CLIENT_APIS = %s\n", s);
|
|
||||||
|
|
||||||
// attributes for a visual in RGBA format with at least
|
// attributes for a visual in RGBA format with at least
|
||||||
// 8 bits per color and a 24 bit depth buffer
|
// 8 bits per color and a 24 bit depth buffer
|
||||||
@ -109,21 +107,21 @@ bool cInterfaceEGL::Create(void *&window_handle)
|
|||||||
EGLint vid;
|
EGLint vid;
|
||||||
|
|
||||||
if (!eglChooseConfig( GLWin.egl_dpy, attribs, &config, 1, &num_configs)) {
|
if (!eglChooseConfig( GLWin.egl_dpy, attribs, &config, 1, &num_configs)) {
|
||||||
printf("Error: couldn't get an EGL visual config\n");
|
ERROR_LOG(VIDEO, "Error: couldn't get an EGL visual config\n");
|
||||||
exit(1);
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!eglGetConfigAttrib(GLWin.egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) {
|
if (!eglGetConfigAttrib(GLWin.egl_dpy, config, EGL_NATIVE_VISUAL_ID, &vid)) {
|
||||||
printf("Error: eglGetConfigAttrib() failed\n");
|
ERROR_LOG(VIDEO, "Error: eglGetConfigAttrib() failed\n");
|
||||||
exit(1);
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The X window visual must match the EGL config */
|
/* The X window visual must match the EGL config */
|
||||||
visTemplate.visualid = vid;
|
visTemplate.visualid = vid;
|
||||||
GLWin.vi = XGetVisualInfo(GLWin.dpy, VisualIDMask, &visTemplate, &num_visuals);
|
GLWin.vi = XGetVisualInfo(GLWin.dpy, VisualIDMask, &visTemplate, &num_visuals);
|
||||||
if (!GLWin.vi) {
|
if (!GLWin.vi) {
|
||||||
printf("Error: couldn't get X visual\n");
|
ERROR_LOG(VIDEO, "Error: couldn't get X visual\n");
|
||||||
exit(1);
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
GLWin.x = _tx;
|
GLWin.x = _tx;
|
||||||
@ -139,32 +137,25 @@ bool cInterfaceEGL::Create(void *&window_handle)
|
|||||||
#endif
|
#endif
|
||||||
GLWin.egl_ctx = eglCreateContext(GLWin.egl_dpy, config, EGL_NO_CONTEXT, ctx_attribs );
|
GLWin.egl_ctx = eglCreateContext(GLWin.egl_dpy, config, EGL_NO_CONTEXT, ctx_attribs );
|
||||||
if (!GLWin.egl_ctx) {
|
if (!GLWin.egl_ctx) {
|
||||||
printf("Error: eglCreateContext failed\n");
|
ERROR_LOG(VIDEO, "Error: eglCreateContext failed\n");
|
||||||
exit(1);
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
GLWin.egl_surf = eglCreateWindowSurface(GLWin.egl_dpy, config, GLWin.win, NULL);
|
GLWin.egl_surf = eglCreateWindowSurface(GLWin.egl_dpy, config, GLWin.win, NULL);
|
||||||
if (!GLWin.egl_surf) {
|
if (!GLWin.egl_surf) {
|
||||||
printf("Error: eglCreateWindowSurface failed\n");
|
ERROR_LOG(VIDEO, "Error: eglCreateWindowSurface failed\n");
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!eglMakeCurrent(GLWin.egl_dpy, GLWin.egl_surf, GLWin.egl_surf, GLWin.egl_ctx)) {
|
|
||||||
|
|
||||||
printf("Error: eglMakeCurrent() failed\n");
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!eglMakeCurrent(GLWin.egl_dpy, GLWin.egl_surf, GLWin.egl_surf, GLWin.egl_ctx)) {
|
||||||
|
ERROR_LOG(VIDEO, "Error: eglMakeCurrent() failed\n");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
printf("GL_VENDOR: %s\n", glGetString(GL_VENDOR));
|
INFO_LOG(VIDEO, "GL_VENDOR: %s\n", glGetString(GL_VENDOR));
|
||||||
printf("GL_RENDERER: %s\n", glGetString(GL_RENDERER));
|
INFO_LOG(VIDEO, "GL_RENDERER: %s\n", glGetString(GL_RENDERER));
|
||||||
printf("GL_VERSION: %s\n", glGetString(GL_VERSION));
|
INFO_LOG(VIDEO, "GL_VERSION: %s\n", glGetString(GL_VERSION));
|
||||||
printf("GL_EXTENSIONS: %s\n", glGetString(GL_EXTENSIONS));
|
INFO_LOG(VIDEO, "GL_EXTENSIONS: %s\n", glGetString(GL_EXTENSIONS));
|
||||||
/* Set initial projection/viewing transformation.
|
|
||||||
* We can't be sure we'll get a ConfigureNotify event when the window
|
|
||||||
* first appears.
|
|
||||||
*/
|
|
||||||
glViewport(0, 0, (GLint) _twidth, (GLint) _theight);
|
|
||||||
window_handle = (void *)GLWin.win;
|
window_handle = (void *)GLWin.win;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -34,6 +34,7 @@ private:
|
|||||||
cX11Window XWindow;
|
cX11Window XWindow;
|
||||||
public:
|
public:
|
||||||
friend class cX11Window;
|
friend class cX11Window;
|
||||||
|
void SwapInterval(int Interval);
|
||||||
void Swap();
|
void Swap();
|
||||||
void UpdateFPSDisplay(const char *Text);
|
void UpdateFPSDisplay(const char *Text);
|
||||||
bool Create(void *&window_handle);
|
bool Create(void *&window_handle);
|
||||||
|
@ -27,6 +27,15 @@ void cInterfaceGLX::UpdateFPSDisplay(const char *text)
|
|||||||
{
|
{
|
||||||
XStoreName(GLWin.dpy, GLWin.win, text);
|
XStoreName(GLWin.dpy, GLWin.win, text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void cInterfaceGLX::SwapInterval(int Interval)
|
||||||
|
{
|
||||||
|
if (glXSwapIntervalSGI)
|
||||||
|
glXSwapIntervalSGI(Interval);
|
||||||
|
else
|
||||||
|
ERROR_LOG(VIDEO, "No support for SwapInterval (framerate clamped to monitor refresh rate).");
|
||||||
|
}
|
||||||
|
|
||||||
void cInterfaceGLX::Swap()
|
void cInterfaceGLX::Swap()
|
||||||
{
|
{
|
||||||
glXSwapBuffers(GLWin.dpy, GLWin.win);
|
glXSwapBuffers(GLWin.dpy, GLWin.win);
|
||||||
|
@ -31,6 +31,7 @@ private:
|
|||||||
cX11Window XWindow;
|
cX11Window XWindow;
|
||||||
public:
|
public:
|
||||||
friend class cX11Window;
|
friend class cX11Window;
|
||||||
|
void SwapInterval(int Interval);
|
||||||
void Swap();
|
void Swap();
|
||||||
void UpdateFPSDisplay(const char *Text);
|
void UpdateFPSDisplay(const char *Text);
|
||||||
bool Create(void *&window_handle);
|
bool Create(void *&window_handle);
|
||||||
|
@ -29,6 +29,7 @@ public:
|
|||||||
virtual bool MakeCurrent() = 0;
|
virtual bool MakeCurrent() = 0;
|
||||||
virtual void Shutdown() = 0;
|
virtual void Shutdown() = 0;
|
||||||
|
|
||||||
|
virtual void SwapInterval(int Interval) { }
|
||||||
virtual u32 GetBackBufferWidth() { return s_backbuffer_width; }
|
virtual u32 GetBackBufferWidth() { return s_backbuffer_width; }
|
||||||
virtual u32 GetBackBufferHeight() { return s_backbuffer_height; }
|
virtual u32 GetBackBufferHeight() { return s_backbuffer_height; }
|
||||||
virtual void SetBackBufferDimensions(u32 W, u32 H) {s_backbuffer_width = W; s_backbuffer_height = H; }
|
virtual void SetBackBufferDimensions(u32 W, u32 H) {s_backbuffer_width = W; s_backbuffer_height = H; }
|
||||||
|
@ -27,6 +27,13 @@
|
|||||||
static HDC hDC = NULL; // Private GDI Device Context
|
static HDC hDC = NULL; // Private GDI Device Context
|
||||||
static HGLRC hRC = NULL; // Permanent Rendering Context
|
static HGLRC hRC = NULL; // Permanent Rendering Context
|
||||||
|
|
||||||
|
void cInterfaceWGL::SwapInterval(int Interval)
|
||||||
|
{
|
||||||
|
if (WGLEW_EXT_swap_control)
|
||||||
|
wglSwapIntervalEXT(Interval);
|
||||||
|
else
|
||||||
|
ERROR_LOG(VIDEO, "No support for SwapInterval (framerate clamped to monitor refresh rate).");
|
||||||
|
}
|
||||||
void cInterfaceWGL::Swap()
|
void cInterfaceWGL::Swap()
|
||||||
{
|
{
|
||||||
SwapBuffers(hDC);
|
SwapBuffers(hDC);
|
||||||
|
@ -28,6 +28,7 @@
|
|||||||
class cInterfaceWGL : public cInterfaceBase
|
class cInterfaceWGL : public cInterfaceBase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
void SwapInterval(int Interval);
|
||||||
void Swap();
|
void Swap();
|
||||||
void UpdateFPSDisplay(const char *Text);
|
void UpdateFPSDisplay(const char *Text);
|
||||||
bool Create(void *&window_handle);
|
bool Create(void *&window_handle);
|
||||||
|
@ -23,6 +23,19 @@
|
|||||||
#include "../GLInterface.h"
|
#include "../GLInterface.h"
|
||||||
#include "WX.h"
|
#include "WX.h"
|
||||||
|
|
||||||
|
void cInterfaceWX::SwapInterval(int Interval)
|
||||||
|
{
|
||||||
|
// WX interface only used on Apple
|
||||||
|
#ifdef __APPLE__
|
||||||
|
#if defined USE_WX && USE_WX
|
||||||
|
NSOpenGLContext *ctx = GLWin.glCtxt->GetWXGLContext();
|
||||||
|
#else
|
||||||
|
NSOpenGLContext *ctx = GLWin.cocoaCtx;
|
||||||
|
#endif
|
||||||
|
[ctx setValues: &Interval forParameter: NSOpenGLCPSwapInterval];
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
void cInterfaceWX::Swap()
|
void cInterfaceWX::Swap()
|
||||||
{
|
{
|
||||||
GLWin.glCanvas->SwapBuffers();
|
GLWin.glCanvas->SwapBuffers();
|
||||||
|
@ -35,6 +35,7 @@
|
|||||||
class cInterfaceWX : public cInterfaceBase
|
class cInterfaceWX : public cInterfaceBase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
void SwapInterval(int Interval);
|
||||||
void Swap();
|
void Swap();
|
||||||
void UpdateFPSDisplay(const char *Text);
|
void UpdateFPSDisplay(const char *Text);
|
||||||
bool Create(void *&window_handle);
|
bool Create(void *&window_handle);
|
||||||
|
@ -94,6 +94,13 @@ static int CompareGameListItems(const GameListItem* iso1, const GameListItem* is
|
|||||||
switch(sortData)
|
switch(sortData)
|
||||||
{
|
{
|
||||||
case CGameListCtrl::COLUMN_TITLE:
|
case CGameListCtrl::COLUMN_TITLE:
|
||||||
|
if (!strcasecmp(iso1->GetName(indexOne).c_str(),iso2->GetName(indexOther).c_str()))
|
||||||
|
{
|
||||||
|
if (iso1->IsDiscTwo())
|
||||||
|
return 1 * t;
|
||||||
|
else if (iso2->IsDiscTwo())
|
||||||
|
return -1 * t;
|
||||||
|
}
|
||||||
return strcasecmp(iso1->GetName(indexOne).c_str(),
|
return strcasecmp(iso1->GetName(indexOne).c_str(),
|
||||||
iso2->GetName(indexOther).c_str()) * t;
|
iso2->GetName(indexOther).c_str()) * t;
|
||||||
case CGameListCtrl::COLUMN_NOTES:
|
case CGameListCtrl::COLUMN_NOTES:
|
||||||
|
@ -36,7 +36,7 @@
|
|||||||
#include "ChunkFile.h"
|
#include "ChunkFile.h"
|
||||||
#include "../resources/no_banner.cpp"
|
#include "../resources/no_banner.cpp"
|
||||||
|
|
||||||
#define CACHE_REVISION 0x10E
|
#define CACHE_REVISION 0x10F
|
||||||
|
|
||||||
#define DVD_BANNER_WIDTH 96
|
#define DVD_BANNER_WIDTH 96
|
||||||
#define DVD_BANNER_HEIGHT 32
|
#define DVD_BANNER_HEIGHT 32
|
||||||
@ -91,6 +91,7 @@ GameListItem::GameListItem(const std::string& _rFileName)
|
|||||||
|
|
||||||
m_UniqueID = pVolume->GetUniqueID();
|
m_UniqueID = pVolume->GetUniqueID();
|
||||||
m_BlobCompressed = DiscIO::IsCompressedBlob(_rFileName.c_str());
|
m_BlobCompressed = DiscIO::IsCompressedBlob(_rFileName.c_str());
|
||||||
|
m_IsDiscTwo = pVolume->IsDiscTwo();
|
||||||
|
|
||||||
// check if we can get some infos from the banner file too
|
// check if we can get some infos from the banner file too
|
||||||
DiscIO::IFileSystem* pFileSystem = DiscIO::CreateFileSystem(pVolume);
|
DiscIO::IFileSystem* pFileSystem = DiscIO::CreateFileSystem(pVolume);
|
||||||
@ -235,6 +236,7 @@ void GameListItem::DoState(PointerWrap &p)
|
|||||||
p.Do(m_BlobCompressed);
|
p.Do(m_BlobCompressed);
|
||||||
p.Do(m_pImage);
|
p.Do(m_pImage);
|
||||||
p.Do(m_Platform);
|
p.Do(m_Platform);
|
||||||
|
p.Do(m_IsDiscTwo);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string GameListItem::CreateCacheFilename()
|
std::string GameListItem::CreateCacheFilename()
|
||||||
|
@ -48,6 +48,7 @@ public:
|
|||||||
bool IsCompressed() const {return m_BlobCompressed;}
|
bool IsCompressed() const {return m_BlobCompressed;}
|
||||||
u64 GetFileSize() const {return m_FileSize;}
|
u64 GetFileSize() const {return m_FileSize;}
|
||||||
u64 GetVolumeSize() const {return m_VolumeSize;}
|
u64 GetVolumeSize() const {return m_VolumeSize;}
|
||||||
|
bool IsDiscTwo() const {return m_IsDiscTwo;}
|
||||||
#if defined(HAVE_WX) && HAVE_WX
|
#if defined(HAVE_WX) && HAVE_WX
|
||||||
const wxImage& GetImage() const {return m_Image;}
|
const wxImage& GetImage() const {return m_Image;}
|
||||||
#endif
|
#endif
|
||||||
@ -87,6 +88,7 @@ private:
|
|||||||
bool m_BlobCompressed;
|
bool m_BlobCompressed;
|
||||||
std::vector<u8> m_pImage;
|
std::vector<u8> m_pImage;
|
||||||
u32 m_ImageSize;
|
u32 m_ImageSize;
|
||||||
|
bool m_IsDiscTwo;
|
||||||
|
|
||||||
bool LoadFromCache();
|
bool LoadFromCache();
|
||||||
void SaveToCache();
|
void SaveToCache();
|
||||||
|
@ -315,10 +315,10 @@ void CISOProperties::CreateGUIControls(bool IsWad)
|
|||||||
SkipIdle = new wxCheckBox(m_GameConfig, ID_IDLESKIP, _("Enable Idle Skipping"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator);
|
SkipIdle = new wxCheckBox(m_GameConfig, ID_IDLESKIP, _("Enable Idle Skipping"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator);
|
||||||
MMU = new wxCheckBox(m_GameConfig, ID_MMU, _("Enable MMU"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator);
|
MMU = new wxCheckBox(m_GameConfig, ID_MMU, _("Enable MMU"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator);
|
||||||
MMU->SetToolTip(_("Enables the Memory Management Unit, needed for some games. (ON = Compatible, OFF = Fast)"));
|
MMU->SetToolTip(_("Enables the Memory Management Unit, needed for some games. (ON = Compatible, OFF = Fast)"));
|
||||||
MMUBAT = new wxCheckBox(m_GameConfig, ID_MMUBAT, _("Enable BAT"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator);
|
|
||||||
MMUBAT->SetToolTip(_("Enables Block Address Translation (BAT); a function of the Memory Management Unit. Accurate to the hardware, but slow to emulate. (ON = Compatible, OFF = Fast)"));
|
|
||||||
TLBHack = new wxCheckBox(m_GameConfig, ID_TLBHACK, _("MMU Speed Hack"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator);
|
TLBHack = new wxCheckBox(m_GameConfig, ID_TLBHACK, _("MMU Speed Hack"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator);
|
||||||
TLBHack->SetToolTip(_("Fast version of the MMU. Does not work for every game."));
|
TLBHack->SetToolTip(_("Fast version of the MMU. Does not work for every game."));
|
||||||
|
DCBZOFF = new wxCheckBox(m_GameConfig, ID_DCBZOFF, _("Skip DCBZ clearing"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator);
|
||||||
|
DCBZOFF->SetToolTip(_("Bypass the clearing of the data cache by the DCBZ instruction. Usually leave this option disabled."));
|
||||||
VBeam = new wxCheckBox(m_GameConfig, ID_VBEAM, _("Accurate VBeam emulation"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator);
|
VBeam = new wxCheckBox(m_GameConfig, ID_VBEAM, _("Accurate VBeam emulation"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator);
|
||||||
VBeam->SetToolTip(_("If the FPS is erratic, this option may help. (ON = Compatible, OFF = Fast)"));
|
VBeam->SetToolTip(_("If the FPS is erratic, this option may help. (ON = Compatible, OFF = Fast)"));
|
||||||
FastDiscSpeed = new wxCheckBox(m_GameConfig, ID_DISCSPEED, _("Speed up Disc Transfer Rate"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator);
|
FastDiscSpeed = new wxCheckBox(m_GameConfig, ID_DISCSPEED, _("Speed up Disc Transfer Rate"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE|wxCHK_ALLOW_3RD_STATE_FOR_USER, wxDefaultValidator);
|
||||||
@ -364,7 +364,7 @@ void CISOProperties::CreateGUIControls(bool IsWad)
|
|||||||
sbCoreOverrides->Add(CPUThread, 0, wxLEFT, 5);
|
sbCoreOverrides->Add(CPUThread, 0, wxLEFT, 5);
|
||||||
sbCoreOverrides->Add(SkipIdle, 0, wxLEFT, 5);
|
sbCoreOverrides->Add(SkipIdle, 0, wxLEFT, 5);
|
||||||
sbCoreOverrides->Add(MMU, 0, wxLEFT, 5);
|
sbCoreOverrides->Add(MMU, 0, wxLEFT, 5);
|
||||||
sbCoreOverrides->Add(MMUBAT, 0, wxLEFT, 5);
|
sbCoreOverrides->Add(DCBZOFF, 0, wxLEFT, 5);
|
||||||
sbCoreOverrides->Add(TLBHack, 0, wxLEFT, 5);
|
sbCoreOverrides->Add(TLBHack, 0, wxLEFT, 5);
|
||||||
sbCoreOverrides->Add(VBeam, 0, wxLEFT, 5);
|
sbCoreOverrides->Add(VBeam, 0, wxLEFT, 5);
|
||||||
sbCoreOverrides->Add(FastDiscSpeed, 0, wxLEFT, 5);
|
sbCoreOverrides->Add(FastDiscSpeed, 0, wxLEFT, 5);
|
||||||
@ -930,16 +930,16 @@ void CISOProperties::LoadGameConfig()
|
|||||||
else
|
else
|
||||||
MMU->Set3StateValue(wxCHK_UNDETERMINED);
|
MMU->Set3StateValue(wxCHK_UNDETERMINED);
|
||||||
|
|
||||||
if (GameIni.Get("Core", "BAT", &bTemp))
|
|
||||||
MMUBAT->Set3StateValue((wxCheckBoxState)bTemp);
|
|
||||||
else
|
|
||||||
MMUBAT->Set3StateValue(wxCHK_UNDETERMINED);
|
|
||||||
|
|
||||||
if (GameIni.Get("Core", "TLBHack", &bTemp))
|
if (GameIni.Get("Core", "TLBHack", &bTemp))
|
||||||
TLBHack->Set3StateValue((wxCheckBoxState)bTemp);
|
TLBHack->Set3StateValue((wxCheckBoxState)bTemp);
|
||||||
else
|
else
|
||||||
TLBHack->Set3StateValue(wxCHK_UNDETERMINED);
|
TLBHack->Set3StateValue(wxCHK_UNDETERMINED);
|
||||||
|
|
||||||
|
if (GameIni.Get("Core", "DCBZ", &bTemp))
|
||||||
|
DCBZOFF->Set3StateValue((wxCheckBoxState)bTemp);
|
||||||
|
else
|
||||||
|
DCBZOFF->Set3StateValue(wxCHK_UNDETERMINED);
|
||||||
|
|
||||||
if (GameIni.Get("Core", "VBeam", &bTemp))
|
if (GameIni.Get("Core", "VBeam", &bTemp))
|
||||||
VBeam->Set3StateValue((wxCheckBoxState)bTemp);
|
VBeam->Set3StateValue((wxCheckBoxState)bTemp);
|
||||||
else
|
else
|
||||||
@ -999,7 +999,6 @@ void CISOProperties::LoadGameConfig()
|
|||||||
if (!sTemp.empty())
|
if (!sTemp.empty())
|
||||||
{
|
{
|
||||||
EmuIssues->SetValue(wxString(sTemp.c_str(), *wxConvCurrent));
|
EmuIssues->SetValue(wxString(sTemp.c_str(), *wxConvCurrent));
|
||||||
bRefreshList = true;
|
|
||||||
}
|
}
|
||||||
EmuIssues->Enable(EmuState->GetSelection() != 0);
|
EmuIssues->Enable(EmuState->GetSelection() != 0);
|
||||||
|
|
||||||
@ -1025,16 +1024,16 @@ bool CISOProperties::SaveGameConfig()
|
|||||||
else
|
else
|
||||||
GameIni.Set("Core", "MMU", MMU->Get3StateValue());
|
GameIni.Set("Core", "MMU", MMU->Get3StateValue());
|
||||||
|
|
||||||
if (MMUBAT->Get3StateValue() == wxCHK_UNDETERMINED)
|
|
||||||
GameIni.DeleteKey("Core", "BAT");
|
|
||||||
else
|
|
||||||
GameIni.Set("Core", "BAT", MMUBAT->Get3StateValue());
|
|
||||||
|
|
||||||
if (TLBHack->Get3StateValue() == wxCHK_UNDETERMINED)
|
if (TLBHack->Get3StateValue() == wxCHK_UNDETERMINED)
|
||||||
GameIni.DeleteKey("Core", "TLBHack");
|
GameIni.DeleteKey("Core", "TLBHack");
|
||||||
else
|
else
|
||||||
GameIni.Set("Core", "TLBHack", TLBHack->Get3StateValue());
|
GameIni.Set("Core", "TLBHack", TLBHack->Get3StateValue());
|
||||||
|
|
||||||
|
if (DCBZOFF->Get3StateValue() == wxCHK_UNDETERMINED)
|
||||||
|
GameIni.DeleteKey("Core", "DCBZ");
|
||||||
|
else
|
||||||
|
GameIni.Set("Core", "DCBZ", DCBZOFF->Get3StateValue());
|
||||||
|
|
||||||
if (VBeam->Get3StateValue() == wxCHK_UNDETERMINED)
|
if (VBeam->Get3StateValue() == wxCHK_UNDETERMINED)
|
||||||
GameIni.DeleteKey("Core", "VBeam");
|
GameIni.DeleteKey("Core", "VBeam");
|
||||||
else
|
else
|
||||||
@ -1085,6 +1084,11 @@ bool CISOProperties::SaveGameConfig()
|
|||||||
GameIni.Set("Video", "PH_ZFar", PHack_Data.PHZFar);
|
GameIni.Set("Video", "PH_ZFar", PHack_Data.PHZFar);
|
||||||
|
|
||||||
GameIni.Set("EmuState", "EmulationStateId", EmuState->GetSelection());
|
GameIni.Set("EmuState", "EmulationStateId", EmuState->GetSelection());
|
||||||
|
|
||||||
|
std::string sTemp;
|
||||||
|
GameIni.Get("EmuState","EmulationIssues", &sTemp);
|
||||||
|
if (EmuIssues->GetValue() != sTemp)
|
||||||
|
bRefreshList = true;
|
||||||
GameIni.Set("EmuState", "EmulationIssues", (const char*)EmuIssues->GetValue().mb_str(*wxConvCurrent));
|
GameIni.Set("EmuState", "EmulationIssues", (const char*)EmuIssues->GetValue().mb_str(*wxConvCurrent));
|
||||||
|
|
||||||
PatchList_Save();
|
PatchList_Save();
|
||||||
|
@ -69,7 +69,7 @@ private:
|
|||||||
DECLARE_EVENT_TABLE();
|
DECLARE_EVENT_TABLE();
|
||||||
|
|
||||||
// Core
|
// Core
|
||||||
wxCheckBox *CPUThread, *SkipIdle, *MMU, *MMUBAT, *TLBHack;
|
wxCheckBox *CPUThread, *SkipIdle, *MMU, *DCBZOFF, *TLBHack;
|
||||||
wxCheckBox *VBeam, *FastDiscSpeed, *BlockMerging, *DSPHLE;
|
wxCheckBox *VBeam, *FastDiscSpeed, *BlockMerging, *DSPHLE;
|
||||||
// Wii
|
// Wii
|
||||||
wxCheckBox *EnableWideScreen, *DisableWiimoteSpeaker;
|
wxCheckBox *EnableWideScreen, *DisableWiimoteSpeaker;
|
||||||
@ -127,7 +127,7 @@ private:
|
|||||||
ID_USEDUALCORE,
|
ID_USEDUALCORE,
|
||||||
ID_IDLESKIP,
|
ID_IDLESKIP,
|
||||||
ID_MMU,
|
ID_MMU,
|
||||||
ID_MMUBAT,
|
ID_DCBZOFF,
|
||||||
ID_TLBHACK,
|
ID_TLBHACK,
|
||||||
ID_VBEAM,
|
ID_VBEAM,
|
||||||
ID_DISCSPEED,
|
ID_DISCSPEED,
|
||||||
|
@ -124,12 +124,12 @@ void EWMH_Fullscreen(Display *dpy, int action)
|
|||||||
#if defined(HAVE_WX) && HAVE_WX
|
#if defined(HAVE_WX) && HAVE_WX
|
||||||
Window XWindowFromHandle(void *Handle)
|
Window XWindowFromHandle(void *Handle)
|
||||||
{
|
{
|
||||||
return GDK_WINDOW_XID(GTK_WIDGET(Handle)->window);
|
return GDK_WINDOW_XID(gtk_widget_get_window(GTK_WIDGET(Handle)));
|
||||||
}
|
}
|
||||||
|
|
||||||
Display *XDisplayFromHandle(void *Handle)
|
Display *XDisplayFromHandle(void *Handle)
|
||||||
{
|
{
|
||||||
return GDK_WINDOW_XDISPLAY(GTK_WIDGET(Handle)->window);
|
return GDK_WINDOW_XDISPLAY(gtk_widget_get_window(GTK_WIDGET(Handle)));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -295,6 +295,7 @@ ControllerEmu::Tilt::Tilt(const char* const _name)
|
|||||||
|
|
||||||
settings.push_back(new Setting(_trans("Dead Zone"), 0, 0, 50));
|
settings.push_back(new Setting(_trans("Dead Zone"), 0, 0, 50));
|
||||||
settings.push_back(new Setting(_trans("Circle Stick"), 0));
|
settings.push_back(new Setting(_trans("Circle Stick"), 0));
|
||||||
|
settings.push_back(new Setting(_trans("Angle"), 0.9f, 0, 180));
|
||||||
}
|
}
|
||||||
|
|
||||||
ControllerEmu::Cursor::Cursor(const char* const _name)
|
ControllerEmu::Cursor::Cursor(const char* const _name)
|
||||||
|
@ -307,6 +307,7 @@ public:
|
|||||||
|
|
||||||
ControlState deadzone = settings[0]->value;
|
ControlState deadzone = settings[0]->value;
|
||||||
ControlState circle = settings[1]->value;
|
ControlState circle = settings[1]->value;
|
||||||
|
auto const angle = settings[2]->value / 1.8f;
|
||||||
ControlState m = controls[4]->control_ref->State();
|
ControlState m = controls[4]->control_ref->State();
|
||||||
|
|
||||||
// modifier code
|
// modifier code
|
||||||
@ -363,8 +364,8 @@ public:
|
|||||||
m_tilt[1] = std::max(m_tilt[1] - 0.1f, yy);
|
m_tilt[1] = std::max(m_tilt[1] - 0.1f, yy);
|
||||||
}
|
}
|
||||||
|
|
||||||
*y = C(m_tilt[1] * range + base);
|
*y = C(m_tilt[1] * angle * range + base);
|
||||||
*x = C(m_tilt[0] * range + base);
|
*x = C(m_tilt[0] * angle * range + base);
|
||||||
}
|
}
|
||||||
private:
|
private:
|
||||||
float m_tilt[2];
|
float m_tilt[2];
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user